topk

    此OP用于查找输入Tensor的最后一维的前k个最大项,返回它们的值和索引。 如果输入是1-D Tensor,则找到Tensor的前k个最大项,并输出前k个最大项的值和索引。如果输入是更高阶的Tensor,则该OP会基于最后一维计算前k项。

    • 例1:

    参数:

    • input (Variable) - 输入的Tensor,支持的数据类型: float32,float64。

    • name (str, 可选) - 具体用法请参见 Name ,一般无需设置,默认值为None。

    返回:

    • values: 输入Tensor最后维切片的最大前k项。数据类型同输入Tensor一致。Tensor维度等于

    • indices: 输入Tensor最后维切片最大前k项值的索引,数据类型为int64,维度同values的维度。

    抛出异常:

    1. import paddle.fluid as fluid
    2. input = layers.data(name="input", shape=[13, 11], dtype='float32')
    3. top5_values, top5_indices = layers.topk(input, k=5) #top5_values.shape=[13, 5],top5_indices.shape=[13, 5]
    4. # 1D Tensor
    5. top5_values, top5_indices = layers.topk(input1, k=5) #top5_values.shape=[5],top5_indices.shape=[5]
    6. # k=Variable
    7. input2 = layers.data(name="input2", shape=[13, 11], dtype='float32')
    8. vk_values, vk_indices = layers.topk(input2, k=vk) #vk_values.shape=[13, k],vk_indices.shape=[13, k]