Merge branch 'main' of https://github.com/sisl/InteractionImitation into main
This commit is contained in:
51
README.md
51
README.md
@@ -19,53 +19,28 @@ The INTERACTION dataset contains a two folders which should be copied into a fol
|
|||||||
- the contents of `recorded_trackfiles` should be copied to `./InteractionSimulator/datasets/trackfiles`
|
- the contents of `recorded_trackfiles` should be copied to `./InteractionSimulator/datasets/trackfiles`
|
||||||
- the contents of `maps` should be copied to `./InteractionSimulator/datasets/maps`
|
- the contents of `maps` should be copied to `./InteractionSimulator/datasets/maps`
|
||||||
|
|
||||||
## Processing, saving, and loading expert demos
|
## Processing and saving expert demos
|
||||||
Once the repository has been set up, you can process and save expert track demonstrations with:
|
Once the repository has been set up, you need to generate two separate sets of expert demos for tracks 0-4. The first command generates true joint and individual states and actions necessary for evaluating, saving them in `expert_data/`. The second command generates trajectory rollouts according to individual agent observations, which is later used as expert data for the learning models.
|
||||||
```
|
```
|
||||||
python src/expert_data.py --loc [LOCNUM] --track [TRACKNUM]
|
python -m src.expert --locs='[DR_USA_Roundabout_FT]' --tracks='[0,1,2,3,4]'
|
||||||
```
|
python -m intersimple-expert-rollout-setobs2 --tracks='[0,1,2,3,4]'
|
||||||
You can (and should) process all tracks at once at location 0 with:
|
|
||||||
```
|
|
||||||
python src/expert_data.py --all-tracks
|
|
||||||
```
|
|
||||||
|
|
||||||
You can then train a default behavior cloning policy with the following. Be sure to check help for main.py for running options.
|
|
||||||
```
|
|
||||||
python src/main.py --train
|
|
||||||
```
|
|
||||||
You can run tensorboard by running the following and opening `localhost:6006` (or alternatively port-forwarding 6006 from the remote server)
|
|
||||||
```
|
|
||||||
tensorboard --logdir output/
|
|
||||||
```
|
|
||||||
You can then test the learned policy with the following, and see the animation file in `output/`:
|
|
||||||
```
|
|
||||||
python src/main.py --test
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
You can load the experts actions manually
|
## Tuning hyperparameters and training finalized models
|
||||||
```
|
To tune models, we use `ray[tune]` grid searches. You can run see the commands we used to train in the top half of `train_models.sh`, as well as the hyperparameters we search over in `bc-experiment.py`, `gail-experiment.py`, and `shail-experiment.py`. After training the models, configurations get saved in `best_configs/` (the best SHAIL confg gets copied to a HAIL config, with the appropriate environment parameters changed for ablation). However, upon manual inspection of the training runs, we note some better performance than the automatically-set configs at earlier epochs, so we adjust the `best_configs` manually.
|
||||||
from src import expert_data
|
|
||||||
observations, actions = expert_data.load_expert_data(loc = [LOCNUM], track = [TRACKNUM])
|
After the `best_configs/` are set, we rerun each configuration with multiple seeds. The commands to do so are in the bottom half of `train_models.sh`. This saves different learned policy files to `test_policies/`.
|
||||||
for (s, a) in zip (observations, actions):
|
|
||||||
# do some imitation learning
|
|
||||||
```
|
## Evaluating models
|
||||||
|
To evaluate the learned policies, we rerun each model in particular setting, evaluate all our metrics, and average over different trained model seeds. The commands to do so are in `evaluate_models.sh`.
|
||||||
|
|
||||||
|
|
||||||
## Package Structure
|
## Package Structure
|
||||||
```
|
```
|
||||||
InteractionImitation
|
InteractionImitation
|
||||||
|- demos
|
|- TODO
|
||||||
|- algorithms
|
|
||||||
|- BC
|
|
||||||
|- AdVIL
|
|
||||||
|- nets
|
|
||||||
|- Encoder
|
|
||||||
|- DeepSet
|
|
||||||
|- Decoder
|
|
||||||
|- policies
|
|
||||||
|- discriminators
|
|
||||||
|- demo_generators
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Type Definitions
|
## Type Definitions
|
||||||
|
|||||||
Reference in New Issue
Block a user