PyTorch笔记之 squeeze, 和 unsqueeze

squeeze() 函数

squeeze() 用来去掉向量的一个维度,只有维度为 1 的那一维才能去掉

example:

初始化1个向量shape为(1,2,3)的向量

import torch
a = torch.rand((1,2,3))

PyTorch笔记之 squeeze, 和 unsqueeze

去掉第 0 维,第 0 维的大小是1,所以可以去掉第0维,去掉后向量的 shape 是(2,3)

PyTorch笔记之 squeeze, 和 unsqueeze

去掉最后一维,最后一维的大小是3,所以不会操作成功,向量的 shape 仍然是(1,2,3)

PyTorch笔记之 squeeze, 和 unsqueeze

unsqueeze()函数

从函数名字就可以看出,unsqueeze() 和 squeeze() 的功能是相反的,squeeze 是去掉1维,那 unsqueeze() 就是增加1维

example:

增加第 4 维,此时向量的 shape 是(1,2,3,1)

PyTorch笔记之 squeeze, 和 unsqueeze

插入第 0 维,我们初始化一个 shape 为(2,3)的向量,然后在插入第 0 维,插入后向量的 shape 为(1,2,3)

PyTorch笔记之 squeeze, 和 unsqueeze