# Codeblock 2 class SPP(nn.Module): def forward(self, x): pooled_outputs = [] #(1) for grid in GRIDS: pooled = F.adaptive_max_pool2d(x, output_size=(grid,grid)) #(2) print(f'after pool\t\t: {pooled.size()}') pooled = torch.flatten(pooled, start_dim=1) #(3) print(f'after flatten\t\t: {pooled.size()}\n') pooled_outputs.append(pooled) #(4) concatenated = torch.cat(pooled_outputs, dim=1) #(5) print(f'after concatenate\t: {concatenated.size()}\n') return concatenated