Tensorflow 输入生成器 运行 数据不足

Tensorflow input generator ran out of data

所以我试图将此 kaggle code 实施到我的 Jupyter 中以测试笔记本电脑的性能。 对代码进行了一些修改以适应我的环境版本:

#from scipy.ndimage import imread 
from imageio import imread

块[11]后,我收到如下错误

如有任何帮助或建议,我们将不胜感激。

您指定的 step_per_epoch 不正确。

steps_per_epoch应该等于

steps_per_epoch = ceil(number_of_samples / batch_size)

针对您的情况

steps_per_epoch = ceil(1161 / 16) = ceil(72.56) = 73

尝试指定 steps_per_epoch = 73

尽你所能,你的全部数据在 73 个步骤中耗尽。现在,如果您指定 steps_per_epoch 任何高于 73 的值,即 74

没有可用的数据。因此你得到 input generator ran out of data

更多信息: 模型训练包括前传和后传两部分。

1 train step = 1 forward pass + 1 backward pass

单个训练步骤(1 次前向传递 + 1 次反向传递)是在单个批次上计算的。

因此,如果您有 100 个样本并且您的批量大小为 10
您的模型将有 10 个训练步骤。

Epoch:Epoch 被定义为对数据集的完整迭代。 因此,要让您的模型完全迭代 100 个样本的数据集,它应该经过 10 个训练步骤。

这一步只是 steps_per_epoch

当您为 fit() 命令提供无限数据生成器时,通常会指定 steps_per_epoch 参数,如果您的数据有限,则不需要指定。