1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 图像识别——通过tensorflow利用自己的图片数据训练模型——Fine-tuning a model f

图像识别——通过tensorflow利用自己的图片数据训练模型——Fine-tuning a model f

时间:2020-05-07 18:58:08

相关推荐

图像识别——通过tensorflow利用自己的图片数据训练模型——Fine-tuning a model f

本文是基于windows系统,并主要参考:/tensorflow/models/tree/master/research/slim。

要完成自己图片的识别必须使用整个slim文件夹

slim下载链接,先需要下载整个模型包,然后在里面找到slim文件夹:

一、对于官方提供的flower数据集进行图像识别

以下所有程序都在slim文件夹下进行

1. 首先用官方提供的代码下载flower数据集并生成tfrecord格式文件和label文件:

在windows下编写批处理文件(.bat后缀结尾的文本文档):download_and_convert_flower.bat

python download_and_convert_data.py ^ --dataset_name=flowers ^ --dataset_dir="C:\Users\lab2_Zhemin\Yeally\6my_slim\my_data\flower_tfrecord"

打开Anaconda Prompt执行:

后文不再说明如何执行windows批处理文件(.bat文件)

执行后的目录结果如下,一共有10个tfrecord文件和一个label文件:

2.创建数据集描述符:Creating a TF-Slim Dataset Descriptor.

对于flower的tfrecord格式数据,官方已提供好数据集描述符:

如下选中的flower.py文件:

3. 使用train_image_classifier.py(这个脚本在slim文件夹下)训练数据

python train_image_classifier.py ^ --train_dir=C:/Users/lab2_Zhemin/Yeally/6my_slim/train_official_flower/train_log ^ --dataset_name=flowers ^ --dataset_split_name=train ^ --dataset_dir=C:/Users/lab2_Zhemin/Yeally/6my_slim/train_official_flower/dataset/flowers ^ --model_name=inception_v3 ^ --checkpoint_path=C:/Users/lab2_Zhemin/Yeally/6my_slim/checkpoint/inception_v3/inception_v3.ckpt ^ --checkpoint_exclude_scopes=InceptionV3/Logits,InceptionV3/AuxLogits ^ --trainable_scopes=InceptionV3/Logits,InceptionV3/AuxLogits ^ --max_number_of_steps=3000

训练完成的结果:

训练后生成的文件(存的路径:train_dir):

4 评估模型

python eval_image_classifier.py ^ --checkpoint_path=C:\Users\lab2_Zhemin\Yeally\6my_slim\train_official_flower\train_log ^ --eval_dir=C:\Users\lab2_Zhemin\Yeally\6my_slim\train_official_flower\eva_log ^ --dataset_name=flowers ^ --dataset_split_name=validation ^ --dataset_dir=C:\Users\lab2_Zhemin\Yeally\6my_slim\train_official_flower\dataset\flowers ^ --model_name=inception_v3

执行结果:

最后一行的eval/Accuracy【0.915】表示样本数据的正确率(top1)

生成的文件:

6.生成模型图:

python export_inference_graph.py ^ --alsologtostderr ^ --model_name=inception_v3 ^ --output_file=C:\Users\lab2_Zhemin\Yeally\6my_slim\train_official_flower\output_graph\inception_v3_graph.pb ^ -dataset_name flowers

目录下生成的文件:

7.上一步中生成的图只是一个结构框架,不包含参数信息,要生成包含参数信息的图需执行如下批处理文件(冻结图):

python freeze_graph.py ^ --input_graph=C:\Users\lab2_Zhemin\Yeally\6my_slim\train_official_flower\output_graph\inception_v3_graph.pb ^ --input_checkpoint=C:\Users\lab2_Zhemin\Yeally\6my_slim\train_official_flower\train_log\model.ckpt-3000 ^ --input_binary=true ^ --output_graph=C:\Users\lab2_Zhemin\Yeally\6my_slim\train_official_flower\frozen_graph\frozen_inception_v3_flowers.pb ^ --output_node_names=InceptionV3/Predictions/Reshape_1

生成的文件:

8、对生成的模型通过输入图片进行测试:

要在hub master下载hub master,并在这个目录下找到lab_image.py文件,复制到slim文件夹下。

在网上随手下在如下图片(命名为0.jpg):

python label_image.py ^ -image=C:\Users\lab2_Zhemin\Yeally\6my_slim\test\0.jpg ^ --input_layer=input ^ --output_layer=InceptionV3/Predictions/Reshape_1 ^

输出结果:

分类正确

二、对自己的图片数据进行图像识别

后续更新。。。

图像识别——通过tensorflow利用自己的图片数据训练模型——Fine-tuning a model from an existing checkpoint

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。