tf.squeeze  |  TensorFlow v2.16.1 (original) (raw)

tf.squeeze

Stay organized with collections Save and categorize content based on your preferences.

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
Logistic regression for binary classification with Core APIs Multilayer perceptrons for digit recognition with Core APIs Quickstart for the TensorFlow Core APIs Unicode strings Learned data compression Generate music with an RNN Simple audio recognition: Recognizing keywords Intro to Autoencoders Transfer learning with YAMNet for environmental sound classification

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 specifyingaxis.

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>
Args
input A Tensor. The input to squeeze.
axis An optional list of ints. Defaults to []. If specified, only squeezes the dimensions listed. The dimension index starts at 0. It is an error to squeeze a dimension that is not 1. Must be in the range[-rank(input), rank(input)). Must be specified if input is aRaggedTensor.
name A name for the operation (optional).
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.