如何计算 PyTorch 中的小批量和一组过滤器之间的距离

问题描述 投票:0回答:1

我有一个大小为 NxDxWxH 的小批量,其中 N 是小批量的大小,D 是尺寸,W 和 H 分别是宽度和高度。假设我有一组滤波器 F,每个滤波器的尺寸为 Dx1x1。我需要计算小批量和过滤器之间的成对距离。输出的大小应为 NxFxWxH。

      input:   NxDxWxH
      filters: FxDx1x1
      output:  NxFxWxH

假设 a 是在输入位置 (x,y) 提取的大小为 D 的向量,f 是大小为 Dx1x1 的滤波器。输出中的每个值应为

\sum_{d=1}^D (x_d - f_c)^2

换句话说,我试图找到成对的 L2 距离,而不是卷积。

我怎样才能在 pytorch 中做到这一点?

python python-3.x pytorch
1个回答
1
投票

您可以通过扩展输入和过滤器以进行正确的自动形状铸造来实现此目的。

# Assuming that input.size() is (N, D, W, H) and filters.size() is (F, D, 1, 1)
input.unsqueeze_(1)
filters.unsqueeze_(0)
output = torch.sum((input - filters)**2, dim=2)
© www.soinside.com 2019 - 2024. All rights reserved.