Accuracy

class paddle.fluid.metrics. Accuracy ( name=None ) [源代码]

该接口用来计算多个mini-batch的平均准确率。Accuracy对象有两个状态value和weight。Accuracy的定义参照 https://en.wikipedia.org/wiki/Accuracy_and_precision

参数

  • name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。

返回

初始化后的 Accuracy 对象

返回类型

Accuracy

代码示例

import paddle.fluid as fluid
#suppose we have batch_size = 128
batch_size=128
accuracy_manager = fluid.metrics.Accuracy()

#suppose the accuracy is 0.9 for the 1st batch
batch1_acc = 0.9
accuracy_manager.update(value = batch1_acc, weight = batch_size)
print("expect accuracy: %.2f, get accuracy: %.2f" % (batch1_acc, accuracy_manager.eval()))

#suppose the accuracy is 0.8 for the 2nd batch
batch2_acc = 0.8

accuracy_manager.update(value = batch2_acc, weight = batch_size)
#the joint acc for batch1 and batch2 is (batch1_acc * batch_size + batch2_acc * batch_size) / batch_size / 2
print("expect accuracy: %.2f, get accuracy: %.2f" % ((batch1_acc * batch_size + batch2_acc * batch_size) / batch_size / 2, accuracy_manager.eval()))

#reset the accuracy_manager
accuracy_manager.reset()
#suppose the accuracy is 0.8 for the 3rd batch
batch3_acc = 0.8
accuracy_manager.update(value = batch3_acc, weight = batch_size)
print("expect accuracy: %.2f, get accuracy: %.2f" % (batch3_acc, accuracy_manager.eval()))

方法

update(value, weight)

该函数使用输入的(value, weight)来累计更新Accuracy对象的对应状态,更新方式如下:

\[\begin{split}\\ \begin{array}{l}{\text { self. value }+=\text { value } * \text { weight }} \\ {\text { self. weight }+=\text { weight }}\end{array} \\\end{split}\]

参数

  • value (float|numpy.array) – mini-batch的正确率

  • weight (int|float) – mini-batch的大小

返回

eval()

该函数计算并返回累计的mini-batches的平均准确率。

返回 累计的mini-batches的平均准确率

返回类型 float或numpy.array