जनरलऑप्टिमाइज़र

public class GeneralOptimizer<Model: EuclideanDifferentiable>: Optimizer
where
  Model.TangentVector: VectorProtocol & ElementaryFunctions & KeyPathIterable,
  Model.TangentVector.VectorSpaceScalar == Float

सामान्य अनुकूलक जो अनेक संभावित अनुकूलनों को व्यक्त करने में सक्षम होना चाहिए। ऑप्टिमाइज़र पैरामीटरग्रुप से पैरामीटरग्रुपऑप्टिमाइज़र तक मैपिंग से बना है। इस ऑप्टिमाइज़र में क्रॉस रेप्लिका योग में काम करने वाले तत्वों की संख्या भी शामिल है। यह ग्रेडिएंट पर एकाधिक अकुशल पुनरावृत्तियों को रोकने की दक्षता के लिए है।

  • घोषणा

    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
    )
  • वास्तविक अनुकूलक कदम. ग्रेडिएंट के सभी टेंसरों को मैप करता है और पैरामीटरग्रुपऑप्टिमाइज़र द्वारा परिभाषित प्रति-वेट ऑप्टिमाइज़र लागू करता है।

    घोषणा

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • ऑप्टिमाइज़र को निर्दिष्ट डिवाइस पर कॉपी करता है।

    घोषणा

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