public class GeneralOptimizer<Model: EuclideanDifferentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Ogólny optymalizator, który powinien być w stanie wyrazić wiele możliwych optymalizacji. Optymalizator składa się z mapowania z ParameterGroup na ParameterGroupOptimizer. Optymalizator ten zawiera także liczbę elementów pracujących w sumie między replikami. Ma to na celu zapewnienie wydajności i zapobieganie wielokrotnym nieefektywnym iteracjom w gradiencie.
Deklaracja
public typealias Model = Model
Zestaw podjętych kroków.
Deklaracja
public var step: Int
Służy do określenia współczynnika skalowania sumy replik krzyżowych.
Deklaracja
public var crossReplicaSumCount: Int?
globalny stan optymalizatora.
Deklaracja
public var optimizerState: OptimizerState
Aktualne urządzenie modelu. (Służy do konstruowania hiperparametrów)
Deklaracja
public var device: Device
Tablica mapująca zagnieżdżone indeksy wagowe na optymalizatory grup parametrów? Waga i zostanie zoptymalizowana przez
parameterGroups[parameterGroupIndices[i]]
Deklaracja
public var parameterGroupIndices: [Int]
Tablica optymalizatorów grup parametrów.
Deklaracja
public var parameterGroups: [ParameterGroupOptimizer]
Ogólna szybkość uczenia się optymalizatora.
Deklaracja
public var learningRate: Float { get set }
Szybkość uczenia się optymalizatora grupy parametrów.
Deklaracja
public var learningRates: [Float] { get set }
Konstruuje optymalizator z listy optymalizatorów grup parametrów i selektora, który dzieli wagi na różne grupy parametrów. Jest to najbardziej ogólny konstruktor, ponieważ wektor selektora można skonstruować na wiele sposobów.
Deklaracja
public init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroupIndices: [Int], parameterGroups: [ParameterGroupOptimizer] )
Konstruuje optymalizator na podstawie sekwencji optymalizatorów grup parametrów, a następnie ostatecznego domyślnego optymalizatora grupy parametrów. Tablica
[Bool]
dotyczy wag i jest prawdziwa dla wag w tej grupie parametrów. Pierwsza grupa parametrów będzie używana nad kolejnymi.Deklaracja
public convenience init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroups: ([Bool], ParameterGroupOptimizer)..., defaultOptimizer: ParameterGroupOptimizer )
Kopiuje optymalizator na określone urządzenie.
Deklaracja
public required init(copying other: GeneralOptimizer, to device: Device)