入門系列之在Ubuntu 16.04上安裝和使用TensorFlow

歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~html

本文由 謝鳶 發表於 雲+社區專欄

介紹

TensorFlow是一款由Google構建的用於訓練神經網絡的開源機器學習軟件。TensorFlow的神經網絡以有狀態數據流圖的形式表示。圖中的每一個節點表示神經網絡在多維陣列上執行的操做。這些多維數組一般稱爲「張量」,所以稱爲TensorFlow。html5

TensorFlow架構容許在臺式機,服務器或移動設備中的多個CPU或GPU上進行部署。還有與Nvidia的並行計算平臺CUDA集成的擴展。這使得在GPU上部署的用戶能夠直接訪問並行計算任務所需的虛擬指令集和GPU的其餘元素。python

在本教程中,您將安裝TensorFlow的「僅CPU支持」版本。此安裝很是適合TensorFlow初學者,CPU版本不須要Nvidia顯卡。git

您能夠經過多種方式安裝TensorFlow。每種方法都有不一樣的用例和開發環境:github

  • Python和Virtualenv:在這種方法中,您能夠安裝TensorFlow以及在Python虛擬環境中使用TensorFlow所需的全部軟件包。這將您的TensorFlow環境與同一臺機器上的其餘Python程序隔離開來。
  • Native pip:在此方法中,您在全局系統上安裝TensorFlow。對於想要在多用戶系統上爲每一個人提供TensorFlow的人,建議使用此方法。此安裝方法不會在包含的環境中隔離TensorFlow,而且可能會干擾其餘Python安裝或庫。
  • Docker:Docker是一個容器運行時環境,它將其內容與系統上預先存在的包徹底隔離。在此方法中,您使用包含TensorFlow及其全部依賴項的Docker容器。此方法很是適合將TensorFlow合併到已使用Docker的更大應用程序體系結構中。可是,Docker鏡像的大小會很是大。

在本教程中,您將在Python虛擬環境 virtualenv中安裝TensorFlow。這種方法隔離了TensorFlow安裝並快速啓動和運行。完成安裝後,您將經過運行簡短的TensorFlow程序驗證安裝,而後使用TensorFlow進行圖像識別。數據庫

準備

在開始本教程以前,您須要如下內容:macos

  • 一臺 RAM 至少是 1G 的Ubuntu 16.04 服務器
  • 一個可使用sudo命令的帳戶
  • Python 3.3或更高版本而且已安裝virtualenv
  • 安裝了Git

沒有服務器的用戶能夠直接在騰訊雲實驗室Ubuntu服務器體驗Tensorflow的安裝過程。數組

第1步 - 安裝TensorFlow

在此步驟中,咱們將建立一個虛擬環境並安裝TensorFlow。服務器

首先,建立一個名爲tf-demo的項目目錄:微信

mkdir ~/tf-demo

導航到新建立的tf-demo目錄:

cd ~/tf-demo

而後建立一個名爲tensorflow-dev的新虛擬環境。運行如下命令以建立環境:

python3 -m venv tensorflow-dev

這將建立一個新tensorflow-dev目錄,其中包含您在激活此環境時安裝的全部軟件包。它還包括pip和一個獨立版本的Python。

如今激活您的虛擬環境:

source tensorflow-dev/bin/activate

激活後,您將在終端中看到與此相似的內容:

(tensorflow-dev)username@hostname:~/tf-demo $

如今,您能夠在虛擬環境中安裝TensorFlow。

運行如下命令安裝並升級到PyPi中可用的最新版本的TensorFlow :

pip3 install --upgrade tensorflow

TensorFlow將會安裝:

Collecting tensorflow
  Downloading tensorflow-1.4.0-cp36-cp36m-macosx_10_11_x86_64.whl (39.3MB)
    100% |████████████████████████████████| 39.3MB 35kB/s

...

Successfully installed bleach-1.5.0 enum34-1.1.6 html5lib-0.9999999 markdown-2.6.9 numpy-1.13.3 protobuf-3.5.0.post1 setuptools-38.2.3 six-1.11.0 tensorflow-1.4.0 tensorflow-tensorboard-0.4.0rc3 werkzeug-0.12.2 wheel-0.30.0

若是您想隨時停用虛擬環境,則命令爲:deactivate要在之後從新激活環境,請導航到項目目錄source tensorflow-dev/bin/activate並運行。

如今,您已經安裝了TensorFlow,讓咱們確保TensorFlow安裝正常。

第2步 - 驗證安裝

爲了驗證TensorFlow的安裝,咱們將在TensorFlow中以非root用戶身份運行一個簡單的程序。咱們將使用規範初學者的例子「Hello,world!」 做爲一種驗證形式。咱們將使用Python的交互式控制檯建立此程序,而不是建立Python文件。

要編寫程序,請啓動Python解釋器:

python

您將在終端中看到如下提示

>>>

這是Python解釋器的提示,它代表它已準備好開始輸入一些Python語句。

首先,輸入此行以導入TensorFlow包並使其可用做本地變量tf。輸入代碼行後按ENTER

import tensorflow as tf

接下來,添加如下代碼行來設置消息「Hello,world!」:

hello = tf.constant("Hello, world!")

而後建立一個新的TensorFlow會話並將其分配給變量sess

sess = tf.Session()

注意:根據您的環境,您可能會看到如下輸出:

2017-06-18 16:22:45.956946: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957158: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957282: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957404: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957527: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.

這告訴您,您有一個可能針對TensorFlow進行優化以得到更好性能的指令集。若是你看到這個,你能夠放心地忽略它並繼續。

最後,輸入這行代碼打印出hello

print(sess.run(hello))

您將在控制檯中看到此輸出:

Hello, world!

這代表一切正常,您能夠開始使用TensorFlow來作一些更有趣的事情。

按下CTRL+D退出Python交互式控制檯。

如今讓咱們使用TensorFlow的圖像識別API來更熟悉TensorFlow。

第3步 - 使用TensorFlow進行圖像識別

如今已經安裝了TensorFlow而且您經過運行一個簡單的程序驗證了它,讓咱們來看看TensorFlow的圖像識別功能。爲了對圖像進行分類,您須要訓練模型。而後你須要編寫一些代碼來使用該模型。要了解有關這些概念的更多信息,您能夠查看騰訊雲學院人工智能課程的相關內容。

騰訊雲社區提供了TensorFlow中文開發者手冊,包括代碼和用於分類圖像的訓練模型。

使用Git將TensorFlow模型庫從GitHub克隆到項目目錄中:

git clone https://github.com/tensorflow/models.git

當Git將存儲庫檢出到一個名爲models的新文件夾時,您將看到如下輸出:

Cloning into 'models'...
remote: Counting objects: 8785, done.
remote: Total 8785 (delta 0), reused 0 (delta 0), pack-reused 8785
Receiving objects: 100% (8785/8785), 203.16 MiB | 24.16 MiB/s, done.
Resolving deltas: 100% (4942/4942), done.
Checking connectivity... done.

切換到models/tutorials/image/imagenet目錄:

cd models/tutorials/image/imagenet

此目錄包含classify_image.py使用TensorFlow識別圖像的文件。該程序從tensorflow.org第一次運行開始下載訓練好的模型。下載此模型須要您的磁盤上有200MB的可用空間。

在這個例子中,咱們將對Panda的預先提供的圖像進行分類。執行此命令以運行映像分類器程序:

python classify_image.py

您將看到相似於此的輸出:

giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.89107)
indri, indris, Indri indri, Indri brevicaudatus (score = 0.00779)
lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00296)
custard apple (score = 0.00147)
earthstar (score = 0.00117)

您已使用TensorFlow的圖像識別功能對第一張圖像進行了分類。

若是您想使用其餘圖像,能夠經過-- image_filepython3 classify_image.py命令中添加參數來完成此操做。對於參數,您將傳入圖像文件的絕對路徑

結論

您已經在Python虛擬環境中安裝了TensorFlow,並經過運行幾個示例驗證了TensorFlow的工做原理。騰訊雲還有其餘的相關主題,包括深度學習與計算機視覺神經網絡系列

騰訊雲實驗室提供Tensorflow系列實驗室,省去配置環境能夠直接在平臺上機學習Tensorflow。


參考文獻:《How To Install and Use TensorFlow on Ubuntu 16.04》

問答

在Ubuntu上安裝cassandra?

相關閱讀

如何在CVM上設置SSH僅做文件傳輸

如何備份你的MySQL數據庫

MySQL 8.0 版本功能變動介紹

此文已由做者受權騰訊雲+社區發佈,原文連接:https://cloud.tencent.com/dev...

歡迎你們前往騰訊雲+社區或關注雲加社區微信公衆號(QcloudCommunity),第一時間獲取更多海量技術實踐乾貨哦~

海量技術實踐經驗,盡在雲加社區

相關文章
相關標籤/搜索