轉自:http://blog.csdn.net/xuezhisdc/article/details/47065475
環境
- 操作系統:ubuntu14.04
- Python:2.7.6
- 需要聯網
相關庫簡介
- 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
檢查numpy和scipy是否通過測試
- 說明:如果你的numpy和scipy是通過
apt-get
安裝的,那麼它們的單元測試可能會通不過!!!(我在安裝過程中沒有通過測試,scipy出現了Error) - 如果numpy或scipy不能通過測試,就需要卸載,然後重新按照本文介紹的順序安裝。
# 檢查numpy是否通過測試
python -c "import numpy;numpy.test()"
- 1
- 2
- 1
- 2
如果numpy通過測試,會出現如下圖所示的結果。注意最後一行errors=0 failures=0。如果沒有通過測試,需要卸載並重新安裝。
如果scipy通過測試,會出現如下圖所示的結果。注意最後一行errors=0 failures=0。如果沒有通過測試,需要卸載並重新安裝。
注意:scipy很可能會出現測試錯誤,比如我安裝過程中出現下圖所示的錯誤。
卸載numpy和scipy
# 卸載numpy
sudo apt-get remove python-numpy
# 卸載scipy
sudo apt-get remove python-scipy
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
安裝各種包
# 安裝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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
安裝numpy和scipy
- 使用pip安裝numpy和scipy
- 安裝pip的命令:
sudo apt-get install python-pip
- 注意:一定要在安裝完lapack/blas之後,再安裝numpy和scipy。否則,會出現錯誤
no lapack/blas resources found
- 安裝numpy和scipy的命令如下所示。
# 安裝numpy
sudo pip install numpy
# 測試numpy
# 測試通過才能進行下一步~~
python -c "import numpy;numpy.test()"
# 安裝scipy
sudo pip install scipy
# 測試scipy
# 測試通過才能進行下一步~~
python -c "import scipy;scipy.test()"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
安裝線性計算庫、numPy和sciPy的編譯方法(推薦)
編譯安裝OpenBlas
- 爲什麼安裝OpenBLAS?因爲OpenBLAS的速度比atlas快。速度對比請參考:《Benchmark OpenBLAS, Intel MKL vs ATLAS》
- 下載OpenBLAS。github下載地址
- 安裝OpenBLAS
tar -zxvf OpenBLAS**.tar.gz
cd OpenBLAS***
make FC=gfortran #需要已經安裝gfortran
make PREFIX=/path/of/installation install # 安裝在/opt/OpenBLAS/目錄下
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
安裝numPy
tar -zxvf numpy***.tar.gz
cd numpy***
cp site.cfg.example site.cfg
vi site.cfg
#將以下4行去掉註釋。【101行--104行】
#[openblas]
#libraries = openblas
#library_dirs = /opt/OpenBLAS/lib
#include_dirs = /opt/OpenBLAS/include
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 安裝numPy。
sudo python setup.py config
sudo python setup.py build
sudo python setup.py install
- 1
- 2
- 3
- 1
- 2
- 3
安裝sciPy
tar -zxvf scipy***.tar.gz
cd scipy***
# 將numPy**中的配置文件複製到此處
cp ../numpy**/site.cfg.example ./site.cfg
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
- 安裝sciPy。
sudo python setup.py config
sudo python setup.py build
sudo python setup.py install
- 1
- 2
- 3
- 1
- 2
- 3
安裝其它庫
- 爲了安裝Theano,最後還需要安裝一些庫,可以參考官方教程
sudo apt-get install python-dev
sudo apt-get install python-pip
sudo apt-get install python-nose
sudo apt-get install g++
sudo apt-get install git
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
安裝Theano
- 前面的操作如果沒有出現錯誤,就可以開始安裝Theano了。命令如下所示。
# 安裝Theano
sudo pip install Theano
# 測試Theano
python -c "import theano;theano.test()"
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5