caffe windows10 vs2013怎么配置

caffe windows10 vs2013怎么配置,第1张

1.配置环境

我在自己的笔记本配置的caffe,配置的环境为:Windows 7 64位 + cuda6.5 + Opencv2.49 +VS2013。假设在配置caffe之前,你已经准备好这些。

本文中将给出一些编译好的依赖库,如果你也是用的Windows 7 64位+VS2013,可以直接使用。

2.准备依赖库

在Windows下配置caffe,一个很主要的问题就是依赖库的编译。不像在Ubuntu下那么方便,在Windows下,依赖库都需要使用vs2013进行编译才能使用。下面我将介绍caffe需要的依赖库(如果你也是win7 64位+VS2013,可以直接使用我提供的依赖库)。

2.1 boost

boost可以下载源码进行编译,也可以直接下载安装文件。我使用的是后者,方便、快捷。

我使用的是:boost_1.56_0-msvc-12.0-64.exe

注意下载适合你的配置环境的boost版本即可。

下载完毕,双击运行安装文件即可。

2.2 Glog+Gflag+Protobuf+LevelDB+HDF5+LMDB+Openblas

这一部分的很多都是谷歌的开源库,不容易下载(你懂的)。所以我使用的是Neil Z. SHAO‘s Blog

提供的编译好的。

下载完,解压得到3rdparty文件夹。在下一段将会用到。

3.建立caffe工程

准备好了caffe需要的依赖库和环境之后,下面就可以建立caffe的vs项目,进行编译了。

3.1 下载caffe源码

可以从caffe的github主页下载源码。

下载地址:Caffe’s GitHub

解压文件,假设caffe源码所在目录为CAFFE_ROOT。

3.2 准备项目需要的依赖库和系统环境变量

经过上一阶段的准备,caffe项目所需的依赖库都已经准备好。

1.首先设置系统环境变量(以我的为例):

CUDA_PATH_V6_5 安装好cuda6.5之后,会自动添加环境变量CUDA_PATH_V6_5

OPENCV_2_49 D:/Tools/opencv2.49/build/

BOOST_1_56 D:/Tools/boost_1_56_0

2.将3rdparty文件夹放到CAFFE_ROOT

3.3 用vs建立caffe项目

1.用VS2013在CAFFE_ROOT下建立 win32 console application,选择空项目。

将项目的平台由32位改为64位

2.修改项目属性

项目——属性——C/C++——常规——附加包含目录

添加:

../include

../src;

../3rdparty/include

../3rdparty

../3rdparty/include

../3rdparty/include/openblas

../3rdparty/include/hdf5

../3rdparty/include/lmdb

../3rdparty/include/leveldb

../3rdparty/include/gflag

../3rdparty/include/glog

../3rdparty/include/google/protobuf

项目——属相——VC++目录——包含目录

添加:

$(CUDA_PATH_V6_5)\include

$(OPENCV_2_49)\include

$(OPENCV_2_49)\include\opencv

$(OPENCV_2_49)\include\opencv2

$(BOOST_1_56)

项目——属性——链接器——常规——附加库目录

添加:

$(CUDA_PATH_V6_5)\lib\$(PlatformName)

$(OPENCV_2_49)\x64\vc12\lib

$(BOOST_1_56)\lib64-msvc-12.0

..\3rdparty\lib

项目——属性——链接器——输入——附加依赖项

debug添加:

opencv_ml249d.lib

opencv_calib3d249d.lib

opencv_contrib249d.lib

opencv_core249d.lib

opencv_features2d249d.lib

opencv_flann249d.lib

opencv_gpu249d.lib

opencv_highgui249d.lib

opencv_imgproc249d.lib

opencv_legacy249d.lib

opencv_objdetect249d.lib

opencv_ts249d.lib

opencv_video249d.lib

opencv_nonfree249d.lib

opencv_ocl249d.lib

opencv_photo249d.lib

opencv_stitching249d.lib

opencv_superres249d.lib

opencv_videostab249d.lib

cudart.lib

cuda.lib

nppi.lib

cufft.lib

cublas.lib

curand.lib

gflagsd.lib

libglog.lib

libopenblas.dll.a

libprotobufd.lib

libprotoc.lib

leveldbd.lib

lmdbd.lib

libhdf5_D.lib

libhdf5_hl_D.lib

Shlwapi.lib

gflags.lib

libprotobuf.lib

leveldb.lib

lmdb.lib

libhdf5.lib

libhdf5_hl.lib

release添加:

opencv_ml249.lib

opencv_calib3d249.lib

opencv_contrib249.lib

opencv_core249.lib

opencv_features2d249.lib

opencv_flann249.lib

opencv_gpu249.lib

opencv_highgui249.lib

opencv_imgproc249.lib

opencv_legacy249.lib

opencv_objdetect249.lib

opencv_ts249.lib

opencv_video249.lib

opencv_nonfree249.lib

opencv_ocl249.lib

opencv_photo249.lib

opencv_stitching249.lib

opencv_superres249.lib

opencv_videostab249.lib

cudart.lib

cuda.lib

nppi.lib

cufft.lib

cublas.lib

curand.lib

gflags.lib

libglog.lib

libopenblas.dll.a

libprotobuf.lib

libprotoc.lib

leveldb.lib

lmdb.lib

libhdf5.lib

libhdf5_hl.lib

Shlwapi.lib

3.4 编译caffe

配置好caffe项目的属性之后,下面就可以一步一步的编译caffe了。

3.4.1 编译./src中的文件

首先,将../src文件夹中的*.cpp文件添加到工程中。

依次编译每一个*.cpp文件。

1.编译blob.cpp

直接编译时会报错,缺少文件”caffe\proto\caffe.pb.h”

这个时候需要将proto.exe放到../3rdparty/bin文件夹

将GernaratePB.bat放在../scripts文件夹

运行bat脚本文件即可生成caffe.pb.h

然后就可以成功编译。

2.编译common.cpp

直接编译这个文件,会出现关于getid和fopen_s的错误。可通过如下步骤修改:

在代码前面添加:#include <process.h>

修改项目属性:项目——属性——C/C++——预处理器——预处理器定义

添加:_CRT_SECURE_NO_WARNINGS

在代码中getid的位置进行如下修改:

#ifdef _MSC_VER

pid = getid()

#else

pid = _getid()

#endf

修改完毕之后,可以成功编译。

3.编译net.cpp

直接编译这个文件,会出现关于mkstep、close、mkdtemp的错误。需要进行如下修改:

在io.hpp头文件中添加:#include “mkstep.h”

在io.hpp头文件中,在close()的位置进行如下修改:

#ifdef _MSC_VER

close(fd)

#else

_close(fd)

#endif

在mkdtemp的位置进行如下修改:

#ifndef _MSC_VER

char* mkdtemp_result = mkdtemp(temp_dirname_cstr)

#else

errno_t mkdtemp_result = _mktemp_s(temp_dirname_cstr, sizeof(temp_dirname_cstr))

#endif

修改完毕,可以成功编译。

4.编译solver.cpp

直接编译会出现关于snprintf的错误,需要进行如下修改:

#ifdef _MSC_VER

#define snprinf sprintf_s

#endif

修改完毕,可以成功编译。

5.其他剩余的cpp文件也依次编译

3.4.2 编译./src/layers中的文件

将./src/layers中的所有的cpp和cu文件都添加到项目中。

右键点击cu文件,修改属性。

在bnll_layer.cu文件,进行如下修改:

float kBNLL_THRESHOLD = 50 ——>#define kBNLL_THRESHOLD 50.0

依次编译所有的文件。

3.4.3 编译./src/util中的文件

将./src/util中所有的文件添加到项目

1.在io.cpp中

修改ReadProtoFromBinaryFile函数

O_RDONLY ——>O_RDONLY | O_BINARY

在代码中进行如下修改:

#ifdef _MSC_VER

#define open _open

#endif

将close()改为_close()

2.在math_functions.cpp中

做如下修改:

#define __builtin_popcount __popcnt

#define __builtin_popcountl __popcnt

3.在db.cpp中

作如下修改:

#ifdef _MSC_VER

#include <direct.h>

#endif

修改CHECK_EQ

#ifdef _MSC_VER

CHECK_EQ(_mkdir(source.c_str()),0)<<”mkdir”<<source<<”failed”

#else

CHECK_EQ(mkdir(source.c_str(),0744),0)<<”mkidr”<<source<<”failed”

#endif

4.依次编译其他文件

3.4.4 编译./src/proto中的文件

参照上一步,将proto中的文件都添加到项目。

修改属性:

项目——属性——C/C++——预处理器——预处理器定义

添加:_SCL_SECURE_NO_WARNINGS

编译所有文件。

3.4.5 编译./tools中的文件

本文件夹下有多个cpp文件,通过它们的名字就可以知道相应的功能。添加不同的cpp文件到项目中,然后生成项目,就可以得到不同功能的exe文件。

将caffe.cpp添加到工程,生成项目,得到caffe.exe文件,可用于训练模型

将computer_image_mean.cpp添加到工程,生成项目,得到的exe文件可用于将训练样本转换为caffe使用的leveldb/lmdb数据集。

依次类推。

自此,caffe在Windows下的编译已经完毕,接下来就可以使用它来训练自己的模型了。

“让我告诉世界中国命运自己主宰,让我告诉未来中国进行着接力赛。承前启后的领路人带领我们走进新时代,啊!带领我们走进新时代……”随着这首优美的歌曲,我们的家乡——晋中也走进了新时代。

以前,人们居住的是简陋的平房;食的是糠、麦一类的粗粮;穿的是色彩单调的布衣服;出门的交通工具只有自行车;路也是凹凸不平,一到晚上,因为没有路灯,走起路来深一脚,浅一脚……而如今,我们的城市变得好似一个五彩缤纷的大花园。映入眼帘的不再是一座座低矮的平房,取而代之的是一座座高耸入云的摩天大厦;我们的食物不再是那些令人难以下咽的糠,而变成了营养丰富的炒菜浓汤;我们的衣服不再色彩单调,而变得花纹鲜艳;要出远门也不必担心,现代的交通工具多种多样:不仅仅是自行车,还有电动车、摩托车、汽车等等许多种供你选择;行走的路不再坑坑洼洼,以前尖锐的石子路已换成了今天的柏油大路,路旁的路灯一到晚上就开始工作,再也不用担心会在走夜路时摔跤了。

不仅是这样,人们的休闲娱乐场所也变得越来越多。以前什么都没有,甚至一片开阔的地方。无聊的孩子们就坐在小河边投投石子,摸摸鱼虾,自己寻找快乐。而现在不同了,假如你觉得没趣,那么你就到工人俱乐部去观看那里著名的音乐喷泉;如果你厌倦了你平淡无味的生活,那么你就到天河娱乐城去享受你的人生。还有绵山、后沟、梅苑山庄等许多旅游胜地等着你去参观游览。

说起榆次老城,以前的它更是贫困至极。以前,老城里居住的人家都很贫穷,只能勉强支撑自己的家庭所需。老城经历过许多磨难,但是,老城不仅被保留了下来,而且成为了晋中的一大著名景点。

这一切的变化都是党和政府的正确领导。正如歌中唱道:“我们唱着东方红当家做主战起来,我们讲着春天的故事改革开放富起来。继往开来的领路人带领我们走进新时代,高举旗帜开创未来……”最后,我祝愿我们的金色晋中能够更加繁荣富强!

cublas.lib有win32版

1.配置环境

我在自己的笔记本配置的caffe,配置的环境为:Windows 7 64位 + cuda6.5 + Opencv2.49 +VS2013。假设在配置caffe之前,你已经准备好这些。

本文中将给出一些编译好的依赖库,如果你也是用的Windows 7 64位+VS2013,可以直接使用。

2.准备依赖库

在Windows下配置caffe,一个很主要的问题就是依赖库的编译。不像在Ubuntu下那么方便,在Windows下,依赖库都需要使用vs2013进行编译才能使用。下面我将介绍caffe需要的依赖库(如果你也是win7 64位+VS2013,可以直接使用我提供的依赖库)。

2.1 boost

boost可以下载源码进行编译,也可以直接下载安装文件。我使用的是后者,方便、快捷。

我使用的是:boost_1.56_0-msvc-12.0-64.exe

注意下载适合你的配置环境的boost版本即可。

下载完毕,双击运行安装文件即可。

2.2 Glog+Gflag+Protobuf+LevelDB+HDF5+LMDB+Openblas

这一部分的很多都是谷歌的开源库,不容易下载(你懂的)。所以我使用的是Neil Z. SHAO‘s Blog

提供的编译好的。

下载完,解压得到3rdparty文件夹。在下一段将会用到。

3.建立caffe工程

准备好了caffe需要的依赖库和环境之后,下面就可以建立caffe的vs项目,进行编译了。

3.1 下载caffe源码

可以从caffe的github主页下载源码。

下载地址:Caffe’s GitHub

解压文件,假设caffe源码所在目录为CAFFE_ROOT。

3.2 准备项目需要的依赖库和系统环境变量

经过上一阶段的准备,caffe项目所需的依赖库都已经准备好。

1.首先设置系统环境变量(以我的为例):

CUDA_PATH_V6_5 安装好cuda6.5之后,会自动添加环境变量CUDA_PATH_V6_5

OPENCV_2_49 D:/Tools/opencv2.49/build/

BOOST_1_56 D:/Tools/boost_1_56_0

2.将3rdparty文件夹放到CAFFE_ROOT

3.3 用vs建立caffe项目

1.用VS2013在CAFFE_ROOT下建立 win32 console application,选择空项目。

将项目的平台由32位改为64位

2.修改项目属性

项目——属性——C/C++——常规——附加包含目录

添加:

../include

../src;

../3rdparty/include

../3rdparty

../3rdparty/include

../3rdparty/include/openblas

../3rdparty/include/hdf5

../3rdparty/include/lmdb

../3rdparty/include/leveldb

../3rdparty/include/gflag

../3rdparty/include/glog

../3rdparty/include/google/protobuf

项目——属相——VC++目录——包含目录

添加:

$(CUDA_PATH_V6_5)\include

$(OPENCV_2_49)\include

$(OPENCV_2_49)\include\opencv

$(OPENCV_2_49)\include\opencv2

$(BOOST_1_56)

项目——属性——链接器——常规——附加库目录

添加:

$(CUDA_PATH_V6_5)\lib\$(PlatformName)

$(OPENCV_2_49)\x64\vc12\lib

$(BOOST_1_56)\lib64-msvc-12.0

..\3rdparty\lib

项目——属性——链接器——输入——附加依赖项


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11254741.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存