Learn Before
Code
AnyNet Model Code Implementation
The complete AnyNet model is constructed by initializing a sequential container and adding the stem, iterating through an architectural configuration tuple (arch) to append each stage of the body, and finally adding the head (consisting of global average pooling and a dense classification layer).
PyTorch Implementation:
@d2l.add_to_class(AnyNet) def __init__(self, arch, stem_channels, lr=0.1, num_classes=10): super(AnyNet, self).__init__() self.save_hyperparameters() self.net = nn.Sequential(self.stem(stem_channels)) for i, s in enumerate(arch): self.net.add_module(f'stage{i+1}', self.stage(*s)) self.net.add_module('head', nn.Sequential( nn.AdaptiveAvgPool2d((1, 1)), nn.Flatten(), nn.LazyLinear(num_classes))) self.net.apply(d2l.init_cnn)
MXNet Implementation:
@d2l.add_to_class(AnyNet) def __init__(self, arch, stem_channels, lr=0.1, num_classes=10): super(AnyNet, self).__init__() self.save_hyperparameters() self.net = nn.Sequential() self.net.add(self.stem(stem_channels)) for i, s in enumerate(arch): self.net.add(self.stage(*s)) self.net.add(nn.GlobalAvgPool2D(), nn.Dense(num_classes)) self.net.initialize(init.Xavier())
JAX Implementation:
@d2l.add_to_class(AnyNet) def create_net(self): net = nn.Sequential([self.stem(self.stem_channels)]) for i, s in enumerate(self.arch): net.layers.extend([self.stage(*s)]) net.layers.extend([nn.Sequential([ lambda x: nn.avg_pool(x, window_shape=x.shape[1:3], strides=x.shape[1:3], padding='valid'), lambda x: x.reshape((x.shape[0], -1)), nn.Dense(self.num_classes)])]) return net
TensorFlow Implementation:
@d2l.add_to_class(AnyNet) def __init__(self, arch, stem_channels, lr=0.1, num_classes=10): super(AnyNet, self).__init__() self.save_hyperparameters() self.net = tf.keras.models.Sequential(self.stem(stem_channels)) for i, s in enumerate(arch): self.net.add(self.stage(*s)) self.net.add(tf.keras.models.Sequential([ tf.keras.layers.GlobalAvgPool2D(), tf.keras.layers.Dense(units=num_classes)]))
0
1
Updated 2026-05-13
Tags
D2L
Dive into Deep Learning @ D2L