[ 参数不一致 ]torch.topk

torch.topk

torch.topk(input,
           k,
           dim=None,
           largest=True,
           sorted=True,
           *,
           out=None)

paddle.topk

paddle.topk(x,
            k,
            axis=None,
            largest=True,
            sorted=True,
            name=None)

Pytorch 相比 Paddle 支持更多其他参数,同时两个 api 的返回参数类型不同,具体如下:

参数映射

| PyTorch | PaddlePaddle | 备注 | | ————- | ———— | —————————————————— | | input | x | 输入的 Tensor ,仅参数名不一致。 | | k | k | 在指定的轴上进行 top 寻找的数量, 参数名相同。 | | dim | axis | 指定对输入 Tensor 进行运算的轴。默认值为-1, 仅参数名不一致。| | largest | largest | 指定算法排序的方向。如果设置为 True,算法按照降序排序,否则按照升序排序。默认值为 True,参数名相同。 | | sorted | sorted | 控制返回的结果是否按照有序返回,默认为 True。在 GPU 上总是返回有序的结果。参数名相同。 | | out | - | 表示以(Tensor, LongTensor)输出的元组,含义是查找 topk 后的返回值和对应元素的索引。Paddle 无此参数,需要转写。 |

注:Pytorch 返回 (Tensor, LongTensor),Paddle 返回 (Tensor, int64)。

转写示例

out:指定输出

# Pytorch 写法
torch.topk(input, k=1, dim=-1, out = (y, indices))

# Paddle 写法
y, indices = paddle.topk(input, k=1, axis=-1)
indices = paddle.to_tensor(indices)