深度學習框架之TensorFlow的概念及安裝(ubuntu下基於pip的安裝,IDE為Pycharm)


2015年11月9日,Google發布人工智能系統TensorFlow並宣布開源。

1.TensorFlow的概念

TensorFlow 是使用數據流圖進行數值計算的開源軟件庫。也就是說,TensorFlow 使用圖(graph)來表示計算任務。圖中的節點表示數學運算,邊表示運算之間用來交流的多維數組(也就是tensor,張量)。TensorFlow 靈活的架構使得你可以將計算過程部署到一個或多個CPU或GPU上。

TensorFlow 最初是由 Google Brain Team 的研究人員和工程師開發的,主要是 Google’s Machine Intelligence research organization 用來進行機器學習和深度神經網絡研究的,但是這個系統在其它很多領域也是通用的。

qq%e6%88%aa%e5%9b%be20161130112948

模型的抽象表示是由框架自動處理的,這使得TensorFlow 及 Theano 特別適合發展基於梯度優化算法的新模型。

Theano 的主要缺點是對上述符號模型進行編譯的時間較長,而 TensorFlow 有效地改善了這一點,也就是編譯時間較短。

TensorFlow 的另一個優點是它的支持工具——TensorBoard ,將模型的訓練過程可視化。這樣,用戶可以交互式地考察模型的結構,也可以觀察參數和模型性能的改變。

TensorFlow 的開源版本只能運行在一台機器上,不過它支持多處理器(CPUs或GPUs)並行運算。

1.1 什么是數據流圖?

數據流圖用有向圖來描述數學計算,圖中有點和邊。

節點通常進行數學計算,但也可以作為終點來表示結果,或者讀/寫持久變量(persistent variables)。

邊用來描述節點之間的輸入/輸出關系。這些邊攜帶不定大小的多維數組或張量。

這些節點被分配到計算裝置上,異步執行。一旦所有的tensor同時到達了,就會進行並行計算。

由於圖中張量(tensor)的流動(flow),所以我們稱之為 TensorFlow。

Tensors Flowing

1.2 TensorFlow的特點

  1. Deep Flexibility,靈活性。TensorFlow並不是一個死板的神經網絡的庫,只要你可以將你的計算過程表示成數據流圖,你就可以使用TensorFlow。定義新的計算就像寫一個Python函數那么簡單,成本並不大。如果你看不見你需要的底層的數據操作,可以通過C++來添加。
  2. True Portability,可移植性。TensorFlow在CPU或GPU上運行,可以在筆記本、服務器、或移動計算平台運行。不需要特殊硬件,不需要改變代碼,就可以在移動設備上訓練模型,封裝Docker 和 TensorFlow 就可以在雲上進行計算。
  3. Connect Research and Production,學術和工業兼得。在Google,科學家們用 TensorFlow 測試新的算法,產品團隊用 TensorFlow 訓練模型為用戶服務。
  4. Auto-Differentiation,自動辨別。TensorFlow 的自動辨別能力 有益於實現那些基於梯度的機器學習算法。當你使用TensorFlow時,你為自己的預測模型定義計算的框架結構,再加上目標函數,接着只需要添加數據,TensorFlow 就會為你計算導數,也就是梯度。
  5. Language Options,語言選擇。TensorFlow中可以使用Python接口,以及簡單的C++接口,來構建和執行你的計算圖(computational graphs)。如果你有興趣,也可以提供自己所喜愛語言的接口——Lua, JavaScript, 或 R 等等。
  6. Maximize Performance,性能最大化。TensorFlow 允許你充分利用你可用的硬件:32 CPU cores and 4 GPU cards,線程、隊列及異步計算等。你可以將TensorFlow圖中的計算元素自由分配到不同的設備上,交給TensorFlow來處理。

1.3 誰可以用TensorFlow?

學生、研究人員、愛好者、黑客、工程師、開發者、發明者及創新者等等。

TensorFlow目前並不完整,它需要擴展。Google只是給了一個初始版本的源代碼,他們希望建立一個活躍的開源社區,以使得TensorFlow越來越好。

目前在使用 TensorFlow 的公司有:Google、Uber、Twitter、DeepMind、京東等等。

1.4 為什么谷歌將TensorFlow開源呢?

「TensorFlow」是 Google 多年以來內部的機器學習系統。如今,Google 正將此系統作為開源系統,並將此系統的參數公布給業界工程師、學者和擁有大量編程能力的技術人員,這意味着什么呢?

答案很簡單:Google認為,機器學習是未來創新的關鍵成分,這一領域的研究是全球范圍的,並且發展很迅速,但就是缺乏標准工具。Google的工程師們用TensorFlow在做面向用戶的產品和服務,Google的研究團隊也打算分享TensorFlow的實現歷程,他們希望TensorFlow能成為機器學習的最好工具之一。

打個不太恰當的比喻,如今 Google 對待 TensorFlow 系統,有點類似於對待旗下移動操作系統 Android。如果更多的數據科學家開始使用 Google 的系統來從事機器學習方面的研究,那么這將有利於 Google 對日益發展的機器學習行業擁有更多的主導權。

1.5 TensorFlow 與計算生物學

使用當前的深度學習的方法有一個先決條件:擁有許多樣本的數據集。

像 識別與特定疾病相關的基因或 methylation probes,樣本集很少,所以就不能用深度學習進行分析。【哭……我就是想用深度學習做疾病基因識別啊……】

想要使用深度學習模型,第一步就是解決如何表示數據的問題。如:剪接點、RNA-蛋白質結合位點、或甲基化。也就是說,你的樣本的數量要遠遠超過變量的數量。

所以說,只要這關鍵的一步解決了,TensorFlow 就會為你打開深度學習的大門。

2.Tensorflow的安裝(基於pip)

Pip 是一個 Python 的軟件包安裝與管理工具。並且,Tensorflow只能在Linux環境下進行安裝,具體在VMware下安裝Linux系統詳情可以參看我另外一篇博客。

2.1 安裝pip(需要在超級管理員權限下進行安裝)

  1. sudo apt-get install python-pip python-dev

2016-11-06-16

2016-11-06-17

注:出現以上界面表示pip已經安裝成功!

2.2 安裝Tensorflow

  1. sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl

 

2.3 測試

  1. >>> import tensorflow as tf
  2. >>> hello = tf.constant('Hello, TensorFlow!')
  3. >>> sess = tf.Session()
  4. >>> print sess.run(hello)
  5. Hello, TensorFlow!

注:Linux下退出Python方法:Ctrl+D

 2.4 安裝IDE Pycharm

官網下載Community版 for Linux,根據官網教程的步驟進行安裝。

注:可以直接在Linux中的瀏覽器中進行下載。

2016-11-06-20

首先,將文件拷貝到希望安裝的位置。

  1. cd /home/andy

然后解壓縮文件:

  1. tar xfz pycharm-community-2016.3.tar.gz

打開 pycharm.sh 文件所在目錄:

  1. cd pycharm-community-2016.3/bin

運行 pycharm.sh 文件以安裝 pycharm:

  1. ./pycharm.sh

 

安裝好后會自動打開pycharm,接下來進行一系列的設置:

2016-11-07-1

2016-11-07-2

2016-11-07-3

 

出現下面界面時,說明安裝成功了。

2016-11-07-5

選擇“Create New Project”,創建新的工程。默認編譯器是python 2.7。

2016-11-07-6

然后在新創建的工程上,右鍵選擇“New->Python File ”,創建一個新的python文件Py01。

2016-11-07-7

在文件Py01中寫入一段代碼進行測試。

2016-11-07-8

可見,測試結果正確,可以在 Pycharm 上 import tensorflow了!

2016-11-07-9

2.5 將Pycharm鎖定到啟動器

在Ubuntu下,每次都需要找到 pycharm.sh 所在的文件夾,執行 ./pycharm.sh,打開pycharm,非常麻煩。

所以,我們最好能創建一個快捷方式。Ubuntu 的快捷方式都放在“計算機/usr/share/applications” 下。

首先在該目錄下創建一個Pycharm.desktop:

  1. sudo gedit /usr/share/applications/Pycharm.desktop

然后輸入以下內容,注意 Exec 和 Icon 需要找到你自己電腦中正確的路徑,GenericName 和 Comment 中關於Pycharm的版本號你也需要根據實際情況定:

  1. [Desktop Entry]
  2. Type=Application
  3. Name=Pycharm
  4. GenericName=Pycharm2017
  5. Comment=Pycharm2017:The Python IDE
  6. Exec="/home/wangfang/Pycham/pycharm-community-2017.1.3/bin/pycharm.sh" %f
  7. Icon=/home/wangfang/Pycham/pycharm-community-2017.1.3/bin/pycharm.png
  8. Terminal=pycharm
  9. Categories=Pycharm;

保存后,通過路徑/usr/share/applications/路徑即可找到對應桌面Pycharm.desktop文件,然后雙擊打開,再鎖定到啟動器就好了。

2016-11-07-11

 

參考文獻:

  1. TensorFlow 官網
  2. 極客學院——TensorFlow 官方文檔中文版
  3. 極客學院——下載與安裝
  4. 極客學院——MNIST機器學習入門(構建softmax回歸模型)
  5. 極客學院——深入MNIST(構建深度卷積神經網絡)
  6. Ladislav Rampasek and Anna Goldenberg, TensorFlow: Biology’s Gateway to Deep Learning?
  7. werm520的專欄:Ubuntu安裝PyCharm
  8. Ubuntu下安裝Anaconda
  9. Linux(Ubuntu14.04)下安裝Anaconda和Spyder
  10. Ubuntu下如何安裝TensorFlow
  11. http://andyjin.applinzi.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM