コード例 #1
0
    def test_should_be_able_to_set_property(self):
        reinforce_config = ReinforceConfig()

        self.assertEqual(reinforce_config.decay_steps, 250)

        reinforce_config.decay_steps = 100

        self.assertEqual(reinforce_config.decay_steps, 100)
コード例 #2
0
def main():
    parser = argparse.ArgumentParser()

    parser.add_argument(
        '-f', '--folder',
        help='The folder containing the config files',
        required=True
    )
    parser.add_argument(
        '-m', '--map',
        help='Run the specified map',
        required=False
    )
    parser.add_argument(
        '--eval',
        help="Run only evaluation task",
        dest='eval',
        action="store_true"
    )

    parser.add_argument(
        '-r', '--render',
        help="Render task",
        dest='render',
        action="store_true"
    )
    
    args = parser.parse_args()

    evaluation_config_path = os.path.join(args.folder, "evaluation.yml")
    evaluation_config = EvaluationConfig.load_from_yaml(evaluation_config_path)

    network_config_path = os.path.join(args.folder, "network.yml")
    network_config = NetworkConfig.load_from_yaml(network_config_path)

    reinforce_config_path = os.path.join(args.folder, "reinforce.yml")
    reinforce_config = ReinforceConfig.load_from_yaml(reinforce_config_path)

    map_name = args.map
    if map_name is None:
        print("You are traning the agent for the default map: ")
        print("FourTowersWithFriendlyUnitsFixedEnemiesFixedPosition")
    else:
        print("You are traning the agent for the map: ")
        print(map_name)
    
    #print(map_name)
    if args.eval:
        evaluation_config.training_episodes = 0
        network_config.restore_network = True

    if args.render:
        evaluation_config.render = True


    run_task(evaluation_config, network_config, reinforce_config, map_name = map_name)

    return 0
コード例 #3
0
    def test_should_have_default_values(self):
        reinforce_config = ReinforceConfig()

        self.assertEqual(reinforce_config.decay_steps, 250)
        self.assertEqual(reinforce_config.starting_epsilon, 1.0)
        self.assertEqual(reinforce_config.decay_rate, 0.96)
        self.assertEqual(reinforce_config.discount_factor, 0.95)
        self.assertEqual(reinforce_config.batch_size, 35)
        self.assertEqual(reinforce_config.memory_size, 10000)
        self.assertEqual(reinforce_config.summaries_path, None)
コード例 #4
0
    def test_should_create_reinforce_config_object_from_file(self):
        reinforce_config = ReinforceConfig.load_from_yaml(test_file)

        self.assertEqual(reinforce_config.decay_steps, 500)
        self.assertEqual(reinforce_config.starting_epsilon, 0.9)
        self.assertEqual(reinforce_config.decay_rate, 0.80)
        self.assertEqual(reinforce_config.discount_factor, 1)
        self.assertEqual(reinforce_config.batch_size, 10)
        self.assertEqual(reinforce_config.memory_size, 20000)
        self.assertEqual(reinforce_config.summaries_path,
                         "path/to/reinforcement/summaries.ckpt")
コード例 #5
0
def main():
    parser = argparse.ArgumentParser()

    parser.add_argument('-f',
                        '--folder',
                        help='The folder containing the config files',
                        required=True)

    # TODO Better way to load the task to run
    parser.add_argument(
        '-t',
        '--task',
        help="The task to run. The python module cointaining the ABP program",
        required=True)

    parser.add_argument(
        '-d',
        '--debug',
        help="Print lots of debugging statements",
        action="store_const",
        dest="loglevel",
        const=logging.DEBUG,
        default=logging.WARNING,
    )

    parser.add_argument(
        '-v',
        '--verbose',
        help="Be verbose. Logging level INFO",
        action="store_const",
        dest="loglevel",
        const=logging.INFO,
    )

    parser.add_argument('--eval',
                        help="Run only evaluation task",
                        dest='eval',
                        action="store_true")

    parser.add_argument('-r',
                        '--render',
                        help="Render task",
                        dest='render',
                        action="store_true")

    args = parser.parse_args()

    logger.setLevel(args.loglevel)

    evaluation_config_path = os.path.join(args.folder, "evaluation.yml")
    evaluation_config = EvaluationConfig.load_from_yaml(evaluation_config_path)

    network_config_path = os.path.join(args.folder, "network.yml")
    network_config = NetworkConfig.load_from_yaml(network_config_path)

    reinforce_config_path = os.path.join(args.folder, "reinforce.yml")
    reinforce_config = ReinforceConfig.load_from_yaml(reinforce_config_path)

    if args.eval:
        evaluation_config.training_episodes = 0
        network_config.restore_network = True

    if args.render:
        evaluation_config.render = True

    task_module = import_module(args.task)

    task_module.run_task(evaluation_config, network_config, reinforce_config)

    return 0
コード例 #6
0
def main():
    parser = argparse.ArgumentParser()

    parser.add_argument('-f',
                        '--folder',
                        help='The folder containing the config files',
                        required=True)
    parser.add_argument('-m',
                        '--map',
                        help='Run the specified map',
                        required=False)
    parser.add_argument('-t',
                        '--test',
                        help='Just run test, no train',
                        dest='test',
                        action="store_true")

    parser.add_argument(
        '-tf',
        '--train_forever',
        help=
        'After reach optimal policy. No need more eposdes, train the agent train_forever',
        dest='train_forever',
        action="store_true")
    parser.add_argument('--eval',
                        help="Run only evaluation task",
                        dest='eval',
                        action="store_true")

    parser.add_argument('-r',
                        '--render',
                        help="Render task",
                        dest='render',
                        action="store_true")

    args = parser.parse_args()

    #print(args)
    #input()
    evaluation_config_path = os.path.join(args.folder, "evaluation.yml")
    evaluation_config = EvaluationConfig.load_from_yaml(evaluation_config_path)

    network_config_path = os.path.join(args.folder, "network.yml")
    network_config = NetworkConfig.load_from_yaml(network_config_path)

    reinforce_config_path = os.path.join(args.folder, "reinforce.yml")
    reinforce_config = ReinforceConfig.load_from_yaml(reinforce_config_path)

    if args.test:
        evaluation_config.training_episodes = 0
    map_name = args.map
    if map_name is None:
        print("You are traning the agent for the default map: ")
        print("FourTowesFriendlyunitsDecomposedGroupReward")
    else:
        print("You are traning the agent for the map: ")
        print(map_name)

    #print(map_name)
    if args.eval:
        evaluation_config.training_episodes = 0
        network_config.restore_network = True

    if args.render:
        evaluation_config.render = True

    run_task(evaluation_config,
             network_config,
             reinforce_config,
             map_name=map_name,
             train_forever=args.train_forever)

    return 0
コード例 #7
0
ファイル: play_tug_of_war.py プロジェクト: osu-xai/sc2env
def main():
    parser = argparse.ArgumentParser()

    parser.add_argument('-f',
                        '--folder',
                        help='The folder containing the config files',
                        required=True)
    parser.add_argument('-m',
                        '--map',
                        help='Run the specified map',
                        required=False)

    parser.add_argument('-tk',
                        '--task',
                        help="which task to run",
                        dest='task',
                        required=False)

    parser.add_argument('--model',
                        help="which model for agent",
                        dest='agent_model',
                        required=False)

    parser.add_argument('-t',
                        '--test',
                        help='Just run test, no train',
                        dest='test',
                        action="store_true")

    parser.add_argument('-ce',
                        '--collecting_experience',
                        help='Just run test and collect experience',
                        dest='collecting_experience',
                        action="store_true")

    parser.add_argument(
        '-tf',
        '--train_forever',
        help=
        'After reach optimal policy. No need more eposdes, train the agent train_forever',
        dest='train_forever',
        action="store_true")
    parser.add_argument('--eval',
                        help="Run only evaluation task",
                        dest='eval',
                        action="store_true")

    parser.add_argument('-r',
                        '--render',
                        help="Render task",
                        dest='render',
                        action="store_true")

    args = parser.parse_args()

    evaluation_config_path = os.path.join(args.folder, "evaluation.yml")
    evaluation_config = EvaluationConfig.load_from_yaml(evaluation_config_path)

    network_config_path = os.path.join(args.folder, "network.yml")
    network_config = NetworkConfig.load_from_yaml(network_config_path)

    reinforce_config_path = os.path.join(args.folder, "reinforce.yml")
    reinforce_config = ReinforceConfig.load_from_yaml(reinforce_config_path)

    if args.test:
        evaluation_config.training_episodes = 0
    if args.collecting_experience:
        reinforce_config.collecting_experience = True

    map_name = args.map
    if map_name is None:
        print("You are traning the agent for the default map: ")
        print("TugOfWar")
    else:
        print("You are traning the agent for the map: ")
        print(map_name)

    #print(map_name)
    if args.eval:
        evaluation_config.training_episodes = 0
        network_config.restore_network = True

    if args.render:
        evaluation_config.render = True

    if args.task == 'task_bigA':
        run_task_bigA(evaluation_config,
                      network_config,
                      reinforce_config,
                      map_name=map_name,
                      train_forever=args.train_forever)
    elif args.task == 'task_single_player':
        run_task(evaluation_config,
                 network_config,
                 reinforce_config,
                 map_name=map_name,
                 train_forever=args.train_forever)
    elif args.task == 'task_2p':
        run_task_2p(evaluation_config,
                    network_config,
                    reinforce_config,
                    map_name=map_name,
                    train_forever=args.train_forever)
    elif args.task == 'task_mbts':
        run_task_mbts(evaluation_config,
                      network_config,
                      reinforce_config,
                      map_name=map_name,
                      train_forever=args.train_forever)
    elif args.task == 'task_2p_2l':
        run_task_2p_2l(evaluation_config,
                       network_config,
                       reinforce_config,
                       map_name=map_name,
                       train_forever=args.train_forever)
    elif args.task == 'task_2p_2l_grid':
        run_task_2p_2l_grid(evaluation_config,
                            network_config,
                            reinforce_config,
                            map_name=map_name,
                            train_forever=args.train_forever)
    elif args.task == 'task_2p_2l_hp':
        run_task_2p_2l_hp(evaluation_config,
                          network_config,
                          reinforce_config,
                          map_name=map_name,
                          train_forever=args.train_forever,
                          agent_model=args.agent_model)
    elif args.task == 'task_2p_2l_deexplanation':
        run_task_2p_2l_deexplanation(evaluation_config,
                                     network_config,
                                     reinforce_config,
                                     map_name=map_name,
                                     agent_model=args.agent_model)
    elif args.task == 'task_2p_2l_grid_decomposed':
        run_task_2p_2l_grid_decomposed(evaluation_config,
                                       network_config,
                                       reinforce_config,
                                       map_name=map_name)
    elif args.task == 'task_2p_2l_grid_decomposed_trans':
        run_task_2p_2l_grid_decomposed_trans(evaluation_config,
                                             network_config,
                                             reinforce_config,
                                             map_name=map_name)
    elif args.task == 'task_mbts_grid':
        run_task_mbts_grid(evaluation_config,
                           network_config,
                           reinforce_config,
                           map_name=map_name)
    else:
        print("need task")
    return 0