tensorflow - 使用 tensorflow 2.2 加载 TensorFlow 检查点失败,兼容性信息?
问题描述
我一直在使用 tensorflow Estimator API 来训练模型。我以这种方式保存和加载检查点:
estimator=tf.keras.estimator.model_to_estimator(keras_model=keras_model, model_dir=checkpoints_dir)
estimator.train ...
estimator.predict ...
这工作正常,我一直在保存检查点文件,如下所示:
model.ckpt.data-00000-of-000001
model.ckpt.index
model.ckpt.meta
但是,我尝试使用 tensorflow 2.2(在 google colab 上)加载使用 tensorflow 1.15 版本创建的检查点,现在我收到一条错误消息。检查点文件是否与 tensorflow 1.15 向前兼容?我应该导出“SavedModel”吗?我想为 google colab notebook 分发一个检查点文件。
我真的不明白 Tensorflow 文档中的检查点兼容性如何在版本之间工作。有什么帮助吗?
错误信息是:
NotFoundError:在检查点 [[{{node save/RestoreV2}}]] 中找不到密钥 estimator_global_step/.ATTRIBUTES/VARIABLE_VALUE
在处理上述异常的过程中,又出现了一个异常:
NotFoundError Traceback (最近一次调用最后) NotFoundError: Key estimator_global_step/.ATTRIBUTES/VARIABLE_VALUE not found in checkpoint [[node save/RestoreV2 (定义在/usr/local/lib/python3.6/dist-packages/tensorflow_estimator/python/estimator /keras.py:332) ]]
在处理上述异常的过程中,又出现了一个异常:
RuntimeError Traceback(最近一次调用最后一次) RuntimeError: Key _CHECKPOINTABLE_OBJECT_GRAPH not found in checkpoint
在处理上述异常的过程中,又出现了一个异常:
NotFoundError Traceback(最近一次调用最后一次) NotFoundError: Key _CHECKPOINTABLE_OBJECT_GRAPH not found in checkpoint
在处理上述异常的过程中,又出现了一个异常:
NotFoundError Traceback (最近一次调用最后一次) /usr/local/lib/python3.6/dist-packages/tensorflow/python/training/saver.py in restore(self, sess, save_path) 1313 # 一个有用的消息 (b/110263146 ) 1314 raise _wrap_restore_error_with_msg( -> 1315 err, "a Variable name or other graph key that is missing") 1316 1317 # 这是一个基于对象的检查点。我们将打印一个警告,然后执行
NotFoundError:从检查点恢复失败。这很可能是由于检查点中缺少变量名称或其他图形键。请确保您没有根据检查点更改预期的图表。原始错误:
在检查点中找不到键 estimator_global_step/.ATTRIBUTES/VARIABLE_VALUE [[node save/RestoreV2 (定义在 /usr/local/lib/python3.6/dist-packages/tensorflow_estimator/python/estimator/keras.py:332)]]
如果我像以下消息一样更改 tensorflow 版本,一切正常。
注意:当前的 TensorFlow 版本是 2.2.0-rc1。要改用 TF 1.x,请重新启动运行时 (Ctrl+M .) 并在运行“import tensorflow”之前运行“%tensorflow_version 1.x”。
解决方案
推荐阅读
- sonarqube - 声纳报告错误:报告指的是未配置为测试文件的文件
- android - Android 启动画面:缩放位图
- apache - Nginx 作为 Apache (RHEL 8) 的反向代理,http 到 https 重写,ERR_TOO_MANY_REDIRECTS
- javascript - Electron:无法将背景图像更改为本地文件系统图像
- apache-spark - 将大型机 IMS 数据摄取到 Hadoop
- excel - 如何从特定日期中减去并让它在工作日降落,同时在减法中计算周末天数?
- c++ - 尽管存在符号,但带有 std::experimental::optional 的未定义引用
- sql - 比较每月数据,同时保持每日粒度
- powershell - Powershell 自定义对象隐藏属性类型
- php - 如何阻止我的数据库提交额外的用户?