Tensorflow介紹和安裝
歡迎大家關注我們的網站和系列教程:http://www.tensorflownews.com/,學習更多的機器學習、深度學習的知識!
作者:AI小昕
本系列教程將手把手帶您從零開始學習Tensorflow,並最終通過Tensorflow實現一些經典的專案。歡迎您持續關注我們的教程,關注更多機器學習、深度學習相關的優質博文。
Tensorflow是由谷歌大腦團隊於2015年11月開發的第二代開源的機器學習系統。Tensorflow支援python、C++、java、GO等多種程式語言,以及CNN、RNN和GAN等深度學習演算法。Tensorflow除可以在Windows、Linux、MacOS等作業系統執行外,還支援Android和iOS移動平臺的執行、以及適用於多個CPU/GPU組成的分散式系統中。
Tensorflow是目前最火的深度學習框架,廣泛應用於自然語言處理、語音識別、影像處理等多個領域。不僅深受全球深度學習愛好者的廣泛歡迎,Google、eBay、Uber、OPenAI等眾多科技公司的研發團隊也都在使用它。
相較於其它的深度學習框架,如:Caffe、Torch、Keras、MXnet、Theano等,Tensorflow的主要優勢有以下幾點:高度的靈活性、支援python語言開發、視覺化效果好、功能更加強大、執行效率高、強大的社群。
本節將從Tensorflow的安裝配置、Tensorflow的核心——計算圖模型開始講起,帶大家走進Tensorflow的世界。好了,隨小編一起進入正文吧。
1.Tensorflow安裝與配置
目前,Windows、Linux和MacOS均已支援Tensorflow。文章將以Windows系統的安裝為例。
在安裝Tensorflow前,我們要先安裝Anaconda,因為它整合了很多Python的第三方庫及其依賴項,方便我們在程式設計中直接呼叫。
Anaconda下載地址為:https://www.anaconda.com/download/。(分為python3.6版本和python2.7版本,本書使用的是python3.6版本。)
下載好安裝包後,一步步執行安裝過程,直到出現如圖1-1所示的介面,完成Anaconda的安裝:
圖1-1 Anaconda安裝成功截圖
安裝好Anaconda後,我們便可以開啟命令提示符,輸入pip install Tensorflow完成Tensorflow的安裝。
之後我們進入python可執行介面,輸入import tensorflow as tf來檢驗Tensorflow是否安裝成功。如果沒有報任何錯,可以正常執行,則說明Tensorflow已經安裝成功。
Jupyter Notebook是一款非常好用的互動式開發工具,不僅支援40多種程式語言,還可以實時執行程式碼、共享文件、資料視覺化、支援markdown等,適用於機器學習、統計建模資料處理、特徵提取等多個領域。尤其在Kaggle、天池等資料科學競賽中,快捷、實時、方便的優點深受使用者歡迎。本書後邊的章節中,均將以Jupyter Notebook作為開發環境,執行Tensorflow程式。
2.計算圖模型
Tensorflow是一種計算圖模型,即用圖的形式來表示運算過程的一種模型。Tensorflow程式一般分為圖的構建和圖的執行兩個階段。圖的構建階段也稱為圖的定義階段,該過程會在圖模型中定義所需的運算,每次運算的的結果以及原始的輸入資料都可稱為一個節點(operation ,縮寫為op)。我們通過以下程式來說明圖的構建過程:
程式1:
程式1定義了圖的構建過程,“import tensorflow as tf”,是在python中匯入tensorflow模組,並另起名為“tf”;接著定義了兩個常量op,m1和m2,均為1*2的矩陣;最後將m1和m2的值作為輸入建立一個矩陣加法op,並輸出最後的結果result。
我們分析最終的輸出結果可知,其並沒有輸出矩陣相加的結果,而是輸出了一個包含三個屬性的Tensor(Tensor的概念我們會在下一節中詳細講解,這裡就不再贅述)。
以上過程便是圖模型的構建階段:只在圖中定義所需要的運算,而沒有去執行運算。我們可以用圖1-1來表示:
圖1-2 圖的構建階段
第二個階段為圖的執行階段,也就是在會話(session)中執行圖模型中定義好的運算。
我們通過程式2來解釋圖的執行階段:
程式2:
程式2描述了圖的執行過程,首先通過“tf.session()”啟動預設圖模型,再呼叫run()方法啟動、執行圖模型,傳入上述引數result,執行矩陣的加法,並列印出相加的結果,最後在任務完成時,要記得呼叫close()方法,關閉會話。
除了上述的session寫法外,我們更建議大家,把session寫成如程式3所示“with”程式碼塊的形式,這樣就無需顯示的呼叫close釋放資源,而是自動地關閉會話。
程式3:
此外,我們還可以利用CPU或GPU等計算資源分散式執行圖的運算過程。一般我們無需顯示的指定計算資源,Tensorflow可以自動地進行識別,如果檢測到我們的GPU環境,會優先的利用GPU環境執行我們的程式。但如果我們的計算機中有多於一個可用的GPU,這就需要我們手動的指派GPU去執行特定的op。如下程式4所示,Tensorflow中使用with…device語句來指定GPU或CPU資源執行操作。
程式4:
上述程式中的“tf.device(“/gpu:2”)”是指定了第二個GPU資源來執行下面的op。依次類推,我們還可以通過“/gpu:3”、“/gpu:4”、“/gpu:5”…來指定第N個GPU執行操作。
關於GPU的具體使用方法,我們會在下面的章節結合案例的形式具體描述。
Tensorflow中還提供了預設會話的機制,如程式5所示,我們通過呼叫函式as_default()生成預設會話。
程式5:
我們可以看到程式5和程式2有相同的輸出結果。我們在啟動預設會話後,可以通過呼叫eval()函式,直接輸出變數的內容。
有時,我們需要在Jupyter或IPython等python互動式環境開發。Tensorflow為了滿足使用者的這一需求,提供了一種專門針對互動式環境開發的方法InteractiveSession(),具體用法如程式6所示:
程式6:
程式6就是互動式環境中經常會使用的InteractiveSession()方法,其建立sess物件後,可以直接輸出運算結果。
綜上所述,我們介紹了Tensorflow的核心概念——計算圖模型,以及定義圖模型和執行圖模型的幾種方式。接下來,我們思考一個問題,為什麼Tensorflow要使用圖模型?圖模型有什麼優勢呢?
首先,圖模型的最大好處是節約系統開銷,提高資源的利用率,可以更加高效的進行運算。因為我們在圖的執行階段,只需要執行我們需要的op,這樣就大大的提高了資源的利用率;其次,這種結構有利於我們提取中間某些節點的結果,方便以後利用中間的節點去進行其它運算;還有就是這種結構對分散式運算更加友好,運算的過程可以分配給多個CPU或是GPU同時進行,提高運算效率;最後,因為圖模型把運算分解成了很多個子環節,所以這種結構也讓我們的求導變得更加方便。
好了,相信讀到這裡,大家對Tensorflow這一高深莫測的技術有了基本的瞭解,在接下來的內容中我們將持續為您講解Tensorflow的變數、常量,以及如何使用Tensorflow去執行深度學習的專案等。歡迎大家關注我們的網站。
本篇文章出自http://www.tensorflownews.com,對深度學習感興趣,熱愛Tensorflow的小夥伴,歡迎關注我們的網站!
相關文章
- 深度學習之TensorFlow的介紹與安裝深度學習
- Sqoop的介紹和安裝OOP
- 1.Pytest 介紹和安裝
- MySQL 安裝介紹MySql
- Go 安裝介紹Go
- docker介紹、安裝Docker
- LAMP架構介紹、MYSQL介紹、安裝LAMP架構MySql
- redis框架介紹與安裝(mac 和 windows)Redis框架MacWindows
- ccs的介紹,安裝和使用入門
- Nginx 安裝配置介紹Nginx
- RocketMQ 介紹與安裝MQ
- 安裝apache及介紹Apache
- zabbix 安裝配置介紹
- rlwrap的安裝介紹
- BookKeeper 介紹(2)--安裝
- redis介紹與安裝Redis
- 肖sir__jmeter 安裝和介紹(16.0)JMeter
- [Windows環境]nvm工具的介紹和安裝Windows
- Hue--介紹及安裝
- HBase的安裝模式介紹模式
- Prism:框架介紹與安裝框架
- Hive學習之一 《Hive的介紹和安裝》Hive
- TensorFlow除錯程式介紹除錯
- TensorFlow安裝
- 安裝TensorFlow
- MongoDB基本介紹與安裝(1)MongoDB
- RPM包安裝與介紹
- Docker介紹及安裝詳解Docker
- Poetry(1)Poetry介紹與安裝
- redis系列:redis介紹與安裝Redis
- Redis介紹以及安裝(Linux)RedisLinux
- LAMP架構(LAMP介紹,mysql/mariaDB介紹,Mysql安裝)LAMP架構MySql
- ubuntu下安裝nodejs和升級簡單介紹UbuntuNodeJS
- CentOS上安裝Node.js和mongodb簡單介紹CentOSNode.jsMongoDB
- .NET Core 實戰筆記1-介紹和安裝筆記
- Tensorflow教程(2)Tensorflow的常用函式介紹函式
- 深入淺出介紹TensorFlow資料集和估算器
- MySQL介紹及安裝與多例項MySql