【问题标题】:Combining Neural Networks Pytorch结合神经网络 Pytorch
【发布时间】:2019-03-08 02:06:47
【问题描述】:

我有 2 张图像 作为输入,x1x2 并尝试使用卷积作为 相似性度量 .这个想法是学习的权重替代了更传统的相似性度量(互相关,NN,...)。定义我的转发函数如下:

def forward(self,x1,x2):
    out_conv1a = self.conv1(x1)
    out_conv2a = self.conv2(out_conv1a)
    out_conv3a = self.conv3(out_conv2a)

    out_conv1b = self.conv1(x2)
    out_conv2b = self.conv2(out_conv1b)
    out_conv3b = self.conv3(out_conv2b)

现在是相似性度量:

out_cat = torch.cat([out_conv3a, out_conv3b],dim=1)
futher_conv = nn.Conv2d(out_cat)

我的问题如下:

1) 谷歌paper 中的深度/可分离卷积会比连接输入的二维卷积产生任何优势。就此而言,卷积可以作为一种相似性度量,互相关和卷积非常相似。

2) 据我了解,conv2d 中的 groups=2 选项将提供 2 个单独的输入来训练权重,在这种情况下,每个先前的网络权重。之后这些是如何组合的?

有关基本概念,请参阅here

【问题讨论】:

  • a) 我不确定,您是如何使用卷积计算相关性的?卷积类似于相关性,是的,但是权重过滤器和输入之间的相关性,而不是两个连接的输入。 b)当您使用 group=2 时,您不需要合并输出,如果您要求的话,它已经合并了。但我不确定 conv2d 提供了什么“输入”,它只提供权重
  • 感谢您的回答! a)我不是试图计算相关性,而是通过卷积定义相似性度量,即可学习的权重,但我不确定这是否合理。 b) 输入将是 out_conv3a、out_conv3b 的连接层,因此是一组可学习的参数。
  • vis-www.cs.umass.edu/bcnn 可能是一个想法,双线性池只是矩阵的外积

标签: machine-learning neural-network computer-vision pytorch convolution


【解决方案1】:

使用nn.Conv2d 层,您假设权重是可训练的参数。但是,如果您想过滤一个特征图与另一个特征图,您可以深入研究并使用torch.nn.functional.conv2d 明确定义输入和过滤器:

out = torch.nn.functional.conv2d(out_conv3a, out_conv3b)  

【讨论】:

  • 嗯,这就是我正在使用的,或者这会取代 concat?如果有,有什么优势?
猜你喜欢
  • 2018-12-16
  • 1970-01-01
  • 2021-03-11
  • 2020-10-19
  • 1970-01-01
  • 2021-12-30
  • 2013-01-01
  • 1970-01-01
  • 2010-10-03
相关资源
最近更新 更多