# Codeblock 2b def forward(self, x): residual = x #(1) print(f'x & residual\t: {x.size()}') x = self.conv0(x) print(f'after conv0\t: {x.size()}') x = x.permute(0, 2, 3, 1) #(2) print(f'after permute\t: {x.size()}') x = self.norm(x) print(f'after norm\t: {x.size()}') x = x.permute(0, 3, 1, 2) #(3) print(f'after permute\t: {x.size()}') x = self.conv1(x) print(f'after conv1\t: {x.size()}') x = self.gelu(x) print(f'after gelu\t: {x.size()}') x = self.conv2(x) print(f'after conv2\t: {x.size()}') x = x + residual #(4) print(f'after summation\t: {x.size()}') return x