Пример #1
0
def run(double_dqn, task_num):
    title = "Double_Deep_Q" if double_dqn else "Deep_Q"
    env = Monitor(CustomGym(
        agentXY,
        goalXY,
        tasks[task_num][0],
        tasks[task_num][1],
        title=f"{title}_Task_{task_num + 1}",
    ),
                  filename=None)
    model = DQN(MlpPolicy,
                env,
                verbose=verbose,
                gamma=gamma,
                learning_rate=learning_rate,
                double_q=bool(double_dqn))
    while len(env.get_episode_rewards()) < episodes:
        model.learn(total_timesteps=time_steps)
    env.save_csv()
    env.destroy()
        try:
            print('Training Started')
            if cfg.POLICY.NAME == 'DDPG':
                model.learn(total_timesteps=args.num_timesteps,
                            log_interval=args.log_interval,
                            save_path=save_path)
            else:
                model.learn(total_timesteps=args.num_timesteps,
                            log_interval=args.log_interval)
        finally:
            print(100 * '*')
            print('FINISHED TRAINING; saving model...')
            print(100 * '*')
            # save model even if training fails because of an error
            model.save(model_dir)
            env.destroy()
            print('model has been saved.')

    # --------------------------------------------------------------------------------------------------------------------"""
    # ------------------------------------------------Test----------------------------------------------------------------"""
    # --------------------------------------------------------------------------------------------------------------------"""

    else:  # test
        if args.agent_id is not None:
            save_path = 'logs/agent_{}/models/'.format(args.agent_id)
        else:
            save_path = 'logs/'

        if args.test_model == '':
            best_last = 'best'
            if args.test_last: