pytorch的通道顺序和caffe一致,是(B C H W)
下面函数例子均基于一个feature map: feat, 通道顺序为(B C H W)
1.permute
feat.permute(0,2,3,1),将原来序号为0,1,2,3的通道调整为0,2,3,1,对于feat来说这个操作就是将通道顺序变为tensorflow风格。
2.squeeze和unsqueeze
squeeze(dim)是对维度为1的维度dim进行降维,如[3,2,1] -> [3,2]。
unsqueeze(dim)是在dim处插入维度为1的维度。
import torch
a = torch.Tensor([[[1],[3]],[[5],[7]],[[9],[11]]])
a1 = a.squeeze(2)
a2 = a1.unsqueeze(0)
if __name__ == '__main__':
print(a.size())
print(a1.size())
print(a2.size())
输出为:
torch.Size([3, 2, 1])
torch.Size([3, 2])
torch.Size([1, 3, 2])
3.expand,repeat
首先都是用于一个维度的复制扩展。expand不占用新空间,repeat要用。
import torc