不均一なトレーニングエポック

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

    最初のパラメータのサイズが 2 番目のパラメータのサイズより小さい場合に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

    最初のパラメータのサイズが 2 番目のパラメータのサイズより小さい場合にtrueを返す述語。