Pytorch中的squeeze()和unsqueeze()函数
Posted jeasoniscoding
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pytorch中的squeeze()和unsqueeze()函数相关的知识,希望对你有一定的参考价值。
在numpy库中,经常会出现“秩为1的一维数组”(come from 吴恩达的深度学习,目前还没有搞清楚numpy中如此设计的意图)。比如:
注意这里的a的shape是[3] ,既不是 [1,3] 也不是 [3,1]。这就说明它既不是行向量也不是列向量,只是一个数组。
但是我们可以用squeeze()和unsqueeze()对其进行操作,比如:
在对这两个函数讲解之前,我们先统一一下定义:
In : x.shape
Out: torch.Size( [ a , b , c ] )
这里我们说a是第一个维度(表示第一个维度的数量是a),b是第二个维度(表示第一个维度的数量是b),c是第三个维度(表示第三个维度的数量是c)
简而言之,unsqueeze(arg)是增添第arg个维度为1,以插入的形式填充。比如:
相反,squeeze(arg)是删除第arg个维度(如果当前维度不为1,则不会进行删除),比如:
以上是关于Pytorch中的squeeze()和unsqueeze()函数的主要内容,如果未能解决你的问题,请参考以下文章
[ Pytorch ] torch.squeeze() 和torch.unsqueeze()的用法
Pytorch中torch.unsqueeze()和torch.squeeze()函数解析
pytorch中squeeze()和unsqueeze()函数介绍
【Pytorch】unsqueeze()与squeeze()详解
Pytorch Tensor 维度操作的形象理解 Tensor.unsqueeze() Tensor.squeeze()