计算类 0 和/或 1 的 Intersection-Over-Union 指标。
用法
tf.keras.metrics.BinaryIoU(
target_class_ids:Union[List[int], Tuple[int, ...]] = (0, 1),
threshold=0.5,
name=None,
dtype=None
)
参数
-
target_class_ids
返回指标的目标类 ID 的元组或列表。选项是[0]
,[1]
或[0, 1]
。使用[0]
(或[1]
),返回类 0(或类 1)的 IoU 度量。使用[0, 1]
,将返回两个类的 IoU 平均值。 -
threshold
如果 logit 低于threshold
,则适用于预测 logits 的阈值将它们转换为预测类 0 或如果 logit 高于threshold
则将其转换为预测类 1。 -
name
(可选)指标实例的字符串名称。 -
dtype
(可选)度量结果的数据类型。
一般定义和计算:
Intersection-Over-Union 是语义图像分割的常用评估指标。
对于单个类,IoU 指标定义如下:
iou = true_positives / (true_positives + false_positives + false_negatives)
为了计算 IoU,预测被累积在一个混淆矩阵中,由 sample_weight
加权,然后从中计算度量。
如果 sample_weight
是 None
,则权重默认为 1。使用 0 的 sample_weight
来屏蔽值。
此类可用于计算二进制分类任务的 IoU,其中预测以 logits 形式提供。首先将 threshold
应用于预测值,以便将低于 threshold
的值转换为 0 类,将高于 threshold
的值转换为 1 类。
然后计算类 0 和 1 的 IoU,返回由 target_class_ids
指定的类的 IoU 平均值。
注意:使用 threshold=0
时,此指标具有与 IoU
相同的行为。
单机使用:
m = tf.keras.metrics.BinaryIoU(target_class_id=[0, 1], threshold=0.3)
m.update_state([0, 1, 0, 1], [0.1, 0.2, 0.4, 0.7])
m.result().numpy()
0.33333334
m.reset_state()
m.update_state([0, 1, 0, 1], [0.1, 0.2, 0.4, 0.7],
sample_weight=[0.2, 0.3, 0.4, 0.1])
# cm = [[0.2, 0.4],
# [0.3, 0.1]]
# sum_row = [0.6, 0.4], sum_col = [0.5, 0.5], true_positives = [0.2, 0.1]
# iou = [0.222, 0.125]
m.result().numpy()
0.17
compile()
API 的用法:
model.compile(
optimizer='sgd',
loss='mse',
metrics=[tf.keras.metrics.BinaryIoU(target_class_id=[0], threshold=0.5)])
相关用法
- Python tf.keras.metrics.BinaryIoU.merge_state用法及代码示例
- Python tf.keras.metrics.BinaryAccuracy用法及代码示例
- Python tf.keras.metrics.BinaryCrossentropy用法及代码示例
- Python tf.keras.metrics.BinaryCrossentropy.merge_state用法及代码示例
- Python tf.keras.metrics.BinaryAccuracy.merge_state用法及代码示例
- Python tf.keras.metrics.Mean.merge_state用法及代码示例
- Python tf.keras.metrics.Hinge用法及代码示例
- Python tf.keras.metrics.SparseCategoricalAccuracy.merge_state用法及代码示例
- Python tf.keras.metrics.RootMeanSquaredError用法及代码示例
- Python tf.keras.metrics.SparseCategoricalCrossentropy.merge_state用法及代码示例
- Python tf.keras.metrics.sparse_categorical_accuracy用法及代码示例
- Python tf.keras.metrics.FalseNegatives用法及代码示例
- Python tf.keras.metrics.TrueNegatives用法及代码示例
- Python tf.keras.metrics.RecallAtPrecision.merge_state用法及代码示例
- Python tf.keras.metrics.SpecificityAtSensitivity用法及代码示例
- Python tf.keras.metrics.Mean用法及代码示例
- Python tf.keras.metrics.poisson用法及代码示例
- Python tf.keras.metrics.LogCoshError用法及代码示例
- Python tf.keras.metrics.MeanSquaredLogarithmicError用法及代码示例
- Python tf.keras.metrics.FalsePositives.merge_state用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.keras.metrics.BinaryIoU。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。