public protocol Layer : Module where Self.Input : Differentiable
Uma camada de rede neural.
Tipos que estejam em conformidade com Layer
representam funções que mapeiam entradas e saídas. Eles podem ter um estado interno representado por parâmetros, como tensores de peso.
Layer
instâncias definir um diferenciável callAsFunction(_:)
método para entradas de mapeamento para saídas.
Retorna a saída obtida da aplicação da 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 da aplicação da 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 da aplicação da 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