Thanks @vdw
I did the changes you suggested and I still see the weights pretty much stagnant.
I would expect to see more variation however the weights seem to remain in 0.
UPDATE:
I added a print statement:
loss.backward()
print(model.lstm.weight_ih_l0.grad[0][0])
and seems the weights become very small that vanish to zero and after that they stay there:
tensor(-2.2441e-27, device='cuda:0')
tensor(2.1074e-29, device='cuda:0')
tensor(6.9026e-28, device='cuda:0')
tensor(-4.6863e-29, device='cuda:0')
tensor(-3.3049e-28, device='cuda:0')
tensor(-1.1580e-29, device='cuda:0')
tensor(3.9923e-30, device='cuda:0')
tensor(1.4204e-27, device='cuda:0')
tensor(2.1197e-30, device='cuda:0')
tensor(-2.6489e-29, device='cuda:0')
tensor(-3.7362e-30, device='cuda:0')
tensor(1.1758e-30, device='cuda:0')
tensor(6.1142e-29, device='cuda:0')
tensor(-1.5144e-30, device='cuda:0')
tensor(2.3485e-31, device='cuda:0')
tensor(4.2870e-33, device='cuda:0')
tensor(-5.3474e-33, device='cuda:0')
tensor(-2.6197e-29, device='cuda:0')
tensor(-9.1210e-32, device='cuda:0')
tensor(5.1670e-28, device='cuda:0')
tensor(6.1556e-31, device='cuda:0')
tensor(-8.9021e-29, device='cuda:0')
tensor(-2.2017e-28, device='cuda:0')
tensor(-6.5199e-33, device='cuda:0')
tensor(4.5335e-31, device='cuda:0')
tensor(-4.3888e-32, device='cuda:0')
tensor(-1.5471e-32, device='cuda:0')
tensor(4.2088e-30, device='cuda:0')
tensor(-1.1161e-31, device='cuda:0')
tensor(9.0165e-31, device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')
tensor(0., device='cuda:0')