TensorBoard版本(来自pip包,在运行tensorboard
时也会打印出来):1.12.0
TensorFlow版本(如果不同于TensorBoard:1.12.0)
操作系统平台和版本(例如Linux Ubuntu 16.04):Arch Linux
Python版本(例如2.7、3.5):3.6.5
你好,
我正在尝试使用pr_curve_raw_data_op
函数绘制PR曲线,并具有我事先计算的精度,召回率和其他指标,但是在图表中得到的结果不正确。我正在使用Estimator API,这意味着我创建了自己的字典,其中包含tf.Tensor
和tf.Operation
实例的元组,然后将其转发到estimator进行转储摘要。
在每次检查点保存期间,我都会评估多个步骤,这意味着我会积累精度并通过多个步骤进行调用(但我不使用pr_curves插件来执行此操作,而是使用自定义书面指标),而我希望从插件中获得所有是将PR曲线转储到张量板上。这是用于将pr-curves
摘要张量存储到指标字典中的代码部分:
metrics_dict['pr_curve/CLASS_{}'.format(cls_index)] = (
summary.raw_data_op(
'pr_curve/CLASS_{}'.format(cls_index),
true_positive_counts=tps,
false_positive_counts=fps,
true_negative_counts=tns,
false_negative_counts=fns,
precision=precisions,
recall=recalls,
num_thresholds=11
),
tf.no_op()
)
我还尝试将精度作为文本摘要转储,以确保在终端中打印的输出与存储在摘要中的输出相同,并且我使用以下代码转储了这些摘要:
metrics_dict['precisions_text/CLASS_{}'.format(cls_index)] = (
tf.summary.text(name="aa",
tensor=tf.as_string(precs)),
tf.no_op()
)
最后,我将附上几个屏幕截图。第一个显示转储到文本摘要的精度及其值(我只显示了前6个值,其余4个值均为0.0):
第二张屏幕截图包含在PR曲线上绘制的相同类和相同步长的精度:
您可以看到图中只有第一个点,精确度为1.0(0.0调用)。在另外几种情况下会发生这种情况,最后一点是图表被切断(例如,我从召回中得到的精度值从0.0到0.6,而图表只有0.5)。