python - tf.train.Saver - 在不同的机器上加载最新的检查点

标签 python tensorflow

我有一个经过训练的模型,它是使用 tf.train.Saver 保存的,生成4个相关文件

  • checkpoint
  • model_iter-315000.data-00000-of-00001
  • model_iter-315000.index
  • model_iter-315000.meta

现在由于是通过docker容器生成的,所以机器本身和docker上的路径是不同的,就好像我们在两台不同的机器上工作一样。

我正在尝试在容器外部加载保存的模型。

当我运行以下命令时

sess = tf.Session()
saver = tf.train.import_meta_graph('path_to_.meta_file_on_new_machine')  # Works
saver.restore(sess, tf.train.latest_checkpoint('path_to_ckpt_dir_on_new_machine')  # Fails

错误是

tensorflow.python.framework.errors_impl.NotFoundError: PATH_ON_OLD_MACHINE; No such file or directory

即使我在调用 tf.train.latest_checkpoint 时提供了新路径我收到错误,该错误显示旧路径上的路径。

我该如何解决这个问题?

最佳答案

“检查点”文件是一个索引文件,它本身嵌入了路径。在文本编辑器中打开它并将路径更改为正确的新路径。

或者,使用 tf.train.load_checkpoint()加载特定的检查点,而不是依赖 TensorFlow 为您找到最新的检查点。在这种情况下,它不会引用“检查点”文件,并且不同的路径不会成为问题。

或者写一个小脚本来修改“checkpoint”的内容。

关于python - tf.train.Saver - 在不同的机器上加载最新的检查点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49997012/

相关文章:

python - 使用 python 启动使用 chcp 65001 预激活的控制台窗口

tensorflow - 覆盖 Tensorflow 中的设备范围

python - 如何有条件地将值分配给张量[损失函数的掩蔽]?

python - 在 Tensorflow 中混合前馈层和循环层?

python - 无法打开文件 'django-admin.py' : [Errno 2] No such file or directory

python - 有没有可能在Python中获取 "importing module"中的 "imported module"?

python - 我的 python 代码中没有任何内容被附加(写入)到我的 txt 文件中

python - 将 map 与 queue.put() 一起使用?

python - 如何获取 TFRecord 文件中包含的条目总数?

tensorflow - 在 TensorFlow 中,如何查看批量归一化参数?