我在代码中指定批量大小为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
答案 0 :(得分:1)
这是一个非常有趣的问题。负责显示进度条的代码部分是名为progbar
的工具,它定义为here。它接受最小视觉进度更新间隔作为参数,默认设置为0.01
秒。在fit
计算期间打印进度条期间也会使用此默认值,这可能是这种奇怪行为背后的原因。