tf.squeeze()函数

介绍

给定一个张量输入,该操作返回一个相同类型的张量,所有维数为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]])>

猜你喜欢

转载自blog.csdn.net/qq_45097352/article/details/116064080