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] הוא לפי משקל והוא נכון עבור המשקלים בקבוצת הפראם הזו. הפרמטר הראשון בקבוצה ישמש על פני הפרמטרים הבאים.

    הַצהָרָה

    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)