Épocas de entrenamiento no uniforme

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

Una secuencia infinita de colecciones de lotes de muestras adecuadas para entrenar un DNN cuando las muestras no tienen un tamaño uniforme.

Los lotes en cada época:

  • todos tienen exactamente el mismo número de muestras.
  • se forman a partir de muestras de tamaño similar.
  • comience con un lote cuyo tamaño máximo de muestra sea el tamaño máximo de todas las muestras utilizadas en la época.
  • Crea una instancia que extrae muestras de samples en lotes de tamaño batchSize .

    Declaración

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

    Parámetros

    entropy

    una fuente de aleatoriedad utilizada para mezclar el orden de las muestras. Se almacenará en self , por lo que si es solo pseudoaleatorio y tiene semántica de valor, la secuencia de épocas es determinista y no depende de otras operaciones.

    batchesPerSort

    el número de lotes entre los cuales agrupar tamaños de muestra de manera similar, o nil para indicar que la implementación debe elegir un número. Una elección demasiado alta puede destruir los efectos de la mezcla aleatoria de muestras en muchos esquemas de entrenamiento, lo que lleva a resultados deficientes. Elegir un tamaño demasiado bajo reducirá la similitud de tamaños en un lote determinado, lo que generará ineficiencia.

    areInAscendingSizeOrder

    un predicado que devuelve true si y sólo si el tamaño del primer parámetro es menor que el del segundo.

  • El tipo de cada época, una colección de lotes de muestras.

    Declaración

    public typealias Element = Slices<
      Sampling<Samples, Array<Samples.Index>.SubSequence>
    >
  • Devuelve la siguiente época en secuencia.

    Declaración

    public func next() -> Element?
Disponible donde `Entropy` == `SystemRandomNumberGenerator`
  • Crea una instancia que extrae muestras de samples en lotes de tamaño batchSize .

    Declaración

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

    Parámetros

    batchesPerSort

    el número de lotes entre los cuales agrupar tamaños de muestra de manera similar, o nil para indicar que la implementación debe elegir un número. Una elección demasiado alta puede destruir los efectos de la mezcla aleatoria de muestras en muchos esquemas de entrenamiento, lo que lleva a resultados deficientes. Elegir un tamaño demasiado bajo reducirá la similitud de tamaños en un lote determinado, lo que generará ineficiencia.

    areInAscendingSizeOrder

    un predicado que devuelve true si y sólo si el tamaño del primer parámetro es menor que el del segundo.