public class GeneralOptimizer<Model: EuclideanDifferentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Ottimizzatore generale che dovrebbe essere in grado di esprimere molteplici ottimizzazioni possibili. L'ottimizzatore è composto da una mappatura da ParametroGroup a ParametroGroupOptimizer. Questo ottimizzatore contiene anche il numero di elementi che lavorano in una somma di repliche incrociate. Questo serve per l'efficienza per prevenire più iterazioni inefficienti sul gradiente.
Dichiarazione
public typealias Model = Model
L'insieme dei passi compiuti.
Dichiarazione
public var step: Int
Utilizzato per determinare il fattore di scala della somma della replica incrociata.
Dichiarazione
public var crossReplicaSumCount: Int?
stato dell'ottimizzatore globale.
Dichiarazione
public var optimizerState: OptimizerState
Dispositivo attuale del modello. (Utilizzato per costruire iperparametri)
Dichiarazione
public var device: Device
Un array che mappa gli indici di peso annidati sugli ottimizzatori di gruppi di parametri? Il peso i sarà ottimizzato da
parameterGroups[parameterGroupIndices[i]]
Dichiarazione
public var parameterGroupIndices: [Int]
Una serie di ottimizzatori di gruppi di parametri.
Dichiarazione
public var parameterGroups: [ParameterGroupOptimizer]
Tasso di apprendimento complessivo dell'ottimizzatore.
Dichiarazione
public var learningRate: Float { get set }
Tassi di apprendimento dell'ottimizzatore di gruppo per parametro.
Dichiarazione
public var learningRates: [Float] { get set }
Costruisce un ottimizzatore da un elenco di ottimizzatori di gruppi di parametri e un selettore che divide i pesi in diversi gruppi di parametri. Questo è il costruttore più generale poiché esistono molti modi per costruire questo vettore di selezione.
Dichiarazione
public init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroupIndices: [Int], parameterGroups: [ParameterGroupOptimizer] )
Costruisce un ottimizzatore da una sequenza di ottimizzatori di gruppi di parametri e quindi un ottimizzatore di gruppi di parametri predefinito finale. L'array
[Bool]
è per peso ed è vero per i pesi in quel gruppo di parametri. Il primo parametroGroup verrà utilizzato su quelli successivi.Dichiarazione
public convenience init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroups: ([Bool], ParameterGroupOptimizer)..., defaultOptimizer: ParameterGroupOptimizer )
Copia l'ottimizzatore sul dispositivo specificato.
Dichiarazione
public required init(copying other: GeneralOptimizer, to device: Device)