回覆列表
  • 1 # 繁星落石

    這個要看個人對框架的需求和專案的具體應用了。

    Keras是一個封裝很好的高階框架,其中很多過程都封裝在了API之內,所以搭建一個模型相對簡單,結構相對清晰,比較適合新手入門和進階。

    TensorFlow的好處在於背後有Google提供支援,也就是說,想要使用TPU加速,一定要使用TensorFlow。而且TensorFlow的API封裝沒有那麼寬泛,對於一些具體的調整和設計比較方便,適合對於神經網路具有豐富基礎的人去做比較龐大的專案。

  • 2 # 北航秦曾昌

    如果想盡可能快速並且以少量的程式碼建立並測試神經網路,keras是最快速的, Sequential API和Model的功能十分強大。並且keras的設計十分使用者友好,以資料輸入輸為例,對比keras簡單的操作,tensorflow解碼編碼的構建過程特別繁雜(尤其對於初學者來說,大量的記憶過程上手非常痛苦)。除此之外,keras將模組化作為設計原則之一,使用者可以各按所需進行組合。如果只是想快速地搭建常見的模型來實現自己的想法,keras可以作為首選。

    但是,keras在封裝後會變得很不靈活,並且加上它本身速度也比較慢,如果是高度封裝,前面提到的缺點會更加明顯,除了一些對速度要求很低的工業應用,tensorflow會因為更高速而被選擇

    如果在驗證自己想法的時候,不想用既有的設定而是想要自己定義損失函式、測度、層數等等,相比keras,tensorflow提供了更多個性的空間。此外,對神經網路控制力度的大小會很大程度決定對網路的理解和最佳化工作,而keras種提供的許可權很少,tensorflow相反給了更多操控權,比如對多個變數中的某一變數是否進行訓練、對梯度進行操作(以獲取訓練的進展)等等。

    雖然二者都提供深度學習模型通常所需的功能性,但是,如果使用者還追求一些更高階的功能性的選擇,像是進行特殊種類模型的研究,就要求諸tensorflow了。比如,如果想要運算加速,可以使用tensorflow的執行緒功能,多執行緒實行同一對話。另外,它還提供偵錯程式的功能,對推斷bug和加速運算都有幫助。

  • 3 # 變調的小丑

    keras是一個高度封裝的,對於科研工作者快速實現或者復現演算法很好。

    其實tensorflow目前也有高度封裝的介面,比如tf.slim.

    但是高度封裝的API看不到更多引數,所以很多時候可能會造成你復現的模型無法收斂,或者精度和論文不一樣。 何況現在tensorflow已經可以直接呼叫keras.tf.keras.可以完全使用。並且tf2.0.中,keras也享有更多tf的資源,keras搭建的模型,可以呼叫savemodel來儲存。

    如果你是程式設計師,那你肯定需要模型部署,目前工業界雲側大多數還是部署tensorflow儲存的模型,或者pytorch模型。

    caffe模型。

    端側或者邊緣側,還是部署輕量級模型,更多也是.tflite檔案,經過量化部署。用tensorflow是最通用的。具體情況還得看你們公司硬體支援情況。

    比如我們公司的晶片目前只支援caffe模型,我也是很無奈,從頭瞭解caffe.

    不過好在現在有個開源專案支援各種模型之間的轉換。

  • 4 # 科技生活評論

    隨著Keras作者加入Google,現在是Keras已經是TensorFlow的Keras。同時,TensorFlow 2.0首推Keras API。

    當然,Keras高層或TensorFlow底層API的使用得看場景。簡單搭模型使用Keras快速,需要編寫自己的OP時,一般就得使用TensorFlow的API。

  • 中秋節和大豐收的關聯?
  • 鼻炎用鹽水怎麼洗鼻子?