Keras 和 TensorFlow 是什麼
已發表: 2019-04-05如果您一直密切關注技術領域(或者甚至是遠程關注),那麼您一定聽說過“深度學習”這個詞。 這是一個被廣泛討論的術語——而且是正確的。
深度學習通過幫助我們構建過去夢寐以求的機器和系統,徹底改變了人工智能。 本質上,深度學習是機器學習的一個子領域,它使用深度人工神經網絡(此時,如果您對神經網絡是什麼感到困惑,請查看我們的文章)來解決以下問題機器學習。
夢想出國留學? 這是適合您的程序深度神經網絡只是一個神經網絡,其中有許多層相互堆疊——層數越多,網絡越深。 對深度學習的日益增長的需求以及因此對深度神經網絡的訓練產生了許多專用於深度學習的庫和框架。
在這篇博文中,我們將討論兩個這樣的深度學習框架。 在這篇博文結束時,您將對什麼是 Keras、什麼是 TensorFlow、兩者有何不同以及兩者在哪些方面相似?
但在此之前,我們應該簡要討論這兩者,以便您了解自己的目的。 Tensorflow 是深度學習模型開發中使用最多的庫。 TensorFlow 的社區非常龐大和支持,特別是因為它是一個開源平台。 TensorFlow 的 GitHub 倉庫上的 commit 和 fork 的數量足以讓你了解框架的廣泛流行。 但是,使用它並不容易。
另一方面,Keras 是構建在 TensorFlow 之上的高級 API。 它非常用戶友好,並且比 TensorFlow 相對容易。

閱讀以上部分可能會提出幾個問題:
- 如果 Keras 是建立在 TF 之上的,那兩者有什麼區別呢?
- 如果 Keras 對用戶更友好,我為什麼要使用 TF 來構建深度學習模型?
通過本文,讓我們帶您了解這兩個框架的複雜性並幫助您回答問題。
在本文中,我們將討論眾多庫和框架中的兩個——TensorFlow 和 Keras。
目錄
什麼是 TensorFlow?
TensorFlow 是 Google 送給參與機器學習的開發人員的禮物。 它使追求的人們可以使用深度學習的力量。 Google 有一個初學者和一個高級教程,它同時向您介紹 ML 和 TF 以解決多特徵問題 - 字符識別。 此外,如果您想深入了解它的更多技術方面,我們建議您查看我們的課程!
TensorFlow 是一個開源庫,可在 GitHub 上找到。 在處理深度神經網絡時,它是最著名的庫之一。 TensorFlow 受歡迎的主要原因是使用 TensorFlow 構建和部署應用程序非常容易。 GitHub 存儲庫中提供的示例項目不僅功能強大,而且以適合初學者的方式編寫。
那麼,TensorFlow 是用來做什麼的呢?
TensorFlow 擅長數值計算,這對深度學習至關重要。 它提供深度學習項目所需的大多數主要語言和環境的 API:Python、C、C++、Rust、Haskell、Go、Java、Android、IoS、Mac OS、Windows、Linux 和 Raspberry Pi。
此外,TensorFlow 的創建考慮到了處理能力的限制。 這意味著,我們可以在各種計算機上運行這個庫,而不管它們的處理能力如何。 它甚至可以在智能手機上運行(是的,即使是你拿著的那個被咬過的蘋果價格過高的東西)。
5 2018 年自然語言處理在企業中的應用
TensorFlow 目前處於 v1.3 版本,可在當今使用的幾乎所有主要平台上運行,從移動設備到台式機、嵌入式設備、專用工作站,再到雲上或本地的分佈式服務器集群。 這種普遍性、開放性和大型社區已將 TensorFlow 推向企業,以解決現實世界的應用程序,例如分析圖像、生成數據、自然語言處理、智能聊天機器人、機器人技術等。
有趣的是,大量編碼人員正在使用 TensorFlow 來實現語言翻譯,甚至在其他病例中對皮膚癌進行早期檢測。 它真正改變了開發人員與機器學習技術交互的方式。
TensorFlow應用程序
在深度學習方面,TensorFlow 比它的競爭對手——Caffe、Theano、Torch 和其他知名框架獲得了更多的動力。 TensorFlow 廣泛用於語音識別、谷歌翻譯等基於文本的應用程序、圖像識別和視頻檢測。
有趣的是, NASA 正在使用 TensorFlow 和深度學習開發近地天體預測模型。 據 NASA 的人員稱,TensorFlow 可以幫助設計一個多層模型,該模型將能夠識別和分類 NEO 的潛力。 世界上一些最大的數據公司都在使用 TensorFlow,例如 Airbnb、Airbus、Dropbox、Snapchat 和 Uber。
TensorFlow 的一些主要應用包括:
- Tensorflow 已在使用 TensorFlow 的自動圖像字幕軟件DeepDream中成功實施。
- Google 的RankBrain由 TensorFlow 支持,每分鐘處理大量查詢,有效地取代了傳統的基於靜態算法的搜索。
- 如果你用過 Allo 應用,你一定見過一個類似於 Google 收件箱的功能——你可以從幾個自定義選項中回复最後一條消息。 這一切都歸功於使用 TensorFlow 進行機器學習。 另一個功能分析發送給您的圖像,以建議相關的響應。
什麼是 Keras?
Keras 是一個構建在 Theano 或 TensorFlow 之上的高級庫。 它提供了一個用於構建神經網絡的 scikit-learn 類型 API(用 Python 編寫)。 開發人員可以使用 Keras 快速構建神經網絡,而無需擔心張量代數、數值技術和優化方法的數學方面。

Keras 開發背後的關鍵思想是通過快速原型設計來促進實驗。 以盡可能少的延遲從一個想法到結果的能力是良好研究的關鍵。
這為科學家和初學者開發人員提供了一個巨大的優勢,因為他們可以直接進入深度學習,而不會因低級計算而沾沾自喜。 對深度學習需求的增加導致對深度學習技術人員的需求增加。
每個組織都在嘗試以一種或另一種方式整合深度學習,Keras 提供了一個非常易於使用且足夠直觀以理解 API 的 API,它基本上可以幫助您以最少的努力測試和構建深度學習應用程序。 這很好,因為深度學習研究現在是一個熱門話題,科學家們需要一種工具來嘗試他們的想法,而不會浪費時間來構建神經網絡模型。
Keras 的顯著特點
- Keras 是一個高級接口,其後端使用 Theano 或 Tensorflow。
- 它可以在 CPU 和 GPU 上流暢運行。
- Keras 支持神經網絡的幾乎所有模型——全連接、卷積、池化、循環、嵌入等。此外,這些模型可以組合起來構建更複雜的模型。
- Keras 本質上是模塊化的,具有令人難以置信的表現力、靈活性和創新性研究能力。
- Keras 是一個完全基於 Python 的框架,易於調試和探索。
Keras vs TensorFlow:他們如何比較?
Keras 是一個用 Python 編寫的神經網絡庫,本質上是高級別的——這使得它使用起來非常簡單和直觀。 它用作 TensorFlow 或 Theano 高級神經網絡庫等低級庫的包裝器,用 Python 編寫,用作TensorFlow 或 Theano的包裝器。 從這個意義上說,比較沒有多大意義,因為 Keras 本身使用 TensorFlow 作為後端。
但是,如果我們必須,我們必須。
Keras 非常易於理解和實現——使用 Keras 就像處理樂高積木一樣。 它旨在幫助開發人員在全面實施之前執行快速測試、POC 和實驗。 Keras 允許您在後端使用 TensorFlow——無需學習它。
Keras 的開發目標是允許人們編寫自己的腳本,而無需詳細了解後端。 畢竟,大多數用戶不會在意腳本的性能和算法的細節。

然而,當涉及到機器學習應用程序時,一種尺寸並不適合所有應用程序——Keras 和 TensorFlow 之間的適當區別在於,如果您需要對模型進行低級更改,Keras 將無法工作。 為此,您需要 TensorFlow。 雖然很難理解,但一旦掌握了語法,您將立即構建模型。
所以,就像所有事情一樣,這一切都歸結為您手頭的要求。 如果你想擺弄深度神經網絡或者只是想構建一個原型——Keras 就是你的選擇。 但是,如果您喜歡深入研究並控制低級功能,則應該花一些時間探索 TensorFlow。
情緒分析:它是什麼以及為什麼重要?
包起來…
隨著深度學習控制一切,世界正在迅速走向自動化。 不可否認的事實是,在未來的日子裡,深度神經網絡的使用只會增長,隨之而來的是對技術人才的需求也會增長。 因此,如果您認為深度學習是您的使命,請盡快從探索 Keras 或 TensorFlow 開始!
通過 IIIT-B 和利物浦約翰摩爾斯大學的機器學習和人工智能高級課程提升您的職業生涯。
張量流是做什麼用的?
這個問題的答案是 TensorFlow 可以承擔機器學習的任何任務。 從手寫識別到擊敗圍棋世界冠軍,Tensorflow 被廣泛使用。 Tensorflow 還用於為企業應用程序創建強大的自定義機器學習模型。 例如,我們正在使用 TensorFlow 構建視頻監控中的人臉檢測應用程序。 TensorFlow 是一種用於構建數值計算圖並有效運行計算的工具。
什麼是 keras?
Keras 是 Theano 和 TensorFlow 的開源神經網絡庫。 用 python 編寫,它允許您在幾行代碼中定義復雜的神經網絡。 它可以在 TensorFlow 或 Theano 之上運行,並且專注於實現快速實驗。 Keras 是一個高級神經網絡 API,用 Python 編寫,能夠在 TensorFlow、CNTK 或 Theano 之上運行。 它的開發重點是實現快速實驗。 能夠以盡可能少的延遲將想法轉化為結果是做好研究的關鍵。
Keras 是否依賴於 TensorFlow?
不,Keras 是用於構建和訓練神經網絡模型的高級 API。 Keras 不依賴於 TensorFlow,反之亦然。 Keras 可以使用 TensorFlow 作為其後端。 它還可以使用其他後端,例如 Theano 和 CNTK。 將每個深度學習庫都包含到 TensorFlow 中是沒有意義的,因為其中一些具有不同的設計和語法。 此外,其中一些比 TensorFlow 快得多,因此嘗試將它們全部包含在一個框架中會適得其反。 同樣,TensorFlow 也不依賴於 Keras。 Keras 代碼庫很小且可重用。 它只依賴於 numpy 和其他一些標準庫。