일반최적화 프로그램

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
    )
  • 실제 최적화 단계. 그래디언트의 모든 텐서에 대해 매핑하고 ParameterGroupOptimizer에서 정의한 가중치별 최적화 프로그램을 적용합니다.

    선언

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • 지정된 장치에 최적화 프로그램을 복사합니다.

    선언

    public required init(copying other: GeneralOptimizer, to device: Device)