Пример #1
0
def test_run_training(load_config, create_environment_factory, subproc_env_mock):
    mock_env = MagicMock()
    mock_env.external_brain_names = []
    mock_env.academy_name = 'TestAcademyName'
    create_environment_factory.return_value = mock_env
    trainer_config_mock = MagicMock()
    load_config.return_value = trainer_config_mock

    mock_init = MagicMock(return_value=None)
    with patch.object(TrainerController, "__init__", mock_init):
        with patch.object(TrainerController, "start_learning", MagicMock()):
            learn.run_training(0, 0, basic_options(), MagicMock())
            mock_init.assert_called_once_with(
                './models/ppo-0',
                './summaries',
                'ppo-0',
                50000,
                None,
                False,
                False,
                5,
                0,
                subproc_env_mock.return_value.external_brains,
                0,
                True
            )
Пример #2
0
def test_run_training(
    load_config,
    create_environment_factory,
    subproc_env_mock,
    sampler_manager_mock,
    trainer_factory_mock,
):
    mock_env = MagicMock()
    mock_env.external_brain_names = []
    mock_env.academy_name = "TestAcademyName"
    create_environment_factory.return_value = mock_env
    trainer_config_mock = MagicMock()
    load_config.return_value = trainer_config_mock

    mock_init = MagicMock(return_value=None)
    with patch.object(TrainerController, "__init__", mock_init):
        with patch.object(TrainerController, "start_learning", MagicMock()):
            learn.run_training(0, basic_options())
            mock_init.assert_called_once_with(
                trainer_factory_mock.return_value,
                "./models/ppo",
                "./summaries",
                "ppo",
                50000,
                None,
                False,
                0,
                sampler_manager_mock.return_value,
                None,
            )
Пример #3
0
def test_run_training(
    load_config,
    create_environment_factory,
    subproc_env_mock,
    trainer_factory_mock,
    handle_dir_mock,
    write_run_options_mock,
    write_timing_tree_mock,
):
    mock_env = MagicMock()
    mock_env.external_brain_names = []
    mock_env.academy_name = "TestAcademyName"
    create_environment_factory.return_value = mock_env
    load_config.return_value = yaml.safe_load(MOCK_INITIALIZE_YAML)
    mock_param_manager = MagicMock(return_value="mock_param_manager")
    mock_init = MagicMock(return_value=None)
    with patch.object(EnvironmentParameterManager, "__new__", mock_param_manager):
        with patch.object(TrainerController, "__init__", mock_init):
            with patch.object(TrainerController, "start_learning", MagicMock()):
                options = basic_options()
                learn.run_training(0, options)
                mock_init.assert_called_once_with(
                    trainer_factory_mock.return_value,
                    "results/ppo",
                    "ppo",
                    "mock_param_manager",
                    True,
                    0,
                )
                handle_dir_mock.assert_called_once_with(
                    "results/ppo", False, False, "results/notuselessrun"
                )
                write_timing_tree_mock.assert_called_once_with("results/ppo/run_logs")
                write_run_options_mock.assert_called_once_with("results/ppo", options)
    StatsReporter.writers.clear()  # make sure there aren't any writers as added by learn.py
Пример #4
0
def test_docker_target_path(load_config, create_environment_factory, subproc_env_mock):
    mock_env = MagicMock()
    mock_env.external_brain_names = []
    mock_env.academy_name = 'TestAcademyName'
    create_environment_factory.return_value = mock_env
    trainer_config_mock = MagicMock()
    load_config.return_value = trainer_config_mock

    options_with_docker_target = basic_options()
    options_with_docker_target['--docker-target-name'] = 'dockertarget'

    mock_init = MagicMock(return_value=None)
    with patch.object(TrainerController, "__init__", mock_init):
        with patch.object(TrainerController, "start_learning", MagicMock()):
            learn.run_training(0, 0, options_with_docker_target, MagicMock())
            mock_init.assert_called_once()
            assert(mock_init.call_args[0][0] == '/dockertarget/models/ppo-0')
            assert(mock_init.call_args[0][1] == '/dockertarget/summaries')
Пример #5
0
def test_docker_target_path(load_config, create_environment_factory,
                            subproc_env_mock, sampler_manager_mock):
    mock_env = MagicMock()
    mock_env.external_brain_names = []
    mock_env.academy_name = "TestAcademyName"
    create_environment_factory.return_value = mock_env
    trainer_config_mock = MagicMock()
    load_config.return_value = trainer_config_mock

    options_with_docker_target = basic_options(
        {"--docker-target-name": "dockertarget"})

    mock_init = MagicMock(return_value=None)
    with patch.object(TrainerController, "__init__", mock_init):
        with patch.object(TrainerController, "start_learning", MagicMock()):
            learn.run_training(0, options_with_docker_target)
            mock_init.assert_called_once()
            assert mock_init.call_args[0][1] == "/dockertarget/models/ppo"
            assert mock_init.call_args[0][2] == "/dockertarget/summaries"
    StatsReporter.writers.clear(
    )  # make sure there aren't any writers as added by learn.py
from mlagents_envs.environment import UnityEnvironment
from mlagents.trainers import learn
# This is a non-blocking call that only loads the environment.
# env = UnityEnvironment(file_name=None, seed=1, side_channels=[])
# Start interacting with the evironment.
# env.reset()
# behavior_names = env.behavior_spec.keys()

if __name__ == "__main__":
    opts = learn.parse_command_line([
        "../../ml-agents/config/trainer_config.yaml", "--run-id=testing_3",
        "--force"
    ])
    print(opts)
    learn.run_training(1, opts)