使用google已经训练好的模型,将最后的全连接层修改为我们自己的全连接层,将原有的1000分类分类器修改为我们自己的5分类分类器,利用原有模型的特征提取能力实现我们自己数据对应模型的快速训练。实际中对于一个陌生的数据集,原有模型经过不高的迭代次数即可获得很好的准确率。
下载数据集,官方提供花数据集
curl -O http://download.tensorflow.org/example_images/flower_photos.tgz
tar xzf flower_photos.tgz
解压之后文件夹包含5个子文件夹,每一个文件夹名称为一种花的名称。平均每一种花有734张图片,都是RGB模式,大小也不同,用程序去处理没有整理过的图片数据。
从github上下载tensorflow(clone or download)
下载好以后进入tensorflow-master->tensorflow->examples->image->retraining->data下将解压后的文件夹放入
在 image_retraining下新建bottleneck文件夹,model是后面执行retrain文件自动下载的,其中保存这InceptionV3模型
python ~/tensorflow-master/tensorflow/examples/image_retraining retrain.py --bottleneck_dir bottleneck --how_many_training_steps 400 --model_dir model --output_graph output_graph.pb --output_labels output_labels.txt --image_dir data/train/
开始训练,结果如下:retrain.py中详细内容参见retrain.py详解或者点击打开链接
tensorboard可视化查看
python ~/anaconda2/envs/tensorflow/lib/python2.7/site-packages/tensorflow/tensorboard/tensorboard.py --logdir==/tmp/retrain_logs
打开浏览器输入http://127.0.1.1:6006