Ubuntu 下多種方式安裝 TensorFlow 總結(未完待續。。。。)

前言

在本篇文章中,我們將介紹TensorFlow的安裝,TensorFlow是Google公司在2015年11月9日開源的一個深度學習框架。

官網文檔地址爲:https://www.tensorflow.org/
官方GitHub倉庫:https://github.com/tensorflow/tensorflow
TensorFlow目前支持4種開發語言,分別是Python(包括Python2和Python3)、Java、Go、C。筆者使用的環境如下:

開發語言:Python 3.6
使用操作系統:Ubuntu 16.04
硬件環境:CPU
基於這些環境,我們來安裝TensorFlow吧。

Ubuntu下安裝TensorFlow
在Ubuntu上我們分別在原生pip、Virtualenv 環境 、 Docker容器、Bazel環境以及Anaconda環境下安裝。

一、原生pip安裝TensorFlow

使用原生的pip安裝時最簡單的,直接安裝使用一條命令就可以安裝完成了。

首先確認Python環境,Ubuntu會自帶Python環境的,不用我們自己安裝,使用python3 -V可以查詢安裝的Python環境,輸出如下:
Python 3.5.2

安裝TensorFlow需要使用pip命令,默認是沒有安裝的,所以我們需要安裝pip命令:

sudo apt-get install python3-pip python3-dev

這裏筆者要說一下,默認的鏡像源太慢了,筆者修改成阿里鏡像源了,修改方式如下:

  • 備份源列表文件:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

  • 編輯源列表文件:

sudo vi /etc/apt/sources.list

  • 清空裏面的內容,添加以下的的信息:

deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main

deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe

  • 最後執行更新列表命令:

sudo apt update

安裝完成pip命令之後,可以使用pip3 -V查看是否已經安裝成功及安裝的版本,輸出如下,官方要求pip的版本要不小於8.1:

pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

  • 如果覺得版本太低,也可以升級,先要下載一個升級文件,命令如下:

wget https://bootstrap.pypa.io/get-pip.py

  • 下載完成之後,可以使用這個文件安裝最新的pip了:

sudo python3 get-pip.py

一切多準備完成,那就可以開始安裝TensorFlow了,只要使用以下一條命令就可以:

sudo pip3 install tensorflow
  • 如果使用上面安裝比較慢的話,我們還可指定使用的鏡像源,比如這裏筆者使用的是阿里的鏡像源,之後使用到pip安裝的同樣的操作:

sudo pip3 install -i https://mirrors.aliyun.com/pypi/simple/ tensorflow

安裝完成之後,可以使用以下命令查看是否完成及安裝的版本:

pip3 list

注意:如果在運行報以下錯誤,多數是電腦的CPU不支持AVX指令集:

非法指令 (核心已轉儲)

如何知道自己的電腦是不是支持AVX指令集呢,可以通用以下的命令查看,輸出Yes就是支持,No就是不支持:

if cat /proc/cpuinfo | grep -i avx; then echo Yes; else echo No; fi

TensorFlow在1.6版本之後都會使用AVX指令集,如果讀者的電腦不支持AVX指令集,就要安裝低版本的,如下是安裝1.5版本的:

pip3 install tensorflow==1.5

安裝完成之後,可以進行測試,測試情閱讀最後的測試部分。

二、Virtualenv安裝TensorFlow

首先通過以下的命令來安裝 pip 和 Virtualenv:

sudo apt-get install python3-pip python3-dev python-virtualenv

然後通過下面的命令來創建 Virtualenv 環境:

virtualenv --system-site-packages -p python3 ~/tensorflow

最後通過下面的命令激活 Virtualenv 環境:

source ~/tensorflow/bin/activate

這時會發現控制檯已經發生了變化,變成如下狀態,這表明已經進入了 Virtualenv 環境:

(tensorflow) yeyupiaoling@tensorflow:~$

接下來的操作都是在這個Virtualenv 環境下操作,比我們的pip命令也是在這裏的,可以使用pip3 -V查看:

pip 10.0.1 from /home/yeyupiaoling/tensorflow/lib/python3.5/site-packages/pip (python 3.5)

我們在Virtualenv 環境裏通過以下的命令即可完成安裝TensorFlow:

pip3 install tensorflow

不支持AVX的請安裝1.5版本:

pip3 install tensorflow==1.5

使用完成之後,可以通過以下命令退出Virtualenv 環境:

deactivate

三、Docker下安裝TensorFlow

要使用Docker,就要先安裝Docker,以下命令就是安裝Docker的命令:

sudo apt-get install docker.io

安裝完成之後,可以使用docker --version查看Docker的版本,如果有顯示,就證明安裝成功了。

然後我們可以通過以下的命令拉取TensorFlow的鏡像,我們也可以通過dockerhub獲取更多Docker鏡像:

docker pull tensorflow/tensorflow:1.8.0-py3

如果電腦不支持AVX指令集的,請安裝低版本的TensorFlow鏡像:

docker pull tensorflow/tensorflow:1.5.1-py3

拉取完成鏡像,就可以使用docker images查看已經安裝的鏡像:

REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
tensorflow/tensorflow               1.8.0-py3           a83a3dd79ff9        2 months ago        1.33 GB

使用TensorFlow的Docker鏡像有個好處就是自帶了jupyter notebook,啓動鏡像之後可以直接使用jupyter。

sudo docker run -it -p 80:8888 tensorflow/tensorflow:1.8.0-py3

然後終端會輸出以下信息,要注意輸出的token:

[I 07:08:38.160 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[W 07:08:38.177 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[I 07:08:38.186 NotebookApp] Serving notebooks from local directory: /notebooks
[I 07:08:38.186 NotebookApp] 0 active kernels
[I 07:08:38.187 NotebookApp] The Jupyter Notebook is running at:
[I 07:08:38.187 NotebookApp] http://[all ip addresses on your system]:8888/?token=ab489f0445846cb7f9d5c9613edcf7b9537cd245dbecf2a6
[I 07:08:38.187 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 07:08:38.187 NotebookApp] 

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://localhost:8888/?token=ab489f0445846cb7f9d5c9613edcf7b9537cd245dbecf2a6

然後我們在瀏覽器上輸入IP地址,如何是在本地,那就就輸入localhost,得到的頁面如下,輸入終端輸出的token和新密碼就可以登錄使用jupyter了: 

è¿éåå¾çæè¿°

得到的jupyter網頁如下: 

è¿éåå¾çæè¿°

如果停止運行鏡像了,可以使用以下的命令找到之前使用這個進行run生成的一個容器:

sudo docker ps -a

會得到以下信息,其中最重要的是CONTAINER ID:

CONTAINER ID        IMAGE                             COMMAND                  CREATED             STATUS                      PORTS               NAMES
44aa680ac51f        tensorflow/tensorflow:1.8.0-py3   "/run_jupyter.sh -..."   14 minutes ago      Exited (0) 21 seconds ago                       cranky_elion

通過這個CONTAINER ID可以再次啓動這個容器,這樣就不用每次都run一個容器出來,佔用磁盤容量,同時也可以保存原來的環境,可以使用以下的命令啓動容器:

sudo docker start 44aa680ac51f

啓動之後是在後臺運行的,那麼如何讓容器有信息輸入的同時會輸出到控制檯呢,可以用使用以下的命令實現:

sudo docker attach 44aa680ac51f

如果要以終端的方式進入到容器中,可以使用以下的命令:

sudo docker exec -it 44aa680ac51f /bin/bash

安裝完成之後,可以進行測試,測試情閱讀最後的測試部分。

四、Bazel下安裝TensorFlow

 

 

 

五、Anaconda下安裝TensorFlow

 

 

測試

安裝完成之後,我們要測試一下環境是不是已經成功安裝並且可以正常使用了。

首先編譯一個測試test1.py文件:

import tensorflow as tf

hello = tf.constant('Hello, TensorFlow!')

sess = tf.Session()

print(sess.run(hello))

然後我們執行這個文件python3 test1.py就可以運行它了,正常情況下會輸出以下內容:

2018-07-08 15:11:05.240607: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
b'Hello, TensorFlow!'

以上是在終端上操作的,那麼使用Docker應該如何執行這些文件呢。有兩種方法,一種就是以命令終端的方式進入到TensorFlow鏡像中,之後的操作就跟在Ubuntu操作差不多了:

docker run -it -v $PWD:/work tensorflow/tensorflow:1.8.0-py3 /bin/bash

另一種就是掛載目錄到鏡像上,然後直接通過命令執行代碼文件:

docker run -it -v $PWD:/work -w /work tensorflow/tensorflow:1.8.0-py3 python3 /work/test1.py

參考資料

https://opsx.alibaba.com/mirror
https://www.tensorflow.org/install/install_linux
https://www.tensorflow.org/install/install_windows
https://www.tensorflow.org/install/install_sources
https://blog.csdn.net/u014132659/article/details/51544754
http://www.tensorfly.cn/tfdoc/get_started/introduction.html
https://blog.csdn.net/u010099080/article/details/53418159
https://blog.csdn.net/u010397369/article/details/41045251
https://github.com/tensorflow/models/tree/master/research/slim#pre-trained-models
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章