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]
배열은 가중치별로 이루어지며 해당 매개변수 그룹의 가중치에 대해 true입니다. 첫 번째 매개변수 그룹은 후속 매개변수 그룹보다 사용됩니다.선언
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)