function tile_(x, reps) {
    const $x = (0, _tensorUtilEnv.convertToTensor)(x, "x", "tile", "string_or_numeric");
    _util.assert($x.rank === reps.length, ()=>`Error in transpose: rank of input ${$x.rank} ` + `must match length of reps ${reps}.`);
    const inputs = {
        x: $x
    };
    const attrs = {
        reps
    };
    return (0, _engine.ENGINE).runKernel((0, _kernelNames.Tile), inputs, attrs);
}
Construct a tensor by repeating it the number of times given by reps.

This operation creates a new tensor by replicating `input` `reps`
times. The output tensor's `i`th dimension has `input.shape[i] *
reps[i]` elements, and the values of `input` are replicated
`reps[i]` times along the `i`th dimension. For example, tiling
`[a, b, c, d]` by `[2]` produces `[a, b, c, d, a, b, c, d]`.

```js
const a = tf.tensor1d([1, 2]);

a.tile([2]).print();    // or tf.tile(a, [2])
```

```js
const a = tf.tensor2d([1, 2, 3, 4], [2, 2]);

a.tile([1, 2]).print();  // or tf.tile(a, [1,2])
```
@param x The tensor to tile.
@param reps Determines the number of replications per dimension.

@doc {heading: 'Tensors', subheading: 'Slicing and Joining'}