网上关于这个的博文很多,作为一个新手想要弄明白并且实现,还需要折腾一番。以下是我的实现过程,希望对像我一样的新手有帮助!
步骤:
1、下载google的inception-v3模型,链接:http://download.tensorflow.org/models/image/imagenet/inception-2015-12-05.tgz
2、准备自己的训练图片:我建立了一个images文件夹,在里面又建立了5个子文件夹(cats、dogs、planes、houses、guitars)
注意:此处一定要像我一样分类建立好文件夹,然后将训练的图片放入相应的文件夹中
3、进入github,下载的tensorflow(https://github.com/tensorflow/tensorflow)里image_retraining文件里面的retrain.py文件,此具体路径:tensorflow——examples——image_retraining——retrain.py。但是,可能有人按这个路径进入后发现没有这个文件,如下图:
原因是tensorflow的版本问题。tensorflow1.7版本及以上会安装tensorflow hub来获取bottleneck的输出,训练最后最后一层;以前的版本是采用冻结bottleneck层之前的参数,来得到bottleneck的输出 ,方法上是有差异的。我的tensorflow是1.3版本的,所以操作如下图:先在左侧Branch下拉菜单中选择自己的tensorflow版本(我的r1.3),然后右侧点击下载压缩包,解压后在上面的路径中就能找到该文件。
4、命令行参数的输入:用python编辑器打开retrain.py文件,有几个地方需要填入文件路径
1)训练图片路径(上文建立的images文件夹的路径):default='/home/lg/tensorflow/GoogleNet/retrain/data/train/'(这是我的路径,填写自己的路径)
2)训练完成后存放模型的路径:当然这儿有默认的,我把它改成了自己的default=‘/home/lg/tensorflow/GoogleNet/retrain/output_graph.pb’
3) 输出标签文件路径:我也把它改成了自己的default=‘/home/lg/tensorflow/GoogleNet/retrain/output_labels.txt’
4)训练步数:可以自己调整
5)模型路径:此处模型路径是一开始下载的inception-v3模型存放的路径,default=‘/home/lg/tensorflow/GoogleNet/inception_model’(我的存放路径,填写自己的)
6)瓶颈文件存放路径:default=‘/home/lg/tensorflow/GoogleNet/retrain/bottleneck’(我的存放路径,这里我建立了一个bottleneck文件夹用来存放此文件,填写自己的)
5、完成以上步骤,就可以运行训练自己的模型了。
运行报错:我在运行过程中,最后一行出现了System.Exit的报错,这个报错是求解器请求退出
我的解决方案:把最后一行改成如下形式(我是忽略掉这个报错,这只是我的解决方法,还有别的方法具体就不在这儿说了,可以自己去查)
try:
tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
except System.Exit:
pass
大概就是这样,至于验证训练处出的模型的识别效果如何,这边我也不多说了,可以去网上搜搜代码,给个视频教程吧https://www.bilibili.com/video/av35974848/?p=9