tf.expand_dims

Returns a tensor with an additional dimension inserted at index `axis`.

Used in the notebooks

Given a tensor `input`, this operation inserts a dimension of size 1 at the dimension index `axis` of `input`'s shape. The 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 one image with `expand_dims(image, 0)`, which will make the shape `[1, height, width, channels]`.

Examples:

````t = [[1, 2, 3],[4, 5, 6]] # shape [2, 3]`
```
````tf.expand_dims(t, 0)`
`<tf.Tensor: shape=(1, 2, 3), dtype=int32, numpy=`
`array([[[1, 2, 3],`
`        [4, 5, 6]]], dtype=int32)>`
```
````tf.expand_dims(t, 1)`
`<tf.Tensor: shape=(2, 1, 3), dtype=int32, numpy=`
`array([[[1, 2, 3]],`
`       [[4, 5, 6]]], dtype=int32)>`
```
````tf.expand_dims(t, 2)`
`<tf.Tensor: shape=(2, 3, 1), dtype=int32, numpy=`
`array([[[1],`
`        [2],`
`        [3]],`
`       [[4],`
`        [5],`
`        [6]]], dtype=int32)>`
```
````tf.expand_dims(t, -1) # Last dimension index. In this case, same as 2.`
`<tf.Tensor: shape=(2, 3, 1), dtype=int32, numpy=`
`array([[[1],`
`        [2],`
`        [3]],`
`       [[4],`
`        [5],`
`        [6]]], dtype=int32)>`
```

This operation is related to:

`input` A `Tensor`.
`axis` Integer specifying the dimension index at which to expand the shape of `input`. Given an input of D dimensions, `axis` must be in range `[-(D+1), D]` (inclusive).
`name` Optional string. The name of the output `Tensor`.

A tensor with the same data as `input`, with an additional dimension inserted at the index specified by `axis`.

`ValueError` If `axis` is not specified.
`InvalidArgumentError` If `axis` is out of range `[-(D+1), D]`.