From 8501ba977d1d03902ac38b0edc468c1d553b37c6 Mon Sep 17 00:00:00 2001 From: Nikhil Pinnaparaju Date: Sat, 8 Jul 2023 15:03:00 -0500 Subject: [PATCH 1/5] Modifying make_env function to enable task information to propagate --- train.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/train.py b/train.py index 5807af5..be3c244 100644 --- a/train.py +++ b/train.py @@ -5,6 +5,7 @@ from ctypes import util import nmmo +from nmmo.task.task_api import make_team_tasks import pufferlib.emulation import pufferlib.frameworks.cleanrl import pufferlib.registry.nmmo @@ -198,10 +199,25 @@ ) def make_env(): - return nmmo.Env(config) - # if args.model_type in ["realikun", "realikun-simplified"]: - # env = NMMOTeamEnv( - # config, team_helper, rewards_config, moves_only=args.moves_only) + import pickle as pkl + import random + + with open('./pickled_task_with_embs.pkl', 'rb') as f: + task_spec = pkl.load(f) + + teams = team_helper.teams + + task_spec_sampled = random.sample(task_spec, len(teams)) + tasks = make_team_tasks(teams, task_spec_sampled) + make_task_fn = lambda: tasks + + env = nmmo.Env(config) + class MyNMMO(nmmo.Env): + def reset(self, *args, **kwargs): + return self.reset(*args, make_task_fn=make_task_fn, **kwargs) + env = MyNMMO(env) + + return env binding = pufferlib.emulation.Binding( env_creator=make_env, From 3a46ba5ac55f76c2f96c69273c43413f1684b553 Mon Sep 17 00:00:00 2001 From: Nikhil Pinnaparaju Date: Sun, 9 Jul 2023 01:52:51 -0500 Subject: [PATCH 2/5] adding super init to mynmmo child class --- train.py | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/train.py b/train.py index be3c244..172af29 100644 --- a/train.py +++ b/train.py @@ -5,10 +5,10 @@ from ctypes import util import nmmo -from nmmo.task.task_api import make_team_tasks import pufferlib.emulation import pufferlib.frameworks.cleanrl import pufferlib.registry.nmmo +from nmmo.task.task_api import make_team_tasks import torch import clean_pufferl @@ -19,6 +19,7 @@ from lib.policy_pool.json_policy_pool import JsonPolicyPool from lib.policy_pool.policy_pool import PolicyPool from lib.team.team_helper import TeamHelper +from pettingzoo.utils.env import AgentID, ParallelEnv if __name__ == "__main__": logging.basicConfig(level=logging.INFO) @@ -31,7 +32,7 @@ help="path to model to load (default: None)") parser.add_argument( "--model.type", - dest="model_type", type=str, default="realikun", + dest="model_type", type=str, default="basic", help="model type (default: realikun)") parser.add_argument( @@ -47,7 +48,7 @@ "--env.num_learners", dest="num_learners", type=int, default=16, help="number of agents running he learner policy (default: 16)") parser.add_argument( - "--env.max_episode_length", dest="max_episode_length", type=int, default=1024, + "--env.max_episode_length", dest="max_episode_length", type=int, default=128, help="number of steps per episode (default: 1024)") parser.add_argument( "--env.death_fog_tick", dest="death_fog_tick", type=int, default=None, @@ -61,7 +62,7 @@ action="store_true", default=False, help="reset on death (default: False)") parser.add_argument( - "--env.num_maps", dest="num_maps", type=int, default=128, + "--env.num_maps", dest="num_maps", type=int, default=10, help="number of maps to use for training (default: 1)") parser.add_argument( "--env.maps_path", dest="maps_path", type=str, default="maps/train/", @@ -103,7 +104,7 @@ "--rollout.num_envs", dest="num_envs", type=int, default=4, help="number of environments to use for training (default: 1)") parser.add_argument( - "--rollout.num_buffers", dest="num_buffers", type=int, default=4, + "--rollout.num_buffers", dest="num_buffers", type=int, default=1, help="number of buffers to use for training (default: 4)") parser.add_argument( "--rollout.batch_size", dest="rollout_batch_size", type=int, default=2**14, @@ -141,7 +142,7 @@ help="wandb entity name (default: None)") parser.add_argument( - "--ppo.bptt_horizon", dest="bptt_horizon", type=int, default=8, + "--ppo.bptt_horizon", dest="bptt_horizon", type=int, default=4, help="train on bptt_horizon steps of a rollout at a time. " "use this to reduce GPU memory (default: 16)") @@ -151,7 +152,7 @@ help="number of rows in a training batch (default: 32)") parser.add_argument( "--ppo.update_epochs", - dest="ppo_update_epochs", type=int, default=4, + dest="ppo_update_epochs", type=int, default=1, help="number of update epochs to use for training (default: 4)") parser.add_argument( "--ppo.learning_rate", dest="ppo_learning_rate", @@ -200,24 +201,39 @@ def make_env(): import pickle as pkl + import numpy as np import random + import os + print('cwd', os.getcwd()) with open('./pickled_task_with_embs.pkl', 'rb') as f: task_spec = pkl.load(f) + # tasks = [d[1] for d in task_spec] + num_tasks = len(task_spec) teams = team_helper.teams + single_task = task_spec[0] + # make_task_fn = lambda: tasks + # task_spec_sampled =np.random.choice(task_spec, size=len(teams), replace=False) task_spec_sampled = random.sample(task_spec, len(teams)) tasks = make_team_tasks(teams, task_spec_sampled) make_task_fn = lambda: tasks env = nmmo.Env(config) class MyNMMO(nmmo.Env): + def __init__(self, env): + super().__init__() + self.env = env + def reset(self, *args, **kwargs): - return self.reset(*args, make_task_fn=make_task_fn, **kwargs) + return self.env.reset(*args, make_task_fn=make_task_fn, **kwargs) env = MyNMMO(env) return env + # if args.model_type in ["realikun", "realikun-simplified"]: + # env = NMMOTeamEnv( + # config, team_helper, rewards_config, moves_only=args.moves_only) binding = pufferlib.emulation.Binding( env_creator=make_env, From 412eaee2c4dabe51683a020463cb0dc426f9883a Mon Sep 17 00:00:00 2001 From: Nikhil Pinnaparaju Date: Sun, 9 Jul 2023 01:55:31 -0500 Subject: [PATCH 3/5] restoring defaults --- train.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/train.py b/train.py index 172af29..89ee920 100644 --- a/train.py +++ b/train.py @@ -48,7 +48,7 @@ "--env.num_learners", dest="num_learners", type=int, default=16, help="number of agents running he learner policy (default: 16)") parser.add_argument( - "--env.max_episode_length", dest="max_episode_length", type=int, default=128, + "--env.max_episode_length", dest="max_episode_length", type=int, default=1024, help="number of steps per episode (default: 1024)") parser.add_argument( "--env.death_fog_tick", dest="death_fog_tick", type=int, default=None, @@ -62,7 +62,7 @@ action="store_true", default=False, help="reset on death (default: False)") parser.add_argument( - "--env.num_maps", dest="num_maps", type=int, default=10, + "--env.num_maps", dest="num_maps", type=int, default=1, help="number of maps to use for training (default: 1)") parser.add_argument( "--env.maps_path", dest="maps_path", type=str, default="maps/train/", @@ -101,10 +101,10 @@ "--rollout.num_cores", dest="num_cores", type=int, default=None, help="number of cores to use for training (default: num_envs)") parser.add_argument( - "--rollout.num_envs", dest="num_envs", type=int, default=4, + "--rollout.num_envs", dest="num_envs", type=int, default=1, help="number of environments to use for training (default: 1)") parser.add_argument( - "--rollout.num_buffers", dest="num_buffers", type=int, default=1, + "--rollout.num_buffers", dest="num_buffers", type=int, default=4, help="number of buffers to use for training (default: 4)") parser.add_argument( "--rollout.batch_size", dest="rollout_batch_size", type=int, default=2**14, @@ -142,7 +142,7 @@ help="wandb entity name (default: None)") parser.add_argument( - "--ppo.bptt_horizon", dest="bptt_horizon", type=int, default=4, + "--ppo.bptt_horizon", dest="bptt_horizon", type=int, default=16, help="train on bptt_horizon steps of a rollout at a time. " "use this to reduce GPU memory (default: 16)") @@ -152,7 +152,7 @@ help="number of rows in a training batch (default: 32)") parser.add_argument( "--ppo.update_epochs", - dest="ppo_update_epochs", type=int, default=1, + dest="ppo_update_epochs", type=int, default=4, help="number of update epochs to use for training (default: 4)") parser.add_argument( "--ppo.learning_rate", dest="ppo_learning_rate", From 261de96bf7b1091f49ee637b739824df376593a9 Mon Sep 17 00:00:00 2001 From: Nikhil Pinnaparaju Date: Tue, 11 Jul 2023 17:16:04 -0500 Subject: [PATCH 4/5] working version of task propagation wrapper class for Nmmo envs --- train.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/train.py b/train.py index 89ee920..8dc51bf 100644 --- a/train.py +++ b/train.py @@ -19,7 +19,6 @@ from lib.policy_pool.json_policy_pool import JsonPolicyPool from lib.policy_pool.policy_pool import PolicyPool from lib.team.team_helper import TeamHelper -from pettingzoo.utils.env import AgentID, ParallelEnv if __name__ == "__main__": logging.basicConfig(level=logging.INFO) @@ -219,16 +218,16 @@ def make_env(): task_spec_sampled = random.sample(task_spec, len(teams)) tasks = make_team_tasks(teams, task_spec_sampled) make_task_fn = lambda: tasks - - env = nmmo.Env(config) + + # env = nmmo.Env(config) class MyNMMO(nmmo.Env): - def __init__(self, env): - super().__init__() - self.env = env + def __init__(self, config): + super().__init__(config) def reset(self, *args, **kwargs): - return self.env.reset(*args, make_task_fn=make_task_fn, **kwargs) - env = MyNMMO(env) + return super().reset(*args, make_task_fn=make_task_fn, **kwargs) + + env = MyNMMO(config) return env # if args.model_type in ["realikun", "realikun-simplified"]: From d313f174a417492bd58bea0635dcd66e7de35cfd Mon Sep 17 00:00:00 2001 From: Nikhil Pinnaparaju Date: Tue, 11 Jul 2023 17:35:14 -0500 Subject: [PATCH 5/5] updating defaults, argparse default strings and adding pickle file for ref --- pickled_task_with_embs.pkl | Bin 0 -> 100023 bytes train.py | 18 +++++++++--------- 2 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 pickled_task_with_embs.pkl diff --git a/pickled_task_with_embs.pkl b/pickled_task_with_embs.pkl new file mode 100644 index 0000000000000000000000000000000000000000..4aa383c480fe8f883cf02d75bfe0e20d9b5bb0c3 GIT binary patch literal 100023 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

j1zoG`Caiw9nb=j}TuO7Ye! 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®Upl=RdD3Y-i@VCaNzbO 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 b$?E-~9+eMty literal 0 HcmV?d00001 diff --git a/train.py b/train.py index 8dc51bf..7eed8d5 100644 --- a/train.py +++ b/train.py @@ -31,7 +31,7 @@ help="path to model to load (default: None)") parser.add_argument( "--model.type", - dest="model_type", type=str, default="basic", + dest="model_type", type=str, default="realikun", help="model type (default: realikun)") parser.add_argument( @@ -61,8 +61,8 @@ action="store_true", default=False, help="reset on death (default: False)") parser.add_argument( - "--env.num_maps", dest="num_maps", type=int, default=1, - help="number of maps to use for training (default: 1)") + "--env.num_maps", dest="num_maps", type=int, default=128, + help="number of maps to use for training (default: 128)") parser.add_argument( "--env.maps_path", dest="maps_path", type=str, default="maps/train/", help="path to maps to use for training (default: None)") @@ -100,8 +100,8 @@ "--rollout.num_cores", dest="num_cores", type=int, default=None, help="number of cores to use for training (default: num_envs)") parser.add_argument( - "--rollout.num_envs", dest="num_envs", type=int, default=1, - help="number of environments to use for training (default: 1)") + "--rollout.num_envs", dest="num_envs", type=int, default=4, + help="number of environments to use for training (default: 4)") parser.add_argument( "--rollout.num_buffers", dest="num_buffers", type=int, default=4, help="number of buffers to use for training (default: 4)") @@ -141,9 +141,9 @@ help="wandb entity name (default: None)") parser.add_argument( - "--ppo.bptt_horizon", dest="bptt_horizon", type=int, default=16, + "--ppo.bptt_horizon", dest="bptt_horizon", type=int, default=8, help="train on bptt_horizon steps of a rollout at a time. " - "use this to reduce GPU memory (default: 16)") + "use this to reduce GPU memory (default: 8)") parser.add_argument( "--ppo.training_batch_size", @@ -220,14 +220,14 @@ def make_env(): make_task_fn = lambda: tasks # env = nmmo.Env(config) - class MyNMMO(nmmo.Env): + class NMMOTaskWrapper(nmmo.Env): def __init__(self, config): super().__init__(config) def reset(self, *args, **kwargs): return super().reset(*args, make_task_fn=make_task_fn, **kwargs) - env = MyNMMO(config) + env = NMMOTaskWrapper(config) return env # if args.model_type in ["realikun", "realikun-simplified"]: