从 tf1 检查点加载给出 tensorflow.python.framework.errors_impl.NotFoundError: Key backup_variables/output/Variable not found in checkpoint

问题描述

我对 tensorflow 不是很熟悉,所以请你帮助我) 我正在尝试将 tf1 模型移动到 tf2 中。 (更准确地说是从 1.5.0 到 2.4.1)

  • 在大多数情况下,我使用 compat.v1;
  • 我用 tensorflow_addons.text 替代品替换了一些 CRF 层;
  • 我用 tensorflow.contrib.layers.fully_connected 替换的 tf_slim.layers.fully_connected,当我加载权重时使用
sess_config = tf.compat.v1.ConfigProto()
sess_config.gpu_options.allow_growth = True
sess = tf.compat.v1.Session(config=sess_config)
saver = tf.compat.v1.train.Saver()
saver.restore(sess,model_dir)

我收到错误

tensorflow.python.framework.errors_impl.NotFoundError: Key backup_variables/output/Variable not found in checkpoint
     [[{{node save/RestoreV2}}]]

那么关于如何修复它而不是重写整个模型的任何想法?

tf1 版本按预期工作。

此外,我尝试使用 import_Meta_graph 并且它适用于 tf2 以及 tf1。但在这两种情况下,它都预测了相同的错误结果。

更新:错误是由图中的不同变量名称引起的,分别与 tf1 图和检查点相比,使用 tf2 构建。重命名检查点中的变量修复了它

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)