|
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() |
|
|