Tensorflow 2.0 中的第一个纪元训练未完成

Training does not complete it's first epoch in Tensorflow 2.0

我正在尝试使用 Tensorflow 2.0 在 Google 的 Colab 中训练模型。然而,训练并没有完成它的第一个纪元。计步器已达到 "unknown" 的 9144(并且仍在继续):

为什么显示消息 "unknown"?

这是我的顺序模型:

感谢您的帮助。

您正在使用 tf.data 的数据集 api,其中数据不一定加载到内存中,因此无法知道数据集有多长,因此无法知道数据集的数量无法计算批次。因此,在第一个时期,它是未知的,但在第一个时期之后,分母将显示正确的数字。

否则,如果您希望在第一个纪元本身看到它,在 model.fit() 中,您可以通过使用其中的 steps_per_epoch 参数自行设置批次数,然后您将在第一个时代不再未知。但是为此,请确保您的数据集重复使用 repeat() 操作的时期数。

编辑

repeat() 是一个数据集操作,它将根据您希望的次数重复数据集。因此,您将看到数据集中所有元素的次数与设置重复计数的次数一样多。

我遇到了同样的问题,但是在一个时期完成后,模型知道每个 batch.So 中有多少数据,之后它以正确的格式显示。

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