Conv3D

@frozen
public struct Conv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint

שכבת קונבולציה תלת מימדית עבור פיתול מרחבי/מרחבי-זמני על פני תמונות.

שכבה זו יוצרת מסנן קונבולציה שמתפתל עם קלט השכבה כדי לייצר טנזור של יציאות.

  • מסנן פיתול 5-D.

    הַצהָרָה

    public var filter: Tensor<Scalar>
  • וקטור ההטיה.

    הַצהָרָה

    public var bias: Tensor<Scalar>
  • פונקציית ההפעלה מבחינה אלמנטרית.

    הַצהָרָה

    @noDerivative
    public let activation: Activation
  • הצעדים של חלון הזזה לממדים מרחביים.

    הַצהָרָה

    @noDerivative
    public let strides: (Int, Int, Int)
  • אלגוריתם הריפוד לקונבולציה.

    הַצהָרָה

    @noDerivative
    public let padding: Padding
  • גורם ההתרחבות לממדים זמניים מרחביים/מרחביים.

    הַצהָרָה

    @noDerivative
    public let dilations: (Int, Int, Int)
  • סוג פונקציית ההפעלה מבחינת האלמנט.

    הַצהָרָה

    public typealias Activation = @differentiable (Tensor<Scalar>) -> Tensor<Scalar>
  • יוצר שכבת Conv3D עם המסנן, ההטיה, פונקציית ההפעלה, הצעדים והריפוד שצוינו.

    הַצהָרָה

    public init(
      filter: Tensor<Scalar>,
      bias: Tensor<Scalar>? = nil,
      activation: @escaping Activation = identity,
      strides: (Int, Int, Int) = (1, 1, 1),
      padding: Padding = .valid,
      dilations: (Int, Int, Int) = (1, 1, 1)
    )

    פרמטרים

    filter

    מסנן הפיתול ה-5-D של הצורה [עומק מסנן, גובה מסנן, רוחב מסנן, ספירת ערוצי קלט, ספירת ערוצי פלט].

    bias

    וקטור ההטיה של הצורה [ספירת ערוצי פלט].

    activation

    פונקציית ההפעלה מבחינה אלמנטרית.

    strides

    הצעדים של חלון ההזזה לממדים מרחביים, כלומר (עומק צעד, גובה צעד, רוחב צעדים)

    padding

    אלגוריתם הריפוד לקונבולציה.

    dilations

    מקדם ההתרחבות לממדים מרחביים/מרחביים-זמניים.

  • מחזירה את הפלט המתקבל מהחלת השכבה על הקלט הנתון.

    הממדים המרחביים של הפלט מחושבים כך:

    עומק פלט = (עומק קלט + 2 * עומק ריפוד - (עומק הרחבה * (עומק מסנן - 1) + 1)) / עומק צעדים + 1

    גובה פלט = (גובה קלט + 2 * גובה ריפוד - (גובה הרחבה * (גובה מסנן - 1) + 1)) / גובה צעדים + 1

    רוחב פלט = (רוחב קלט + 2 * רוחב ריפוד - (רוחב הרחבה * (רוחב מסנן - 1) + 1)) / רוחב צעדים + 1

    וגדלי הריפוד נקבעים לפי סכימת הריפוד.

    הערה

    גודל הריפוד שווה לאפס בעת שימוש .valid .

    הַצהָרָה

    @differentiable
    public func forward(_ input: Tensor<Scalar>) -> Tensor<Scalar>

    פרמטרים

    input

    הקלט לשכבת הצורה [ספירת אצווה, עומק קלט, גובה קלט, רוחב קלט, ספירת ערוצי קלט].

    ערך החזרה

    הפלט של צורה [ספירת אצווה, עומק פלט, גובה פלט, רוחב פלט, ספירת ערוצי פלט].

  • יוצר שכבת Conv3D עם צורת המסנן שצוינה, צעדים, ריפוד, הרחבות ופונקציית הפעלה מבחינה אלמנטית. טנזור המסנן מאותחל באמצעות אתחול אחיד של Glorot עם הזרע שצוין. וקטור ההטיה מאותחל באפסים.

    הַצהָרָה

    public init(
      filterShape: (Int, Int, Int, Int, Int),
      strides: (Int, Int, Int) = (1, 1, 1),
      padding: Padding = .valid,
      dilations: (Int, Int, Int) = (1, 1, 1),
      activation: @escaping Activation = identity,
      useBias: Bool = true,
      filterInitializer: ParameterInitializer<Scalar> = glorotUniform(),
      biasInitializer: ParameterInitializer<Scalar> = zeros()
    )

    פרמטרים

    filterShape

    הצורה של מסנן הפיתול ה-5-D, המייצג (עומק מסנן, גובה מסנן, רוחב מסנן, ספירת ערוצי קלט, ספירת ערוצי מוצא).

    strides

    הצעדים של חלון ההזזה לממדים מרחביים, כלומר (עומק צעד, גובה צעד, רוחב צעדים)

    padding

    אלגוריתם הריפוד לקונבולציה.

    dilations

    מקדם ההתרחבות לממדים מרחביים/מרחביים-זמניים.

    activation

    פונקציית ההפעלה מבחינה אלמנטרית.

    filterInitializer

    אתחול לשימוש עבור פרמטרי המסנן.

    biasInitializer

    אתחול לשימוש עבור הפרמטרים ההטיה.