Insert a dimension of 1 into a tensor’s shape
Aliases:
tf.expand_dims(
input,
axis,
name = None
)
Used in the tutorials:
Given a tensor input, this operation insert a dimension of 1 at the dimension index axis of the input’s shape. This dimension index axis starts at zero; if you specify a negative number for axis it is counted backward from the end.
This operation is useful if you want to add a batch dimension to a single element. For example, if you have a single image of shape [height, width, channels], you can make it a batch of 1 image with expand_dims(image, 0) which will make the shape [1, height, width, channels].
Other examples:
t = tf.constant([1, 2])
t2 = tf.constant(np.arange(30).reshape(2, 3, 5))
# 't' is a tensor of shape [2]
print(tf.shape(tf.expand_dims(t, 0))) # [1, 2]
print(tf.shape(tf.expand_dims(t, 1))) # [2, 1]
print(tf.shape(tf.expand_dims(t, -1))) # [2, 1]
# 't2' is a tensor of shape [2, 3, 5]
print(tf.shape(tf.expand_dims(t2, 0))) # [1, 2, 3, 5]
print(tf.shape(tf.expand_dims(t2, 2))) # [2 , 3, 1, 5]
print(tf.shape(tf.expand_dims(t2, 3))) # [2, 3, 5, 1]
Result
tf.Tensor([1 2], shape=(2,), dtype=int32)
tf.Tensor([2 1], shape=(2,), dtype=int32)
tf.Tensor([2 1], shape=(2,), dtype=int32)
tf.Tensor([1 2 3 5], shape=(4,), dtype=int32)
tf.Tensor([2 3 1 5], shape=(4,), dtype=int32)
tf.Tensor([2 3 5 1], shape=(4,), dtype=int32)