Как рассчитать точность при работе с многоклассовой многоуровневой классификацией в тензорном потоке? - PullRequest
0 голосов
/ 18 октября 2018

Я работаю с набором данных FER2013Plus из https://github.com/Microsoft/FERPlus, который содержит файл fer2013new.csv.Этот файл содержит метки для каждого изображения в наборе данных.Примером надписей может быть:

(4, 0, 0, 2, 1, 0, 0, 3)

, где каждое измерение - это отдельная эмоция.Наконец, в своей статье https://arxiv.org/pdf/1608.01041.pdf, они преобразовали распределение меток в вероятности => новая метка станет

(0,5, 0, 0, 0,25, 0,125, 0, 0, 0,375)

Другими словами, человек на изображении счастлив с вероятностью 0,5, грустно с вероятностью 0,25 и так далее ... И сумма вероятностей равна 1.

Теперь во время тренировкиЯ использовал tf.nn.softmax_cross_entropy_with_logits_v2, чтобы вычислить потери между моими прогнозами и метками.Теперь, как вычислить точность?

Любая помощь очень ценится !!

1 Ответ

0 голосов
/ 18 октября 2018

Вот выдержка из статьи:

«Мы воспринимаем эмоции большинства как метку одной эмоции и измеряем точность предсказания по отношению к эмоциям большинства».

Они используютзадача дискретной классификации.Так что вам просто нужно взять tf.argmax() в логах, чтобы получить наибольшую вероятность, а затем сравнить ее с tf.argmax() меток.

Например, если ваша метка (0.5, 0, 0, 0.25, 0.125, 0, 0, 0.375), тоСчастье - это эмоция большинства, поэтому вы должны проверить, были ли ваши логиты счастливыми, как эмоция большинства.

...