我正在尝试使用预先训练的模型,例如Inception v3(在2012 ImageNet数据集上训练过),并将其扩展为几个缺失的类别.
我在Ubuntu 14.04上使用CUDA从源代码构建了TensorFlow,并且像花朵上的转移学习这样的例子非常有用.然而,鲜花示例剥离了最后一层并删除了所有1,000个现有类别,这意味着它现在可以识别5种花,但不能再识别大熊猫. https://www.tensorflow.org/versions/r0.8/how_tos/image_retraining/index.html
如何将5种花类别添加到ImageNet的现有1,000种类别中(并添加针对这5种新花类别的培训),以便我有1,005种类别可将测试图像归类为?换句话说,能够识别那些大熊猫和向日葵吗?
我理解一个选项是下载整个ImageNet训练集和花朵示例集并从头开始训练,但鉴于我目前的计算能力,它需要很长时间,并且不允许我添加,比方说,还有100多个类别.
我的一个想法是将参数设置fine_tune为false在使用5个花类别进行再培训时使最终图层不被剥离:https://github.com/tensorflow/models/blob/master/inception/README.md#how-重新训练一个受过训练的模型在花上的数据,但我不知道如何继续,并且不确定这是否会导致一个有1,005个类别的有效模型.谢谢你的想法.