تحويل3D

@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

    شكل المرشح التلافيفي خماسي الأبعاد ويمثل (عمق المرشح، ارتفاع المرشح، عرض المرشح، عدد قنوات الإدخال، عدد قنوات الإخراج).

    strides

    خطوات النافذة المنزلقة للأبعاد المكانية، أي (عمق الخطوة، ارتفاع الخطوة، عرض الخطوة)

    padding

    خوارزمية الحشو للالتفاف.

    dilations

    عامل التمدد للأبعاد المكانية/المكانية والزمانية.

    activation

    وظيفة التنشيط الحكيمة للعنصر.

    filterInitializer

    مُهيئ لاستخدامه في معلمات التصفية.

    biasInitializer

    مُهيئ لاستخدامه في معلمات التحيز.