def create_model(self, brain, trainer_params, reward_signal_configs, is_training, load, seed):
    '\n        Create PPO model\n        :param brain: Assigned Brain object.\n        :param trainer_params: Defined training parameters.\n        :param reward_signal_configs: Reward signal config\n        :param seed: Random seed.\n        '
    with self.graph.as_default():
        self.model = PPOModel(brain=brain, lr=float(trainer_params['learning_rate']), lr_schedule=LearningRateSchedule(trainer_params.get('learning_rate_schedule', 'linear')), h_size=int(trainer_params['hidden_units']), epsilon=float(trainer_params['epsilon']), beta=float(trainer_params['beta']), max_step=float(trainer_params['max_steps']), normalize=trainer_params['normalize'], use_recurrent=trainer_params['use_recurrent'], num_layers=int(trainer_params['num_layers']), m_size=self.m_size, seed=seed, stream_names=list(reward_signal_configs.keys()), vis_encode_type=EncoderType(trainer_params.get('vis_encode_type', 'simple')))
        self.model.create_ppo_optimizer()
    self.inference_dict.update({'action': self.model.output, 'log_probs': self.model.all_log_probs, 'value_heads': self.model.value_heads, 'value': self.model.value, 'entropy': self.model.entropy, 'learning_rate': self.model.learning_rate})
    if self.use_continuous_act:
        self.inference_dict['pre_action'] = self.model.output_pre
    if self.use_recurrent:
        self.inference_dict['memory_out'] = self.model.memory_out
    self.total_policy_loss = self.model.abs_policy_loss
    self.update_dict.update({'value_loss': self.model.value_loss, 'policy_loss': self.total_policy_loss, 'update_batch': self.model.update_batch})
Create PPO model
:param brain: Assigned Brain object.
:param trainer_params: Defined training parameters.
:param reward_signal_configs: Reward signal config
:param seed: Random seed.
def create_model(self, brain, trainer_params, reward_signal_configs, is_training, load, seed):
    '\n        Create PPO model\n        :param brain: Assigned Brain object.\n        :param trainer_params: Defined training parameters.\n        :param reward_signal_configs: Reward signal config\n        :param seed: Random seed.\n        '
    with self.graph.as_default():
        self.model = PPOModel(brain=brain, lr=float(trainer_params['learning_rate']), lr_schedule=LearningRateSchedule(trainer_params.get('learning_rate_schedule', 'linear')), h_size=int(trainer_params['hidden_units']), epsilon=float(trainer_params['epsilon']), beta=float(trainer_params['beta']), max_step=float(trainer_params['max_steps']), normalize=trainer_params['normalize'], use_recurrent=trainer_params['use_recurrent'], num_layers=int(trainer_params['num_layers']), m_size=self.m_size, seed=seed, stream_names=list(reward_signal_configs.keys()), vis_encode_type=EncoderType(trainer_params.get('vis_encode_type', 'simple')))
        self.model.create_ppo_optimizer()
    self.inference_dict.update({'action': self.model.output, 'log_probs': self.model.all_log_probs, 'value_heads': self.model.value_heads, 'value': self.model.value, 'entropy': self.model.entropy, 'learning_rate': self.model.learning_rate})
    if self.use_continuous_act:
        self.inference_dict['pre_action'] = self.model.output_pre
    if self.use_recurrent:
        self.inference_dict['memory_out'] = self.model.memory_out
    self.total_policy_loss = self.model.abs_policy_loss
    self.update_dict.update({'value_loss': self.model.value_loss, 'policy_loss': self.total_policy_loss, 'update_batch': self.model.update_batch})