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
我没有找到关于这些条到底显示什么的信息。所以我很感激任何见解。
解决方案
我对进度条有同样的疑问,发现了这个:
时代是直截了当的!在我的模型中,我将 Epochs 定义为 6。
- 第一部分(Epoch 2/6):表明模型已经对所有的训练样例进行了两次处理。
但是进度条的 81/81 部分是什么?
- 第二部分(81/81):展示每个epoch的拟合过程进度(steps per epoch)。我的训练集有 2569 个样本,我的 batch_size 是 32。然后是 23262/32 ~81
纪元数为 80。
- 第一部分(Epoch x/80):表明模型已经处理了所有训练样例 x 次。
再说一次,为什么进度条上会显示 30/30 的数字?
- 第二部分(30/30):来自:训练集有2569个样本,我的batch_size是100。那么:
ceil(2935/100) = 30
推荐阅读
- amazon-s3 - S3 使用预签名 URL 上传和提供图像
- python - Python-NumPy 对每一行进行不同的切片
- c - 打印小写、大写和数字个数
- javascript - 在香草javascript中获取事件目标的ID
- node.js - 如何根据正则表达式从 Google Cloud Storage 存储桶中获取文件?
- javascript - 为什么我在执行“for循环”以在ChartJS中显示“datasets.data”后只得到一个值
- .net - Application Insights - 从 .net 核心中间件添加属性
- scala - Scala 循环中的代码效率,向上计数还是向下计数?
- erlang - 二进制和 Unicode 字符串
- vim - 几个 vim/emmet 命令命令不起作用