public class GeneralOptimizer<Model: EuclideanDifferentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Optimizador general que debería poder expresar múltiples optimizaciones posibles. El optimizador se compone de una asignación de ParameterGroup a ParameterGroupOptimizer. Este optimizador también contiene la cantidad de elementos que trabajan en una suma de réplicas cruzadas. Esto es por eficiencia para evitar múltiples iteraciones ineficientes sobre el gradiente.
Declaración
public typealias Model = Model
El conjunto de pasos dados.
Declaración
public var step: Int
Se utiliza para determinar el factor de escala de la suma de réplicas cruzadas.
Declaración
public var crossReplicaSumCount: Int?
Estado del optimizador global.
Declaración
public var optimizerState: OptimizerState
Dispositivo actual del modelo. (Utilizado para construir hiperparámetros)
Declaración
public var device: Device
¿Una matriz que asigna índices de peso anidados a optimizadores de grupos de parámetros? El peso i será optimizado por
parameterGroups[parameterGroupIndices[i]]
Declaración
public var parameterGroupIndices: [Int]
Una serie de optimizadores de grupos de parámetros.
Declaración
public var parameterGroups: [ParameterGroupOptimizer]
Tasa de aprendizaje general del optimizador.
Declaración
public var learningRate: Float { get set }
Tasas de aprendizaje del optimizador de grupo por parámetro.
Declaración
public var learningRates: [Float] { get set }
Construye un optimizador a partir de una lista de optimizadores de grupos de parámetros y un selector que divide los pesos en diferentes grupos de parámetros. Este es el constructor más general ya que hay muchas formas de construir este vector selector.
Declaración
public init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroupIndices: [Int], parameterGroups: [ParameterGroupOptimizer] )
Construye un optimizador a partir de una secuencia de optimizadores de grupo por parámetro y luego un optimizador de grupo de parámetros predeterminado final. La matriz
[Bool]
es por peso y es verdadera para los pesos en ese grupo de parámetros. El primer grupo de parámetros se utilizará sobre los siguientes.Declaración
public convenience init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroups: ([Bool], ParameterGroupOptimizer)..., defaultOptimizer: ParameterGroupOptimizer )
Copia el optimizador al dispositivo especificado.
Declaración
public required init(copying other: GeneralOptimizer, to device: Device)