public protocol Layer : Module where Self.Input : Differentiable
Uma camada de rede neural.
Os tipos que estão em conformidade com Layer
representam funções que mapeiam entradas para saídas. Eles podem ter um estado interno representado por parâmetros, como tensores de peso.
As instâncias Layer
definem um método callAsFunction(_:)
diferenciável para mapear entradas para saídas.
Retorna a saída obtida ao aplicar a camada à entrada fornecida.
Declaração
@differentiable func callAsFunction(_ input: Input) -> Output
Parâmetros
input
A entrada para a camada.
Valor de retorno
A saída.
Implementação padrão
Declaração
@differentiable func forward(_ input: Input) -> Output
Retorna a saída de inferência obtida ao aplicar a camada à entrada fornecida.
Declaração
public func inferring(from input: Input) -> Output
Parâmetros
input
A entrada para a camada.
Valor de retorno
A saída de inferência.
Declaração
public typealias Backpropagator = (_ direction: Output.TangentVector) -> (layerGradient: TangentVector, inputGradient: Input.TangentVector)
Retorna a saída de inferência e a função de retropropagação obtida ao aplicar a camada à entrada fornecida.
Declaração
public func appliedForBackpropagation(to input: Input) -> (output: Output, backpropagator: Backpropagator)
Parâmetros
input
A entrada para a camada.
Valor de retorno
Uma tupla contendo a saída e a função de retropropagação. A função backpropagation (também conhecida como backpropagator) pega um vetor de direção e retorna os gradientes na camada e na entrada, respectivamente.
Implementação padrão
Declaração
@differentiable(wrt: self) @differentiable public func callAsFunction(_ input: Input) -> Output