• 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进行识别。

  • 相关阅读:
    一些关于"虚拟交易"的有趣文章
    Windows中的消息队列:Message Queuing (MSMQ)
    ATLStyle模板 不用虚函数实现多态
    AIX 下获取系统CPU及内存的使用情况方法
    关于HPUNIX C 兼容性
    Android进阶Acticivity的启动模式
    ViewState & UpdatePanle & ReadOnly属性
    由网站构架演变说起
    '操作必须使用一个可更新的查询'解决方法
    ScriptManager & ClientScriptManager
  • 原文地址:https://www.cnblogs.com/yizhichun/p/6137936.html
Copyright © 2020-2023  润新知