电脑系统是window7-10,NVIDIA1080Ti
先下载好需要的包:caffe,cuda8.0,vs2013,无python接口和MATLAB接口,无cudnn
caffe:https://github.com/Microsoft/caffe
cuda8.0 :https://developer.nvidia.com/cuda-downloads
vs2013:http://www.iplaysoft.com/vs2013.html
然后就开始了。
首先安装cuda之后(全部为默认选项),在CMD窗口,输入:nvcc -V,可以检测有CUDA8.0,然后顺便再系统环境变量里面看看cuda的两个变量有没有。
第二步安装vs2013,安装好之后,解压caffe-master。
然后打开caffe-master文件夹,然后看到一个windows文件夹,然后继续打开windows文件夹,看到里面一个CommonSettings.props.example文件,复制出来一份,并改名字为CommonSettings.props。用Visual Studio 2013打开windows文件夹下的Caffe.sln,检查解决方案中的项目,重点看libcaffe和test_all是否成功地被导入。如果这两个没有成功导入,原因是Visual Studio 2013的安装路径中缺少CUDA 8.0.props,我的是这个路径
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations
其实CUDA 8.0.props就在cuda的安装目录下,我的路径是
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\visual_studio_integration\MSBuildExtensions
只要拷贝到
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations
就行,那么libcaffe和testall就都没问题了!(以上解决方法属于引用,实际是导入了这两个项的。)
接下来:解决方案配置设为release。
然后在调试==>libcaffe属性修改两处,分别是配置属性中的常规和C/C++中的常规。
第一个常规的配置和平台都改为64的选项。第二个常规,把“把警告视为错误改为否”。
然后编译libcaffe项目。
如果中途出现以下错误,
错误 1 error MSB4062: 未能从程序集 D:\window caffe\NugetPackages\OpenCV.2.4.10\build\native\\private\coapp.NuGetNativeMSBuildTasks.dll 加载任务“NuGetPackageOverlay”。未能加载文件或程序集“file:///D:\window caffe\NugetPackages\OpenCV.2.4.10\build\native\private\coapp.NuGetNativeMSBuildTasks.dll”或它的某一个依赖项。另一个程序正在使用此文件,进程无法访问。 (异常来自 HRESULT:0x80070020) 请确认 <UsingTask> 声明正确,该程序集及其所有依赖项都可用,并且该任务包含实现 Microsoft.Build.Framework.ITask 的公共类。 D:\window caffe\NugetPackages\OpenCV.2.4.10\build\native\OpenCV.targets 772 5 libcaffe
为什么路径会有两个斜杠?
D:\window caffe\NugetPackages\OpenCV.2.4.10\build\native\\private\coapp.NuGetNativeMSBuildTasks.dll
一个文件一个文件地搜索MSBuildThisFileDirectory变量,才在opencv.2.4.10的文件夹里发现了
NugetPackages/OpenCV.2.4.10/build/native/OpenCV.props。
网上有人说删除了,重新还原,我根本解决不了。
解决方案:去掉private前面的斜杠。
DLL问题:
程序缺乏三个动态链接库:libgfortran-3.dll,libglog.dll,libopenblas.dll。
(1)libgfortran-3.dll下载地址:http://www.dllzj.com/libgfortran-3.dll/;下载64位的dll;
(2)libopenblas.dll下载地址:https://sourceforge.net/projects/openblas/files/;
(3)libglog.dll:
先下载libglog0.3.3:http://download.csdn.net/detail/chenguangxing3/6661667;
后来发现报错dll文件都在D:\windows\thirdparty\bins文件里面,只要把这个路径添加到系统环境变量里面就OK了。
突然发现众里寻他千百度,蓦然回首它就在bins。
暂时没什么错误。
参考链接:
http://blog.csdn.net/xierhacker/article/details/51834563
http://blog.csdn.net/lk274857347/article/details/53588049
http://www.voidcn.com/blog/yangguangqizhi/article/p-6610028.html
http://blog.csdn.net/zb1165048017/article/details/70116323
http://www.th7.cn/system/win/201706/216666.shtml
https://github.com/happynear/caffe-windows
http://forestli.com/archives/93/
http://blog.csdn.net/jasonzhangoo/article/details/54866120
http://blog.csdn.net/qq_14845119/article/details/52541622
http://blog.csdn.net/qq_14845119/article/details/52541622
dll报错链接:
http://blog.csdn.net/xueweuchen/article/details/28238617
http://www.dllzj.com/libgfortran-3.dll/
http://blog.csdn.net/a3137732/article/details/51417378