- view和reshape,一样的
squeeze和unsqueeze
- unsqueeze(dim): dim范围[-a.dim()-1,a.dim()+1]
dim=4,则范围是[-5,5)
dim为负数则在索引后插入,为正数则在索引前插入 - squeeze()不给参数时,默认将所有size=1的纬度删除,给的dim的size不等于1时不会变
expand与repeat
- 区别
expand需要的时候才扩展,repeat实实在在的复制数据 - expand使用
1->N可以
3->M不可以扩展
如[1,32,1,1]->[4,32,14,14]可以
[2,32,1,1]->[4,32,14,14]报错
参数为-1时表示这个纬度不变
参数的意义是希望得到的纬度 - repeat的使用
参数的意义是该纬度需要拷贝的次数
不建议使用
转置操作
- .t()只适用于2D的
- transpose(dim1,dim2)
交换dim1和dim2,此时存储顺序已经变了
cantiguous()使数据变得连续 - [b,h,w,c]是numpy的图片存储格式
- permute()使用
参数是希望得到的纬度顺序
broadcasting
[ 高->低]
低维的纬度相同的,再往高维匹配
[4 32 8]+一维的或标量可以,+[4]就不可以