เครื่องมือเพิ่มประสิทธิภาพทั่วไป

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)