জেনারেল অপ্টিমাইজার

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
    )
  • প্রকৃত অপ্টিমাইজার ধাপ। গ্রেডিয়েন্টের সমস্ত টেনসরের উপর মানচিত্র এবং ParameterGroupOptimizer দ্বারা সংজ্ঞায়িত প্রতি-ওজন অপ্টিমাইজার প্রয়োগ করে।

    ঘোষণা

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • অপ্টিমাইজারকে নির্দিষ্ট ডিভাইসে কপি করে।

    ঘোষণা

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