我有一个由 3 个容器化组件组成的管道。在最后一个组件中,我将我想要的指标写入一个名为 的文件/mlpipeline-metrics.json
,就像这里解释的那样。这是我使用的 Python 代码。
metrics = {
'metrics': [
{
'name': 'accuracy',
'numberValue': accuracy,
'format': 'PERCENTAGE',
},
{
'name': 'average-f1-score',
'numberValue': average_f1_score,
'format': 'PERCENTAGE'
},
]
}
with open('/mlpipeline-metrics.json', 'w') as f:
json.dump(metrics, f)
我还尝试使用以下代码编写文件,就像上面链接的示例一样。
with file_io.FileIO('/mlpipeline-metrics.json', 'w') as f:
json.dump(metrics, f)
管道运行良好,没有任何错误。但它不会在前端 UI 中显示指标。
我认为这与以下代码块有关。
def metric_op(accuracy, f1_scores):
return dsl.ContainerOp(
name='visualize_metrics',
image='gcr.io/mgcp-1190085-asml-lpd-dev/kfp/jonas/container_tests/image_metric_comp',
arguments=[
'--accuracy', accuracy,
'--f1_scores', f1_scores,
]
)
这是我用来ContainerOp
从容器化组件创建的代码。请注意,我没有指定任何file_outputs
. 在其他ContainerOp
方面,我必须指定file_outputs
能够将变量传递给管道中的下一步。我应该在这里做类似的事情来将它映射/mlpipeline-metrics.json
到某个东西上,以便 kubeflow 管道检测到它吗?
我正在使用运行 Kubeflow Pipelines 0.2.5 和 Python 3.6.8 的托管 AI 平台管道部署。
任何帮助表示赞赏。