1. 程式人生 > >Ubuntu下如何安裝TensorFlow

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 #儲存並退出