caffe框架图像处理常用命令
2017-01-14 17:19
609 查看
以下均以caffe根目录和mnist例子为准(前提是mnist图片已下载且train/test.txt已生成,若未完成,请参考从以下文章:http://www.cnblogs.com/denny402/p/5083300.html):
(1)使用caffe自带的convert_imageset可执行文件将图片格式转化为lmdb格式(自带的下载文件已经转化好了,这里是指将自己的训练图片转化格式的方法)命令:sudo ./build/tools/convert_imageset --shuffle=true /home/xxx/caffe/examples/mnist/
./examples/mnist/train/train.txt examples/mnist/train/train_lmdb
参数:可执行文件地址 参数组 图片数据地址 train.txt地址 格式转化数据的保存地址
(以上是train图片,test图片更改相应目录地址就可以)
(2)使用caffe自带compute_image_mean可执行文件生成mnist手写字的均值文件命令:
sudo ./build/tools/compute_image_mean
examples/mnist/train/train_lmdb examples/mnist/mnist_mean.binaryproto
参数:可执行文件地址 转化格式后的训练数据地址 均值文件包保存地址
(3)使用caffe自带的caffe可执行文件生成mnist训练模型命令:
sudo ./build/tools/caffe train --solver=examples/mnist/solver.prototxt
参数:可执行文件地址 参数 配置文件地址
(4)使用caffe自带的mnist模型训练好后,使用该模型测试手写字识别精度的命令:
sudo ./build/tools/caffe test --model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel
参数:可执行文件地址 网络模型地址 训练模型地址
(5)使用caffe的CPP版本的calssification.bin对单张手写字进行分类命令:
(4.JPEG是自己的待测图片,复制到mnist/下即可)
注意:上述有两个文件未解释,分别是deploy.prototxt和synset_works.txt。
deploy.prototxt是根据我们训练模型时使用模型文件修改首尾部而来,我是用的训练模型文件是lenet_train_test.prototxt,可如下修改,
1)将原文件首部的如下两个数据层删除,然后添加自己的数据输入层:
2)删除尾部的Accuracy和loss层,如下:
添加:
synset_works.txt文件就是examples/mnist/test/labels.txt文件,内容为:
到此为止,测试单张图片的文件都准备完了,使用上述./build/examples/cpp_classification/classification.bin命令就可以进行测试。
(1)使用caffe自带的convert_imageset可执行文件将图片格式转化为lmdb格式(自带的下载文件已经转化好了,这里是指将自己的训练图片转化格式的方法)命令:sudo ./build/tools/convert_imageset --shuffle=true /home/xxx/caffe/examples/mnist/
./examples/mnist/train/train.txt examples/mnist/train/train_lmdb
参数:可执行文件地址 参数组 图片数据地址 train.txt地址 格式转化数据的保存地址
(以上是train图片,test图片更改相应目录地址就可以)
(2)使用caffe自带compute_image_mean可执行文件生成mnist手写字的均值文件命令:
sudo ./build/tools/compute_image_mean
examples/mnist/train/train_lmdb examples/mnist/mnist_mean.binaryproto
参数:可执行文件地址 转化格式后的训练数据地址 均值文件包保存地址
(3)使用caffe自带的caffe可执行文件生成mnist训练模型命令:
sudo ./build/tools/caffe train --solver=examples/mnist/solver.prototxt
参数:可执行文件地址 参数 配置文件地址
(4)使用caffe自带的mnist模型训练好后,使用该模型测试手写字识别精度的命令:
sudo ./build/tools/caffe test --model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel
参数:可执行文件地址 网络模型地址 训练模型地址
(5)使用caffe的CPP版本的calssification.bin对单张手写字进行分类命令:
sudo ./build/examples/cpp_classification/classification.bin \ examples/mnist/deploy.prototxt \ examples/mnist/lenet_iter_10000.caffemodel \ examples/mnist/mnist_mean.binaryproto \ examples/mnist/synset_words.txt \ examples/mnist/4.jpeg
(4.JPEG是自己的待测图片,复制到mnist/下即可)
注意:上述有两个文件未解释,分别是deploy.prototxt和synset_works.txt。
deploy.prototxt是根据我们训练模型时使用模型文件修改首尾部而来,我是用的训练模型文件是lenet_train_test.prototxt,可如下修改,
1)将原文件首部的如下两个数据层删除,然后添加自己的数据输入层:
layer { name: "mnist" type: "Data" top: "data" top: "label" include { phase: TRAIN } transform_param { scale: 0.00390625 } data_param { source: "examples/mnist/train/train_lmdb" batch_size: 64 backend: LMDB } } layer { name: "mnist" type: "Data" top: "data" top: "label" include { phase: TEST } transform_param { scale: 0.00390625 } data_param { source: "examples/mnist/test/test_lmdb" batch_size: 100 backend: LMDB } }添加(我的测试图片是3通道的,所以第二个dim是3):
layer { name: "data" type: "Input" top: "data" input_param { shape:{ dim: 1 dim: 3 dim: 28 dim: 28 } } }
2)删除尾部的Accuracy和loss层,如下:
layer { name: "accuracy" type: "Accuracy" bottom: "ip2" bottom: "label" top: "accuracy" include { phase: TEST } } layer { name: "loss" type: "SoftmaxWithLoss" bottom: "ip2" bottom: "label" top: "loss" }
添加:
layer { name: "prob" type: "Softmax" bottom: "ip2" top: "prob" }
synset_works.txt文件就是examples/mnist/test/labels.txt文件,内容为:
0 1 2 3 4 5 6 7 8 9
到此为止,测试单张图片的文件都准备完了,使用上述./build/examples/cpp_classification/classification.bin命令就可以进行测试。
相关文章推荐
- jquery常用方法总结
- HTML页面加载和解析流程详细介绍
- Instantaneous Transference poj3592(【强连通分量】【最长路】)
- 用Node.js实现余票查询并用邮件通知
- jstl的问题
- Ubuntu 14.04 64位系统安装cuda8.0+cudnn7.5+opencv+caffe 血泪教程
- jsp Ajax请求(返回xml数据类型)
- jquery操作iframe
- 利用HTML5的devicemotion事件实现手机摇一摇抽奖,年会抽奖
- Extjs中导入文件后缀的设置
- css随笔
- 浅析JavaScript的原型对象、原型链和面向对象的特点
- ElasticSearch5.0——IK词库加载
- 一个node.js图片上传显示小应用
- js跨域访问问题
- Caffe中LMDB的使用
- [Jsp] 大作业之《课堂帮》
- extjs中的年份和月份控件使用
- 树形DP(Simple Tree,玲珑杯 Round#8 B lonlife 1080)
- [bzoj1012] [JSOI2008]最大数maxnumber (单调队列)