Как получить график точности на тензорной доске при использовании модели keras с tf.estimator?

#tensorflow #keras #metrics #tensorboard #tensorflow-estimator

#tensorflow #keras #показатели #tensorboard #tensorflow-estimator

Вопрос:

Я строю модель, используя keras с TensorFlow 1.12 . После (или во время) обучения модели я могу видеть с Tensorboard распределением точности и потерь в зависимости от количества эпох.

при использовании модели keras и ее преобразовании с помощью model_to_estimator accuracy и потери не сохраняются в events.out.tfevents.xxxxxxxxxx (используются TensorBoard для визуализации). Я использую tf.estimator.train() или tf.estimator.train_and_evaluate(estimator, train_spec, eval_spec) , и в обоих случаях я получаю только:

 dict_keys(['global_step/sec', 'loss_1'])
  

при использовании tf.estimator.train() я ожидаю потери и увеличения точности events.out.tfevents.xxxxxxxxxx для обучающего набора данных

используя tf.estimator.train_and_evaluate(estimator, train_spec, eval_spec) , я ожидаю потери и погрешности events.out.tfevents.xxxxxxxxxx для набора данных обучения и тестирования.

Информация вычисляется и отображается в файлах журнала:

 INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Evaluation [10/100]
INFO:tensorflow:Evaluation [20/100]
INFO:tensorflow:Evaluation [30/100]
INFO:tensorflow:Evaluation [40/100]
INFO:tensorflow:Evaluation [50/100]
INFO:tensorflow:Evaluation [60/100]
INFO:tensorflow:Evaluation [70/100]
INFO:tensorflow:Finished evaluation at 2019-03-16-12:28:05
INFO:tensorflow:Saving dict for global step 1000: accuracy = 0.9766614, global_step = 1000, loss = 0.074898034
INFO:tensorflow:Saving 'checkpoint_path' summary for global step 1000: results/Models/Mnist/tf_1_12/estimator/ckpt/model.ckpt-1000
  

Как я могу добавить некоторые показатели при преобразовании модели keras в оценщик? Если я возвращаю непосредственно оценщик, мне просто нужно добавить tf.summary.scalar('accuracy', accuracy[1]) . Я не смог найти ничего, что можно было бы узнать.

когда я использую ту же модель keras и запускаю метод fit, я получаю в events.out.tfevents.xxxxxxxxxx файле:

 dict_keys(['batch_acc', 'batch_loss', 'epoch_acc', 'epoch_loss', 'epoch_val_acc', 'epoch_val_loss'])
  

Я получил 6 переменных, включая точность и потери для набора данных для обучения и тестирования. Это то, чего от меня ожидают.

Ожидается ли это? Без такой информации в TensorBoard невозможно увидеть, подходит модель или нет. Я даже не уверен, какая информация отображается в файле журнала, верно?

Есть идеи?

РЕДАКТИРОВАТЬ:
Теперь я уверен, что это ошибка / или особенность. Я открыл заявку:
https://github.com/tensorflow/tensorflow/issues/26804

и видел аналогичный от августа 2018:
https://github.com/tensorflow/tensorflow/issues/21983

Следующие шаги — проверить, работает ли это с Tensorflow 2.0, поскольку здесь Keras официально является высокоуровневым API. Я построил модель, используя слои tf.estimator и keras, и я мог добавлять и видеть точность и потери.