gpt4 book ai didi

python - 无法理解 ResNet 的 Identity block 和卷积 block

转载 作者:行者123 更新时间:2023-12-03 14:16:32 26 4
gpt4 key购买 nike

我正在从 Andrew Ng coursera 讲座中学习残差网络 (ResNet50)。我明白 ResNets 工作的主要原因之一是它们可以学习身份函数,这就是为什么在网络中添加越来越多的层不会损害网络的性能。

现在如讲座中所述,ResNets 中使用了两种类型的块:1)身份块和卷积块。

当输入和输出维度没有变化时使用标识块。卷积块与身份块几乎相同,但在 short-cut 中有一个卷积层只是更改维度以使输入和输出的维度匹配的路径。

这是身份块:

enter image description here

这是卷积块:

enter image description here

现在在卷积块(第二张图像)的实现中,第一个块(即 conv2d --> BatchNorm --> ReLu 是用 1x1 卷积和步幅 > 1 实现的。

# First component of main path 
X = Conv2D(F1, (1, 1), strides = (s,s), name = conv_name_base + '2a', padding = 'valid', kernel_initializer = glorot_uniform(seed=0))(X)
X = BatchNormalization(axis = 3, name = bn_name_base + '2a')(X)
X = Activation('relu')(X)

我不明白在窗口大小为 1 时保持 stride > 1 的原因。这不只是数据丢失吗?在这种情况下,我们只是考虑替代像素。

这种超参数选择的可能原因是什么?任何直观的解释都会有所帮助!谢谢。

最佳答案

I don't understand the reason behind keeping stride > 1 with window size 1. Isn't it just data loss?



请参阅 resnet 论文中有关更深瓶颈架构的部分。另外,图 5。
https://arxiv.org/pdf/1512.03385.pdf

1 x 1 卷积通常用于沿过滤器维度增加或减少维度。因此,在瓶颈架构中,第一个 1 x 1 层减少了维度,因此 3 x 3 层需要处理更小的输入/输出维度。然后最后的 1 x 1 层再次增加过滤器尺寸。

这样做是为了节省计算/训练时间。

从纸上看,

“由于担心我们可以负担得起的训练时间,我们将构建块修改为瓶颈设计”。

关于python - 无法理解 ResNet 的 Identity block 和卷积 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58200107/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com