<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def initialize_training(self, training_info: TrainingInfo, model_state=None, hidden_state=None):
 """ Prepare models for training """

        if model_state is not None:
            self.model.load_state_dict(model_state)
        else:
            self.model.reset_weights()

        self.algo.initialize(
            training_info=training_info, model=self.model, environment=self.env_roller.environment, device=self.device
        )