Tianshou/examples/mujoco/gen_json.py
Jiayi Weng 2a7c151738
Add vecenv wrappers for obs_norm to support running mujoco experiment with envpool (#628)
- add VectorEnvWrapper and VectorEnvNormObs
- obs_rms store in policy save/load
- align mujoco scripts with atari: obs_norm, envpool, wandb and README
2022-05-05 19:55:15 +08:00

35 lines
980 B
Python
Executable File

#!/usr/bin/env python3
import csv
import json
import os
import sys
def merge(rootdir):
"""format: $rootdir/$algo/*.csv"""
result = []
for path, _, filenames in os.walk(rootdir):
filenames = [f for f in filenames if f.endswith('.csv')]
if len(filenames) == 0:
continue
elif len(filenames) != 1:
print(f'More than 1 csv found in {path}!')
continue
algo = os.path.relpath(path, rootdir).upper()
reader = csv.DictReader(open(os.path.join(path, filenames[0])))
for row in reader:
result.append(
{
'env_step': int(row['env_step']),
'rew': float(row['reward']),
'rew_std': float(row['reward:shaded']),
'Agent': algo,
}
)
open(os.path.join(rootdir, 'result.json'), 'w').write(json.dumps(result))
if __name__ == "__main__":
merge(sys.argv[-1])