Implementation of planning with hybrid diffusion. Includes code for training and evaluation of the method.
To reproduce the experiments, do the following:
- Collect demonstrations using the scripted expert
- Train and evaluate policies
The demo-collection scripts are provided in hybrid_diffusion_planning/dataset/, with the following table listing which script corresponds to which task.
| Task | Demo Collection Script |
|---|---|
| Tool-use | collect_hook_demos.py |
| Arrange | collect_xarm_arrange_demos.py |
| Xarm Sorting | collect_xarm_sorting_demos.py |
| 2D Sorting | collect_sorting_demos.py |
For running training and evaluation, run the associated config file. For HDP for the Hook-task, run
python train.py --config-name=train_hybrid_xarm_hookWe use the evaluation functionality from Diffusion Policy to obtain metrics averaged across 10 epochs and 3 seeds. The multi-seed training is initiated by:
export CUDA_VISIBLE_DEVICES=0,1,2
ray start --head --num-gpus=3
python ray_train_multirun.py --config-dir=diffusion_policy/config --config-name=$config --seeds=42,43,44 --monitor_key=test/mean_scoreMetrics are logged continually during training, and we report the k_min_train_loss metric in the paper.
See the Diffusion Policy repo for more information.
This codebase is based on Diffusion Policy.
