• caffe-windows配置 cuda6.5+vs2012


    最好安官方版本,不要作,真的,安caffe-windows后续学习也不方便。

    惨痛教训!

    硬要作的话,就看下去好了。。。

    caffe-windows配置 cuda6.5+vs2012

    平台:windows8.1

    准备工作

    需要提前安装好的:vs+cuda(建议安装vs2012+cuda6.5或者vs2013+cuda7.0,因为这两个组合网上可以找到对应的编译好的caffe第三方库,我采用的组合是vs2012+cuda6.5)。如果cuda没安装好,可以查看我的上一篇博文cuda7.0安装windows+vs2012 ,cuda6.5和7.0的安装方法是一样的。

    需要下载的资源:

    1、caffe-windows(暂叫作caffe1) https://github.com/niuzhiheng/caffe 这是niuzhiheng给出的版本,官方并没有windows版

    2、caffe的第三方库  http://dl.dropboxusercontent.com/u/3466743/caffe-vs2012/dependency-20140804.7z 这个网址访问需要FQ,所以我这里采用的是别人已经编译好的库。从以下链接可以直接下载Caffe For Windows VS2012完整版,带第三方库(暂叫作caffe2)http://download.csdn.net/detail/thesby/8411969#comment 如果你安装的是vs2013+cuda7.0,网上也可以找到对应资源。

     

     安装步骤

    1、将caffe1中bulidMSVCmex复制到caffe2的bulid文件夹下。

    2、打开bulidMSVC下的matcaffe.vcxproj文件,查找cuda,检查cuda版本是否和你安装的是否一致。举例:你的版本是cuda7.0,则需将CUDAx.x改成cuda7.0,将CUDAvx.x改成CUDAv7.0。总计有四处地方需要修改,如果版本一致,当然不用更改。

    matcaffe.vcxproj里的cuda版本号与你实际安装的不一致,而你又没有修改,则在下一步中项目将不能成功加载。

    3、将caffe for windows下的将3rdparty/bin文件夹加到环境变量的path中(这一步不确定是否必要),注意path值修改之后要关机重启才有效

    4、打开bulidMSVC下的MainBuilder.sln。配置管理器设置为x64,release和debug都行。

    A、项目右键属性VC++目录包含目录 ,添加cuda的头文件目录,如我的是C:Program FilesNVIDIA GPU Computing ToolkitCUDAv6.5include。

    B、项目右键属性链接器常规附加库目录,添加 $(CUDA_PATH_V6_5)lib$(Platform),如果你的版本不一样,例如是7.0,则添加的应该是$(CUDA_PATH_V7_0)lib$(Platform)。

    C、项目右键属性链接器输入附加依赖项  添加 

    cublas.lib
    cublas_device.lib
    cuda.lib
    cudadevrt.lib
    cudart.lib
    cudart_static.lib
    cufft.lib
    cufftw.lib
    curand.lib
    cusparse.lib
    nppc.lib
    nppi.lib
    npps.lib
    nvblas.lib
    nvcuvid.lib
    OpenCL.lib

    D、项目右键属性C/C++附加包含目录   这里面的自动添加了,不需要管。

    5、项目右键生成   慢慢等(最开始一段时间输出日志在caffe.pb.h remains the same as before没动,这不是error,等着就好)。

    6、编译其他cpp。将要编译的cpp将他include到MainCaller.cpp(...CaffeexamplesMainCaller.cpp)中。生成项目。注意不是重新生成项目。

    具体来说,打开 MainCaller.cpp,里面的内容如下所示。一次编译一个cpp文件,例如,下面这个编译的是"../../tools/train_net.cpp"。

    #include "../../tools/train_net.cpp"
    //#include "../../tools/test_net.cpp"
    //#include "../../tools/finetune_net.cpp"
    //#include "../../tools/net_speed_benchmark.cpp"
    //#include "../../tools/dump_network.cpp"
    
    //#include "../../tools/convert_imageset.cpp"
    //#include "../../tools/extract_features.cpp"
    //#include "../../tools/convert_imageset.cpp"
    //include "../../tools/compute_image_mean.cpp"
    

    编译matlab接口的方法与上述类似,需要增加的步骤:

    1、项目右键属性VC++目录包含目录  添加matlab的头文件,如我的是 I:APPsinstallmatlabexterninclude (缺少这不会报错:无法打开"mex.h")

    2、 init_key = randam(); 改为init_key = rand(); 

     

    注意,生成过程中有很多warnings,不需要管。如果按上述方法没有成功生成,在输出日志中查找error(因为输出日志很长,直接找肯定找不到),根据具体错误找原因,我的输出日志在I:APPsinstallCaffeuildMSVCmexRelease下,matcaffe.log。对,我就是这么小白,才知道要在输出日志中查找error。

     

     参考:Windows7 64位+Cuda6.5+vs2012 的caffe配置历程 http://www.yidianzixun.com/home?page=article&id=0B7Cn6tS  最终来源是csdn,但是我找不到原始链接。

    以下资源待整理

     cuda 6.5 https://developer.nvidia.com/cuda-toolkit-65

    caffe-windows https://github.com/niuzhiheng/caffe

    Caffe For Windows VS2012完整版,带第三方库cuda6.5  http://download.csdn.net/detail/thesby/8411969#comment        

    Windows7 64位+Cuda6.5+vs2012 的caffe配置历程  http://www.yidianzixun.com/home?page=article&id=0B7Cn6tS

    windows+caffe+vs2013+cuda6.5配置记录 http://www.bubuko.com/infodetail-902302.html

    caffe+windows7+vs2013配置 http://blog.csdn.net/tjusxh/article/details/48463409

    Caffe配置指南 on Windows8.1+CUDA6.5+VS2013  http://www.wtoutiao.com/p/q78qy6.html

    四、点击上边工具栏的绿色三角编译吧,编译有段时间。

    然而编译完会提示cublas64_65.dll(还有一个dll也找不到,做法一样)找不到。因为我原来安装过cuda6.5,所以从cuda6.5下copy到cuda7.5下。就ok了。

    note:可能cuda6.5也可以成功,按照第三步再加几个库目录,这个我没有试。

    四、怎样编译tools里的.cpp文件呢

    在build文件中已经给出了例子,每个项目就调用了一个.cpp文件。(如covert_image等。)

    1.copy一个msvc副本一份

    2.在加载的项目中直接把caffe项目中的caffe.cpp去掉,然后加载自己想编译的.cpp。

    3.更改项目名称(caffe--》自己的项目名称),compile it. 在bin文件夹下产生相应的.exe。

    caffe windows 学习第一步:编译和安装(vs2012+win 64) http://www.cnblogs.com/denny402/p/5041060.html

     Neil Z.Shao的博客https://initialneil.wordpress.com/

  • 相关阅读:
    Birt报表存储过程多选参数的设置
    jQuery UI AutoComplete的使用
    关于事件的简单优化
    Java编程思想(Chapter2、4、6)
    CSS层模型
    [转]Java并发编程:Lock
    Java多线程synchronized同步
    关于Thread.currentThread()和this的差异
    关于JavaScript闭包的小问题
    ReactiveCocoa(二)
  • 原文地址:https://www.cnblogs.com/deeplearning2015/p/5146625.html
Copyright © 2020-2023  润新知