parameters: (sp_input, name=None)
return_statement: return ops.SparseTensor(reordered_ind, reordered_val,
                            array_ops.identity(sp_input.shape))
docstring: Reorders a `SparseTensor` into the canonical, row-major ordering.
  
    Note that by convention, all sparse ops preserve the canonical ordering
    along increasing dimension number. The only time ordering can be violated
    is during manual manipulation of the indices and values to add entries.
  
    Reordering does not affect the shape of the `SparseTensor`.
  
    For example, if `sp_input` has shape `[4, 5]` and `indices` / `values`:
  
        [0, 3]: b
        [0, 1]: a
        [3, 1]: d
        [2, 0]: c
  
    then the output will be a `SparseTensor` of shape `[4, 5]` and
    `indices` / `values`:
  
        [0, 1]: a
        [0, 3]: b
        [2, 0]: c
        [3, 1]: d
  
    Args:
      sp_input: The input `SparseTensor`.
      name: A name prefix for the returned tensors (optional)
  
    Returns:
      A `SparseTensor` with the same shape and non-empty values, but in
      canonical ordering.
  
    Raises:
      TypeError: If `sp_input` is not a `SparseTensor`.
docstring_summary: Reorders a `SparseTensor` into the canonical, row-major ordering.
docstring_tokens: Reorders a SparseTensor into the canonical row - major ordering .
function: def sparse_reorder(sp_input, name=None):
    """Reorders a `SparseTensor` into the canonical, row-major ordering.
  
    Note that by convention, all sparse ops preserve the canonical ordering
    along increasing dimension number. The only time ordering can be violated
    is during manual manipulation of the indices and values to add entries.
  
    Reordering does not affect the shape of the `SparseTensor`.
  
    For example, if `sp_input` has shape `[4, 5]` and `indices` / `values`:
  
        [0, 3]: b
        [0, 1]: a
        [3, 1]: d
        [2, 0]: c
  
    then the output will be a `SparseTensor` of shape `[4, 5]` and
    `indices` / `values`:
  
        [0, 1]: a
        [0, 3]: b
        [2, 0]: c
        [3, 1]: d
  
    Args:
      sp_input: The input `SparseTensor`.
      name: A name prefix for the returned tensors (optional)
  
    Returns:
      A `SparseTensor` with the same shape and non-empty values, but in
      canonical ordering.
  
    Raises:
      TypeError: If `sp_input` is not a `SparseTensor`.
    """
    if not isinstance(sp_input, ops.SparseTensor):
      raise TypeError("Input must be a SparseTensor")
  
    reordered_ind, reordered_val = (
        gen_sparse_ops._sparse_reorder(sp_input.indices,
                                       sp_input.values,
                                       sp_input.shape,
                                       name=name))
  
    return ops.SparseTensor(reordered_ind, reordered_val,
                            array_ops.identity(sp_input.shape))
function_tokens: def sparse_reorder ( sp_input , name = None ) : if not isinstance ( sp_input , ops . SparseTensor ) : raise TypeError ( "Input must be a SparseTensor" ) reordered_ind , reordered_val = ( gen_sparse_ops . _sparse_reorder ( sp_input . indices , sp_input . values , sp_input . shape , name = name ) ) return ops . SparseTensor ( reordered_ind , reordered_val , array_ops . identity ( sp_input . shape ) )