tf.contrib.metrics.streaming_sparse_precision_at_top_k
Вычисляет точность@k для предсказаний вверху-k относительно разреженных меток.
tf.contrib.metrics.streaming_sparse_precision_at_top_k(
top_k_predictions, labels, class_id=None, weights=None,
metrics_collections=None, updates_collections=None, name=None
)
Если class_id не указано, мы вычисляем точность как отношение истинных положительных результатов (т.е. корректных предсказаний, элементов в top_k_predictions, которые находятся в соответствующей строке в labels) к положительным результатам (все top_k_predictions). Если class_id указано, мы вычисляем точность, учитывая только строки в пакете, для которых class_id находится в топ-k самых высоких predictions, и вычисляем долю таких строк, для которых class_id находится в соответствующей строке в labels.
Ожидается, что точность будет уменьшаться по мере увеличения k.
streaming_sparse_precision_at_top_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_predictions и labels, вычисляют истинные положительные и ложные положительные результаты, взвешенные весами weights. Затем update_op увеличивает true_positive_at_k и false_positive_at_k с использованием этих значений.
Если weights равно None, веса по умолчанию равны 1. Используйте веса 0 для маскирования значений.
| Аргументы | |
|---|---|
top_k_predictions | Целое число Tensor с формой [D1, ... DN, k], где N >= 1. Обычно N=1 и top_k_predictions имеет форму [размер пакета, k]. Последнее измерение содержит индексы top-k меток. [D1, ... DN] должно соответствовать labels. |
labels | Целочисленный int64 Tensor или SparseTensor с формой [D1, ... DN, num_labels], где N >= 1 и num_labels — количество целевых классов для соответствующего предсказания. Обычно N=1 и labels имеет форму [размер_пакета, num_labels]. [D1, ... DN] должно соответствовать top_k_predictions. Значения должны быть в диапазоне [0, num_classes), где num_classes — последнее измерение predictions. Значения за пределами этого диапазона игнорируются. |
class_id | Целочисленный идентификатор класса, для которого мы хотим получить бинарные метрики. Он должен находиться в диапазоне [0, num_classes), где num_classes — последнее измерение predictions. Если class_id находится вне этого диапазона, метод возвращает NAN. |
weights | Tensor, ранг которого равен либо 0, либо n-1, где n — ранг labels. Если n-1, он должен быть совместим с labels (т.е. все измерения должны быть либо 1, либо совпадать с соответствующим измерением 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 не являются списком или кортежем. |
ValueError | Если top_k_predictions имеет ранг < 2. |
© 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/r1.15/api_docs/python/tf/contrib/metrics/streaming_sparse_precision_at_top_k