日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

Ubuntu16.04 +cuda8.0+cudnn+opencv+caffe+theano+tensorflow配置明细

發布時間:2025/3/15 Ubuntu 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ubuntu16.04 +cuda8.0+cudnn+opencv+caffe+theano+tensorflow配置明细 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

本文為原創作品,未經本人同意,禁止轉載,禁止用于商業用途!本人對博客使用擁有最終解釋權

歡迎關注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing

本文主要是介紹在ubuntu16.04下,怎么配置當下流行的深度學習框架,cuda8.0+cudnn+caffe+theano+tensorflow

安裝英偉達顯卡驅動

首先去官網上查看適合你GPU的驅動

(http://www.nvidia.com/Download/index.aspx?lang=en-us)

sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update sudo apt-get install nvidia-375(375是你查到的版本號) sudo apt-get install mesa-common-dev sudo apt-get install freeglut3-dev

執行完上述后,重啟(reboot)。

重啟后輸入

nvidia-smi

如果出現了你的GPU列表,則說明驅動安裝成功了。另外也可以通過,或者輸入

nvidia-settings

出現

  • 配置cuda

  • https://developer.nvidia.com/cuda-downloads

    在cuda所在目錄打開terminal依次輸入以下指令:

    sudo dpkg -i cuda-repo-ubuntu1604-8-0-rc_8.0.27-1_amd64?.deb sudo apt-get update sudo apt-get install cuda?

    ubuntu的gcc編譯器是5.4.0,然而cuda8.0不支持5.0以上的編譯器,因此需要降級,把編譯器版本降到4.9:

    在terminal中執行:

    sudo apt-get install gcc -4.9 gcc-5 g++-4.9 g++-5 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10 sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30 sudo update-alternatives --set cc /usr/bin/gcc sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30 sudo update-alternatives --set c++ /usr/bin/g++

    配置cuda8.0之后主要加上的一個環境變量聲明,在文件~/.bashrc之后加上

    ?

    gedit ~/.bashrc export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}


    然后設置環境變量和動態鏈接庫,在命令行輸入

    sudo gedit /etc/profile

    在打開的文件里面加上(注意等號兩邊不能有空格)

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

    保存之后,創建鏈接文件

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

    在打開的文件中添加如下語句:

    /usr/local/cuda/lib64

    保存退出執行命令行:

    sudo ldconfig

    使鏈接立即生效。

    2、測試cuda的Samples

    命令行輸入(注意cuda-8.0是要相對應自己的cuda版本)

    cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery make sudo ./deviceQuery

    返回GPU的信息則表示配置成功

    3、使用cudnn

    上官網下載對應的cudnn

    https://developer.nvidia.com/cudnn

    下載完cudnn后,命令行輸入文件所在的文件夾 (ubuntu為本機用戶名)

    cd home/ubuntu/Downloads/ tar zxvf cudnn-8.0-linux-x64-v5.1.tgz #解壓文件

    cd進入cudnn5.1解壓之后的include目錄,在命令行進行如下操作:

    sudo cp cudnn.h /usr/local/cuda/include/ #復制頭文件

    再cd進入lib64目錄下的動態文件進行復制和鏈接:(5.1.5為對應版本具體可修改)

    sudo cp lib* /usr/local/cuda/lib64/ #復制動態鏈接庫 cd /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 #生成軟鏈接

    4、安裝opencv3.1.0

    從官網上下載opencv3.1.0

    http://opencv.org/downloads.html

    并將其解壓到你要安裝的位置,(下載的位置還是在home/ubuntu、Downloads文件夾下)

    首先安裝Ubuntu系統需要的依賴項,雖然我也不知道有些依賴項是干啥的,但是只管裝就行,也不會占據很多空間的。

    sudo apt-get install --assume-yes libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip

    然后安裝OpenCV需要的一些依賴項,一些文件編碼解碼之類的東東。

    ?

    sudo apt-get install build-essential cmake git sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip


    在終端中cd到opencv文件夾下(解壓的那個文件夾),然后

    mkdir build #新建一個build文件夾,編譯的工程都在這個文件夾里 cd build/ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" ..(后面兩點不要忘記)

    cmake成功后,會出現如下結果,提示配置和生成成功:

    -- Configuring done

    -- Generating done

    -- Build files have been written to: /home/ise/software/opencv-3.1.0/build

    由于CUDA 8.0不支持OpenCV的 GraphCut 算法,可能出現以下錯誤:

    /home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:120:54: error: 'NppiGraphcutState' has not been declared

    typedef NppStatus (*init_func_t)(NppiSize oSize, NppiGraphcutState** ppStat

    ^

    /home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:135:18: error: 'NppiGraphcutState' does not name a type

    operator NppiGraphcutState*()

    ^

    /home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:141:9: error: 'NppiGraphcutState' does not name a type

    NppiGraphcutState* pState;

    .......

    進入opencv-3.1.0/modules/cudalegacy/src/目錄,修改graphcuts.cpp文件,將:

    #include "precomp.hpp"

    #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)

    改為

    #include "precomp.hpp"

    #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

    然后make編譯就可以了

    make -j8

    上面是將opencv編譯成功,但是并沒有安裝到我們的系統中,有很多的設置都沒有寫入到系統中,因此還要進行install。


    sudo apt-get install checkinstall sudo checkinstall sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' sudo ldconfig

    這里感謝這位朋友的提醒

    然后按照提示安裝就可以了。 使用checkinstall的目的是為了更好的管理我安裝的opencv,因為opencv的安裝很麻煩,卸載更麻煩,其安裝的時候修改了一大堆的文件,當我想使用別的版本的opencv時,將當前版本的opencv卸載就是一件頭疼的事情,因此需要使用checkinstall來管理我的安裝。執行了checkinstall后,會在build文件下生成一個以backup開頭的.tgz的備份文件和一個以build開頭的.deb安裝文件,當你想卸載當前的opencv時,直接執行dpkg -r build即可。

    5、配置caffe環境

    切換編譯器

    選擇g++ 5.0以上的對應編號

    sudo update-alternatives --config g++

    sudo update-alternatives --config gcc

    ?

    安裝依賴庫

    sudo add-apt-repository universe sudo apt-get update -y sudo apt-get install cmake -y

    # General Dependencies

    sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev \ libhdf5-serial-dev protobuf-compiler -y sudo apt-get install --no-install-recommends libboost-all-dev -y

    # BLAS

    sudo apt-get install libatlas-base-dev -y

    # Remaining Dependencies

    sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev -y sudo apt-get install python-dev python-numpy –y sudo apt-get install -y python-pip sudo apt-get install -y python-dev sudo apt-get install -y python-numpy python-scipy

    編譯 Caffe,cd到要安裝caffe的位置

    git clone https://github.com/BVLC/caffe.git cd caffe cp Makefile.config.example Makefile.config

    修改Makefile.config:

    gedit Makefile.config

    對打開的文件編輯

    # cuDNN acceleration switch (uncomment to build with cuDNN).

    USE_CUDNN := 1

    ?

    # Uncomment if you're using OpenCV 3 如果用的是opencv3版本

    OPENCV_VERSION := 3

    ?

    # Uncomment to support layers written in Python (will link against Python libs)

    WITH_PYTHON_LAYER := 1

    在問件里面添加文本由于hdf5庫目錄更改,所以需要單獨添加:

    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

    LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial/

    ?

    打開makefile文件

    gedit Makefile

    NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)

    替換

    NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

    編輯/usr/local/cuda/include/host_config.h,將其中的第115行注釋掉:

    sudo gedit /usr/local/cuda/include/host_config.h

    #error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

    ?

    改為

    //#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

    之后編輯即可

    make -j4 all make -j4 runtest

    為了更好地使用pycaffe ,建議安裝:

    sudo apt-get install python-numpy python-setuptools python-pip cython python-skimage python-protobuf make pycaffe cd python python import caffe #測試安裝成功

    到這里Caffe開發環境就配置好了!

    可以測試一下,輸出AlexNet的時間測試結果:

    cd ~/caffe ./build/tools/caffe time --gpu 0 --model ./models/bvlc_alexnet/deploy.prototxt

    6、theano安裝

    1、直接輸入命令:

    sudo pip install theano

    2、配置參數文件:.theanorc

    sudo gedit ~/.theanorc

    對打開的文件進行編輯

    [global]

    floatX=float32

    device=gpu

    base_compiledir=~/external/.theano/

    allow_gc=False

    warn_float64=warn

    [mode]=FAST_RUN

    ?

    [nvcc]

    fastmath=True

    ?

    [cuda]

    root=/usr/local/cuda

    ?

    3、運行測試例子:

    sudo Vim test.py

    from theano import function, config, shared, sandbox

    import theano.tensor as T

    import numpy

    import time

    ?

    vlen = 10 * 30 * 768 # 10 x #cores x # threads per core

    iters = 1000

    ?

    rng = numpy.random.RandomState(22)

    x = shared(numpy.asarray(rng.rand(vlen), config.floatX))

    f = function([], T.exp(x))

    print(f.maker.fgraph.toposort())

    t0 = time.time()

    for i in range(iters):

    r = f()

    t1 = time.time()

    print("Looping %d times took %f seconds" % (iters, t1 - t0))

    print("Result is %s" % (r,))

    if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):

    print('Used the cpu')

    else:

    print('Used the gpu')

    ?

    可以看到結果:

    /usr/bin/python2.7 /home/hjimce/PycharmProjects/untitled/.idea/temp.py

    Using gpu device 0: GeForce GTX 960 (CNMeM is disabled, cuDNN not available)

    [GpuElemwise{exp,no_inplace}(<CudaNdarrayType(float32, vector)>), HostFromGpu(GpuElemwise{exp,no_inplace}.0)]

    Looping 1000 times took 0.302778 seconds

    Result is [ 1.23178029 1.61879349 1.52278066 ..., 2.20771813 2.29967761

    1.62323296]

    Used the gpu

    說明安裝成功

    7、tensorflow 安裝

    https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md

    先安裝anaconda

    https://repo.continuum.io/archive/Anaconda2-4.2.0-Windows-x86_64.exe

    上面的地址下載 該包默認在downloads里面

    cd /home/username/Downloads sudo bash Anaconda2-4.2.0-Linux-x86_64.sh

    配置環境變量

    gedit /etc/profile

    末尾添上,我是一路yes下來,所以安在了root下,你可以自己選路徑,這時候的環境變量要改

    export PATH=/root/anaconda2/bin:$PATH

    重啟

    打開終端

    python

    安裝成功

    2、創建conda環境 名字叫tensorflow

    conda create -n tensorflow python=2.7 source activate tensorflow #使能該環境

    #下面這句話只能下載給CPU用的tensorflow

    conda install -c conda-forge tensorflow

    利用pip來下載給GPU用的tensorflow

    export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0-cp27-none-linux_x86_64.whl

    下載安裝

    pip install --ignore-installed --upgrade $TF_BINARY_URL

    安裝IPython

    conda install ipython

    關掉該環境

    source deactivate

    測試安裝是否正確

    source activate tensorflow python

    輸入

    import tensorflow as tfimport numpy as np # Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3x_data = np.random.rand(100).astype(np.float32)# Try to find values for W and b that compute y_data = W * x_data + by_data = x_data * 0.1 + 0.3 # figure that out for us.)# (We know that W should be 0.1 and b 0.3, but TensorFlow willy = W * x_data + bW = tf.Variable(tf.random_uniform([1], -1.0, 1.0)) b = tf.Variable(tf.zeros([1]))optimizer = tf.train.GradientDescentOptimizer(0.5)# Minimize the mean squared errors. loss = tf.reduce_mean(tf.square(y - y_data)) train = optimizer.minimize(loss)# Launch the graph.# Before starting, initialize the variables. We will 'run' this first. init = tf.initialize_all_variables()sess = tf.Session() sess.run(init)# Fit the line. for step in range(201):# Learns best fit is W: [0.1], b: [0.3]sess.run(train) if step % 20 == 0: print(step, sess.run(W), sess.run(b))

    OK

    ?

    8、Caffe配置錯誤

    ?

    問題:找不到Python.h

    解決:給anaconda添加環境變量

    gedit ~/.banshrc

    添加

    export PATH=/root/anaconda2/bin:$PATH

    export PYTHONPATH=/path/to/caffe/python:$PATH

    修改Makefile.config

    在終端輸入

    locate Python.h

    gedit Makefile.config

    在INCLUDE_DIRS 和LIBRARY_DIRS后面添上

    /root/anaconda2/include/python2.7

    啟用

    ANACONDA_HOME := $(HOME)/anaconda2

    PYTHON_ INCLUDE =$(ANACONDA_HOME)/include\

    ?

    ,把前面的#去掉,那三行都去掉#,并在注釋上面,

    ?

    注釋這兩句PYTHON_INCLUDE := /usr/include/python2.7\

    /usr/lib/python2.7…………..

    ?

    ?

    ?

    如果編譯的時候發現有錯,回來改完之后又得重新編譯一遍pycaffe,于是出現如下錯誤

    ?

    make: Nothing to be done for 'pycaffe'

    則在終端輸入

    sudo make clean

    修改完后再

    sudo make pycaffe 這里要從make –j8 all那一步開始編譯

    編譯完后,顯示

    然后 cd python進入該目錄

    python import caffe

    若此時提示錯誤:

    Traceback (most recent call last)

    File

    ImportError: /home/../anaconda2/lib/python2.7/site-packages/zmq/backend/cython/../../../../.././libstdc++.so.6: versionGLIBCXX_3.4.21' not found

    ?

    解決:

    https://github.com/BVLC/caffe/issues/4953

    https://gitter.im/BVLC/caffe/archives/2015/08/20

    ?

    cd .. pip install protobuf sudo apt-get install python-protobuf conda install libgcc

    福利答謝大家!

    感謝您閱讀本篇文章,對此特別發放一個無門檻的現金紅包,打開支付寶掃碼領取,可以領到錢的哦!


    ?

    ?

    ?

    總結

    以上是生活随笔為你收集整理的Ubuntu16.04 +cuda8.0+cudnn+opencv+caffe+theano+tensorflow配置明细的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。