项目场景:
针对torch中的unfold(只卷不积):
问题描述
提示:这里描述项目中遇到的问题:
原始参数为
下面展示一些 内联代码片
。
tensor([[[ 0., 1., 2.],
[ 3., 4., 5.],
[ 6., 7., 8.]],
[[ 9., 10., 11.],
[12., 13., 14.],
[15., 16., 17.]],
[[18., 19., 20.],
[21., 22., 23.],
[24., 25., 26.]]])
例如:输入数据为3×3×3的矩阵,使用该函数
x1 = f.unfold(x, kernel_size=3, dilation=1 , stride=1)
tensor([[ 0.],
[ 1.],
[ 2.],
[ 3.],
[ 4.],
[ 5.],
[ 6.],
[ 7.],
[ 8.],
[ 9.],
[10.],
[11.],
[12.],
[13.],
[14.],
[15.],
[16.],
[17.],
[18.],
[19.],
[20.],
[21.],
[22.],
[23.],
[24.],
[25.],
[26.]])
}
若将参数替换为kernel=2
tensor([[ 0., 1., 3., 4.],
[ 1., 2., 4., 5.],
[ 3., 4., 6., 7.],
[ 4., 5., 7., 8.],
[ 9., 10., 12., 13.],
[10., 11., 13., 14.],
[12., 13., 15., 16.],
[13., 14., 16., 17.],
[18., 19., 21., 22.],
[19., 20., 22., 23.],
[21., 22., 24., 25.],
[22., 23., 25., 26.]])
}
再将diat=2
tensor([[ 0.],
[ 2.],
[ 6.],
[ 8.],
[ 9.],
[11.],
[15.],
[17.],
[18.],
[20.],
[24.],
[26.]])
```
类似于空洞的概念,如果将输入换成3×5×5就换过来了。
tensor([[[ 0., 1., 2., 3., 4.],
[ 5., 6., 7., 8., 9.],
[10., 11., 12., 13., 14.],
[15., 16., 17., 18., 19.],
[20., 21., 22., 23., 24.]],
[[25., 26., 27., 28., 29.],
[30., 31., 32., 33., 34.],
[35., 36., 37., 38., 39.],
[40., 41., 42., 43., 44.],
[45., 46., 47., 48., 49.]],
[[50., 51., 52., 53., 54.],
[55., 56., 57., 58., 59.],
[60., 61., 62., 63., 64.],
[65., 66., 67., 68., 69.],
[70., 71., 72., 73., 74.]]])
以上为输如,将size设为3,看输出
tensor([[ 0., 1., 2., 5., 6., 7., 10., 11., 12.],
[ 1., 2., 3., 6., 7., 8., 11., 12., 13.],
[ 2., 3., 4., 7., 8., 9., 12., 13., 14.],
[ 5., 6., 7., 10., 11., 12., 15., 16., 17.],
[ 6., 7., 8., 11., 12., 13., 16., 17., 18.],
[ 7., 8., 9., 12., 13., 14., 17., 18., 19.],
[10., 11., 12., 15., 16., 17., 20., 21., 22.],
[11., 12., 13., 16., 17., 18., 21., 22., 23.],
[12., 13., 14., 17., 18., 19., 22., 23., 24.],
[25., 26., 27., 30., 31., 32., 35., 36., 37.],
[26., 27., 28., 31., 32., 33., 36., 37., 38.],
[27., 28., 29., 32., 33., 34., 37., 38., 39.],
[30., 31., 32., 35., 36., 37., 40., 41., 42.],
[31., 32., 33., 36., 37., 38., 41., 42., 43.],
[32., 33., 34., 37., 38., 39., 42., 43., 44.],
[35., 36., 37., 40., 41., 42., 45., 46., 47.],
[36., 37., 38., 41., 42., 43., 46., 47., 48.],
[37., 38., 39., 42., 43., 44., 47., 48., 49.],
[50., 51., 52., 55., 56., 57., 60., 61., 62.],
[51., 52., 53., 56., 57., 58., 61., 62., 63.],
[52., 53., 54., 57., 58., 59., 62., 63., 64.],
[55., 56., 57., 60., 61., 62., 65., 66., 67.],
[56., 57., 58., 61., 62., 63., 66., 67., 68.],
[57., 58., 59., 62., 63., 64., 67., 68., 69.],
[60., 61., 62., 65., 66., 67., 70., 71., 72.],
[61., 62., 63., 66., 67., 68., 71., 72., 73.],
[62., 63., 64., 67., 68., 69., 72., 73., 74.]])
将dia=2时
tensor([[ 0.],
[ 2.],
[ 4.],
[10.],
[12.],
[14.],
[20.],
[22.],
[24.],
[25.],
[27.],
[29.],
[35.],
[37.],
[39.],
[45.],
[47.],
[49.],
[50.],
[52.],
[54.],
[60.],
[62.],
[64.],
[70.],
[72.],
[74.]])
问题描述
终于理解了,是按照列的规矩垂直展平!!!!!