public struct ParameterGroupOptimizerBuilder
Construye una ParameterGroupOptimizer
. Esto se usa esencialmente al nivel de un solo peso en el modelo. Un mapeo de grupos de parámetros seleccionados por ( [Bool]
a ParameterGroupOptimizer) define el optimizador final.
Declaración
public init()
Declaración
public mutating mutating func makeParameter(_ name: String, _ value: Float) -> GlobalAccessor
Declaración
public subscript(global: GlobalAccessor) -> Float { get }
Declaración
public subscript(state name: String) -> StateAccessor { mutating get }
Declaración
public subscript(local name: String) -> LocalAccessor { mutating get }
Agrega una devolución de llamada a la lista de devoluciones de llamada.
Declaración
public mutating mutating func appendCallback(_ cb: @escaping OptimizerCallback)
Devuelve el optimizador y borra el constructor.
Declaración
public mutating mutating func makeOptimizer() -> ParameterGroupOptimizer
Aplica un sgdStep con impulso a la optimización del grupo de parámetros actual.
Declaración
public mutating func sgdStep( nesterov: Bool, mom: GlobalAccessor, lr: GlobalAccessor, velocity: StateAccessor )
Calcula el clippedTrustRatio (utilizado en LARS).
Declaración
public mutating func clippedTrustRatio( trustCoefficient: GlobalAccessor, epsilon: GlobalAccessor, weightDecay: GlobalAccessor ) -> LocalAccessor
Escala el gradiente por trustRatio (usado en LARS).
Declaración
public mutating mutating func scaleGradByTrustRatio(trustRatio: LocalAccessor)
Aplica escala de disminución de peso al gradiente.
Declaración
public mutating mutating func scaleGradient(byWeightDecay weightDecay: GlobalAccessor)
Vuelve a calcular el parámetro de velocidad en función del nuevo gradiente (escalado por la tasa de aprendizaje).
Declaración
public mutating func updateVelocity( mom: GlobalAccessor, lr: GlobalAccessor, velocity: StateAccessor )