@frozen
public struct Dense<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
שכבת רשת עצבית מחוברת בצפיפות.
Dense
מיישמת את activation(matmul(input, weight) + bias)
, כאשר weight
הוא מטריצת משקל, bias
היא וקטור הטיה, activation
היא פונקציית הפעלה נקודתית.
שכבה זו תומכת גם בטנסורי משקל תלת-ממדיים עם מטריצות הטיה דו-ממדיות. במקרה זה, הממד הראשון של שניהם מטופל כגודל האצווה המיושר עם הממד הראשון של input
ומשתמשים בגרסה האצווה של פעולת matmul(_:_:)
, ובכך משתמשים במשקל והטיה שונים עבור כל אלמנט באצווה קלט.
מטריצת המשקל.
הַצהָרָה
public var weight: Tensor<Scalar>
וקטור ההטיה.
הַצהָרָה
public var bias: Tensor<Scalar>
פונקציית ההפעלה מבחינה אלמנטרית.
הַצהָרָה
@noDerivative public let activation: Activation
יוצר מופע מהמשקל הנתון, הטיה אופציונלית ופונקציית ההפעלה.
פֶּתֶק
נכון לעכשיו,weight
הוא פרמטר ההבחנה היחיד. ניתן להפוךbias
לפרמטר דיפרנציאליות לאחרOptional
מתאים באופן מותנה ל-Differentiable
: TF-499.הַצהָרָה
@differentiable(wrt: weight) public init( weight: Tensor<Scalar>, bias: Tensor<Scalar>? = nil, activation: @escaping Activation )
יוצר שכבה
Dense
עם גודל הקלט שצוין, גודל הפלט ופונקציית ההפעלה מבחינת האלמנטים. מטריצת המשקל נוצרת עם צורה[inputSize, outputSize]
וקטור ההטיה נוצר עם shape[outputSize]
.הַצהָרָה
public init( inputSize: Int, outputSize: Int, activation: @escaping Activation = identity, useBias: Bool = true, weightInitializer: ParameterInitializer<Scalar> = glorotUniform(), biasInitializer: ParameterInitializer<Scalar> = zeros() )
פרמטרים
inputSize
הממדיות של מרחב הקלט.
outputSize
הממדיות של מרחב הפלט.
activation
פונקציית ההפעלה לשימוש. ערך ברירת המחדל הוא
identity(_:)
.weightInitializer
אתחול לשימוש עבור
weight
.biasInitializer
אתחול לשימוש עבור
bias
.