Thanks for the suggestion; normalization does help but still the loss is huge; see below:

X_new.mean(), X_new.std(), X_new.max(), X_new.min()
(-1.443642e-16, 0.999999, 0.953241, -3.913690)



My y range is 0-4 and so i did not normalize it.  I then tried classification (with 5 classes); the validation accuracy is now 0.58 (with normalization) … I was wondering if there is any other things i can try to minimize/improve the loss/accuracy?
I tried learning rate scheduler with cosine annealing and tried different learning rate but the improvement is insignificant.