public struct ParameterGroupOptimizerBuilder
Constrói uma ParameterGroupOptimizer
. Isso é usado essencialmente no nível de um único peso no modelo. Um mapeamento a partir de grupos de parâmetros seleccionados por ( [Bool]
para ParameterGroupOptimizer) define o optimizador final.
Declaração
public init()
Declaração
public mutating mutating func makeParameter(_ name: String, _ value: Float) -> GlobalAccessor
Declaração
public subscript(global: GlobalAccessor) -> Float { get }
Declaração
public subscript(state name: String) -> StateAccessor { mutating get }
Declaração
public subscript(local name: String) -> LocalAccessor { mutating get }
Acrescenta um retorno de chamada à lista de retornos de chamada.
Declaração
public mutating mutating func appendCallback(_ cb: @escaping OptimizerCallback)
Retorna o otimizador e limpa o construtor.
Declaração
public mutating mutating func makeOptimizer() -> ParameterGroupOptimizer
Aplica um sgdStep com momentum à otimização do grupo de parâmetros atual.
Declaração
public mutating func sgdStep( nesterov: Bool, mom: GlobalAccessor, lr: GlobalAccessor, velocity: StateAccessor )
Calcula o clippedTrustRatio (usado em LARS).
Declaração
public mutating func clippedTrustRatio( trustCoefficient: GlobalAccessor, epsilon: GlobalAccessor, weightDecay: GlobalAccessor ) -> LocalAccessor
Dimensiona o gradiente por trustRatio (usado em LARS).
Declaração
public mutating mutating func scaleGradByTrustRatio(trustRatio: LocalAccessor)
Aplica escala de redução de peso ao gradiente.
Declaração
public mutating mutating func scaleGradient(byWeightDecay weightDecay: GlobalAccessor)
Recomputa o parâmetro de velocidade com base no novo gradiente (dimensionado pela taxa de aprendizagem).
Declaração
public mutating func updateVelocity( mom: GlobalAccessor, lr: GlobalAccessor, velocity: StateAccessor )