# Codeblock 6b def forward(self, features, captions): #(1) print(f'features originalt: {features.size()}') features = features.unsqueeze(1) #(2) print(f"after unsqueezett: {features.shape}") print(f'captions originalt: {captions.size()}') captions = self.embedding(captions) #(3) print(f"after embeddingtt: {captions.shape}") captions = torch.cat([features, captions], dim=1) #(4) print(f"after concattt: {captions.shape}") captions, _ = self.lstm(captions) #(5) print(f"after lstmtt: {captions.shape}") captions = self.linear(captions) #(6) print(f"after lineartt: {captions.shape}") return captions