X
动态图中什么时候应该用 add_subLayer
xiangyubo 发布于2019-10-25 17:47 浏览:298 回复:5
0
收藏
最后编辑于2020-06-04

add_sublayer这个函数是干嘛的呢?文档没有写的很清湖,不是很理解。我看 resnet 里在 init 的时候就用了,但是在 forward 的时候就没用,看着似乎没什么影响.
在 __init__里面有一段

self.bottleneck_block_list = []
num_channels = 64
for block in range(len(depth)):
    shortcut = False
    for i in range(depth[block]):
        bottleneck_block = self.add_sublayer(
            'bb_%d_%d' % (block, i),
            BottleneckBlock(
                self.full_name(),
                num_channels=num_channels,
                num_filters=num_filters[block],
                stride=2 if i == 0 and block != 0 else 1,
                shortcut=shortcut))
        num_channels = bottleneck_block._num_channels_out
        self.bottleneck_block_list.append(bottleneck_block)
        shortcut = True

但是在 forward 的时候

def forward(self, inputs):
    y = self.conv(inputs)
    y = self.pool2d_max(y)
    for bottleneck_block in self.bottleneck_block_list:
        y = bottleneck_block(y)
    y = self.pool2d_avg(y)
    y = self.out(y)
    return y
收藏
点赞
0
个赞
共5条回复 最后由185******58回复于2020-06-04 20:05
#6185******58回复于2020-06-04 20:05:10

我理解,这是为了把一组做好的网络作为一个整体加入到网络定义中。

0
#5风样V男子回复于2020-05-31 12:24:13

fluid.dygraph.Layer 这里面的方法

0
#4鹿鼎记肯定回复于2020-05-11 21:27:18
#3 秃头的仓鼠回复
同样的问题可以请教一下吗

应该是继承了某个类的方法

0
#3秃头的仓鼠回复于2020-05-11 20:18:24

同样的问题可以请教一下吗

0
P
#2phlrain回复于2019-10-31 21:55:47

跟同学线下沟通已解释清楚

0
TOP
切换版块