topk¶
- paddle. topk ( x, k, axis=None, largest=True, sorted=True, name=None ) [source]
-
Return values and indices of the k largest or smallest at the optional axis. If the input is a 1-D Tensor, finds the k largest or smallest values and indices. If the input is a Tensor with higher rank, this operator computes the top k values and indices along the
axis
.- Parameters
-
x (Tensor) – Tensor, an input N-D Tensor with type float32, float64, int32, int64.
k (int, Tensor) – The number of top elements to look for along the axis.
axis (int, optional) – Axis to compute indices along. The effective range is [-R, R), where R is x.ndim. when axis < 0, it works the same way as axis + R. Default is -1.
largest (bool, optional) – largest is a flag, if set to true, algorithm will sort by descending order, otherwise sort by ascending order. Default is True.
sorted (bool, optional) – controls whether to return the elements in sorted order, default value is True. In gpu device, it always return the sorted value.
name (str, optional) – Name for the operation (optional, default is None). For more information, please refer to Name.
- Returns
-
tuple(Tensor), return the values and indices. The value data type is the same as the input x. The indices data type is int64.
Examples
import paddle data_1 = paddle.to_tensor([1, 4, 5, 7]) value_1, indices_1 = paddle.topk(data_1, k=1) print(value_1) # [7] print(indices_1) # [3] data_2 = paddle.to_tensor([[1, 4, 5, 7], [2, 6, 2, 5]]) value_2, indices_2 = paddle.topk(data_2, k=1) print(value_2) # [[7], [6]] print(indices_2) # [[3], [1]] value_3, indices_3 = paddle.topk(data_2, k=1, axis=-1) print(value_3) # [[7], [6]] print(indices_3) # [[3], [1]] value_4, indices_4 = paddle.topk(data_2, k=1, axis=0) print(value_4) # [[2, 6, 5, 7]] print(indices_4) # [[1, 1, 0, 0]]