public struct ParameterGroupOptimizerBuilder
Costruisce un ParameterGroupOptimizer
. Questo viene utilizzato essenzialmente al livello di un singolo peso nel modello. Una mappatura dai gruppi di parametri selezionati da ( [Bool]
a ParametroGroupOptimizer) definisce l'ottimizzatore finale.
Dichiarazione
public init()
Dichiarazione
public mutating mutating func makeParameter(_ name: String, _ value: Float) -> GlobalAccessor
Dichiarazione
public subscript(global: GlobalAccessor) -> Float { get }
Dichiarazione
public subscript(state name: String) -> StateAccessor { mutating get }
Dichiarazione
public subscript(local name: String) -> LocalAccessor { mutating get }
Aggiunge una richiamata all'elenco delle richiamate.
Dichiarazione
public mutating mutating func appendCallback(_ cb: @escaping OptimizerCallback)
Restituisce l'ottimizzatore e cancella il builder.
Dichiarazione
public mutating mutating func makeOptimizer() -> ParameterGroupOptimizer
Applica un sgdStep con slancio all'ottimizzazione del gruppo di parametri corrente.
Dichiarazione
public mutating func sgdStep( nesterov: Bool, mom: GlobalAccessor, lr: GlobalAccessor, velocity: StateAccessor )
Calcola il clippedTrustRatio (utilizzato in LARS).
Dichiarazione
public mutating func clippedTrustRatio( trustCoefficient: GlobalAccessor, epsilon: GlobalAccessor, weightDecay: GlobalAccessor ) -> LocalAccessor
Ridimensiona il gradiente in base al trustRatio (usato in LARS).
Dichiarazione
public mutating mutating func scaleGradByTrustRatio(trustRatio: LocalAccessor)
Applica il ridimensionamento del decadimento del peso al gradiente.
Dichiarazione
public mutating mutating func scaleGradient(byWeightDecay weightDecay: GlobalAccessor)
Ricalcola il parametro di velocità in base al nuovo gradiente (ridimensionato in base alla velocità di apprendimento).
Dichiarazione
public mutating func updateVelocity( mom: GlobalAccessor, lr: GlobalAccessor, velocity: StateAccessor )