Epoki niejednorodnego treningu

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

Nieskończona sekwencja kolekcji partii próbek odpowiednich do szkolenia DNN, gdy próbki nie mają jednakowej wielkości.

Partie w każdej epoce:

  • wszystkie mają dokładnie tę samą liczbę próbek.
  • powstają z próbek o podobnej wielkości.
  • rozpocząć od partii, której maksymalna wielkość próbki jest maksymalną wielkością spośród wszystkich próbek użytych w epoce.
  • Tworzy instancję rysującą próbki z samples w partie o rozmiarze batchSize .

    Deklaracja

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

    Parametry

    entropy

    źródło losowości używane do tasowania kolejności próbek. Będzie przechowywany w self , więc jeśli jest tylko pseudolosowy i ma semantykę wartości, kolejność epok jest deterministyczna i niezależna od innych operacji.

    batchesPerSort

    liczba partii, w ramach których można podobnie pogrupować wielkości próbek, lub nil , aby wskazać, że implementacja powinna wybrać liczbę. Wybór zbyt dużej wartości może zniweczyć skutki mieszania próbek w wielu schematach uczenia, prowadząc do słabych wyników. Wybór zbyt małej ilości spowoduje zmniejszenie podobieństwa rozmiarów w danej partii, co doprowadzi do nieefektywności.

    areInAscendingSizeOrder

    predykat, który zwraca true , jeśli rozmiar pierwszego parametru jest mniejszy niż rozmiar drugiego.

  • Rodzaj każdej epoki, zbiór partii próbek.

    Deklaracja

    public typealias Element = Slices<
      Sampling<Samples, Array<Samples.Index>.SubSequence>
    >
  • Zwraca następną epokę w sekwencji.

    Deklaracja

    public func next() -> Element?
Dostępne, gdy `Entropia` == `SystemRandomNumberGenerator`
  • Tworzy instancję rysującą próbki z samples w partie o rozmiarze batchSize .

    Deklaracja

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

    Parametry

    batchesPerSort

    liczba partii, w ramach których można podobnie pogrupować wielkości próbek, lub nil , aby wskazać, że implementacja powinna wybrać liczbę. Wybór zbyt dużej wartości może zniweczyć skutki mieszania próbek w wielu schematach uczenia, prowadząc do słabych wyników. Wybór zbyt małej ilości spowoduje zmniejszenie podobieństwa rozmiarów w danej partii, co doprowadzi do nieefektywności.

    areInAscendingSizeOrder

    predykat, który zwraca true , jeśli rozmiar pierwszego parametru jest mniejszy niż rozmiar drugiego.