Warstwa

public protocol Layer : Module where Self.Input : Differentiable

Warstwa sieci neuronowej.

Typy zgodne z Layer reprezentują funkcje, które mapują dane wejściowe na dane wyjściowe. Mogą mieć stan wewnętrzny reprezentowany przez parametry, takie jak tensory wag.

Instancje Layer definiują różniczkowalną metodę callAsFunction(_:) służącą do mapowania wejść na wyjścia.

  • Zwraca wynik uzyskany po zastosowaniu warstwy do podanych danych wejściowych.

    Deklaracja

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

    Parametry

    input

    Wejście do warstwy.

    Wartość zwracana

    Wyjście.

  • do przodu(_:) Domyślna implementacja

    Domyślna implementacja

    Deklaracja

    @differentiable
    func forward(_ input: Input) -> Output
  • wnioskowanie (z:) Metoda przedłużania

    Zwraca wynik wnioskowania uzyskany w wyniku zastosowania warstwy do danych wejściowych.

    Deklaracja

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

    Parametry

    input

    Wejście do warstwy.

    Wartość zwracana

    Wynik wnioskowania.

  • Propagator wsteczny Metoda przedłużania

    Deklaracja

    public typealias Backpropagator = (_ direction: Output.TangentVector)
      -> (layerGradient: TangentVector, inputGradient: Input.TangentVector)
  • ApplyForBackpropagation(do:) Metoda przedłużania

    Zwraca wynik wnioskowania i funkcję propagacji wstecznej uzyskaną w wyniku zastosowania warstwy do danych wejściowych.

    Deklaracja

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

    Parametry

    input

    Wejście do warstwy.

    Wartość zwracana

    Krotka zawierająca dane wyjściowe i funkcję propagacji wstecznej. Funkcja propagacji wstecznej (inaczej propagator wsteczny) pobiera wektor kierunkowy i zwraca gradienty odpowiednio w warstwie i na wejściu.

Dostępne gdzie `Input`: `DifferentiableTensorProtocol`, `Output`: `DifferentiableTensorProtocol`
  • wywołajJakoFunkcję(_:) Domyślna implementacja

    Domyślna implementacja

    Deklaracja

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