Keras进展酒吧展示了什么?

时间:2018-06-14 06:00:33

标签: python 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

我没有找到关于这些酒吧究竟是什么的信息。所以我很欣赏任何见解。

2 个答案:

答案 0 :(得分:0)

如评论中所述:进度条显示每个时期的进度,旨在直接更新到时代结束。通常情况下,进度条已满,并为下一个纪元启动了新的进度条。

有时,根据您启动程序的终端,进度条将开始一个新行。一个很好的例子是Pycharm,你可以在终端或运行选项卡中运行你的python脚本,它们都位于程序的底部。 这里进度条的行为会有所不同,但通常终端选项卡会显示正常和期望的行为。

答案 1 :(得分:0)

我对进度条也有同样的疑问,并发现了这一点:

示例(1) Model 1 Progress Bar

时代很简单!在我的模型中,我定义了“纪元数”为6。

  • 第一部分(第2/6版):表明该模型对所有训练示例进行了两次处理。

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

Training set 1

  • 第二部分(81/81):显示每个时期(每个时期的步数)拟合过程的进度。我的训练集有2569个示例,我的batch_size为32。然后23262/32〜81

示例(2) Model 2 Progress Bar

时代数是80。

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

再次,为什么进度条中显示30/30数字?

Training set 2

  • 第二部分(30/30):来自:训练集有2569个示例,我的batch_size为100。然后: ceil(2935/100) = 30