محسن عام

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
  • مصفوفة تقوم بتعيين مؤشرات الوزن المتداخلة لمحسنات مجموعة المعلمات؟ سيتم تحسين الوزن من خلال 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
    )
  • خطوة المحسن الفعلية. يرسم خرائط على جميع موترات التدرج ويطبق محسنات لكل وزن محددة بواسطة ParameterGroupOptimizer.

    تصريح

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • نسخ المحسن إلى الجهاز المحدد.

    تصريح

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