gpt4 book ai didi

tensorflow - 在tensorflow中,如何将某个variable_scope的变量恢复到另一个某个variable_scope中?

转载 作者:行者123 更新时间:2023-12-03 11:15:57 25 4
gpt4 key购买 nike

现在我已经训练了一个模型 A 并且我需要两个模型 A 实例,因为其中一个是固定的并且无法训练用于输出而另一个可以训练用于下一个网络。 我设计了两个variable_scope A_trainA_untrain,我在variable_scope中预训练了A模型> A_untrain 并在此范围内恢复模型,代码如下:

saver_untrain = tf.train.Saver(tf.get_collection(
tf.GraphKeys.GLOBAL_VARIABLES,
'A_untrain'))
saver_path = '~/models/model.ckpt'
# here pre-train model A
saver_untrain.save(sess, saver_path)

现在我需要将相同的模型 A 参数恢复到 A_train 范围内的相同模型中,但是我不能按照之前的代码进行操作,因为 ckpt 文件恢复了类似的参数A_untrain/input_w1 代替 A_train/input_w1。我想知道我的问题是否有解决方案或更好的解决方案来制作两个实例,一个是可训练的,另一个是不可训练的。非常感谢。

EDIT_1:我知道我可以使用如下代码实现我的需求:

saver_train = tf.train.Saver({'A_untrain/input_w1': A_train.input_w1})

但是当我的变量量很大的时候就不实用了,所以我需要用variable_scope来恢复,而不是具体的变量名。

最佳答案

我终于通过 numpy 找到了解决方案。我们可以将训练好的参数保存为 '*.npy' 格式。当我们需要加载参数时,我们可以np.loadnpy文件,然后在Session中调用tf.assign()来赋值。不管怎样都行你的 variable_scope 是。

关于tensorflow - 在tensorflow中,如何将某个variable_scope的变量恢复到另一个某个variable_scope中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46608512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com