| import argparse |
| from typing import Optional, List |
| from mlagents.trainers.learn import run_cli |
| from mlagents.trainers.settings import RunOptions |
| from mlagents.trainers.cli_utils import load_config |
|
|
| from mlagents.plugins.trainer_type import register_trainer_plugins |
|
|
|
|
| def parse_command_line(argv: Optional[List[str]] = None) -> argparse.Namespace: |
| parser = argparse.ArgumentParser( |
| formatter_class=argparse.ArgumentDefaultsHelpFormatter |
| ) |
| parser.add_argument("experiment_config_path") |
| return parser.parse_args(argv) |
|
|
|
|
| def main(): |
| """ |
| Provides an alternative CLI interface to mlagents-learn, 'mlagents-run-experiment'. |
| Accepts a JSON/YAML formatted mlagents.trainers.learn.RunOptions object, and executes |
| the run loop as defined in mlagents.trainers.learn.run_cli. |
| """ |
| args = parse_command_line() |
| expt_config = load_config(args.experiment_config_path) |
| _, _ = register_trainer_plugins() |
| run_cli(RunOptions.from_dict(expt_config)) |
|
|
|
|
| if __name__ == "__main__": |
| main() |
|
|