# Codeblock 2b def forward(self, x): #(1) print(f'original\t\t: {x.size()}') squeezed = self.global_pooling(x) #(2) print(f'after avgpool\t\t: {squeezed.size()}') squeezed = torch.flatten(squeezed, 1) #(3) print(f'after flatten\t\t: {squeezed.size()}') excited = self.relu(self.fc0(squeezed)) #(4) print(f'after fc0-relu\t\t: {excited.size()}') excited = self.sigmoid(self.fc1(excited)) #(5) print(f'after fc1-sigmoid\t: {excited.size()}') excited = excited[:, :, None, None] #(6) print(f'after reshape\t\t: {excited.size()}') scaled = x * excited #(7) print(f'after scaling\t\t: {scaled.size()}') return scaled