新手的caffe学习总结(图像识别)

来源:互联网 发布:发音矫正训练软件 编辑:程序博客网 时间:2024/06/02 22:09

公司要往图像识别方面拓展业务,奈何没有人对这方面有哪怕稍微深入点的了解,本人荣挑重担,从只知道AI这个名词的小白开始学习深度学习。到现在学习caffe接近两个月了,中间走了很多弯路,遇到很多对新手来说是难题,对熟悉这方面的人来说却简单到不认为是问题的问题。所以总结下来供像我这样的新手学习

一、Linux

1、进入root权限

执行下面的代码

sudo su

然后提示输入密码,就可以进入root权限了(root权限相当于windows下的管理员权限,密码是系统的开机密码)

2、修改文件的权限

有些文件在Linux系统下显示带锁的图标,这样的文件不能直接修改删除,所以一般需要修改权限

我通常用下面的代码修改

chmod 777 -R /path/to/file
注意:-R中的“R”一定要大写

二、caffe

1、生成日志文件

使用caffe生成模型的时候,我们可能想生成loss、accuracy曲线,方便查看参数对模型好坏的影响。如果用python的方法,每次生成曲线都要重新训练模型,非常浪费时间,所以我采用caffe自带的文件来完成任务

首先生成 .log文件(此文件会自动保存你训练过程中terminal显示的内容)执行代命令如下:

time sh examples/myfile/train.sh 2>&1 | tee examples/myfile/record1.log

time:在terminal中显示训练花费的时间

sh examples/myfile/train.sh :执行myfiile文件夹下的train.sh文件,(训练模型要执行的文件)

examples/myfile/record1.log :生成的log文件要保存的位置,record1是保存的文件名

2、利用log文件生成loss函数

命令如下:

./tools/extra/plot_training_log.py.example "0" "image.png" examples/myfile/record1.log
./tools/extra/plot_training_log.py.example :调用tools下的文件,用来生成曲线,不用管直接用

“0” :此处可以改为0、1、2、3、4、5、6、7,用来生成不同的曲线,可以自行尝试

“image.png” :生成的曲线保存的位置和保存的文件名

examples/myfile/record1.log :要调用的log文件(上一步生成的log文件)

3、修改图片大小

命令:

for name in /home/username/caffe/data/image/train/0/*.jpg; do convert -resize 256x256\! $name $name; done
/home/username/caffe/data/image/train/0/*.jpg :要修改图片的位置;“jpg”图片格式

4、C++方法查看模型对图片的识别概率

命令:

sudo ./build/examples/cpp_classification/classification.bin \models/bvlc_reference_caffenet/deploy.prototxt \models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel \data/ilsvrc12/imagenet_mean.binaryproto \data/ilsvrc12/synset_words.txt \examples/images/cat.jpg

classification.bin :caffe自带的图片分类器

deploy.prototxt :类似train_val.prototxt文件,但又不同,只用于使用模型进行图像识别的时候(没有这个文件或者不知道怎么修改这个文件,可自行百度)

bvlc_reference_caffenet.caffemodel :要使用的模型,可以替换成你自己的模型

imagenet_mean.binaryproto :对应的均值文件

synset_words.txt :图片类别对应的含义。训练的数据集带有标签,使用模型分类的结果会给出标签,这个文件用来解释标签代表的含义


如图,我的synset_words.txt文件(不过我把文件名改为:label.txt。注意此文件一定要在Linux下创建编辑完成,不能直接在windows下创建,复制到Linux下,不然输出的概率值的格式很奇怪)









1 0