卷积神经网络中aggregation和concatenation的区别是什么?

时间:2021-02-21 05:24:57

标签: deep-learning conv-neural-network terminology

当我阅读一些关于 CNN 的经典论文时,例如 Inception family、ResNet、VGGnet 等,我注意到术语concatenationsummationaggregation< /strong>,这让我很困惑(求和对我来说很容易理解)。有人能告诉我它们之间有什么区别吗?可能更具体一些,比如用例子来说明维度和表示能力的差异。

1 个答案:

答案 0 :(得分:0)

  • 连接通常包括从不同的网络层中获取 2 个或更多输出张量,并沿通道维度将它们连接起来
  • 聚合包括从不同的网络层获取 2 个或更多输出张量,并在它们上应用选定的多元函数来聚合结果
  • 求和是聚合的一种特殊情况,其中函数是求和

这意味着我们通过聚合丢失了信息。另一方面,串联将使以更大的内存使用为代价保留信息成为可能。

例如在 PyTorch 中:

import torch

batch_size = 8
num_channels = 3
h, w = 512, 512
t1 = torch.rand(batch_size, num_channels, h, w) # A tensor with shape [8, 3, 512, 512]
t2 = torch.rand(batch_size, num_channels, h, w) # A tensor with shape [8, 3, 512, 512]

torch.cat((t1, t2), dim=1) # A tensor with shape [8, 6, 512, 512]
t1 + t2 # A tensor with shape [8, 3, 512, 512]