Я использую API tf.estimator на TF 1.9
У меня несколько выходных потерь, и я хотел бы отразить каждую отдельную потерю для шагов ОБУЧЕНИЯ и ЗНАКА в тензорной доске.
Внутри model_fn я определил несколько tf.summary.scalar, таких как:
loss1 = tf.reduce_mean(tf.keras.losses.binary_crossentropy(
labels[label1], predictions[label1]))
tf.summary.scalar('loss1', loss1)
loss2 = tf.reduce_mean(tf.keras.losses.binary_crossentropy(
labels[label2], predictions[label2]))
tf.summary.scalar('loss2', loss2)
combined_loss = tf.reduce_mean([loss1, loss2])
Они отображаются на тензорной доске только для тренировок. Для прогонов EVAL я вижу только записанные значения eval_metric_ops и комбинированные потери, но не отдельные потери.
Я попытался добавить явные оценки_внутри внутри model_fn, чтобы выполнить операцию tf.summary.merge_all (), как предложено здесь
summary_hook = tf.train.SummarySaverHook(save_steps=100,
output_dir=params['model_dir'],
summary_op=tf.summary.merge_all())
return tf.estimator.EstimatorSpec(mode=mode, predictions=predictions,
loss=combined_loss,
train_op=train_op,
eval_metric_ops=eval_metric_ops,
evaluation_hooks=[summary_hook]
)
Результаты одинаковы, т.е. tf.summary.scalar не сохранен во время EVAL.
Как я могу получить EVAL, чтобы записать tf.summary?