zoukankan      html  css  js  c++  java
  • 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进行识别。

  • 相关阅读:
    又玩起了“数独”
    WebService应用:音乐站图片上传
    大家都来DIY自己的Blog啦
    CSS导圆角,不过这个代码没有怎么看懂,与一般的HTML是不同
    网站PR值
    CommunityServer2.0何去何从?
    网络最经典命令行
    炎热八月,小心"落雪"
    Topology activation failed. Each partition must have at least one index component from the previous topology in the new topology, in the same host.
    SharePoint 2013服务器场设计的一些链接
  • 原文地址:https://www.cnblogs.com/yizhichun/p/6137936.html
Copyright © 2011-2022 走看看