首页 > 解决方案 > 两个一维张量的互相关

问题描述

我有我的输入信号形状 = (N,) 和我的内核形状 = (K,)。我认为两者的大小应该相同,以便我在输入信号和内核之间获得互相关输出。有什么方法可以在我的输入信号上使用零填充来实现结果?

例如:输入信号(1,2,3,4,5)和内核(6,7)之间的互相关。

标签: pytorchpaddingshapestensorcross-correlation

解决方案


如果我错了,请告诉我,但这似乎对应于一维卷积:

NumPy 有一个内置np.correlate函数,我们可以比较:

>>> a = np.arange(1, 6)
>>> v = np.arange(6, 8)

>>> np.correlate(a, v)
array([20, 33, 46, 59])

在 PyTorch 中torch.nn.functional.conv1d(输入和权重需要是三维的):

>>> x = torch.tensor(a, dtype=float)[None, None]
>>> w = torch.tensor(v, dtype=float)[None, None]

>>> F.conv1d(x, w)
tensor([[[20., 33., 46., 59.]]], dtype=torch.float64)

推荐阅读