tf.compat.v1.metrics.precision_at_k
Вычисляет точность@k предсказаний относительно разрозненных меток.
tf.compat.v1.metrics.precision_at_k(
labels, predictions, k, class_id=None, weights=None, metrics_collections=None,
updates_collections=None, name=None
)
Если class_id указано, мы вычисляем точность, учитывая только записи в пакете, для которых class_id находится в числе k наибольших predictions, и вычисляем долю таких записей, для которых class_id действительно является правильной меткой. Если class_id не указано, мы вычислим точность, как часто в среднем среди k классов с самыми высокими предсказанными значениями для записи в пакете правильный класс содержится в метке для этой записи.
precision_at_k создает две локальные переменные, true_positive_at_<k> и false_positive_at_<k>, которые используются для вычисления частоты точности@k. Эта частота в конечном итоге возвращается как precision_at_<k>: идемпотентная операция, которая просто делит true_positive_at_<k> на сумму true_positive_at_<k> и false_positive_at_<k>.
Для оценки метрики по потоку данных функция создает операцию update_op, которая обновляет эти переменные и возвращает precision_at_<k>. Внутренне, операция top_k вычисляет операцию Tensor, указывающую на k наибольших k predictions. Операции над множествами, применённые к top_k и labels, вычисляют истинные положительные и ложные положительные значения, взвешенные по weights. Затем update_op увеличивает true_positive_at_<k> и false_positive_at_<k> с использованием этих значений.
Если weights равно None, веса по умолчанию равны 1. Используйте веса 0, чтобы замаскировать значения.
| Аргументы | |
|---|---|
labels | int64 Tensor или SparseTensor с формой [D1, ... DN, num_labels] или [D1, ... DN], где последнее подразумевает num_labels=1. N >= 1, а num_labels — количество целевых классов для соответствующего прогноза. Обычно N=1, и labels имеет форму [размер_пакета, num_labels]. [D1, ... DN] должны соответствовать predictions. Значения должны находиться в диапазоне [0, num_classes), где num_classes — последняя размерность predictions. Значения вне этого диапазона игнорируются. |
predictions | Вещественное значение Tensor с формой [D1, ... DN, num_classes], где N >= 1. Обычно N=1, и предсказания имеют форму [размер_пакета, num_classes]. Последняя размерность содержит значения лог-вероятностей для каждого класса. [D1, ... DN] должны соответствовать labels. |
k | Целое число, k для метрики @k. |
class_id | Целое число, идентификатор класса, для которого мы хотим бинарные метрики. Он должен находиться в диапазоне [0, num_classes], где num_classes — последняя размерность predictions. Если class_id выходит за пределы этого диапазона, метод возвращает NaN. |
weights | Tensor ранг которого равен либо 0, либо n-1, где n — ранг labels. В последнем случае он должен быть совместим по трансляции с labels (то есть все измерения должны быть либо одинаковыми, либо такими же, как соответствующее измерение labels). |
metrics_collections | Необязательный список коллекций, в которые должны быть добавлены значения. |
updates_collections | Необязательный список коллекций, в которые должны быть добавлены обновления. |
name | Имя новой операции обновления и пространство имён для других зависимых операций. |
| Возвращаемые значения | |
|---|---|
precision | Скалярное значение float64 Tensor с значением true_positives, делённым на сумму true_positives и false_positives. |
update_op | Операция Operation, которая надлежащим образом увеличивает переменные true_positives и false_positives и значение которой соответствует precision. |
| Исключения | |
|---|---|
ValueError | Если weights не равно None и его форма не соответствует predictions, или если metrics_collections или updates_collections не являются списком или кортежем. |
RuntimeError | Если включено выполнение в режиме eager. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/compat/v1/metrics/precision_at_k