1

Note: this is a copy of a GitHub issue I reported.

It is re-posted in hope to get more attention, I will update any solutions on either site.

Question

I want to export mlpipeline-metrics from my custom Python function TFX component so that it is displayed in the KubeFlow UI.

This is a minimal example of what I am trying to do:

import json

from tfx.dsl.component.experimental.annotations import OutputArtifact
from tfx.dsl.component.experimental.decorators import component
from tfx.types.standard_artifacts import Artifact

class Metric(Artifact):
    TYPE_NAME = 'Metric'

@component
def ShowMetric(MLPipeline_Metrics: OutputArtifact[Metric]):

    rmse_eval = 333.33

    metrics = {
        'metrics':[
            {
                'name': 'RMSE-validation',
                'numberValue': rmse_eval,
                'format': 'RAW'
            }
        ]
    }

    path = '/tmp/mlpipeline-metrics.json'
    
    with open(path, 'w') as _file:
        json.dump(metrics, _file)

    MLPipeline_Metrics.uri = path

In the KubeFlow UI, the "Run output" tab says "No metrics found for this run." However, the output artefact shows up in the ML MetaData (see screenshot). Any help on how to accomplish this would be greatly appreciated. Thanks!

Screenshot of KubeFlow UI

Federico Baù
  • 6,013
  • 5
  • 30
  • 38
  • Issue being actively tracked and discussed in https://github.com/tensorflow/tfx/issues/3094. –  Feb 22 '21 at 13:12

0 Answers0