Ubuntu下如何安裝TensorFlow
本文目錄
1.引言
TensorFlow = Tensor(向量)+Flow(流)=”張量在網路圖中流動”!
官方提供了5種安裝tensorflow的方法:
- Pip install: Install TensorFlow on your machine, possibly upgrading previously installed Python packages. May impact existing Python programs on your machine.
- Virtualenv install: Install TensorFlow in its own directory, not impacting any existing Python programs on your machine.
- Anaconda install: Install TensorFlow in its own environment for those running the Anaconda Python distribution. Does not impact existing Python programs on your machine.
- Docker install: Run TensorFlow in a Docker container isolated from all other programs on your machine.
- Installing from sources: Install TensorFlow by building a pip wheel that you then install using pip.
幾點說明:
1. 由於在使用Tensorflow時,可以直接python呼叫,所以,這裡決定使用python學習tensorflow
2. 使用python,jupyter notebook是一個不可或缺的工具,所以,本文還將記錄如何在ubuntu下安裝jupyter
3. 這裡主要安裝python2.7版本的相關元件
2. 基於Anaconda的tensorflow安裝
2.1 下載linux版本的Anaconda安裝包
下載地址:https://www.continuum.io/downloads
這裡選擇64位linux的Python 2.7版本
點選下載,下載完成後,得到Anaconda2-4.0.0-Linux-x86_64.sh安裝檔案
2.2 安裝Anaconda
開啟terminal,輸入如下命令,然後回車
bash /home/tingting/Downloads/Anaconda2-4.0.0-Linux-x86_64.sh
這裡的/home/tingting/Downloads/
是存放Anaconda2-4.0.0-Linux-x86_64.sh
的路徑閱讀license,一步步回車閱讀(出現more時通過回車往下看)
輸入yes,表示接受license
設定安裝路徑,這裡使用預設安裝路徑,直接輸入回車即可
開始自動安裝過程
確認是否將Anaconda的安裝路徑新增到環境變數中,輸入yes
關於這裡一定要注意:如果在安裝過程中,該步沒有選擇yes,那麼Anaconda的安裝路徑不會被新增到環境變數中,安裝結束後會出現如下資訊:
Do you wish the installer to prepend the Anaconda2 install location
to PATH in your /home/tingting/.bashrc ? [yes|no]
[no] >>>
You may wish to edit your .bashrc or prepend the Anaconda2 install location:
$ export PATH=/home/tingting/anaconda2/bin:$PATH
Thank you for installing Anaconda2!當時也沒有注意這個資訊,沒有管,結果安裝完anaconda後,發現根本不能使用,才注意到這條資訊,原來,Anaconda的bin路徑並沒有被新增到PAHT環境變數中,所以需要在命令列中輸入如下命令:
export PATH=/home/tingting/anaconda2/bin:$PATH
即將anaconda的bin路徑新增到環境變數PATH中安裝完成
這裡可以看到,notebooks和一些python包都被成功安裝了,但對於環境變數的更改,必須要新開啟一個terminal才能生效,否則,相關的指令都不會被認識
開啟新的terminal,輸入
Jupyter notebook
,發現jupyter被成功安裝了
3. 利用anaconda安裝tensorflow
3.1 建立一個 conda 計算環境
Create a conda environment called tensorflow:
conda create -n tensorflow python=2.7
3.2 啟用環境,使用 conda 安裝 TensorFlow
Activate the environment and use pip to install TensorFlow inside it.
source activate tensorflow
3.3 安裝tensorflow
安裝
pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0rc0-cp27-none-linux_x86_64.whl
之前在虛擬機器中的ubutnu下安裝tensorflow,就在這一步折騰了2天,就是不成功,每次都是timeout等各種問題,這次在雙系統的機器上,瞬間就裝好了,實在不知道之前的失敗是因為虛擬機器還是網速的問題
安裝成功後,每次使用 TensorFlow 的時候需要啟用 conda 環境,可以看到,在正常情況下,是anaconda的bin路徑在環境變數中,但啟用conda-tensorflow環境後,環境變數中儲存的是tensorflow下的bin路徑
測試tensorflow是否安裝成功
(1) 啟用conda環境
(2)進入python
(3)import tensorflow
整個過程比較順利,tensorflow被成功import了
3.4 如何在jupyter中使用tensorflow
(1) 出現了問題
安裝如上方法安裝了jupyter和tensorflow,結果,利用jupyter無法使用tensorflow
也沒有查到特別有針對性的解決這個問題的資料,好像是因為jupyter的安裝路徑和tensorflow的路徑之間的問題,具體的現在還不是很清楚
(2)如何解決?
應該是在conda的tensorflow環境下沒有jupyter,它無法使用之前anaconda安裝的jupyter,那麼,簡單粗暴的方法就是在當前的conda-tensorflow環境下,再安裝一次jupyter:
- 開啟terminal
- 啟用conda tensorflow環境:
source activate tensorflow
- 安裝notebook:
conda install ipython
- 安裝jupyter:
conda install jupyter
- 安裝完成,仍在conda tensorflow的環境下,輸入
jupyter notebook
,開啟http://localhost:8889/tree# import tensorflow
,發現tensorflow可以使用了
(3)兩個jupyter
- 在正常的ternimal中開啟的是之前在安裝anacodna時安裝的jupyter,在正常的terminal下 檢視jupyter的安裝路徑
which ipyhon
它在anaconda的路徑下的bin資料夾中 - 在conda tensorflow環境下開啟的jupyter是在conda tensorflow環境下新安裝的tensorflow,與上面的jupyter不同
它在conda的env下的tensorflow的bin資料夾下 - 從下圖可以想起地看到,兩個jupyter的安裝路徑完成不同
- 後續如果需要在使用tensorflow時使用其他的庫,也一定要在對應的conda環境下安裝,否則指定的庫找不到。
(4) 缺少模組及安裝
- ImportError: no module named Image, ImportError: no module named PIL
解決:conda install pillow
4. 總結
(1) 下載安裝anaconda,與本文的第2部分同樣目的,只不過通過命令列實現
#安裝anaconda,從https://www.continuum.io下載
mkdir anaconda2 #在個人目錄下建立Aanconda目錄
cd anaconda2 #進入目錄
wget http://repo.continuum.io/archive/Anaconda2-4.0.0-Linux-x86.sh #下載anaconda的安裝包,利用wget工具
chmod +x Anaconda3-2.5.0-Linux-x86_64.sh #更改許可權(增加可執行許可權),使該檔案可被執行,
./Anaconda2-4.0.0-Linux-x86.sh #執行安裝檔案,或者使用bash Anaconda2-4.0.0-Linux-x86.sh
(2) 在conda下建立環境,之後的所以操作都部署在該環境下
conda create -n tensorflow python=2.7 #建立tensorflow環境
activate conda tensorflow #啟用tensorflow環境
conda install ipython #安裝notebook
conda install jupyter #安裝jupyter
jupyter notebook #啟動jupyter
6.利用Docker安裝tensorflow
利用這種方法可以實現在windows上使用tensorflow!具體步驟如下:
6.1 安裝docker
6.2 建立tensorflow的image
安裝好docker後,接下來,就可以建立包含tensorflow的image了,有兩種方案
(1) 從dockerhub上pull別人的image
例如:
(2)自己書寫Dockerfile,然後,在本機編譯dockerfile,生成image,對於這種方法,本人還不會,以後有待研究
7.安裝過程中的一些小問題記錄
注1:安裝過程中各種問題
安裝過程中,好像是不小心更改了環境變數,導致所有命令都不能使用,那麼,可以使用如下命令export PATH=/usr/bin:/bin
注2:在安裝過程中發現,例如如上命令總是無法安裝tensorflow,會出現網路連線錯誤的問題,試了好多遍都不行,不知道是不是因為在虛擬機器中latern使用不好的問題,所以,最後,只能通過如下方式
(1)在本機下載tensorflow-0.8.0-cp27-none-linux_x86_64.whl
地址為:https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
(2)將下載的tensorflow-0.8.0-cp27-none-linux_x86_64.whl檔案放置在共享資料夾中
(3)在虛擬機器的ubuntu的terminal中,cd到放置tensorflow-0.8.0-cp27-none-linux_x86_64.whl的路徑(即/home/share/),使用如下命令安裝tensorflow(即相當於離線安裝了)
sudo pip install --upgrade tensorflow-0.8.0-cp27-none-linux_x86_64.whl
注3:怎麼向某個檔案中填寫內容?舉例:如何向sources.list檔案插入語句sudo vim /etc/apt/sources.list
a #進入插入模式
:wq #儲存並退出