h & c at each timestep are calculated from their previous values and the new input. It wouldn’t make sense to treat them as parameters and update them as you would with weights.
The only situation in which that could make sense would be if you wanted to train the initial state of h & c, and even then, only the initial values of h & c could be treated as Parameters with requires_grad=True.