首页 > 解决方案 > 使用 TensorFlow 进行迁移学习(MobileNet)

问题描述

在迁移学习中,我认为我的 model.fit_generator 进入了无限循环。我不知道怎么做。这是我的 Colab 笔记本链接https://colab.research.google.com/drive/1o9GNCQdMeh4HZdiZ5QAjiDDkixn-OsXx

这是 model.fit_generator 的图像

标签: tensorflowtransfer-learningmobilenet

解决方案


如果您按如下方式更新最后一行,则 5 个 epoch 大约需要 40 秒。

model.fit_generator(train_generator, epochs=5, validation_data=valid_generator)

model.fit_generator(train_generator, epochs=5, steps_per_epoch=len(train_generator), validation_data=valid_generator, validation_steps=len(valid_generator))

当 model.fit 的输入是生成器时,请检查预期内容的描述。因此,当 'steps_per_epoch' 为 None 时,epoch 将运行直到输入数据集耗尽。因此,如果您的数据集是无限重复的数据集,则生成器将无限运行。

steps_per_epoch:整数或无。在宣布一个时期完成并开始下一个时期之前的步骤总数(样本批次)。当使用输入张量(例如 TensorFlow 数据张量)进行训练时,默认的 None 等于数据集中的样本数除以批量大小,如果无法确定,则为 1。如果 x 是 tf.data 数据集,并且 'steps_per_epoch' 为 None,则 epoch 将运行直到输入数据集耗尽。传递无限重复数据集时,您必须指定 steps_per_epoch 参数。数组输入不支持此参数。


推荐阅读