代码之家  ›  专栏  ›  技术社区  ›  Benedict K.

组合神经网络

  •  2
  • Benedict K.  · 技术社区  · 6 年前

    我有 2张图片 x1型 x2个 试着用卷积作为 相似性度量 . 其思想是,学习的权重取代更传统的相似性度量(互相关,神经网络,…)。定义我的转发函数如下:

    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) 会像google中那样进行深度/可分离的卷积 paper 产生任何优势超过二维卷积的级联输入。因为卷积可以作为相似性度量,所以互相关和卷积是非常相似的。

    here .

    1 回复  |  直到 6 年前
        1
  •  2
  •   Shai    6 年前

    nn.Conv2d 层假设权重是可训练的参数。但是,如果要用一个要素图过滤另一个要素图,可以深入研究并使用 torch.nn.functional.conv2d

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