首页 > 解决方案 > Keras 进度条显示什么?

问题描述

在拟合模型和评估其性能时,进度条是如何显示的?我知道如何让它可见,但它基于什么?

Sequential我做了一个有几层的简单模型,编译并开始训练:

# x.shape: (3270, n)
# y.shape: (3270, 1)
model.fit(x, y, epochs=20, batch_size=300)

如果我正确阅读了文档,这就是内部应该发生的事情:迭代数据,以便优化步骤仅考虑每个批次的批次大小的数据量,直到数据集用完为止。然后开始下一个纪元。

对于大批量大小,时期的进度条保持固定,似乎是整个训练数据的批量大小:

 300/3270 [=>............................] - ETA: 0s - loss: 0.4178 - acc: 0.8433
3270/3270 [==============================] - 0s 9us/step - loss: 0.3813 - acc: 0.8593
Epoch 17/20

但是对于较小的尺寸,似乎有更多和不同数量的条,它们实际上显示了一些运动。

  30/3270 [..............................] - ETA: 0s - loss: 0.5154 - acc: 0.8333
1770/3270 [===============>..............] - ETA: 0s - loss: 0.3560 - acc: 0.8621
3270/3270 [==============================] - 0s 29us/step - loss: 0.3631 - acc: 0.8618
Epoch 19/20

  30/3270 [..............................] - ETA: 0s - loss: 0.3360 - acc: 0.8667
1620/3270 [=============>................] - ETA: 0s - loss: 0.3473 - acc: 0.8667
3120/3270 [===========================>..] - ETA: 0s - loss: 0.3599 - acc: 0.8622
3270/3270 [==============================] - 0s 33us/step - loss: 0.3592 - acc: 0.8621
Epoch 20/20

我没有找到关于这些条到底显示什么的信息。所以我很感激任何见解。

标签: pythonkeras

解决方案


我对进度条有同样的疑问,发现了这个:

示例(1) 模型 1 进度条

时代是直截了当的!在我的模型中,我将 Epochs 定义为 6。

  • 第一部分(Epoch 2/6):表明模型已经对所有的训练样例进行了两次处理。

但是进度条的 81/81 部分是什么?

训练集 1

  • 第二部分(81/81):展示每个epoch的拟合过程进度(steps per epoch)。我的训练集有 2569 个样本,我的 batch_size 是 32。然后是 23262/32 ~81

示例(2) 模型 2 进度条

纪元数为 80。

  • 第一部分(Epoch x/80):表明模型已经处理了所有训练样例 x 次。

再说一次,为什么进度条上会显示 30/30 的数字?

训练集 2

  • 第二部分(30/30):来自:训练集有2569个样本,我的batch_size是100。那么: ceil(2935/100) = 30

推荐阅读