1.torch.reshape()、torch.view()可以调整Tensor的shape
2.torch.unsqueeze(index)可以为Tensor增加一个维度
3.squeeze()可以删减维度
4.expand()扩展维度
5.repeat()维度重复,不常用
6 .transpose(dim1, dim2)交换dim1与dim2,进行维度变换。
注意这种交换使得存储不再连续,再执行一些reshape的操作会报错,所以要调用一下contiguous()使其变成连续的维度。
参考:https://blog.csdn.net/weicao1990/article/details/93618136
7.Broadcasting(广播)也就是自动实现了若干unsqueeze和expand操作,以使两个Tensor的shape一致,从而完成某些操作(往往是加法)。
比如得到的feature maps的维度是4,32,14,14,对这些特征图加上偏置,bias32,先对bias进行unsqueeze操作增加维度:1,32,1,1,再用expand操作进行扩充4,32,14,14。然后两者就可以相加了。