一、安装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
说明安装成功。
四、windows下caffe训练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
训练完成后生成四个文件
这是训练好的模型。
五、windows下caffe测试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文件中添加
-
#include <opencv2/opencv.hpp>
-
#include <opencv2/core/core.hpp>
-
#include <opencv2/highgui/highgui.hpp>
-
#include <opencv2/imgproc/imgproc.hpp>
-
using namespace cv;
-
-
-
#include <algorithm>
-
#include <iosfwd>
-
#include <memory>
-
#include <string>
-
#include <utility>
-
#include <vector>
-
-
#include <caffe/caffe.hpp>
-
using namespace caffe; // NOLINT(build/namespaces)
-
using std::string;
-
using namespace std;
将Classifier类改写为自己的类HyClassifier
利用opencv编写画版模块
利用classification进行识别。