НеравномерноеОбучениеЭпохи

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 тогда и только тогда, когда размер первого параметра меньше размера второго.