public class GeneralOptimizer<Model: EuclideanDifferentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Общий оптимизатор, который должен иметь возможность выражать несколько возможных оптимизаций. Оптимизатор состоит из сопоставления ParameterGroup с ParameterGroupOptimizer. Этот оптимизатор также содержит количество элементов, работающих в сумме перекрестных реплик. Это сделано для повышения эффективности, чтобы предотвратить несколько неэффективных итераций по градиенту.
Декларация
public typealias Model = Model
Набор предпринятых шагов.
Декларация
public var step: Int
Используется для определения коэффициента масштабирования суммы перекрестных реплик.
Декларация
public var crossReplicaSumCount: Int?
состояние глобального оптимизатора.
Декларация
public var optimizerState: OptimizerState
Текущее устройство модели. (Используется для построения гиперпараметров)
Декларация
public var device: Device
Массив, сопоставляющий вложенные индексы веса с оптимизаторами групп параметров? Вес i будет оптимизирован
parameterGroups[parameterGroupIndices[i]]
Декларация
public var parameterGroupIndices: [Int]
Массив оптимизаторов групп параметров.
Декларация
public var parameterGroups: [ParameterGroupOptimizer]
Общая скорость обучения оптимизатора.
Декларация
public var learningRate: Float { get set }
Скорость обучения группового оптимизатора по параметрам.
Декларация
public var learningRates: [Float] { get set }
Создает оптимизатор из списка оптимизаторов групп параметров и селектора, который делит веса на разные группы параметров. Это наиболее общий конструктор, поскольку существует множество способов создания этого вектора селектора.
Декларация
public init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroupIndices: [Int], parameterGroups: [ParameterGroupOptimizer] )
Создает оптимизатор из последовательности оптимизаторов для каждой группы параметров, а затем окончательного оптимизатора группы параметров по умолчанию. Массив
[Bool]
предназначен для каждого веса и верен для весов в этой группе параметров. Первая группа параметров будет использоваться поверх последующих.Декларация
public convenience init( for model: __shared Model, _ kpPlan: TensorVisitorPlan<Model.TangentVector>, parameterGroups: ([Bool], ParameterGroupOptimizer)..., defaultOptimizer: ParameterGroupOptimizer )
Копирует оптимизатор на указанное устройство.
Декларация
public required init(copying other: GeneralOptimizer, to device: Device)