public class GeneralOptimizer<Model: EuclideanDifferentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Birden fazla olası optimizasyonu ifade edebilmesi gereken genel optimizer. Optimize edici, ParameterGroup'tan ParameterGroupOptimizer'a bir eşlemeden oluşur. Bu optimize edici aynı zamanda çapraz kopya toplamında çalışan öğelerin sayısını da içerir. Bu, degrade üzerinde birden fazla verimsiz yinelemeyi önlemek için verimlilik içindir.
beyan
public typealias Model = Model
Atılan adımlar dizisi.
beyan
public var step: Int
Çapraz kopya toplamının ölçeklendirme faktörünü belirlemek için kullanılır.
beyan
public var crossReplicaSumCount: Int?
küresel optimizer durumu.
beyan
public var optimizerState: OptimizerState
Modelin mevcut cihazı. (Hiperparametreleri oluşturmak için kullanılır)
beyan
public var device: Device
İç içe ağırlık endekslerini parametre grubu iyileştiricilerine eşleyen bir dizi mi? Ağırlık i
parameterGroups[parameterGroupIndices[i]]
tarafından optimize edilecekbeyan
public var parameterGroupIndices: [Int]
Bir dizi parametre grubu optimize edici.
beyan
public var parameterGroups: [ParameterGroupOptimizer]
Optimize edicinin genel öğrenme oranı.
beyan
public var learningRate: Float { get set }
Parametre başına grup optimize edici öğrenme oranları.
beyan
public var learningRates: [Float] { get set }
Parametre grubu optimize ediciler listesinden bir optimize edici ve ağırlıkları farklı parametre gruplarına bölen bir seçici oluşturur. Bu seçici vektörü oluşturmanın birçok yolu olduğundan, bu en genel yapıcıdır.
beyan
public init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroupIndices: [Int], parameterGroups: [ParameterGroupOptimizer] )
Her parametre grubu için optimize edicilerden oluşan bir diziden bir optimize edici ve ardından nihai bir varsayılan parametre grubu optimize edici oluşturur.
[Bool]
dizisi ağırlık başınadır ve o parametre grubundaki ağırlıklar için doğrudur. İlk parametreGrubu sonraki parametreler üzerinde kullanılacaktır.beyan
public convenience init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroups: ([Bool], ParameterGroupOptimizer)..., defaultOptimizer: ParameterGroupOptimizer )
Optimize ediciyi belirtilen cihaza kopyalar.
beyan
public required init(copying other: GeneralOptimizer, to device: Device)