如何解决您的输入数据用完了
history = model.fit_generator(
train_generator,steps_per_epoch=50,epochs=10,verbose=1,validation_data = validation_generator,validation_steps=50)
tensorflow:您的输入数据用完;中断训练。确保您的数据集或生成器至少可以生成steps_per_epoch * epochs
个批次(在这种情况下为5000个批次)。构建数据集时,可能需要使用repeat()函数。
解决方法
要解决此问题,我们需要注意两项:
- 如何定义批处理大小,batch_size和steps_per_epoch。 简单的答案是steps_per_epoch = total_train_size // batch_size
- 如何为训练过程定义最大纪元数。 这不像第一个那么简单。
大多数答案都涵盖了第一个主题,第二个我找不到很好的答案,请尝试解释如下:
我的火车数据集包含93个数据样本,batch_size为32,因此第一个问题是: steps_per_epoch = total_train_size // batch_size = 93 // 32 = 2
对于第二个问题,这将取决于您的数据生成器可以提供多少不重复的批次,如果我有93个数据样本,每个批次需要32个两个样本,那么每个时期都有2个训练步骤。您将有93 // 2 = 46个纪元,这些纪元将不能提供重复的批处理,纪元47将导致此错误。
我没有找到有关tensorflow数据生成器的参考,所以这只是我的理解,如果有任何错误,请纠正我,谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。