Caffe配置简述

一、安装VS2013

资源:byr

安装选项:MFC for C++

很easy。

二、配置CUDA

选择临时文件夹。

安装包内的驱动不能用,保留原有驱动,continue。

若出现此提示,不要继续安装了,说明cuda版本太高了,GPU不支持。换一个低版本的cuda再继续。

选择Custom安装

全部默认。

修改路径

开始安装

 

安装完成后,在NVIDIA Corporation\CUDA Samples\v6.5\bin\win64\Release路径中,会有很多Sample的exe,在命令行下运行deviceQuery.exe。

Result=PASS,说明安装成功。

在VS下新建CUDA工程

默认会生成向量加法的测试程序。编译运行

出现错误

此时要修改工程属性Project->Properties->CUDA C/C++->Device->Code Generation

Compute_xx,默认是compute_20,xx代表GPU的计算能力,该参数可以再NVIDIA官网查到。

https://developer.nvidia.com/cuda-legacy-gpus

https://developer.nvidia.com/cuda-gpus

修改完成后,重新编译运行。

Cuda安装成功。

环境变量配置(可以暂时省略)

CUDA_BIN_PATH  %CUDA_PATH%\bin

CUDA_LIB_PATH  %CUDA_PATH%\lib\Win32

CUDA_SDK_BIN  %CUDA_SDK_PATH%\bin\Win32

CUDA_SDK_LIB  %CUDA_SDK_PATH%\common\lib\Win32

CUDA_SDK_PATH  C:\cuda\cudasdk\common(自己安装SDK的地方)

方便日后使用。

三、caffe+win7+VS2013

http://m.blog.youkuaiyun.com/article/details?id=51355143

按照该教程,基本可以成功配置caffe。

第一次build。

error1:no object

双击错误,打开一个文件,保存该文件,即可解决。

Error2:libcaffe.lib找不到

重新build libcaffe这个子项目。然后在rebuild整个工程。

成功之后

生成的可执行文件和库在\caffe-master\Build\x64\Debug中,

在命令行下执行caffe.exe

说明安装成功。

 

四、windowscaffe训练mnist

网络上找到mnist数据集,mnist_test_lmdb和mnist_train_lmdb两个文件夹,拷贝到examples/mnist目录下。

修改lenet_solver.prototxt文件,

# solver mode: CPU or GPU

solver_mode: CPU

改为CPU模式。

路径问题:因为文件中都是相对路径,所以在train时,总是遇到一些错误,所以要讲文件路径修改一下。

Lenet_solver.prototxt

由examples/mnist/lenet改为../examples/mnist/lenet

由examples/mnist/lenet_train_test.prototxt改为../examples

lenet_train_test.prrototxt

由example改为../examples

在以管理员身份运行cmd,执行caffe train –solver ../lenet_solver.prototxt

训练完成后生成四个文件

这是训练好的模型。

五、windowscaffe测试mnist

http://www.cnblogs.com/yixuan-xu/p/5862657.html

 

Caffe test – model=examples\mnist\lenet_train_test.prototxt –weights=examples\mnist\lenet_iter_10000.caffemodel

六、windows下调用classification进行分类

首先要计算均值文件

caffe-master\Build\x64\Release文件夹下compute_image_mean.exe

cmd下执行,compute_image_mean mnist_train_lmdb mean.binaryproto

将mean.binaryproto复制到mnist文件夹下,下一个命令会用他当参数。

第四个参数为txt标签文档,表示每一个分类所对应的标签。

第三个参数mean.binaryproto为上一步生成的均值文件。

第二个参数为训练好的模型。

第一个参数为神经网络的参数。

第五个参数为我们要进行分类的图像。

七、自己新建vs工程,调用caffe接口,实现手写字体的识别。

配置项目的属性表:

所以在属性表里,先后需要include以下这些:(路径请自行修改)

D:\caffe-master\include
D:\NugetPackages\boost.1.59.0.0\lib\native\include
D:\NugetPackages\glog.0.3.3.0\build\native\include
D:\NugetPackages\gflags.2.1.2.1\build\native\include
D:\NugetPackages\protobuf-v120.2.6.1\build\native\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include
D:\NugetPackages\OpenBLAS.0.2.14.1\lib\native\include
D:\caffe-master\include\caffe\layers
D:\NugetPackages\OpenCV.2.4.10\build\native\include
D:\NugetPackages\OpenCV.2.4.10\build\native\include\opencv
D:\NugetPackages\OpenCV.2.4.10\build\native\include\opencv2

 

然后,我们需要添加lib:(路径请自行修改)

D:\NugetPackages\boost_date_time-vc120.1.59.0.0\lib\native\address-model-64\lib

D:\NugetPackages\boost_filesystem-vc120.1.59.0.0\lib\native\address-model-64\lib
D:\NugetPackages\boost_system-vc120.1.59.0.0\lib\native\address-model-64\lib
D:\caffe-master\Build\x64\Release
D:\NugetPackages\boost_thread-vc120.1.59.0.0\lib\native\address-model-64\lib
D:\NugetPackages\boost_chrono-vc120.1.59.0.0\lib\native\address-model-64\lib
D:\NugetPackages\protobuf-v120.2.6.1\build\native\lib\x64\v120\Release
D:\NugetPackages\OpenCV.2.4.10\build\native\lib\x64\v120\Release
D:\NugetPackages\glog.0.3.3.0\build\native\lib\x64\v120\Debug\dynamic
D:\NugetPackages\gflags.2.1.2.1\build\native\x64\v120\dynamic\Lib
D:\NugetPackages\hdf5-v120-complete.1.8.15.2\lib\native\lib\x64
D:\NugetPackages\OpenBLAS.0.2.14.1\lib\native\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\lib\x64

 

那么我们的附加依赖项需要添加:

libcaffe.lib
libprotobuf.lib
opencv_highgui2410.lib
opencv_core2410.lib
opencv_imgproc2410.lib
libglog.lib
gflags.lib
libopenblas.dll.a
hdf5.lib
hdf5_hl.lib
cublas.lib
cublas_device.lib
cuda.lib
cudadevrt.lib
cudnn.lib
cudart.lib
cufft.lib
cudart_static.lib
cudnn_static.lib
cufftw.lib
cusparse.lib
cusolver.lib
curand.lib
nppc.lib
OpenCL.lib

 

上述为release模式下的配置文件,将配置保存到HyCaffe_x64_Release.props配置表中。

 

在Debug模式下,配置稍有不同

 

属性->Debugging->environment

PATH=B:\NugetPackages\OpenCV.2.4.10\build\native\bin\x64\v120\Debug;B:\NugetPackages\glog.0.3.3.0\build\native\bin\x64\v120\Debug\dynamic;B:\NugetPackages\gflags.2.1.2.1\build\native\x64\v120\dynamic\Lib;B:\NugetPackages\OpenBLAS.0.2.14.1\lib\native\bin\x64;B:\NugetPackages\hdf5-v120-complete.1.8.15.2\lib\native\bin\x64

制定了工作环境,包含了各种dll的路径,避免在系统环境变量Path中添加。

opencv_*.lib->opencv_*d.lib

D:\NugetPackages\protobuf-v120.2.6.1\build\native\lib\x64\v120\Release
D:\NugetPackages\OpenCV.2.4.10\build\native\lib\x64\v120\Release

D:\caffe-master\Build\x64\Release

Release改为Debug

 

将属性表保存到HyCaffe_x64_Debug.props配置表中。

 

 

头文件,在stdafx.h文件中添加

  1. #include <opencv2/opencv.hpp>  
  2. #include <opencv2/core/core.hpp>  
  3. #include <opencv2/highgui/highgui.hpp>  
  4. #include <opencv2/imgproc/imgproc.hpp>  
  5. using namespace cv;  
  6.     
  7.     
  8. #include <algorithm>  
  9. #include <iosfwd>  
  10. #include <memory>  
  11. #include <string>  
  12. #include <utility>  
  13. #include <vector>  
  14.     
  15. #include <caffe/caffe.hpp>  
  16. using namespace caffe;  // NOLINT(build/namespaces)  
  17. using std::string;  
  18. using namespace std;  

 

将Classifier类改写为自己的类HyClassifier

利用opencv编写画版模块

利用classification进行识别。

转载于:https://www.cnblogs.com/yizhichun/p/6137936.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值