# Codeblock 7b def forward(self, x): print(f'original\t: {x.size()}') x = self.relu(self.stem(x)) print(f'after stem\t: {x.size()}') x = x.permute(0, 2, 3, 1) print(f'after permute\t: {x.size()}') x = self.normstem(x) print(f'after normstem\t: {x.size()}') x = x.permute(0, 3, 1, 2) print(f'after permute\t: {x.size()}') print() for i, block in enumerate(self.res2): #(1) x = block(x) print(f'after res2 #{i}\t: {x.size()}') print() for i, block in enumerate(self.res3): #(2) x = block(x) print(f'after res3 #{i}\t: {x.size()}') print() for i, block in enumerate(self.res4): #(3) x = block(x) print(f'after res4 #{i}\t: {x.size()}') print() for i, block in enumerate(self.res5): #(4) x = block(x) print(f'after res5 #{i}\t: {x.size()}') print() x = self.avgpool(x) print(f'after avgpool\t: {x.size()}') x = x.permute(0, 2, 3, 1) print(f'after permute\t: {x.size()}') x = self.normpool(x) print(f'after normpool\t: {x.size()}') x = x.permute(0, 3, 1, 2) print(f'after permute\t: {x.size()}') x = x.reshape(x.shape[0], -1) #(5) print(f'after reshape\t: {x.size()}') x = self.fc(x) print(f'after fc\t: {x.size()}') #(6) return x