问题描述
我正在尝试升级模型以使用AI平台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
问题似乎是在最后的训练步骤之后不再对模型进行评估。这可以在张量板上看到,在最后的训练指标在1.15中导出后,将运行最终评估。在2.1中不再如此。
Tensorboard comparing the steps for which the last losses were recorded.
日志
日志支持了在最后训练步骤之后不再评估模型的问题:
2020-10-27 09:06:03.504 EDT 主副本0 “将77872的检查站保存为...
...
2020-10-27 09:06:19.033 EDT 评估者副本0 “呼叫model_fn。”
...
2020-10-27 09:06:20.093 EDT 主副本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中的错误,还是我必须做一些不同的事情以确保评估者在最后的训练步骤之后评估模型(并将其导出)?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)