深度學習框架之TensorFlow的概念及安裝
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 為什麼Google將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
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
##> ;>> sess = tf.Session()
#>>> print sess.run(hello)
Hello, TensorFlow !
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]
類型=#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
- ##Ubuntu下安裝Anaconda
- ##Ubuntu下安裝Anaconda
-
Linux(Ubuntu14.04)下安裝Anaconda和Spyder
以上是深度學習框架之TensorFlow的概念及安裝的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

評估Java框架商業支援的性價比涉及以下步驟:確定所需的保障等級和服務等級協定(SLA)保證。研究支持團隊的經驗和專業知識。考慮附加服務,如昇級、故障排除和效能最佳化。權衡商業支援成本與風險緩解和提高效率。

PHP框架的學習曲線取決於語言熟練度、框架複雜性、文件品質和社群支援。與Python框架相比,PHP框架的學習曲線較高,而與Ruby框架相比,則較低。與Java框架相比,PHP框架的學習曲線中等,但入門時間較短。

輕量級PHP框架透過小體積和低資源消耗提升應用程式效能。其特點包括:體積小,啟動快,記憶體佔用低提升響應速度和吞吐量,降低資源消耗實戰案例:SlimFramework創建RESTAPI,僅500KB,高響應性、高吞吐量

根據基準測試,對於小型、高效能應用程序,Quarkus(快速啟動、低記憶體)或Micronaut(TechEmpower優異)是理想選擇。 SpringBoot適用於大型、全端應用程序,但啟動時間和記憶體佔用稍慢。

編寫清晰全面的文件對於Golang框架至關重要。最佳實踐包括:遵循既定文件風格,例如Google的Go程式設計風格指南。使用清晰的組織結構,包括標題、子標題和列表,並提供導覽。提供全面且準確的信息,包括入門指南、API參考和概念。使用程式碼範例說明概念和使用方法。保持文件更新,追蹤變更並記錄新功能。提供支援和社群資源,例如GitHub問題和論壇。建立實際案例,如API文件。

根據應用場景選擇最佳Go框架:考慮應用類型、語言特性、效能需求、生態系統。常見Go框架:Gin(Web應用)、Echo(Web服務)、Fiber(高吞吐量)、gorm(ORM)、fasthttp(速度)。實戰案例:建構RESTAPI(Fiber),與資料庫互動(gorm)。選擇框架:效能關鍵選fasthttp,靈活Web應用選Gin/Echo,資料庫互動選gorm。

在Go框架開發中,常見的挑戰及其解決方案是:錯誤處理:利用errors套件進行管理,並使用中間件集中處理錯誤。身份驗證和授權:整合第三方庫並建立自訂中間件來檢查憑證。並發處理:利用goroutine、互斥鎖和通道來控制資源存取。單元測試:使用gotest包,模擬和存根隔離,並使用程式碼覆蓋率工具確保充分性。部署和監控:使用Docker容器打包部署,設定資料備份,透過日誌記錄和監控工具追蹤效能和錯誤。

Go框架學習的迷思有以下5種:過度依賴框架,限制彈性。不遵循框架約定,程式碼難以維護。使用過時庫,帶來安全和相容性問題。過度使用包,混淆程式碼結構。忽視錯誤處理,導致意外行為和崩潰。
