gpt4 book ai didi

python - 当使用 metrics= ['accuracy' ] 时,Keras 使用了什么精度函数?

转载 作者:太空宇宙 更新时间:2023-11-04 09:38:54 25 4
gpt4 key购买 nike

我想知道在使用 metrics=['accuracy'] 时使用的精度函数是什么:

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

我看到了keras/metrics.py文件。该文件中有 some_accuracy 函数。但是我找不到accuracy。我在哪里可以看到源代码及其工作原理?

最佳答案

适当的精度函数is inferred automatically from the loss function你用过。正如您所提到的,精度函数已在 metric.py 中定义。文件:

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())


def sparse_categorical_accuracy(y_true, y_pred):
# flatten y_true in case it's in shape (num_samples, 1) instead of (num_samples,)
return K.cast(K.equal(K.flatten(y_true),
K.cast(K.argmax(y_pred, axis=-1), K.floatx())),
K.floatx())
  • binary_accuracy 当模型输出的最后一个轴的维度等于一(即 (..., 1))或binary_crossentropy 用作损失。

  • sparse_categorical_accuracy 在使用sparse_categorical_crossentropy 作为损失函数时使用。

  • 最后,当 categorical_crossentropy 被设置为损失函数时,使用 categorical_accuracy

另请注意,accuracy 指标仅对分类任务有效。因此,如果您使用 accuarcy 作为回归任务中的指标,则报告的指标值可能根本无效。

此外,还有另外两个内置精度函数:

def top_k_categorical_accuracy(y_true, y_pred, k=5):
return K.mean(K.in_top_k(y_pred, K.argmax(y_true, axis=-1), k), axis=-1)


def sparse_top_k_categorical_accuracy(y_true, y_pred, k=5):
return K.mean(K.in_top_k(y_pred, K.cast(K.max(y_true, axis=-1), 'int32'), k), axis=-1)

要使用它们,您需要将它们的名称显式传递给 metrics 参数,即 metrics=['top_k_categorical_accuracy']metrics=['sparse_top_k_categorical_accuracy' ]

关于python - 当使用 metrics= ['accuracy' ] 时,Keras 使用了什么精度函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52453079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com