TensorFlow 和keras有什麼區別?


比如說蓋木頭房子。想蓋什麼房子要先選木料,然後加工成需要的形狀,最後組合釘裝成想要的房子形狀。

tensorflow 好比是木頭,Keras 好比是拿 tensorflow 做好的木板。如果你蓋的房子簡單,形狀大眾,Keras 調用起來會很方便。但如果想設計特殊的房子,那就要從木料開始。

tensorflow 已經可以調用 keras相關函數. keras的關鍵計算依託於tensorflow 或者 theano. theano不更新了,keras封裝的比較好。初學和入門的話建議用 keras。但是想要深入或者做自己的APP的話建議用 tensorflow。


歡迎關注我的公眾號一起學習!

點擊原文鏈接可免費獲取 機器學習蜥蜴書TF2.0 (暫未出版)

深度學習-更新迭代後的tf2.0與Keras的關係【附tf2.0蜥蜴書見原文鏈接】?

mp.weixin.qq.com圖標

1.為何keras出現在tf2.0中,被使用tf.keras?

2.到底是使用keras來訓練還是tf.keras?

3.tf2.0有什麼新功能? 結論:應在以後均使用tf.keras

keras與tf.keras:

由谷歌的研究人員Francois Chollet創建開發,因為容易使用就開始 廣泛使用。

①我們所調用的Keras需要後端,後端是幹嘛的?

後端是一個計算引擎,作用是構建網路和拓撲結構,允許優化器,執行數字計算。可以想像所有的後臺操作都是在這個後端裏進行的你的網路模型,你的幾千甚至上萬個參數的更新迭代。後端是可以更換的,只要後端滿足規則!

至此,我們應用的就是keras,就是我們能理解的簡化版深度學習操作的封裝後的API。

②keras的後端變化:

keras v1.1.0之前,其後端是Theano

與此同時,Google發布了tf,tf是用於機器學習和神經網路訓練的符號數學庫。在此時,keras開始支持tf作為後端,自從keras v1.1.0版本的默認後端成了tf

因為Keras簡易便於使用,tf用戶被吸引,在tf v1.10.0中,keras就被集成到tf中 ,此時就有了tf.keras。為了確保兼容性,原始的Keras包沒有被包含在tf中,它兩的開發是有序的。即Keras和tf.keras是分開的,要單獨pip。


2019.6——tf2.0發布:

Keras是tf官方高級API ; keras v2.3.0:是首個與tf.keras同步的版本

所有使用tf的人員,都應該使用tf2.0和tf.keras

③對於我們有什麼改變呢?

(不管是使用keras還是tf的人員)只需要改變一下導包就可以了。

至今為止,keras和tf.keras仍舊是兩個獨立項目。但推薦開始使用tf.keras

④why?

優勢:例如對 eager execution(更具python風格的動態計算圖處理方式)、distribution、TPU 訓練的支持,以及通常來說對底層的 TensorFlow 與頂層概念(如「層」和「模型」)之間更好的集成度。它也會得到更好的維護。

小結:

Keras和tf2.0已經深度融合,使用過keras的同學應該已經領略到其在構建自定義模型等各方面的好處,使用過tf的同學也應該也深知其在研究、實驗、模型準備、量化和生產部署功能的多樣性等優勢。

因此開始使用起來tf.keras吧!


tensorflow是比較底層的深度學習模型開發語言

keras是基於tensorflow的高級API,通常直接調用一些封裝好的函數就可以實現某些功能,而tensorflow雖然比較底層,但是可以比較靈活的定義模型結構

就好比C語言是最基礎的語言

C++在其基礎上進行了高級封裝


區別就是一個姓T (準確說姓G ),另一個姓K(準確說也快要姓G了),怎麼順手怎麼來
keras是tensorflow的介面,比tensorflow容易學習,如果真的從事深度學習這一方面,本人建議學好tensorflw.

keras簡單來講是tensorflow的再封裝,keras底層可以選tensorflow,易用,但靈活性不高。


推薦閱讀:
相關文章