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.
Domyślna implementacja
Deklaracja
@differentiable func forward(_ input: Input) -> Output
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.
Deklaracja
public typealias Backpropagator = (_ direction: Output.TangentVector) -> (layerGradient: TangentVector, inputGradient: Input.TangentVector)
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.
Domyślna implementacja
Deklaracja
@differentiable(wrt: self) @differentiable public func callAsFunction(_ input: Input) -> Output