我正在尝试使用Tensorflow 2.0在Google的Colab中训练模型。但是,培训并没有完成它的第一个纪元。计步器已达到“未知”的9144(并且仍在运行):
为什么显示“未知”消息?
这是我的顺序模型:
感谢您的帮助。
答案 0 :(得分:2)
您正在使用tf.data的Dataset API,其中数据不一定加载到内存中,因此无法知道数据集有多长时间,因此无法计算批数。因此,在第一个时期,它是未知的,但是在第一个时期之后,分母将显示正确的数字。
否则,如果您希望在第一个纪元本身中看到它,则可以在model.fit()
中使用steps_per_epoch
参数自己设置批次数,这样就不会得到在第一个时代再次未知。但这要确保使用repeat()
操作将您的数据集重复的次数等于时期数。
修改
repeat()
是一个数据集操作,它将重复该数据集所需的次数。这样,您将在设置重复次数时看到数据集中的所有元素多次。
答案 1 :(得分:0)
我遇到了同样的问题,但是在完成一个纪元后,模型知道每批中有多少数据。因此,它以正确的格式显示。
Epoch 1/10
219/219 [==============================] - 240s 1s/step - loss: -53.7426 - binary_accuracy: 0.1001 - val_loss: 0.0000e+00 - val_binary_accuracy: 0.0000e+00
Epoch 2/10
219/219 [==============================] - 20s 90ms/step - loss: -53.6805 - binary_accuracy: 0.1001 - val_loss: -53.3822 - val_binary_accuracy: 0.1003