答案 0 :(得分:0)
它实际上正在运行,您看到的Unknown
是因为fit_generator
似乎无法弄清楚数据集中有多少批次。我尝试在steps_in_epoch
中使用fit_from_generator
参数,这引发了与库有关的其他问题。
一种解决方法是,当您认为性能足够好时,手动停止培训,然后继续笔记本的其余部分。您可以通过按单元格左上方或“运行时菜单”中的“停止”按钮来停止当前执行。
答案 1 :(得分:0)
@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))
@Pedro Asseiro @gokul_uf我会根据您的评论更新上述代码。您需要添加steps_per_epoch
和validation_steps
。我进行的另一项更改是在GPU下运行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。谢谢!
请让我知道是否有任何故障。谢谢!