tensorflow2.0中引入keras和原來的keras的差異


1. 之前介紹過在tensorflow roadshow中介紹了tensorflow2.0的新特性,但是並未進行具體介紹,本文主要介紹tf中keras和原來的keras的差異。

 

2. tf.keras可以方便的構建我們需要的模型,主要的改變是將原來的tf.nn.xxx替換成了tf.keras.

 

區別:

1. tf.keras全面支持tensorflow的eager execution模式。當然,在代碼中通過eager模式可以反應當前的梯度等,可能認為這個梯度會影響我們代碼的運行效率,但是Eager execution相對於graph mode的性能劣勢,通過tf.function的imperative-to-graph變換來彌補。

 

2. tf.keras支持基於tf.data的模型訓練。基於lazy范式、使用了多線程數據輸入管路,tf.data可以顯著提高模型訓練的效率。tf.keras.Mode.fit()直接支持tf.data.Dataset iterator對象作為輸入參數

 

3.tf.keras支持TPU訓練。由於TPU是Google自己研發的,因此我們可以將其把keras的優秀特性集成到tf,然后通過TPU完成加速。`tf.contrib.tpu.keras_to_tpu_model()`將一個tf.keras.Model對象轉換成一個可以在TPU上進行訓練的模型對象。

 

4.tf.contrib.saved_model.save_keras_model()可以將模型保存為tensorflow的SavedModel格式。

 

兩者在語法上,在共同點上有很多,基於同一個API:如果不使用tf.keras的特有特性(見下文)的話,模型搭建、訓練、和推斷的代碼應該是可以互換的。把import keras 換成from tensorflow import keras,所有功能都應該可以工作。反之則未必,因為tf.keras有一些keras不支持的特性。

 

參考:https://www.zhihu.com/question/313111229/answer/606660552

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM