zoukankan      html  css  js  c++  java
  • cuda-convnet windows8下编译

    编译环境:
    windows8.1
    Anaconda python2.7
    Visual studio 2012
    CUDA6.0
    Pthread for windows
    Intel Math Kernel Library
     
    cuda-convnet 原始文件下载地址:
     
    其中用到的一些库:

    PThread 下载链接:

    Intel® Math Kernel Library 下载链接:(下载windows版本)
    cuda-convnet 工程文件下载链接:
    其他一些有用的工具:(下载x64的版本,调试的时候可能用到)
     
    因为cuda-convnet需要python27,所以必须下载python27的库安装上. 我用的是Anaconda自带的python库.
     
    第一步:
    把下载下来的cuda工程文件解压至trunk目录下,然后用记事本打开pyconvnet.vcxproj文件
    然后把版本号修改为正确的版本号,我的是把cuda4.0  修改为cuda6.0
     
    第二步:
    编译时会遇到以下问题,那是头文件没包含对的缘故,不用担心
    C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V110BuildCustomizationsCUDA 6.0.targets(597,9): error MSB3721: The command ""C:Program FilesNVIDIA GPU Computing ToolkitCUDAv6.0in vcc.exe" -gencode=arch=compute_10,code="sm_10,compute_10" -gencode=arch=compute_20,code="sm_20,compute_20" --use-local-env --cl-version 2012 -ccbin "C:Program Files (x86)Microsoft Visual Studio 11.0VCin"  -I./ -I../../../common/inc -I../../../../shared/inc -I"C:Program FilesNVIDIA GPU Computing ToolkitCUDAv6.0include" -I./ -I../../common/inc -I../../../shared/inc -I"C:Program FilesNVIDIA GPU Computing ToolkitCUDAv6.0include"  -G   --keep-dir Debug -maxrregcount=0  --machine 32 --compile -cudart static  -g   -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MTd  " -o Win32/Debug/convnet.cu.obj "E:synchronize folderKoder Quelledeep learningcuda-convnet runksrcconvnet.cu"" exited with code 2.
    针对这些错误只要设置好相应的依赖库就可以了.
     
    第三步:
    最后编译生成的是dll,后缀名为pyd, 这样方便python调用.
     
    第四步:
    从下面的地址下载cifar-10图片数据
     
    第五步:
    在VS环境中设置环境变量
     
    第六步:
    在命令行中输入如下命令:
    python convnet.py --data-path=./storage2/tiny/cifar-10-batches-py-colmajor/ --save-path=./storage2/tmp --test-range=6 --train-range=1-5 --layer-def=./example-layers/layers-19pct.cfg --layer-params=./example-layers/layer-params-19pct.cfg --data-provider=cifar --test-freq=13 --epoch=200
     
    训练的时候发现一个比较坑的问题就是这两个错误:
    1.raise UnpickleError("Path '%s' does not exist." % filename)
    util.UnpickleError: Path 'D:/cuda-convnet/storage2/tiny/cifar-10-batches-py-colmajor/data_batch_6' does not exist.
    2.self.data_mean = self.batch_meta['data_mean']
    KeyError: 'data_mean'
    原因是batches_meta文件格式不对,这个必须去下载对应的cifar-10的数据,而且带有合乎要求格式的文件,下面给上链接:
     
    即使找到合适的数据,还可能出现以下的错误:
    self.libmodel = __import__(lib_name)
    ImportError: No module named convnet_
    解决方案就是在convnet.py的46行把'convnet_'库改成对应的'pyconvnet'
     
     
    解决了以上的问题以后差不多应该能够顺利的运行程序了.
     
     
    编译时遇到的错误及解决方案:
     
    fatal error C1083: Cannot open include file: 'cblas.h': No such file or directory
    解决方案:
    属性页/C++/Preprocessor/Preprocessor definitions/加入USE_MKL;
     
    neuron.cuh(104): error : identifier "PyObject" is undefined
    解决方案:
    属性页/C++/Preprocessor/Preprocessor definitions/加入NUMPY_INTERFACE;
     
    编译的时候提示找不到pthread.h文件:
    解决方案:
    在trunk中加入下载好的pthread文件夹,并正确的包含头文件和库文件
     
    编译的时候报error : identifier "pthread_mutex_t" is undefined错误:
    解决方案:
    在nvmatrix.cuh文件里加上<pthread.h>
     
    LINK : fatal error LNK1104: cannot open file 'cutil64D.lib'
    解决方案:
    去掉cutil64D.lib
     
    LINK : fatal error LNK1104: cannot open file 'shrUtils64D.lib'
    解决方案:
    去掉shrUtils64D.lib
     
    一些参考来源:
    http://vision.group.shef.ac.uk/wordpress/?p=1
    http://personal.ie.cuhk.edu.hk/~xy012/others/install_cudaconvnet.html
    https://code.google.com/p/cuda-convnet/wiki/TrainingNet
  • 相关阅读:
    单例模式
    pandas to_html
    restful
    numpy版本查看以及升降
    视频下载
    转载:caffe中的Reshape层
    caffe编译报错解决
    python 版Faster Rcnn
    转载:动态规划以及路径记录
    TensorFlow设置GPU占用量
  • 原文地址:https://www.cnblogs.com/frischzenger/p/3786472.html
Copyright © 2011-2022 走看看