Removes dimensions of size 1 from the shape of a tensor.
meridian
.
backend
.
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>
Args
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 a RaggedTensor
.
Returns
Tensor
. Has the same type as input
.
Contains the same data as input
, but has one or more dimensions of
size 1 removed.


