结合 2 个神经网络

数据挖掘 Python 神经网络 图像分类 卷积 火炬
2021-10-01 21:11:10

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. 谷歌论文中的深度/可分离卷积是否会比连接输入的二维卷积产生任何优势。就此而言,卷积可以是一种相似性度量,互相关和卷积非常相似。

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

2个回答

该文件明确指出以下几行:

我们的工作是从 Xception 和 MobileNets 开始的重要趋势线上的另一个点,这表明在任何卷积模型中,无论是 1D 还是 2D 数据,都可以用深度可分离卷积代替卷积,并获得一个同时更便宜的模型运行,更小,并且表现更好几个百分点。

卷积神经网络形成一系列可区分的特征学习模块,结构为一组离散的单元,每个单元都经过训练以学习特定的特征。如果经过训练和重用,这些可以扩展到用于余弦相似性发现。深度可分离卷积定义了单独的特征路径,因此对于连接输出的这种情况很容易。

  1. 深度可分离卷积后跟 1x1 卷积是方便的 2d 卷积的替代方案。它们是在https://arxiv.org/abs/1704.04861中介绍的,旨在减少计算工作量。深度卷积和逐点卷积的组合通常学习与普通卷积几乎相同的表示。

  2. Depthwise separable conv 是 grouped conv 的一个极端情况,其中num_groups=num_input_channels. 将组数设置为 2 意味着将输入分割成通道暗淡的两个输入,并为每个分割的输入学习两个单独的滤波器。是一个很好的教程。通过堆叠每个组的输出来组合输出。通常这之后是 1x1 conv 以混合组之间的数据流。