public class GeneralOptimizer<Model: EuclideanDifferentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Otimizador geral que deve ser capaz de expressar múltiplas otimizações possíveis. O otimizador é composto por um mapeamento de ParameterGroup para ParameterGroupOptimizer. Este otimizador também contém o número de elementos trabalhando em uma soma de réplicas cruzadas. Isto é para eficiência, evitando múltiplas iterações ineficientes ao longo do gradiente.
Declaração
public typealias Model = Model
O conjunto de passos dados.
Declaração
public var step: Int
Usado para determinar o fator de escala da soma da réplica cruzada.
Declaração
public var crossReplicaSumCount: Int?
estado do otimizador global.
Declaração
public var optimizerState: OptimizerState
Dispositivo atual do modelo. (Usado para construir hiperparâmetros)
Declaração
public var device: Device
Uma matriz mapeando índices de peso aninhados para otimizadores de grupos de parâmetros? O peso i será otimizado por
parameterGroups[parameterGroupIndices[i]]
Declaração
public var parameterGroupIndices: [Int]
Uma matriz de otimizadores de grupos de parâmetros.
Declaração
public var parameterGroups: [ParameterGroupOptimizer]
Taxa geral de aprendizagem do otimizador.
Declaração
public var learningRate: Float { get set }
Taxas de aprendizado do otimizador de grupo por parâmetro.
Declaração
public var learningRates: [Float] { get set }
Constrói um otimizador a partir de uma lista de otimizadores de grupos de parâmetros e um seletor que divide os pesos em diferentes grupos de parâmetros. Este é o construtor mais geral, pois há muitas maneiras de construir este vetor seletor.
Declaração
public init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroupIndices: [Int], parameterGroups: [ParameterGroupOptimizer] )
Constrói um otimizador a partir de uma sequência de otimizadores por grupo de parâmetros e, em seguida, um otimizador de grupo de parâmetros padrão final. A matriz
[Bool]
é por peso e é verdadeira para os pesos nesse grupo de parâmetros. O primeiro parâmetroGroup será usado nos subsequentes.Declaração
public convenience init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroups: ([Bool], ParameterGroupOptimizer)..., defaultOptimizer: ParameterGroupOptimizer )
Copia o otimizador para o dispositivo especificado.
Declaração
public required init(copying other: GeneralOptimizer, to device: Device)