РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
408 of 824 menu

Класс SparseCategoricalAccuracy

Класс SparseCategoricalAccuracy вычисляет точность модели для задач категориальной классификации, в которых истинные метки классов передаются в виде целых чисел (индексов классов), а не в виде one-hot векторов. Класс наследуется от MeanMetricWrapper и возвращает долю правильных предсказаний.

Первым параметром передаётся имя метрики name (по умолчанию 'sparse_categorical_accuracy'). Вторым параметром dtype задаётся тип данных для вычислений (по умолчанию float32). Метод update_state принимает истинные метки y_true (целые числа) и предсказанные вероятности y_pred. Метод result возвращает текущее значение точности, а reset_state сбрасывает накопленную статистику.

Синтаксис

tf.keras.metrics.SparseCategoricalAccuracy(name='sparse_categorical_accuracy', dtype=None)

Пример

Давайте создадим метрику и обновим её состояние на одном батче данных:

import tensorflow as tf metric = tf.keras.metrics.SparseCategoricalAccuracy() y_true = tf.constant([1, 2, 0, 1]) y_pred = tf.constant([ [0.1, 0.7, 0.2], [0.1, 0.2, 0.7], [0.8, 0.1, 0.1], [0.3, 0.5, 0.2] ]) metric.update_state(y_true, y_pred) print(metric.result().numpy())

Результат выполнения кода:

1.0

Пример

Давайте вычислим точность для случая с частично неверными предсказаниями:

import tensorflow as tf metric = tf.keras.metrics.SparseCategoricalAccuracy() y_true = tf.constant([0, 1, 2]) y_pred = tf.constant([ [0.7, 0.2, 0.1], [0.1, 0.2, 0.7], [0.2, 0.3, 0.5] ]) metric.update_state(y_true, y_pred) print(metric.result().numpy()) <-python+>

Результат выполнения кода:

0.33333334

Пример

Давайте используем метрику в процессе обучения модели:

import tensorflow as tf import numpy as np tf.random.set_seed(0) model = tf.keras.Sequential([ tf.keras.layers.Dense(3, activation='softmax', input_shape=(4,)) ]) model.compile( optimizer='sgd', loss='sparse_categorical_crossentropy', metrics=[tf.keras.metrics.SparseCategoricalAccuracy()] ) x = np.random.rand(8, 4) y = np.random.randint(0, 3, size=(8,)) history = model.fit(x, y, epochs=1, verbose=0) print(history.history['sparse_categorical_accuracy'])

Результат выполнения кода:

[0.375]

Пример

Давайте сбросим состояние метрики с помощью метода reset_state:

import tensorflow as tf metric = tf.keras.metrics.SparseCategoricalAccuracy() y_true = tf.constant([1, 0]) y_pred = tf.constant([ [0.2, 0.8], [0.6, 0.4] ]) metric.update_state(y_true, y_pred) print(metric.result().numpy()) metric.reset_state() print(metric.result().numpy())

Результат выполнения кода:

1.0 0.0

Смотрите также

  • класс CategoricalAccuracy,
    который вычисляет точность для one-hot меток
  • класс SparseCategoricalCrossentropy,
    который вычисляет разреженную категориальную кросс-энтропию
  • класс SparseTopKCategoricalAccuracy,
    который вычисляет точность попадания в топ-K классов
  • класс Accuracy,
    который вычисляет общую точность предсказаний
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить