Keras:为什么没有观察到批量大小与指定的批量大小匹配?

时间:2017-01-30 20:17:01

标签: machine-learning tensorflow neural-network keras

我在代码中指定批量大小为500:

model.fit(x_train, y_train, validation_data=(x_test, y_test), nb_epoch=100, batch_size=500, verbose=1)

当我运行代码时,第一批批量大小为500,之后的批量大小为5000或更大,为什么会发生这种情况?

我认为批量大小的原因是因为模型似乎从第500行到第6000行,即5500行。

Epoch 100/100
  500/31016 [..............................] - ETA: 0s - loss: 0.1659 - acc: 0.7900
 6000/31016 [====>.........................] - ETA: 0s - loss: 0.1679 - acc: 0.7865
11500/31016 [==========>...................] - ETA: 0s - loss: 0.1688 - acc: 0.7850
17000/31016 [===============>..............] - ETA: 0s - loss: 0.1692 - acc: 0.7842
23000/31016 [=====================>........] - ETA: 0s - loss: 0.1694 - acc: 0.7839
29000/31016 [===========================>..] - ETA: 0s - loss: 0.1693 - acc: 0.7841
31016/31016 [==============================] - 0s - loss: 0.1693 - acc: 0.7841 - val_loss: nan - val_acc: 0.6799

1 个答案:

答案 0 :(得分:1)

这是一个非常有趣的问题。负责显示进度条的代码部分是名为progbar的工具,它定义为here。它接受最小视觉进度更新间隔作为参数,默认设置为0.01秒。在fit计算期间打印进度条期间也会使用此默认值,这可能是这种奇怪行为背后的原因。