pytorch - 两个一维张量的互相关
问题描述
我有我的输入信号形状 = (N,) 和我的内核形状 = (K,)。我认为两者的大小应该相同,以便我在输入信号和内核之间获得互相关输出。有什么方法可以在我的输入信号上使用零填充来实现结果?
例如:输入信号(1,2,3,4,5)和内核(6,7)之间的互相关。
解决方案
如果我错了,请告诉我,但这似乎对应于一维卷积:
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)
推荐阅读
- ansible - 在 k8s_facts 模块上没有观察到输出
- xslt - Report_Entry(worker) 的第一行需要默认为“YES”。工人返回“NO”的所有其他行
- c - 我怎样才能继续为某个点添加某个值?
- javascript - Javascript 在比较整数或布尔数组时更快吗?
- javascript - 如何使用字符串变量作为名称提取数组的数据?
- angular - Angular 没有显示带有延迟加载的组件
- xslt - XPATH 从前一个元素复制节点值
- asp.net - 在 ASP.NET MVC 的单个请求生命周期中处理基于路由的 cookie?
- selenium - 无法访问框架中的元素
- symfony - 插入数据一对多关系symfony4的正确方法是什么?