【发布时间】:2019-01-05 12:05:24
【问题描述】:
我正在尝试使用像 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 中现有的 1000 个类别中(并为这 5 个新花卉类别添加训练),以便我有 1005 个类别可以将测试图像分类为?换句话说,能够同时识别那些熊猫和向日葵?
我知道一种选择是下载整个 ImageNet 训练集和花卉示例集并从头开始训练,但鉴于我目前的计算能力,这需要很长时间,并且不允许我添加,比如说,未来还有 100 个类别。
我的一个想法是在使用 5 个花卉类别进行重新训练时将参数 fine_tune 设置为 false,这样最后一层就不会被剥离:https://github.com/tensorflow/models/blob/master/inception/README.md#how-to-retrain-a-trained-model-on-the-flowers-data,但我不确定如何继续,并且不确定这是否会产生包含 1,005 个类别的有效模型。感谢您的想法。
【问题讨论】:
标签: machine-learning tensorflow