@leimao Shouldn’t the ‘useful architecture’ post structured pruning be as:
conv1 = torch.nn.Conv2d(in_channels = 3, out_channels = 9)
conv2 = torch.nn.Conv2d(in_channels = 9, out_channels = 5)

because you are only pruning the last three channels/filters/kernel maps of conv2 layer? conv1 layer is untouched/unpruned.