以下链接是个人关于深度学习环境搭建的所有链接,包含了各个框架: 深度学习环境搭建-史上最全无死角系列 有兴趣的朋友可以添加微信 17575010159 相互交流。
资源下载请 大 家 注 意 : 本 人 编 写 该 博 客 的 时 间 为 2020 − 03 − 25 , 并 不 能 保 证 适 用 于 你 现 在 的 时 间 点 \color{red}{请大家注意:本人编写该博客的时间为~~ 2020-03-25,并不能保证适用于你现在的时间点} 请大家注意:本人编写该博客的时间为 2020−03−25,并不能保证适用于你现在的时间点 如 果 百 度 云 失 效 , 大 家 可 以 联 系 本 人 或 者 留 言 \color{red}{如果百度云失效,大家可以联系本人或者留言} 如果百度云失效,大家可以联系本人或者留言 为了大家的方便下载到和本人博客一样的资源,先贴出如下链接(包含了该博客介绍环境的所有资源) 链接:https://pan.baidu.com/s/16XQ130fNo56NbevrlH-fxQ 提取码:1wzo 可以通过官网下载对应的资源如下:
1. anconda2.7:https://www.anaconda.com/distribution/#download-section 注意,只能使用conda2。
2. cuda9.0:https://developer.nvidia.com/cuda-90-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal 需要注意的是,cuda9.0有4个补丁需要安装,本人只安装了补丁1和补丁2 , 3. cudnn7.1: https://developer.nvidia.com/rdp/cudnn-archive 这里需要注册登录,本人感觉使用微信登陆是最方便的
4. winds-caffe: https://github.com/microsoft/caffe
软件安装首先我们需要安装如下软件(通过本人百度云下载)
该软件的安装十分简单,执行其中的 vs_ultimate.exe 文件即可,也可以百度寻找相关的安装教材。
anconda3的安装过程十分简单,主要有两个需要注意的地方:
- 记住安装的路径,如本人为 D:\Users\94428\anaconda2
- 勾选如下,自动添加到环境变量,
从百度云可以下载到如下文件 按照上面排列的顺序进行安装即可,记住自己安装的路径,如本人默认安装路径如下: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0 安装完成之后拷贝如下文件到,上述安装目录:
等待安装完成之后,在wind 命令终端执行如下指令nvcc -V,显示如下,即便是安装成功:
如果发现安装完成下之后,不能执行该命令,请自行百度,大概的原因是需要手动设置环境变量,本人一切正常。
把所有的环境安装完成之后,我们开始编译 caffe-master.zip 文件,首先是解压。解压之后复制一份caffe-master\windows\CommonSettings.props.example,同样放置在该目录,重命名为CommonSettings.props。主要修改如下(以下为本人修改过后的截图-可以根据行号快速 查找):
其上
# 使用GPU
true
# cuda版本
9.0
# 提供python接口
true
# anconda2的安装路径,
D:\Users\94428\anaconda2
首先我们这样简单的配置,后续有需要再进行更改,然后使用VS2013 打开以下工程,如本人: 即caffe-master\windows\Caffe.sln文件。打开该工程之后首先做如下设置,把Debug改成Release,如下:
然后右键点击libcaffe,如下
把警告视为错误设定为否,点击确定。然后再次右键点击libcaffe,选择生成。进行编译。
错误 1 error MSB4062: 未能从程序集
C:\Users\94428\Desktop\caffe\NugetPackages\OpenCV.2.4.10\build\native\\private\coapp.NuGetNativeMSBuildTasks.dll 加载任务“NuGetPackageOverlay”。
未能加载文件或程序集
“file:///C:\Users\94428\Desktop\caffe\NugetPackages\OpenCV.2.4.10\build\native\private\coapp.NuGetNativeMSBuildTasks.dll
”或它的某一个依赖项。系统找不到指定的文件。
请确认 声明正确,该程序集及其所有依赖项都可用,并且该任务包含实现
Microsoft.Build.Framework.ITask 的公共类。 C:\Users\94428\Desktop\caffe\NugetPackages\OpenCV.2.4.10\build\native\OpenCV.targets 772 5 libcaffe
该错误主要是因为opecv版本更新的原因引起,本人通过如下博客解决: https://blog.csdn.net/u013277656/article/details/75040459 简单来说, 第一步:项目->管理NuGet程序包->更新,此时可以看到opencv后面有更新的按钮,点击更新为opencv2.4.11。
更
新
完
成
后
,
关
闭
项
目
重
新
打
开
(
必
须
要
)
,
先
不
要
编
译
(
一
定
不
能
先
编
译
)
,
做
第
二
步
操
作
如
下
\color{red}{更新完成后,关闭项目重新打开(必须要),先不要编译(一定不能先编译),做第二步操作如下}
更新完成后,关闭项目重新打开(必须要),先不要编译(一定不能先编译),做第二步操作如下
第二步选中工程中的libcaffe: 右键点击之后选择卸载项目,再右键先择编辑libcaffe.vcproj,把该文件中所有的OpenCV.2.4.10都换成OpenCV.2.4.11,重新加载项目,再进行编译生成即可。
完成上诉之后,重新编译,依旧会报错libcaffe,如下:
错误 372 error : too few arguments in function call C:\Users\94428\Desktop\caffe\caffe-master\include\caffe\util\cudnn.hpp 114 1 libcaffe
C:\Users\94428\Desktop\caffe\caffe-master\windows\..\Build\Int\libcaffe\x64\Release -maxrregcount=0 --machine 64 --compile -cudart
static -Xcudafe "--diag_suppress=exception_spec_override_incompat --diag_suppress=useless_using_declaration --
diag_suppress=field_without_dll_interface" -D_SCL_SECURE_NO_WARNINGS -DGFLAGS_DLL_DECL= -DHAS_LMDB -
DHAS_HDF5 -DHAS_OPENBLAS -DHAS_OPENCV -DNDEBUG -D_SCL_SECURE_NO_WARNINGS -DUSE_OPENCV -
DUSE_LEVELDB -DUSE_LMDB -DWITH_PYTHON_LAYER -DBOOST_PYTHON_STATIC_LIB -DUSE_CUDNN -D_UNICODE -
DUNICODE -Xcompiler "/EHsc /W1 /nologo /Ox /FS /Zi /MD " -o C:\Users\94428\Desktop\caffe\caffe-
master\windows\..\Build\Int\libcaffe\x64\Release\absval_layer.cu.obj "C:\Users\94428\Desktop\caffe\caffe-
master\src\caffe\layers\absval_layer.cu"”已退出,返回代码为 2。 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\CUDA 9.0.targets 707 9 libcaffe
本人参考以下博客修改: https://blog.csdn.net/qq_29613155/article/details/85115682 进入libcaffe的属性——》生成事件——》预先生成事件——》在生成中使用——》否,生成事件——》后期生成事件——》在生成中使用——》否,重新编译,的方法解决: 然后重新编译(重启VS2013)。
错误 379 error : too few arguments in function call
C:\Users\94428\Desktop\caffe\caffe-master\include\caffe\util\cudnn.hpp 114 1 libcaffe
错误 380 error MSB3721: 命令“"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin\nvcc.exe" -gencode=arch=compute_35,code=\"sm_35,compute_35\" -
gencode=arch=compute_52,code=\"sm_52,compute_52\" --use-local-env --cl-version 2013 -ccbin
"D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64" -x cu -
IC:\Users\94428\Desktop\caffe\NugetPackages\OpenBLAS.0.2.14.1\build\native\..\..\lib\native\include -IC:\Users\94428\Desktop\caffe\NugetPackages\OpenCV.2.4.11\build\native\../../build/native/include/ -
I"C:\Users\94428\Desktop\caffe\caffe-master\windows\libcaffe\\..\..\src\\" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include"
--keep-dir C:\Users\94428\Desktop\caffe\caffe-master\windows\..\Build\Int\libcaffe\x64\Release -
maxrregcount=0 --machine 64 --compile -cudart static -Xcudafe "--
diag_suppress=exception_spec_override_incompat --diag_suppress=useless_using_declaration --
diag_suppress=field_without_dll_interface" -D_SCL_SECURE_NO_WARNINGS -DGFLAGS_DLL_DECL= -
DHAS_LMDB -DHAS_HDF5 -DHAS_OPENBLAS -DHAS_OPENCV -DNDEBUG -
D_SCL_SECURE_NO_WARNINGS -DUSE_OPENCV -DUSE_LEVELDB -DUSE_LMDB -
DWITH_PYTHON_LAYER -DBOOST_PYTHON_STATIC_LIB -DUSE_CUDNN -D_UNICODE -DUNICODE -
Xcompiler "/EHsc /W1 /nologo /Ox /FS /Zi /MD " -o C:\Users\94428\Desktop\caffe\caffe-
master\windows\..\Build\Int\libcaffe\x64\Release\bias_layer.cu.obj "C:\Users\94428\Desktop\caffe\caffe-
master\src\caffe\layers\bias_layer.cu"”已退出,返回代码为 2。 C:\Program Files
(x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\CUDA 9.0.targets 707 9 libcaffe
点击报错的(个参数太少导致报错)
错误 379 error : too few arguments in function call
可以跳转到如下代码: 这里缺少了一个参数,补充一个CUDNN_DATA_FLOAT 或CUDNN_DATA_DOUBLE即可如下:
然后保存,重新生成libcaffe。此时本人 libcaffe 已经能够成功编译。
然后生成解决方案,操作如下:
错误 1 error MSB4062: 未能从程序集 C:\Users\94428\Desktop\caffe\NugetPackages\gflags.2.1.2.1\build\native\\private\coapp.NuGetNativeMSBuildTasks.dll 加载任务“NuGetPackageOverlay”。未能加载文件或程序集“file:///C:\Users\94428\Desktop\caffe\NugetPackages\
本人通过如下博客解决 https://blog.csdn.net/u013913216/article/details/80401601 总的来说就是卸载glog包,在重新安装,也可以选择直接更新,但是记得要重新启动VS
报错五错误 1 error : NuGet Error:文件“C:\Users\94428\Desktop\caffe\NugetPackages\OpenCV.2.4.10\build\native\bin\x64\v120\Release\opencv_nonfree2410.dll”正由另一进程使用,因此该进程无法访问此文件。 C:\Users\94428\Desktop\caffe\NugetPackages\OpenCV.2.4.10\build
本人通过如下博客解决: https://blog.csdn.net/AI_focus/article/details/79006909 重新以管理员的方式启动VS2013编译即可。
最后可以看到如下提示: 这样caffe源码我们就编译完成了,最后就是验证GPU的使用了。
首先去官网下载数据集: http://yann.lecun.com/exdb/mnist/ 四个数据集下载之后,放置如下,
第一步: 在caffe-master目录下,新建一个create_mnist.bat文件,写入下面代码:
.\Build\x64\Release\convert_mnist_data.exe .\mnist\mnist_train_lmdb\train-images.idx3-ubyte .\mnist\mnist_train_lmdb\train-labels.idx1-ubyte .\examples\mnist\mnist_train_lmdb
echo.
.\Build\x64\Release\convert_mnist_data.exe .\mnist\mnist_test_lmdb\t10k-images.idx3-ubyte .\mnist\mnist_test_lmdb\t10k-labels.idx1-ubyte .\examples\mnist\mnist_test_lmdb
pause
双击该脚本运行,会在.\caffe-master\examples\mnist下生成相应的lmdb数据文件。
如果出现问题,可以参考下面的博客: https://www.cnblogs.com/billyzh/p/6307716.html
第二步: 在.\caffe-master目录下,新建train_mnist.bat,然后写入下面代码:
.\Build\x64\Release\caffe.exe train --solver=.\examples\mnist\lenet_solver.prototxt
pause
然后双击运行,就会开始训练,训练完毕后会得到相应的准确率和损失率。(用Debug配置运行时,大概要一个小时左右才能训练完),运行现象类似如下:
根据前面的配置,编译之后,可以找到如下文件: 将caffe文件夹复制到Anaconda2安装目录下C:\Anaconda2\Lib\site-packages,然后 cmd 终端执行指令:
python
import caffe
本人打印如下: 可以看到,其有报错出现。
ImportError: No module named google.protobuf.internal
执行:
pip.exe install protobuf
本人打印如下: 再次重新导入caffe包,然后本人没有报错,表示导入成功。到这里,对于 caffe 环境的安装已经介绍完成了,谢谢大家的观看!