Sally_Goldin:

The model classifies the training data more or less perfectly, but the randomly chosen 20% holdout images for validation aren’t very accurate.


In this case your model is overfitting (which is a good start, as your model is at least able to perfectly predict the training set  ).
You would have to add more regularization or decrease the model capacity e.g. using

dropout
data augmentation
weight decay
smaller model

If I remember your last topics correctly, you are using image data (and are preloading to save time).
Unfortunately, the preloading onto the GPU won’t allow you to use torchvision.transforms for the data augmentation and you could manually crop, flip, rotate, change the brightness, saturation etc. of the images.