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

歡迎訪問 生活随笔!

生活随笔

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

Ubuntu

Ubuntu15.04 64位安装Theano(已经测试可执行)

發布時間:2023/12/13 Ubuntu 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ubuntu15.04 64位安装Theano(已经测试可执行) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

備注:之前服務器上已經安裝caffe,后安裝Theano,所有有些步驟簡略。
安裝caffe詳情見
Caffe + Ubuntu 15.04 + CUDA 7.5 在服務器上安裝配置及卸載重新安裝(已測試可執行)
安裝所需的安裝包見
鏈接: http://pan.baidu.com/s/1jIRJ6mU
提取密碼:xehi

Theano官方網站:
http://deeplearning.net/software/theano/#


BLAS(Basic Linear Algebra Subprograms)是基礎線性代數子程序庫,里面擁有大量已經編寫好的關于線性代數運算的程序; LAPACK?(Linear Algebra PACKage)包含了求解科學與工程計算中最常見的數值線性代數問題,如求解線性方程組、線性最小二乘問題、特征值問題和奇異值問題等; ATLAS是python下的一個線性代數庫,是基于另外兩個線性代數庫BLAS和lapack的; NumPy提供了一個在python中做科學計算的基礎庫,它重在數值計算,甚至可以說是用于多維數組處理的庫; SciPy是基于numpy,提供了一個在python中做科學計算的工具集,也就是說它是更上一個層次的庫; Theano則是基于NumPy以及SciPy的一個更高級的用于科學計算的庫。
要安裝Theano,就需要先安裝好numpy和scipy; 要安裝numpy和scipy,就需要ATLAS; 要安裝ATLAS,就需要安裝BLAS和LAPACK;

相關庫的安裝順序

安裝順序:BLAS → LAPACK → ATLAS → numpy → scipy → Theano

第1步:安裝cuda,若已經安裝可進入第2步

sudo dpkg -i cuda-repo-ubuntu1504-7-5-local_7.5-18_amd64.deb sudo apt-get update sudo apt-get install -y cuda

但此時查詢cuda會出現問題

nvcc -V

問題是

The program 'nvcc' is currently not installed. You can install it by typing: sudo apt-get install nvidia-cuda-toolkit

但是我們已經安裝了cuda,在 /usr/local 能夠看到文件夾 cuda-7.5。 這需要如下設置

執行sudo gedit ~/.bashrc,在最后面,64位的話粘貼以下內容:

export PATH=/usr/local/cuda-7.5/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH

接著執行 source ~/.bashrc 使其立即生效
下面查詢

nvcc -V

可見如下結果

nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2015 NVIDIA Corporation Built on Tue_Aug_11_14:27:32_CDT_2015 Cuda compilation tools, release 7.5, V7.5.17

第2步:配置cuda
執行

nvidia-settings

會彈出顯卡配置的界面,至少7個大項,其中有一項叫GPU-0(Quadro K5200)和GPU-1(Tesla K40c),如果能看到自己的顯卡的話,應該就算安裝成功了。下面進行配置。


使用自帶的samples進行GPU運算測試。進入到cuda-7.5的samples目錄,一般都是cd /usr/local/cuda-7.5/samples,然后會有一個Makefile文件,執行命令

sudo make

不出意外地話,會出現帶有紅顏色的error錯誤,大概是這樣的:unsupported GNU version! gcc versions later than 4.9 are not supported! 意思也很明顯了,就是gcc的版本高于4.9,Cuda不支持。


解釋一下:ubuntu15.04自帶的gcc是4.9.2,可以通過

gcc --version

查看,但是cuda不支持超過4.9.2的gcc編譯器。要么安裝一個低版本的編譯器,要么把cuda的這個限制給去掉。


方法1:降級安裝gcc/g++版本為4.7.x
(a). 下載gcc/g++ 4.7.x

sudo apt-get install -y gcc-4.7 sudo apt-get install -y g++-4.7

(b). 鏈接gcc/g++實現降級

cd /usr/bin sudo rm gcc sudo ln -s gcc-4.7 gcc sudo rm g++ sudo ln -s g++-4.7 g++

方法2 去掉 cuda的限制

sudo cd /usr/local/cuda/include/ #進入到頭文件目錄cuda(而不是cuda-7.5); sudo cp host_config.h host_config.h.bak #備份原頭文件; sudo gedit host_config.h #編輯頭文件;

ctrl+F查找4.9出現的地方,大約位于115行,在第113行處應該顯示if GNUC>4 || (GNUC == 4 && GNUC_MINOR > 9),因為我們的是4.9.2,因此,把上面的2個4都改成5就ok了,保存退出。

備注:Matlab 2014a(2015a)的版本是4.7.x所以在使用matla調用mex文件的時候,基本上都會報錯。綜上所述,建議使用方法1來修改。


接著進行編譯

cd /usr/local/cuda-7.5/samples sudo make

這個過程會比較長,讓他在哪編譯一會,剩下的時間可以用來安裝Theano。

第3步: 安裝 Theano

更新源

sudo apt-get update

安裝依賴包

sudo apt-get install python-numpy python-scipy python-dev python-pip python-nose g++ libopenblas-dev git

安裝scipy依賴包
scipy的安裝需要依賴于numpy、lapack、atlas(后兩者都是線性代數工具包),而numpy和sci的測試程序的運行又依賴于nose,因此,整個安裝過程必須要按順序執行的,否則是無法執行下去的。


1、先安裝nose包


sudo apt-get install python-nose

2、接下來安裝各種包


# 安裝gfortran,后面編譯過程中會用到 sudo apt-get install gfortran # 安裝blas,Ubuntu下對應的是libopenblas,其它操作系統可能需要安裝其它版本的blas——這是個OS相關的。 sudo apt-get install libopenblas-dev # 安裝lapack,Ubuntu下對應的是liblapack-dev,和OS相關。 sudo apt-get install liblapack-dev # 安裝atlas,Ubuntu下對應的是libatlas-base-dev,和OS相關。 sudo apt-get install libatlas-base-dev
  • 安裝numpy scipy
  • sudo apt-get install python-numpy # python2.7 sudo apt-get install python3-numpy # python3.5 sudo apt-get install python-scipy # python2.7 sudo apt-get install python3-scipy # python3.5

    安裝Theano

    sudo pip install Theano

    測試numpy是否啟用了blas加速,進入python
    在命令行輸入

    python >>>import numpy >>>id(numpy.dot) == id(numpy.core.multiarray.dot) >>>False

    輸出False表示加速成功,如果輸出True,參考官方教程修改,理論上很少加速失敗。失敗請查看高性能Numpy/Scipy加速:使用Intel MKL和Intel Compilers或OpenBLAS(待續)

    第4步: 編輯Theano配置文件

    sudo gedit ~/.theanorc

    寫入以下下內容:

    [global] openmp=False floatX=float32 device=gpu allow_input-downcast=True [blas] ldflags= [nvcc] flags=-D_FORCE_INLINES [lib] cnmem = 1

    第5步:命令端其他測試

    NumPy (~40s)

    python -c "import numpy;numpy.test()"

    SciPy (~2m)

    python -c "import scipy;scipy.test()"

    Theano (~30m)

    python -c "import theano;theano.test()"

    在Theano測試時可能會有問題

    Using gpu device 0: Tesla K40c (CNMeM is disabled, cuDNN Version is too old. Update to v5, was 4004.)

    所以這需要升級為cuDNN v5。


    出現了no module named nose-parameterized問題

    pip install nose-parameterized

    第6步:測試經典的GPU測試代碼保存至test.py

    sudo gedit 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' % iters, t1 - t0, 'seconds') print ('Result is', 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')

    結果顯示如下

    Using gpu device 0: Tesla K40c (CNMeM is disabled, cuDNN 5103) /home/bids/.local/lib/python2.7/site-packages/theano/sandbox/cuda/__init__.py:600: UserWarning: Your cuDNN version is more recent than the one Theano officially supports. If you see any problems, try updating Theano or downgrading cuDNN to version 5.warnings.warn(warn) [GpuElemwise{exp,no_inplace}(<CudaNdarrayType(float32, vector)>), HostFromGpu(GpuElemwise{exp,no_inplace}.0)] ------------------------------------------------------- Looping 1000 times took 0.630527973175 seconds --------------------------------------------------------- Result is [ 1.23178029 1.61879349 1.52278066 ..., 2.20771813 2.299677611.62323296] Used the gpu

    如果想用cpu測試的話,就sudo gedit ~/.theanorc,將其中的gpu修改為cpu就可以了。
    結果顯示如下

    [Elemwise{exp,no_inplace}(<TensorType(float32, vector)>)] ----------------------------------------------------------- Looping 1000 times took 3.24689912796 seconds ----------------------------------------------------------- Result is [ 1.23178029 1.61879337 1.52278066 ..., 2.20771813 2.299677611.62323284] Used the cpu

    結果顯示 GPU加速效果明顯


    Using gpu device 0: Tesla K40c (CNMeM is disabled, cuDNN 5103)
    解決方法


    cnmem package: https://github.com/NVIDIA/cnmem

    cd $HOME % git clone https://github.com/NVIDIA/cnmem.git cnmem % cd cnmem % mkdir build % cd build % cmake .. % make

    link with cnmem


    The source folder contains a header file include/cnmem.h and the build directory contains the library libcnmem.so, put them into your cuda path: /usr/local/cuda/include,/usr/local/cuda/lib64

    sudo cnmem sudo cp -rf ./include/cnmem.h /usr/local/cuda/include sudo cp -rf ./build/libcnmem.so /usr/local/cuda/lib64
    sudo gedit ~/.theanorc [global] openmp=False floatX=float32 device=cpu allow_input-downcast=True [blas] ldflags= [nvcc] flags=-D_FORCE_INLINES [lib] cnmem = 1

    測試

    python test.py Using gpu device 0: Tesla K40c (CNMeM is enabled with initial size: 95.0% of memory, cuDNN 5110)

    參考主頁:

    Ubuntu15.10_64位安裝Theano+cuda7.5詳細筆記

    Ubuntu-安裝-theano+caffe-超詳細教程

    Caffe + Ubuntu 15.04 + CUDA 7.5 在服務器上安裝配置及卸載重新安裝(已測試可執行)

    Ubuntu14.04安裝Theano詳細教程

    Theano: CNMeM is disabled, CuDNN not available

    Windows10 64Bit完美配置Theano并實現GPU加速并解決((CNMeM is disable,CuDNN not available))

    總結

    以上是生活随笔為你收集整理的Ubuntu15.04 64位安装Theano(已经测试可执行)的全部內容,希望文章能夠幫你解決所遇到的問題。

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