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],对这些特征图加上偏置,bias[32],先对bias进行unsqueeze操作增加维度:[1,32,1,1],再用expand操作进行扩充[4,32,14,14]。然后两者就可以相加了。