Recall

class paddle.metric. Recall ( name='recall', *args, **kwargs ) [source]

Recall (also known as sensitivity) is the fraction of relevant instances that have been retrieved over the total amount of relevant instances

Refer to: https://en.wikipedia.org/wiki/Precision_and_recall

Noted that this class manages the recall score only for binary classification task.

Parameters

name (str, optional) – String name of the metric instance. Default is recall.

Example by standalone:

import numpy as np
import paddle

x = np.array([0.1, 0.5, 0.6, 0.7])
y = np.array([1, 0, 1, 1])

m = paddle.metric.Recall()
m.update(x, y)
res = m.accumulate()
print(res) # 2.0 / 3.0

Example with Model API:

import numpy as np

import paddle
import paddle.nn as nn

class Data(paddle.io.Dataset):
    def __init__(self):
        super(Data, self).__init__()
        self.n = 1024
        self.x = np.random.randn(self.n, 10).astype('float32')
        self.y = np.random.randint(2, size=(self.n, 1)).astype('float32')

    def __getitem__(self, idx):
        return self.x[idx], self.y[idx]

    def __len__(self):
        return self.n

model = paddle.Model(nn.Sequential(
    nn.Linear(10, 1),
    nn.Sigmoid()
))
optim = paddle.optimizer.Adam(
    learning_rate=0.001, parameters=model.parameters())
model.prepare(
    optim,
    loss=nn.BCELoss(),
    metrics=[paddle.metric.Precision(), paddle.metric.Recall()])

data = Data()
model.fit(data, batch_size=16)
update ( preds, labels )

Update the states based on the current mini-batch prediction results.

Parameters
  • preds (numpy.array) – prediction results of current mini-batch, the output of two-class sigmoid function. Shape: [batch_size, 1]. Dtype: ‘float64’ or ‘float32’.

  • labels (numpy.array) – ground truth (labels) of current mini-batch, the shape should keep the same as preds. Shape: [batch_size, 1], Dtype: ‘int32’ or ‘int64’.

accumulate ( )

Calculate the final recall.

Returns

results of the calculated Recall.

Return type

A scaler float

reset ( )

Resets all of the metric state.

name ( )

Returns metric name

compute ( *args )

This API is advanced usage to accelerate metric calculating, calulations from outputs of model to the states which should be updated by Metric can be defined here, where Paddle OPs is also supported. Outputs of this API will be the inputs of “Metric.update”.

If compute is defined, it will be called with outputs of model and labels from data as arguments, all outputs and labels will be concatenated and flatten and each filed as a separate argument as follows: compute(output1, output2, ..., label1, label2,...)

If compute is not defined, default behaviour is to pass input to output, so output format will be: return output1, output2, ..., label1, label2,...

see Metric.update