public struct ParameterGroupOptimizerBuilder
Tworzy ParameterGroupOptimizer
. Jest to stosowane zasadniczo na poziomie pojedynczego ciężaru w modelu. Mapowanie grup parametrów wybranych przez ( [Bool]
do ParameterGroupOptimizer) definiuje ostateczny optymalizator.
Deklaracja
public init()
Deklaracja
public mutating mutating func makeParameter(_ name: String, _ value: Float) -> GlobalAccessor
Deklaracja
public subscript(global: GlobalAccessor) -> Float { get }
Deklaracja
public subscript(state name: String) -> StateAccessor { mutating get }
Deklaracja
public subscript(local name: String) -> LocalAccessor { mutating get }
Dołącza wywołanie zwrotne do listy wywołań zwrotnych.
Deklaracja
public mutating mutating func appendCallback(_ cb: @escaping OptimizerCallback)
Zwraca optymalizator i czyści konstruktor.
Deklaracja
public mutating mutating func makeOptimizer() -> ParameterGroupOptimizer
Stosuje sgdStep z impetem do bieżącej optymalizacji grupy parametrów.
Deklaracja
public mutating func sgdStep( nesterov: Bool, mom: GlobalAccessor, lr: GlobalAccessor, velocity: StateAccessor )
Oblicza obciętyTrustRatio (używany w LARS).
Deklaracja
public mutating func clippedTrustRatio( trustCoefficient: GlobalAccessor, epsilon: GlobalAccessor, weightDecay: GlobalAccessor ) -> LocalAccessor
Skaluje gradient według współczynnika zaufania (używanego w LARS).
Deklaracja
public mutating mutating func scaleGradByTrustRatio(trustRatio: LocalAccessor)
Stosuje skalowanie zaniku wagi do gradientu.
Deklaracja
public mutating mutating func scaleGradient(byWeightDecay weightDecay: GlobalAccessor)
Ponownie oblicza parametr prędkości w oparciu o nowy gradient (skalowany według szybkości uczenia).
Deklaracja
public mutating func updateVelocity( mom: GlobalAccessor, lr: GlobalAccessor, velocity: StateAccessor )