caffe-windows使用心得

来源:互联网 发布:网络教学本科 编辑:程序博客网 时间:2024/06/06 03:26

参考这篇博文http://blog.csdn.net/happynear/article/details/45372231


caffe-windows的安装
一、准备工作
1.安装vs2013,注意vs2015是不行的,vs2012需要不一样的第三方库,我没试过,heppynear的github上说已经不再支持vs2012,建议vs2013。
2.从github上下载caffe-windows https://github.com/happynear/caffe-windows
3.下载第三方库http://pan.baidu.com/s/1sk3QyyL
4.下载cuda7.5 https://developer.nvidia.com/cuda-downloads
5.下载minst-leveldb.rar http://pan.baidu.com/s/1mgl9ndu
二、开始安装
1.解压caffe-windows-master
2.双击./src/caffe/proto/extract_proto.bat批处理文件来生成caffe.pb.h和caffe.pb.cc两个c++文件,和caffe_pb2.py这个python使用的文件。 
3.打开./buildVS2013/MainBuilder.sln,打开之后切换编译模式至Release X64模式。如果打开之后显示加载失败,说明CUDA没有安装好。编译成功caffe就已经安装好了。
4.开始编译
三、测试
 http://pan.baidu.com/s/1mgl9ndu 下载已经转换好的MNIST的leveldb数据文件,解压至./examples/mnist文件夹中,然后运行根目录下的run_mnist.bat即可开始训练,训练日志会保存在./log文件夹中,以INFO开头,txt格式的日志文件中。

使用caffe-windows训练自己的数据
一、编译工具
1.直接用caffe-windows编译出来的工具会报错,需要手工修改一下源代码,./src/caffe/util/db_lmdb.cpp注释掉
CHECK_EQ(_mkdir(source.c_str()), 0) << "mkdir " << source << "failed";
这一行,修改//const size_t LMDB_MAP_SIZE = 1099511627776;  // 1 TB为const size_t LMDB_MAP_SIZE = 1073741824;  // 1 GB
2.打开MainBuilder.sln,右键convert_imageset项目,仅用于项目-仅生成convert_imageset。会在./bin目录下生成二进制文件。
3.新建文件夹image_to_convert,将图片放到文件夹中
4.新建image_list.txt 把图片名和类别标注出来 如 001.jpg 0 注意类别从0开始
5.新建traindb文件夹 用于保存转换后的lmdb文件
6.新建convert.bat文件,内容为:
convert_imageset.exe image_to_convert/ imagelist.txt traindb
pause 
运行bat之后就会在traindb中生成lmdb文件了
二、求均值
1.右键compute_image_mean-仅用于项目-仅生成compute_image_mean。生成二进制文件
2.新建ComputeImageMean.bat文件,内容为:
compute_image_mean.exe traindb mean.binaryproto
pause 
生成均值binaryptoro文件
三、训练网络
新建文件夹(我是在bin下新建了test) 把models/bvlc_reference_caffenet/下的文件复制进来,修改solver.prototxt,修改net: "bin/test/train_val.prototxt"  snapshot_prefix: "bin/test/caffenet_train" 修改train_val.prototxt,修改mean_file和source 注意区分train和test,这俩都要有而且不能一样。crop_size加上#注释掉是因为图像不一定需要裁剪,例如我的图像文件为64*64,裁剪大小为227,没办法裁剪。然后修改最后一层fc8的num_output: 3,有人说name也要修改,否则报错,不过我没修改,并没有报错。
之后新建run_test.bat,内容为
.\bin\caffe.exe train --solver=bin/test/solver.prototxt
pause
然后双击bat开始训练。注意这其中有可能会出现的错误,Check failed: error == cudaSuccess (2 vs. 0)  out of memory,显存不够用了,我把batch_size: 256改成了50,就可以运行了。


使用matlab调用caffe-windows
一、编译
1.打开./buildVS2013/MSVCmex/matcaffe.vcxproj,把其中的matlab目录修改为你自己的目录。
2.右键matcaffe项目-仅用于项目-仅生成matcaffe,会在./matlab/+caffe/private/下生成caffe_.mexw64文件
3.打开caffe-windows-master\caffe-windows-master\matlab添加到matlab的path中,进入matlab\demo文件夹
4.把cat.jpg放到demo文件夹中,从http://dl.caffe.berkeleyvision.org/下载bvlc_reference_caffenet.caffemodel,放在caffe-windows-master\models\bvlc_reference_caffenet文件夹下。
输入:
>> im=imread('cat.jpg');
figure;imshow(im);
[scores,maxlabel]=classification_demo(im,1);
输出:
Elapsed time is 0.581655 seconds.
Elapsed time is 0.177022 seconds.
Cleared 0 solvers and 1 stand-alone nets
输入:
figure;plot(scores);
会生成图像,最高的那个就是分类可能性最大的类。
1 0
原创粉丝点击