unfold()用于张量切割以及生成张量的大小计算
1、用法
unfold()做用是按照选定的尺寸与步长来切分矩阵参数为
(dim,size(切分的尺寸),step)会增加图片的维数
例如: img = img.unfold(2,ny,ny),切割第三维
2、当步长和尺寸一致时,切割后张量的维度增加,具体如下:
注意其他维度保持不变,切割后,所切割维度的尺寸为:原始尺寸\切分尺寸,所增加的维度为最后一维,大小为切分尺寸
import torch
a=torch.arange(24).reshape(3,2,4)
print(a)
b=a.unfold(1,2,2) #(3,1,4,2)
print(b.size())
print(b)
c=b.unfold(2,2,2) #(3,1,2,2,2)
print(c.size())
print(c)
结果:原始图片
第一次切割
第二次切割