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)