![]() |
Removes dimensions of size 1 from the shape of a tensor.
tf.squeeze( input, axis=None, name=None )
Used in the notebooks
Used in the guide | Used in the tutorials |
---|---|
Given a tensor input
, this operation returns a tensor of the same type with all dimensions of size 1 removed. If you don't want to remove all size 1 dimensions, you can remove specific size 1 dimensions by specifying axis
.
For example:
# 't' is a tensor of shape [1, 2, 1, 3, 1, 1] tf.shape(tf.squeeze(t)) # [2, 3]
Or, to remove specific size 1 dimensions:
# 't' is a tensor of shape [1, 2, 1, 3, 1, 1] tf.shape(tf.squeeze(t, [2, 4])) # [1, 2, 3, 1]
Unlike the older op tf.compat.v1.squeeze
, this op does not accept a deprecated squeeze_dims
argument.
@tf.function def func(x): print('x.shape:', x.shape) known_axes = [i for i, size in enumerate(x.shape) if size == 1] y = tf.squeeze(x, axis=known_axes) print('shape of tf.squeeze(x, axis=known_axes):', y.shape) y = tf.squeeze(x) print('shape of tf.squeeze(x):', y.shape) return 0 _ = func.get_concrete_function(tf.TensorSpec([None, 1, 2], dtype=tf.int32)) # Output is. # x.shape: (None, 1, 2) # shape of tf.squeeze(x, axis=known_axes): (None, 2) # shape of tf.squeeze(x): <unknown>
Returns | |
---|---|
A Tensor . Has the same type as input . Contains the same data as input , but has one or more dimensions of size 1 removed. |
Raises | |
---|---|
ValueError | The input cannot be converted to a tensor, or the specified axis cannot be squeezed. |