繁体   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