我正在尝试获取两组边界框之间的平均IOU度量。我遇到了这个错误:
RuntimeError:启用急切执行后,不支持tf.metrics.mean_iou。
引发错误的可复制代码:
import tensorflow as tf
a = [[0.462, 0.465, 0.492, 0.58],
[0.435, 0.385, 0.462, 0.467],
[0.586, 0.449, 0.627, 0.616],
[0.431, 0.671, 0.494, 0.8],
[0.519, 0.282, 0.586, 0.449]]
b = [[0.465, 0.467, 0.491, 0.586],
[0.432, 0.488, 0.464, 0.59],
[0.585, 0.442, 0.633, 0.625],
[0.429, 0.664, 0.493, 0.805],
[0.524, 0.502, 0.594, 0.642]]
tf.compat.v1.metrics.mean_iou(a, b, num_classes=1)
我有什么选择?
答案 0 :(得分:1)
我能够使它起作用:
import tensorflow as tf
a = [[0.462, 0.465, 0.492, 0.58],
[0.435, 0.385, 0.462, 0.467],
[0.586, 0.449, 0.627, 0.616],
[0.431, 0.671, 0.494, 0.8],
[0.519, 0.282, 0.586, 0.449]]
b = [[0.465, 0.467, 0.491, 0.586],
[0.432, 0.488, 0.464, 0.59],
[0.585, 0.442, 0.633, 0.625],
[0.429, 0.664, 0.493, 0.805],
[0.524, 0.502, 0.594, 0.642]]
metric = tf.keras.metrics.MeanIoU(num_classes=1)
print(metric(a, b))
>> tf.Tensor(1.0, shape=(), dtype=float32)
This文档页面更详细地解释了MeanIoU指标,但是我认为上面的代码段将对您有用。