Save the date! Google I/O returns May 18-20 Register now


Returns a tensor with a length 1 axis inserted at index axis. (deprecated arguments)

Used in the notebooks

Used in the tutorials

Given a tensor input, this operation inserts a dimension of length 1 at the dimension index axis of input's shape. The dimension index follows Python indexing rules: It's zero-based, a negative index it is counted backward from the end.

This operation is useful to:

  • Add an outer "batch" dimension to a single element.
  • Align axes for broadcasting.
  • To add an inner vector length axis to a tensor of scalars.

For example:

If you have a single image of shape [height, width, channels]:

image = tf.zeros([10,10,3])

You can add an outer batch axis by passing axis=0:

tf.expand_dims(image, axis=0).shape.as_list()
[1, 10, 10, 3]

The new axis location matches Python list.insert(axis, 1):

tf.expand_dims(image, axis=1).shape.as_list()
[10, 1, 10, 3]

Following standard Python indexing rules, a negative axis counts from the end so axis=-1 adds an inner most dimension:

tf.expand_dims(image, -1).shape.as_list()
[10, 10, 3, 1]

This operation requires that axis is a valid index for input.shape, following Python indexing rules:

-1-tf.rank(input) <= axis <= tf.rank(input)

This operation is related to:

input A Tensor.
axis 0-D (scalar). Specifies the dimension index at which to expand the shape of input. Must be in the range [-rank(input) - 1, rank(input)].
name The name of the output Tensor (optional).
dim 0-D (scalar). Equivalent to axis, to be deprecated.

A Tensor with the same data as input, but its shape has an additional dimension of size 1 added.

ValueError if either both or neither of dim and axis are specified.