在tf.estimator中使用keras模型时,如何获取TensorBoard精度图?

时间:2019-03-07 13:58:45

标签: tensorflow keras metrics tensorboard tensorflow-estimator

我使用TensorFlow 1.12的keras构建模型。在训练模型之后(或期间),我可以用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中积累训练数据集abd测试数据集。

信息被计算并显​​示在日志文件中:

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年8月的类似照片:
https://github.com/tensorflow/tensorflow/issues/21983

下一步是查看它是否适用于Tensorflow 2.0,因为此处Keras正式是高级API。我使用tf.estimator和keras层构建了一个模型,我可以添加并看到累积和损失。

0 个答案:

没有答案