繁体   English   中英

使用 nn.fold 在 pytorch 中重叠并添加张量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM