Keras-应该使用什么精度度量以及sparse_categorical_crossentropy来编译模型

时间:2018-12-04 09:33:44

标签: python tensorflow keras cross-entropy

当我有2个类时,我使用binary_crossentropy作为loss的值来编译模型:

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

但是现在我有5个类,并且我没有在热编码功能上使用。因此,我选择sparse_categorical_crossentropy作为loss的值。但是准确度指标应该是什么,如keras metric源代码建议存在多个可用的准确度指标。我尝试过:

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

那是正确的还是我应该只使用categorical_accuracy

1 个答案:

答案 0 :(得分:0)

  

sparse_categorical_accuracy是正确的指标   sparse_categorical_entropy

但是为什么要使用sparse_categorical_entropy?你有什么课程? sparse_categorical_entropy用于整数输出。但是,如果您有一个单编码目标,则应使用categorical_crossentropy作为损失函数,并使用accuracycategorical_accuracy 指标


更新:
使用以下代码解决您的分类问题:

model.add(Dense(5, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])