Learn Before
Code
AnyNet Stage Code Implementation
An AnyNet stage is implemented by sequentially stacking a specified depth of ResNeXt blocks. The first block in the sequence uses a spatial stride of and a convolution on the residual branch to halve the feature map resolution. The remaining blocks use a default stride of , preserving the spatial dimensions.
PyTorch Implementation:
@d2l.add_to_class(AnyNet) def stage(self, depth, num_channels, groups, bot_mul): blk = [] for i in range(depth): if i == 0: blk.append(d2l.ResNeXtBlock(num_channels, groups, bot_mul, use_1x1conv=True, strides=2)) else: blk.append(d2l.ResNeXtBlock(num_channels, groups, bot_mul)) return nn.Sequential(*blk)
MXNet Implementation:
@d2l.add_to_class(AnyNet) def stage(self, depth, num_channels, groups, bot_mul): net = nn.Sequential() for i in range(depth): if i == 0: net.add(d2l.ResNeXtBlock( num_channels, groups, bot_mul, use_1x1conv=True, strides=2)) else: net.add(d2l.ResNeXtBlock( num_channels, num_channels, groups, bot_mul)) return net
JAX Implementation:
@d2l.add_to_class(AnyNet) def stage(self, depth, num_channels, groups, bot_mul): blk = [] for i in range(depth): if i == 0: blk.append(d2l.ResNeXtBlock(num_channels, groups, bot_mul, use_1x1conv=True, strides=(2, 2), training=self.training)) else: blk.append(d2l.ResNeXtBlock(num_channels, groups, bot_mul, training=self.training)) return nn.Sequential(blk)
TensorFlow Implementation:
@d2l.add_to_class(AnyNet) def stage(self, depth, num_channels, groups, bot_mul): net = tf.keras.models.Sequential() for i in range(depth): if i == 0: net.add(d2l.ResNeXtBlock(num_channels, groups, bot_mul, use_1x1conv=True, strides=2)) else: net.add(d2l.ResNeXtBlock(num_channels, groups, bot_mul)) return net
0
1
Updated 2026-05-13
Tags
D2L
Dive into Deep Learning @ D2L