#python #tensorflow #classification #mnist #entropy
#python #tensorflow #классификация #mnist #энтропия
Вопрос:
То, что я пытаюсь сделать, — это вычислить энтропию точности моей классификации. Я обучил модель и позволил ей делать прогнозы для тестовых данных 10 раз (они меняются, поскольку я каждый раз немного меняю модель). Тестовые данные представляют собой 1000 изображений из mnist, и поскольку mnist имеет 10 классов, я получаю массив со следующими размерами: (10, 1000, 10)
Далее я вычислил среднее значение для первого измерения, чтобы получить среднее значение всех моих прогнозов: (1000, 10)
Сейчас меня интересует энтропия каждого класса, поэтому я вычислил :
np.sum((-1) * data * log(data), 0)
Я получил источник здесь: https://arxiv.org/pdf/1703.02910.pdf
Проблема в том, что мое значение энтропии не находится между 0 и 1, и в итоге я получаю значения около 50 или более. Я видел, что многие люди раньше подсчитывали свои данные и делили их на результат, чтобы получить вхождения каждого значения. Это меня смущает, поскольку у меня есть значения типа 0,01445, которые, как правило, не повторяются. У меня уже есть десять классов, заданных положением значения внутри массива (последнее измерение 10 классов mnist).
Я просто хочу увидеть энтропию для каждого класса.
Я надеюсь, что вы сможете помочь
Комментарии:
1. Вы можете вычислить категориальную кроссэнтропию, используя
tf.keras.losses.CategoricalCrossentropy
, когда существует более двух классов меток. Более подробную информацию о библиотеке можно найти здесь . Спасибо!