1. 参数定义
Unfold
https://pytorch.org/docs/stable/generated/torch.nn.Unfold.html#torch.nn.Unfold
Fold
https://pytorch.org/docs/stable/generated/torch.nn.Fold.html#torch.nn.Fold
注意:参数当中的padding是在四周边补零,而当fold后的尺寸比output给定的尺寸小时,将在结果的右边或者下边补零!
2. 逆运算
注意:互为逆运算要求fold 和 unfold的参数要保持一致!
-
没有重叠区域的情况,unfold和fold互为逆运算,
fold(unfold(x)) = = x
-
有重叠区域的情况,unfold和fold不是互为逆运算,如果要将unfold的张量还原,需要除以一个叠加次数的因子
divisor
。
fold(unfold(input)) / divisor == input
divisor
是全1同形矩阵经过同样的fold(unfold(*))
变化得到。文章来源:https://www.toymoban.com/news/detail-680020.html
input_ones = torch.ones(input.shape, dtype=input.dtype)
divisor = fold(unfold(input_ones))
文章来源地址https://www.toymoban.com/news/detail-680020.html
到了这里,关于【pytorch】Unfold和Fold的互逆操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!