У меня есть конвейер, состоящий из 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)
Конвейер работает просто отлично без ошибок. Но он не будет отображать метрики в интерфейсном интерфейсе.
Я думаю, что это как-то связано со следующим кодовым блоком.
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 обнаруживали его?
Я использую развертывание управляемых конвейеров платформы AI, использующее Kubeflow Pipelines 0.2.5 с Python 3.6.8 .
Любая помощь приветствуется.