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,