Source code for ailiga.train

import argparse

from ailiga import env
from ailiga.all_fighters import get_all_fighters, get_fighter_by_name
from ailiga.trained_fighter import TrainedFighter


[docs]def train(a_fighter=None, a_env=None, a_force=False): """Train a fighter or all fighters.""" if not a_env: envs = env.get_envs().keys() else: envs = a_env for e in envs: fghts = [] if not a_fighter: fghts = get_all_fighters() else: fghts = [get_fighter_by_name(agent) for agent in a_fighter] if not a_force: # get all fighters that are valid for the given env fghts = [ a for a in fghts if a.valid_env(e) if issubclass(a, TrainedFighter) ] if fghts: for fg in fghts: f = fg(env.get_env(e)) f.train() else: print("No fighters found for env", e)
[docs]def main(): parser = argparse.ArgumentParser(description="Train fighters.") parser.add_argument( "--fighter", type=str, nargs="+", default=[], ) parser.add_argument( "-f", "--force", action="store_true", help="force non checked constellations", default=False, ) parser.add_argument("--env", type=str, nargs="+", default=[]) args = parser.parse_args() train(args.fighter, args.env, args.force)
if __name__ == "__main__": main()