Tensorflow输入生成器用完了数据

时间:2020-09-10 03:13:44

标签: python tensorflow jupyter tensorflow2.0 kaggle

因此,我尝试在Jupyter中实现此kaggle code,以测试笔记本电脑的性能。 对代码进行了一些修改以适合我的环境版本:

#from scipy.ndimage import imread 
from imageio import imread

在代码块[11]上,我收到以下错误 error message

任何帮助或建议都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

您未正确指定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

通常在将无限数据生成器提供给steps_per_epoch命令时指定fit()参数,如果数据有限,则不需要指定参数。