簡體   English   中英

如何在多個模型中使用tensorflow saver?

[英]how to use tensorflow saver with multiple models?

我在理解正確使用tf.train.Saver時遇到很多麻煩

我在一個會話中創建幾個不同的獨立網絡模型。 所有模型都經過訓練,我保存了性能最好的網絡以備后用。

但是,當我稍后嘗試還原模型時,出現錯誤,似乎表明某些變量未保存或未還原:

NotFoundError: Tensor name "Network_8/train/beta2_power" not found in checkpoint files networks/network_0.ckpt

出於某種原因,當我嘗試為Network_0加載變量時,系統提示我需要Network_8的變量信息。

確保從多網絡會話中僅保存/恢復正確變量的最佳方法是什么?

我的問題似乎部分是,盡管我為要為每個網絡保存的變量創建了一個dict對象(權重和偏差),但是當我設置優化程序(如AdamOptimizer)時,tensorflow會自動創建需要初始化。 如果您使用tf.train.Saver保存所有變量並且您只有一個網絡,那么這很好,但是我正在訓練多個網絡並且僅保存最佳結果。 我不確定如何指定tf auto添加到我的字典中以保存的變量。

我的解決方案是在原始模型和新模型(即Network_0和Network_8)中創建一個具有相同張量名稱的part_saver,僅恢復所需的變量。

part_saver = tf.train.Saver({"W":w,"b":b,...})

在還原部分模型之前,初始化Network_8中的所有變量。

暫無
暫無

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

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