Finds values and indices of the k largest elements for the last dimension.

    input, k, sorted=True, name=None

If the input is a vector (rank-1), finds the k largest entries in the vector and outputs their values and indices as vectors. Thus values[j] is the j-th largest entry in input, and its index is indices[j].

For matrices (resp. higher rank input), computes the top k entries in each row (resp. vector along the last dimension). Thus,

values.shape = indices.shape = input.shape[:-1] + [k]

If two elements are equal, the lower-index element appears first.

If k varies dynamically, use TopKV2 below.


  • input: A Tensor. Must be one of the following types: float32, float64, int32, uint8, int16, int8, int64, bfloat16, uint16, half, uint32, uint64. 1-D or higher with last dimension at least k.
  • k: An int that is >= 0. Number of top elements to look for along the last dimension (along each row for matrices).
  • sorted: An optional bool. Defaults to True. If true the resulting k elements will be sorted by the values in descending order.
  • name: A name for the operation (optional).


A tuple of Tensor objects (values, indices).

  • values: A Tensor. Has the same type as input.
  • indices: A Tensor of type int32.