次の方法で共有


CNTKの BrainScript epochSize

Python ユーザーについては、 こちらを参照してください

各エポック内の ラベル サンプル (動的軸に沿ったテンソル) の数。 epochSize CNTK内は、特定の追加アクションが実行された後のラベル サンプルの数です。

  • チェックポイント モデルの保存 (ここからトレーニングを再開できます)
  • クロス検証
  • 学習率の制御
  • minibatch-scaling

ラベル サンプルの数の定義は 、minibatchSize (minibatch_size_in_samples) に使用されるサンプルの数に似ています。 の定義epochSizeは、入力サンプルではなくラベルサンプルであるというepochSize意味で定義minitbatchSizeとは異なります。

したがって、重要なのは、シーケンシャル データの場合、サンプルはシーケンスの個々の項目です。 したがって、CNTKは多数epochSizeシーケンスではなく、ミニバッチを構成するシーケンス ラベル全体のシーケンス項目を参照します。

同様に重要なのは、入力サンプルではなく ラベル サンプルであり、シーケンスあたりのラベルの数が必ずしも入力サンプルの数であるとは限りません。 たとえば、シーケンスごとに 1 つのラベルを持ち、シーケンスごとに多数のサンプルを持つことができます (その場合 epochSize はシーケンス数のように機能します)、シーケンス内のサンプルごとに 1 つのラベルを持つことができます。その場合 epochSize は、すべてのサンプル (シーケンスではなく) がカウントされるのとまったく同じように minibatchSize 機能します。

データセット サイズが小さい場合、多くの場合、 epochSize データセット サイズと同じ値が設定されます。 BrainScript では、これを示す 0 を指定できます。 Python では、これを指定 cntk.io.INFINITELY_REPEAT できます。 Python でのみ、データ サイズ全体を cntk.io.FULL_DATA_SWEEP 1 回渡した後に処理が停止する場所に設定することもできます。

大規模なデータセットの場合は、チェックポイント処理によって epochSize の選択をガイドすることができます。 たとえば、停電やネットワーク障害が発生した場合に最大 30 分の計算を失う場合は、約 30 分ごとにチェックポイントを作成する必要があります (そこからトレーニングを再開できます)。 計算に約 30 分かかるサンプルの数を選択 epochSize します。