tensorflow2中keras.metrics的Accuracy和Mean的用法


1、tf.keras.metrics.Accuracy函数说明:

计算预测与真实值的准确度。

用法:

tf.keras.metrics.Accuracy
(
    name='accuracy',
    dtype=None
)

例如,如果y_true为[1、2、3、4],而y_pred为[0、2、3、4],则精度为3/4.75 。如果将权重指定为 [1、1、0、0] ,则精度将为1/2.5 ,权重0是用来屏蔽的。

update_state
(
    y_true,
    y_pred,
    sample_weight=None
)

示例:

import tensorflow as tf

m = tf.keras.metrics.Accuracy()
m.update_state([1, 2, 3, 4], [0, 2, 3, 4])
# Out[4]: <tf.Variable 'UnreadVariable' shape=() dtype=float32, numpy=4.0>
m.result().numpy()
# Out[5]: 0.75
m.reset_states()

m.update_state([1, 2, 3, 4], [0, 2, 3, 4], sample_weight = [1, 1, 0, 0])
# Out[7]: <tf.Variable 'UnreadVariable' shape=() dtype=float32, numpy=2.0>
m.result().numpy()
# Out[8]: 0.5

2、tf.keras.metrics.Mean函数说明

计算给定值的(加权)平均值。
用法:

tf.keras.metrics.Mean
(
    name='mean',
    dtype=None
)

例如,如果值为[1、3、5、7],则平均值为4。如果权重指定为[1、1、0、0],则平均值为2。

示例:

m = tf.keras.metrics.Mean()
m.update_state([1, 3, 5, 7])
# Out[10]: <tf.Variable 'UnreadVariable' shape=() dtype=float32, numpy=4.0>
m.result().numpy()
# Out[11]: 4.0
m.reset_states()

m.update_state([1, 3, 5, 7], sample_weight=[1, 1, 0, 0])
# Out[13]: <tf.Variable 'UnreadVariable' shape=() dtype=float32, numpy=2.0>
m.result().numpy()
# Out[14]: 2.0

3、使用步骤总结

用法的流程:

1、 新建一个metric

2、 更新数据update_state

3、 取出数据result().numpy()

4、 重置清零数据reset_states

步骤1,新建一个meter

acc_meter = metrics.Accuracy()   # 新建一个准确度的meter
loss_meter = metrics.mean()    # 求平均值

步骤2,向meter中添加数据

loss_meter.update_state(loss)
acc_meter.update_state(y_true, y_pred)

注: 在acc_meter.update_state(y, pred) 中添加的不是一个实时的Accuracy,它是一个专门计算Accuracy 的meter,只需要传递真实的y和预测的y(pred),它会自动的计算Accuracy,并保存。

步骤3,取出数据

print(loss_meter.result().numpy())
...
print('Evaluate Acc:', total_correct/total, acc_meter.result().numpy())

loss_meter.result() 会得到一个tensor的数据,再使用.numpy将它转化为numpy的数据

步骤4,清除缓存meter

loss_meter.reset_states()
...
acc_meter.reset_states()
  • 14
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值