public struct ParameterGroupOptimizerBuilder
Construit un ParameterGroupOptimizer
. Ceci est utilisé essentiellement au niveau d’un poids unique dans le modèle. Un mappage des groupes de paramètres sélectionnés par ( [Bool]
vers ParameterGroupOptimizer) définit l'optimiseur final.
Déclaration
public init()
Déclaration
public mutating mutating func makeParameter(_ name: String, _ value: Float) -> GlobalAccessor
Déclaration
public subscript(global: GlobalAccessor) -> Float { get }
Déclaration
public subscript(state name: String) -> StateAccessor { mutating get }
Déclaration
public subscript(local name: String) -> LocalAccessor { mutating get }
Ajoute un rappel à la liste des rappels.
Déclaration
public mutating mutating func appendCallback(_ cb: @escaping OptimizerCallback)
Renvoie l'optimiseur et efface le constructeur.
Déclaration
public mutating mutating func makeOptimizer() -> ParameterGroupOptimizer
Applique un sgdStep avec élan à l'optimisation actuelle du groupe de paramètres.
Déclaration
public mutating func sgdStep( nesterov: Bool, mom: GlobalAccessor, lr: GlobalAccessor, velocity: StateAccessor )
Calcule le clippedTrustRatio (utilisé dans LARS).
Déclaration
public mutating func clippedTrustRatio( trustCoefficient: GlobalAccessor, epsilon: GlobalAccessor, weightDecay: GlobalAccessor ) -> LocalAccessor
Met à l'échelle le dégradé en fonction du trustRatio (utilisé dans LARS).
Déclaration
public mutating mutating func scaleGradByTrustRatio(trustRatio: LocalAccessor)
Applique une mise à l’échelle de la dégradation du poids au dégradé.
Déclaration
public mutating mutating func scaleGradient(byWeightDecay weightDecay: GlobalAccessor)
Recalcule le paramètre de vitesse en fonction du nouveau gradient (mis à l'échelle en fonction du taux d'apprentissage).
Déclaration
public mutating func updateVelocity( mom: GlobalAccessor, lr: GlobalAccessor, velocity: StateAccessor )