tensorflow - FinalExporter 无法在 Google AI 平台上的 TensorFlow 2.1 中运行
问题描述
我正在尝试升级我的模型以使用 AI-Platform 2.1 而不是 1.15,但我无法FinalExporter
正常工作。
我遵循了ai-platform 中概述的步骤:No eval folder or export folder in outputs when running TensorFlow 2.1 training job using Estimators,我已经把它带到了一个地方:
- 评估指标导出到
eval
文件夹 BestExporter
和都LatestExporter
成功导出模型- 不导出
FinalExporter
任何模型
我为此使用的代码类似于:
import tensorflow as tf
...
estimator = tf.estimator.Estimator(...)
train_spec = tf.estimator.TrainSpec(...)
final_exporter = tf.estimator.FinalExporter("final", ...)
latest_exporter = tf.estimator.LatestExporter("latest", ...)
best_exporter = tf.estimator.BestExporter("best", ...)
eval_spec = tf.estimator.EvalSpec(
input_fn=eval_input_fn,
exporters=[latest_exporter, final_exporter, best_exporter],
name="eval",
)
tf.estimator.train_and_evaluate(estimator=estimator, train_spec=train_spec, eval_spec=eval_spec)
我正在使用以下 yaml 配置文件
trainingInput:
runtimeVersion: "2.1"
pythonVersion: "3.7"
scaleTier: CUSTOM
masterType: standard_v100
evaluatorType: standard_gpu
evaluatorCount: 1
问题似乎是在最后的训练步骤之后不再评估模型。这可以在 tensorboard 中看到,在 1.15 中导出最后一个训练指标后运行最终评估。在 2.1 中不再是这种情况。
日志
日志支持在最终训练步骤后不再评估模型的问题:
2020-10-27 09:06:03.504 EDT master-replica-0 “将 77872 的检查点保存到 ...
...
2020-10-27 09:06:19.033 EDT evaluator-replica-0 “调用 model_fn。”
...
2020-10-27 09:06:20.093 EDT master-replica-0 “最后一步的损失:50.796585。”
...
2020-10-27 09:06:28.005 EDT 服务拆除培训计划。
...
2020-10-27 09:06:28.430 EDT evaluator-replica-0 “被服务终止。如果作业应该继续运行,它将很快在其他 VM 上重新启动。”
这表明在evaluator-replica-0
训练完成后立即关闭,同时在评估中。
这是 TF/AI-Platform 2.1 中的一个错误,还是我必须做一些不同的事情来确保评估者在最后的训练步骤之后评估模型(并导出它)?
解决方案
推荐阅读
- for-loop - 从零开始计数字符?
- postgresql - 复制命令以插入 CSV 文件 - 转义特殊字符
- javascript - 通过完全独立的按钮更改 antd Calendar 组件日期
- laravel - 如何使用powershell通过docker更改laravel中的文件所有权
- angular - 过滤时使用 transferArrayItem 的角度拖放指向错误的索引号(工作示例)
- azure - 具有动态队列名称输出的 Azure 函数
- macos - VMware Fusion 无法创建 HD > 42GB 的 Catalina VM?
- git - 除某些特定分支外,如何«git log --branches»?
- tensorflow - 使用model_to_estimator时张量板水平轴中的“Epochs”而不是“Steps”?
- mocking - 使用 Mockit 做类似 JMockit 的 MockUp