# Codeblock 23 class EncoderDecoder(nn.Module): def __init__(self): super().__init__() self.encoder = Encoder() #EncoderTorch() #(1) self.decoder = Decoder() #DecoderTorch() #(2) def forward(self, images, captions, look_ahead_mask): #(3) print(f"images\t\t\t: {images.shape}") print(f"captions\t\t: {captions.shape}") features = self.encoder(images) print(f"after encoder\t\t: {features.shape}") captions = self.decoder(features, captions, look_ahead_mask) print(f"after decoder\t\t: {captions.shape}") return captions