介绍
给定一个张量输入,该操作返回一个相同类型的张量,所有维数为1的维度都已被删除。如果您不想删除所有为1的维度,您可以通过指定轴来删除特定axis为1的维度。
函数用法
tf.squeeze(
input, axis=None, name=None
)
参数含义
参数名称 | 具体含义 |
---|---|
input | 需要被压缩的张量 |
axis | 一个可选的int类型列表。默认为[]。如果指定,只挤压列出的维度。维度索引从0开始。挤压非1的维度是错误的。所有要压缩的维度必须在[-rank(input), rank(input)]范围内。如果输入是一个不规则张量,则必须指定。 |
name | 操作的名称(可选) |
返回值
一个张量。具有与输入相同的类型。包含与输入相同的数据,但删除了一个或多个大小为1的维度。
实例
首先我们创建一个shape为[1, 2, 1, 3, 1, 1]的张量。
values = np.random.randint(10,size=6)
values = values.reshape([1, 2, 1, 3, 1, 1])
values的值为:
array([[[[[[5]],
[[6]],
[[3]]]],
[[[[9]],
[[6]],
[[3]]]]]])
然后我们用tf.squeeze()函数去压缩这个张量。
tensor = tf.squeeze(values)
则经过压缩后,所有axis为1的维度都要被删掉,所以此时tensor的shape应该为[2,3]。tensor的值为:
array([[5, 6, 3],
[9, 6, 3]])>