# What is the function in TensorFlow that is equivalent to expand() in PyTorch?

## Issue

Let’s say I have a 2 x 3 matrix and I want to create a 6 x 2 x 3 matrix where each element in the first dimension is the original 2 x 3 matrix.

In PyTorch, I can do this:

``````import torch
import numpy as np

x = np.array([[1, 2, 3], [4, 5, 6]])
x = Variable(torch.from_numpy(x))

# y is the desired result
y = x.unsqueeze(0).expand(6, 2, 3)
``````

What is the equivalent way to do this in TensorFlow? I know `unsqueeze()` is equivalent to `tf.expand_dims()` but I don’t TensorFlow has anything equivalent to `expand()`. I’m thinking of using `tf.concat` on a list of the 1 x 2 x 3 tensors but am not sure if this is the best way to do it.

## Solution

Tensorflow automatically broadcasts, so in general you don’t need to do any of this. Suppose you have a `y'` of shape 6x2x3 and your `x` is of shape `2x3`, then you can already do `y'*x` or `y'+x` will already behave as if you had expanded it. But if for some other reason you really need to do it, then the command in tensorflow is `tile`:

``````y = tf.tile(tf.reshape(x, (1,2,3)), multiples=(6,1,1))
`````` 