重新训练Tensorflow的最后一层,但仍使用先前的Imagenet类

11

我的目标是“添加”更多类别到Tensorflow Inception自带的1000个Imagenet类别中。现在,我可以通过重新训练整个模型,使用bazel-bin/inception/imagenet_train来实现,但每次添加一个新类别都需要很长时间。

是否可以使用bazel-bin/tensorflow/examples/image_retraining/retrain --image_dir ~/flower_photos,然后将其加入到现有的标签输出文件中?

抱歉,我是一名新手。


我想强调一下,对于那些试图回答这个问题的人来说,您是希望添加新类而仍保留现有类。这是个很好的问题。 - Anton Codes
嗨。我想知道在这个领域里是否有什么新的东西? - Marion
2个回答

1
你可以大胆地添加第二个倒数层,它也引用了倒数第二层...当然,如果你想多次执行该过程,那么这种方法不太实用,有些像“hack”。
另外,你可以替换输出层,在这之前,需要手动保存该层的先前权重,然后使用像 optimistic restore 这样的东西重新加载整个网络,并手动添加旧的权重到现在更大的权重矩阵中。

enter image description here


0

给训练好的分类器网络添加新类别并没有标准解决方案,这不是一项简单的任务。我建议先阅读Learning Without Forgetting及其相关工作,了解现有方法的概述,然后选择其中之一。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接