View source on GitHub
|
Returns a tensor with an length 1 axis inserted at index axis.
tf.sparse.expand_dims(
sp_input, axis=None, name=None
)
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 sparse tensor with shape [height, width, depth]:
sp = tf.sparse.SparseTensor(indices=[[3,4,1]], values=[7,],dense_shape=[10,10,3])
You can add an outer batch axis by passing axis=0:
tf.sparse.expand_dims(sp, axis=0).shape.as_list()[1, 10, 10, 3]
The new axis location matches Python list.insert(axis, 1):
tf.sparse.expand_dims(sp, 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.sparse.expand_dims(sp, axis=-1).shape.as_list()[10, 10, 3, 1]
sp.shape.as_list()[10, 10, 3]tf.sparse.expand_dims(sp).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:
tf.expand_dims, which provides this functionality for dense tensors.tf.squeeze, which removes dimensions of size 1, from dense tensors.tf.sparse.reshape, which provides more flexible reshaping capability.
Returns | |
|---|---|
A SparseTensor with the same data as sp_input, but its shape has an
additional dimension of size 1 added.
|
View source on GitHub