torch.unfold"/>
torch.unfold
项目场景:
针对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.]])
问题描述
终于理解了,是按照列的规矩垂直展平!!!!!
更多推荐
torch.unfold
发布评论