function unique_(x, axis = 0) {
    const $x = (0, _tensorUtilEnv.convertToTensor)(x, "x", "unique", "string_or_numeric");
    (0, _util.assert)($x.rank > 0, ()=>"The input tensor must be at least 1D");
    const inputs = {
        x: $x
    };
    const attrs = {
        axis
    };
    const [values, indices] = (0, _engine.ENGINE).runKernel((0, _kernelNames.Unique), inputs, attrs);
    return {
        values,
        indices
    };
}
Finds unique elements along an axis of a tensor.

It returns a tensor `values` containing all of the unique elements along the
`axis` of the given tensor `x` in the same order that they occur along the
`axis` in `x`; `x` does not need to be sorted. It also returns a tensor
`indices` the same size as the number of the elements in `x` along the `axis`
dimension. It contains the index in the unique output `values`.

```js
// A 1-D tensor
const a = tf.tensor1d([1, 1, 2, 4, 4, 4, 7, 8, 8]);
const {values, indices} = tf.unique(a);
values.print();   // [1, 2, 4, 7, 8,]
indices.print();  // [0, 0, 1, 2, 2, 2, 3, 4, 4]
```

```js
// A 2-D tensor with axis=0
//
// 'a' is: [[1, 0, 0],
//          [1, 0, 0],
//          [2, 0, 0]]
const a = tf.tensor2d([[1, 0, 0], [1, 0, 0], [2, 0, 0]]);
const {values, indices} = tf.unique(a, 0)
values.print();   // [[1, 0, 0],
                  //  [2, 0, 0]]
indices.print();  // [0, 0, 1]
```

```js
// A 2-D tensor with axis=1
//
// 'a' is: [[1, 0, 0],
//          [1, 0, 0],
//          [2, 0, 0]]
const a = tf.tensor2d([[1, 0, 0], [1, 0, 0], [2, 0, 0]]);
const {values, indices} = tf.unique(a, 1)
values.print();   // [[1, 0],
                  //  [1, 0],
                  //  [2, 0]]
indices.print();  // [0, 1, 1]
```
@param x A tensor (int32, string, bool).
@param axis The axis of the tensor to find the unique elements.
@returns [uniqueElements, indices] (see above for details)

@doc {heading: 'Operations', subheading: 'Evaluation'}