function tile_(x, reps) {
	  var $x = convertToTensor(x, 'x', 'tile', 'string_or_numeric');
	  assert($x.rank === reps.length, function () {
	    return "Error in transpose: rank of input " + $x.rank + " " + ("must match length of reps " + reps + ".");
	  });
	  var inputs = {
	    x: $x
	  };
	  var attrs = {
	    reps: reps
	  };
	  return ENGINE.runKernel(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 a.tile([2])
```

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

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

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