Tensorflow2-tensorflow-keras

Introduction of keras

  • keras是基於python的高級神經網路的API
  • 其必須要有後端才可以運行
    • 支持Tensorflow、CNTK、Theano為後端運行
    • 後端是可以切換的,現在多用Tensorflow
  • 因其圖像化功能優異,極方便於快速實驗
    • 幫助用戶以最少的時間驗證自己的想法

Introduction of Tensorflow-keras

  • Tensorflow對keras API規範的實現
  • 以Tensorflow為後端的keras 和 Tensorflow-keras是兩碼子事
    • Tensorflow-keras與Tensorflow 結合更加緊密
  • 其實現在tf.keras空間下

Tf.keras 和 keras的聯繫

  • 基於同一套API
    • 原keras程序可以通過改導入(import…)的方式輕鬆轉為tf.keras程序
    • 反之要轉為keras的代碼可能不成立
      • tf.keras有其他特性
  • 相同的JSON和HDF5模型序列化格式和語議

tf.keras 和 keras的區別

  • tf.keras全面支持eager mode
    • 若只是用keras.Sequentialkeras.ModelAPI時並沒有影響
    • 但若是需要自定義Model內部運算邏輯的時候便會受到影響
  • tf.keras可以使用tensorflow底層的API,以便於自定義keras的model.fit等抽象
    • 適用於研究人員
  • tf.keras支持基於tf.data的模型訓練
  • tf.keras支持TPU訓練
  • tf.keras支持tf.distribution中的分布式策略
  • tf.keras可以與Tensorflow中的estimator集成
  • tf.keras可以保存為SavedModel

如果選擇?

  • 如果想用tf.keras的任何一個特性,請選擇tf.keras
  • 注重後端互換性的話,請選擇keras