首页 > 解决方案 > 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,我已经把它带到了一个地方:

我为此使用的代码类似于:

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 中不再是这种情况。

Tensorboard 比较记录最后一次损失的步骤。

日志

日志支持在最终训练步骤后不再评估模型的问题:

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 中的一个错误,还是我必须做一些不同的事情来确保评估者在最后的训练步骤之后评估模型(并导出它)?

标签: tensorflowgoogle-cloud-mltensorflow-estimator

解决方案


推荐阅读