The Bottle layer is a custom layer that is designed to apply a Linear layer over 3D tensors by flattening out the tensor over batch and sequence length dimensions (or the first two dimensions generically).
The new Linear layer they define inherits from both nn.Linear and Bottle. This means that Linear has its init and other methods the same as nn.Linear and only the forward method is redefined as the forward method in Bottle.
@jekbradbury, do you think that it would be better if such complexities (multiple inheritance etc.,) are not there in intro examples?