GeneralOptimizer

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] بر وزن است و برای وزن های آن گروه پارامتر صادق است. اولین ParameterGroup بر روی پارامترهای بعدی استفاده خواهد شد.

    اعلام

    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)