python - 使用指标 'acc' 和 tf.keras.metrics.Accuracy() 有什么区别

标签 python tensorflow keras metrics

调用模型的编译方法时,我们可以传入指标。

为什么tf.keras.metrics.Accuracy'acc'不同?

例如,以下 2 个调用会给出不同的结果:

model.compile(optimizer=RMSprop(learning_rate=0.001),loss=tf.keras.losses.BinaryCrossentropy(),metrics=[tf.keras.metrics.Accuracy()])

对比

model.compile(optimizer=RMSprop(learning_rate=0.001),loss=tf.keras.losses.BinaryCrossentropy(),metrics=['acc'])

我注意到,当使用回调on_epoch_end时,logs字典的键针对上述两种情况发生了变化。使用tf.keras.metrics.Accuracy()将导致logs具有关键准确度,但它始终为0。但是,使用'acc ' 将生成一个 logs,其键 acc 具有预期的值。

最佳答案

进行了一些挖掘,但我相信区别在于:

accmetrics.py 底层使用了 def binary_accuracy(y_true, y_pred, Threshold=0.5)

同时

tf.keras.metrics.Accuracymetrics.py 中使用了 class Accuracy(MeanMetricWrapper)

我通过测试和检查 tensorflow's keras metrics.py file 的源代码得出了这个结论。

关于python - 使用指标 'acc' 和 tf.keras.metrics.Accuracy() 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59635474/

相关文章:

python - 属性错误 : module 'tensorflow' has no attribute 'get_default_graph' in tensorflow

python - Anaconda与Cuda 9.0的集成显示不兼容的包错误

Python无法识别命令,但CMD可以

python - 自动发送紧急/高优先级电子邮件

python - urllib2.urlopen 使用哪些注册表/环境(或其他)设置来确定代理设置?

keras - 在keras中合并层(连接)

tensorflow - 如何使 keras 模型采用(无,)张量作为输入

python - 函数 control_dependencies 有什么作用?

tensorflow - Keras 相当于 Tensorflow 的 matmul 函数

python - 为什么我的 Keras LSTM 不需要 TimeDistributed?