【发布时间】:2017-05-05 00:46:30
【问题描述】:
使用 tensorflow 源示例中提供的 retrain.py 脚本,我重新训练了 inception-v3 模型的顶层,以便能够对花集(提供的 5 朵花的图像集)进行分类。
我现在要做的是采用新的迁移学习模型(TL-model),并用两组新的花朵对其进行扩展,而无需完全重新训练整个模型。 (5类花-> 7类花)
我的方法:
用 TL 模型替换基本模型 (
inception-v3) 并尝试在启动时构建它。这会导致顶层张量和操作的各种重复以及 softmax 子图的丢失。加载 TL 模型的元图。如果我只需要将新图像添加到模型中已经存在的先前花卉类别中,这种方法似乎效果很好。添加新类别会破坏这种方法并导致其崩溃,因为元图和要训练的新模型之间存在张量大小差异。
恢复检查点,导致与元图相同的问题。
我觉得我从根本上错过了一些东西,并且从错误的方向解决了这个问题。非常感谢任何见解。
【问题讨论】:
-
不幸的是,如果不对模型结构进行一些“脑部手术”,这并不容易。我没有很好的答案,因为我自己从来没有这样做过,但理论上你应该可以将旧的五类全连接层恢复为新的扩展七类版本,然后重新运行训练.
-
@PeteWarden - 您能否将您的评论转换为答案,因为它似乎是找到的最佳答案?谢谢!
标签: tensorflow