发布于 2020-04-08 07:51:23
@Pedro Asseiro实际上,迭代器动态地生成数据。因此,数据集迭代器的长度是未知的,直到您至少迭代一次它。您可以将steps_per_epoch参数传递给model.fit_generator,如下所示。然后,它会按照您期望的那样打印出来。
with tf.device("/device:GPU:0"):
  history = model.fit_generator(train_generator, steps_per_epoch=len(train_generator),
                    epochs=epochs, 
                    validation_data=val_generator,validation_steps=len(val_generator))编辑1:
@Pedro Asseiro @gokul_uf我根据你的评论更新了上面的代码。您需要在添加validation_steps的同时添加steps_per_epoch。我做的另一个改变是在图形处理器下运行model.fit。此外,我在微调部分对model.fit做了完全相同的事情。
with tf.device("/device:GPU:0"):
  history_fine = model.fit_generator(train_generator, steps_per_epoch=len(train_generator),
                         epochs=5,
                         validation_data=val_generator,validation_steps=len(val_generator))请检查GitHub gist here。谢谢!
如果有什么不起作用,请告诉我。谢谢!
发布于 2020-04-07 20:53:02
它实际上正在运行,您看到的Unknown是因为fit_generator似乎不知道数据集中有多少批次。我尝试在fit_from_generator中使用steps_in_epoch参数,它抛出了其他与库相关的问题。
一种解决方法是在您认为性能足够好时手动停止训练,然后继续笔记本的其余部分。您可以通过按单元格左上角的“停止”按钮或从“运行时”菜单停止当前的执行。
https://stackoverflow.com/questions/61078742
复制相似问题