I cannot run the code, but this seems to loop over all the classes no?
    act = activation['dc'].squeeze()
    fig, ax = plt.subplots(act.size(0))
    for idx in range(act.size(0)):
        ax[idx].imshow(act[idx])

Also what do you mean the visualisation is not good? are the results not good? Or the layout is not good?