Spec-Zone.ru › TensorFlow

tf.compat.v1.metrics.accuracy

Вычисляет, как часто predictions совпадает с labels.

tf.compat.v1.metrics.accuracy(
    labels,
    predictions,
    weights=None,
    metrics_collections=None,
    updates_collections=None,
    name=None
)

Переход на TF2

Внимание: Этот API предназначен для TensorFlow v1. Читайте далее, чтобы узнать, как перейти с этого API на соответствующий API TensorFlow v2. Инструкции по переносу остального кода см. в руководстве по переходу с TensorFlow v1 на TensorFlow v2.

tf.compat.v1.metrics.accuracy несовместима с eager execution или tf.function. Для перехода на TF2 используйте вместо неё tf.keras.metrics.Accuracy. Создав объект tf.keras.metrics.Accuracy, сначала вызовите метод update_state(), чтобы записать предсказания и метки, а затем вызовите метод result(), чтобы получить точность в eager-режиме. Вы также можете добавить его в модель Keras при вызове метода compile. Дополнительные сведения см. в этом руководстве.

Структурное сопоставление с нативным TF2

До:

accuracy, update_op = tf.compat.v1.metrics.accuracy(
  labels=labels,
  predictions=predictions,
  weights=weights,
  metrics_collections=metrics_collections,
  update_collections=update_collections,
  name=name)

После:

m = tf.keras.metrics.Accuracy(
  name=name,
  dtype=None)

m.update_state(
y_true=labels,
y_pred=predictions,
sample_weight=weights)

accuracy = m.result()

Сопоставление аргументов

Имя аргумента TF1 Имя аргумента TF2 Примечание
label y_true В методе update_state()
predictions y_true В методе update_state()
weights sample_weight В методе update_state()
metrics_collections Не поддерживается Метрики следует отслеживать явно или с помощью API Keras, например add_metric, а не через коллекции
updates_collections Не поддерживается -
name name В конструкторе

Пример использования до и после перехода

До:

g = tf.Graph()
with g.as_default():
  logits = [1, 2, 3]
  labels = [0, 2, 3]
  acc, acc_op = tf.compat.v1.metrics.accuracy(logits, labels)
  global_init = tf.compat.v1.global_variables_initializer()
  local_init = tf.compat.v1.local_variables_initializer()
sess = tf.compat.v1.Session(graph=g)
sess.run([global_init, local_init])
print(sess.run([acc, acc_op]))
[0.0, 0.66667]

После:

m = tf.keras.metrics.Accuracy()
m.update_state([1, 2, 3], [0, 2, 3])
m.result().numpy()
0.66667
# Used within Keras model
model.compile(optimizer='sgd',
              loss='mse',
              metrics=[tf.keras.metrics.Accuracy()])

Описание

Используется в блокнотах

Используется в руководстве Используется в учебных материалах
  • Перенос метрик и оптимизаторов
  • Исследование эмбеддингов TF-Hub CORD-19 Swivel
  • Обучение нейронных сетей на структурированных данных с использованием графов в TFX

Функция accuracy создает две локальные переменные, total и count, которые используются для вычисления частоты совпадения predictions с labels. В результате эта частота возвращается как accuracy: идемпотентная операция, которая просто делит total на count.

Для оценки метрики на потоке данных функция создает операцию update_op, которая обновляет эти переменные и возвращает accuracy. Внутри операция is_correct вычисляет Tensor, содержащий значения 1.0 там, где соответствующие элементы predictions и labels совпадают, и 0.0 в остальных случаях. Затем update_op увеличивает total на приведенную сумму произведений weights и is_correct, а также увеличивает count на приведенную сумму weights.

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

Аргументы
labels Эталонные значения — Tensor, форма которого совпадает с формой predictions.
predictions Предсказанные значения — Tensor произвольной формы.
weights Необязательный Tensor, ранг которого равен 0 или совпадает с рангом labels; он должен допускать широковещательное распространение до формы labels (то есть все измерения должны быть равны 1 или совпадать с соответствующим измерением labels).
metrics_collections Необязательный список коллекций, в которые следует добавить accuracy.
updates_collections Необязательный список коллекций, в которые следует добавить update_op.
name Необязательное имя variable_scope.
Возвращаемые значения
accuracy Tensor, представляющий точность, — значение total, деленное на count.
update_op Операция, которая соответствующим образом увеличивает переменные total и count и возвращает значение, совпадающее с accuracy.
Исключения
ValueError Если формы predictions и labels не совпадают, или если weights не является None и его форма не совпадает с формой predictions, или если metrics_collections либо updates_collections не является списком или кортежем.
RuntimeError Если включен eager execution.

© 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/compat/v1/metrics/accuracy

Spec-Zone.ru

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