you are right! i removed the shuffle on the targets. after doing that the model’s accuracy reaches 80% after 4 epochs only, unfortunately issue persists with the validation set tho, still about 0.05% at best. after training the model on a different range of epochs (10-50) i evaluated it on a new dataloader object that doesn’t include the WeightedRandomSampler, I inserted the training data into the dataloader to check if the model trained properly.
train_loader2 = DataLoader(dataset = train_data, shuffle=True, batch_size = 20)

it received good results on the training dataset, that means the model successfully trained, but since it has 0% accuracy on the validation set it is definitely overfitting. could it be the difference in weights is so large that its forcing the model to overfit very quickly? my learning rate is 0.005
the strange thing is i fit the data to a random forest classifier, which should be very resistant to overfitting, but the same issue happens, high training accuracy 0 validation accuracy.