@ptrblck Thanks for replying!
It is still giving constant output. I tried lr=0.001 and 20000 epochs with the following x_tensor
[[0.5 3.  9.5]
 [0.6 3.  9.5]
 [0.7 3.  9.5]
 [0.8 3.  9.5]
 [0.5 3.5 9.5]
 [0.6 3.5 9.5]
 [0.7 3.5 9.5]
 [0.8 3.5 9.5]
 [0.5 4.  9.5]
 [0.6 4.  9.5]]

and the following y_tensor
[[1.18310e+02 1.00000e-01 5.35000e-01]
 [1.18290e+02 7.00000e-02 5.85000e-01]
 [1.18253e+02 3.00000e-02 6.35000e-01]
 [1.18148e+02 3.00000e-02 6.35000e-01]
 [1.18228e+02 3.00000e-02 5.60000e-01]
 [1.18148e+02 3.00000e-02 5.78000e-01]
 [1.18083e+02 8.00000e-02 6.68000e-01]
 [1.18060e+02 7.00000e-02 6.88000e-01]
 [1.18033e+02 9.00000e-02 5.58000e-01]
 [1.18048e+02 6.00000e-02 6.38000e-01]]

and final predicted output was:
tensor([[[1.1816e+02, 5.9165e-02, 6.0802e-01],
         [1.1816e+02, 5.9165e-02, 6.0802e-01],
         [1.1816e+02, 5.9165e-02, 6.0802e-01],
         [1.1816e+02, 5.9165e-02, 6.0802e-01],
         [1.1816e+02, 5.9165e-02, 6.0802e-01],
         [1.1816e+02, 5.9165e-02, 6.0802e-01],
         [1.1816e+02, 5.9165e-02, 6.0802e-01],
         [1.1816e+02, 5.9165e-02, 6.0802e-01],
         [1.1816e+02, 5.9165e-02, 6.0802e-01],
         [1.1816e+02, 5.9165e-02, 6.0802e-01]]])