Thanks for the information. It looks alright and I could successfully fit some random input:
X_trn = torch.randn(100, 15)
y_trn = torch.randn(100, 1)
t_ds = TensorDataset(X_trn, y_trn)

X_val = torch.randn(100, 15)
y_val = torch.randn(100, 1)
v_ds = TensorDataset(X_trn, y_trn)

Could you try to lower your learning rate to 1e-3 and try it again?