لایه

public protocol Layer : Module where Self.Input : Differentiable

یک لایه شبکه عصبی

انواعی که با Layer مطابقت دارند، توابعی را نشان می دهند که ورودی ها را به خروجی ها نگاشت می کنند. آنها ممکن است یک حالت داخلی داشته باشند که با پارامترهایی مانند تانسور وزن نمایش داده می شود.

نمونه های Layer یک متد callAsFunction(_:) قابل تفکیک را برای نگاشت ورودی ها به خروجی ها تعریف می کنند.

  • خروجی به دست آمده از اعمال لایه به ورودی داده شده را برمی گرداند.

    اعلامیه

    @differentiable
    func callAsFunction(_ input: Input) -> Output

    پارامترها

    input

    ورودی لایه

    ارزش بازگشتی

    خروجی.

  • جلو (_:) اجرای پیش فرض

    پیاده سازی پیش فرض

    اعلامیه

    @differentiable
    func forward(_ input: Input) -> Output
  • استنتاج (از:) روش گسترش

    خروجی استنتاج حاصل از اعمال لایه به ورودی داده شده را برمی گرداند.

    اعلامیه

    public func inferring(from input: Input) -> Output

    پارامترها

    input

    ورودی لایه

    ارزش بازگشتی

    خروجی استنتاج

  • پس انتشار دهنده روش گسترش

    اعلامیه

    public typealias Backpropagator = (_ direction: Output.TangentVector)
      -> (layerGradient: TangentVector, inputGradient: Input.TangentVector)
  • خروجی استنتاج و تابع پس انتشار به دست آمده از اعمال لایه به ورودی داده شده را برمی گرداند.

    اعلامیه

    public func appliedForBackpropagation(to input: Input)
      -> (output: Output, backpropagator: Backpropagator)

    پارامترها

    input

    ورودی لایه

    ارزش بازگشتی

    یک تاپل حاوی خروجی و تابع پس انتشار. تابع backpropagation (معروف به backpropagator) یک بردار جهت می گیرد و گرادیان ها را به ترتیب در لایه و در ورودی برمی گرداند.

در دسترس است که در آن "ورودی": "DifferentiableTensorProtocol"، "Output": "DifferentiableTensorProtocol"
  • callAsFunction(_:) اجرای پیش فرض

    پیاده سازی پیش فرض

    اعلامیه

    @differentiable(wrt: self)
    @differentiable
    public func callAsFunction(_ input: Input) -> Output