首页 >> 大全

tensorflow/models中slim学习记录(0)-slim的初次使用

2023-09-11 大全 21 作者:考证青年

文章目录 微调评估导出

前言

slim的好处在于,中已经准备好了许多神经网络,做迁移学习时就连网络的代码都不需要自己重写,只需要指定名字就行了。下面的几个例子都不会重写的代码,而是在cmd中调用slim封装好的模型。

安装

由于slim在当中,所以安装就能使用了。

pip

然后将模块下载下来放入,具体可见

使用 准备数据

上只给出了linux下准备的代码

$ DATA_DIR=/tmp/data/flowers
$ python download_and_convert_data.py \--dataset_name=flowers \--dataset_dir="${DATA_DIR}"

新建一个.cmd文件,写入如下代码

SET DATA_DIR=./tmp/flowers
SET PATHON_HOME=D:/Python/Python37
SET SLIM_PATH=%PATHON_HOME%/Lib/site-packages/tensorflow/models/research/slim
python %SLIM_PATH%/download_and_convert_data.py^--dataset_name=flowers^--dataset_dir="${DATA_DIR}"

打开cmd,进入当前目录,输入刚刚新建的文件名,回车运行即可

如果下载太慢,可以直接访问,下载后解压到’’./tmp/’即可。

训练

上给的案例也是Linux下的,下不能用

DATASET_DIR = / tmp / imagenet 
TRAIN_DIR = / tmp / train_logs 
python train_image_classifier.py \ --train_dir = $ {TRAIN_DIR} \ --dataset_name = imagenet \ --dataset_split_name = train \ --dataset_dir = $ {DATASET_DIR} \ --model_name = inception_v3

下新建一个文本文档,命名为train.cmd,需要修改

SET DATASET_DIR=./tmp/flowers 
SET TRAIN_DIR=./tmp/train_logs
SET PATHON_HOME=D:/Python/Python37
SET SLIM_PATH=%PATHON_HOME%/Lib/site-packages/tensorflow/models/research/slim
python %SLIM_PATH%/train_image_classifier.py --train_dir=%TRAIN_DIR%^--dataset_dir=%DATASET_DIR%^--dataset_name=flowers^--dataset_split_name=train^--model_name=inception_v3

然后在cmd可以运行,gpu不会出错,但是cpu训练会报错

(see above for ): a for //////: node ////// ( at D:\\\Lib\site-\\\\slim\nets\.py:104) was to /:GPU:0 but are [ /job:/:0/task:0/:CPU:0 ]. Make sure the to a valid . The to be a GPU, but CUDA is not . [[node ////// ( at D:\\\Lib\site-\\\\slim\nets\.py:104) ]]

需要将er.py文件44行的cpu改为True

之后就能成功运行了,Ctrl+C终止运行

然后 -- ./tmp/可以在webUI界面查看训练的情况

微调

先选择微调的模型并下载解压,下面演示的是的。

linux的命令

$ CHECKPOINT_DIR = / tmp / checkpoints 
$ mkdir $ {CHECKPOINT_DIR} 
$ wget http://download.tensorflow.org/models/inception_v3_2016_08_28.tar.gz 
$ tar -xvf inception_v3_2016_08_28.tar.gz 
$ mv inception_v3.ckpt $ {CHECKPOINT_DIR} 
$ rm inception_v3_2016_08_28.tar.gz

则在’./tmp’下新建一个文件夹,将想要微调的模型放进去。既可以是上下载的,也可以是自己刚刚训练的。

上给出的也是linux下的命令

$ DATASET_DIR=/tmp/flowers
$ TRAIN_DIR=/tmp/flowers-models/inception_v3
$ CHECKPOINT_PATH=/tmp/my_checkpoints/inception_v3.ckpt
$ python train_image_classifier.py \--train_dir=${TRAIN_DIR} \--dataset_dir=${DATASET_DIR} \--dataset_name=flowers \--dataset_split_name=train \--model_name=inception_v3 \--checkpoint_path=${CHECKPOINT_PATH} \--checkpoint_exclude_scopes=InceptionV3/Logits,InceptionV3/AuxLogits \--trainable_scopes=InceptionV3/Logits,InceptionV3/AuxLogits

下新建文件.cmd,写入如下代码

SET DATASET_DIR=./tmp/flowers
SET TRAIN_DIR=./tmp/flowers-models/inception_v3
SET CHECKPOINT_PATH=./tmp/my_checkpoints/inception_v3.ckpt
SET PATHON_HOME=D:/Python/Python37
SET SLIM_PATH=%PATHON_HOME%/Lib/site-packages/tensorflow/models/research/slim
python %SLIM_PATH%/train_image_classifier.py^--train_dir=%TRAIN_DIR%^--dataset_dir=%DATASET_DIR%^--dataset_name=flowers^--dataset_split_name=train^--model_name=inception_v3^--checkpoint_path=%CHECKPOINT_PATH%^--checkpoint_exclude_scopes=InceptionV3/Logits,InceptionV3/AuxLogits^--trainable_scopes=InceptionV3/Logits,InceptionV3/AuxLogits

记得修改自己的,要指向自己想微调的模型,在cmd中运行即可

评估

linux下的命令

CHECKPOINT_FILE = ${CHECKPOINT_DIR}/inception_v3.ckpt  # Example
$ python eval_image_classifier.py \--alsologtostderr \--checkpoint_path=${CHECKPOINT_FILE} \--dataset_dir=${DATASET_DIR} \--dataset_name=imagenet \--dataset_split_name=validation \--model_name=inception_v3

下,新建一个.cmd文件,需要将和和自己的文件对应上。

SET DATASET_DIR=./tmp/flowers
SET CHECKPOINT_DIR=./tmp/flowers-models/inception_v3
SET CHECKPOINT_FILE=%CHECKPOINT_DIR%/model.ckpt-0
SET PATHON_HOME=D:/Python/Python37
SET SLIM_PATH=%PATHON_HOME%/Lib/site-packages/tensorflow/models/research/slim
python %SLIM_PATH%/eval_image_classifier.py^--alsologtostderr^--checkpoint_path=%CHECKPOINT_FILE%^--dataset_dir=%DATASET_DIR%^--dataset_name=flowers^--dataset_split_name=validation^--model_name=inception_v3

接着在cmd中运行,可以看到评估的结果

导出

linux下的

$ python export_inference_graph.py \--alsologtostderr \--model_name=inception_v3 \--output_file=/tmp/inception_v3_inf_graph.pb$ python export_inference_graph.py \--alsologtostderr \--model_name=mobilenet_v1 \--image_size=224 \--output_file=/tmp/mobilenet_v1_224.pb

下的,新建一个.cmd文件

SET PATHON_HOME=D:/Python/Python37
SET SLIM_PATH=%PATHON_HOME%/Lib/site-packages/tensorflow/models/research/slim
python %SLIM_PATH%/export_inference_graph.py^--alsologtostderr^--model_name=inception_v3^--output_file=/tmp/inception_v3_inf_graph.pbpython %SLIM_PATH%/export_inference_graph.py^--alsologtostderr^--model_name=mobilenet_v1^--image_size=224^--output_file=/tmp/mobilenet_v1_224.pb

在cmd运行时,阻塞的话,回车一下能获得结果

tmp下可以看到生成了两个pb文件

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了