public class GeneralOptimizer<Model: EuclideanDifferentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Optimiseur général qui doit être capable d'exprimer plusieurs optimisations possibles. L'optimiseur est composé d'un mappage de ParameterGroup vers ParameterGroupOptimizer. Cet optimiseur contient également le nombre d'éléments travaillant dans une somme de répliques croisées. C'est pour des raisons d'efficacité afin d'éviter plusieurs itérations inefficaces sur le dégradé.
Déclaration
public typealias Model = Model
L’ensemble des mesures prises.
Déclaration
public var step: Int
Utilisé pour déterminer le facteur d’échelle de la somme des répliques croisées.
Déclaration
public var crossReplicaSumCount: Int?
état global de l’optimiseur.
Déclaration
public var optimizerState: OptimizerState
Appareil actuel du modèle. (Utilisé pour construire des hyperparamètres)
Déclaration
public var device: Device
Un tableau mappant des indices de poids imbriqués à des optimiseurs de groupes de paramètres ? Le poids i sera optimisé par
parameterGroups[parameterGroupIndices[i]]
Déclaration
public var parameterGroupIndices: [Int]
Un tableau d’optimiseurs de groupes de paramètres.
Déclaration
public var parameterGroups: [ParameterGroupOptimizer]
Taux d'apprentissage global de l'optimiseur.
Déclaration
public var learningRate: Float { get set }
Taux d'apprentissage de l'optimiseur de groupe par paramètre.
Déclaration
public var learningRates: [Float] { get set }
Construit un optimiseur à partir d'une liste d'optimiseurs de groupes de paramètres et d'un sélecteur qui divise les poids en différents groupes de paramètres. Il s’agit du constructeur le plus général car il existe de nombreuses façons de construire ce vecteur sélecteur.
Déclaration
public init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroupIndices: [Int], parameterGroups: [ParameterGroupOptimizer] )
Construit un optimiseur à partir d'une séquence d'optimiseurs de groupe par paramètre, puis un optimiseur final de groupe de paramètres par défaut. Le tableau
[Bool]
est par poids et est vrai pour les poids de ce groupe de paramètres. Le premier groupe de paramètres sera utilisé par rapport aux suivants.Déclaration
public convenience init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroups: ([Bool], ParameterGroupOptimizer)..., defaultOptimizer: ParameterGroupOptimizer )
Copie l'optimiseur sur le périphérique spécifié.
Déclaration
public required init(copying other: GeneralOptimizer, to device: Device)