mirror of
https://github.com/illiumst/marl-factory-grid.git
synced 2025-06-18 18:52:52 +02:00
random_testrun.py added as starting point and eval. setting for dev.
This commit is contained in:
60
random_testrun.py
Normal file
60
random_testrun.py
Normal file
@ -0,0 +1,60 @@
|
||||
from pathlib import Path
|
||||
from random import randint
|
||||
from tqdm import trange
|
||||
|
||||
from marl_factory_grid.environment.factory import Factory
|
||||
|
||||
from marl_factory_grid.utils.logging.envmonitor import EnvMonitor
|
||||
from marl_factory_grid.utils.logging.recorder import EnvRecorder
|
||||
from marl_factory_grid.utils.tools import ConfigExplainer
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# Render at each step?
|
||||
render = True
|
||||
# Reveal all possible Modules (Entities, Rules, Agents[Actions, Observations], etc.)
|
||||
explain_config = False
|
||||
# Collect statistics?
|
||||
monitor = False
|
||||
# Record as Protobuf?
|
||||
record = False
|
||||
|
||||
run_path = Path('study_out')
|
||||
|
||||
if explain_config:
|
||||
ce = ConfigExplainer()
|
||||
ce.save_all(run_path / 'all_out.yaml')
|
||||
|
||||
# Path to config File
|
||||
path = Path('marl_factory_grid/configs/narrow_corridor.yaml')
|
||||
|
||||
# Env Init
|
||||
factory = Factory(path)
|
||||
|
||||
# Record and Monitor
|
||||
if monitor:
|
||||
factory = EnvMonitor(factory)
|
||||
if record:
|
||||
factory = EnvRecorder(factory)
|
||||
|
||||
# RL learn Loop
|
||||
for episode in trange(500):
|
||||
_ = factory.reset()
|
||||
done = False
|
||||
if render:
|
||||
factory.render()
|
||||
action_spaces = factory.action_space
|
||||
while not done:
|
||||
a = [randint(0, x.n - 1) for x in action_spaces]
|
||||
obs_type, _, _, done, info = factory.step(a)
|
||||
if render:
|
||||
factory.render()
|
||||
if done:
|
||||
print(f'Episode {episode} done...')
|
||||
break
|
||||
|
||||
if monitor:
|
||||
factory.save_run(run_path / 'test.pkl')
|
||||
if record:
|
||||
factory.save_records(run_path / 'test.pb')
|
||||
print('Done!!! Goodbye....')
|
Reference in New Issue
Block a user