当定义一个Tensor张量之后,可以对其进行压缩或者拓展,这里首先介绍unsqueeze
x=torch.Tensor(2,3);
x=x.unsqueeze(1)#在第几个维度加上1
print(x,x.size())
通过使用jupyter notebook可以很容易的对每个节的代码进行验证,十分方便,那么通过改变unsqueeze的参数,可以看到如下报错信息:
IndexError: Dimension out of range (expected to be in range of [-3, 2], but got 5)
这里收到的参数是[-3,2],负数就是从后往前查,正数就是从前往后查,比如说传入参数为2的时候,就是在第二维度上加1,变成:
torch.Size([2, 3, 1])
如果是0的话,就是在第0维度上拓展,得到:
torch.Size([1, 2, 3])
如果是-2的话就是:
torch.Size([2, 1, 3])
再来说squeeze函数,通过看其报错信息
IndexError: Dimension out of range (expected to be in range of [-2, 1], but got 4)
但是我又发现一个问题:就是传递数字并不好使,(没有被压缩giao,比如说x.squeeze(1)
但是,如果使用torch.squeeze(x),就比较好,能把所有维度值为1的都给压缩掉
版权声明:本文为weixin_52205764原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。