最好安官方版本,不要作,真的,安caffe-windows后续学习也不方便。
惨痛教训!
硬要作的话,就看下去好了。。。
caffe-windows配置 cuda6.5+vs2012
平台:windows8.1
准备工作
需要提前安装好的:vs+cuda(建议安装vs2012+cuda6.5或者vs2013+cuda7.0,因为这两个组合网上可以找到对应的编译好的caffe第三方库,我采用的组合是vs2012+cuda6.5)。如果cuda没安装好,可以查看我的上一篇博文cuda7.0安装windows+vs2012 ,cuda6.5和7.0的安装方法是一样的。
需要下载的资源:
1、caffe-windows(暂叫作caffe1) https://github.com/niuzhiheng/caffe 这是niuzhiheng给出的版本,官方并没有windows版
2、caffe的第三方库 http://dl.dropboxusercontent.com/u/3466743/caffe-vs2012/dependency-20140804.7z 这个网址访问需要FQ,所以我这里采用的是别人已经编译好的库。从以下链接可以直接下载Caffe For Windows VS2012完整版,带第三方库(暂叫作caffe2)http://download.csdn.net/detail/thesby/8411969#comment 如果你安装的是vs2013+cuda7.0,网上也可以找到对应资源。
安装步骤
1、将caffe1中bulidMSVCmex复制到caffe2的bulid文件夹下。
2、打开bulidMSVC下的matcaffe.vcxproj文件,查找cuda,检查cuda版本是否和你安装的是否一致。举例:你的版本是cuda7.0,则需将CUDAx.x改成cuda7.0,将CUDAvx.x改成CUDAv7.0。总计有四处地方需要修改,如果版本一致,当然不用更改。
matcaffe.vcxproj里的cuda版本号与你实际安装的不一致,而你又没有修改,则在下一步中项目将不能成功加载。
3、将caffe for windows下的将3rdparty/bin文件夹加到环境变量的path中(这一步不确定是否必要),注意path值修改之后要关机重启才有效
4、打开bulidMSVC下的MainBuilder.sln。配置管理器设置为x64,release和debug都行。
A、项目右键属性VC++目录包含目录 ,添加cuda的头文件目录,如我的是C:Program FilesNVIDIA GPU Computing ToolkitCUDAv6.5include。
B、项目右键属性链接器常规附加库目录,添加 $(CUDA_PATH_V6_5)lib$(Platform),如果你的版本不一样,例如是7.0,则添加的应该是$(CUDA_PATH_V7_0)lib$(Platform)。
C、项目右键属性链接器输入附加依赖项 添加
cublas.lib
cublas_device.lib
cuda.lib
cudadevrt.lib
cudart.lib
cudart_static.lib
cufft.lib
cufftw.lib
curand.lib
cusparse.lib
nppc.lib
nppi.lib
npps.lib
nvblas.lib
nvcuvid.lib
OpenCL.lib
D、项目右键属性C/C++附加包含目录 这里面的自动添加了,不需要管。
5、项目右键生成 慢慢等(最开始一段时间输出日志在caffe.pb.h remains the same as before没动,这不是error,等着就好)。
6、编译其他cpp。将要编译的cpp将他include到MainCaller.cpp(...CaffeexamplesMainCaller.cpp)中。生成项目。注意不是重新生成项目。
具体来说,打开 MainCaller.cpp,里面的内容如下所示。一次编译一个cpp文件,例如,下面这个编译的是"../../tools/train_net.cpp"。
#include "../../tools/train_net.cpp" //#include "../../tools/test_net.cpp" //#include "../../tools/finetune_net.cpp" //#include "../../tools/net_speed_benchmark.cpp" //#include "../../tools/dump_network.cpp" //#include "../../tools/convert_imageset.cpp" //#include "../../tools/extract_features.cpp" //#include "../../tools/convert_imageset.cpp" //include "../../tools/compute_image_mean.cpp"
编译matlab接口的方法与上述类似,需要增加的步骤:
1、项目右键属性VC++目录包含目录 添加matlab的头文件,如我的是 I:APPsinstallmatlabexterninclude (缺少这不会报错:无法打开"mex.h")
2、 init_key = randam(); 改为init_key = rand();
注意,生成过程中有很多warnings,不需要管。如果按上述方法没有成功生成,在输出日志中查找error(因为输出日志很长,直接找肯定找不到),根据具体错误找原因,我的输出日志在I:APPsinstallCaffeuildMSVCmexRelease下,matcaffe.log。对,我就是这么小白,才知道要在输出日志中查找error。
参考:Windows7 64位+Cuda6.5+vs2012 的caffe配置历程 http://www.yidianzixun.com/home?page=article&id=0B7Cn6tS 最终来源是csdn,但是我找不到原始链接。
以下资源待整理
cuda 6.5 https://developer.nvidia.com/cuda-toolkit-65
caffe-windows https://github.com/niuzhiheng/caffe
Caffe For Windows VS2012完整版,带第三方库cuda6.5 http://download.csdn.net/detail/thesby/8411969#comment
Windows7 64位+Cuda6.5+vs2012 的caffe配置历程 http://www.yidianzixun.com/home?page=article&id=0B7Cn6tS
windows+caffe+vs2013+cuda6.5配置记录 http://www.bubuko.com/infodetail-902302.html
caffe+windows7+vs2013配置 http://blog.csdn.net/tjusxh/article/details/48463409
Caffe配置指南 on Windows8.1+CUDA6.5+VS2013 http://www.wtoutiao.com/p/q78qy6.html
四、点击上边工具栏的绿色三角编译吧,编译有段时间。
然而编译完会提示cublas64_65.dll(还有一个dll也找不到,做法一样)找不到。因为我原来安装过cuda6.5,所以从cuda6.5下copy到cuda7.5下。就ok了。
note:可能cuda6.5也可以成功,按照第三步再加几个库目录,这个我没有试。
四、怎样编译tools里的.cpp文件呢
在build文件中已经给出了例子,每个项目就调用了一个.cpp文件。(如covert_image等。)
1.copy一个msvc副本一份
2.在加载的项目中直接把caffe项目中的caffe.cpp去掉,然后加载自己想编译的.cpp。
3.更改项目名称(caffe--》自己的项目名称),compile it. 在bin文件夹下产生相应的.exe。
caffe windows 学习第一步:编译和安装(vs2012+win 64) http://www.cnblogs.com/denny402/p/5041060.html
Neil Z.Shao的博客https://initialneil.wordpress.com/