tensorflow 里metrics_深入理解TensorFlow中的tf.metrics算子

本文深入探讨了如何在TensorFlow中理解和使用`tf.metrics`,通过实例展示了手动计算与使用`tf.metrics.accuracy`计算整体和每个batch的准确率,并提醒了在使用过程中的注意事项。文章还提及了其他评估指标的使用方式,强调了`tf.metrics`设计的初衷是为了在模型评估时收集和计算整体指标。
摘要由CSDN通过智能技术生成

import numpy as np

labels = np.array([[1,1,1,0],

[1,1,1,0],

[1,1,1,0],

[1,1,1,0]], dtype=np.uint8)

predictions = np.array([[1,0,0,0],

[1,1,0,0],

[1,1,1,0],

[0,1,1,1]], dtype=np.uint8)

n_batches = len(labels)

04 建立评价指标

为了简单起见,这里采用的评估指标是准确度(accuracy):

如果我们想计算整个数据集上的accuracy,可以这样计算:

n_items = labels.size

accuracy = (labels ==  predictions).sum() / n_items

print("Accuracy :", accuracy)

[OUTPUT]

Accuracy : 0.6875

这种方法的问题在于它不能扩展到大型数据集,这些数据集太大而无法一次性加载到内存。为了使其可扩展,我们希望使评估指标能够逐步更新,每次更新一个batch中预测值和标签。为此,我们需要跟踪两个值:

正确预测的例子总和

目前所有例子的总数

在Python中,我们创建两个全局变量:

# Initialize running variables

N_CORRECT = 0

N_ITEMS_SEEN = 0

每次新来一个batch,我们将这个batch中的预测情况更新到这两个变量中:

# Update running variables

N_CORRECT += (batch_labels == batch_predictions).sum()

N_ITEMS_SEEN += batch_labels.size

而且,我们可以实时地计算每个点处的accuracy:

# Calculate accuracy on updated values

acc = float(N_CORRECT) / N_ITEMS_SEEN

合并前面的功能,我们创建如下的代码:

# Create running variables

N_CORRECT = 0

N_ITEMS_SEEN = 0

def reset_running_variables():

""" Resets the previous v

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值