歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu 14.04安裝Theano詳細教程

Ubuntu 14.04安裝Theano詳細教程

日期:2017/2/28 13:46:50   编辑:Linux教程

因為最近需要學習深度學習,因此想要配置Theano,來開發深度學習算法。但是發現Theano安裝總是出現問題。於是在這裡中總結一下。

環境

  • 操作系統: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()"
  • 如果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

安裝各種包

# 安裝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

  • 使用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()"

安裝線性計算庫、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 install # 安裝在/opt/OpenBLAS/目錄下

安裝numPy

  • 下載numPy 。github 豆瓣鏡像
  • 解壓下載包,並配置OpenBLAS。
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
  • 安裝numPy。
sudo python setup.py config
sudo python setup.py build
sudo python setup.py install 

安裝sciPy

  • 下載sciPy 。github 豆瓣鏡像
  • 解壓下載包,並配置OpenBLAS。
tar -zxvf scipy***.tar.gz
cd scipy***
# 將numPy**中的配置文件復制到此處
cp ../numpy**/site.cfg.example ./site.cfg
  • 安裝sciPy。
sudo python setup.py config
sudo python setup.py build
sudo python setup.py install 

安裝其它庫

  • 為了安裝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 

安裝Theano

  • 前面的操作如果沒有出現錯誤,就可以開始安裝Theano了。命令如下所示。
# 安裝Theano
sudo pip install Theano

# 測試Theano
python -c "import theano;theano.test()"

引用

  • ATLAS + NumPy + SciPy + Theano 的Python科學計算環境搭建
  • Compiling numpy with OpenBLAS integration
  • 官方安裝教程
  • http://stackoverflow.com/questions/7496547/does-python-scipy-need-blas
  • http://www.linuxidc.com/Linux/2014-10/107503.htm
  • http://www.scipy.org/scipylib/building/linux.html#installation-from-source
Copyright © Linux教程網 All Rights Reserved