当我有 2 个类时,我使用 binary_crossentropy
作为 loss
值来编译模型:
model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy'])
但现在我有 5 个类,并且我没有使用热编码功能。因此,我选择“sparse_categorical_crossentropy”作为“损失”值。但准确度指标应该是 keras metric源代码表明有多个可用的准确度指标。我尝试过:
model.compile(optimizer='rmsprop', loss='sparse_categorical_crossentropy', metrics=['sparse_categorical_accuracy'])
那么它是正确的还是我应该使用categorical_accuracy
?
最佳答案
sparse_categorical_accuracy
is a correct metrics forsparse_categorical_entropy
.
但是为什么要使用sparse_categorical_entropy
?你们有什么类型的类(class)? sparse_categorical_entropy
用于整数输出。但如果您有一个one-hot-encoded目标,则应使用categorical_crossentropy
作为损失函数和准确性
或指标的categorical_accuracy
。
更新:
使用以下代码解决您的分类问题:
model.add(Dense(5, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
关于python - Keras - 应使用什么精度指标与稀疏分类交叉熵来编译模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53609697/