Genel Optimize Edici

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

Birden fazla olası optimizasyonu ifade edebilmesi gereken genel optimizer. Optimize edici, ParameterGroup'tan ParameterGroupOptimizer'a bir eşlemeden oluşur. Bu optimize edici aynı zamanda çapraz kopya toplamında çalışan öğelerin sayısını da içerir. Bu, degrade üzerinde birden fazla verimsiz yinelemeyi önlemek için verimlilik içindir.

  • beyan

    public typealias Model = Model
  • Atılan adımlar dizisi.

    beyan

    public var step: Int
  • Çapraz kopya toplamının ölçeklendirme faktörünü belirlemek için kullanılır.

    beyan

    public var crossReplicaSumCount: Int?
  • küresel optimizer durumu.

    beyan

    public var optimizerState: OptimizerState
  • Modelin mevcut cihazı. (Hiperparametreleri oluşturmak için kullanılır)

    beyan

    public var device: Device
  • İç içe ağırlık endekslerini parametre grubu iyileştiricilerine eşleyen bir dizi mi? Ağırlık i parameterGroups[parameterGroupIndices[i]] tarafından optimize edilecek

    beyan

    public var parameterGroupIndices: [Int]
  • Bir dizi parametre grubu optimize edici.

    beyan

    public var parameterGroups: [ParameterGroupOptimizer]
  • Optimize edicinin genel öğrenme oranı.

    beyan

    public var learningRate: Float { get set }
  • Parametre başına grup optimize edici öğrenme oranları.

    beyan

    public var learningRates: [Float] { get set }
  • Parametre grubu optimize ediciler listesinden bir optimize edici ve ağırlıkları farklı parametre gruplarına bölen bir seçici oluşturur. Bu seçici vektörü oluşturmanın birçok yolu olduğundan, bu en genel yapıcıdır.

    beyan

    public init(
      for model: __shared Model,
      _ kpPlan: TensorVisitorPlan<Model.TangentVector>,
      parameterGroupIndices: [Int],
      parameterGroups: [ParameterGroupOptimizer]
    )
  • Her parametre grubu için optimize edicilerden oluşan bir diziden bir optimize edici ve ardından nihai bir varsayılan parametre grubu optimize edici oluşturur. [Bool] dizisi ağırlık başınadır ve o parametre grubundaki ağırlıklar için doğrudur. İlk parametreGrubu sonraki parametreler üzerinde kullanılacaktır.

    beyan

    public convenience init(
      for model: __shared Model,
      _ kpPlan: TensorVisitorPlan<Model.TangentVector>,
      parameterGroups: ([Bool], ParameterGroupOptimizer)...,
      defaultOptimizer: ParameterGroupOptimizer
    )
  • Gerçek optimizer adımı. Degradenin tüm tensörlerini eşler ve ParameterGroupOptimizer tarafından tanımlanan ağırlık başına optimize edicileri uygular.

    beyan

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • Optimize ediciyi belirtilen cihaza kopyalar.

    beyan

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