Mlflow: регистрируйте шаги на этапе оценки, используя Tensorflow train_and_evaluate.

Я пытаюсь зарегистрировать шаги во время оценки с помощью Mlflow, но смог зарегистрировать только последний шаг. Используя mlflow.tensorflow.autolog(), я могу регистрировать некоторые показатели (например, потери) при сохранении контрольной точки каждые 100 шагов, определенных в RunConfig. Однако мне также нужно сохранять точность и top3error каждые 100 шагов, которые оценивает модель. Вот мой код:

def top3error(features, labels, predictions):
    return {'top3error': tf.metrics.mean(tf.nn.in_top_k(predictions=predictions['logits'], 
                                                        targets=labels,
                                                        k=3))}
# Log metrics
mlflow.tensorflow.autolog()

with mlflow.start_run():
    steps = 1000

    mlflow.log_param("Steps", steps)    

    '''Training & Validation'''
    train_spec = tf.estimator.TrainSpec(input_fn=generate_input_fn(train), 
                                        max_steps=steps)
    eval_spec = tf.estimator.EvalSpec(name='validation',
                                      input_fn=generate_input_fn(test, num_epochs=1))

    tf.logging.info("Starting Run...")
    results = tf.estimator.train_and_evaluate(m, train_spec, eval_spec)    

    '''Log Run'''
    mlflow.log_metric("accuracy", results[0]['accuracy'])
    mlflow.log_metric("top3error", results[0]['top3error'])

Вот RunConfig, используемый в модели:

config=tf.estimator.RunConfig(
  model_dir=model_dir, 
  save_checkpoints_steps=100,
)

заранее спасибо


person Daniel Zapata    schedule 01.08.2019    source источник
comment
Вы нашли решение этого Даниэля?   -  person zishan ahmed    schedule 29.10.2019
comment
@zishanahmed через MLflow это невозможно. Только так, если у вас есть тренировочный цикл. MLFlow предполагает, что в новой версии он сможет сохранять все метрики с тензорной доски.   -  person Daniel Zapata    schedule 29.10.2019


Ответы (1)


Этого можно добиться, указав метрики, которые вы хотите регистрировать в своем оценщике. Если вы не используете какой-то тренировочный цикл и повторяете шаг, вы не сможете сделать это напрямую.

См. https://stackoverflow.com/a/45716062.

person Apurva Koti    schedule 05.08.2019