【发布时间】:2016-06-14 12:29:45
【问题描述】:
我有以下情况:
我有 2 个模型用 2 个单独的脚本编写:
模型A由变量
a1、a2和a3组成,写成A.py模型B由变量
b1、b2和b3组成,用B.py编写
在A.py和B.py中,我都有一个tf.train.Saver保存所有局部变量的检查点,我们分别调用检查点文件ckptA和ckptB。
我现在想制作一个使用a1 和b1 的模型C。我可以通过使用 var_scope 在 A 和 C 中使用与 a1 完全相同的变量名(b1 也是如此)。
问题是我如何将a1 和b1 从ckptA 和ckptB 加载到模型C 中?例如,以下是否可行?
saver.restore(session, ckptA_location)
saver.restore(session, ckptB_location)
如果您尝试两次恢复同一个会话,会引发错误吗?它会抱怨没有为额外的变量分配“插槽”(b2、b3、a2、a3),还是会简单地恢复它可以恢复的变量,只有在有一些变量时才会抱怨C 中其他未初始化的变量?
我现在正在尝试编写一些代码来测试这一点,但我希望看到解决此问题的规范方法,因为在尝试重新使用一些预训练的权重时经常会遇到这种情况。
谢谢!
【问题讨论】:
标签: tensorflow