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'])