我在使用Keras训练神经网络模型时遇到这个问题,需要帮助。这个错误是在我尝试运行训练模型时发生的:
WARNING:tensorflow:Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches (in this case, 19990 batches). You may need to use the repeat() function when building your dataset.
代码可以在以下链接找到:
https://colab.research.google.com/drive/1hgQoo7Oz6UPIzQQ4ELwRUuPPNxaOAqeh?usp=sharing
回答:
我建议您使用fit()
方法而不是fit_generator()
方法,因为TensorFlow已经建议您这样做。
然而,回到您的问题上,问题的真正原因是,当使用生成器时,您应该让模型自己计算完成一个epoch所需的步数。如果您手动设置steps_per_epoch
,那么您需要自己正确计算(steps_per_epoch=(data_samples/batch_size)
),如果计算错误,就会出现这个错误(这正是您的情况)。所以,为了避免这个问题,您应该在调用fit_generator()
方法时简单地移除step_per_epoch
参数,让模型自己处理step_per_epoch
的值,这样代码应该就能正常运行了。