If cycle_model has parameters or buffers you would also need to save its state_dict.
Make sure that all parameters get a valid gradient after the first backward call and thus that the computation graph is not detached.