[英]Overlap and add tensor in pytorch using nn.fold
我有以下问题,我有形状为(1,16198)
的张量,首先我想将它分成块,所以我使用展开如下:
my_tensor.unfold(-1, 178, 89) -> tensor with shape (1, 182, 178)
这意味着 182 个大小为178
的重叠块,这是完美的。
但现在我想撤消添加重叠块的操作并取回(1,16198)
张量。 我相信 fold 方法会做到这一点,但我已经花了几个小时试图了解它是如何工作的,但根本没有进展,我似乎无法找到一个很好的解释来源来解释如何使用它,恐怕官方就我的理解而言,文档是一种复杂的方式。
昨晚让它工作了,我不得不将 (1, 182, 178) 张量转换为 (1, 178, 182) 然后我使用
nn.Fold(my_tensor, (1, 16198), kernel_size=(1,178), stride=(1,89))
我得到了添加重叠部分的张量,从而完成了重叠和添加算法,但仍然不确定 nn.Fold 是如何工作的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.