Exemple #1
0
    counter = mp.Value('i', 0)
    steps = mp.Value('i', 0)
    lock = mp.Lock()

    torch.set_num_threads(1)
    torch.manual_seed(args.seed)
    env = create_vizdoom_env(args.config_path, args.train_scenario_path)
    shared_model = ActorCritic(env.observation_space.spaces[0].shape[0],
                               env.action_space, args.topology)
    shared_model.share_memory()

    if args.no_shared:
        optimizer = Adam(shared_model.parameters(), lr=args.lr)
    else:
        optimizer = SharedAdam(shared_model.parameters(), lr=args.lr)
        optimizer.share_memory()

    if args.checkpoint_path and os.path.isfile(args.checkpoint_path):
        checkpoint = torch.load(args.checkpoint_path)
        counter.value = checkpoint['episodes']
        shared_model.load_state_dict(checkpoint['model'])
        shared_model.share_memory()
        optimizer.load_state_dict(checkpoint['optimizer'])
        optimizer.share_memory()
    else:
        checkpoint = {}

    processes = []

    logging = build_logger(
        lambda: dict(episodes=counter.value,