Oops you’re right, my first sentence is actually not what I’ve been doing, I’m not dealing with outputs of a convolution, but rather visualizing convolution filters from pre-trained networks.
The filters actually are [num_kernels, num_channels, width, height]
> torchvision.models.alexnet(pretrained=True).features[0].weight.shape
torch.Size([64, 3, 11, 11])

but through my own process of visualizing this in matplotlib I ended up basically doing
> weights = torchvision.models.alexnet(pretrained=True).features[0].weight
> weights.transpose(1,2).transpose(2,3).shape
torch.Size([64, 11, 11, 3])

and then ended up trying to reshape the [64, 11, 11, 3] into [64 * 3, 11, 11] without doing the transpose the other way around, but I guess now that I’ve written this it makes no sense to do that since the filters are already stored as [64, 3, 11, 11] so I can just do as you showed weights.view(-1, 11, 11).