chainerx.accuracy

chainerx.accuracy(y, t, ignore_label=None)

Computes multiclass classification accuracy of the minibatch.

Parameters
  • y (ndarray) – Array whose (i, j, k, …)-th element indicates the score of the class j at the (i, k, …)-th sample. The prediction label \(\hat t\) is calculated by the formula \(\hat t(i, k, ...) = \operatorname{\mathrm{argmax}}_j y(i, j, k, ...)\).

  • t (ndarray) – Array of ground truth labels.

  • ignore_label (int or None) – Skip calculating accuracy if the true label is ignore_label.

Returns

A variable holding a scalar array of the accuracy.

Return type

ndarray()

Note

This function is non-differentiable.

Example

We show the most common case, when y is the two dimensional array.

>>> y = chainerx.array([[0.1, 0.7, 0.2], # prediction label is 1
...                     [8.0, 1.0, 2.0], # prediction label is 0
...                     [-8.0, 1.0, 2.0], # prediction label is 2
...                     [-8.0, -1.0, -2.0]]) # prediction label is 1
>>> t = chainerx.array([1, 0, 2, 1], chainerx.int32)
>>> chainerx.accuracy(y, t) # 100% accuracy because all samples are correct
array(1., shape=(), dtype=float64, device='native:0')
>>> t = chainerx.array([1, 0, 0, 0], chainerx.int32)
>>> chainerx.accuracy(y, t) # 50% accuracy because 1st and 2nd samples are correct
array(0.5, shape=(), dtype=float64, device='native:0')
>>> chainerx.accuracy(y, t, ignore_label=0) # 100% accuracy because of ignoring the 2nd, 3rd and 4th samples.
array(1., shape=(), dtype=float64, device='native:0')