I just tried your pytorch code setting TIMESTEPS to NaN and it worked so much worse.
Timesteps NaN
Epoch 1 TR: 0.398600595038 VL: 0.251811799777
Epoch 2 TR: 0.256775490708 VL: 0.201037764696
Epoch 3 TR: 0.204928007695 VL: 0.148878562004
Epoch 4 TR: 0.152259112661 VL: 0.108047759769
Epoch 5 TR: 0.110495173812 VL: 0.0812407301001
Timesteps 50
Epoch 1 TR: 0.0158072562396 VL: 0.00216180915408
Epoch 2 TR: 0.00119101881924 VL: 0.00183749616851
Epoch 3 TR: 0.000887962538854 VL: 0.00180209117973
Epoch 4 TR: 0.000865832243852 VL: 0.00167242659527
Epoch 5 TR: 0.000841620917981 VL: 0.00159547644208