ยุคการฝึกอบรมที่ไม่สม่ำเสมอ

public final class NonuniformTrainingEpochs<
  Samples: Collection,
  Entropy: RandomNumberGenerator
>: Sequence, IteratorProtocol

ลำดับการรวบรวมชุดตัวอย่างที่ไม่สิ้นสุดซึ่งเหมาะสำหรับการฝึกอบรม DNN เมื่อตัวอย่างมีขนาดไม่เท่ากัน

แบทช์ในแต่ละยุค:

  • ทั้งหมดมีจำนวนตัวอย่างเท่ากันทุกประการ
  • เกิดจากตัวอย่างที่มีขนาดใกล้เคียงกัน
  • เริ่มต้นด้วยแบทช์ที่มีขนาดตัวอย่างสูงสุดคือขนาดสูงสุดเหนือตัวอย่างทั้งหมดที่ใช้ในยุคนั้น
  • สร้างตัวอย่างการวาดอินสแตนซ์จาก samples เป็นแบทช์ขนาด batchSize

    คำประกาศ

    public init(
      samples: Samples,
      batchSize: Int,
      entropy: Entropy,
      batchesPerSort: Int? = nil,
      areInAscendingSizeOrder:
        @escaping (Samples.Element, Samples.Element) -> Bool
    )

    พารามิเตอร์

    entropy

    แหล่งที่มาของการสุ่มที่ใช้ในการสุ่มลำดับตัวอย่าง มันจะถูกเก็บไว้ใน self ดังนั้นหากเป็นเพียงการสุ่มเทียมและมีความหมายเชิงคุณค่า ลำดับของยุคจะถูกกำหนดและไม่ขึ้นอยู่กับการดำเนินการอื่น

    batchesPerSort

    จำนวนชุดที่จะจัดกลุ่มขนาดตัวอย่างใกล้เคียงกัน หรือ nil เพื่อบ่งชี้ว่าการใช้งานควรเลือกตัวเลข การเลือกสูงเกินไปอาจทำลายผลกระทบของการสับตัวอย่างในหลายแผนการฝึกอบรม ส่งผลให้ผลลัพธ์ไม่ดี การเลือกต่ำเกินไปจะลดความคล้ายคลึงกันของขนาดในชุดที่กำหนด นำไปสู่ความไร้ประสิทธิภาพ

    areInAscendingSizeOrder

    เพรดิเคตที่คืน true หากขนาดของพารามิเตอร์ตัวแรกน้อยกว่าพารามิเตอร์ตัวที่สอง

  • ประเภทของแต่ละยุคสมัย เป็นกลุ่มตัวอย่าง

    คำประกาศ

    public typealias Element = Slices<
      Sampling<Samples, Array<Samples.Index>.SubSequence>
    >
  • ส่งกลับยุคถัดไปตามลำดับ

    คำประกาศ

    public func next() -> Element?
พร้อมใช้งานโดยที่ `Entropy` == `SystemRandomNumberGenerator`
  • สร้างตัวอย่างการวาดอินสแตนซ์จาก samples เป็นแบทช์ขนาด batchSize

    คำประกาศ

    public convenience init(
      samples: Samples,
      batchSize: Int,
      batchesPerSort: Int? = nil,
      areInAscendingSizeOrder:
        @escaping (Samples.Element, Samples.Element) -> Bool
    )

    พารามิเตอร์

    batchesPerSort

    จำนวนชุดที่จะจัดกลุ่มขนาดตัวอย่างใกล้เคียงกัน หรือ nil เพื่อบ่งชี้ว่าการใช้งานควรเลือกตัวเลข การเลือกสูงเกินไปอาจทำลายผลกระทบของการสับตัวอย่างในหลายแผนการฝึกอบรม ส่งผลให้ผลลัพธ์ไม่ดี การเลือกต่ำเกินไปจะลดความคล้ายคลึงกันของขนาดในชุดที่กำหนด นำไปสู่ความไร้ประสิทธิภาพ

    areInAscendingSizeOrder

    เพรดิเคตที่คืน true หากขนาดของพารามิเตอร์ตัวแรกน้อยกว่าพารามิเตอร์ตัวที่สอง