ubuntu安裝Theano+cuda
時間:2013-12-17 作者: NOBUG 閱讀次數:23
由於學習需要用到GPU加速機器學習算法,需要安裝theano+cuda。
開源庫的一大問題就是:難安裝。
爲了搞好這個配置,我是前前後後花了3天,重裝了3次ubuntu重裝了5次驅動才搞定。
故發此貼,給出最簡單安裝方法(如果我還記得的話)。
因爲ubuntu下各種軟件依賴關係太多,最好全新ubuntu安裝theano和cuda,然後在更新
最好是這麼做,再多一步都可能搞錯………………
一、安裝ubuntu
window下安裝theano和其他的依賴庫相當複雜,甚至需要用到edu的郵箱。
果斷拋棄,用ubuntu搭起環境。
1、製作U盤
下好ubuntu(12.04)的iso後,拿出一個4GU盤,插進去格式化。
再下載一個U盤安裝器:
打開,一直下一步,選定系統,選定iso文件。(這個用教?)
Create後等一會就好了。
2、騰出空間。
系統需要騰出一定空間安裝ubuntu,最好在比較空閒的硬盤中騰出來。
我在F盤騰出了20GB做Ubuntu的系統盤。
方法:
我的電腦-右鍵-管理-儲存-磁盤管理
在空閒的分區上右鍵-壓縮卷-輸入騰出來的空間大小(MB)-壓縮
3、重啓系統
開機進入boot選定從U盤啓動(按F2,或者別的,看開機的主板界面),保存退出。
然後安裝什麼的,看着圖形界面來就好了。
ubuntu會自動安裝到那個騰出來的分區。
二、安裝Theano
1、裝好Ubuntu後,先讓電腦能上網。
(校園網inode的同學別折騰,系統設置-網絡-801.2x認證,設定好用戶密碼和IP就能上網)
2、能上網之後,打開軟件中心,在編輯-軟件源,換一個好點的源(163或教育網(如果你是教育網的話))
ctrl+alt+T打開控制端,輸入 : sudo apt-get update ,讓源能工作。
3、輸入密碼,等一會,好了之後依次輸入
-
- sudo apt-get install python-numpy python-scipy python-dev python-pip python-nose g++ libopenblas-dev git
- sudo pip install Theano
等,好了就好了(如果pip install超時,可以換源或者換時間段安裝)
4、可以用
-
- NumPy (~30s): python -c "import numpy; numpy.test()"
- SciPy (~1m): python -c "import scipy; scipy.test()"
- Theano (~30m): python -c "import theano; theano.test()"
這三個程序測試下能不能跑得動,沒error就行。
三、安裝cuda
參考這個:http://blog.csdn.net/silangquan/article/details/9473613
這是一個安裝驅動的教程,不過吧cuda當作驅動安裝我是成功了。
教程做到第九步重啓就行。
然後添加環境變量:(用gedit打開 .bashrc)
1
|
sudo
gedit .bashrc |
添加下面兩行
1
2
3
|
export
PATH=/usr/local/cuda-5.5/bin:$PATH export
LD_LIBRARY_PATH=/usr/local/cuda-5.5/lib64:$LD_LIBRARY_PATH |
保存,重開機。
然後用:http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/index.html#runfile-installation
下面的方法檢驗安裝。
最後如果有在運行期間遇到下列問題:的時候顯示如下信息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
import add_newdocs
File "/usr/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
from numpy.lib import add_newdoc
File "/usr/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 13, in <module>
from polynomial import *
File "/usr/lib/python2.7/dist-packages/numpy/lib/polynomial.py", line 17, in <module>
from numpy.linalg import eigvals, lstsq
File "/usr/lib/python2.7/dist-packages/numpy/linalg/__init__.py", line 48, in <module>
from linalg import *
File "/usr/lib/python2.7/dist-packages/numpy/linalg/linalg.py", line 23, in <module>
from numpy.linalg import lapack_lite
ImportError: /usr/lib/liblapack.so.3gf: undefined symbol: ATL_chemv
我的理解是:問題處在 liblapack.so.3gf 這個庫裏面了。
然後用一下方法解決
見:http://gfeng.i.sohu.com/blog/view/224817312.htm
liblapack.so.3gf: undefined symbol: ATL_chemv:
解決辦法:
sudo apt-get remove libopenblas-base