• Ubuntu16.04+Tensorlow+caffe+opencv3.1+theano部署


    1.首先安装Ubuntu16.04系统.

    2.安装显卡驱动
    在官网上下载最新的NVIDIA-Linux-x86_64-375.26.run驱动.然后
    Ctrl+Alt+F1进入控制台,输入

    sudo service lightdm stop
    sudo sh NVIDIA-Linux-x86_64-375.26.run

    安装驱动的时候会冒出一个 The distribution-provided pre-install script failed! Are you sure you want to continue?这样的错误提示,直接无视下一步就可以了.
    安装过后

    sudo service lightdm start

    切换回桌面.

    安装过后用nvidia-smi命令验证一下是不是安装成功,如果重启之后没有黑屏的话那么恭喜你安装成功了.

    3.安装cuda
    安装cuda最新的驱动cuda_8.0.44_linu.run, 这个驱动据说解决了gcc-5版本的坑, 因为我的ubuntu最新自带的是gcc-5.4, 也没有降级去验证. 只是没遇到这样的坑,我想应该是解决了.
    之后就是配置CUDA环境变量:

    sudo gedit ~/.bashrc

    在bashrc文件末尾加上:

    export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    export CUDA_HOME=/usr/local/cuda

    接着:

    sudo gedit /etc/profile

    在文件末尾加上:

    export PATH = /usr/local/cuda/bin:$PATH

    最后创建conf文件:

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

    在conf文件里加入以下内容:

    /usr/local/cuda/lib64

    执行

    sudo ldconfig

    这一切完成之后运行一下cuda的例子看看能不能成功运行.

    4.CUDNN
    下载cuDNN v5.1 Library for Linux并解压.
    进入cudnn5.1解压之后的include目录,在命令行里把cudnn的头文件和库文件复制到相应的目录下:

    sudo cp ./include/cudnn.h /usr/local/cuda/include/
    sudo cp ./lib64/lib* /usr/local/cuda/lib64/

    接着进入/usr/local/cuda/lib64/ 这个目录下创建软连接:

    sudo rm -rf libcudnn.so libcudnn.so.5
    sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5
    sudo ln -s libcudnn.so.5 libcudnn.so

    这样cudnn就算是安装好了.

    接下来的就要讨论一些容易入坑的问题了.

    5.caffe安装
    为什么我要先安装caffe? 因为caffe和tensorflow有一些共同依赖的库.并且用sudo apt-get安装的依赖库的版本都不一样.
    例如caffe的protobuf库是3.0.0的是用gcc5编译的, 而tensorflow的是3.0.1的,并且是用gcc4的版本编译的,所以如果先安装了tensorflow后会出现各种稀奇古怪的问题.
    解决这个问题有两个途径:
    (1). 自行手动下载和编译boost, protobuf, gflags, glog等库;然后python安装protobuf等文件

    .........................protobuf......................

    cd ~ git clone https://github.com/google/protobuf.git 
    sudo apt-get install autoconf automake libtool curl  unzip 
    cd protobuf 
    ./autogen.sh 
    ./configure --prefix=/usr/local
    make 
    make check 
    sudo make install 
    sudo ldconfig # refresh shared library cache.

    .........................glog..........................

    modify CMakeLists.txt
    add this to CMakeLists:
    set(BUILD_SHARED_LIBS TRUE)
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

    .........................gflags.........................

    modify CMakeLists.txt
    add this to CMakeLists:
    set(GFLAGS_BUILD_SHARED_LIBS TRUE)
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

    (2).使用系统自带的python库编译caffe, anaconda安装tensorflow, 这样两种库就不会打架了,副作用就是必须用多版本的python, 网上有pydev的方法可以解决这个问题.
    以上两种方法亲测有效.但是我更倾向于第一种,而且我自己的机器也是按照第一种方法安装的.

    A.安装Anaconda2.
    下载和安装Anaconda2.并替换掉libstdc++,libgomp这几个4.x版本的gcc编译动态库软连接 :

    rm -rf /home/your_path/anaconda2/lib/libstdc++.so
    rm -rf /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so
    rm -rf /home/your_path/anaconda2/lib/libstdc++.so.6
    rm -rf /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6
    ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /home/your_path/anaconda2/lib/libstdc++.so.6
    ln -s /home/your_path/anaconda2/lib/libstdc++.so.6 /home/your_path/anaconda2/lib/libstdc++.so
    ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6
    ln -s /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6 /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libstdc++.so
    rm -rf /home/your_path/anaconda2/lib/libgomp.so
    rm -rf /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libgomp.so
    rm -rf /home/your_path/anaconda2/lib/libgomp.so.1
    rm -rf /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libgomp.so.1
    ln -s /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0 /home/your_path/anaconda2/lib/libgomp.so.1
    ln -s /home/your_path/anaconda2/lib/libgomp.so.1 /home/your_path/anaconda2/lib/libgomp.so
    ln -s /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0 /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libgomp.so.1
    ln -s /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libgomp.so.1 /home/your_path/anaconda2/pkgs/libgcc-4.8.5-2/lib/libgomp.so

    B.之后就是安装caffe安装的依赖项.

    sudo apt-get install libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev liblmdb-dev libopencv-dev libopenblas-dev liblapack-dev libatlas-base-dev

    C.按照官方的要求修改makefile.
    https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-15.10-Installation-Guide

    D编译caffe.

    6.编译opencv3.1
    A.首先安装opencv依赖项

    sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
    sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev
    sudo apt-get install libgtk2.0-dev libtbb-dev
    sudo apt-get install libatlas-base-dev gfortran

    B.编译opencv

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/your_path/opencv3 -D PYTHON_INCLUDE_DIR=/home/your_path/anaconda2/include/python2.7/ -D PYTHON_INCLUDE_DIR2=/home/your_path/anaconda2/include/python2.7  -D PYTHON_LIBRARY=/home/your_path2/anaconda/lib/libpython2.7.so -D PYTHON_PACKAGES_PATH=/home/your_path/anaconda2/lib/python2.7/site-packages/ -D BUILD_EXAMPLES=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D PYTHON2_LIBRARY=/home/your_path/anaconda2/lib/libpython2.7.so -D BUILD_opencv_python3=OFF -D BUILD_opencv_python2=ON ..

    注意最后是空格加两点

    7.安装theano
    这个比较简单,直接sudo apt-get theano就安装了

    8.安装Tensorflow
    因为之前已经安装较高且较新的protobuf之类的依赖库, 所以tensorflow安装时不会替换更新一点的protobuf, 因此安装后不会出现打架的情况.

  • 相关阅读:
    Codeforces 1354C2
    Codeforces 1354C1
    Codeforces 1355C
    Codeforces 1353D
    Codeforces 1352
    Codeforces 1351C
    Codeforces 1344B/1345D
    Codeforces 1342D
    Codeforces 1340B/1341D
    Codeforces 1343D
  • 原文地址:https://www.cnblogs.com/frischzenger/p/6279126.html
Copyright © 2020-2023  润新知