Époques d'entraînement non uniformes

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

Une séquence infinie de collections de lots d'échantillons adaptée à la formation d'un DNN lorsque les échantillons ne sont pas de taille uniforme.

Les lots à chaque époque :

  • tous ont exactement le même nombre d’échantillons.
  • sont formés à partir d’échantillons de taille similaire.
  • commencez par un lot dont la taille maximale de l’échantillon est la taille maximale de tous les échantillons utilisés à l’époque.
  • Crée une instance en tirant des échantillons à partir samples dans des lots de taille batchSize .

    Déclaration

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

    Paramètres

    entropy

    une source de hasard utilisée pour mélanger la commande des échantillons. Il sera stocké dans self , donc s'il n'est que pseudo-aléatoire et a une sémantique de valeur, la séquence d'époques est déterministe et ne dépend pas d'autres opérations.

    batchesPerSort

    le nombre de lots sur lesquels regrouper les tailles d'échantillon de la même manière, ou nil pour indiquer que l'implémentation doit choisir un nombre. Un choix trop élevé peut détruire les effets du mélange des échantillons dans de nombreux programmes de formation, conduisant à de mauvais résultats. Un choix trop faible réduira la similarité des tailles dans un lot donné, conduisant à une inefficacité.

    areInAscendingSizeOrder

    un prédicat qui renvoie true si la taille du premier paramètre est inférieure à celle du second.

  • Le type de chaque époque, une collection de lots d'échantillons.

    Déclaration

    public typealias Element = Slices<
      Sampling<Samples, Array<Samples.Index>.SubSequence>
    >
  • Renvoie l'époque suivante dans la séquence.

    Déclaration

    public func next() -> Element?
Disponible où `Entropy` == `SystemRandomNumberGenerator`
  • Crée une instance en tirant des échantillons à partir samples dans des lots de taille batchSize .

    Déclaration

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

    Paramètres

    batchesPerSort

    le nombre de lots sur lesquels regrouper les tailles d'échantillon de la même manière, ou nil pour indiquer que l'implémentation doit choisir un nombre. Un choix trop élevé peut détruire les effets du mélange des échantillons dans de nombreux programmes de formation, conduisant à de mauvais résultats. Un choix trop faible réduira la similarité des tailles dans un lot donné, conduisant à une inefficacité.

    areInAscendingSizeOrder

    un prédicat qui renvoie true si la taille du premier paramètre est inférieure à celle du second.