簡體   English   中英

使用自定義層保存 Tensorflow 模型

[英]Saving Tensorflow models with custom layers

我通讀了文檔,但對我來說有些不清楚:如果我編寫了一個自定義層然后在模型中使用它,我可以將模型保存為 SavedModel 並且自定義層自動進入其中還是我必須這樣做也保存自定義圖層? 我嘗試僅以 H5 格式保存模型而不是自定義圖層。 當我嘗試加載模型時,我在自定義圖層上出現錯誤,無法識別或類似的錯誤。 通讀文檔,我發現將自定義對象保存為 H5 格式要復雜一些。 但是它如何與 SavedModels 一起工作?

如果我理解你的問題,你應該簡單地使用tf.keras.models.save_model(<model_object>,'file_name',save_format='tf')

我的理解是“tf”格式會自動保存自定義圖層,因此加載不需要所有庫都存在。 這不會擴展到所有自定義對象,但我不知道區別在哪里。 如果要加載使用非層自定義對象的模型,則必須使用tf.keras.models.load_model()custom_objects參數。 僅當您想在加載后立即訓練時才需要這樣做。 如果您不打算立即訓練模型,您應該可以放棄custom_objects並在load_model設置compile=False

如果你想使用“h5”格式,你應該讓自定義對象使用的所有庫/模塊/包都存在並加載,以便“h5”加載工作。 我知道我以前用初始化器做過這件事。 這對於圖層可能無關緊要,但我認為它確實如此。

您還需要在自定義對象定義中實現get_config()save_config()函數,以便“h5”正確保存和加載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM