第41个方法
torch.squeeze(input, dim=None, *, out=None)->Tensor
此方法的作用是移除tensor中维度大小为1的维度,返回的Tensor和原Tensor共享内存。
参数介绍:
input
:要移除维度为大小1的tensordim
:指定要移除的维度,默认为None。out
:输出
对于一个tensor,形状为
(
A
×
1
×
B
×
C
×
1
×
D
)
(A×1×B×C×1×D)
(A×1×B×C×1×D),经过此方法(dim=None)时,输出的形状为
(
A
×
B
×
C
×
D
)
.
(A×B×C×D) .
(A×B×C×D).,如下所示:
此时a,b共享内存,当dim=None,此方法就是将指定tensor中所有大小为1的dim移除。
当dim给定时,此操作只会在tensor给定维度上进行压缩操作,如果input大形状为
(
A
×
1
×
B
)
(
A
×
1
×
B
)
(A \times 1 \times B)(A×1×B)
(A×1×B)(A×1×B),而方法为torch.squeeze(input, 0)
,那么返回结果和原tensor相同,如下所示:
如果方法改为torch.squeeze(input, 1)
那么在第一维上的大小为1的dim会被移除,如下所示:
总结:当dim给定时,如果dim的大小为1,那么移出此dim,其余dim不进行操作。dim不可以为一个列表,只能是整数或者None