您的位置:首页 > 编程语言 > MATLAB

caffe+windows+matlab

2016-03-31 10:53 567 查看
准备工作:

1、Happynear大神的caffe-windows:https://www.github.com/happynear/caffe-windows

2、以及他自己做的3rdparty:http://pan.baidu.com/s/1sk3QyyL里面有boost,leveldb,hdf5啊什么的依赖库

3、Boost:http://sourceforge.net/projects/boost/files/boost-binaries/1.56.0/

 

本人GPU是GeForce 410M,在此之前安装好vs2013和CUDA,opencv2.4.9,我的是CUDA6.5,英伟达官网上只有7.5的,大神build里面也用的CUDA7.5(但据说也不是版本越高越好的,看电脑配置),但是如果你不是,也不用着急,在VCXPROJ文件中把CUDA7.5改成你的版本就好啦~亲测可以编译~

 

安装参考:http://blog.csdn.net/happynear/article/details/45372231

http://blog.csdn.net/tjusxh/article/details/48463409

还有happynear大神的caffe-windows下载界面下面的安装说明:

https://www.github.com/happynear/caffe-windows

另附一个各个版本caffe配置的网址总结:

http://www.th7.cn/system/win/201507/121664.shtml

 

右击计算机-属性-高级系统设置-环境变量中更改path值,系统变量值啊什么的

按照:http://www.bubuko.com/infodetail-902302.html设置

CUDA_PATH_V6_5 安装好cuda6.5之后,会自动添加环境变量CUDA_PATH_V6_5

系统变量:(新建)

OPENCV_2_49 D:/Tools/opencv2.49/build/

BOOST_1_56 D:/Tools/boost_1_56_0

 

然后准备开始编译啦(在X64和release下)~

将3rdparty文件夹放在caffe-windows下:

打开buildvs2013里面的sln文件:

在release,X64条件下进行编译设置(按照大神推荐的)

1、 C/C++

常规-附加包含目录:

添加caffe文件夹里的src,include,3rdparty,以及3rdparty文件夹下面的include及其以下子目录

预处理器定义(添加):如果你的电脑的性能不太好,最好不要加上USE_CUDNN啊,宝宝之前加了虽然编译出来了但是训练的时候就提示cudnn怎么怎么样的~

_VARIADIC_MAX=10

WIN32

NDEBUG

_CONSOLE

USE_CUDNN

USE_OPENCV

USE_LEVELDB

USE_LMDB

2、 CUDA C/C++

Device-code generation

compute_20,sm_20

compute_30,sm_30

compute_35,sm_35

compute_50,sm_50

之前因为没有添加然后编译一直出现问题,网上说要根据自己电脑的性能添加,但我实在找不到我的版本适合的,所以就全都加上去了,也调试出来了。

3、 链接器

常规-附加库目录:

添加3rdparty文件夹下面lib文件

输入-附加依赖项:(release下的是这些,debug下的在后面加上个d)

caffelib.lib

kernel32.lib

user32.lib

gdi32.lib

winspool.lib

shell32.lib

ole32.lib

oleaut32.lib

uuid.lib

comdlg32.lib

advapi32.lib

cudart.lib

cublas.lib

curand.lib

libprotobuf.lib

hdf5_tools.lib

hdf5_hl_fortran.lib

hdf5_fortran.lib

hdf5_hl_f90cstub.lib

hdf5_f90cstub.lib

hdf5_cpp.lib

hdf5_hl_cpp.lib

hdf5_hl.lib

hdf5.lib

zlib.lib

szip.lib

opencv_world300.lib

shlwapi.lib

leveldb.lib

cublas_device.lib

cuda.lib

libglog.lib

lmdb.lib

cudnn.lib

libopenblas.dll.a

libgflags.lib

嗯,就是这样,然后开始编译

编译过程中出现一些问题:

总结网上的列举如下:

A、(1)【conv_layer.cu】 错误78 error: too few arguments in function call;
(2)【error: MSB3721】
(3)无法打开输入文件caffelib.lib
(4)CUDA6.5target.pros什么的有错误?忘了。。。。

解决方法:

在最后加入第四个参数"false“,改成:

B、【transformer_layer.cu】和【gram_layer.cu】、【hotspot.cpp】、【tanh_layer.cpp】、【hdf5out——layer.cu】error C1083: 无法打开包括文件:"device_atomic_functions.hpp"

参考网上的方法:简单粗暴:device_atomic_functions.hpp标注掉。之后成功编译。

C、出现error MSB3721:

检查路径是否出现中文字符,改一下就好

D、math_functions.cu里面会出现红的,但是可以直接编译,木有事情可以编译出来~

然后就是一个个的编译啦~都是没有问题的;

历经两个星期,之前换了各种版本,vs2013,vs2012,CUDA6.5,CUDA7.5,boost1-5-6,boost1-5-8,反正一直都有问题,也不造肿么回事,可能才开始接触,太浪费时间了,之前用的网上的一个编译好的vs2012版本的caffewindows,不可以训练hdf5数据的模型,也不造这次可不可以,我先试试看哈~明天再说,先睡觉~

已成功训练自己的hdf5数据,开森~都可以用啊~感谢happynear大神啦~

 

顺便说一句,在又花了一天配置好MATLAB接口之后(其实很早就配置好了,只是宝宝没发现,木有把caffe.mexw64所在的文件夹加到MATLAB的pathtool里面,一直走弯路~),宝宝本来准备开森的重新开始训练模型,结果又出现了hdf5的header和library版本不一致的问题,一个是1.8.13,一个是1.8.15,然后,纠结了很久之后,就是在系统变量里加上这个,就好了~

然后就开始愉快的玩耍啦~让他训练吧,宝宝去睡觉啦~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  caffe deep learning