ニューラルネットワークをバッチKeras 2.0
Python
のパッケージで訓練しています。以下 は、データとトレーニングパラメータに関するいくつかの情報は次のとおりです。電車の中でニューラルネットワークでは、各エポック後の精度向上は、各バッチ後の精度向上よりも優れています。どうして?
- #samples:414934
- #特徴:590093
- #classes:2(進分類問題)
- バッチサイズ: 1024
- #batches = 406(1024分の414934 = 405.2)以下
は以下のコードのいくつかのログである:
for i in range(epochs):
print("train_model:: starting epoch {0}/{1}".format(i + 1, epochs))
model.fit_generator(generator=batch_generator(data_train, target_train, batch_size),
steps_per_epoch=num_of_batches,
epochs=1,
verbose=1)
(部分)ログ:
train_model:: starting epoch 1/3
Epoch 1/1
1/406 [..............................] - ETA: 11726s - loss: 0.7993 - acc: 0.5996
2/406 [..............................] - ETA: 11237s - loss: 0.7260 - acc: 0.6587
3/406 [..............................] - ETA: 14136s - loss: 0.6619 - acc: 0.7279
404/406 [============================>.] - ETA: 53s - loss: 0.3542 - acc: 0.8917
405/406 [============================>.] - ETA: 26s - loss: 0.3541 - acc: 0.8917
406/406 [==============================] - 10798s - loss: 0.3539 - acc: 0.8918
train_model:: starting epoch 2/3
Epoch 1/1
1/406 [..............................] - ETA: 15158s - loss: 0.2152 - acc: 0.9424
2/406 [..............................] - ETA: 14774s - loss: 0.2109 - acc: 0.9419
3/406 [..............................] - ETA: 16132s - loss: 0.2097 - acc: 0.9408
404/406 [============================>.] - ETA: 64s - loss: 0.2225 - acc: 0.9329
405/406 [============================>.] - ETA: 32s - loss: 0.2225 - acc: 0.9329
406/406 [==============================] - 13127s - loss: 0.2225 - acc: 0.9329
train_model:: starting epoch 3/3
Epoch 1/1
1/406 [..............................] - ETA: 22631s - loss: 0.1145 - acc: 0.9756
2/406 [..............................] - ETA: 24469s - loss: 0.1220 - acc: 0.9688
3/406 [..............................] - ETA: 23475s - loss: 0.1202 - acc: 0.9691
404/406 [============================>.] - ETA: 60s - loss: 0.1006 - acc: 0.9745
405/406 [============================>.] - ETA: 31s - loss: 0.1006 - acc: 0.9745
406/406 [==============================] - 11147s - loss: 0.1006 - acc: 0.9745
私の質問は:そのような精度を向上させ、各エポックの後に何が起こりますか?例えば、第1のエポックの終わりの精度は0.8918であるが、第2のエポックの精度は0.9424の精度が観察される。同様に、第2のエポックの終わりの精度は0.9329であるが、第3のエポックは0.9756の精度で始まる。
第2期の開始時に〜0.8918、第3期の開始時に〜0.9329の精度が期待されます。
は私が各バッチで前方1パスとバッチで訓練サンプルの1つの復路があることを知っています。したがって、各期にには、順方向パスが1つ、逆方向パスが1つ、すべてのトレーニングサンプルがあります。 Keras documentationからまた
:
Epoch: an arbitrary cutoff, generally defined as "one pass over the entire dataset", used to separate training into distinct phases, which is useful for logging and periodic evaluation.
なぜ各エポック内の精度向上がエポックXの端部とエポックX + 1の開始の間の精度の向上よりも小さいですか?
ありがとう!今それは理にかなっています。 – Mockingbird