2015年11月9日,Google發布人工智能系統TensorFlow並宣布開源。
1.TensorFlow的概念
TensorFlow 是使用數據流圖進行數值計算的開源軟件庫。也就是說,TensorFlow 使用圖(graph)來表示計算任務。圖中的節點表示數學運算,邊表示運算之間用來交流的多維數組(也就是tensor,張量)。TensorFlow 靈活的架構使得你可以將計算過程部署到一個或多個CPU或GPU上。
TensorFlow 最初是由 Google Brain Team 的研究人員和工程師開發的,主要是 Google’s Machine Intelligence research organization 用來進行機器學習和深度神經網絡研究的,但是這個系統在其它很多領域也是通用的。
模型的抽象表示是由框架自動處理的,這使得TensorFlow 及 Theano 特別適合發展基於梯度優化算法的新模型。
Theano 的主要缺點是對上述符號模型進行編譯的時間較長,而 TensorFlow 有效地改善了這一點,也就是編譯時間較短。
TensorFlow 的另一個優點是它的支持工具——TensorBoard ,將模型的訓練過程可視化。這樣,用戶可以交互式地考察模型的結構,也可以觀察參數和模型性能的改變。
TensorFlow 的開源版本只能運行在一台機器上,不過它支持多處理器(CPUs或GPUs)並行運算。
1.1 什么是數據流圖?
數據流圖用有向圖來描述數學計算,圖中有點和邊。
節點通常進行數學計算,但也可以作為終點來表示結果,或者讀/寫持久變量(persistent variables)。
邊用來描述節點之間的輸入/輸出關系。這些邊攜帶不定大小的多維數組或張量。
這些節點被分配到計算裝置上,異步執行。一旦所有的tensor同時到達了,就會進行並行計算。
由於圖中張量(tensor)的流動(flow),所以我們稱之為 TensorFlow。
1.2 TensorFlow的特點
- Deep Flexibility,靈活性。TensorFlow並不是一個死板的神經網絡的庫,只要你可以將你的計算過程表示成數據流圖,你就可以使用TensorFlow。定義新的計算就像寫一個Python函數那么簡單,成本並不大。如果你看不見你需要的底層的數據操作,可以通過C++來添加。
- True Portability,可移植性。TensorFlow在CPU或GPU上運行,可以在筆記本、服務器、或移動計算平台運行。不需要特殊硬件,不需要改變代碼,就可以在移動設備上訓練模型,封裝Docker 和 TensorFlow 就可以在雲上進行計算。
- Connect Research and Production,學術和工業兼得。在Google,科學家們用 TensorFlow 測試新的算法,產品團隊用 TensorFlow 訓練模型為用戶服務。
- Auto-Differentiation,自動辨別。TensorFlow 的自動辨別能力 有益於實現那些基於梯度的機器學習算法。當你使用TensorFlow時,你為自己的預測模型定義計算的框架結構,再加上目標函數,接着只需要添加數據,TensorFlow 就會為你計算導數,也就是梯度。
- Language Options,語言選擇。TensorFlow中可以使用Python接口,以及簡單的C++接口,來構建和執行你的計算圖(computational graphs)。如果你有興趣,也可以提供自己所喜愛語言的接口——Lua, JavaScript, 或 R 等等。
- 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(需要在超級管理員權限下進行安裝)
- sudo apt-get install python-pip python-dev
注:出現以上界面表示pip已經安裝成功!
2.2 安裝Tensorflow
- sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
2.3 測試
- >>> import tensorflow as tf
- >>> hello = tf.constant('Hello, TensorFlow!')
- >>> sess = tf.Session()
- >>> print sess.run(hello)
- Hello, TensorFlow!
注:Linux下退出Python方法:Ctrl+D
2.4 安裝IDE Pycharm
官網下載Community版 for Linux,根據官網教程的步驟進行安裝。
注:可以直接在Linux中的瀏覽器中進行下載。
首先,將文件拷貝到希望安裝的位置。
- cd /home/andy
然后解壓縮文件:
- tar xfz pycharm-community-2016.3.tar.gz
打開 pycharm.sh 文件所在目錄:
- cd pycharm-community-2016.3/bin
運行 pycharm.sh 文件以安裝 pycharm:
- ./pycharm.sh
安裝好后會自動打開pycharm,接下來進行一系列的設置:
出現下面界面時,說明安裝成功了。
選擇“Create New Project”,創建新的工程。默認編譯器是python 2.7。
然后在新創建的工程上,右鍵選擇“New->Python File ”,創建一個新的python文件Py01。
在文件Py01中寫入一段代碼進行測試。
可見,測試結果正確,可以在 Pycharm 上 import tensorflow了!
2.5 將Pycharm鎖定到啟動器
在Ubuntu下,每次都需要找到 pycharm.sh 所在的文件夾,執行 ./pycharm.sh,打開pycharm,非常麻煩。
所以,我們最好能創建一個快捷方式。Ubuntu 的快捷方式都放在“計算機/usr/share/applications” 下。
首先在該目錄下創建一個Pycharm.desktop:
- sudo gedit /usr/share/applications/Pycharm.desktop
然后輸入以下內容,注意 Exec 和 Icon 需要找到你自己電腦中正確的路徑,GenericName 和 Comment 中關於Pycharm的版本號你也需要根據實際情況定:
- [Desktop Entry]
- Type=Application
- Name=Pycharm
- GenericName=Pycharm2017
- Comment=Pycharm2017:The Python IDE
- Exec="/home/wangfang/Pycham/pycharm-community-2017.1.3/bin/pycharm.sh" %f
- Icon=/home/wangfang/Pycham/pycharm-community-2017.1.3/bin/pycharm.png
- Terminal=pycharm
- Categories=Pycharm;
保存后,通過路徑/usr/share/applications/路徑即可找到對應桌面Pycharm.desktop文件,然后雙擊打開,再鎖定到啟動器就好了。
參考文獻:
- TensorFlow 官網
- 極客學院——TensorFlow 官方文檔中文版
- 極客學院——下載與安裝
- 極客學院——MNIST機器學習入門(構建softmax回歸模型)
- 極客學院——深入MNIST(構建深度卷積神經網絡)
- Ladislav Rampasek and Anna Goldenberg, TensorFlow: Biology’s Gateway to Deep Learning?
- werm520的專欄:Ubuntu安裝PyCharm
- Ubuntu下安裝Anaconda
- Linux(Ubuntu14.04)下安裝Anaconda和Spyder
- Ubuntu下如何安裝TensorFlow
- http://andyjin.applinzi.com