inception_v3迁移学习(GoogleNet)

先上Paper列表:
[v1] Going Deeper with Convolutions, 6.67% test error, http://arxiv.org/abs/1409.4842
[v2] Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift, 4.8% test error, http://arxiv.org/abs/1502.03167
[v3] Rethinking the Inception Architecture for Computer Vision, 3.5% test error, http://arxiv.org/abs/1512.00567
[v4] Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning, 3.08% test error, http://arxiv.org/abs/1602.07261
推荐参考博客:
http://blog.csdn.net/cv_family_z/article/details/50789805
http://blog.csdn.net/stdcoutzyx/article/details/51052847
http://blog.csdn.net/langb2014/article/details/52787095
Github上面有写好的这几个版本的python实现:
https://github.com/soeaver/caffe-model
https://github.com/titu1994/Inception-v4

inception v3是个非常大的网络,所以如果数据量较小,应该考虑使用迁移学习。即:只重新训练最后的全连接层,前面的卷积层和mix等层不用修改。
ok, show me the code
第一步:下载网络结构

下载完了后,会看到classify_image_graph_def.pb这个就是模型的文件,剩下的有label标记文件告诉你哪个标注对应哪个。。。等。
ok,下载了网络之后,我们进入下一步,第二步:数据准备
掏出你的数据,有几个分类就放几个文件夹中。比如 你要识别两类,猫和狗 那么猫放在一个文件夹,狗放在另一个文件夹,并给文件夹起相对应的名字。

好的,我们开始第三步:
第三步:迁移学习
我们从github上下载tensorflow关于inception v3迁移学习的源码。
地址:github.com/tensorflow/tensorflow
把代码Clone下来
然后打开项目的tensorflow/examples/image_retraining下的retrain.py文件。执行他即可。

但是执行的时候你需要为这个python脚本输入一些参数。
于是来到了第四步:
第四步:执行脚本
我写了一个shell命令,然后执行该脚本即可。
python3 /home/yyy/Downloads/inception_tensorflow_donload/retrain.py –image_dir /home/yyy/Downloads/cat_dog_data/ –bottleneck_dir /home/yyy/Downloads/inception_tensorflow_donload/bottleneck/ –how_many_training_steps 2000 –model_dir /home/yyy/Downloads/inception_tensorflow_donload/ –output_graph output_graph.pb –output_labels output_labels.txt
第一个参数 –image_dir 说了所需训练的文件地址
第二个参数 –bottleneck_dir 需要你新建一个bottleneck文件价,专门放每个训练图片均值的,不然你会发现 会生成一大堆 某个图片.txt 。。。。嗯,这个文件夹就是放这玩意的。
第三个参数 –model_dir 告诉脚本去哪找模型,他会在该地址下自动检索那个.pb的模型的。
第四个参数 –output_graph 告诉他生成的新模型的名字
第五个参数 –output_labels 告诉他生成对应标签的文件名字
第六个参数 –how_many_training_steps 迭代多少步

执行完了会生成output_graph.pb的文件,这个就是最后的模型。

第五步:执行预测脚本
告诉他模型是哪个,启动预测脚本开始预测新图片。

ok,代码源码都在我的CSDN项目里。
https://code.csdn.net/qq_25552539/inception_v3__transfor_learning/tree/master
也可以从我的github下载
https://github.com/y1129800378/tensorflow_demo/tree/master

如果第二次再跑时候出错,删除tmp目录下的imagenet和 retrain_logs文件

你可能感兴趣的:(深度学习,迁移学习)