深層学習モデルのトレーニングにおけるエポック、バッチサイズ、反復の意味と違い

ディープネットワークの学習プロセスでは、最適化アルゴリズムは順方向伝播と逆方向伝播の反復トレーニングに使用されます。巨大なデータセットの場合、ネットワークの反復方法、反復回数、および各反復の回数はすべて、ネットワーク学習プロセス理解すべきこと:

1. エポック: モデルのトレーニングに使用されるすべてのデータ。

エポック プロセスとは、すべてのサンプル データをネットワークに入力し、順方向および逆方向の伝播を完了するプロセスを指します。
完全なタスク モデルのトレーニングには、複数のエポックを設定する必要があり、複数ラウンドの反復後に収束します。ただし、一般にデータ量が非常に大きいため、エポックの計算量をコンピュータが読み込むことができないため、通常はいくつかの比較的小さなバッチに分割され、毎回データの一部がネットワークに送信されます。

2.バッチ:パラメータ更新バッチデータ量。

モデル パラメーターの重みの逆伝播更新は、トレーニング セット内のサンプルの一部を使用して実行されます。サンプルのこの小さな部分は「データのバッチ」と呼ばれます。「データのバッチ」のサイズはバッチサイズです。

3. バッチ サイズ: バッチ内のデータの量。

バッチは、毎回トレーニングのためにネットワークに送信されるデータの一部、つまり各バッチ内のトレーニング サンプルの数です。したがって、バッチ サイズの値はコンピュータ機器、特にグラフィックス カードの構成に関連しており、状況に応じて選択する必要があります。

4. 反復: エポックを完了するために必要なバッチの数。

各反復は重みの更新であり、各重みの更新には、順伝播更新パラメーターと逆伝播更新パラメーターの batch_size データが必要です。1 回の反復は、バッチサイズのサンプルで 1 回トレーニングすることと同じです。

5. 例

一个数据集有5000个样本,batch size 为500,则iterations=10,epoch=1

每个 epoch 要训练的图片数量:5000(所有图像)
训练集具有的 batch 个数: 5000/500=10
每个 epoch 需要完成的 batch 个数: 10
每个 epoch 具有的 Iteration个数:10(完成一个batch,相当于参数迭代一次)
每个 epoch 中发生模型权重更新的次数:10

训练 10 个epoch后,模型权重更新的次数: 10*10=100

总共完成300次迭代,相当于完成了 300/10=30 个epoch

具体计算公式为:1个epoch = 训练样本的数量/batch_size
(ps:一个epoch是所有数据融入网络中完成一次前向计算及反向传播的过程)

おすすめ

転載: blog.csdn.net/qq_39237205/article/details/131092808