在拟合模型和评估其性能时,如何显示进度条?我知道如何让它可见,但它是基于什么?
我制作了一个简单的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
我没有找到关于这些酒吧究竟是什么的信息。所以我很欣赏任何见解。
答案 0 :(得分:0)
如评论中所述:进度条显示每个时期的进度,旨在直接更新到时代结束。通常情况下,进度条已满,并为下一个纪元启动了新的进度条。
有时,根据您启动程序的终端,进度条将开始一个新行。一个很好的例子是Pycharm,你可以在终端或运行选项卡中运行你的python脚本,它们都位于程序的底部。 这里进度条的行为会有所不同,但通常终端选项卡会显示正常和期望的行为。
答案 1 :(得分:0)
我对进度条也有同样的疑问,并发现了这一点:
时代很简单!在我的模型中,我定义了“纪元数”为6。
但是进度条的81/81是什么?
时代数是80。
再次,为什么进度条中显示30/30数字?
ceil(2935/100) = 30