I guess the difference in the visualizations is because make_grid created a “color” image (i.e. a tensor with 3 channels), which matplotlib apparently treats differently than an image without any channel dimension.
As long as the values and visualizations are consistent, you could just stick to the approach which you like more.