Spec-Zone.ru › TensorFlow

tf.keras.metrics.OneHotIoU

Вычисляет метрику пересечения и объединения (IoU) для меток, закодированных в формате one-hot.

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

tf.keras.metrics.OneHotIoU(
    num_classes,
    target_class_ids,
    name=None,
    dtype=None,
    ignore_class=None,
    sparse_y_pred=False,
    axis=-1
)

Формула:

iou = true_positives / (true_positives + false_positives + false_negatives)

Пересечение и объединение (IoU) — распространённая метрика оценки качества семантической сегментации изображений.

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

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

Этот класс можно использовать для вычисления IoU в задачах классификации с несколькими классами, где метки закодированы в формате one-hot (последняя ось должна содержать по одному измерению на класс). Обратите внимание, что прогнозы также должны иметь ту же форму. Для вычисления IoU метки и прогнозы сначала преобразуются обратно в целочисленный формат: для этого по оси классов берётся argmax. Затем применяются те же этапы вычисления, что и для базового класса IoU.

Обратите внимание: если метки и прогнозы содержат только один канал, этот класс эквивалентен классу IoU. В этом случае вместо него используйте IoU.

Также убедитесь, что num_classes равно числу классов в данных, чтобы избежать ошибки «метки выходят за допустимые границы» при вычислении матрицы ошибок.

Аргументы
num_classes Возможное количество меток в задаче прогнозирования.
target_class_ids Кортеж или список идентификаторов целевых классов, для которых возвращается метрика. Чтобы вычислить IoU для определённого класса, укажите список (или кортеж) из одного идентификатора.
name (Необязательно) строковое имя экземпляра метрики.
dtype (Необязательно) тип данных результата метрики.
ignore_class Необязательное целое число. Идентификатор класса, который следует игнорировать при вычислении метрики. Это полезно, например, в задачах сегментации, в которых на картах сегментации присутствует класс «void» (обычно -1 или 255). По умолчанию (ignore_class=None) учитываются все классы.
sparse_y_pred Указывает, закодированы ли прогнозы целыми числами или плотными векторами с плавающей запятой. Если False, для определения наиболее вероятной метки каждого примера используется функция argmax.
axis (Необязательно) измерение, содержащее логиты. По умолчанию — -1.

Пример:

Пример:

y_true = np.array([[0, 0, 1], [1, 0, 0], [0, 1, 0], [1, 0, 0]])
y_pred = np.array([[0.2, 0.3, 0.5], [0.1, 0.2, 0.7], [0.5, 0.3, 0.1],
                      [0.1, 0.4, 0.5]])
sample_weight = [0.1, 0.2, 0.3, 0.4]
m = keras.metrics.OneHotIoU(num_classes=3, target_class_ids=[0, 2])
m.update_state(
    y_true=y_true, y_pred=y_pred, sample_weight=sample_weight)
# cm = [[0, 0, 0.2+0.4],
#       [0.3, 0, 0],
#       [0, 0, 0.1]]
# sum_row = [0.3, 0, 0.7], sum_col = [0.6, 0.3, 0.1]
# true_positives = [0, 0, 0.1]
# single_iou = true_positives / (sum_row + sum_col - true_positives))
# mean_iou = (0 / (0.3 + 0.6 - 0) + 0.1 / (0.7 + 0.1 - 0.1)) / 2
m.result()
0.071

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

model.compile(
    optimizer='sgd',
    loss='mse',
    metrics=[keras.metrics.OneHotIoU(
        num_classes=3,
        target_class_id=[1]
    )]
)
Атрибуты
dtype
variables

Методы

add_variable

Посмотреть исходный код

add_variable(
    shape, initializer, dtype=None, aggregation='sum', name=None
)

add_weight

Посмотреть исходный код

add_weight(
    shape=(), initializer=None, dtype=None, name=None
)

from_config

Посмотреть исходный код

@classmethod
from_config(
    config
)

get_config

Посмотреть исходный код

get_config()

Возвращает сериализуемую конфигурацию метрики.

reset_state

Посмотреть исходный код

reset_state()

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

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

result

Посмотреть исходный код

result()

Вычисляет пересечение и объединение по матрице ошибок.

stateless_reset_state

Посмотреть исходный код

stateless_reset_state()

stateless_result

Посмотреть исходный код

stateless_result(
    metric_variables
)

stateless_update_state

Посмотреть исходный код

stateless_update_state(
    metric_variables, *args, **kwargs
)

update_state

Посмотреть исходный код

update_state(
    y_true, y_pred, sample_weight=None
)

Накапливает статистику матрицы ошибок.

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

__call__

Посмотреть исходный код

__call__(
    *args, **kwargs
)

Вызывает self как функцию.

© 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/api_docs/python/tf/keras/metrics/OneHotIoU

Spec-Zone.ru

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