之前用happynear大神的方法配置成功win7下的caffe,做完毕设,现在换了台电脑,gtx960m,进行Win10下的caffe配置,还要配置tensorflow,,据说木有Windows版本啊~待我琢磨Linux下怎么配置去,,木有接触过好蓝过~
注:本文参考happynear大神的配置,感谢感谢!!!
一、 准备工作:
1、cuda7.5: https://developer.nvidia.com/cuda-downloads
2、vs2013: https://www.visualstudio.com/激活码自己上网找吧~
3、caffe第三方库3rdparty:http://pan.baidu.com/s/1eRALURS
4、Happynear大神的caffe:https://github.com/happynear/caffe-windows
5、之前自己编译过的win7下的buildVS2013文件还有一些下面需要的文件杂七杂八:链接:http://pan.baidu.com/s/1gfM7X4n 密码:l9eb
二、 CUDA7.5安装工作:
1、傻瓜式next,next,next
因为下载的是网络版本的安装,然后等待了好久好久~给电脑重装了office2016了还没下载完。。。等待~是~~~~
据说local版本的安装会快点,但是下载下来也需要多一点的时间~
2、安装完毕后,可以看到系统中多了CUDA_PATH和CUDA_PATH_V7_5两个环境变量,接下来,还要在系统中添加以下几个环境变量:
CUDA_SDK_PATH =C:\ProgramData\NVIDIA Corporation\CUDA Samples\v7.5.
(这个文件夹是隐藏的,可以在工具->查看中设置显示隐藏文件夹)
CUDA_LIB_PATH =%CUDA_PATH%\lib\x64
CUDA_BIN_PATH =%CUDA_PATH%\bin
CUDA_SDK_BIN_PATH= %CUDA_SDK_PATH%\bin\x64
CUDA_SDK_LIB_PATH= %CUDA_SDK_PATH%\common\lib\x64
然后,在系统变量 PATH 的末尾添加:
;%CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%
还有一步很重要,将caffe\3rdparty\bin\这个文件添加到系统环境变量的path中。
重新启动计算机以使环境变量生效
3、确定安装成功,在命令提示符窗口中输入:nvcc -V,回车查看是否有版本信息。若出现版本信息,则证明nvcc安装成功,
三、 配置:
1、将下载的第三方库解压放到happynear大神的caffe下的3rdparty文件夹下:
2、要进入Caffe解压目录下的\src\caffe\proto路径,找到extract_proto.bat,直接运行后生成caffe.pb.cc caffe.pb.h caffe.pb2.py三个文件。这三个文件是分别对应C++和Python所需要的Caffe库文件,是Caffe训练数据必要的文件。
3、进入\buildVS2013路径下启动MainBuilder.sln,如果你的CUDA版本与大神的版本不一样,用记事本打开每个文件夹中的vcxproj文件,搜索CUDA 7.5,把这个7.5换成你自己的CUDA版本。
另外,如果你的显卡比较老或者没有显卡,请使用\build_CPU_only下的sln文件
4、加载成功后,将解决方案配置管理器中所有项目改成Release模式,平台为64位。
5、 项目-属性-C/C++/常规-附加包含目录:
添加caffe文件夹里的src,include,3rdparty,以及3rdparty文件夹下面的include及其以下子目录
预处理器定义(添加):
按照原来的不变,如果你的电脑的性能不太好,最好不要加上USE_CUDNN
6、项目-属性-CUDA C/C++-Device-code generation(不清楚的就粗暴点,全都写上)
compute_20,sm_20
compute_30,sm_30
compute_35,sm_35
compute_50,sm_50
7、链接器-常规-附加库目录:(如果找不到,只有库管理器,是因为开启的是静态库,在配置属性-常规-配置类型里修改成动态库就行)
添加3rdparty文件夹下面lib文件
8、链接器-输入-附加依赖项:(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
四、 开始编译:
如果没有用我之前编译的buildVS
1、出现错误 4581 error LNK1181: 无法打开输入文件“cudnn64_65.lib”
下载cudnn:http://vdisk.weibo.com/s/zvm5W8y_UizNS
2、出现错误error LNK1181: 无法打开输入文件“libgflags.lib”
下载libgflags.lib到3rdparty\lib中
3、出现lmdb里的无法解析的外部符号NtCreateSection,原因,更新了一个lmdb.lib。
我把2、3问题需要的东西都放在一开始的5处的云盘中了~
然后caffelib 这个文件就可以编译通过了。
整个也可以编译通过了;
如果没有用我的buildvs,用的大神的原始的,加上caffe之后,出现错误:
无法打开输入文件caffelib.lib
参照win7配置中出现的类似此问题的解法:
出现以下问题的解法:
(1)【conv_layer.cu】错误78 error: too few arguments in function call;
(2)【error: MSB3721】
(3)无法打开输入文件caffelib.lib
解决方法:
可以认为错误(2)(3)是由错误(1)引起的。错误(1)是在编译caffelib项目是出现的,定位错误行
在某论坛上看到解决办法是在最后加入第四个参数"false",即更改为
我直接用的之前编译的win7的buildvs文件,之前win7编译时也出现了此问题,按照这个方法修改过了,所以原则上在大神原版中这样修改在win10中肯定是可以用的~
如果还出现其他问题,请参照我之前的win7的配置吧~毕竟我也没有全部试过~