gpt4 book ai didi

Tensorflow:跨图形传输变量

转载 作者:行者123 更新时间:2023-12-04 02:29:08 25 4
gpt4 key购买 nike

我试图弄清楚如何将学习到的保存模型作为更大模型的一部分导入。

具体来说,我有一个 RNN 和一些嵌入矩阵(模型 A),它们已经在 .ckpt 中存储的大型数据集上进行了训练。文件。我还有另一个模型(模型 B),它使用这个完全相同的 RNN 和嵌入模型作为子模型,并带有额外的操作来操纵这个 RNN 的输出并将其用于分类。

这两个模型的图定义不同,但我想将模型 B 初始化为模型 A 的保存版本。如何做到这一点?

到目前为止,我的尝试是尝试将模型 A 加载为不同 session 和图形下的另一个模型,然后将模型 B 中的相关矩阵分配给 A 中的矩阵,但这不起作用。

这是代码的相关部分:

sup = supervised() # spins up a class with an interactive session inside and sets up the graph
g = tf.Graph()
with g.as_default():
unsup = unsupervised('unsup.ckpt') # loads in model A from file
# w/ another session (not interactive)
# get matrix from unsup and assign to sup
sup._word_embeddings.assign(unsup.session.run(unsup._word_embeddings))
# do the same for the RNN
sup._gate_matrix.assign(unsup.session.run(unsup._gate_matrix))
sup._gate_bias.assign(unsup.session.run(unsup._gate_bias))
sup._cand_matrix.assign(unsup.session.run(unsup._cand_matrix))
sup._cand_bias.assign(unsup.session.run(unsup._cand_bias))

请注意,这两个模型都为 rnn_cell.linear 中的矩阵分配了显式变量。对于使用 tf.get_variable() 的 RNN在实例化类时。

提前致谢!

最佳答案

答案原来如此简单。这只是创建分配操作...要实际进行分配,请在适当的 session 中运行操作。

关于Tensorflow:跨图形传输变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36438800/

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