$python run_evogym_poet.py
| option | abbrev | default | detail |
|---|---|---|---|
| --name | -n | default | experiment name |
| --task | -t | Parkour-v0 | task name |
| --robot | -r | cat | robot structure name built on "robot_files/" |
| --iteration | -i | 3000 | iterations of poet |
| --niche-num | -n-num | 10 | limit for niche to hold |
| --reproduce-num | -r-num | 10 | number of reproduce at once |
| --admit-child-num | -ac-num | 1 | limit for admission of child at once |
| --reproduce-interval | -r-iv | 30 | reproduce interval |
| --transfer-interval | -t-iv | 15 | transfer interval |
| --save-interval | -s-iv | 0 | save interval, 0 means no save |
| --reproduce-threshold | -r-th | 5.0 | threshold of reward to reproduce new niche |
| --mc-lower | -mc-l | 0.1 | ratio to maximum reward. used for lower minimal criterion. |
| --mc-upper | -mc-u | 0.8 | ratio to maximum reward. used for upper minimal criterion. |
| --width | -w | 100 | width of evogym terrain |
| --first-platform | -fp | 10 | first platform width of evogym terrain |
| --steps-per-iteration | -si-ppo | 4 | number of steps per iteration of poet |
| --learning-rate | -lr-ppo | 2.5e-4 | learning rate |
| --epoch | -e-ppo | 4 | number of ppo epochs per 1 step of ppo |
| --num-mini-batch | -b-ppo | 4 | number of batches for ppo |
| --clip-range | -c-ppo | 0.1 | ppo clip parameter |
| --steps | -s-ppo | 128 | num steps to use in PPO |
| --num-processes | -p-ppo | 4 | number of paralell environment processes for ppo |
| --init-log-std | -std-ppo | 0.0 | initial log std of action distribution |
| --num-cores | -c | 4 | number of parallel evaluation processes |
| --reset-pool | false | reset pool instance every iteration |
after run_evogym_poet, make {gif, jpg} file for each of all niches. output to "./out/evogym_poet/{expt name}/figure/{gif, jpg}/"
$python make_figures_poet.py {experiment name}
| option | abbrev | default | detail |
|---|---|---|---|
| name of experiment for making figures | |||
| --specified | -s | input id, make figure for the only specified genome | |
| --save-type | -st | gif | file type (choose from [gif, jpg]) |
| --track-robot | -rt | false | in case of save type is gif, track robot with camera |
| --interval | -i | timestep | in case of save type is jpg, type of interval for robot drawing (choose from [timestep, distance]) |
| --resolution-scale | -rs | 32.0 | jpg resolution scale when output monochrome image, try this argument change. |
| --start-timestep | 0 | start timestep of render | |
| --timestep-interval | -ti | 80 | timestep interval for robot drawing (if interval is hybrid, it should be about 40) |
| --blur | -b | 0 | in case of jpg, timesteps for rendering motion blur, 0 means no blur |
| --blur-temperature | -bt | 0.6 | blur temperature, up to 1.0 |
| --distance-interval | -di | 0.8 | distance interval for robot drawing |
| --display-timestep | false | display timestep above robot | |
| --draw-trajectory | false | draw robot trajectory as line | |
| --num-cores | -c | 1 | number of parallel making processes |
| --not-overwrite | false | skip process if already figure exists | |
| --no-multi | false | do without using multiprocessing. if error occur, try this option. |
after run poet, validate pros of poet by running ppo algorithm on the only one environment.
$python run_evogym_ppo.py {experiment name} {niche key}
| option | abbrev | default | detail |
|---|---|---|---|
| experiment name of poet | |||
| target niche key | |||
| --num | -n | 5 | how many times to run PPO |
| --num-processes | -p | 4 | how many training CPU processes to use |
| --steps | -s | 256 | num steps to use in PPO |
| --num-mini-batch | -b | 4 | number of batches for ppo |
| --epochs | -e | 4 | number of ppo epochs |
| --train-iters | -i | 2500 | learning iterations of PPO |
| --evaluation-interval | -ei | 25 | frequency to evaluate policy |
| --lerning-rate | -lr | 2.5e-4 | learning rate |
| --gamma | 0.99 | discount factor for rewards | |
| --clip-range | -c | 0.1 | ppo clip parameter |
| --init-log-std | -std | 0.0 | initial log std of action distribution |
after run_evogym_ppo, make {gif, jpg} file for each of niche. output to "./out/evogym_ppo/{expt name}/niche/{niche_key}/ppo_result/figure/{gif, jpg}/"
$python make_figures_ppo.py {experiment name} {niche key}
| option | abbrev | default | detail |
|---|---|---|---|
| name of experiment for making figures | |||
| target niche key | |||
| --save-type | -st | gif | file type (choose from [gif, jpg]) |
| --track-robot | -rt | false | in case of save type is gif, track robot with camera |
| --interval | -i | timestep | in case of save type is jpg, type of interval for robot drawing (choose from [timestep, distance]) |
| --resolution-scale | -rs | 32.0 | jpg resolution scale when output monochrome image, try this argument change. |
| --start-timestep | 0 | start timestep of render | |
| --timestep-interval | -ti | 80 | timestep interval for robot drawing (if interval is hybrid, it should be about 40) |
| --blur | -b | 0 | in case of jpg, timesteps for rendering motion blur, 0 means no blur |
| --blur-temperature | -bt | 0.6 | blur temperature, up to 1.0 |
| --distance-interval | -di | 0.8 | distance interval for robot drawing |
| --display-timestep | false | display timestep above robot | |
| --draw-trajectory | false | draw robot trajectory as line | |
| --num-cores | -c | 1 | number of parallel making processes |
| --not-overwrite | false | skip process if already figure exists | |
| --no-multi | false | do without using multiprocessing. if error occur, try this option. |