как получить tf.summary в API tf.estimator.Estimator для сохранения переменных для тензорной доски во время выполнения EVALUATE? - PullRequest
0 голосов
/ 02 сентября 2018

Я использую 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...