Upsampling may blur the image but you might find out the model doesn’t care about blurriness ;). On the otherhand it can indeed be a waste of computation to upsample when the original images are very low resolution.
You might want to take a look at the ImageNet example: examples/main.py at master · pytorch/examples (github.com) 5 as a starting point. You do not need to modify the models for a different input resolution as most vision models have an average pooling layer which prevents the model shapes from being dependent on input size. The only thing you would need to change is the fully connected at the end (e.g., replace it with one that has a 7-class output rather than a 1000-class output).