zoukankan      html  css  js  c++  java
  • Ubuntu + CUDA9 + CUDNN7 + OpenCV3.4 + contrib +CAFFE-master

    安装ubuntu时赞美Rufus(建议ubuntu16.04.04),过程参考 https://www.cnblogs.com/willnote/p/6725594.html
    安 装 前 一 定 要 注 意 确 认 当 前 硬 盘 的 存 储 格 式 是 MBR 还 是 GPT
    输入法,浏览器,终端,CUDA、opencv、caffe等相关文件下载,参考百度。
     
    方括号内容表示为变量,示计算机内实际文件(夹)而定
     
    2018.04.18:建议安装cuda-v9.0/v10.1而非v9.1/9.2, 对于20X0系列的显卡,CUDA-10+是很必要的,10X0系列的还是CUDA-9好
    2019.03.07:2018.04.20:建议安装opencv-v2.4.9+/v3.4.0,而非v3.4.1+/v4+ 【C语言的API对我本人开发需求而言已经不是很必要,所以我个人开始使用4.1.0了】
    2019.03.07:(或者把caffe扔了(就应该这样!),直接玩opencv4+里的dnn(依然可以参考本文安装cuda/cudnn的办法),参考“opencv-4 nvidia gpu 训练 测试”相关搜索结果)

    -----------------------------------------------------------
    !保!障!网!络!通!畅!
    -----------------------------------------------------------
    安装显卡驱动
    系统设置->软件和更新->下载自:阿里源( mirrors.aliyun.com ) 或 中科大源( mirrors.ustc.edu.cn )
    输入密码,关闭窗口,等下载结束。
     
    然后更新软件:终端内 
    sudo apt-get update&&sudo apt-get upgrade
    系统设置->软件和更新->附加驱动->使用NVIDIA较高版本的专有驱动(如果未显示,使用.run的安装方法(https://blog.csdn.net/xunan003/article/details/81665835))
    选择后会开始下载和自动安装,等读条全部完毕后,在终端内输入
    nvidia-smi #确认输出了有效信息,如
    date       
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI XXX.XXX                Driver Version: XXX.XXX                   |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  GeForce GTX 1070    Off  | 00000000:01:00.0  On |                  N/A |
    |  0%   31C    P8    11W / 230W |    201MiB /  8110MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
                                                                                   
    +-----------------------------------------------------------------------------+
    | Processes:                                                       GPU Memory |
    |  GPU       PID   Type   Process name                             Usage      |
    |=============================================================================|
    |    0       997      G   /usr/lib/xorg/Xorg                           136MiB |
    |    0      1839      G   compiz                                        59MiB |
    |    0      2358      G   /usr/lib/firefox/firefox                       3MiB |
    +-----------------------------------------------------------------------------+
    -----------------------------------------------------------
    -----------------------------------------------------------
    安装cuda依赖包 
    终端内
    sudo apt-get install --no-install-recommends libboost-all-dev -y
    sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler libopenblas-dev liblapack-dev libatlas-base-dev libgflags-dev libgoogle-glog-dev liblmdb-dev -y
    -----------------------------------------------------------
    -----------------------------------------------------------
    安装cuda
     
    https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal
    sudo sh ./cuda_[9.X_XXX]_linux.run --no-opengl-libs #本体,非opengl这个参数非常重要,删掉就等着开机循环登录吧
    sudo sh ./cuda_[9.X.Y]_linux.run  #[--no-opengl-libs] #补丁, 可以装,必要性视补丁具体内容决定,修复bug和error的肯定要装

    其中,第一项显卡驱动不需要装(因为前一步已经装过了,如果前一步两种方法都安装不了NVIDIA驱动的话,再考虑装cuda这里自带的驱动),第二项cuda组件必须装,第三项cuda示例可以安装


    修改环境变量
    sudo gedit ~/.bashrc
    在最下端添加
    export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    使变量生效
    source ~/.bashrc

    -----------------------------------------------------------

    测试cuda(如果安装了第三项) 

    终端里cd进cuda示例

    cd [NVIDIA_CUDA_SAMPLES]/1_Utilities/deviceQueryDrv
    sudo make
    ./deviceQueryDrv #确认输出了有效的显卡信息,并记下显卡算力“CUDA Capability Major/Minor version number:”,编译框架时会用上

    ----------------------------------------------------------- 

    安装cudnn
    https://developer.nvidia.com/cudnn
    先将cudnn压缩包解压
    然后
    #复制文件到系统环境
    sudo
    cp [CUDNN]/cuda/include/cudnn.h /usr/local/cuda/include/ sudo cp [CUDNN]/cuda/lib64/lib* /usr/local/cuda/lib64/
    #重建软连接
    cd /usr/local/cuda/lib64/
    sudo rm -rf libcudnn.so libcudnn.so.[主版本号]
    sudo ln -s libcudnn.so.[全版本号] libcudnn.so.[主版本号]
    sudo ln -s libcudnn.so.[主版本号] libcudnn.so
    #使链接在环境中生效
    sudo ldconfig

    -----------------------------------------------------------

    -----------------------------------------------------------
    安装opencv-3.4 + contrib-master
    安装依赖项
    sudo apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

    解压opencv

     
    解压opencv-contrib(使用对应版本)[nonfree的特殊工具包,不需要的话,可以不装]
    下载 ippicv_2017u3_lnx_intel64_general_20170822.tgz (https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20170822/ippicv)(或其他版本号的,具体的参考cmake-gui在configure卡住时下载的条目名称)至文件夹 [opencv]/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ (这串乱码可在cmake生成的cache文件中查到类似的) 然后改名为 4e0352ce96473837b1d671ce87f17359-ippicv_2017u3_lnx_intel64_general_20170822.tgz (同)

    使用cmake-gui:
    勾上BUILD_DOCS    BUILD_JPEG     BUILD_PNG    WITH_OPENGL     BUILD_opencv_world
     
    在OPENCV_EXTRA_MODULES_PATH中填写([opencv-contrib]/modules)     (3+的可以装但没必要,4+的为了调用WITH_CUDA的相关部分,或许有必要)
     
    [注释1]:
    可以在cmake-gui的搜索栏里搜CU,去掉和cuda/NVIDIA有关的选项,一般用不到,除非打算自己撸框架(或者是打算用opencv3.4.3+/4.0.0+里面的dnn)
     
    configure几次直到框内没有红条(如果在输出信息中存在相关BLAS的错误,暂未发现负面影响,不用管)
    然后generate
     
    有需要时再勾上WITH_QT,configure一次后填上需要的路径并再次configure,红条变白则校验成功。然后generate
     
    [注释2]: 
    遇上 make[2]: *** [3rdparty/protobuf/CMakeFiles/libprotobuf.dir/src/google/protobuf/extension_set_heavy.cc.o] Error 4
    时,勾选ENABLE_CXX11
     
    编译opencv
    cd [opencv]/build
    make #这行不建议加-j4,曾出现过因为依赖次序问题引发的编译错误
    sudo make install -j4

    添加引用变量

    sudo gedit /etc/ld.so.conf.d/opencv.conf

    文件内写入

    /usr/local/lib/x86_64-linux-gnu #(也可能没有最后这段文件夹路径,取决于libopencv_XXX.so文件具体在哪)
    刷新链接
    sudo ldconfig

    -----------------------------------------------------------

    -----------------------------------------------------------
    安装caffe

    安装依赖项

    sudo apt-get install --no-install-recommends libboost-all-dev
    sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler libopenblas-dev liblapack-dev libatlas-base-dev libgflags-dev libgoogle-glog-dev liblmdb-dev git cmake build-essential -y

    获取caffe,在希望放置caffe的目录内:

    git clone https://github.com/BVLC/caffe.git

    复制caffe/MakeFile.config.example为MakeFile.config

    修改其中的这几项为:
    USE_CUDNN := 1
    USE_OPENCV := 1
    
    # Whatever else you find you need goes here.
    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/local/include/opencv /usr/local/include/opencv2 /usr/include/hdf5/serial
    LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/local/lib/x86_64-linux-gnu
     
    此外,对于这里的
    CUDA_ARCH :=    #-gencode arch=compute_20,code=sm_20 
                    #-gencode arch=compute_20,code=sm_21 
    ...

    只保留和显卡算力匹配的几行,其他的全注释掉(显卡算力详见[NVIDIA_CUDA_SAMPLES]/1_Utilities/deviceQueryDrv/deviceQueryDrv,在这个文件夹内make之后./deviceQueryDrv运行


    如果编译opencv后生成了libopencv_world.so,那么MakeFile中修改为:
    ifeq ($(USE_OPENCV), 1)   #( 注意把空格换回制表符)
            #LIBRARIES += opencv_core opencv_highgui opencv_imgproc
            #ifeq ($(OPENCV_VERSION), 3)
                #LIBRARIES += opencv_imgcodecs
            #endif
            LIBRARIES += opencv_world
    endif
     
    编译caffe:
    make all -j4
    #增加引用变量
    sudo gedit /etc/ld.so.conf.d/caffe.conf
    内容为:
    /usr/local/cuda/lib64

    回到终端内:

    sudo make install
    #刷新链接
    sudo ldconfig
    -----------------------------------------------------------
    -----------------------------------------------------------
    测试caffe
    cd [caffe]
    sudo sh data/mnist/get_mnist.sh
    sudo sh examples/mnist/create_mnist.sh
    sudo sh examples/mnist/train_lenet.sh 

    不报错就是安装成功

    -----------------------------------------------------------
    -----------------------------------------------------------
  • 相关阅读:
    Android应用开发SharedPreferences存储数据的使用方法
    Android ListView不响应OnItemClickListener解决办法
    Java 毫秒转换为日期类型、日期转换为毫秒
    关于android软键盘enter键的替换与事件监听
    如何使用adb命令查看android中的数据库
    android坐标
    getHitRect获取点击控件的位置
    UTC的相互转换(java)
    深入理解Android的startservice和bindservice
    TS格式解析
  • 原文地址:https://www.cnblogs.com/aimhabo/p/8721340.html
Copyright © 2011-2022 走看看