对CNN中跳跃层的实现感到困惑

Confused about implementation of skip layers in CNN

我在阅读有关 AlphaGo Zero 的网络结构的文章时发现了这个备忘单:

我很难理解跳过连接如何在维度上工作。

具体来说,似乎每个残差层都以其接收到的输入的 2 个堆叠副本结束。这不会导致输入大小随着网络深度呈指数增长吗?

是否可以通过更改 conv2d 过滤器的输出通道大小来避免这种情况?我看到 in_C 和 out_C 在 pytorch 中不必相同,但我还不够了解这些值不同的含义。

使用跳过连接,您确实可以将每个连接的通道数增加一倍。当您将通道连接在一起时就是这种情况。但是,如果您控制输出通道的数量(您称为 out_C),它不一定必须呈指数增长。

例如,如果您有一个跳过连接,总共提供 n 个通道,并且卷积层获得 in_C 个通道作为输入。然后您也可以将 out_C 定义为 n,这样串联后的通道数等于 2*n。最终,您决定每个卷积的输出通道数量,这完全取决于网络容量以及它能够学习多少。