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 22 and a 1×11 \times 1 convolution on the residual branch to halve the feature map resolution. The remaining blocks use a default stride of 11, 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

Contributors are:

Who are from:

Tags

D2L

Dive into Deep Learning @ D2L