public class GeneralOptimizer<Model: EuclideanDifferentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Pengoptimal umum yang harus mampu mengungkapkan beberapa kemungkinan pengoptimalan. Pengoptimal terdiri dari pemetaan dari ParameterGroup ke ParameterGroupOptimizer. Pengoptimal ini juga berisi jumlah elemen yang bekerja dalam jumlah replika silang. Hal ini untuk efisiensi guna mencegah beberapa iterasi yang tidak efisien pada gradien.
Pernyataan
public typealias Model = Model
Serangkaian langkah yang diambil.
Pernyataan
public var step: Int
Digunakan untuk menentukan faktor penskalaan jumlah replika silang.
Pernyataan
public var crossReplicaSumCount: Int?
keadaan pengoptimal global.
Pernyataan
public var optimizerState: OptimizerState
Perangkat model saat ini. (Digunakan untuk membuat hyperparameter)
Pernyataan
public var device: Device
Array yang memetakan indeks bobot bersarang ke pengoptimal grup parameter? Bobot i akan dioptimalkan dengan
parameterGroups[parameterGroupIndices[i]]
Pernyataan
public var parameterGroupIndices: [Int]
Serangkaian pengoptimal grup parameter.
Pernyataan
public var parameterGroups: [ParameterGroupOptimizer]
Kecepatan pembelajaran keseluruhan pengoptimal.
Pernyataan
public var learningRate: Float { get set }
Kecepatan pembelajaran pengoptimal grup per parameter.
Pernyataan
public var learningRates: [Float] { get set }
Membuat pengoptimal dari daftar pengoptimal grup parameter dan pemilih yang membagi bobot ke dalam grup parameter berbeda. Ini adalah konstruktor paling umum karena ada banyak cara untuk membuat vektor pemilih ini.
Pernyataan
public init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroupIndices: [Int], parameterGroups: [ParameterGroupOptimizer] )
Membangun pengoptimal dari urutan pengoptimal grup per parameter dan kemudian pengoptimal grup parameter default akhir. Array
[Bool]
adalah per bobot dan berlaku untuk bobot dalam grup param tersebut. ParameterGroup pertama akan digunakan pada parameter berikutnya.Pernyataan
public convenience init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroups: ([Bool], ParameterGroupOptimizer)..., defaultOptimizer: ParameterGroupOptimizer )
Menyalin pengoptimal ke perangkat yang ditentukan.
Pernyataan
public required init(copying other: GeneralOptimizer, to device: Device)