如何恢复多个模型并在tensorflow中平均它们?

2024-10-02 12:29:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经分别训练了两个模型,我想加载它们的变量并求它们的平均值。但它出了问题tf.get_默认值图形()

这是我的代码结构(我知道这是错误的,但如何正确地编写?)在

sess = tf.session()
saver_one = tf.train.import_meta_graph('./model1.ckpt.meta')
saver_one.restore(sess,'./model1.ckpt')
graph_one = tf.get_default_graph()
wc1 = graph_one.get_tensor_by_name('wc1:0')
……
saver_two = tf.train.import_meta_graph('./model2.ckpt.meta')
saver_two.restore(sess,'./model2.ckpt')
graph_two = tf.get_default_graph()
wc1_two = graph_two.get_tensor_by_name('wc1:0')
……

错误是:

非常感谢你给我任何建议。=(^.^)=


Tags: importgettf错误trainrestoreonemeta
1条回答
网友
1楼 · 发布于 2024-10-02 12:29:12

您试图覆盖这些图形,但结果出现不匹配(某些维度不匹配)。最好把它们分开。在

graph_one = tf.Graph()
with graph_one.as_default():
  session_one = tf.Session()
  with session_one.as_default():
    saver_one = tf.train.import_meta_graph('./model1.ckpt.meta')
    wc1_one_value = session_one.run([graph_one.get_tensor_by_name('wc1:0')])

# Similar for graph_two
...

print (wc1_one_value + wc1_two_value) / 2  # Or whatever you want

要将它们重新分配到会话中,请构造图,然后执行tf.分配操作。在

^{pr2}$

要获取变量,可以使用get_trainable_variables或用reuse=True再次定义它。 然后再次导出模型。在

相关问题 更多 >

    热门问题