Unity 机器学习代理工具包 (ML-Agents) 是一个开源项目,它使游戏和模拟能够作为训练智能代理的环境。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

78 行
2.8 KiB

import unittest.mock as mock
import pytest
from unittest.mock import *
from mlagents.trainers import learn, TrainerController
@pytest.fixture
def basic_options():
return {
'--docker-target-name': 'None',
'--env': 'None',
'--run-id': 'ppo',
'--load': False,
'--train': False,
'--save-freq': '50000',
'--keep-checkpoints': '5',
'--base-port': '5005',
'--num-envs': '1',
'--curriculum': 'None',
'--lesson': '0',
'--slow': False,
'--no-graphics': False,
'<trainer-config-path>': 'basic_path',
'--debug': False,
}
@patch('mlagents.trainers.learn.SubprocessUnityEnvironment')
@patch('mlagents.trainers.learn.create_environment_factory')
@patch('mlagents.trainers.learn.load_config')
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',
'./summaries',
'ppo-0',
50000,
None,
False,
False,
5,
0,
subproc_env_mock.return_value.external_brains,
0
)
@patch('mlagents.trainers.learn.SubprocessUnityEnvironment')
@patch('mlagents.trainers.learn.create_environment_factory')
@patch('mlagents.trainers.learn.load_config')
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')
assert(mock_init.call_args[0][1] == '/dockertarget/summaries')