维度转换
维度变换
数据没有被改变,改变的只有数据的理解方式
1. view / reshape
1.view reshape ,两个方法的用法完全相同
要求转换前后tensor的numel()相同即可,prod(a.size()) ==prod(b.size())
1  | 
  | 
2.squeeze v.s. unsqueeze-维度
2.1 unsqueeze()
1  | #unsqueeze( input , dim ) ->Tensor  | 
图示
可以看出来维度变换之后,数据的理解方式不同,要好好体会
数据处理的实例应用
1  | b = torch.rand(32)  | 
2.2 squeeze
1  | #torch.squeeze(input , dim =None ,Out = None) ->tensor  | 
3.Expand /repeat-行
3.1 expand
参数是广播的目标tensor的shape
1  | 
  | 
3.2 repeat--不建议使用
进行repeat之后,可能会开辟新的空间去保存repeat的结果,会降低效率
参数传递是每个维度上要重复的次数,需要自己计算
4.转置操作 .t(只能适用于2D操作)
5.Transpose()
1  | #转换效果图  | 
6.permute
permute也会打乱内存的顺序,需要调用coutigious函数
permute底层是调用多次transpose()实现的
1  | #上面遮挡住的命令是  |