gpt4 book ai didi

machine-learning - Tensorflow如何恢复具有不同名称但相同形状的权重?

转载 作者:行者123 更新时间:2023-11-30 08:26:32 29 4
gpt4 key购买 nike

我在 Tensorflow 中有多种架构。其中一些共享某些部分的设计。

我想训练其中一个网络,并在另一个网络中使用相似层的训练权重。

此时,我可以保存所需的权重,并将它们重新加载到具有完全相同的变量命名约定的架构中。

但是,当两个网络中的权重名称不同时,就无法恢复。我对第一个网络有这样的命名约定:

  • selector_network/c2w/var1

在第二个网络中我有这个:

  • joint_network/c2w/var1

除此之外,变量在形状上相似。是否有可能在重新加载时更改名称或告诉 Tensorflow 在哪里适合这些变量?

编辑:我从@batzner找到了这个脚本,它允许重命名Tensorflow检查点的变量:tensorflow_rename_variables

它不工作。我收到以下错误:

ValueError: Couldn't find 'checkpoint' file or checkpoints in given directory ./joint_pos_tagger_lemmatizer/fi/

最佳答案

tf.train.Saver内置支持使用字典作为 var_list 参数。该字典将检查点文件中的对象名称映射到要恢复的变量。

如果您想通过“选择器网络”的检查点恢复“联合网络”,您可以这样做:

# var1 is the variable you want ot restore
saver = tf.train.Saver(var_list={'selector_network/c2w/var1': var1})
saver.restore(...)

如果你想恢复更多变量,你只需扩展字典即可。

关于machine-learning - Tensorflow如何恢复具有不同名称但相同形状的权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45606298/

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