التمدد2D

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

طبقة التمدد المورفولوجية ثنائية الأبعاد

تُرجع هذه الطبقة التمدد الشكلي لموتر الإدخال باستخدام المرشحات المتوفرة

  • مرشح التمدد رباعي الأبعاد.

    تصريح

    public var filter: Tensor<Scalar>
  • خطوات النافذة المنزلقة للأبعاد المكانية.

    تصريح

    @noDerivative
    public let strides: (Int, Int)
  • خوارزمية الحشو للتمدد.

    تصريح

    @noDerivative
    public let padding: Padding
  • عامل التمدد للأبعاد المكانية.

    تصريح

    @noDerivative
    public let rates: (Int, Int)
  • ينشئ طبقة Dilation2D باستخدام المرشح والخطوات والتمددات والحشوة المحددة.

    تصريح

    public init(
      filter: Tensor<Scalar>,
      strides: (Int, Int) = (1, 1),
      rates: (Int, Int) = (1, 1),
      padding: Padding = .valid
    )

    حدود

    filter

    مرشح التمدد رباعي الأبعاد للشكل [ارتفاع المرشح، عرض المرشح، عدد قنوات الإدخال، عدد قنوات الإخراج].

    strides

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

    rates

    معدلات التمدد للأبعاد المكانية أي (ارتفاع التمدد، عرض التمدد).

    padding

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

  • إرجاع المخرجات التي تم الحصول عليها من تطبيق الطبقة على المدخلات المحددة.

    يتم حساب الأبعاد المكانية للإخراج على النحو التالي:

    ارتفاع الإخراج = (ارتفاع الإدخال + 2 * ارتفاع الحشو - (ارتفاع التمدد * (ارتفاع الفلتر - 1) + 1)) / ارتفاع الخطوة + 1

    عرض الإخراج = (عرض الإدخال + 2 * عرض الحشو - (عرض التمدد * (عرض الفلتر - 1) + 1)) / عرض الخطوة + 1

    ويتم تحديد أحجام الحشو من خلال نظام الحشو.

    ملحوظة

    حجم الحشو يساوي صفر عند استخدام .valid .

    تصريح

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

    حدود

    input

    الإدخال إلى طبقة الشكل [حجم الدفعة، ارتفاع الإدخال، عرض الإدخال، عدد قنوات الإدخال].

    قيمة الإرجاع

    إخراج الشكل [عدد الدُفعات، ارتفاع الإخراج، عرض الإخراج، عدد قنوات الإخراج].