View source on GitHub |
Removes dimensions of size 1 from the shape of a tensor.
tf.squeeze(
input, axis=None, name=None
)
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. |