tensorflow - 使用 TensorFlow 进行迁移学习(MobileNet)
问题描述
在迁移学习中,我认为我的 model.fit_generator 进入了无限循环。我不知道怎么做。这是我的 Colab 笔记本链接https://colab.research.google.com/drive/1o9GNCQdMeh4HZdiZ5QAjiDDkixn-OsXx
解决方案
如果您按如下方式更新最后一行,则 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 参数。数组输入不支持此参数。
推荐阅读
- python - Matplotlib.pyplot - 如何将直方图保存在变量中以供以后访问?
- python - Discord.py 赠品命令
- angular - 尝试使用 ReactiveFormsModule 创建登录表单时出现两个 TypeError
- r - 如何让 R 使用过去两个月创建数据框
- javascript - 使用 Postgres 和 HTML 更新我通过 Express 中的表单获得的数据
- python - 输出中的括号
- excel - 如果两个单元格匹配并且第三个单元格等于特定值,则返回第四个单元格中的值
- c# - 如何在列表中插入新项目<>检查 id 是否重复?
- r - 用 R 过滤相关矩阵及其 p 值矩阵
- javascript - 如何替换包含参数以符合 CSP 规则的内联事件处理程序(onmousedown、onmouseover、onmouseout、...)?