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
参数,如果您的数据有限,则不需要指定。
所以我试图将此 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
参数,如果您的数据有限,则不需要指定。