zoukankan      html  css  js  c++  java
  • windows下配置caffe(环境:win7+vs2013+opencv3.0)

    说明:大部分转载于initialneil的大作Caffe + vs2013 + OpenCV in Windows Tutorial (I) – Setup

    准备工作:

    1.下载CUDA7.5: https://developer.nvidia.com/cuda-downloads,安装完成后会自动创建变量CUDA_PATH_V7_5

    2.下载boost1.56:http://sourceforge.net/projects/boost/files/boost-binaries/1.56.0/,选择boost_1_56_0-msvc-12.0-64.exe,安装完成后手动创建环境变量BOOST_1_56_0

    System variable for boost

    3.下载opencv3.0.0:http://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.0.0/,安装完成后手动创建环境变量OPENCV_3_0_0

    System variable for OpenCV

    以上软件除了opencv必须使用3.0以外,其他的使用相近版本都无所谓

    4.环境变量设置完必须重启才能生效

    5.下载写好的vs2013下build caffe的工程:https://github.com/initialneil/caffe-vs2013

    6.下载caffe要用到的其他第三方库:http://22a088.l67.yunpan.cn/lk/ccWF2Zge3tyfb(提取码:6147),然后替换掉上一步VS工程下的3rdparty文件夹

    编译:

    1.由于这个工程里边的proto版本有点问题,编译前先运行一下xxcaffe-vs2013-mastercaffesrccaffeproto文件夹下的GeneratePB.bat,用于重新生成caffe.pb.h和caffe_pretty_print.pb.h,不然后面解析prototxt文件的时候会报错。

    2.编辑Caffe-vs2013 - Debug.props 和 Caffe-vs2013 - Release.props,把里边的跟环境变量有关的东西都换成你自己的,CUDA_PATH_V7_5、BOOST_1_56_0、OPENCV_3_0_0之类的。然后把compute_50,sm_50这一句的50改成20(数字跟GPU架构相关,50 for Maxwell, 20 for Fermi, 30 for Kepler)。

    3.打开caffe-vs2013.sln,可以看到caffe、test-MNIST和train-MNIST三个工程。如果caffe显示load failed,就右击编辑caffe.vcxproj,把里边的环境变量也都设置成自己的,一般是CUDA6.5改成7.5就好了。

    4.把build选项设成Release+x64,把caffe工程属性的Configuration Type设成Application (.exe),然后右键编译,应该能成功了。会在工程目录的build/x64/Release文件夹下生成caffe.exe,但是还不能运行,缺少dll。

    5.头文件和静态库都在props文件中设置好了,依赖的动态库需要自己放到系统路径中。把xxopencvuildx64vc12in目录下opencv_ffmpeg300_64.dll、opencv_world300.dll和3rdpartyinx64Release目录的所有dll放到caffe.exe的那个目录,再运行caffe.exe应该就可以了。

    6.然后自己把Configuration Type改成lib就能生成静态库来调用了,改成dll就是动态库,Release/Debug、win32/x64都自己挑,注意选择依赖的dll不同就行

    测试Test on MNIST:

    1. Go to ‘caffe/data/mnist’ folder and run ‘get_mnist.bat’ to fetch dataset for MNIST.

    2. Go to ‘caffe/examples/mnist’ folder and run ‘create_mnist-leveldb.bat’ to convert MNIST dataset to leveldb format.

    3. run ‘train_lenet-leveldb.bat’ to start the training.

    注意这里的proto版本有些旧,新的prototxt要自己改一下才能用,其实也很简单,就是把各个layer里的type属性从小写改成大写就好了。

    我自己踩过的坑就这么多,先记录一下。

  • 相关阅读:
    Button
    启动活动最佳写法
    随时随地退出程序
    知晓当前是在哪个活动
    Failed to resolve:com.android.support:appcompat-v7:报错处理
    未能从程序集“System.ServiceModel”中加载类型“System.ServiceModel.Activation.HttpModule”
    office文档图标不正常显示
    feign和ribbon的异常捕捉
    rocketMQ为什么会重复消费
    springboot时区问题
  • 原文地址:https://www.cnblogs.com/skyrudy/p/5035587.html
Copyright © 2011-2022 走看看