Keras - какую метрику точности следует использовать вместе с sparse_categorical_crossentropy для компиляции модели

Когда у меня есть 2 класса, я использовал binary_crossentropy как loss значение как это, чтобы скомпилировать модель:

model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy'])

Но сейчас у меня есть 5 классов, и я не использую горячо закодированные функции. Поэтому я выбираю sparse_categorical_crossentropy как loss значение. Но какой должна быть метрика точности, поскольку исходный код метрики keras предполагает наличие нескольких метрик точности. Я старался:

model.compile(optimizer='rmsprop', loss='sparse_categorical_crossentropy', metrics=['sparse_categorical_accuracy'])

Так это правильно или я должен просто использовать categorical_accuracy?

1 ответ

sparse_categorical_accuracy правильная метрика для sparse_categorical_entropy,

Но почему вы используете sparse_categorical_entropy? Какие у вас занятия? sparse_categorical_entropy используется для целочисленных выходов. Но если у вас есть цель с горячим кодированием, вы должны использовать categorical_crossentropy как функция потерь и accuracy или же categorical_accuracy для метрики.


ОБНОВИТЬ:
Используйте следующий код для вашей проблемы классификации:

model.add(Dense(5, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
Другие вопросы по тегам