擅长:python、mysql、java
<p>标记为正确的答案并没有告诉我们如何将两个不同的模型显式加载到一个会话中,下面是我的答案:</p>
<ol>
<li><p>为要加载的模型创建两个不同的名称作用域。</p></li>
<li><p>初始化两个保存程序,它们将加载两个不同网络中变量的参数。</p></li>
<li><p>从相应的检查点文件加载。</p></li>
</ol>
<pre><code>with tf.Session() as sess:
with tf.name_scope("net1"):
net1 = Net1()
with tf.name_scope("net2"):
net2 = Net2()
net1_varlist = {v.op.name.lstrip("net1/"): v
for v in tf.get_collection(tf.GraphKeys.VARIABLES, scope="net1/")}
net1_saver = tf.train.Saver(var_list=net1_varlist)
net2_varlist = {v.op.name.lstrip("net2/"): v
for v in tf.get_collection(tf.GraphKeys.VARIABLES, scope="net2/")}
net2_saver = tf.train.Saver(var_list=net2_varlist)
net1_saver.restore(sess, "net1.ckpt")
net2_saver.restore(sess, "net2.ckpt")
</code></pre>