Zaman Pelatihan Tidak Seragam

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

Urutan kumpulan sampel yang tak terbatas yang cocok untuk melatih DNN ketika ukuran sampel tidak seragam.

Batch di setiap epoch:

  • semuanya mempunyai jumlah sampel yang sama persis.
  • terbentuk dari sampel dengan ukuran yang sama.
  • mulai dengan batch yang ukuran sampel maksimumnya adalah ukuran maksimum dari semua sampel yang digunakan dalam epoch tersebut.
  • Membuat instance yang menggambar sampel dari samples ke dalam batch berukuran batchSize .

    Pernyataan

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

    Parameter

    entropy

    sumber keacakan yang digunakan untuk mengacak pemesanan sampel. Itu akan disimpan di self , jadi jika hanya pseudorandom dan memiliki nilai semantik, urutan zaman bersifat deterministik dan tidak bergantung pada operasi lain.

    batchesPerSort

    jumlah batch untuk mengelompokkan ukuran sampel dengan cara yang sama, atau nil untuk menunjukkan bahwa implementasi harus memilih nomor. Memilih terlalu tinggi dapat merusak efek pengacakan sampel di banyak skema pelatihan, sehingga menghasilkan hasil yang buruk. Memilih terlalu rendah akan mengurangi kesamaan ukuran dalam batch tertentu, sehingga menyebabkan inefisiensi.

    areInAscendingSizeOrder

    predikat yang mengembalikan true jika ukuran parameter pertama lebih kecil dari parameter kedua.

  • Jenis setiap zaman, kumpulan kumpulan sampel.

    Pernyataan

    public typealias Element = Slices<
      Sampling<Samples, Array<Samples.Index>.SubSequence>
    >
  • Mengembalikan zaman berikutnya secara berurutan.

    Pernyataan

    public func next() -> Element?
Tersedia di mana `Entropy` == `SystemRandomNumberGenerator`
  • Membuat instance yang menggambar sampel dari samples ke dalam batch berukuran batchSize .

    Pernyataan

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

    Parameter

    batchesPerSort

    jumlah batch untuk mengelompokkan ukuran sampel dengan cara yang sama, atau nil untuk menunjukkan bahwa implementasi harus memilih nomor. Memilih terlalu tinggi dapat merusak efek pengacakan sampel di banyak skema pelatihan, sehingga menghasilkan hasil yang buruk. Memilih terlalu rendah akan mengurangi kesamaan ukuran dalam batch tertentu, sehingga menyebabkan inefisiensi.

    areInAscendingSizeOrder

    predikat yang mengembalikan true jika ukuran parameter pertama lebih kecil dari parameter kedua.