public struct ParameterGroupOptimizerBuilder
Builds a ParameterGroupOptimizer
. This is used at essentially the level
of a single weight in the model. A mapping from parameter groups
selected by ([Bool]
to ParameterGroupOptimizer) defines the final
optimizer.
-
Declaration
public init()
-
Declaration
public mutating mutating func makeParameter(_ name: String, _ value: Float) -> GlobalAccessor
-
Declaration
public subscript(global: GlobalAccessor) -> Float { get }
-
Declaration
public subscript(state name: String) -> StateAccessor { mutating get }
-
Declaration
public subscript(local name: String) -> LocalAccessor { mutating get }
-
Appends a callback to the list of callbacks.
Declaration
public mutating mutating func appendCallback(_ cb: @escaping OptimizerCallback)
-
Returns the optimizer and clears the builder.
Declaration
public mutating mutating func makeOptimizer() -> ParameterGroupOptimizer
-
Applies a sgdStep with momentum to the current parameter group optimization.
Declaration
public mutating func sgdStep( nesterov: Bool, mom: GlobalAccessor, lr: GlobalAccessor, velocity: StateAccessor )
-
Computes the clippedTrustRatio (used in LARS).
Declaration
public mutating func clippedTrustRatio( trustCoefficient: GlobalAccessor, epsilon: GlobalAccessor, weightDecay: GlobalAccessor ) -> LocalAccessor
-
Scales the gradient by the trustRatio (used in LARS).
Declaration
public mutating mutating func scaleGradByTrustRatio(trustRatio: LocalAccessor)
-
Applies weight decay scaling to the gradient.
Declaration
public mutating mutating func scaleGradient(byWeightDecay weightDecay: GlobalAccessor)
-
Recomputes the velocity parameter based on the new gradient (scaled by the learning rate).
Declaration
public mutating func updateVelocity( mom: GlobalAccessor, lr: GlobalAccessor, velocity: StateAccessor )