Spec-Zone.ru › TensorFlow 2.9

tf.keras.metrics.BinaryIoU

Вычисляет метрику Intersection-Over-Union для классов 0 и/или 1.

Наследуется от: IoU, Metric, Layer, Module

Просмотр псевдонимов

Псевдонимы для миграции

Дополнительные сведения см. в Руководстве по миграции.

tf.compat.v1.keras.metrics.BinaryIoU

tf.keras.metrics.BinaryIoU(
    target_class_ids: Union[List[int], Tuple[int, ...]] = (0, 1),
    threshold=0.5,
    name=None,
    dtype=None
)

Общее определение и вычисление:

Intersection-Over-Union — это общая метрика оценки для семантической сегментации изображений.

Для отдельного класса метрика IoU определяется следующим образом:

iou = true_positives / (true_positives + false_positives + false_negatives)

Для вычисления IoU предсказания накапливаются в матрице неточностей, взвешенной по sample_weight, а затем метрика рассчитывается по ней.

Если sample_weight равно None, веса по умолчанию равны 1. Используйте sample_weight значение 0 для маскирования значений.

Этот класс может использоваться для вычисления IoU для задачи бинарной классификации, где предсказания предоставляются в виде логарифмов. Сначала к предсказанным значениям применяется threshold, таким образом, значения, которые ниже threshold, преобразуются в класс 0, а значения, которые выше threshold, преобразуются в класс 1.

Затем вычисляются IoU для классов 0 и 1, возвращается среднее значение IoU для классов, указанных в target_class_ids.

Примечание: при использовании threshold=0 эта метрика ведет себя так же, как IoU.
Аргументы
target_class_ids Кортеж или список идентификаторов целевых классов, для которых возвращается метрика. Доступные значения — [0], [1] или [0, 1]. При использовании [0] (или [1]) возвращается метрика IoU для класса 0 (или класса 1 соответственно). При использовании [0, 1] возвращается среднее значение IoU для двух классов.
threshold Порог, который применяется к предсказанным логарифмам для преобразования их в предсказанный класс 0, если логарифм меньше threshold, или предсказанный класс 1, если логарифм больше threshold.
name (Необязательно) имя метрики.
dtype (Необязательно) тип данных результата метрики.

Использование автономно:

m = tf.keras.metrics.BinaryIoU(target_class_ids=[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.17361112

Использование с API compile():

model.compile(
  optimizer='sgd',
  loss='mse',
  metrics=[tf.keras.metrics.BinaryIoU(target_class_ids=[0], threshold=0.5)])

Методы

merge_state

Просмотр исходного кода

merge_state(
    metrics
)

Объединяет состояние из одной или нескольких метрик.

Этот метод может использоваться распределёнными системами для объединения состояния, вычисленного различными экземплярами метрик. Обычно состояние хранится в виде весов метрики. Например, метрика tf.keras.metrics.Mean содержит два значения весов: общее и количество. Если есть два экземпляра tf.keras.metrics.Accuracy, каждый из которых независимо агрегировал частичное состояние для расчёта общей точности, состояния этих двух метрик могут быть объединены следующим образом:

m1 = tf.keras.metrics.Accuracy()
_ = m1.update_state([[1], [2]], [[0], [2]])
m2 = tf.keras.metrics.Accuracy()
_ = m2.update_state([[3], [4]], [[3], [4]])
m2.merge_state([m1])
m2.result().numpy()
0.75
Аргументы
metrics Итерируемый объект метрик. Метрики должны иметь совместимое состояние.
Исключения
ValueError Если предоставленный итерируемый объект не содержит метрик, соответствующих требуемым спецификациям метрики.

reset_state

Просмотр исходного кода

reset_state()

Сбрасывает все переменные состояния метрики.

Эта функция вызывается между эпохами/шагами, когда метрика оценивается во время обучения.

result

Просмотр исходного кода

result()

Вычисляет intersection-over-union с помощью матрицы неточностей.

update_state

Просмотр исходного кода

update_state(
    y_true, y_pred, sample_weight=None
)

Накапливает статистику матрицы неточностей.

Перед обновлением матрицы неточностей предсказанные значения пороговятся: 0 для значений, меньших threshold, 1 для значений, больших или равных threshold.

Аргументы
y_true Значения фактических результатов.
y_pred Значения предсказаний.
sample_weight (Необязательно) взвешивание каждого примера. По умолчанию равно 1. Может быть Tensor, ранг которого равен 0 или такому же, как у y_true, и должен быть совместим для вещания с y_true.
Возвращаемое значение
Операция обновления.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/keras/metrics/BinaryIoU

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API