1环境搭建

https://wenku.baidu.com/view/ef375d8587c24028905fc377.html

 https://blog.csdn.net/nk_wavelet/article/details/78935511?utm_source=blogxgwz0

 https://blog.csdn.net/qwfzpk/article/details/79112097

https://blog.csdn.net/qxconverse/article/details/76376718

https://www.cnblogs.com/zjutzz/p/9532483.html

1.VS安装

VS社区版(个人免费):

http://download.microsoft.com/download/B/4/8/B4870509-05CB-447C-878F-2F80E4CB464C/vs2015.com_chs.iso

https://ultraiso.en.softonic.com/download安装utrol iso 打开iso文件,提取到目标文件夹

安装时选自定义安装,只选一个

 2.cuda安装

 第一步

       下载cuda

 第二步

       运行安装

       

   

 

直接默认路径即可

安装完毕环境变量中多了

增加其余几个变量

在Path末尾添加

重新启动计算机以使环境变量生效

打开vs2015,新建控制台项目,空项目打勾。点击源文件->添加->新建项

右键项目

选择如图所示

右键属性

之后进行项目配置

x64配置

项目->属性->配置属性

编辑添加

3.安装cudnn

解压后 拷贝到相对应的目录C:ProgramFilesNVIDIA GPU Computing ToolkitCUDAv7.5

工程属性页-链接器-输入中添加cudnn.lib的附件依赖项

4.安装cmake

5.安装anaconda

安装2.7

6.caffe安装

安装后,运行GeFroce Experience,点击“驱动程序”—>“检测更新”

 解压caffe

 

简要说明

直接git clone了caffe-BVLC然后checkout到windows分支,编译还是可能遇到问题。这里记录一下。

环境说明

系统: Windows10
编译器:Visual Studio 2013/2015
构建器:CMake 3.12
Caffe: BVLC官方Caffe的windows分支
Python: python2.7,用anaconda装的。注意python.exe所在目录放到系统PATH环境变量中
CUDA: 9.2 (可选)
CuDNN:7.0(可选)
终端: cmd窗口

具体步骤

1. 下载代码

进cmd敲:

d:
cd work
git clone https://github.com/BVLC/caffe caffe-BVLC
cd caffe-BVLC
git checkout -b windows origin/windows

2.改正配置

2.1 cuda配置

纯cpu编译的调过这一小节。
cmake/Cuda.cmake,第7行,去掉20和21的算力支持(否则新版cuda会报错),改成:

set(Caffe_known_gpu_archs "30 35 50 52 60 61")

cmake/Cuda.cmake,第40行左右,手动设定nvcc架构版本,例如我是1080Ti显卡,使用6.1:

set(__nvcc_out "6.1")

(为啥这里的自动获取计算能力版本有问题?大概是字符编码导致输出很多警告,警告信息影响了正确结果的获取)
(每个Nvidia显卡型号对应的compute ability表见:https://blog.csdn.net/real_myth/article/details/44308169)

2.2 下载依赖项

为了避免cmake下载遭遇网络问题,以及修改配置项的方便,根据scripts/download_prebuilt_dependencies.py手动下载依赖文件:
(如果你网路还可以,那么忽略这一小节,脚本会自动下载)

WIN_DEPENDENCIES_URLS = {
    ('v120', '2.7'):("https://github.com/willyd/caffe-builder/releases/download/v1.1.0/libraries_v120_x64_py27_1.1.0.tar.bz2",
                  "ba833d86d19b162a04d68b09b06df5e0dad947d4"),
    ('v140', '2.7'):("https://github.com/willyd/caffe-builder/releases/download/v1.1.0/libraries_v140_x64_py27_1.1.0.tar.bz2",
                  "17eecb095bd3b0774a87a38624a77ce35e497cd2"),
    ('v140', '3.5'):("https://github.com/willyd/caffe-builder/releases/download/v1.1.0/libraries_v140_x64_py35_1.1.0.tar.bz2",
                  "f060403fd1a7448d866d27c0e5b7dced39c0a607"),
}

下载后的压缩包放到C:Userschris.caffedependenciesdownload目录下,然后解压到download的同级目录

2.3 再次修改cuda相关配置

接下来,如果你要用cuda编译,那么一定要修改C:Userschris.caffedependencieslibraries_v140_x64_py27_1.1.0librariesincludeoost-1_61oostconfigcompiler vcc.hpp:注释掉最后三行:

#if !defined(__CUDACC_VER__) || (__CUDACC_VER__ < 70500)
#   define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#endif

(原因:cuda7.5以后,__CUDACC_VER__被废除,应当使用__CUDACC_VER_MAJOR___CUDACC_VER_MINOR__等,参考https://github.com/BVLC/caffe/issues/5994、https://blog.csdn.net/qq_37817177/article/details/80604294)。

2.4 开始编译

回到刚才的cmd,继续敲(#后面是注释,不用敲进去)

set PATH=%PATH%;C:WindowsMicrosoft.NETFrameworkv4.0.30319  #临时添加MSBuild.exe的路径
set MSVC_VERSION=12 #12对应到我用的vs2013.  build_win.cmd中默认为vs2015,也就是13
set WITH_NINJA=0  # 不使用ninja,用visual studio。因为编译中间出了问题在vs里面好查看。
# set CPU_ONLY=1  # 如果没有GPU,或者就是想编译CPU版本,则开启
set RUN_INSTALL=1 #安装。默认走的非appveyor分支,RUN_INSTALL为0,这不是坑人么。

.scriptsuild_win.cmd # 前面我写明的修改项都完成后,本行会顺利执行。

编译期间出现“锟斤拷”的乱码可以忽略,最后:
成功编译

成功编译和安装

build_win.cmd脚本中的设定,默认编译的是release模式的。修改脚本,或者干脆打开cmake生成的build/Caffe.sln工程来编译debug版本。

2.5 配置pycaffe

因为目前不搞训练了,系统上只装一个caffe版本,不存在多个版本冲突问题。那么就方便点,把build/install/python/caffe文件夹,拷贝到D:softAnaconda2Lib下。

以后再开VSCode时,import caffe再也不会报红了。

3 使用caffe.lib

比如不想在原始的caffe工程中添加自己的代码,这样保持了caffe自身代码不变,只要在自己的使用了caffe库的工程中正确设定,就独立的开发自己的代码了。

假设自己的这个工程也是基于cmake构建,最关键的一点是,正确配置了前面编译的caffe的依赖项,而不是自己再去重新配一遍..

set(CAFFE_DEPENDENCIES_DIR "C:/Users/Administrator/.caffe/dependencies/libraries_v120_x64_py27_1.1.0")
include(${CAFFE_DEPENDENCIES_DIR}/libraries/caffe-builder-config.cmake)

完整的例子见:
https://github.com/zchrissirhcz/toolbox/tree/master/cmake_examples/caffe_cpp_play_better

值得注意的是:前面编译出来的caffe-BVLC的,其构建类型要与自己的工程一致,也就是debug搭配debug,release搭配release。我这里实验发现debug模式

下个别库名字不对,缺少“d”或者"-d",在Visual Studio里手动改一下就可以了。

之后

打开Caffe.sln进行编译,又经过漫长的等待,在scriptsuild oolsDebug(或Release)中生成了caffe-d.exe,此时caffe就算是编译完了 

完整的例子见

https://www.cnblogs.com/david97/p/8961168.html

 7.安装opencv

如果你是别的版本的Opencv,可以根据你的系统选择X64(64位操作系统)X86(36位操作系统),vc14表示VS2015,vc12表示VS2013

在系统环境变量中添加:

D:opencvopencvuildx64vc14in

va2015的配置

 

测试代码:

#include<iostream>

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main() {

// 读入一张图片(游戏原画)

Mat img = imread("pic.jpg");

// 创建一个名为 "游戏原画"窗口

namedWindow("游戏原画");

// 在窗口中显示游戏原画

imshow("游戏原画", img);

// 等待6000 ms后窗口自动关闭

waitKey(6000);

}

下面就是具体的操作步骤:

环境:
VisualStudio 2013 (必需)
CUDA 7.5(可选)
cudnn v3 or v4 (可选)
事实上Caffe还有很多其他的依赖库,如boost,OpenCV等。Microsoft版本的Caffe使用了NuGet来管理,编译时会自动进行下载。
首先在https://github.com/Microsoft/caffe将项目clone下来,保存在本地,根目录我们后文称之为CAFFE_ROOT 下图即为根目录

有上图可以看到CAFFE_ROOT 内有一个和官方Caffe很不同的地方,多了一个windows文件夹。打开文件夹就是微软已经为我们建立好的vs工程,

在开始之前需要先将CAFFE_ROOTwindowsCommonSettings.props.example 文件复制一份,并命名为CommonSettings.props 这里保存着编译

的一些设置内容。打开CAFFE_ROOTwindowsCommonSettings.props 里面有几点重要的设置需要注意

<CpuOnlyBuild>false</CpuOnlyBuild>
<UseCuDNN>true</UseCuDNN>

第一个设置为true表示只使用CPU,不使用CUDA,第二个选择true表示使用CuDNN,反之为false。其他的还有一些Cuda版本,Python支持,MATLAB支持,这里都选false。
如果选择开启CUDA的话,需要在NVIDIA官网下载[7.5版本的CUDA](https://developer.nvidia.com/cuda-downloads)进行安装。

我编译的环境如下(只开启了CUDA)

<CpuOnlyBuild>false</CpuOnlyBuild>
<UseCuDNN>false</UseCuDNN>
<CudaVersion>7.5</CudaVersion>
<PythonSupport>false</PythonSupport>
<MatlabSupport>false</MatlabSupport>

打开 CAFFE_ROOTwindowsCaffe.sln 对libcaffe和caffe项目做如下设置
项目→属性→C/C++→常规→将警告视为错误 设置为否
如果不设置的话在编译boost库的时候会由于文字编码的警告而报错

  1. 选择编译环境为Release,x64(其他环境同理)。首先编译libcaffe,在libcaffe上右键生成就可以了

  2. libcaffe编译成功后再编译caffe,所有编译成功和运行需要的dll文件都会存储在CAFFE_ROOTBuildx64Release 下

opencv_objdetect2410.lib
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
odbc32.lib
odbccp32.lib
libboost_date_time-vc120-mt-1_59.lib
libboost_filesystem-vc120-mt-1_59.lib
libboost_system-vc120-mt-1_59.lib
libglog.lib
libcaffe.lib
gflags.lib
gflags_nothreads.lib
hdf5.lib
hdf5_hl.lib
libprotobuf.lib
libopenblas.dll.a
Shlwapi.lib
opencv_core2410.lib
opencv_highgui2410.lib
opencv_imgproc2410.lib
LevelDb.lib
lmdb.lib
opencv_video2410.lib

原文地址:https://www.cnblogs.com/invisible2/p/10170819.html