Keras-categorical_accuracy和sparse_categorical_accuracy之间的区别
classification
deep-learning
keras
neural-network
6
0

sparse_categorical_accuracy中的categorical_accuracysparse_categorical_accuracy什么区别?在文档中没有关于这些指标的提示,通过询问Google博士,我也没有找到答案。

源代码可以在这里找到:

def categorical_accuracy(y_true, y_pred):
    return K.cast(K.equal(K.argmax(y_true, axis=-1),
                          K.argmax(y_pred, axis=-1)),
                  K.floatx())


def sparse_categorical_accuracy(y_true, y_pred):
    return K.cast(K.equal(K.max(y_true, axis=-1),
                          K.cast(K.argmax(y_pred, axis=-1), K.floatx())),
                  K.floatx())
参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

因此,在categorical_accuracy您需要将目标( y )指定为一热编码向量(例如,在3个类的情况下,当真实类为第二类时, y应该为(0, 1, 0) sparse_categorical_accuracy (0, 1, 0) 。在sparse_categorical_accuracy您应该仅提供真实类的整数(在前面的示例中,由于类索引基于0因此它将为1 )。

收藏
评论

源头

def categorical_accuracy(y_true, y_pred):
    return K.cast(K.equal(K.argmax(y_true, axis=-1),
                          K.argmax(y_pred, axis=-1)),
                  K.floatx())


def sparse_categorical_accuracy(y_true, y_pred):
    return K.cast(K.equal(K.max(y_true, axis=-1),
                          K.cast(K.argmax(y_pred, axis=-1), K.floatx())),
K.floatx())

categorical_accuracy检查是否最大真值的索引等于最大预测值的索引

sparse_categorical_accuracy检查最大真实值是否等于最大预测值的索引

从上面的Marcin的答案来看, categorical_accuracy对应于y_trueone-hot编码矢量。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号