Épocas de treinamento não uniformes

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

Uma sequência infinita de coleções de lotes de amostras adequadas para treinar uma DNN quando as amostras não são dimensionadas uniformemente.

Os lotes em cada época:

  • todos têm exatamente o mesmo número de amostras.
  • são formados a partir de amostras de tamanho semelhante.
  • comece com um lote cujo tamanho máximo de amostra seja o tamanho máximo de todas as amostras usadas na época.
  • Cria uma instância extraindo amostras de samples em lotes de tamanho batchSize .

    Declaração

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

    Parâmetros

    entropy

    uma fonte de aleatoriedade usada para embaralhar a ordem das amostras. Será armazenado em self , portanto se for apenas pseudoaleatório e tiver semântica de valor, a sequência de épocas é determinística e não depende de outras operações.

    batchesPerSort

    o número de lotes nos quais agrupar tamanhos de amostra de forma semelhante ou nil para indicar que a implementação deve escolher um número. Escolher um valor muito alto pode destruir os efeitos do embaralhamento de amostras em muitos esquemas de treinamento, levando a resultados ruins. Escolher um valor muito baixo reduzirá a similaridade de tamanhos em um determinado lote, levando à ineficiência.

    areInAscendingSizeOrder

    um predicado que retorna true se o tamanho do primeiro parâmetro for menor que o do segundo.

  • O tipo de cada época, uma coleção de lotes de amostras.

    Declaração

    public typealias Element = Slices<
      Sampling<Samples, Array<Samples.Index>.SubSequence>
    >
  • Retorna a próxima época em sequência.

    Declaração

    public func next() -> Element?
Disponível onde `Entropy` == `SystemRandomNumberGenerator`
  • Cria uma instância extraindo amostras de samples em lotes de tamanho batchSize .

    Declaração

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

    Parâmetros

    batchesPerSort

    o número de lotes nos quais agrupar tamanhos de amostra de forma semelhante ou nil para indicar que a implementação deve escolher um número. Escolher um valor muito alto pode destruir os efeitos do embaralhamento de amostras em muitos esquemas de treinamento, levando a resultados ruins. Escolher um valor muito baixo reduzirá a similaridade de tamanhos em um determinado lote, levando à ineficiência.

    areInAscendingSizeOrder

    um predicado que retorna true se o tamanho do primeiro parâmetro for menor que o do segundo.