import torch
a=torch.tensor([0.5,0.6,0.9])
a.shape
a.unsqueeze(1) #现在 a 是一个维度,在1的位置加一个维度,就是 3 1
a.unsqueeze(1).unsqueeze(0).unsqueeze(-4).shape 
# a 的维度 3
# 在1的位置加一个维度,就是 3 1
# 然后在0的位置加一个维度,就是 1 3 1
# 默认位置从0开始,维度: 1  3  1
#                                     位置: 0  1  2  3
#                                                  -4 -3 -2 -1
# 在-4位置加一个维度,也就是在0的位置加一个维度,即:1 1 3 1
b = a.unsqueeze(1).unsqueeze(0).unsqueeze(-4)
b.shape # 1 1 3 1
b.squeeze(1).squeeze(2).shape
# b 的维度 1 1 3 1
# 1.在1的位置减一个维度,就是 1 3 1
# 说明:
# 默认位置从0开始,维度: 1  1  3  1 
#                                      位置:  0  1  2  3
#                                                    -4 -3 -2 -1

# 2.然后在2的位置减一个维度,就是 1 3
# 注意:b.squeeze(2)这个是无效的

注意维度与位置的关系即可,unsqueeze是加入一个维度,就是在插,3个维度就有4个位置可以插入;squeeze是压缩一个维度,所以位置与维度是对应的。

更多推荐