public class GeneralOptimizer<Model: EuclideanDifferentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Otimizador geral que deve ser capaz de expressar várias otimizações possíveis. O otimizador é composto de um mapeamento de ParameterGroup para ParameterGroupOptimizer. Este otimizador também contém o número de elementos trabalhando em uma soma de réplica cruzada. Isso é para eficiência para evitar várias iterações ineficientes no gradiente.
Declaração
public typealias Model = Model
O conjunto de etapas realizadas.
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 que mapeia índices de peso aninhados para otimizadores de grupo de parâmetros? Peso i será otimizado por
parameterGroups[parameterGroupIndices[i]]
Declaração
public var parameterGroupIndices: [Int]
Uma matriz de otimizadores de grupo de parâmetros.
Declaração
public var parameterGroups: [ParameterGroupOptimizer]
Taxa de aprendizado geral 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 grupo 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 esse 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 de grupo por parâmetro e, em seguida, um otimizador de grupo de parâmetro padrão final. O
[Bool]
matriz é por peso e é verdadeiro para os pesos em que o grupo param. O primeiro grupo de parâmetros será usado sobre os 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)