accuracy¶
- paddle.static. accuracy ( input, label, k=1, correct=None, total=None ) [source]
-
accuracy layer. Refer to the https://en.wikipedia.org/wiki/Precision_and_recall This function computes the accuracy using the input and label. If the correct label occurs in top k predictions, then correct will increment by one.
Note
the dtype of accuracy is determined by input. the input and label dtype can be different.
- Parameters
-
input (Tensor) – The input of accuracy layer, which is the predictions of network. A Tensor with type float32,float64. The shape is
[sample_number, class_dim]
.label (Tensor) – The label of dataset. Tensor with type int32,int64. The shape is
[sample_number, 1]
.k (int, optional) – The top k predictions for each class will be checked. Data type is int64 or int32. Default is 1.
correct (Tensor, optional) – The correct predictions count. A Tensor with type int64 or int32. Default is None.
total (Tensor, optional) – The total entries count. A tensor with type int64 or int32. Default is None.
- Returns
-
Tensor, The correct rate. A Tensor with type float32.
Examples
>>> import numpy as np >>> import paddle >>> import paddle.static as static >>> import paddle.nn.functional as F >>> paddle.seed(2023) >>> paddle.enable_static() >>> data = static.data(name="input", shape=[-1, 32, 32], dtype="float32") >>> label = static.data(name="label", shape=[-1,1], dtype="int") >>> fc_out = static.nn.fc(x=data, size=10) >>> predict = F.softmax(x=fc_out) >>> result = static.accuracy(input=predict, label=label, k=5) >>> place = paddle.CPUPlace() >>> exe = static.Executor(place) >>> exe.run(static.default_startup_program()) >>> np.random.seed(1107) >>> x = np.random.rand(3, 32, 32).astype("float32") >>> y = np.array([[1],[0],[1]]) >>> output = exe.run(feed={"input": x,"label": y}, ... fetch_list=[result]) >>> print(output) [array(0.33333334, dtype=float32)]