public protocol Layer : Module where Self.Input : Differentiable
Une couche de réseau de neurones.
Les types qui sont conformes à la Layer
représentent des fonctions que les entrées de carte aux sorties. Ils peuvent avoir un état interne représenté par des paramètres, tels que des tenseurs de poids.
Layer
instances définissent une différentiable callAsFunction(_:)
méthode pour les entrées de mappage aux sorties.
Renvoie la sortie obtenue en appliquant le calque à l'entrée donnée.
Déclaration
@differentiable func callAsFunction(_ input: Input) -> Output
Paramètres
input
L'entrée de la couche.
Valeur de retour
Le résultat.
Implémentation par défaut
Déclaration
@differentiable func forward(_ input: Input) -> Output
Renvoie la sortie d'inférence obtenue en appliquant la couche à l'entrée donnée.
Déclaration
public func inferring(from input: Input) -> Output
Paramètres
input
L'entrée de la couche.
Valeur de retour
La sortie d'inférence.
Déclaration
public typealias Backpropagator = (_ direction: Output.TangentVector) -> (layerGradient: TangentVector, inputGradient: Input.TangentVector)
Renvoie la sortie d'inférence et la fonction de rétropropagation obtenues en appliquant la couche à l'entrée donnée.
Déclaration
public func appliedForBackpropagation(to input: Input) -> (output: Output, backpropagator: Backpropagator)
Paramètres
input
L'entrée de la couche.
Valeur de retour
Un tuple contenant la sortie et la fonction de rétropropagation. La fonction de rétropropagation (alias backpropagator) prend un vecteur de direction et renvoie les gradients au niveau de la couche et à l'entrée, respectivement.