mirror of
https://github.com/illiumst/marl-factory-grid.git
synced 2025-07-05 09:01:36 +02:00
All relevant functional code for A2C Dirt Quadrant setting with small changes to the environment + Different configs for single agent and multiagent settings
This commit is contained in:
@ -3,17 +3,36 @@ from pathlib import Path
|
||||
from marl_factory_grid.algorithms.marl.a2c_dirt import A2C
|
||||
from marl_factory_grid.algorithms.utils import load_yaml_file
|
||||
|
||||
if __name__ == '__main__':
|
||||
def dirt_quadrant_single_agent_training():
|
||||
cfg_path = Path('../marl_factory_grid/algorithms/marl/configs/dirt_quadrant_config.yaml')
|
||||
|
||||
train_cfg = load_yaml_file(cfg_path)
|
||||
# Use environment config with fixed spawnpoints for eval
|
||||
eval_cfg = copy.deepcopy(train_cfg)
|
||||
eval_cfg["env"]["env_name"] = "custom/dirt_quadrant" # Options: two_rooms_one_door_modified, dirt_quadrant
|
||||
eval_cfg["env"]["env_name"] = "custom/dirt_quadrant_eval_config"
|
||||
|
||||
print("Training phase")
|
||||
agent = A2C(train_cfg, eval_cfg)
|
||||
agent.train_loop()
|
||||
agent.plot_reward_development()
|
||||
print("Evaluation phase")
|
||||
agent.eval_loop(10)
|
||||
# Have consecutive episode for eval in single agent case
|
||||
train_cfg["algorithm"]["pile_all_done"] = "all"
|
||||
# agent.load_agents(["run0", "run1"])
|
||||
agent.eval_loop(10)
|
||||
|
||||
|
||||
def dirt_quadrant_multi_agent_eval():
|
||||
cfg_path = Path('../marl_factory_grid/algorithms/marl/configs/MultiAgentConfigs/dirt_quadrant_config.yaml')
|
||||
|
||||
train_cfg = load_yaml_file(cfg_path)
|
||||
# Use environment config with fixed spawnpoints for eval
|
||||
eval_cfg = copy.deepcopy(train_cfg)
|
||||
eval_cfg["env"]["env_name"] = "custom/MultiAgentConfigs/dirt_quadrant_eval_config"
|
||||
agent = A2C(train_cfg, eval_cfg)
|
||||
print("Evaluation phase")
|
||||
agent.load_agents(["run0", "run1"])
|
||||
agent.eval_loop(10)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
dirt_quadrant_single_agent_training()
|
Reference in New Issue
Block a user