神经网络度量函数如何工作?

时间:2017-04-21 07:45:20

标签: keras metrics floating-accuracy recurrent-neural-network

这是keras指标函数定义:

def binary_accuracy(y_true, y_pred):
  return K.mean(K.equal(y_true, K.round(y_pred)), axis=-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())

例如,如果我的NN输出层为2个神经元,可以是: [0,1]或 [1,0]并使用metrics = binary_accuracy

当我运行我的NN进行培训时,它始终显示每个批次的一些准确值。怎么算这个?是这样的,当预测值大于0.5时 - 它是1,当该值小于0.5时 - 它是0?

1 个答案:

答案 0 :(得分:0)

正如您所知,有许多可能的方法来定义 准确度,而且一般来说很难说最佳解决方案是什么。这还取决于您以后如何使用该网络。

但是以binary_accuracy为例,它确实将舍入的预测与二进制训练数据进行了比较。现在,当输出> 0.5时,这并不意味着精度为1。这意味着当输出和训练目标之间的 <0.5时,精度为1。

用文字表示:当输出接近应有的值时,网络是准确的。