Caffe配置简述

一、安装VS2013

资源:byr

安装选项:MFC for C++

很easy。

二、配置CUDA

选择临时文件夹。

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

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

选择Custom安装

全部默认。

修改路径

开始安装

安装完成后,在NVIDIA CorporationCUDA Samplesv6.5inwin64Release路径中,会有很多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%in

CUDA_LIB_PATH  %CUDA_PATH%libWin32

CUDA_SDK_BIN  %CUDA_SDK_PATH%inWin32

CUDA_SDK_LIB  %CUDA_SDK_PATH%commonlibWin32

CUDA_SDK_PATH  C:cudacudasdkcommon(自己安装SDK的地方)

方便日后使用。

三、caffe+win7+VS2013

http://m.blog.csdn.net/article/details?id=51355143

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

第一次build。

error1:no object

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

Error2:libcaffe.lib找不到

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

成功之后

生成的可执行文件和库在caffe-masterBuildx64Debug中,

在命令行下执行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=examplesmnistlenet_train_test.prototxt –weights=examplesmnistlenet_iter_10000.caffemodel

六、windows下调用classification进行分类

首先要计算均值文件

caffe-masterBuildx64Release文件夹下compute_image_mean.exe

cmd下执行,compute_image_mean mnist_train_lmdb mean.binaryproto

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

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

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

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

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

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

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

配置项目的属性表:

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

D:caffe-masterinclude
D:NugetPackagesoost.1.59.0.0lib ativeinclude
D:NugetPackagesglog.0.3.3.0uild ativeinclude
D:NugetPackagesgflags.2.1.2.1uild ativeinclude
D:NugetPackagesprotobuf-v120.2.6.1uild ativeinclude
C:Program FilesNVIDIA GPU Computing ToolkitCUDAv7.5include
D:NugetPackagesOpenBLAS.0.2.14.1lib ativeinclude
D:caffe-masterincludecaffelayers
D:NugetPackagesOpenCV.2.4.10uild ativeinclude
D:NugetPackagesOpenCV.2.4.10uild ativeincludeopencv
D:NugetPackagesOpenCV.2.4.10uild ativeincludeopencv2

 

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

D:NugetPackagesoost_date_time-vc120.1.59.0.0lib ativeaddress-model-64lib

D:NugetPackagesoost_filesystem-vc120.1.59.0.0lib ativeaddress-model-64lib
D:NugetPackagesoost_system-vc120.1.59.0.0lib ativeaddress-model-64lib
D:caffe-masterBuildx64Release
D:NugetPackagesoost_thread-vc120.1.59.0.0lib ativeaddress-model-64lib
D:NugetPackagesoost_chrono-vc120.1.59.0.0lib ativeaddress-model-64lib
D:NugetPackagesprotobuf-v120.2.6.1uild ativelibx64v120Release
D:NugetPackagesOpenCV.2.4.10uild ativelibx64v120Release
D:NugetPackagesglog.0.3.3.0uild ativelibx64v120Debugdynamic
D:NugetPackagesgflags.2.1.2.1uild ativex64v120dynamicLib
D:NugetPackageshdf5-v120-complete.1.8.15.2lib ativelibx64
D:NugetPackagesOpenBLAS.0.2.14.1lib ativelibx64
C:Program FilesNVIDIA GPU Computing ToolkitCUDAv7.5libx64

 

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

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:NugetPackagesOpenCV.2.4.10uild ativeinx64v120Debug;B:NugetPackagesglog.0.3.3.0uild ativeinx64v120Debugdynamic;B:NugetPackagesgflags.2.1.2.1uild ativex64v120dynamicLib;B:NugetPackagesOpenBLAS.0.2.14.1lib ativeinx64;B:NugetPackageshdf5-v120-complete.1.8.15.2lib ativeinx64

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

opencv_*.lib->opencv_*d.lib

D:NugetPackagesprotobuf-v120.2.6.1uild ativelibx64v120Release
D:NugetPackagesOpenCV.2.4.10uild ativelibx64v120Release

D:caffe-masterBuildx64Release

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