Я пытаюсь зарегистрировать шаги во время оценки с помощью 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,
)
заранее спасибо