├── .gitignore
├── LICENCE.txt
├── README.md
├── assets
├── CleanDiffuser.pdf
├── framework.png
└── github_logo.jpg
├── cleandiffuser
├── __init__.py
├── classifier
│ ├── __init__.py
│ ├── base.py
│ ├── mse_classifier.py
│ ├── qgpo_classifier.py
│ └── rew_classifiers.py
├── dataset
│ ├── base_dataset.py
│ ├── block_push_dataset.py
│ ├── d4rl_antmaze_dataset.py
│ ├── d4rl_kitchen_dataset.py
│ ├── d4rl_maze2d_dataset.py
│ ├── d4rl_mujoco_dataset.py
│ ├── dataset_utils.py
│ ├── imagecodecs.py
│ ├── kitchen_dataset.py
│ ├── pusht_dataset.py
│ ├── replay_buffer.py
│ ├── robomimic_dataset.py
│ ├── robomimic_rl_dataset.py
│ └── rotation_conversions.py
├── diffusion
│ ├── __init__.py
│ ├── basic.py
│ ├── consistency_model.py
│ ├── ddim.py
│ ├── ddpm.py
│ ├── diffusionsde.py
│ ├── dpmsolver.py
│ ├── dpmsolver_discrete.py
│ ├── edm.py
│ ├── edmddim.py
│ ├── newedm.py
│ ├── rectifiedflow.py
│ ├── veode.py
│ ├── vpode.py
│ └── vpsde.py
├── env
│ ├── async_vector_env.py
│ ├── block_pushing
│ │ ├── __init__.py
│ │ ├── assets
│ │ │ ├── block.urdf
│ │ │ ├── block2.urdf
│ │ │ ├── blocks
│ │ │ │ ├── blue_cube.urdf
│ │ │ │ ├── cube.obj
│ │ │ │ ├── green_star.urdf
│ │ │ │ ├── moon.obj
│ │ │ │ ├── pentagon.obj
│ │ │ │ ├── red_moon.urdf
│ │ │ │ ├── star.obj
│ │ │ │ └── yellow_pentagon.urdf
│ │ │ ├── insert.urdf
│ │ │ ├── plane.obj
│ │ │ ├── suction
│ │ │ │ ├── base.obj
│ │ │ │ ├── cylinder.urdf
│ │ │ │ ├── cylinder_real.urdf
│ │ │ │ ├── head.obj
│ │ │ │ ├── mid.obj
│ │ │ │ ├── suction-base.urdf
│ │ │ │ ├── suction-head-long.urdf
│ │ │ │ ├── suction-head.urdf
│ │ │ │ └── tip.obj
│ │ │ ├── workspace.urdf
│ │ │ ├── workspace_real.urdf
│ │ │ ├── zone.obj
│ │ │ ├── zone.urdf
│ │ │ └── zone2.urdf
│ │ ├── block_pushing.py
│ │ ├── block_pushing_discontinuous.py
│ │ ├── block_pushing_multimodal.py
│ │ ├── oracles
│ │ │ ├── discontinuous_push_oracle.py
│ │ │ ├── multimodal_push_oracle.py
│ │ │ ├── oriented_push_oracle.py
│ │ │ ├── pushing_info.py
│ │ │ └── reach_oracle.py
│ │ └── utils
│ │ │ ├── pose3d.py
│ │ │ ├── utils_pybullet.py
│ │ │ └── xarm_sim_robot.py
│ ├── kitchen
│ │ ├── __init__.py
│ │ ├── base.py
│ │ ├── kitchen_lowdim_wrapper.py
│ │ ├── kitchen_util.py
│ │ ├── relay_policy_learning
│ │ │ ├── adept_envs
│ │ │ │ ├── .pylintrc
│ │ │ │ ├── .style.yapf
│ │ │ │ └── adept_envs
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── base_robot.py
│ │ │ │ │ ├── franka
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── assets
│ │ │ │ │ │ └── franka_kitchen_jntpos_act_ab.xml
│ │ │ │ │ ├── kitchen_multitask_v0.py
│ │ │ │ │ └── robot
│ │ │ │ │ │ ├── franka_config.xml
│ │ │ │ │ │ └── franka_robot.py
│ │ │ │ │ ├── mujoco_env.py
│ │ │ │ │ ├── robot_env.py
│ │ │ │ │ ├── simulation
│ │ │ │ │ ├── module.py
│ │ │ │ │ ├── renderer.py
│ │ │ │ │ └── sim_robot.py
│ │ │ │ │ └── utils
│ │ │ │ │ ├── config.py
│ │ │ │ │ ├── configurable.py
│ │ │ │ │ ├── constants.py
│ │ │ │ │ ├── parse_demos.py
│ │ │ │ │ └── quatmath.py
│ │ │ ├── adept_models
│ │ │ │ ├── .gitignore
│ │ │ │ ├── CONTRIBUTING.public.md
│ │ │ │ ├── LICENSE
│ │ │ │ ├── README.public.md
│ │ │ │ ├── __init__.py
│ │ │ │ ├── kitchen
│ │ │ │ │ ├── assets
│ │ │ │ │ │ ├── backwall_asset.xml
│ │ │ │ │ │ ├── backwall_chain.xml
│ │ │ │ │ │ ├── counters_asset.xml
│ │ │ │ │ │ ├── counters_chain.xml
│ │ │ │ │ │ ├── hingecabinet_asset.xml
│ │ │ │ │ │ ├── hingecabinet_chain.xml
│ │ │ │ │ │ ├── kettle_asset.xml
│ │ │ │ │ │ ├── kettle_chain.xml
│ │ │ │ │ │ ├── microwave_asset.xml
│ │ │ │ │ │ ├── microwave_chain.xml
│ │ │ │ │ │ ├── oven_asset.xml
│ │ │ │ │ │ ├── oven_chain.xml
│ │ │ │ │ │ ├── slidecabinet_asset.xml
│ │ │ │ │ │ └── slidecabinet_chain.xml
│ │ │ │ │ ├── counters.xml
│ │ │ │ │ ├── hingecabinet.xml
│ │ │ │ │ ├── kettle.xml
│ │ │ │ │ ├── kitchen.xml
│ │ │ │ │ ├── meshes
│ │ │ │ │ │ ├── burnerplate.stl
│ │ │ │ │ │ ├── burnerplate_mesh.stl
│ │ │ │ │ │ ├── cabinetbase.stl
│ │ │ │ │ │ ├── cabinetdrawer.stl
│ │ │ │ │ │ ├── cabinethandle.stl
│ │ │ │ │ │ ├── countertop.stl
│ │ │ │ │ │ ├── faucet.stl
│ │ │ │ │ │ ├── handle2.stl
│ │ │ │ │ │ ├── hingecabinet.stl
│ │ │ │ │ │ ├── hingedoor.stl
│ │ │ │ │ │ ├── hingehandle.stl
│ │ │ │ │ │ ├── hood.stl
│ │ │ │ │ │ ├── kettle.stl
│ │ │ │ │ │ ├── kettlehandle.stl
│ │ │ │ │ │ ├── knob.stl
│ │ │ │ │ │ ├── lightswitch.stl
│ │ │ │ │ │ ├── lightswitchbase.stl
│ │ │ │ │ │ ├── micro.stl
│ │ │ │ │ │ ├── microbutton.stl
│ │ │ │ │ │ ├── microdoor.stl
│ │ │ │ │ │ ├── microefeet.stl
│ │ │ │ │ │ ├── microfeet.stl
│ │ │ │ │ │ ├── microhandle.stl
│ │ │ │ │ │ ├── microwindow.stl
│ │ │ │ │ │ ├── oven.stl
│ │ │ │ │ │ ├── ovenhandle.stl
│ │ │ │ │ │ ├── oventop.stl
│ │ │ │ │ │ ├── ovenwindow.stl
│ │ │ │ │ │ ├── slidecabinet.stl
│ │ │ │ │ │ ├── slidedoor.stl
│ │ │ │ │ │ ├── stoverim.stl
│ │ │ │ │ │ ├── tile.stl
│ │ │ │ │ │ └── wall.stl
│ │ │ │ │ ├── microwave.xml
│ │ │ │ │ ├── oven.xml
│ │ │ │ │ ├── slidecabinet.xml
│ │ │ │ │ └── textures
│ │ │ │ │ │ ├── marble1.png
│ │ │ │ │ │ ├── metal1.png
│ │ │ │ │ │ ├── tile1.png
│ │ │ │ │ │ └── wood1.png
│ │ │ │ └── scenes
│ │ │ │ │ ├── basic_scene.xml
│ │ │ │ │ └── textures
│ │ │ │ │ ├── white_marble_tile.png
│ │ │ │ │ └── white_marble_tile2.png
│ │ │ └── third_party
│ │ │ │ └── franka
│ │ │ │ ├── LICENSE
│ │ │ │ ├── README.md
│ │ │ │ ├── assets
│ │ │ │ ├── actuator0.xml
│ │ │ │ ├── actuator1.xml
│ │ │ │ ├── assets.xml
│ │ │ │ ├── basic_scene.xml
│ │ │ │ ├── chain0.xml
│ │ │ │ ├── chain0_overlay.xml
│ │ │ │ ├── chain1.xml
│ │ │ │ └── teleop_actuator.xml
│ │ │ │ ├── bi-franka_panda.xml
│ │ │ │ ├── franka_panda.png
│ │ │ │ ├── franka_panda.xml
│ │ │ │ ├── franka_panda_teleop.xml
│ │ │ │ └── meshes
│ │ │ │ ├── collision
│ │ │ │ ├── finger.stl
│ │ │ │ ├── hand.stl
│ │ │ │ ├── link0.stl
│ │ │ │ ├── link1.stl
│ │ │ │ ├── link2.stl
│ │ │ │ ├── link3.stl
│ │ │ │ ├── link4.stl
│ │ │ │ ├── link5.stl
│ │ │ │ ├── link6.stl
│ │ │ │ └── link7.stl
│ │ │ │ └── visual
│ │ │ │ ├── finger.stl
│ │ │ │ ├── hand.stl
│ │ │ │ ├── link0.stl
│ │ │ │ ├── link1.stl
│ │ │ │ ├── link2.stl
│ │ │ │ ├── link3.stl
│ │ │ │ ├── link4.stl
│ │ │ │ ├── link5.stl
│ │ │ │ ├── link6.stl
│ │ │ │ └── link7.stl
│ │ └── v0.py
│ ├── pusht
│ │ ├── __init__.py
│ │ ├── pusht_env.py
│ │ ├── pusht_image_env.py
│ │ ├── pusht_keypoints_env.py
│ │ ├── pymunk_keypoint_manager.py
│ │ └── pymunk_override.py
│ ├── robomimic
│ │ ├── robomimic_image_wrapper.py
│ │ └── robomimic_lowdim_wrapper.py
│ ├── utils.py
│ └── wrapper.py
├── invdynamic
│ ├── __init__.py
│ ├── common.py
│ └── mlp.py
├── nn_classifier
│ ├── __init__.py
│ ├── base_nn_classifier.py
│ ├── half_dit.py
│ ├── half_jannerunet.py
│ └── mlp.py
├── nn_condition
│ ├── __init__.py
│ ├── base_nn_condition.py
│ ├── early_conv_vit.py
│ ├── mlp.py
│ ├── multi_image_condition.py
│ ├── pearce_obs_condition.py
│ ├── positional.py
│ └── resnets.py
├── nn_diffusion
│ ├── __init__.py
│ ├── base_nn_diffusion.py
│ ├── chitransformer.py
│ ├── chiunet.py
│ ├── dit.py
│ ├── dqlmlp.py
│ ├── dvinvmlp.py
│ ├── idqlmlp.py
│ ├── jannerunet.py
│ ├── mlps.py
│ ├── pearcemlp.py
│ ├── pearcetransformer.py
│ └── sfbc_unet.py
└── utils
│ ├── __init__.py
│ ├── building_blocks.py
│ ├── crop_randomizer.py
│ ├── iql.py
│ ├── normalizers.py
│ ├── tensor_utils.py
│ ├── typings.py
│ └── utils.py
├── configs
├── adaptdiffuser
│ ├── antmaze
│ │ ├── antmaze.yaml
│ │ └── task
│ │ │ ├── antmaze-large-diverse-v2.yaml
│ │ │ ├── antmaze-large-play-v2.yaml
│ │ │ ├── antmaze-medium-diverse-v2.yaml
│ │ │ └── antmaze-medium-play-v2.yaml
│ ├── kitchen
│ │ ├── kitchen.yaml
│ │ └── task
│ │ │ ├── kitchen-mixed-v0.yaml
│ │ │ └── kitchen-partial-v0.yaml
│ └── mujoco
│ │ ├── mujoco.yaml
│ │ └── task
│ │ ├── halfcheetah-medium-expert-v2.yaml
│ │ ├── halfcheetah-medium-replay-v2.yaml
│ │ ├── halfcheetah-medium-v2.yaml
│ │ ├── hopper-medium-expert-v2.yaml
│ │ ├── hopper-medium-replay-v2.yaml
│ │ ├── hopper-medium-v2.yaml
│ │ ├── walker2d-medium-expert-v2.yaml
│ │ ├── walker2d-medium-replay-v2.yaml
│ │ └── walker2d-medium-v2.yaml
├── dbc
│ ├── kitchen
│ │ ├── dit
│ │ │ └── kitchen.yaml
│ │ └── pearce_mlp
│ │ │ └── kitchen.yaml
│ ├── pusht
│ │ ├── dit
│ │ │ ├── pusht.yaml
│ │ │ ├── pusht_image.yaml
│ │ │ └── pusht_keypoint.yaml
│ │ └── pearce_mlp
│ │ │ ├── pusht.yaml
│ │ │ ├── pusht_image.yaml
│ │ │ └── pusht_keypoint.yaml
│ ├── robomimic
│ │ ├── dit
│ │ │ ├── can.yaml
│ │ │ ├── lift.yaml
│ │ │ ├── square.yaml
│ │ │ ├── tool_hang.yaml
│ │ │ └── transport.yaml
│ │ └── pearce_mlp
│ │ │ ├── can.yaml
│ │ │ ├── lift.yaml
│ │ │ ├── square.yaml
│ │ │ ├── tool_hang.yaml
│ │ │ └── transport.yaml
│ └── robomimic_multi_modal
│ │ ├── dit
│ │ ├── can.yaml
│ │ ├── lift.yaml
│ │ ├── square.yaml
│ │ ├── tool_hang.yaml
│ │ └── transport.yaml
│ │ └── pearce_mlp
│ │ ├── can.yaml
│ │ ├── lift.yaml
│ │ ├── square.yaml
│ │ ├── tool_hang.yaml
│ │ └── transport.yaml
├── dd
│ ├── antmaze
│ │ ├── antmaze.yaml
│ │ └── task
│ │ │ ├── antmaze-large-diverse-v2.yaml
│ │ │ ├── antmaze-large-play-v2.yaml
│ │ │ ├── antmaze-medium-diverse-v2.yaml
│ │ │ └── antmaze-medium-play-v2.yaml
│ ├── kitchen
│ │ ├── kitchen.yaml
│ │ └── task
│ │ │ ├── kitchen-mixed-v0.yaml
│ │ │ └── kitchen-partial-v0.yaml
│ └── mujoco
│ │ ├── mujoco.yaml
│ │ └── task
│ │ ├── halfcheetah-medium-expert-v2.yaml
│ │ ├── halfcheetah-medium-replay-v2.yaml
│ │ ├── halfcheetah-medium-v2.yaml
│ │ ├── hopper-medium-expert-v2.yaml
│ │ ├── hopper-medium-replay-v2.yaml
│ │ ├── hopper-medium-v2.yaml
│ │ ├── walker2d-medium-expert-v2.yaml
│ │ ├── walker2d-medium-replay-v2.yaml
│ │ └── walker2d-medium-v2.yaml
├── diffuser
│ ├── antmaze
│ │ ├── antmaze.yaml
│ │ └── task
│ │ │ ├── antmaze-large-diverse-v2.yaml
│ │ │ ├── antmaze-large-play-v2.yaml
│ │ │ ├── antmaze-medium-diverse-v2.yaml
│ │ │ └── antmaze-medium-play-v2.yaml
│ ├── kitchen
│ │ ├── kitchen.yaml
│ │ └── task
│ │ │ ├── kitchen-mixed-v0.yaml
│ │ │ └── kitchen-partial-v0.yaml
│ └── mujoco
│ │ ├── mujoco.yaml
│ │ └── task
│ │ ├── halfcheetah-medium-expert-v2.yaml
│ │ ├── halfcheetah-medium-replay-v2.yaml
│ │ ├── halfcheetah-medium-v2.yaml
│ │ ├── hopper-medium-expert-v2.yaml
│ │ ├── hopper-medium-replay-v2.yaml
│ │ ├── hopper-medium-v2.yaml
│ │ ├── walker2d-medium-expert-v2.yaml
│ │ ├── walker2d-medium-replay-v2.yaml
│ │ └── walker2d-medium-v2.yaml
├── diffuserlite
│ ├── antmaze
│ │ ├── antmaze.yaml
│ │ └── task
│ │ │ ├── antmaze-large-diverse-v2.yaml
│ │ │ ├── antmaze-large-play-v2.yaml
│ │ │ ├── antmaze-medium-diverse-v2.yaml
│ │ │ └── antmaze-medium-play-v2.yaml
│ ├── kitchen
│ │ ├── kitchen.yaml
│ │ └── task
│ │ │ ├── kitchen-mixed-v0.yaml
│ │ │ └── kitchen-partial-v0.yaml
│ └── mujoco
│ │ ├── mujoco.yaml
│ │ └── task
│ │ ├── halfcheetah-medium-expert-v2.yaml
│ │ ├── halfcheetah-medium-replay-v2.yaml
│ │ ├── halfcheetah-medium-v2.yaml
│ │ ├── hopper-medium-expert-v2.yaml
│ │ ├── hopper-medium-replay-v2.yaml
│ │ ├── hopper-medium-v2.yaml
│ │ ├── walker2d-medium-expert-v2.yaml
│ │ ├── walker2d-medium-replay-v2.yaml
│ │ └── walker2d-medium-v2.yaml
├── dp
│ ├── kitchen
│ │ ├── chi_transformer
│ │ │ └── kitchen_abs.yaml
│ │ ├── chi_unet
│ │ │ └── kitchen_abs.yaml
│ │ └── dit
│ │ │ └── kitchen_abs.yaml
│ ├── pusht
│ │ ├── chi_transformer
│ │ │ ├── pusht.yaml
│ │ │ ├── pusht_image.yaml
│ │ │ └── pusht_keypoint.yaml
│ │ ├── chi_unet
│ │ │ ├── pusht.yaml
│ │ │ ├── pusht_image.yaml
│ │ │ └── pusht_keypoint.yaml
│ │ └── dit
│ │ │ ├── pusht.yaml
│ │ │ ├── pusht_image.yaml
│ │ │ └── pusht_keypoint.yaml
│ ├── robomimic
│ │ ├── chi_transformer
│ │ │ ├── can_abs.yaml
│ │ │ ├── lift_abs.yaml
│ │ │ ├── square_abs.yaml
│ │ │ ├── tool_hang_abs.yaml
│ │ │ └── transport_abs.yaml
│ │ ├── chi_unet
│ │ │ ├── can_abs.yaml
│ │ │ ├── lift_abs.yaml
│ │ │ ├── square_abs.yaml
│ │ │ ├── tool_hang_abs.yaml
│ │ │ └── transport_abs.yaml
│ │ └── dit
│ │ │ ├── can_abs.yaml
│ │ │ ├── lift_abs.yaml
│ │ │ ├── square_abs.yaml
│ │ │ ├── tool_hang_abs.yaml
│ │ │ └── transport_abs.yaml
│ └── robomimic_multi_modal
│ │ ├── chi_transformer
│ │ ├── can_abs.yaml
│ │ ├── lift_abs.yaml
│ │ ├── square_abs.yaml
│ │ ├── tool_hang_abs.yaml
│ │ └── transport_abs.yaml
│ │ ├── chi_unet
│ │ ├── can_abs.yaml
│ │ ├── lift_abs.yaml
│ │ ├── square_abs.yaml
│ │ ├── tool_hang_abs.yaml
│ │ └── transport_abs.yaml
│ │ └── dit
│ │ ├── can_abs.yaml
│ │ ├── lift_abs.yaml
│ │ ├── square_abs.yaml
│ │ ├── tool_hang_abs.yaml
│ │ └── transport_abs.yaml
├── dql
│ ├── antmaze
│ │ ├── antmaze.yaml
│ │ └── task
│ │ │ ├── antmaze-large-diverse-v2.yaml
│ │ │ ├── antmaze-large-play-v2.yaml
│ │ │ ├── antmaze-medium-diverse-v2.yaml
│ │ │ └── antmaze-medium-play-v2.yaml
│ ├── kitchen
│ │ ├── kitchen.yaml
│ │ └── task
│ │ │ ├── kitchen-mixed-v0.yaml
│ │ │ └── kitchen-partial-v0.yaml
│ └── mujoco
│ │ ├── mujoco.yaml
│ │ └── task
│ │ ├── halfcheetah-medium-expert-v2.yaml
│ │ ├── halfcheetah-medium-replay-v2.yaml
│ │ ├── halfcheetah-medium-v2.yaml
│ │ ├── hopper-medium-expert-v2.yaml
│ │ ├── hopper-medium-replay-v2.yaml
│ │ ├── hopper-medium-v2.yaml
│ │ ├── walker2d-medium-expert-v2.yaml
│ │ ├── walker2d-medium-replay-v2.yaml
│ │ └── walker2d-medium-v2.yaml
├── edp
│ ├── antmaze
│ │ ├── antmaze.yaml
│ │ └── task
│ │ │ ├── antmaze-large-diverse-v2.yaml
│ │ │ ├── antmaze-large-play-v2.yaml
│ │ │ ├── antmaze-medium-diverse-v2.yaml
│ │ │ └── antmaze-medium-play-v2.yaml
│ ├── kitchen
│ │ ├── kitchen.yaml
│ │ └── task
│ │ │ ├── kitchen-mixed-v0.yaml
│ │ │ └── kitchen-partial-v0.yaml
│ └── mujoco
│ │ ├── mujoco.yaml
│ │ └── task
│ │ ├── halfcheetah-medium-expert-v2.yaml
│ │ ├── halfcheetah-medium-replay-v2.yaml
│ │ ├── halfcheetah-medium-v2.yaml
│ │ ├── hopper-medium-expert-v2.yaml
│ │ ├── hopper-medium-replay-v2.yaml
│ │ ├── hopper-medium-v2.yaml
│ │ ├── walker2d-medium-expert-v2.yaml
│ │ ├── walker2d-medium-replay-v2.yaml
│ │ └── walker2d-medium-v2.yaml
├── idql
│ ├── antmaze
│ │ ├── antmaze.yaml
│ │ └── task
│ │ │ ├── antmaze-large-diverse-v2.yaml
│ │ │ ├── antmaze-large-play-v2.yaml
│ │ │ ├── antmaze-medium-diverse-v2.yaml
│ │ │ └── antmaze-medium-play-v2.yaml
│ ├── kitchen
│ │ ├── kitchen.yaml
│ │ └── task
│ │ │ ├── kitchen-mixed-v0.yaml
│ │ │ └── kitchen-partial-v0.yaml
│ └── mujoco
│ │ ├── mujoco.yaml
│ │ └── task
│ │ ├── halfcheetah-medium-expert-v2.yaml
│ │ ├── halfcheetah-medium-replay-v2.yaml
│ │ ├── halfcheetah-medium-v2.yaml
│ │ ├── hopper-medium-expert-v2.yaml
│ │ ├── hopper-medium-replay-v2.yaml
│ │ ├── hopper-medium-v2.yaml
│ │ ├── walker2d-medium-expert-v2.yaml
│ │ ├── walker2d-medium-replay-v2.yaml
│ │ └── walker2d-medium-v2.yaml
├── qgpo
│ └── mujoco
│ │ ├── mujoco.yaml
│ │ └── task
│ │ ├── halfcheetah-medium-expert-v2.yaml
│ │ ├── halfcheetah-medium-replay-v2.yaml
│ │ ├── halfcheetah-medium-v2.yaml
│ │ ├── hopper-medium-expert-v2.yaml
│ │ ├── hopper-medium-replay-v2.yaml
│ │ ├── hopper-medium-v2.yaml
│ │ ├── walker2d-medium-expert-v2.yaml
│ │ ├── walker2d-medium-replay-v2.yaml
│ │ └── walker2d-medium-v2.yaml
├── sfbc
│ └── mujoco
│ │ ├── mujoco.yaml
│ │ └── task
│ │ ├── halfcheetah-medium-expert-v2.yaml
│ │ ├── halfcheetah-medium-replay-v2.yaml
│ │ ├── halfcheetah-medium-v2.yaml
│ │ ├── hopper-medium-expert-v2.yaml
│ │ ├── hopper-medium-replay-v2.yaml
│ │ ├── hopper-medium-v2.yaml
│ │ ├── walker2d-medium-expert-v2.yaml
│ │ ├── walker2d-medium-replay-v2.yaml
│ │ └── walker2d-medium-v2.yaml
├── synther
│ ├── antmaze
│ │ ├── antmaze.yaml
│ │ └── task
│ │ │ ├── antmaze-large-diverse-v2.yaml
│ │ │ ├── antmaze-large-play-v2.yaml
│ │ │ ├── antmaze-medium-diverse-v2.yaml
│ │ │ └── antmaze-medium-play-v2.yaml
│ ├── kitchen
│ │ ├── kitchen.yaml
│ │ └── task
│ │ │ ├── kitchen-mixed-v0.yaml
│ │ │ └── kitchen-partial-v0.yaml
│ └── mujoco
│ │ ├── mujoco.yaml
│ │ └── task
│ │ ├── halfcheetah-medium-expert-v2.yaml
│ │ ├── halfcheetah-medium-replay-v2.yaml
│ │ ├── halfcheetah-medium-v2.yaml
│ │ ├── hopper-medium-expert-v2.yaml
│ │ ├── hopper-medium-replay-v2.yaml
│ │ ├── hopper-medium-v2.yaml
│ │ ├── walker2d-medium-expert-v2.yaml
│ │ ├── walker2d-medium-replay-v2.yaml
│ │ └── walker2d-medium-v2.yaml
└── veteran
│ ├── antmaze
│ ├── antmaze.yaml
│ ├── reward_mode
│ │ └── linear.yaml
│ └── task
│ │ ├── antmaze-large-diverse-v2.yaml
│ │ ├── antmaze-large-play-v2.yaml
│ │ ├── antmaze-medium-diverse-v2.yaml
│ │ └── antmaze-medium-play-v2.yaml
│ ├── kitchen
│ ├── kitchen.yaml
│ └── task
│ │ ├── kitchen-mixed-v0.yaml
│ │ └── kitchen-partial-v0.yaml
│ ├── maze2d
│ ├── maze2d.yaml
│ ├── reward_mode
│ │ └── linear.yaml
│ └── task
│ │ ├── maze2d-large-v1.yaml
│ │ ├── maze2d-medium-v1.yaml
│ │ └── maze2d-umaze-v1.yaml
│ └── mujoco
│ ├── mujoco.yaml
│ └── task
│ ├── halfcheetah-medium-expert-v2.yaml
│ ├── halfcheetah-medium-replay-v2.yaml
│ ├── halfcheetah-medium-v2.yaml
│ ├── hopper-medium-expert-v2.yaml
│ ├── hopper-medium-replay-v2.yaml
│ ├── hopper-medium-v2.yaml
│ ├── walker2d-medium-expert-v2.yaml
│ ├── walker2d-medium-replay-v2.yaml
│ └── walker2d-medium-v2.yaml
├── pipelines
├── __init__.py
├── adaptdiffuser_d4rl_antmaze.py
├── adaptdiffuser_d4rl_kitchen.py
├── adaptdiffuser_d4rl_mujoco.py
├── dbc_kitchen.py
├── dbc_pusht.py
├── dbc_pusht_image.py
├── dbc_robomimic.py
├── dbc_robomimic_image.py
├── dd_d4rl_antmaze.py
├── dd_d4rl_kitchen.py
├── dd_d4rl_mujoco.py
├── diffuser_d4rl_antmaze.py
├── diffuser_d4rl_kitchen.py
├── diffuser_d4rl_mujoco.py
├── diffuserlite_d4rl_antmaze.py
├── diffuserlite_d4rl_kitchen.py
├── diffuserlite_d4rl_mujoco.py
├── dp_kitchen.py
├── dp_pusht.py
├── dp_pusht_image.py
├── dp_robomimic.py
├── dp_robomimic_image.py
├── dql_d4rl_antmaze.py
├── dql_d4rl_kitchen.py
├── dql_d4rl_mujoco.py
├── edp_d4rl_antmaze.py
├── edp_d4rl_kitchen.py
├── edp_d4rl_mujoco.py
├── idql_d4rl_antmaze.py
├── idql_d4rl_kitchen.py
├── idql_d4rl_mujoco.py
├── qgpo_d4rl_mujoco.py
├── sfbc_d4rl_mujoco.py
├── synther_d4rl_antmaze.py
├── synther_d4rl_kitchen.py
├── synther_d4rl_mujoco.py
├── utils.py
├── veteran_d4rl_antmaze.py
├── veteran_d4rl_kitchen.py
├── veteran_d4rl_maze2d.py
└── veteran_d4rl_mujoco.py
├── pyproject.toml
├── requirements.txt
├── setup.py
├── tests
├── test_all_classifier.py
├── test_all_nn_classifier.py
├── test_chi_transformer.py
├── test_chi_unet.py
├── test_d4rl_envs.py
├── test_diffusion_sde.py
├── test_dit.py
├── test_dql_mlp.py
├── test_idql_mlp.py
├── test_janner_unet.py
├── test_kitchen_datasets.py
├── test_kitchen_envs.py
├── test_mlps.py
├── test_pearce_mlp.py
├── test_pearce_transformer.py
├── test_pusht_datasets.py
├── test_pusht_envs.py
├── test_robomimic_env.py
├── test_sfbc_unet.py
└── test_transform.py
└── tutorials
├── 1_a_minimal_DBC_implementation.ipynb
├── 1_a_minimal_DBC_implementation.py
├── 2_classifier-free_guidance.py
├── 2_classifier_free_guidance.ipynb
├── 3_classifier_guidance.py
├── 4_customize_your_diffusion_network_backbone.py
└── sp_consistency_policy.py
/assets/CleanDiffuser.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/assets/CleanDiffuser.pdf
--------------------------------------------------------------------------------
/assets/framework.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/assets/framework.png
--------------------------------------------------------------------------------
/assets/github_logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/assets/github_logo.jpg
--------------------------------------------------------------------------------
/cleandiffuser/__init__.py:
--------------------------------------------------------------------------------
1 | __version__ = "0.1.0"
2 |
--------------------------------------------------------------------------------
/cleandiffuser/classifier/__init__.py:
--------------------------------------------------------------------------------
1 | from .base import BaseClassifier
2 | from .mse_classifier import MSEClassifier
3 | from .rew_classifiers import CumRewClassifier
4 | from .qgpo_classifier import QGPOClassifier
5 |
--------------------------------------------------------------------------------
/cleandiffuser/classifier/mse_classifier.py:
--------------------------------------------------------------------------------
1 | from typing import Optional
2 |
3 | import torch
4 | import torch.nn as nn
5 |
6 | from cleandiffuser.nn_classifier import BaseNNClassifier
7 | from .base import BaseClassifier
8 |
9 |
10 | class MSEClassifier(BaseClassifier):
11 | """
12 | MSEClassifier defines logp(y | x, t) using negative MSE.
13 | Assuming nn_classifier is a NN used to predict y through x and t, i.e, pred_y = nn_classifier(x, t),
14 | logp is defined as - temperature * MSE(nn_classifier(x, t), y).
15 | """
16 | def __init__(
17 | self, nn_classifier: BaseNNClassifier, temperature: float = 1.0,
18 | ema_rate: float = 0.995, grad_clip_norm: Optional[float] = None,
19 | optim_params: Optional[dict] = None, device: str = "cpu"):
20 | super().__init__(nn_classifier, ema_rate, grad_clip_norm, optim_params, device)
21 | self.temperature = temperature
22 |
23 | def loss(self, x: torch.Tensor, noise: torch.Tensor, y: torch.Tensor):
24 | pred_y = self.model(x, noise)
25 | return nn.functional.mse_loss(pred_y, y)
26 |
27 | def logp(self, x: torch.Tensor, noise: torch.Tensor, c: torch.Tensor):
28 | pred_y = self.model_ema(x, noise)
29 | return -self.temperature * ((pred_y - c) ** 2).mean(-1, keepdim=True)
30 |
--------------------------------------------------------------------------------
/cleandiffuser/classifier/rew_classifiers.py:
--------------------------------------------------------------------------------
1 | from typing import Optional
2 |
3 | from cleandiffuser.nn_classifier import BaseNNClassifier
4 | from .base import BaseClassifier
5 |
6 |
7 | class CumRewClassifier(BaseClassifier):
8 | def __init__(
9 | self,
10 | nn_classifier: BaseNNClassifier,
11 | device: str = "cpu",
12 | optim_params: Optional[dict] = None,
13 | ):
14 | super().__init__(nn_classifier, 0.995, None, optim_params, device)
15 |
16 | def loss(self, x, noise, R):
17 | pred_R = self.model(x, noise, None)
18 | return ((pred_R - R) ** 2).mean()
19 |
20 | def update(self, x, noise, R):
21 | self.optim.zero_grad()
22 | loss = self.loss(x, noise, R)
23 | loss.backward()
24 | self.optim.step()
25 | self.ema_update()
26 | return {"loss": loss.item()}
27 |
28 | def logp(self, x, noise, c=None):
29 | return self.model_ema(x, noise)
30 |
--------------------------------------------------------------------------------
/cleandiffuser/dataset/base_dataset.py:
--------------------------------------------------------------------------------
1 | from typing import Dict
2 |
3 | import torch.nn
4 | from torch.utils.data import Dataset
5 |
6 |
7 | # Adapted from the datasets on: https://github.com/real-stanford/diffusion_policy
8 |
9 | # Observation Horizon: To|n_obs_steps
10 | # Action Horizon: Ta|n_action_steps
11 | # Prediction Horizon: T|horizon
12 | # To = 3
13 | # Ta = 4
14 | # T = 6
15 | # |o|o|o|
16 | # | | |a|a|a|a|
17 | # To = 2
18 | # Ta = 5
19 | # T = 6
20 | # |o|o|
21 | # | |a|a|a|a|a|
22 |
23 |
24 | class BaseDataset(Dataset):
25 | def get_normalizer(self, **kwargs):
26 | raise NotImplementedError()
27 |
28 | def __len__(self) -> int:
29 | return 0
30 |
31 | def __getitem__(self, idx: int) -> Dict[str, torch.Tensor]:
32 | """
33 | output:
34 | obs:
35 | key1: T, Do1 # default key: state
36 | key2: T, Do2
37 | action: T, Da
38 | reward: T, 1
39 | info:
40 | """
41 | raise NotImplementedError()
42 |
--------------------------------------------------------------------------------
/cleandiffuser/diffusion/__init__.py:
--------------------------------------------------------------------------------
1 | from .basic import DiffusionModel
2 | from .diffusionsde import DiscreteDiffusionSDE, ContinuousDiffusionSDE
3 | from .newedm import ContinuousEDM
4 | from .rectifiedflow import DiscreteRectifiedFlow, ContinuousRectifiedFlow
5 | from .consistency_model import ContinuousConsistencyModel
6 |
--------------------------------------------------------------------------------
/cleandiffuser/env/block_pushing/__init__.py:
--------------------------------------------------------------------------------
1 | from gym.envs.registration import register
2 |
3 | register(
4 | id='block-push-multi-modal-v0',
5 | entry_point='cleandiffuser.env.block_pushing.block_pushing_multimodal:BlockPushMultimodal',
6 | max_episode_steps=350,
7 | )
8 |
--------------------------------------------------------------------------------
/cleandiffuser/env/block_pushing/assets/block.urdf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/cleandiffuser/env/block_pushing/assets/block2.urdf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/cleandiffuser/env/block_pushing/assets/blocks/blue_cube.urdf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/cleandiffuser/env/block_pushing/assets/blocks/green_star.urdf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/cleandiffuser/env/block_pushing/assets/blocks/red_moon.urdf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/cleandiffuser/env/block_pushing/assets/blocks/yellow_pentagon.urdf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/cleandiffuser/env/block_pushing/assets/plane.obj:
--------------------------------------------------------------------------------
1 | # Blender v2.66 (sub 1) OBJ File: ''
2 | # www.blender.org
3 | mtllib plane.mtl
4 | o Plane
5 | v 15.000000 -15.000000 0.000000
6 | v 15.000000 15.000000 0.000000
7 | v -15.000000 15.000000 0.000000
8 | v -15.000000 -15.000000 0.000000
9 |
10 | vt 15.000000 0.000000
11 | vt 15.000000 15.000000
12 | vt 0.000000 15.000000
13 | vt 0.000000 0.000000
14 |
15 | usemtl Material
16 | s off
17 | f 1/1 2/2 3/3
18 | f 1/1 3/3 4/4
19 |
--------------------------------------------------------------------------------
/cleandiffuser/env/block_pushing/assets/workspace.urdf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/cleandiffuser/env/block_pushing/assets/workspace_real.urdf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/cleandiffuser/env/block_pushing/assets/zone.obj:
--------------------------------------------------------------------------------
1 | # Object Export From Tinkercad Server 2015
2 |
3 | mtllib obj.mtl
4 |
5 | o obj_0
6 | v 10 -10 20
7 | v 10 -10 0
8 | v 10 10 0
9 | v 10 10 20
10 | v 9.002 9.003 20
11 | v 9.002 -9.002 20
12 | v -10 10 0
13 | v -10 10 20
14 | v -9.003 9.003 20
15 | v -9.003 9.003 0
16 | v 9.002 9.003 0
17 | v 9.002 -9.002 0
18 | v -9.003 -9.002 0
19 | v -9.003 -9.002 20
20 | v -10 -10 0
21 | v -10 -10 20
22 | # 16 vertices
23 |
24 | g group_0_15277357
25 |
26 | usemtl color_15277357
27 | s 0
28 |
29 | f 1 2 3
30 | f 1 3 4
31 | f 4 5 6
32 | f 4 6 1
33 | f 9 10 11
34 | f 9 11 5
35 | f 6 12 13
36 | f 6 13 14
37 | f 10 9 14
38 | f 10 14 13
39 | f 7 10 13
40 | f 7 13 15
41 | f 4 8 5
42 | f 9 5 8
43 | f 8 7 15
44 | f 8 15 16
45 | f 10 7 11
46 | f 3 11 7
47 | f 11 3 12
48 | f 2 12 3
49 | f 14 16 6
50 | f 1 6 16
51 | f 16 15 2
52 | f 16 2 1
53 | f 9 8 14
54 | f 16 14 8
55 | f 7 8 3
56 | f 4 3 8
57 | f 2 15 12
58 | f 13 12 15
59 | f 12 6 5
60 | f 12 5 11
61 | # 32 faces
62 |
63 | #end of obj_0
64 |
65 |
--------------------------------------------------------------------------------
/cleandiffuser/env/block_pushing/assets/zone.urdf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/cleandiffuser/env/block_pushing/assets/zone2.urdf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/cleandiffuser/env/block_pushing/oracles/pushing_info.py:
--------------------------------------------------------------------------------
1 | # coding=utf-8
2 | # Copyright 2022 The Reach ML Authors.
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | """Dataclass holding info needed for pushing oracles."""
17 | import dataclasses
18 | from typing import Any
19 |
20 |
21 | @dataclasses.dataclass
22 | class PushingInfo:
23 | """Holds onto info necessary for pushing state machine."""
24 |
25 | xy_block: Any = None
26 | xy_ee: Any = None
27 | xy_pre_block: Any = None
28 | xy_delta_to_nexttoblock: Any = None
29 | xy_delta_to_touchingblock: Any = None
30 | xy_dir_block_to_ee: Any = None
31 | theta_threshold_to_orient: Any = None
32 | theta_threshold_flat_enough: Any = None
33 | theta_error: Any = None
34 | obstacle_poses: Any = None
35 | distance_to_target: Any = None
36 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/__init__.py:
--------------------------------------------------------------------------------
1 | """Environments using kitchen and Franka robot."""
2 | from gym.envs.registration import register
3 |
4 | register(
5 | id="kitchen-microwave-kettle-light-slider-v0",
6 | entry_point="cleandiffuser.env.kitchen.v0:KitchenMicrowaveKettleLightSliderV0",
7 | max_episode_steps=280,
8 | reward_threshold=1.0,
9 | )
10 |
11 | register(
12 | id="kitchen-microwave-kettle-burner-light-v0",
13 | entry_point="cleandiffuser.env.kitchen.v0:KitchenMicrowaveKettleBottomBurnerLightV0",
14 | max_episode_steps=280,
15 | reward_threshold=1.0,
16 | )
17 |
18 | register(
19 | id="kitchen-kettle-microwave-light-slider-v0",
20 | entry_point="cleandiffuser.env.kitchen.v0:KitchenKettleMicrowaveLightSliderV0",
21 | max_episode_steps=280,
22 | reward_threshold=1.0,
23 | )
24 |
25 | register(
26 | id="kitchen-all-v0",
27 | entry_point="cleandiffuser.env.kitchen.v0:KitchenAllV0",
28 | max_episode_steps=280,
29 | reward_threshold=1.0,
30 | )
31 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_envs/adept_envs/__init__.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 | #
3 | # Copyright 2020 Google LLC
4 | #
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 |
17 | import adept_envs.franka
18 |
19 | from adept_envs.utils.configurable import global_config
20 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_envs/adept_envs/franka/__init__.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 | #
3 | # Copyright 2020 Google LLC
4 | #
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 |
17 | from gym.envs.registration import register
18 |
19 | # Relax the robot
20 | register(
21 | id='kitchen_relax-v1',
22 | entry_point='adept_envs.franka.kitchen_multitask_v0:KitchenTaskRelaxV1',
23 | max_episode_steps=280,
24 | )
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_envs/adept_envs/utils/constants.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 | #
3 | # Copyright 2020 Google LLC
4 | #
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 |
17 | import os
18 |
19 | ENVS_ROOT_PATH = os.path.abspath(os.path.join(
20 | os.path.dirname(os.path.abspath(__file__)),
21 | "../../"))
22 |
23 | MODELS_PATH = os.path.abspath(os.path.join(ENVS_ROOT_PATH, "../adept_models/"))
24 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/.gitignore:
--------------------------------------------------------------------------------
1 | # General
2 | .DS_Store
3 | *.swp
4 | *.profraw
5 |
6 | # Editors
7 | .vscode
8 | .idea
9 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/CONTRIBUTING.public.md:
--------------------------------------------------------------------------------
1 | # How to Contribute
2 |
3 | We'd love to accept your patches and contributions to this project. There are
4 | just a few small guidelines you need to follow.
5 |
6 | ## Contributor License Agreement
7 |
8 | Contributions to this project must be accompanied by a Contributor License
9 | Agreement. You (or your employer) retain the copyright to your contribution;
10 | this simply gives us permission to use and redistribute your contributions as
11 | part of the project. Head over to to see
12 | your current agreements on file or to sign a new one.
13 |
14 | You generally only need to submit a CLA once, so if you've already submitted one
15 | (even if it was for a different project), you probably don't need to do it
16 | again.
17 |
18 | ## Code reviews
19 |
20 | All submissions, including submissions by project members, require review. We
21 | use GitHub pull requests for this purpose. Consult
22 | [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
23 | information on using pull requests.
24 |
25 | ## Community Guidelines
26 |
27 | This project follows
28 | [Google's Open Source Community Guidelines](https://opensource.google.com/conduct/).
29 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/README.public.md:
--------------------------------------------------------------------------------
1 | # D'Suite Scenes
2 |
3 | This repository is based on a collection of [MuJoCo](http://www.mujoco.org/) simulation
4 | scenes and common assets for D'Suite environments. Based on code in the ROBEL suite
5 | https://github.com/google-research/robel
6 |
7 | ## Disclaimer
8 |
9 | This is not an official Google product.
10 |
11 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/__init__.py
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/assets/backwall_asset.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/assets/backwall_chain.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/assets/hingecabinet_asset.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/assets/kettle_asset.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/assets/kettle_chain.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/assets/slidecabinet_asset.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/counters.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/hingecabinet.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/kettle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/burnerplate.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/burnerplate.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/burnerplate_mesh.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/burnerplate_mesh.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/cabinetbase.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/cabinetbase.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/cabinetdrawer.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/cabinetdrawer.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/cabinethandle.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/cabinethandle.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/countertop.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/countertop.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/faucet.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/faucet.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/handle2.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/handle2.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/hingecabinet.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/hingecabinet.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/hingedoor.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/hingedoor.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/hingehandle.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/hingehandle.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/hood.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/hood.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/kettle.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/kettle.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/kettlehandle.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/kettlehandle.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/knob.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/knob.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/lightswitch.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/lightswitch.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/lightswitchbase.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/lightswitchbase.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/micro.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/micro.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/microbutton.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/microbutton.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/microdoor.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/microdoor.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/microefeet.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/microefeet.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/microfeet.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/microfeet.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/microhandle.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/microhandle.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/microwindow.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/microwindow.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/oven.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/oven.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/ovenhandle.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/ovenhandle.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/oventop.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/oventop.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/ovenwindow.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/ovenwindow.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/slidecabinet.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/slidecabinet.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/slidedoor.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/slidedoor.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/stoverim.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/stoverim.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/tile.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/tile.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/wall.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/meshes/wall.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/microwave.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/oven.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/slidecabinet.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/textures/marble1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/textures/marble1.png
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/textures/metal1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/textures/metal1.png
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/textures/tile1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/textures/tile1.png
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/textures/wood1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/kitchen/textures/wood1.png
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/scenes/textures/white_marble_tile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/scenes/textures/white_marble_tile.png
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/scenes/textures/white_marble_tile2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/adept_models/scenes/textures/white_marble_tile2.png
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/README.md:
--------------------------------------------------------------------------------
1 | # franka
2 | Franka panda mujoco models
3 |
4 |
5 | # Environment
6 |
7 | franka_panda.xml | coming soon
8 | :-------------------------:|:-------------------------:
9 |  | coming soon
10 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/assets/actuator1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/assets/basic_scene.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/assets/teleop_actuator.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/franka_panda.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/franka_panda.png
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/finger.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/finger.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/hand.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/hand.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link0.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link0.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link1.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link1.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link2.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link2.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link3.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link3.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link4.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link4.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link5.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link5.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link6.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link6.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link7.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/collision/link7.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/finger.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/finger.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/hand.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/hand.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link0.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link0.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link1.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link1.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link2.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link2.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link3.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link3.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link4.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link4.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link5.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link5.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link6.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link6.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link7.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/cleandiffuser/env/kitchen/relay_policy_learning/third_party/franka/meshes/visual/link7.stl
--------------------------------------------------------------------------------
/cleandiffuser/env/kitchen/v0.py:
--------------------------------------------------------------------------------
1 | from cleandiffuser.env.kitchen.base import KitchenBase
2 |
3 |
4 | class KitchenMicrowaveKettleBottomBurnerLightV0(KitchenBase):
5 | TASK_ELEMENTS = ["microwave", "kettle", "bottom burner", "light switch"]
6 | COMPLETE_IN_ANY_ORDER = False
7 |
8 |
9 | class KitchenMicrowaveKettleLightSliderV0(KitchenBase):
10 | TASK_ELEMENTS = ["microwave", "kettle", "light switch", "slide cabinet"]
11 | COMPLETE_IN_ANY_ORDER = False
12 |
13 |
14 | class KitchenKettleMicrowaveLightSliderV0(KitchenBase):
15 | TASK_ELEMENTS = ["kettle", "microwave", "light switch", "slide cabinet"]
16 | COMPLETE_IN_ANY_ORDER = False
17 |
18 |
19 | class KitchenAllV0(KitchenBase):
20 | TASK_ELEMENTS = KitchenBase.ALL_TASKS
21 |
--------------------------------------------------------------------------------
/cleandiffuser/env/pusht/__init__.py:
--------------------------------------------------------------------------------
1 | from gym.envs.registration import register
2 |
3 | register(
4 | id='pusht-v0',
5 | entry_point='cleandiffuser.env.pusht.pusht_env:PushTEnv',
6 | max_episode_steps=300,
7 | reward_threshold=1.0
8 | )
9 |
10 | register(
11 | id='pusht-keypoints-v0',
12 | entry_point='cleandiffuser.env.pusht.pusht_keypoints_env:PushTKeypointsEnv',
13 | max_episode_steps=300,
14 | reward_threshold=1.0
15 | )
16 |
17 | register(
18 | id='pusht-image-v0',
19 | entry_point='cleandiffuser.env.pusht.pusht_image_env:PushTImageEnv',
20 | max_episode_steps=300,
21 | reward_threshold=1.0
22 | )
23 |
24 |
25 |
--------------------------------------------------------------------------------
/cleandiffuser/invdynamic/__init__.py:
--------------------------------------------------------------------------------
1 | from .common import BasicInvDynamic
2 | from .mlp import MlpInvDynamic, FancyMlpInvDynamic
3 |
--------------------------------------------------------------------------------
/cleandiffuser/invdynamic/common.py:
--------------------------------------------------------------------------------
1 | class BasicInvDynamic:
2 |
3 | def predict(self, **kwargs):
4 | raise NotImplementedError
5 |
6 | def __call__(self, **kwargs):
7 | return self.predict(**kwargs)
--------------------------------------------------------------------------------
/cleandiffuser/nn_classifier/__init__.py:
--------------------------------------------------------------------------------
1 | from .base_nn_classifier import BaseNNClassifier
2 | from .half_dit import HalfDiT1d
3 | from .half_jannerunet import HalfJannerUNet1d
4 | from .mlp import MLPNNClassifier, QGPONNClassifier
5 |
--------------------------------------------------------------------------------
/cleandiffuser/nn_classifier/base_nn_classifier.py:
--------------------------------------------------------------------------------
1 | from typing import Optional
2 |
3 | import torch
4 | import torch.nn as nn
5 |
6 | from cleandiffuser.utils import SUPPORTED_TIMESTEP_EMBEDDING
7 |
8 |
9 | class BaseNNClassifier(nn.Module):
10 | """
11 | Base Neural Network (NN) for Classifiers.
12 |
13 | This NN is supposed to implement the mapping: (x, t, y) -> log p(y | x, t) + C, where C is a constant.
14 | From a coding perspective, the output of the NN should be a real number with dimension=1.
15 |
16 | Parameters:
17 | - emb_dim: int
18 | Dimension of the embedding for the time variable t.
19 | - timestep_emb_type: str
20 | Type of embedding for the time variable t. Options are: "positional" or "fourier".
21 | """
22 |
23 | def __init__(
24 | self, emb_dim: int,
25 | timestep_emb_type: str = "positional",
26 | timestep_emb_params: Optional[dict] = None
27 | ):
28 | assert timestep_emb_type in SUPPORTED_TIMESTEP_EMBEDDING.keys()
29 | super().__init__()
30 | timestep_emb_params = timestep_emb_params or {}
31 | self.map_noise = SUPPORTED_TIMESTEP_EMBEDDING[timestep_emb_type](emb_dim, **timestep_emb_params)
32 |
33 |
34 | def forward(self, x: torch.Tensor, t: torch.Tensor, y: torch.Tensor):
35 | """
36 | Input:
37 | x: (b, *x_shape)
38 | t: (b, )
39 | y: (b, *y_shape)
40 |
41 | Output:
42 | logp: (b, 1)
43 | """
44 | raise NotImplementedError
45 |
--------------------------------------------------------------------------------
/cleandiffuser/nn_condition/__init__.py:
--------------------------------------------------------------------------------
1 | from .base_nn_condition import *
2 | from .mlp import MLPCondition, MLPSieveObsCondition, LinearCondition
3 | from .positional import FourierCondition, PositionalCondition
4 | from .pearce_obs_condition import PearceObsCondition
5 | from .multi_image_condition import MultiImageObsCondition
6 | from .early_conv_vit import EarlyConvViTMultiViewImageCondition
7 | from .resnets import ResNet18ImageCondition, ResNet18MultiViewImageCondition
8 |
--------------------------------------------------------------------------------
/cleandiffuser/nn_diffusion/__init__.py:
--------------------------------------------------------------------------------
1 | from .base_nn_diffusion import *
2 | from .chitransformer import ChiTransformer
3 | from .chiunet import ChiUNet1d
4 | from .dit import DiT1d
5 | from .dqlmlp import DQLMlp
6 | from .idqlmlp import IDQLMlp
7 | from .dvinvmlp import DVInvMlp
8 | from .jannerunet import JannerUNet1d
9 | from .pearcemlp import PearceMlp
10 | from .pearcetransformer import PearceTransformer
11 | from .sfbc_unet import SfBCUNet
12 | from .mlps import MlpNNDiffusion
13 |
--------------------------------------------------------------------------------
/cleandiffuser/nn_diffusion/dvinvmlp.py:
--------------------------------------------------------------------------------
1 | from typing import Optional
2 |
3 | import torch
4 | import torch.nn as nn
5 |
6 | from cleandiffuser.nn_diffusion import BaseNNDiffusion
7 |
8 |
9 | class DVInvMlp(BaseNNDiffusion):
10 | def __init__(
11 | self,
12 | obs_dim: int,
13 | act_dim: int,
14 | emb_dim: int = 16,
15 | hidden_dim: int = 256,
16 | timestep_emb_type: str = "positional",
17 | timestep_emb_params: Optional[dict] = None
18 | ):
19 | super().__init__(emb_dim, timestep_emb_type, timestep_emb_params)
20 |
21 | self.time_mlp = nn.Sequential(
22 | nn.Linear(emb_dim, emb_dim * 2), nn.Mish(), nn.Linear(emb_dim * 2, emb_dim))
23 |
24 | self.mid_layer = nn.Sequential(
25 | nn.Linear(obs_dim * 2 + act_dim + emb_dim, hidden_dim), nn.Mish(),
26 | nn.Linear(hidden_dim, hidden_dim), nn.Mish(),
27 | nn.Linear(hidden_dim, hidden_dim), nn.Mish())
28 |
29 | self.final_layer = nn.Linear(hidden_dim, act_dim)
30 |
31 | def forward(self,
32 | x: torch.Tensor, noise: torch.Tensor,
33 | condition: torch.Tensor = None):
34 | """
35 | Input:
36 | x: (b, act_dim)
37 | noise: (b, )
38 | condition: (b, obs_dim * 2)
39 |
40 | Output:
41 | y: (b, act_dim)
42 | """
43 | t = self.time_mlp(self.map_noise(noise))
44 | x = torch.cat([x, t, condition], -1)
45 | x = self.mid_layer(x)
46 |
47 | return self.final_layer(x)
48 |
--------------------------------------------------------------------------------
/cleandiffuser/nn_diffusion/mlps.py:
--------------------------------------------------------------------------------
1 | from typing import List, Optional
2 |
3 | import torch
4 | import torch.nn as nn
5 |
6 | from cleandiffuser.nn_diffusion import BaseNNDiffusion
7 | from cleandiffuser.utils import Mlp
8 |
9 |
10 | class MlpNNDiffusion(BaseNNDiffusion):
11 | def __init__(
12 | self,
13 | x_dim: int,
14 | emb_dim: int = 16,
15 | hidden_dims: List[int] = (256, 256),
16 | activation: nn.Module = nn.ReLU(),
17 | timestep_emb_type: str = "positional",
18 | timestep_emb_params: Optional[dict] = None
19 | ):
20 | super().__init__(emb_dim, timestep_emb_type, timestep_emb_params)
21 | self.mlp = Mlp(
22 | x_dim + emb_dim, hidden_dims, x_dim, activation)
23 |
24 | def forward(self,
25 | x: torch.Tensor, noise: torch.Tensor,
26 | condition: Optional[torch.Tensor] = None):
27 | """
28 | Input:
29 | x: (b, x_dim)
30 | noise: (b, )
31 | condition: (b, emd_dim)
32 |
33 | Output:
34 | y: (b, x_dim)
35 | """
36 | t = self.map_noise(noise)
37 | if condition is not None:
38 | t += condition
39 | else:
40 | t += torch.zeros_like(t)
41 | return self.mlp(torch.cat([x, t], -1))
42 |
43 |
44 |
--------------------------------------------------------------------------------
/cleandiffuser/utils/__init__.py:
--------------------------------------------------------------------------------
1 | from .utils import *
2 | from .iql import IQL
3 | from .building_blocks import *
4 | from .normalizers import *
5 | from .typings import *
6 |
--------------------------------------------------------------------------------
/cleandiffuser/utils/typings.py:
--------------------------------------------------------------------------------
1 | from typing import Dict, Union
2 | import torch
3 |
4 | TensorDict = Dict[str, Union['TensorDict', torch.Tensor]]
5 |
--------------------------------------------------------------------------------
/configs/adaptdiffuser/antmaze/antmaze.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: antmaze-medium-play-v2
4 |
5 | pipeline_name: diffuser_d4rl_antmaze
6 | mode: inference
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | noreaching_penalty: -100
12 | discount: 0.99
13 |
14 | # Diffuser
15 | solver: ddpm
16 | model_dim: 64
17 | diffusion_steps: 20
18 | sampling_steps: 20
19 | predict_noise: False
20 | action_loss_weight: 10.
21 | ema_rate: 0.9999
22 |
23 | # Training
24 | diffusion_gradient_steps: 1000000
25 | classifier_gradient_steps: 1000000
26 | batch_size: 64
27 | log_interval: 1000
28 | save_interval: 100000
29 |
30 | # Inference
31 | ft_ckpt: latest
32 | ckpt: latest
33 | num_envs: 50
34 | num_episodes: 3
35 | num_candidates: 64
36 | temperature: 0.5
37 | use_ema: True
38 |
39 | # hydra
40 | hydra:
41 | job:
42 | chdir: false
43 |
44 |
--------------------------------------------------------------------------------
/configs/adaptdiffuser/antmaze/task/antmaze-large-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-diverse-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.001
4 | horizon: 64
5 | metric_value: -80
6 |
--------------------------------------------------------------------------------
/configs/adaptdiffuser/antmaze/task/antmaze-large-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-play-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.001
4 | horizon: 64
5 | metric_value: -80
6 |
--------------------------------------------------------------------------------
/configs/adaptdiffuser/antmaze/task/antmaze-medium-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-diverse-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.001
4 | horizon: 64
5 | metric_value: -80
6 |
--------------------------------------------------------------------------------
/configs/adaptdiffuser/antmaze/task/antmaze-medium-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-play-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.001
4 | horizon: 64
5 | metric_value: -80
6 |
--------------------------------------------------------------------------------
/configs/adaptdiffuser/kitchen/kitchen.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: kitchen-mixed-v0
4 |
5 | pipeline_name: adaptdiffuser_d4rl_kitchen
6 | mode: inference
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | discount: 0.997
12 |
13 | # Diffuser
14 | solver: ddpm
15 | model_dim: 64
16 | diffusion_steps: 20
17 | sampling_steps: 20
18 | predict_noise: False
19 | action_loss_weight: 10.
20 | ema_rate: 0.9999
21 |
22 | # Training
23 | diffusion_gradient_steps: 1000000
24 | classifier_gradient_steps: 1000000
25 | batch_size: 64
26 | log_interval: 1000
27 | save_interval: 100000
28 |
29 | # Inference
30 | ft_ckpt: latest
31 | ckpt: latest
32 | num_envs: 50
33 | num_episodes: 3
34 | num_candidates: 64
35 | temperature: 0.5
36 | use_ema: True
37 |
38 | # hydra
39 | hydra:
40 | job:
41 | chdir: false
42 |
43 |
--------------------------------------------------------------------------------
/configs/adaptdiffuser/kitchen/task/kitchen-mixed-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-mixed-v0"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.0001
4 | horizon: 32
5 | metric_value: 380
6 |
--------------------------------------------------------------------------------
/configs/adaptdiffuser/kitchen/task/kitchen-partial-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-partial-v0"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.01
4 | horizon: 32
5 | metric_value: 480
6 |
--------------------------------------------------------------------------------
/configs/adaptdiffuser/mujoco/mujoco.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: halfcheetah-medium-expert-v2
4 |
5 | pipeline_name: adaptdiffuser_d4rl_mujoco
6 | mode: inference
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | terminal_penalty: -100
12 | discount: 0.997
13 |
14 | # Diffuser
15 | solver: ddpm
16 | model_dim: 32
17 | diffusion_steps: 20
18 | sampling_steps: 20
19 | predict_noise: False
20 | action_loss_weight: 10.
21 | ema_rate: 0.9999
22 |
23 | # Training
24 | diffusion_gradient_steps: 1000000
25 | classifier_gradient_steps: 1000000
26 | batch_size: 64
27 | log_interval: 1000
28 | save_interval: 100000
29 |
30 | # Inference
31 | ft_ckpt: latest
32 | ckpt: latest
33 | num_envs: 50
34 | num_episodes: 3
35 | num_candidates: 64
36 | temperature: 0.5
37 | use_ema: True
38 |
39 | # hydra
40 | hydra:
41 | job:
42 | chdir: false
43 |
44 |
--------------------------------------------------------------------------------
/configs/adaptdiffuser/mujoco/task/halfcheetah-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-expert-v2"
2 | dim_mult: [1, 4, 2]
3 | w_cg: 0.0001
4 | horizon: 4
5 | metric_value: 10840
6 |
--------------------------------------------------------------------------------
/configs/adaptdiffuser/mujoco/task/halfcheetah-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-replay-v2"
2 | dim_mult: [1, 4, 2]
3 | w_cg: 0.0001
4 | horizon: 4
5 | metric_value: 4600
--------------------------------------------------------------------------------
/configs/adaptdiffuser/mujoco/task/halfcheetah-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-v2"
2 | dim_mult: [1, 4, 2]
3 | w_cg: 0.0001
4 | horizon: 4
5 | metric_value: 5005
--------------------------------------------------------------------------------
/configs/adaptdiffuser/mujoco/task/hopper-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-expert-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.00001
4 | horizon: 32
5 | metric_value: 3639
--------------------------------------------------------------------------------
/configs/adaptdiffuser/mujoco/task/hopper-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-replay-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.2
4 | horizon: 32
5 | metric_value: 3100
--------------------------------------------------------------------------------
/configs/adaptdiffuser/mujoco/task/hopper-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.3
4 | horizon: 32
5 | metric_value: 3211
--------------------------------------------------------------------------------
/configs/adaptdiffuser/mujoco/task/walker2d-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-expert-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.001
4 | horizon: 32
5 | metric_value: 4900
--------------------------------------------------------------------------------
/configs/adaptdiffuser/mujoco/task/walker2d-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-replay-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.01
4 | horizon: 32
5 | metric_value: 3900
--------------------------------------------------------------------------------
/configs/adaptdiffuser/mujoco/task/walker2d-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.007
4 | horizon: 32
5 | metric_value: 3700
--------------------------------------------------------------------------------
/configs/dbc/kitchen/dit/kitchen.yaml:
--------------------------------------------------------------------------------
1 |
2 | pipeline_name: dbc_kitchen
3 | # env
4 | env_name: kitchen-all-v0
5 | abs_action: false
6 | dataset_path: dev/kitchen
7 | mode: train
8 | max_episode_steps: 280
9 | obs_dim: 60
10 | action_dim: 9
11 | obs_steps: 2
12 | action_steps: 1
13 | # train
14 | device: cuda:1
15 | seed: 0
16 | gradient_steps: 1000000
17 | batch_size: 512
18 | horizon: 2
19 | nn: dit
20 | diffusion: ddpm
21 | sample_steps: 50
22 | diffusion_x: true
23 | extra_sample_steps: 8
24 | # optimizer
25 | lr: 5e-4
26 | # eval
27 | model_path: path/to/model
28 | eval_episodes: 50
29 | num_envs: 10
30 | eval_freq: 100000
31 | save_video: true
32 | # log
33 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
34 | save_path: logs
35 | project: CleanDiffuser
36 | group: dbc_kitchen
37 | wandb_mode: offline
38 | log_freq: 1000
39 | save_freq: 100000
40 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
41 | # hydra
42 | hydra:
43 | run:
44 | dir: ${work_dir}
45 | job:
46 | chdir: false
47 |
48 |
49 |
--------------------------------------------------------------------------------
/configs/dbc/kitchen/pearce_mlp/kitchen.yaml:
--------------------------------------------------------------------------------
1 |
2 | pipeline_name: dbc_kitchen
3 | # env
4 | env_name: kitchen-all-v0
5 | abs_action: false
6 | dataset_path: dev/kitchen
7 | mode: train
8 | max_episode_steps: 280
9 | obs_dim: 60
10 | action_dim: 9
11 | obs_steps: 2
12 | action_steps: 1
13 | # train
14 | device: cuda:0
15 | seed: 0
16 | gradient_steps: 1000000
17 | batch_size: 512
18 | horizon: 2
19 | nn: pearce_mlp
20 | diffusion: ddpm
21 | sample_steps: 50
22 | diffusion_x: true
23 | extra_sample_steps: 8
24 | # optimizer
25 | lr: 0.001
26 | # eval
27 | model_path: path/to/model
28 | eval_episodes: 50
29 | num_envs: 10
30 | eval_freq: 100000
31 | save_video: true
32 | # log
33 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
34 | save_path: logs
35 | project: CleanDiffuser
36 | group: dbc_kitchen
37 | wandb_mode: offline
38 | log_freq: 1000
39 | save_freq: 100000
40 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
41 | # hydra
42 | hydra:
43 | run:
44 | dir: ${work_dir}
45 | job:
46 | chdir: false
47 |
48 |
49 |
--------------------------------------------------------------------------------
/configs/dbc/pusht/dit/pusht.yaml:
--------------------------------------------------------------------------------
1 |
2 | pipeline_name: dbc_pusht
3 | # env
4 | env_name: pusht-v0
5 | abs_action: false
6 | dataset_path: dev/pusht/pusht_cchi_v7_replay.zarr
7 | mode: train
8 | max_episode_steps: 300
9 | obs_keys: ["state", "action", "keypoint"]
10 | obs_dim: 5
11 | action_dim: 2
12 | obs_steps: 2
13 | action_steps: 1
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 512
19 | horizon: 2
20 | nn: dit
21 | diffusion: ddpm
22 | sample_steps: 50
23 | diffusion_x: true
24 | extra_sample_steps: 8
25 | # optimizer
26 | lr: 5e-4
27 | # eval
28 | model_path: path/to/model
29 | eval_episodes: 50
30 | num_envs: 1
31 | eval_freq: 100000
32 | save_video: true
33 | # log
34 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
35 | save_path: logs
36 | project: CleanDiffuser
37 | group: dbc_kitchen
38 | wandb_mode: offline
39 | log_freq: 1000
40 | save_freq: 100000
41 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
42 | # hydra
43 | hydra:
44 | run:
45 | dir: ${work_dir}
46 | job:
47 | chdir: false
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/configs/dbc/pusht/dit/pusht_image.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dbc_pusht_image
2 | # env
3 | env_name: pusht-image-v0
4 | abs_action: false
5 | dataset_path: dev/pusht/pusht_cchi_v7_replay.zarr
6 | mode: train
7 | max_episode_steps: 300
8 | obs_keys: ['img', 'state', 'action']
9 | shape_meta:
10 | obs:
11 | agent_pos:
12 | shape:
13 | - 2
14 | type: low_dim
15 | image:
16 | shape:
17 | - 3
18 | - 96
19 | - 96
20 | type: rgb
21 | action_dim: 2
22 | obs_steps: 2
23 | action_steps: 1
24 | # obs_encoder
25 | rgb_model: resnet18
26 | resize_shape: null
27 | crop_shape:
28 | - 84
29 | - 84
30 | random_crop: true
31 | use_group_norm: true
32 | use_seq: true
33 | # train
34 | device: cuda:0
35 | seed: 0
36 | gradient_steps: 1000000
37 | batch_size: 64
38 | horizon: 2
39 | nn: dit
40 | diffusion: ddpm
41 | sample_steps: 50
42 | diffusion_x: true
43 | extra_sample_steps: 8
44 | # optimizer
45 | lr: 5e-4
46 | # eval
47 | model_path: path/to/model
48 | eval_episodes: 50
49 | num_envs: 1
50 | eval_freq: 100000
51 | save_video: true
52 | # log
53 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
54 | save_path: logs
55 | project: CleanDiffuser
56 | group: dbc_pusht_image
57 | wandb_mode: offline
58 | log_freq: 1000
59 | save_freq: 100000
60 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
61 | # hydra
62 | hydra:
63 | run:
64 | dir: ${work_dir}
65 | job:
66 | chdir: false
--------------------------------------------------------------------------------
/configs/dbc/pusht/dit/pusht_keypoint.yaml:
--------------------------------------------------------------------------------
1 |
2 | pipeline_name: dbc_pusht
3 | # env
4 | env_name: pusht-keypoints-v0
5 | abs_action: false
6 | dataset_path: dev/pusht/pusht_cchi_v7_replay.zarr
7 | mode: train
8 | max_episode_steps: 300
9 | obs_keys: ["state", "action", "keypoint"]
10 | obs_dim: 20
11 | action_dim: 2
12 | obs_steps: 2
13 | action_steps: 1
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 512
19 | horizon: 2
20 | nn: dit
21 | diffusion: ddpm
22 | sample_steps: 50
23 | diffusion_x: true
24 | extra_sample_steps: 8
25 | # optimizer
26 | lr: 5e-4
27 | # eval
28 | model_path: path/to/model
29 | eval_episodes: 50
30 | num_envs: 1
31 | eval_freq: 100000
32 | save_video: true
33 | # log
34 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
35 | save_path: logs
36 | project: CleanDiffuser
37 | group: dbc_pusht
38 | wandb_mode: offline
39 | log_freq: 1000
40 | save_freq: 100000
41 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
42 | # hydra
43 | hydra:
44 | run:
45 | dir: ${work_dir}
46 | job:
47 | chdir: false
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/configs/dbc/pusht/pearce_mlp/pusht.yaml:
--------------------------------------------------------------------------------
1 |
2 | pipeline_name: dbc_pusht
3 | # env
4 | env_name: pusht-v0
5 | abs_action: false
6 | dataset_path: dev/pusht/pusht_cchi_v7_replay.zarr
7 | mode: train
8 | max_episode_steps: 300
9 | obs_keys: ["state", "action", "keypoint"]
10 | obs_dim: 5
11 | action_dim: 2
12 | obs_steps: 2
13 | action_steps: 1
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 512
19 | horizon: 2
20 | nn: pearce_mlp
21 | diffusion: ddpm
22 | sample_steps: 50
23 | diffusion_x: true
24 | extra_sample_steps: 8
25 | # optimizer
26 | lr: 0.001
27 | # eval
28 | model_path: path/to/model
29 | eval_episodes: 50
30 | num_envs: 1
31 | eval_freq: 100000
32 | save_video: true
33 | # log
34 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
35 | save_path: logs
36 | project: CleanDiffuser
37 | group: dbc_pusht
38 | wandb_mode: offline
39 | log_freq: 1000
40 | save_freq: 100000
41 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
42 | # hydra
43 | hydra:
44 | run:
45 | dir: ${work_dir}
46 | job:
47 | chdir: false
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/configs/dbc/pusht/pearce_mlp/pusht_image.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dbc_pusht_image
2 | # env
3 | env_name: pusht-image-v0
4 | abs_action: false
5 | dataset_path: dev/pusht_cchi_v7_replay.zarr
6 | mode: train
7 | max_episode_steps: 300
8 | obs_keys: ['img', 'state', 'action']
9 | shape_meta:
10 | obs:
11 | agent_pos:
12 | shape:
13 | - 2
14 | type: low_dim
15 | image:
16 | shape:
17 | - 3
18 | - 96
19 | - 96
20 | type: rgb
21 | action_dim: 2
22 | obs_steps: 2
23 | action_steps: 1
24 | # obs_encoder
25 | rgb_model: resnet18
26 | resize_shape: null
27 | crop_shape:
28 | - 84
29 | - 84
30 | random_crop: true
31 | use_group_norm: true
32 | use_seq: true
33 | # train
34 | device: cuda:0
35 | seed: 0
36 | gradient_steps: 1000000
37 | batch_size: 64
38 | horizon: 2
39 | nn: pearce_mlp
40 | diffusion: ddpm
41 | sample_steps: 50
42 | diffusion_x: true
43 | extra_sample_steps: 8
44 | # optimizer
45 | lr: 0.001
46 | # eval
47 | model_path: path/to/model
48 | eval_episodes: 50
49 | num_envs: 1
50 | eval_freq: 100000
51 | save_video: true
52 | # log
53 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
54 | save_path: logs
55 | project: CleanDiffuser
56 | group: dbc_pusht_image
57 | wandb_mode: offline
58 | log_freq: 1000
59 | save_freq: 100000
60 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
61 | # hydra
62 | hydra:
63 | run:
64 | dir: ${work_dir}
65 | job:
66 | chdir: false
--------------------------------------------------------------------------------
/configs/dbc/pusht/pearce_mlp/pusht_keypoint.yaml:
--------------------------------------------------------------------------------
1 |
2 | pipeline_name: dbc_pusht
3 | # env
4 | env_name: pusht-keypoints-v0
5 | abs_action: false
6 | dataset_path: dev/pusht_cchi_v7_replay.zarr
7 | mode: train
8 | max_episode_steps: 300
9 | obs_keys: ["state", "action", "keypoint"]
10 | obs_dim: 20
11 | action_dim: 2
12 | obs_steps: 2
13 | action_steps: 1
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 512
19 | horizon: 2
20 | nn: pearce_mlp
21 | diffusion: ddpm
22 | sample_steps: 50
23 | diffusion_x: true
24 | extra_sample_steps: 8
25 | # optimizer
26 | lr: 0.001
27 | # eval
28 | model_path: path/to/model
29 | eval_episodes: 50
30 | num_envs: 1
31 | eval_freq: 100000
32 | save_video: true
33 | # log
34 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
35 | save_path: logs
36 | project: CleanDiffuser
37 | group: dbc_pusht
38 | wandb_mode: offline
39 | log_freq: 1000
40 | save_freq: 100000
41 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
42 | # hydra
43 | hydra:
44 | run:
45 | dir: ${work_dir}
46 | job:
47 | chdir: false
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/configs/dbc/robomimic/dit/can.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dbc_robomimic
2 | # env
3 | env_name: can
4 | env_type: ph
5 | abs_action: false
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim.hdf5
7 | mode: train
8 | max_episode_steps: 400
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 23
11 | action_dim: 7
12 | obs_steps: 2
13 | action_steps: 1
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 512
19 | horizon: 2
20 | nn: pearce_mlp
21 | diffusion: ddpm
22 | sample_steps: 50
23 | diffusion_x: true
24 | extra_sample_steps: 8
25 | # optimizer
26 | lr: 5e-4
27 | # eval
28 | model_path: path/to/model
29 | num_envs: 10
30 | eval_episodes: 50
31 | save_video: true
32 | eval_freq: 100000
33 | # log
34 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
35 | save_path: logs
36 | project: CleanDiffuser
37 | group: dbc_robomimic
38 | wandb_mode: offline
39 | log_freq: 1000
40 | save_freq: 100000
41 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
42 | # hydra
43 | hydra:
44 | run:
45 | dir: ${work_dir}
46 | job:
47 | chdir: false
48 |
49 |
50 |
--------------------------------------------------------------------------------
/configs/dbc/robomimic/dit/lift.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dbc_robomimic
2 | # env
3 | env_name: lift
4 | env_type: ph
5 | abs_action: false
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim.hdf5
7 | mode: train
8 | max_episode_steps: 400
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 19
11 | action_dim: 7
12 | obs_steps: 2
13 | action_steps: 1
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 512
19 | horizon: 2
20 | nn: dit
21 | diffusion: ddpm
22 | sample_steps: 50
23 | diffusion_x: true
24 | extra_sample_steps: 8
25 | # optimizer
26 | lr: 5e-4
27 | # eval
28 | model_path: path/to/model
29 | num_envs: 10
30 | eval_episodes: 50
31 | save_video: true
32 | eval_freq: 100000
33 | # log
34 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
35 | save_path: logs
36 | project: CleanDiffuser
37 | group: dbc_robomimic
38 | wandb_mode: offline
39 | log_freq: 1000
40 | save_freq: 100000
41 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
42 | # hydra
43 | hydra:
44 | run:
45 | dir: ${work_dir}
46 | job:
47 | chdir: false
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/configs/dbc/robomimic/dit/square.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dbc_robomimic
2 | # env
3 | env_name: square
4 | env_type: ph
5 | abs_action: false
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim.hdf5
7 | mode: train
8 | max_episode_steps: 500
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 23
11 | action_dim: 7
12 | obs_steps: 2
13 | action_steps: 1
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 512
19 | horizon: 2
20 | nn: dit
21 | diffusion: ddpm
22 | sample_steps: 50
23 | diffusion_x: true
24 | extra_sample_steps: 8
25 | # optimizer
26 | lr: 5e-4
27 | # eval
28 | model_path: path/to/model
29 | num_envs: 10
30 | eval_episodes: 50
31 | save_video: true
32 | eval_freq: 100000
33 | # log
34 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
35 | save_path: logs
36 | project: CleanDiffuser
37 | group: dbc_robomimic
38 | wandb_mode: offline
39 | log_freq: 1000
40 | save_freq: 100000
41 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
42 | # hydra
43 | hydra:
44 | run:
45 | dir: ${work_dir}
46 | job:
47 | chdir: false
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/configs/dbc/robomimic/dit/tool_hang.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dbc_robomimic
2 | # env
3 | env_name: tool_hang
4 | env_type: ph
5 | abs_action: false
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim.hdf5
7 | mode: train
8 | max_episode_steps: 700
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 53
11 | action_dim: 7
12 | obs_steps: 2
13 | action_steps: 1
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 512
19 | horizon: 2
20 | nn: dit
21 | diffusion: ddpm
22 | sample_steps: 50
23 | diffusion_x: true
24 | extra_sample_steps: 8
25 | # optimizer
26 | lr: 5e-4
27 | # eval
28 | model_path: path/to/model
29 | num_envs: 10
30 | eval_episodes: 50
31 | save_video: true
32 | eval_freq: 100000
33 | # log
34 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
35 | save_path: logs
36 | project: CleanDiffuser
37 | group: dbc_robomimic
38 | wandb_mode: offline
39 | log_freq: 1000
40 | save_freq: 100000
41 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
42 | # hydra
43 | hydra:
44 | run:
45 | dir: ${work_dir}
46 | job:
47 | chdir: false
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/configs/dbc/robomimic/dit/transport.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dbc_robomimic
2 | # env
3 | env_name: transport
4 | env_type: ph
5 | abs_action: false
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim.hdf5
7 | mode: train
8 | max_episode_steps: 700
9 | obs_keys: [
10 | 'object',
11 | 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos',
12 | 'robot1_eef_pos', 'robot1_eef_quat', 'robot1_gripper_qpos'
13 | ]
14 | obs_dim: 59 # 41+(3+4+2)*2
15 | action_dim: 14 # 7*2
16 | obs_steps: 2
17 | action_steps: 1
18 | # train
19 | device: cuda:0
20 | seed: 0
21 | gradient_steps: 1000000
22 | batch_size: 512
23 | horizon: 2
24 | nn: dit
25 | diffusion: ddpm
26 | sample_steps: 50
27 | diffusion_x: true
28 | extra_sample_steps: 8
29 | # optimizer
30 | lr: 5e-4
31 | # eval
32 | model_path: path/to/model
33 | num_envs: 10
34 | eval_episodes: 50
35 | save_video: true
36 | eval_freq: 100000
37 | # log
38 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
39 | save_path: logs
40 | project: CleanDiffuser
41 | group: dbc_robomimic
42 | wandb_mode: offline
43 | log_freq: 1000
44 | save_freq: 100000
45 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
46 | # hydra
47 | hydra:
48 | run:
49 | dir: ${work_dir}
50 | job:
51 | chdir: false
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/configs/dbc/robomimic/pearce_mlp/can.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dbc_robomimic
2 | # env
3 | env_name: can
4 | env_type: ph
5 | abs_action: false
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim.hdf5
7 | mode: train
8 | max_episode_steps: 400
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 23
11 | action_dim: 7
12 | obs_steps: 2
13 | action_steps: 1
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 512
19 | horizon: 2
20 | nn: dit
21 | diffusion: ddpm
22 | sample_steps: 50
23 | diffusion_x: true
24 | extra_sample_steps: 8
25 | # optimizer
26 | lr: 0.001
27 | # eval
28 | model_path: path/to/model
29 | num_envs: 10
30 | eval_episodes: 50
31 | save_video: true
32 | eval_freq: 100000
33 | # log
34 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
35 | save_path: logs
36 | project: CleanDiffuser
37 | group: dbc_robomimic
38 | wandb_mode: offline
39 | log_freq: 1000
40 | save_freq: 100000
41 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
42 | # hydra
43 | hydra:
44 | run:
45 | dir: ${work_dir}
46 | job:
47 | chdir: false
48 |
49 |
50 |
--------------------------------------------------------------------------------
/configs/dbc/robomimic/pearce_mlp/lift.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dbc_robomimic
2 | # env
3 | env_name: lift
4 | env_type: ph
5 | abs_action: false
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim.hdf5
7 | mode: train
8 | max_episode_steps: 400
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 19
11 | action_dim: 7
12 | obs_steps: 2
13 | action_steps: 1
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 512
19 | horizon: 2
20 | nn: pearce_mlp
21 | diffusion: ddpm
22 | sample_steps: 50
23 | diffusion_x: true
24 | extra_sample_steps: 8
25 | # optimizer
26 | lr: 0.001
27 | # eval
28 | model_path: path/to/model
29 | num_envs: 10
30 | eval_episodes: 50
31 | save_video: false
32 | eval_freq: 100000
33 | # log
34 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
35 | save_path: logs
36 | project: CleanDiffuser
37 | group: dbc_robomimic
38 | wandb_mode: offline
39 | log_freq: 1000
40 | save_freq: 100000
41 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
42 | # hydra
43 | hydra:
44 | run:
45 | dir: ${work_dir}
46 | job:
47 | chdir: false
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/configs/dbc/robomimic/pearce_mlp/square.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dbc_robomimic
2 | # env
3 | env_name: square
4 | env_type: ph
5 | abs_action: false
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim.hdf5
7 | mode: train
8 | max_episode_steps: 500
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 23
11 | action_dim: 7
12 | obs_steps: 2
13 | action_steps: 1
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 512
19 | horizon: 2
20 | nn: pearce_mlp
21 | diffusion: ddpm
22 | sample_steps: 50
23 | diffusion_x: true
24 | extra_sample_steps: 8
25 | # optimizer
26 | lr: 0.001
27 | # eval
28 | model_path: path/to/model
29 | num_envs: 10
30 | eval_episodes: 50
31 | save_video: true
32 | eval_freq: 100000
33 | # log
34 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
35 | save_path: logs
36 | project: CleanDiffuser
37 | group: dbc_robomimic
38 | wandb_mode: offline
39 | log_freq: 1000
40 | save_freq: 100000
41 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
42 | # hydra
43 | hydra:
44 | run:
45 | dir: ${work_dir}
46 | job:
47 | chdir: false
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/configs/dbc/robomimic/pearce_mlp/tool_hang.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dbc_robomimic
2 | # env
3 | env_name: tool_hang
4 | env_type: ph
5 | abs_action: false
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim.hdf5
7 | mode: train
8 | max_episode_steps: 700
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 53
11 | action_dim: 7
12 | obs_steps: 2
13 | action_steps: 1
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 512
19 | horizon: 2
20 | nn: pearce_mlp
21 | diffusion: ddpm
22 | sample_steps: 50
23 | diffusion_x: true
24 | extra_sample_steps: 8
25 | # optimizer
26 | lr: 0.001
27 | # eval
28 | model_path: path/to/model
29 | num_envs: 10
30 | eval_episodes: 50
31 | save_video: true
32 | eval_freq: 100000
33 | # log
34 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
35 | save_path: logs
36 | project: CleanDiffuser
37 | group: dbc_robomimic
38 | wandb_mode: offline
39 | log_freq: 1000
40 | save_freq: 100000
41 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
42 | # hydra
43 | hydra:
44 | run:
45 | dir: ${work_dir}
46 | job:
47 | chdir: false
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/configs/dbc/robomimic/pearce_mlp/transport.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dbc_robomimic
2 | # env
3 | env_name: transport
4 | env_type: ph
5 | abs_action: false
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim.hdf5
7 | mode: train
8 | max_episode_steps: 700
9 | obs_keys: [
10 | 'object',
11 | 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos',
12 | 'robot1_eef_pos', 'robot1_eef_quat', 'robot1_gripper_qpos'
13 | ]
14 | obs_dim: 59 # 41+(3+4+2)*2
15 | action_dim: 14 # 7*2
16 | obs_steps: 2
17 | action_steps: 1
18 | # train
19 | device: cuda:0
20 | seed: 0
21 | gradient_steps: 1000000
22 | batch_size: 512
23 | horizon: 2
24 | nn: pearce_mlp
25 | diffusion: ddpm
26 | sample_steps: 50
27 | diffusion_x: true
28 | extra_sample_steps: 8
29 | # optimizer
30 | lr: 0.001
31 | # eval
32 | model_path: path/to/model
33 | num_envs: 10
34 | eval_episodes: 50
35 | save_video: true
36 | eval_freq: 100000
37 | # log
38 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
39 | save_path: logs
40 | project: CleanDiffuser
41 | group: dbc_robomimic
42 | wandb_mode: offline
43 | log_freq: 1000
44 | save_freq: 100000
45 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
46 | # hydra
47 | hydra:
48 | run:
49 | dir: ${work_dir}
50 | job:
51 | chdir: false
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/configs/dd/antmaze/antmaze.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: antmaze-medium-play-v2
4 |
5 | pipeline_name: dd_d4rl_antmaze
6 | mode: train
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | noreaching_penalty: -100
12 | discount: 0.99
13 |
14 | # DD
15 | solver: ddim
16 | ## Network Architecture
17 | emb_dim: 128
18 | d_model: 320
19 | n_heads: 10
20 | depth: 2
21 | label_dropout: 0.25
22 | sampling_steps: 20
23 | predict_noise: True
24 | next_obs_loss_weight: 10.
25 | ema_rate: 0.9999
26 |
27 | # Training
28 | diffusion_gradient_steps: 1000000
29 | invdyn_gradient_steps: 200000
30 | batch_size: 64
31 | log_interval: 1000
32 | save_interval: 100000
33 |
34 | # Inference
35 | diffusion_ckpt: latest
36 | invdyn_ckpt: latest
37 | num_envs: 50
38 | num_episodes: 3
39 | temperature: 0.5
40 | use_ema: True
41 |
42 | # hydra
43 | hydra:
44 | job:
45 | chdir: false
46 |
47 |
--------------------------------------------------------------------------------
/configs/dd/antmaze/task/antmaze-large-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-diverse-v2"
2 | target_return: 0.3
3 | w_cfg: 2.5
4 | horizon: 64
--------------------------------------------------------------------------------
/configs/dd/antmaze/task/antmaze-large-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-play-v2"
2 | target_return: 0.3
3 | w_cfg: 2.5
4 | horizon: 64
--------------------------------------------------------------------------------
/configs/dd/antmaze/task/antmaze-medium-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-diverse-v2"
2 | target_return: 0.3
3 | w_cfg: 2.5
4 | horizon: 64
--------------------------------------------------------------------------------
/configs/dd/antmaze/task/antmaze-medium-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-play-v2"
2 | target_return: 0.3
3 | w_cfg: 2.5
4 | horizon: 64
--------------------------------------------------------------------------------
/configs/dd/kitchen/kitchen.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: kitchen-mixed-v0
4 |
5 | pipeline_name: dd_d4rl_kitchen
6 | mode: train
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | discount: 0.997
12 |
13 | # DD
14 | solver: ddim
15 | ## Network Architecture
16 | emb_dim: 128
17 | d_model: 320
18 | n_heads: 10
19 | depth: 2
20 | label_dropout: 0.25
21 | sampling_steps: 20
22 | predict_noise: True
23 | next_obs_loss_weight: 10.
24 | ema_rate: 0.9999
25 |
26 | # Training
27 | diffusion_gradient_steps: 1000000
28 | invdyn_gradient_steps: 200000
29 | batch_size: 64
30 | log_interval: 1000
31 | save_interval: 100000
32 |
33 | # Inference
34 | diffusion_ckpt: latest
35 | invdyn_ckpt: latest
36 | num_envs: 50
37 | num_episodes: 3
38 | temperature: 0.5
39 | use_ema: True
40 |
41 | # hydra
42 | hydra:
43 | job:
44 | chdir: false
45 |
46 |
--------------------------------------------------------------------------------
/configs/dd/kitchen/task/kitchen-mixed-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-mixed-v0"
2 | target_return: 0.85
3 | w_cfg: 1.0
4 | horizon: 32
--------------------------------------------------------------------------------
/configs/dd/kitchen/task/kitchen-partial-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-partial-v0"
2 | target_return: 0.85
3 | w_cfg: 1.0
4 | horizon: 32
--------------------------------------------------------------------------------
/configs/dd/mujoco/mujoco.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: halfcheetah-medium-expert-v2
4 |
5 | pipeline_name: dd_d4rl_mujoco
6 | mode: train
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | terminal_penalty: -100
12 | discount: 0.997
13 |
14 | # DD
15 | solver: ddim
16 | ## Network Architecture
17 | emb_dim: 128
18 | d_model: 320
19 | n_heads: 10
20 | depth: 2
21 | label_dropout: 0.25
22 | sampling_steps: 20
23 | predict_noise: True
24 | next_obs_loss_weight: 10.
25 | ema_rate: 0.9999
26 |
27 | # Training
28 | diffusion_gradient_steps: 1000000
29 | invdyn_gradient_steps: 200000
30 | batch_size: 64
31 | log_interval: 1000
32 | save_interval: 100000
33 |
34 | # Inference
35 | diffusion_ckpt: latest
36 | invdyn_ckpt: latest
37 | num_envs: 50
38 | num_episodes: 3
39 | temperature: 0.5
40 | use_ema: True
41 |
42 | # hydra
43 | hydra:
44 | job:
45 | chdir: false
46 |
47 |
--------------------------------------------------------------------------------
/configs/dd/mujoco/task/halfcheetah-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-expert-v2"
2 | target_return: 0.95
3 | w_cfg: 1.2
4 | horizon: 32
--------------------------------------------------------------------------------
/configs/dd/mujoco/task/halfcheetah-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-replay-v2"
2 | target_return: 0.95
3 | w_cfg: 1.4
4 | horizon: 32
--------------------------------------------------------------------------------
/configs/dd/mujoco/task/halfcheetah-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-v2"
2 | target_return: 1.1
3 | w_cfg: 3.2
4 | horizon: 32
5 |
--------------------------------------------------------------------------------
/configs/dd/mujoco/task/hopper-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-expert-v2"
2 | target_return: 0.95
3 | w_cfg: 1.2
4 | horizon: 32
--------------------------------------------------------------------------------
/configs/dd/mujoco/task/hopper-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-replay-v2"
2 | target_return: 0.6
3 | w_cfg: 6.0
4 | horizon: 32
--------------------------------------------------------------------------------
/configs/dd/mujoco/task/hopper-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-v2"
2 | target_return: 0.7
3 | w_cfg: 4.4
4 | horizon: 32
--------------------------------------------------------------------------------
/configs/dd/mujoco/task/walker2d-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-expert-v2"
2 | target_return: 1.0
3 | w_cfg: 1.2
4 | horizon: 32
--------------------------------------------------------------------------------
/configs/dd/mujoco/task/walker2d-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-replay-v2"
2 | target_return: 0.75
3 | w_cfg: 2.4
4 | horizon: 32
--------------------------------------------------------------------------------
/configs/dd/mujoco/task/walker2d-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-v2"
2 | target_return: 0.75
3 | w_cfg: 6.0
4 | horizon: 32
--------------------------------------------------------------------------------
/configs/diffuser/antmaze/antmaze.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: antmaze-medium-play-v2
4 |
5 | pipeline_name: diffuser_d4rl_antmaze
6 | mode: train
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | noreaching_penalty: -100
12 | discount: 0.99
13 |
14 | # Diffuser
15 | solver: ddpm
16 | model_dim: 64
17 | diffusion_steps: 20
18 | sampling_steps: 20
19 | predict_noise: False
20 | action_loss_weight: 10.
21 | ema_rate: 0.9999
22 |
23 | # Training
24 | diffusion_gradient_steps: 1000000
25 | classifier_gradient_steps: 1000000
26 | batch_size: 64
27 | log_interval: 1000
28 | save_interval: 100000
29 |
30 | # Inference
31 | ckpt: latest
32 | num_envs: 50
33 | num_episodes: 3
34 | num_candidates: 64
35 | temperature: 0.5
36 | use_ema: True
37 |
38 | # hydra
39 | hydra:
40 | job:
41 | chdir: false
42 |
43 |
--------------------------------------------------------------------------------
/configs/diffuser/antmaze/task/antmaze-large-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-diverse-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.001
4 | horizon: 64
5 |
--------------------------------------------------------------------------------
/configs/diffuser/antmaze/task/antmaze-large-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-play-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.001
4 | horizon: 64
5 |
--------------------------------------------------------------------------------
/configs/diffuser/antmaze/task/antmaze-medium-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-diverse-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.001
4 | horizon: 64
5 |
--------------------------------------------------------------------------------
/configs/diffuser/antmaze/task/antmaze-medium-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-play-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.001
4 | horizon: 64
5 |
--------------------------------------------------------------------------------
/configs/diffuser/kitchen/kitchen.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: kitchen-mixed-v0
4 |
5 | pipeline_name: diffuser_d4rl_kitchen
6 | mode: train
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | discount: 0.997
12 |
13 | # Diffuser
14 | solver: ddpm
15 | model_dim: 64
16 | diffusion_steps: 20
17 | sampling_steps: 20
18 | predict_noise: False
19 | action_loss_weight: 10.
20 | ema_rate: 0.9999
21 |
22 | # Training
23 | diffusion_gradient_steps: 1000000
24 | classifier_gradient_steps: 1000000
25 | batch_size: 64
26 | log_interval: 1000
27 | save_interval: 100000
28 |
29 | # Inference
30 | ckpt: latest
31 | num_envs: 50
32 | num_episodes: 3
33 | num_candidates: 64
34 | temperature: 0.5
35 | use_ema: True
36 |
37 | # hydra
38 | hydra:
39 | job:
40 | chdir: false
41 |
42 |
--------------------------------------------------------------------------------
/configs/diffuser/kitchen/task/kitchen-mixed-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-mixed-v0"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.0001
4 | horizon: 32
5 |
--------------------------------------------------------------------------------
/configs/diffuser/kitchen/task/kitchen-partial-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-partial-v0"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.01
4 | horizon: 32
5 |
--------------------------------------------------------------------------------
/configs/diffuser/mujoco/mujoco.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: halfcheetah-medium-expert-v2
4 |
5 | pipeline_name: diffuser_d4rl_mujoco
6 | mode: train
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | terminal_penalty: -100
12 | discount: 0.997
13 |
14 | # Diffuser
15 | solver: ddpm
16 | model_dim: 32
17 | diffusion_steps: 20
18 | sampling_steps: 20
19 | predict_noise: False
20 | action_loss_weight: 10.
21 | ema_rate: 0.9999
22 |
23 | # Training
24 | diffusion_gradient_steps: 1000000
25 | classifier_gradient_steps: 1000000
26 | batch_size: 64
27 | log_interval: 1000
28 | save_interval: 100000
29 |
30 | # Inference
31 | ckpt: latest
32 | num_envs: 50
33 | num_episodes: 3
34 | num_candidates: 64
35 | temperature: 0.5
36 | use_ema: True
37 |
38 | # hydra
39 | hydra:
40 | job:
41 | chdir: false
42 |
43 |
--------------------------------------------------------------------------------
/configs/diffuser/mujoco/task/halfcheetah-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-expert-v2"
2 | dim_mult: [1, 4, 2]
3 | w_cg: 0.0001
4 | horizon: 4
5 |
--------------------------------------------------------------------------------
/configs/diffuser/mujoco/task/halfcheetah-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-replay-v2"
2 | dim_mult: [1, 4, 2]
3 | w_cg: 0.0001
4 | horizon: 4
5 |
--------------------------------------------------------------------------------
/configs/diffuser/mujoco/task/halfcheetah-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-v2"
2 | dim_mult: [1, 4, 2]
3 | w_cg: 0.0001
4 | horizon: 4
5 |
--------------------------------------------------------------------------------
/configs/diffuser/mujoco/task/hopper-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-expert-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.00001
4 | horizon: 32
5 |
--------------------------------------------------------------------------------
/configs/diffuser/mujoco/task/hopper-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-replay-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.2
4 | horizon: 32
5 |
--------------------------------------------------------------------------------
/configs/diffuser/mujoco/task/hopper-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.3
4 | horizon: 32
5 |
--------------------------------------------------------------------------------
/configs/diffuser/mujoco/task/walker2d-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-expert-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.001
4 | horizon: 32
5 |
--------------------------------------------------------------------------------
/configs/diffuser/mujoco/task/walker2d-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-replay-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.01
4 | horizon: 32
5 |
--------------------------------------------------------------------------------
/configs/diffuser/mujoco/task/walker2d-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-v2"
2 | dim_mult: [1, 2, 2, 2]
3 | w_cg: 0.007
4 | horizon: 32
5 |
--------------------------------------------------------------------------------
/configs/diffuserlite/antmaze/antmaze.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: antmaze-medium-play-v2
4 |
5 | pipeline_name: diffuserlite_d4rl_antmaze
6 | # R1: iql_training -> training -> inference (test_model: R1)
7 | # R2: iql_training -> training -> prepare_dataset -> reflow -> inference (test_model: R2)
8 | mode: training
9 | seed: 0
10 | device: cuda:0
11 |
12 | # Environment
13 | noreaching_penalty: -100
14 | discount: 0.99
15 |
16 | # Network Architecture
17 | emb_dim: 256
18 | d_model: 320
19 | n_heads: 10
20 | depth: 2
21 | next_obs_loss_weight: 10.
22 | ema_rate: 0.9999
23 |
24 | # Training
25 | diffusion_gradient_steps: 1000000
26 | invdyn_gradient_steps: 1000000
27 | batch_size: 256
28 | log_interval: 1000
29 | save_interval: 200000
30 |
31 | # Reflow
32 | reflow_backbone_ckpt: latest
33 | cond_dataset_size: 1600000
34 | uncond_dataset_size: 400000
35 | dataset_prepare_batch_size: 5000
36 | dataset_prepare_sampling_steps: 20
37 | reflow_gradient_steps: 200000
38 |
39 | # Inference
40 | test_model: R1
41 | diffusion_ckpt: latest
42 | reflow_ckpt: latest
43 | invdyn_ckpt: latest
44 | num_envs: 50
45 | num_candidates: 64
46 | num_episodes: 3
47 | temperature: 1.0
48 | use_ema: True
49 |
50 | # hydra
51 | hydra:
52 | job:
53 | chdir: false
54 |
55 |
--------------------------------------------------------------------------------
/configs/diffuserlite/antmaze/task/antmaze-large-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-diverse-v2"
2 |
--------------------------------------------------------------------------------
/configs/diffuserlite/antmaze/task/antmaze-large-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-play-v2"
2 |
--------------------------------------------------------------------------------
/configs/diffuserlite/antmaze/task/antmaze-medium-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-diverse-v2"
2 |
--------------------------------------------------------------------------------
/configs/diffuserlite/antmaze/task/antmaze-medium-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-play-v2"
2 |
--------------------------------------------------------------------------------
/configs/diffuserlite/kitchen/kitchen.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: kitchen-mixed-v0
4 |
5 | pipeline_name: diffuserlite_d4rl_kitchen
6 | # R1: iql_training -> training -> inference (test_model: R1)
7 | # R2: iql_training -> training -> prepare_dataset -> reflow -> inference (test_model: R2)
8 | mode: training
9 | seed: 0
10 | device: cuda:0
11 |
12 | # Environment
13 | discount: 0.99
14 |
15 | # Network Architecture
16 | emb_dim: 256
17 | d_model: 320
18 | n_heads: 10
19 | depth: 2
20 | next_obs_loss_weight: 10.
21 | ema_rate: 0.9999
22 |
23 | # Training
24 | diffusion_gradient_steps: 1000000
25 | invdyn_gradient_steps: 1000000
26 | batch_size: 256
27 | log_interval: 1000
28 | save_interval: 200000
29 |
30 | # Reflow
31 | reflow_backbone_ckpt: latest
32 | cond_dataset_size: 1600000
33 | uncond_dataset_size: 400000
34 | dataset_prepare_batch_size: 5000
35 | dataset_prepare_sampling_steps: 20
36 | reflow_gradient_steps: 200000
37 |
38 | # Inference
39 | test_model: R1
40 | diffusion_ckpt: ???
41 | reflow_ckpt: latest
42 | invdyn_ckpt: latest
43 | num_envs: 50
44 | num_candidates: 64
45 | num_episodes: 3
46 | temperature: 1.0
47 | use_ema: True
48 |
49 | # hydra
50 | hydra:
51 | job:
52 | chdir: false
53 |
54 |
--------------------------------------------------------------------------------
/configs/diffuserlite/kitchen/task/kitchen-mixed-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-mixed-v0"
2 |
3 | diffusion_ckpt: 200000
4 |
--------------------------------------------------------------------------------
/configs/diffuserlite/kitchen/task/kitchen-partial-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-partial-v0"
2 |
3 | diffusion_ckpt: latest
4 |
--------------------------------------------------------------------------------
/configs/diffuserlite/mujoco/mujoco.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: halfcheetah-medium-expert-v2
4 |
5 | pipeline_name: diffuserlite_d4rl_mujoco
6 | # R1: training -> inference (test_model: R1)
7 | # R2: training -> prepare_dataset -> reflow -> inference (test_model: R2)
8 | mode: training
9 | seed: 0
10 | device: cuda:0
11 |
12 | # Environment
13 | terminal_penalty: -100
14 | discount: 0.997
15 |
16 | # Network Architecture
17 | emb_dim: 256
18 | d_model: 256
19 | n_heads: 8
20 | depth: 2
21 | next_obs_loss_weight: 10.
22 | ema_rate: 0.9999
23 |
24 | # Training
25 | diffusion_gradient_steps: 1000000
26 | invdyn_gradient_steps: 1000000
27 | batch_size: 256
28 | log_interval: 1000
29 | save_interval: 200000
30 |
31 | # Reflow
32 | reflow_backbone_ckpt: latest
33 | cond_dataset_size: 1600000
34 | uncond_dataset_size: 400000
35 | dataset_prepare_batch_size: 5000
36 | dataset_prepare_sampling_steps: 20
37 | reflow_gradient_steps: 200000
38 |
39 | # Inference
40 | test_model: R1
41 | diffusion_ckpt: latest
42 | invdyn_ckpt: latest
43 | num_envs: 50
44 | num_episodes: 3
45 | temperature: 0.5
46 | use_ema: True
47 |
48 | # hydra
49 | hydra:
50 | job:
51 | chdir: false
52 |
53 |
--------------------------------------------------------------------------------
/configs/diffuserlite/mujoco/task/halfcheetah-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-expert-v2"
2 |
3 | target_return_R1: 1.0
4 | w_cfg_R1: 1.0
5 |
6 | target_return_R2: 0.9
7 | w_cfg_R2: 1.0
8 |
--------------------------------------------------------------------------------
/configs/diffuserlite/mujoco/task/halfcheetah-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-replay-v2"
2 |
3 | target_return_R1: 1.0
4 | w_cfg_R1: 2.0
5 |
6 | target_return_R2: 1.0
7 | w_cfg_R2: 1.5
8 |
--------------------------------------------------------------------------------
/configs/diffuserlite/mujoco/task/halfcheetah-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-v2"
2 |
3 | target_return_R1: 1.0
4 | w_cfg_R1: 10.0
5 |
6 | target_return_R2: 1.0
7 | w_cfg_R2: 7.0
8 |
--------------------------------------------------------------------------------
/configs/diffuserlite/mujoco/task/hopper-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-expert-v2"
2 |
3 | target_return_R1: 0.9
4 | w_cfg_R1: 1.0
5 |
6 | target_return_R2: 0.9
7 | w_cfg_R2: 1.0
8 |
--------------------------------------------------------------------------------
/configs/diffuserlite/mujoco/task/hopper-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-replay-v2"
2 |
3 | target_return_R1: 1.0
4 | w_cfg_R1: 0.9
5 |
6 | target_return_R2: 1.0
7 | w_cfg_R2: 1.5
8 |
--------------------------------------------------------------------------------
/configs/diffuserlite/mujoco/task/hopper-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-v2"
2 |
3 | target_return_R1: 0.8
4 | w_cfg_R1: 5.0
5 |
6 | target_return_R2: 1.0
7 | w_cfg_R2: 6.0
8 |
--------------------------------------------------------------------------------
/configs/diffuserlite/mujoco/task/walker2d-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-expert-v2"
2 |
3 | target_return_R1: 1.0
4 | w_cfg_R1: 1.0
5 |
6 | target_return_R2: 1.0
7 | w_cfg_R2: 3.0
8 |
--------------------------------------------------------------------------------
/configs/diffuserlite/mujoco/task/walker2d-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-replay-v2"
2 |
3 | target_return_R1: 0.9
4 | w_cfg_R1: 1.0
5 |
6 | target_return_R2: 1.0
7 | w_cfg_R2: 1.0
8 |
--------------------------------------------------------------------------------
/configs/diffuserlite/mujoco/task/walker2d-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-v2"
2 |
3 | target_return_R1: 0.9
4 | w_cfg_R1: 8.0
5 |
6 | target_return_R2: 0.9
7 | w_cfg_R2: 2.0
8 |
--------------------------------------------------------------------------------
/configs/dp/kitchen/chi_transformer/kitchen_abs.yaml:
--------------------------------------------------------------------------------
1 |
2 | pipeline_name: dp_kitchen
3 | # env
4 | env_name: kitchen-all-v0
5 | abs_action: true
6 | dataset_path: dev/kitchen/kitchen_demos_multitask
7 | mode: train
8 | max_episode_steps: 280
9 | obs_dim: 60
10 | action_dim: 9
11 | obs_steps: 2
12 | action_steps: 8
13 | # train
14 | device: cuda:0
15 | seed: 0
16 | gradient_steps: 1000000
17 | batch_size: 256
18 | horizon: 10
19 | nn: chi_transformer
20 | diffusion: ddpm
21 | sample_steps: 50
22 | # optimizer
23 | lr: 1e-4
24 | # eval
25 | model_path: path/to/model
26 | eval_episodes: 50
27 | num_envs: 10
28 | eval_freq: 100000
29 | save_video: true
30 | # log
31 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
32 | save_path: logs
33 | project: CleanDiffuser
34 | group: dp_kitchen
35 | wandb_mode: offline
36 | log_freq: 1000
37 | save_freq: 100000
38 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
39 | # hydra
40 | hydra:
41 | run:
42 | dir: ${work_dir}
43 | job:
44 | chdir: false
45 |
46 |
47 |
--------------------------------------------------------------------------------
/configs/dp/kitchen/chi_unet/kitchen_abs.yaml:
--------------------------------------------------------------------------------
1 |
2 | pipeline_name: dp_kitchen
3 | # env
4 | env_name: kitchen-all-v0
5 | abs_action: true
6 | dataset_path: dev/kitchen/kitchen_demos_multitask
7 | mode: train
8 | max_episode_steps: 280
9 | obs_dim: 60
10 | action_dim: 9
11 | obs_steps: 2
12 | action_steps: 8
13 | # train
14 | device: cuda:0
15 | seed: 0
16 | gradient_steps: 1000000
17 | batch_size: 256
18 | horizon: 16
19 | nn: chi_unet
20 | diffusion: ddpm
21 | sample_steps: 50
22 | # optimizer
23 | lr: 1e-4
24 | # eval
25 | model_path: path/to/model
26 | eval_episodes: 50
27 | num_envs: 10
28 | eval_freq: 100000
29 | save_video: true
30 | # log
31 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
32 | save_path: logs
33 | project: CleanDiffuser
34 | group: dp_kitchen
35 | wandb_mode: offline
36 | log_freq: 1000
37 | save_freq: 100000
38 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
39 | # hydra
40 | hydra:
41 | run:
42 | dir: ${work_dir}
43 | job:
44 | chdir: false
45 |
46 |
47 |
--------------------------------------------------------------------------------
/configs/dp/kitchen/dit/kitchen_abs.yaml:
--------------------------------------------------------------------------------
1 |
2 | pipeline_name: dp_kitchen
3 | # env
4 | env_name: kitchen-all-v0
5 | abs_action: true
6 | dataset_path: dev/kitchen/kitchen_demos_multitask
7 | mode: train
8 | max_episode_steps: 280
9 | obs_dim: 60
10 | action_dim: 9
11 | obs_steps: 2
12 | action_steps: 8
13 | # train
14 | device: cuda:0
15 | seed: 0
16 | gradient_steps: 1000000
17 | batch_size: 256
18 | horizon: 10
19 | nn: dit
20 | diffusion: edm
21 | sample_steps: 20
22 | # optimizer
23 | lr: 1e-4
24 | # eval
25 | model_path: path/to/model
26 | eval_episodes: 50
27 | num_envs: 10
28 | eval_freq: 100000
29 | save_video: true
30 | # log
31 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
32 | save_path: logs
33 | project: CleanDiffuser
34 | group: dp_kitchen
35 | wandb_mode: offline
36 | log_freq: 1000
37 | save_freq: 100000
38 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
39 | # hydra
40 | hydra:
41 | run:
42 | dir: ${work_dir}
43 | job:
44 | chdir: false
45 |
46 |
47 |
--------------------------------------------------------------------------------
/configs/dp/pusht/chi_transformer/pusht.yaml:
--------------------------------------------------------------------------------
1 |
2 | pipeline_name: dp_pusht
3 | # env
4 | env_name: pusht-v0
5 | abs_action: false
6 | dataset_path: dev/pusht/pusht_cchi_v7_replay.zarr
7 | mode: train
8 | max_episode_steps: 300
9 | obs_keys: ["state", "action"]
10 | obs_dim: 5
11 | action_dim: 2
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:3
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 10
20 | nn: chi_transformer
21 | diffusion: ddpm
22 | sample_steps: 5
23 | # optimizer
24 | lr: 0.0001
25 | # eval
26 | model_path: path/to/model
27 | eval_episodes: 50
28 | num_envs: 1
29 | eval_freq: 100000
30 | save_video: true
31 | # log
32 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
33 | save_path: logs
34 | project: CleanDiffuser
35 | group: dp_pusht
36 | wandb_mode: offline
37 | log_freq: 1000
38 | save_freq: 100000
39 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
40 | # hydra
41 | hydra:
42 | run:
43 | dir: ${work_dir}
44 | job:
45 | chdir: false
46 |
--------------------------------------------------------------------------------
/configs/dp/pusht/chi_transformer/pusht_image.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_pusht_image
2 | # env
3 | env_name: pusht-image-v0
4 | abs_action: false
5 | dataset_path: dev/pusht/pusht_cchi_v7_replay.zarr
6 | mode: train
7 | max_episode_steps: 300
8 | obs_keys: ['img', 'state', 'action']
9 | shape_meta:
10 | obs:
11 | agent_pos:
12 | shape:
13 | - 2
14 | type: low_dim
15 | image:
16 | shape:
17 | - 3
18 | - 96
19 | - 96
20 | type: rgb
21 | action_dim: 2
22 | obs_steps: 2
23 | action_steps: 8
24 | # obs_encoder
25 | rgb_model: resnet18
26 | resize_shape: null
27 | crop_shape:
28 | - 84
29 | - 84
30 | random_crop: true
31 | use_group_norm: true
32 | use_seq: true
33 | # train
34 | device: cuda:0
35 | seed: 0
36 | gradient_steps: 1000000
37 | batch_size: 64
38 | horizon: 10
39 | nn: chi_transformer
40 | diffusion: ddpm
41 | sample_steps: 5
42 | # optimizer
43 | lr: 0.0001
44 | # eval
45 | model_path: path/to/model
46 | eval_episodes: 50
47 | num_envs: 1
48 | eval_freq: 100000
49 | save_video: true
50 | # log
51 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
52 | save_path: logs
53 | project: CleanDiffuser
54 | group: dp_pusht
55 | wandb_mode: offline
56 | log_freq: 1000
57 | save_freq: 100000
58 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
59 | # hydra
60 | hydra:
61 | run:
62 | dir: ${work_dir}
63 | job:
64 | chdir: false
--------------------------------------------------------------------------------
/configs/dp/pusht/chi_transformer/pusht_keypoint.yaml:
--------------------------------------------------------------------------------
1 |
2 | pipeline_name: dp_pusht
3 | # env
4 | env_name: pusht-keypoints-v0
5 | abs_action: false
6 | dataset_path: dev/pusht/pusht_cchi_v7_replay.zarr
7 | mode: train
8 | max_episode_steps: 300
9 | obs_keys: ["state", "action", "keypoint"]
10 | obs_dim: 20
11 | action_dim: 2
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:3
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 10
20 | nn: chi_transformer
21 | diffusion: ddpm
22 | sample_steps: 5
23 | # optimizer
24 | lr: 0.0001
25 | # eval
26 | model_path: path/to/model
27 | eval_episodes: 50
28 | num_envs: 1
29 | eval_freq: 100000
30 | save_video: true
31 | # log
32 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
33 | save_path: logs
34 | project: CleanDiffuser
35 | group: dp_pusht
36 | wandb_mode: offline
37 | log_freq: 1000
38 | save_freq: 100000
39 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
40 | # hydra
41 | hydra:
42 | run:
43 | dir: ${work_dir}
44 | job:
45 | chdir: false
46 |
--------------------------------------------------------------------------------
/configs/dp/pusht/chi_unet/pusht.yaml:
--------------------------------------------------------------------------------
1 |
2 | pipeline_name: dp_pusht
3 | # env
4 | env_name: pusht-v0
5 | abs_action: false
6 | dataset_path: dev/pusht/pusht_cchi_v7_replay.zarr
7 | mode: train
8 | max_episode_steps: 300
9 | obs_keys: ["state", "action"]
10 | obs_dim: 5
11 | action_dim: 2
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:3
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 16
20 | nn: chi_unet
21 | diffusion: ddpm
22 | sample_steps: 5
23 | # optimizer
24 | lr: 0.0001
25 | # eval
26 | model_path: path/to/model
27 | eval_episodes: 50
28 | num_envs: 1
29 | eval_freq: 100000
30 | save_video: true
31 | # log
32 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
33 | save_path: logs
34 | project: CleanDiffuser
35 | group: dp_pusht
36 | wandb_mode: offline
37 | log_freq: 1000
38 | save_freq: 100000
39 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
40 | # hydra
41 | hydra:
42 | run:
43 | dir: ${work_dir}
44 | job:
45 | chdir: false
46 |
--------------------------------------------------------------------------------
/configs/dp/pusht/chi_unet/pusht_image.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_pusht_image
2 | # env
3 | env_name: pusht-image-v0
4 | abs_action: false
5 | dataset_path: dev/pusht/pusht_cchi_v7_replay.zarr
6 | mode: train
7 | max_episode_steps: 300
8 | obs_keys: ['img', 'state', 'action']
9 | shape_meta:
10 | obs:
11 | agent_pos:
12 | shape:
13 | - 2
14 | type: low_dim
15 | image:
16 | shape:
17 | - 3
18 | - 96
19 | - 96
20 | type: rgb
21 | action_dim: 2
22 | obs_steps: 2
23 | action_steps: 8
24 | # obs_encoder
25 | rgb_model: resnet18
26 | resize_shape: null
27 | crop_shape:
28 | - 84
29 | - 84
30 | random_crop: true
31 | use_group_norm: true
32 | use_seq: true
33 | # train
34 | device: cuda:0
35 | seed: 0
36 | gradient_steps: 1000000
37 | batch_size: 64
38 | horizon: 16
39 | nn: chi_unet
40 | diffusion: ddpm
41 | sample_steps: 5
42 | # optimizer
43 | lr: 0.0001
44 | # eval
45 | model_path: path/to/model
46 | eval_episodes: 50
47 | num_envs: 1
48 | eval_freq: 100000
49 | save_video: true
50 | # log
51 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
52 | save_path: logs
53 | project: CleanDiffuser
54 | group: dp_pusht
55 | wandb_mode: offline
56 | log_freq: 1000
57 | save_freq: 100000
58 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
59 | # hydra
60 | hydra:
61 | run:
62 | dir: ${work_dir}
63 | job:
64 | chdir: false
--------------------------------------------------------------------------------
/configs/dp/pusht/chi_unet/pusht_keypoint.yaml:
--------------------------------------------------------------------------------
1 |
2 | pipeline_name: dp_pusht
3 | # env
4 | env_name: pusht-keypoints-v0
5 | abs_action: false
6 | dataset_path: dev/pusht/pusht_cchi_v7_replay.zarr
7 | mode: train
8 | max_episode_steps: 300
9 | obs_keys: ["state", "action", "keypoint"]
10 | obs_dim: 20
11 | action_dim: 2
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:3
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 16
20 | nn: chi_unet
21 | diffusion: ddpm
22 | sample_steps: 5
23 | # optimizer
24 | lr: 0.0001
25 | # eval
26 | model_path: path/to/model
27 | eval_episodes: 50
28 | num_envs: 1
29 | eval_freq: 100000
30 | save_video: true
31 | # log
32 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
33 | save_path: logs
34 | project: CleanDiffuser
35 | group: dp_pusht
36 | wandb_mode: offline
37 | log_freq: 1000
38 | save_freq: 100000
39 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
40 | # hydra
41 | hydra:
42 | run:
43 | dir: ${work_dir}
44 | job:
45 | chdir: false
46 |
--------------------------------------------------------------------------------
/configs/dp/pusht/dit/pusht.yaml:
--------------------------------------------------------------------------------
1 |
2 | pipeline_name: dp_pusht
3 | # env
4 | env_name: pusht-v0
5 | abs_action: false
6 | dataset_path: dev/pusht/pusht_cchi_v7_replay.zarr
7 | mode: train
8 | max_episode_steps: 300
9 | obs_keys: ["state", "action"]
10 | obs_dim: 5
11 | action_dim: 2
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 10
20 | nn: dit
21 | diffusion: ddpm
22 | sample_steps: 5
23 | # optimizer
24 | lr: 0.0001
25 | # eval
26 | model_path: path/to/model
27 | eval_episodes: 50
28 | num_envs: 1
29 | eval_freq: 100000
30 | save_video: true
31 | # log
32 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
33 | save_path: logs
34 | project: CleanDiffuser
35 | group: dp_pusht
36 | wandb_mode: offline
37 | log_freq: 1000
38 | save_freq: 100000
39 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
40 | # hydra
41 | hydra:
42 | run:
43 | dir: ${work_dir}
44 | job:
45 | chdir: false
46 |
--------------------------------------------------------------------------------
/configs/dp/pusht/dit/pusht_image.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_pusht_image
2 | # env
3 | env_name: pusht-image-v0
4 | abs_action: false
5 | dataset_path: dev/pusht/pusht_cchi_v7_replay.zarr
6 | mode: train
7 | max_episode_steps: 300
8 | obs_keys: ['img', 'state', 'action']
9 | shape_meta:
10 | obs:
11 | agent_pos:
12 | shape:
13 | - 2
14 | type: low_dim
15 | image:
16 | shape:
17 | - 3
18 | - 96
19 | - 96
20 | type: rgb
21 | action_dim: 2
22 | obs_steps: 2
23 | action_steps: 8
24 | # obs_encoder
25 | rgb_model: resnet18
26 | resize_shape: null
27 | crop_shape:
28 | - 84
29 | - 84
30 | random_crop: true
31 | use_group_norm: true
32 | use_seq: true
33 | # train
34 | device: cuda:0
35 | seed: 0
36 | gradient_steps: 1000000
37 | batch_size: 64
38 | horizon: 10
39 | nn: dit
40 | diffusion: ddpm
41 | sample_steps: 5
42 | # optimizer
43 | lr: 0.0001
44 | # eval
45 | model_path: path/to/model
46 | eval_episodes: 50
47 | num_envs: 1
48 | eval_freq: 100000
49 | save_video: true
50 | # log
51 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
52 | save_path: logs
53 | project: CleanDiffuser
54 | group: dp_pusht
55 | wandb_mode: offline
56 | log_freq: 1000
57 | save_freq: 100000
58 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
59 | # hydra
60 | hydra:
61 | run:
62 | dir: ${work_dir}
63 | job:
64 | chdir: false
--------------------------------------------------------------------------------
/configs/dp/pusht/dit/pusht_keypoint.yaml:
--------------------------------------------------------------------------------
1 |
2 | pipeline_name: dp_pusht
3 | # env
4 | env_name: pusht-keypoints-v0
5 | abs_action: false
6 | dataset_path: dev/pusht/pusht_cchi_v7_replay.zarr
7 | mode: train
8 | max_episode_steps: 300
9 | obs_keys: ["state", "action", "keypoint"]
10 | obs_dim: 20
11 | action_dim: 2
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:3
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 10
20 | nn: dit
21 | diffusion: ddpm
22 | sample_steps: 5
23 | # optimizer
24 | lr: 0.0001
25 | # eval
26 | model_path: path/to/model
27 | eval_episodes: 50
28 | num_envs: 1
29 | eval_freq: 100000
30 | save_video: true
31 | # log
32 | exp_name: ${env_name}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
33 | save_path: logs
34 | project: CleanDiffuser
35 | group: dp_pusht
36 | wandb_mode: offline
37 | log_freq: 1000
38 | save_freq: 100000
39 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
40 | # hydra
41 | hydra:
42 | run:
43 | dir: ${work_dir}
44 | job:
45 | chdir: false
46 |
--------------------------------------------------------------------------------
/configs/dp/robomimic/chi_transformer/can_abs.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_robomimic
2 | # env
3 | env_name: can
4 | env_type: ph
5 | abs_action: true
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim_abs.hdf5
7 | mode: train
8 | max_episode_steps: 400
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 23
11 | action_dim: 10
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 10
20 | nn: dit
21 | diffusion: edm
22 | sample_steps: 50
23 | temperature: 1.0
24 | # optimizer
25 | lr: 0.0001
26 | # eval
27 | model_path: path/to/model
28 | num_envs: 10
29 | eval_episodes: 50
30 | save_video: true
31 | eval_freq: 100000
32 | # log
33 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
34 | save_path: logs
35 | project: CleanDiffuser
36 | group: dp_robomimic
37 | wandb_mode: offline
38 | log_freq: 1000
39 | save_freq: 100000
40 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
41 | # hydra
42 | hydra:
43 | run:
44 | dir: ${work_dir}
45 | job:
46 | chdir: false
47 |
48 |
49 |
--------------------------------------------------------------------------------
/configs/dp/robomimic/chi_transformer/lift_abs.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_robomimic
2 | # env
3 | env_name: lift
4 | env_type: ph
5 | abs_action: true
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim_abs.hdf5
7 | mode: train
8 | max_episode_steps: 400
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 19
11 | action_dim: 10
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 10
20 | nn: chi_transformer
21 | diffusion: ddpm
22 | sample_steps: 50
23 | temperature: 1.0
24 | # optimizer
25 | lr: 0.0001
26 | # eval
27 | model_path: path/to/model
28 | num_envs: 10
29 | eval_episodes: 50
30 | save_video: true
31 | eval_freq: 100000
32 | # log
33 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
34 | save_path: logs
35 | project: CleanDiffuser
36 | group: dp_robomimic
37 | wandb_mode: offline
38 | log_freq: 1000
39 | save_freq: 100000
40 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
41 | # hydra
42 | hydra:
43 | run:
44 | dir: ${work_dir}
45 | job:
46 | chdir: false
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/configs/dp/robomimic/chi_transformer/square_abs.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_robomimic
2 | # env
3 | env_name: square
4 | env_type: ph
5 | abs_action: true
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim_abs.hdf5
7 | mode: train
8 | max_episode_steps: 500
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 23
11 | action_dim: 10
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 10
20 | nn: chi_transformer
21 | diffusion: ddpm
22 | sample_steps: 50
23 | temperature: 1.0
24 | # optimizer
25 | lr: 0.0001
26 | # eval
27 | model_path: path/to/model
28 | num_envs: 10
29 | eval_episodes: 50
30 | save_video: true
31 | eval_freq: 100000
32 | # log
33 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
34 | save_path: logs
35 | project: CleanDiffuser
36 | group: dp_robomimic
37 | wandb_mode: offline
38 | log_freq: 1000
39 | save_freq: 100000
40 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
41 | # hydra
42 | hydra:
43 | run:
44 | dir: ${work_dir}
45 | job:
46 | chdir: false
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/configs/dp/robomimic/chi_transformer/tool_hang_abs.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_robomimic
2 | # env
3 | env_name: tool_hang
4 | env_type: ph
5 | abs_action: true
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim_abs.hdf5
7 | mode: train
8 | max_episode_steps: 700
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 53
11 | action_dim: 10
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 10
20 | nn: chi_transformer
21 | diffusion: ddpm
22 | sample_steps: 50
23 | temperature: 1.0
24 | # optimizer
25 | lr: 0.0001
26 | # eval
27 | model_path: path/to/model
28 | num_envs: 10
29 | eval_episodes: 50
30 | save_video: true
31 | eval_freq: 100000
32 | # log
33 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
34 | save_path: logs
35 | project: CleanDiffuser
36 | group: dp_robomimic
37 | wandb_mode: offline
38 | log_freq: 1000
39 | save_freq: 100000
40 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
41 | # hydra
42 | hydra:
43 | run:
44 | dir: ${work_dir}
45 | job:
46 | chdir: false
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/configs/dp/robomimic/chi_transformer/transport_abs.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_robomimic
2 | # env
3 | env_name: transport
4 | env_type: ph
5 | abs_action: true
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim_abs.hdf5
7 | mode: train
8 | max_episode_steps: 700
9 | obs_keys: [
10 | 'object',
11 | 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos',
12 | 'robot1_eef_pos', 'robot1_eef_quat', 'robot1_gripper_qpos'
13 | ]
14 | obs_dim: 59 # 41+(3+4+2)*2
15 | action_dim: 20 # 10*2
16 | obs_steps: 2
17 | action_steps: 8
18 | # train
19 | device: cuda:0
20 | seed: 0
21 | gradient_steps: 1000000
22 | batch_size: 256
23 | horizon: 10
24 | nn: chi_transformer
25 | diffusion: ddpm
26 | sample_steps: 50
27 | temperature: 1.0
28 | # optimizer
29 | lr: 0.0001
30 | # eval
31 | model_path: path/to/model
32 | num_envs: 10
33 | eval_episodes: 50
34 | save_video: true
35 | eval_freq: 100000
36 | # log
37 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
38 | save_path: logs
39 | project: CleanDiffuser
40 | group: dp_robomimic
41 | wandb_mode: offline
42 | log_freq: 1000
43 | save_freq: 100000
44 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
45 | # hydra
46 | hydra:
47 | run:
48 | dir: ${work_dir}
49 | job:
50 | chdir: false
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/configs/dp/robomimic/chi_unet/can_abs.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_robomimic
2 | # env
3 | env_name: can
4 | env_type: ph
5 | abs_action: true
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim_abs.hdf5
7 | mode: train
8 | max_episode_steps: 400
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 23
11 | action_dim: 10
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 16
20 | nn: chi_unet
21 | diffusion: ddpm
22 | sample_steps: 50
23 | temperature: 1.0
24 | # optimizer
25 | lr: 0.0001
26 | # eval
27 | model_path: path/to/model
28 | num_envs: 10
29 | eval_episodes: 50
30 | save_video: true
31 | eval_freq: 100000
32 | # log
33 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
34 | save_path: logs
35 | project: CleanDiffuser
36 | group: dp_robomimic
37 | wandb_mode: offline
38 | log_freq: 1000
39 | save_freq: 100000
40 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
41 | # hydra
42 | hydra:
43 | run:
44 | dir: ${work_dir}
45 | job:
46 | chdir: false
47 |
48 |
49 |
--------------------------------------------------------------------------------
/configs/dp/robomimic/chi_unet/lift_abs.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_robomimic
2 | # env
3 | env_name: lift
4 | env_type: ph
5 | abs_action: true
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim_abs.hdf5
7 | mode: train
8 | max_episode_steps: 400
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 19
11 | action_dim: 10
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 16
20 | nn: chi_unet
21 | diffusion: ddpm
22 | sample_steps: 50
23 | temperature: 1.0
24 | # optimizer
25 | lr: 0.0001
26 | # eval
27 | model_path: path/to/model
28 | num_envs: 10
29 | eval_episodes: 50
30 | save_video: true
31 | eval_freq: 100000
32 | # log
33 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
34 | save_path: logs
35 | project: CleanDiffuser
36 | group: dp_robomimic
37 | wandb_mode: offline
38 | log_freq: 1000
39 | save_freq: 100000
40 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
41 | # hydra
42 | hydra:
43 | run:
44 | dir: ${work_dir}
45 | job:
46 | chdir: false
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/configs/dp/robomimic/chi_unet/square_abs.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_robomimic
2 | # env
3 | env_name: square
4 | env_type: ph
5 | abs_action: true
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim_abs.hdf5
7 | mode: train
8 | max_episode_steps: 500
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 23
11 | action_dim: 10
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 16
20 | nn: chi_unet
21 | diffusion: ddpm
22 | sample_steps: 50
23 | temperature: 1.0
24 | # optimizer
25 | lr: 0.0001
26 | # eval
27 | model_path: path/to/model
28 | num_envs: 10
29 | eval_episodes: 50
30 | save_video: true
31 | eval_freq: 100000
32 | # log
33 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
34 | save_path: logs
35 | project: CleanDiffuser
36 | group: dp_robomimic
37 | wandb_mode: offline
38 | log_freq: 1000
39 | save_freq: 100000
40 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
41 | # hydra
42 | hydra:
43 | run:
44 | dir: ${work_dir}
45 | job:
46 | chdir: false
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/configs/dp/robomimic/chi_unet/tool_hang_abs.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_robomimic
2 | # env
3 | env_name: tool_hang
4 | env_type: ph
5 | abs_action: true
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim_abs.hdf5
7 | mode: train
8 | max_episode_steps: 700
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 53
11 | action_dim: 10
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 16
20 | nn: chi_unet
21 | diffusion: ddpm
22 | sample_steps: 50
23 | temperature: 1.0
24 | # optimizer
25 | lr: 0.0001
26 | # eval
27 | model_path: path/to/model
28 | num_envs: 10
29 | eval_episodes: 50
30 | save_video: true
31 | eval_freq: 100000
32 | # log
33 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
34 | save_path: logs
35 | project: CleanDiffuser
36 | group: dp_robomimic
37 | wandb_mode: offline
38 | log_freq: 1000
39 | save_freq: 100000
40 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
41 | # hydra
42 | hydra:
43 | run:
44 | dir: ${work_dir}
45 | job:
46 | chdir: false
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/configs/dp/robomimic/chi_unet/transport_abs.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_robomimic
2 | # env
3 | env_name: transport
4 | env_type: ph
5 | abs_action: true
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim_abs.hdf5
7 | mode: train
8 | max_episode_steps: 700
9 | obs_keys: [
10 | 'object',
11 | 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos',
12 | 'robot1_eef_pos', 'robot1_eef_quat', 'robot1_gripper_qpos'
13 | ]
14 | obs_dim: 59 # 41+(3+4+2)*2
15 | action_dim: 20 # 10*2
16 | obs_steps: 2
17 | action_steps: 8
18 | # train
19 | device: cuda:0
20 | seed: 0
21 | gradient_steps: 1000000
22 | batch_size: 256
23 | horizon: 16
24 | nn: chi_unet
25 | diffusion: ddpm
26 | sample_steps: 50
27 | temperature: 1.0
28 | # optimizer
29 | lr: 0.0001
30 | # eval
31 | model_path: path/to/model
32 | num_envs: 10
33 | eval_episodes: 50
34 | save_video: true
35 | eval_freq: 100000
36 | # log
37 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
38 | save_path: logs
39 | project: CleanDiffuser
40 | group: dp_robomimic
41 | wandb_mode: offline
42 | log_freq: 1000
43 | save_freq: 100000
44 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
45 | # hydra
46 | hydra:
47 | run:
48 | dir: ${work_dir}
49 | job:
50 | chdir: false
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/configs/dp/robomimic/dit/can_abs.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_robomimic
2 | # env
3 | env_name: can
4 | env_type: ph
5 | abs_action: true
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim_abs.hdf5
7 | mode: train
8 | max_episode_steps: 400
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 23
11 | action_dim: 10
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 10
20 | nn: dit
21 | diffusion: edm
22 | sample_steps: 50
23 | temperature: 1.0
24 | # optimizer
25 | lr: 0.0001
26 | # eval
27 | model_path: path/to/model
28 | num_envs: 10
29 | eval_episodes: 50
30 | save_video: true
31 | eval_freq: 100000
32 | # log
33 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
34 | save_path: logs
35 | project: CleanDiffuser
36 | group: dp_robomimic
37 | wandb_mode: offline
38 | log_freq: 1000
39 | save_freq: 100000
40 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
41 | # hydra
42 | hydra:
43 | run:
44 | dir: ${work_dir}
45 | job:
46 | chdir: false
47 |
48 |
49 |
--------------------------------------------------------------------------------
/configs/dp/robomimic/dit/lift_abs.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_robomimic
2 | # env
3 | env_name: lift
4 | env_type: ph
5 | abs_action: true
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim_abs.hdf5
7 | mode: train
8 | max_episode_steps: 400
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 19
11 | action_dim: 10
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 10
20 | nn: dit
21 | diffusion: edm
22 | sample_steps: 50
23 | temperature: 1.0
24 | # optimizer
25 | lr: 0.0001
26 | # eval
27 | model_path: path/to/model
28 | num_envs: 10
29 | eval_episodes: 50
30 | save_video: true
31 | eval_freq: 100000
32 | # log
33 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
34 | save_path: logs
35 | project: CleanDiffuser
36 | group: dp_robomimic
37 | wandb_mode: offline
38 | log_freq: 1000
39 | save_freq: 100000
40 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
41 | # hydra
42 | hydra:
43 | run:
44 | dir: ${work_dir}
45 | job:
46 | chdir: false
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/configs/dp/robomimic/dit/square_abs.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_robomimic
2 | # env
3 | env_name: square
4 | env_type: ph
5 | abs_action: true
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim_abs.hdf5
7 | mode: train
8 | max_episode_steps: 500
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 23
11 | action_dim: 10
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 10
20 | nn: dit
21 | diffusion: edm
22 | sample_steps: 50
23 | temperature: 1.0
24 | # optimizer
25 | lr: 0.0001
26 | # eval
27 | model_path: path/to/model
28 | num_envs: 10
29 | eval_episodes: 50
30 | save_video: true
31 | eval_freq: 100000
32 | # log
33 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
34 | save_path: logs
35 | project: CleanDiffuser
36 | group: dp_robomimic
37 | wandb_mode: offline
38 | log_freq: 1000
39 | save_freq: 100000
40 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
41 | # hydra
42 | hydra:
43 | run:
44 | dir: ${work_dir}
45 | job:
46 | chdir: false
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/configs/dp/robomimic/dit/tool_hang_abs.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_robomimic
2 | # env
3 | env_name: tool_hang
4 | env_type: ph
5 | abs_action: true
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim_abs.hdf5
7 | mode: train
8 | max_episode_steps: 700
9 | obs_keys: ['object', 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos']
10 | obs_dim: 53
11 | action_dim: 10
12 | obs_steps: 2
13 | action_steps: 8
14 | # train
15 | device: cuda:0
16 | seed: 0
17 | gradient_steps: 1000000
18 | batch_size: 256
19 | horizon: 10
20 | nn: dit
21 | diffusion: edm
22 | sample_steps: 50
23 | temperature: 1.0
24 | # optimizer
25 | lr: 0.0001
26 | # eval
27 | model_path: path/to/model
28 | num_envs: 10
29 | eval_episodes: 50
30 | save_video: true
31 | eval_freq: 100000
32 | # log
33 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
34 | save_path: logs
35 | project: CleanDiffuser
36 | group: dp_robomimic
37 | wandb_mode: offline
38 | log_freq: 1000
39 | save_freq: 100000
40 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
41 | # hydra
42 | hydra:
43 | run:
44 | dir: ${work_dir}
45 | job:
46 | chdir: false
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/configs/dp/robomimic/dit/transport_abs.yaml:
--------------------------------------------------------------------------------
1 | pipeline_name: dp_robomimic
2 | # env
3 | env_name: transport
4 | env_type: ph
5 | abs_action: true
6 | dataset_path: dev/robomimic/datasets/${env_name}/${env_type}/low_dim_abs.hdf5
7 | mode: train
8 | max_episode_steps: 700
9 | obs_keys: [
10 | 'object',
11 | 'robot0_eef_pos', 'robot0_eef_quat', 'robot0_gripper_qpos',
12 | 'robot1_eef_pos', 'robot1_eef_quat', 'robot1_gripper_qpos'
13 | ]
14 | obs_dim: 59 # 41+(3+4+2)*2
15 | action_dim: 20 # 10*2
16 | obs_steps: 2
17 | action_steps: 8
18 | # train
19 | device: cuda:0
20 | seed: 0
21 | gradient_steps: 1000000
22 | batch_size: 256
23 | horizon: 10
24 | nn: dit
25 | diffusion: edm
26 | sample_steps: 50
27 | temperature: 1.0
28 | # optimizer
29 | lr: 0.0001
30 | # eval
31 | model_path: path/to/model
32 | num_envs: 10
33 | eval_episodes: 50
34 | save_video: true
35 | eval_freq: 100000
36 | # log
37 | exp_name: ${env_name}_${env_type}_abs_${abs_action}_${nn}_${diffusion}_sample_${sample_steps}_horizon_${horizon}
38 | save_path: logs
39 | project: CleanDiffuser
40 | group: dp_robomimic
41 | wandb_mode: offline
42 | log_freq: 1000
43 | save_freq: 100000
44 | work_dir: ${save_path}/${pipeline_name}/${mode}/${env_name}/${exp_name}_${now:%Y%m%d_%H%M%S}/${seed}
45 | # hydra
46 | hydra:
47 | run:
48 | dir: ${work_dir}
49 | job:
50 | chdir: false
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/configs/dql/antmaze/antmaze.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: antmaze-medium-play-v2
4 |
5 | pipeline_name: dql_d4rl_antmaze
6 | mode: train
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | discount: 0.99
12 |
13 | # Actor
14 | solver: ddpm
15 | diffusion_steps: 5
16 | sampling_steps: 5
17 | predict_noise: True
18 | ema_rate: 0.995
19 | actor_learning_rate: 0.0003
20 |
21 | # Critic
22 | hidden_dim: 256
23 | critic_learning_rate: 0.0003
24 |
25 | # Training
26 | gradient_steps: 2000000
27 | batch_size: 256
28 | ema_update_interval: 5
29 | log_interval: 1000
30 | save_interval: 100000
31 |
32 |
33 | # Inference
34 | ckpt: latest
35 | num_envs: 50
36 | num_episodes: 3
37 | num_candidates: 50
38 | temperature: 0.5
39 | use_ema: True
40 |
41 | # hydra
42 | hydra:
43 | job:
44 | chdir: false
45 |
46 |
--------------------------------------------------------------------------------
/configs/dql/antmaze/task/antmaze-large-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-diverse-v2"
2 |
3 | weight_temperature: 10.
4 | eta: 3.5
--------------------------------------------------------------------------------
/configs/dql/antmaze/task/antmaze-large-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-play-v2"
2 |
3 | weight_temperature: 5.
4 | eta: 4.5
--------------------------------------------------------------------------------
/configs/dql/antmaze/task/antmaze-medium-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-diverse-v2"
2 |
3 | weight_temperature: 5.
4 | eta: 3.0
--------------------------------------------------------------------------------
/configs/dql/antmaze/task/antmaze-medium-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-play-v2"
2 |
3 | weight_temperature: 10.
4 | eta: 2.0
--------------------------------------------------------------------------------
/configs/dql/kitchen/kitchen.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: kitchen-mixed-v0
4 |
5 | pipeline_name: dql_d4rl_kitchen
6 | mode: train
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | discount: 0.99
12 |
13 | # Actor
14 | solver: ddpm
15 | diffusion_steps: 5
16 | sampling_steps: 5
17 | predict_noise: True
18 | ema_rate: 0.995
19 | actor_learning_rate: 0.0003
20 |
21 | # Critic
22 | hidden_dim: 256
23 | critic_learning_rate: 0.0003
24 |
25 | # Training
26 | gradient_steps: 2000000
27 | batch_size: 256
28 | ema_update_interval: 5
29 | log_interval: 1000
30 | save_interval: 100000
31 |
32 | # Inference
33 | ckpt: latest
34 | num_envs: 50
35 | num_episodes: 3
36 | num_candidates: 50
37 | temperature: 0.5
38 | use_ema: True
39 |
40 | # hydra
41 | hydra:
42 | job:
43 | chdir: false
44 |
45 |
--------------------------------------------------------------------------------
/configs/dql/kitchen/task/kitchen-mixed-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-mixed-v0"
2 |
3 | weight_temperature: 3.
4 | eta: 0.005
--------------------------------------------------------------------------------
/configs/dql/kitchen/task/kitchen-partial-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-partial-v0"
2 |
3 | weight_temperature: 3.
4 | eta: 0.005
--------------------------------------------------------------------------------
/configs/dql/mujoco/mujoco.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: halfcheetah-medium-expert-v2
4 |
5 | pipeline_name: dql_d4rl_mujoco
6 | mode: train
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | normalize_reward: True
12 | discount: 0.99
13 |
14 | # Actor
15 | solver: ddpm
16 | diffusion_steps: 5
17 | sampling_steps: 5
18 | predict_noise: True
19 | ema_rate: 0.995
20 | actor_learning_rate: 0.0003
21 |
22 | # Critic
23 | hidden_dim: 256
24 | critic_learning_rate: 0.0003
25 |
26 | # Training
27 | gradient_steps: 2000000
28 | batch_size: 256
29 | ema_update_interval: 5
30 | log_interval: 1000
31 | save_interval: 100000
32 |
33 | # Inference
34 | ckpt: latest
35 | num_envs: 50
36 | num_episodes: 3
37 | num_candidates: 50
38 | temperature: 0.5
39 | use_ema: True
40 |
41 | # hydra
42 | hydra:
43 | job:
44 | chdir: false
45 |
46 |
--------------------------------------------------------------------------------
/configs/dql/mujoco/task/halfcheetah-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-expert-v2"
2 |
3 | weight_temperature: 50.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/dql/mujoco/task/halfcheetah-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-replay-v2"
2 |
3 | weight_temperature: 50.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/dql/mujoco/task/halfcheetah-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-v2"
2 |
3 | weight_temperature: 50.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/dql/mujoco/task/hopper-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-expert-v2"
2 |
3 | weight_temperature: 8.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/dql/mujoco/task/hopper-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-replay-v2"
2 |
3 | weight_temperature: 100.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/dql/mujoco/task/hopper-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-v2"
2 |
3 | weight_temperature: 100.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/dql/mujoco/task/walker2d-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-expert-v2"
2 |
3 | weight_temperature: 300.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/dql/mujoco/task/walker2d-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-replay-v2"
2 |
3 | weight_temperature: 300.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/dql/mujoco/task/walker2d-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-v2"
2 |
3 | weight_temperature: 300.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/edp/antmaze/antmaze.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: antmaze-medium-play-v2
4 |
5 | pipeline_name: edp_d4rl_antmaze
6 | mode: train
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | discount: 0.99
12 |
13 | # Actor
14 | solver: ddim
15 | diffusion_steps: 50
16 | sampling_steps: 15
17 | ema_rate: 0.995
18 | actor_learning_rate: 0.0003
19 |
20 | # Critic
21 | hidden_dim: 256
22 | critic_learning_rate: 0.0003
23 |
24 | # Training
25 | gradient_steps: 2000000
26 | batch_size: 256
27 | ema_update_interval: 5
28 | log_interval: 1000
29 | save_interval: 100000
30 |
31 | # Inference
32 | ckpt: latest
33 | num_envs: 50
34 | num_episodes: 3
35 | num_candidates: 200
36 | temperature: 0.5
37 | use_ema: True
38 |
39 | # hydra
40 | hydra:
41 | job:
42 | chdir: false
43 |
44 |
--------------------------------------------------------------------------------
/configs/edp/antmaze/task/antmaze-large-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-diverse-v2"
2 |
3 | weight_temperature: 10.
4 | eta: 3.5
--------------------------------------------------------------------------------
/configs/edp/antmaze/task/antmaze-large-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-play-v2"
2 |
3 | weight_temperature: 5.
4 | eta: 4.5
--------------------------------------------------------------------------------
/configs/edp/antmaze/task/antmaze-medium-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-diverse-v2"
2 |
3 | weight_temperature: 5.
4 | eta: 3.0
--------------------------------------------------------------------------------
/configs/edp/antmaze/task/antmaze-medium-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-play-v2"
2 |
3 | weight_temperature: 10.
4 | eta: 2.0
--------------------------------------------------------------------------------
/configs/edp/kitchen/kitchen.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: kitchen-mixed-v0
4 |
5 | pipeline_name: edp_d4rl_kitchen
6 | mode: train
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | discount: 0.99
12 |
13 | # Actor
14 | solver: ode_dpmsolver++_2M
15 | diffusion_steps: 50
16 | sampling_steps: 15
17 | ema_rate: 0.995
18 | actor_learning_rate: 0.0003
19 |
20 | # Critic
21 | hidden_dim: 256
22 | critic_learning_rate: 0.0003
23 |
24 | # Training
25 | gradient_steps: 2000000
26 | batch_size: 256
27 | ema_update_interval: 5
28 | log_interval: 1000
29 | save_interval: 100000
30 |
31 | # Inference
32 | ckpt: latest
33 | num_envs: 50
34 | num_episodes: 3
35 | num_candidates: 50
36 | temperature: 0.5
37 | use_ema: True
38 |
39 | # hydra
40 | hydra:
41 | job:
42 | chdir: false
43 |
44 |
--------------------------------------------------------------------------------
/configs/edp/kitchen/task/kitchen-mixed-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-mixed-v0"
2 |
3 | weight_temperature: 5.
4 | eta: 0.005
--------------------------------------------------------------------------------
/configs/edp/kitchen/task/kitchen-partial-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-partial-v0"
2 |
3 | weight_temperature: 5.
4 | eta: 0.005
--------------------------------------------------------------------------------
/configs/edp/mujoco/mujoco.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: halfcheetah-medium-expert-v2
4 |
5 | pipeline_name: edp_d4rl_mujoco
6 | mode: train
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | normalize_reward: True
12 | discount: 0.99
13 |
14 | # Actor
15 | solver: ode_dpmsolver++_2M
16 | diffusion_steps: 50
17 | sampling_steps: 15
18 | ema_rate: 0.995
19 | actor_learning_rate: 0.0003
20 |
21 | # Critic
22 | hidden_dim: 256
23 | critic_learning_rate: 0.0003
24 |
25 | # Training
26 | gradient_steps: 2000000
27 | batch_size: 256
28 | ema_update_interval: 5
29 | log_interval: 1000
30 | save_interval: 100000
31 |
32 | # Inference
33 | ckpt: latest
34 | num_envs: 50
35 | num_episodes: 3
36 | num_candidates: 50
37 | temperature: 0.5
38 | use_ema: True
39 |
40 | # hydra
41 | hydra:
42 | job:
43 | chdir: false
44 |
45 |
--------------------------------------------------------------------------------
/configs/edp/mujoco/task/halfcheetah-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-expert-v2"
2 |
3 | weight_temperature: 50.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/edp/mujoco/task/halfcheetah-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-replay-v2"
2 |
3 | weight_temperature: 150.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/edp/mujoco/task/halfcheetah-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-v2"
2 |
3 | weight_temperature: 50.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/edp/mujoco/task/hopper-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-expert-v2"
2 |
3 | weight_temperature: 8.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/edp/mujoco/task/hopper-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-replay-v2"
2 |
3 | weight_temperature: 300.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/edp/mujoco/task/hopper-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-v2"
2 |
3 | weight_temperature: 300.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/edp/mujoco/task/walker2d-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-expert-v2"
2 |
3 | weight_temperature: 300.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/edp/mujoco/task/walker2d-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-replay-v2"
2 |
3 | weight_temperature: 100.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/edp/mujoco/task/walker2d-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-v2"
2 |
3 | weight_temperature: 300.
4 | eta: 1.
--------------------------------------------------------------------------------
/configs/idql/antmaze/antmaze.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: antmaze-medium-play-v2
4 |
5 | pipeline_name: idql_d4rl_antmaze
6 | mode: inference
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | discount: 0.99
12 |
13 | # IQL
14 | iql_tau: 0.9
15 |
16 | # Actor
17 | solver: ddpm
18 | diffusion_steps: 5
19 | sampling_steps: 5
20 | predict_noise: True
21 | ema_rate: 0.9999
22 | actor_learning_rate: 0.0003
23 | actor_hidden_dim: 256
24 | actor_n_blocks: 3
25 | actor_dropout: 0.1
26 |
27 | # Critic
28 | critic_hidden_dim: 256
29 | critic_learning_rate: 0.0003
30 |
31 | # Training
32 | gradient_steps: 2000000
33 | batch_size: 256
34 | log_interval: 1000
35 | save_interval: 100000
36 |
37 |
38 | # Inference
39 | ckpt: latest
40 | num_envs: 50
41 | num_episodes: 3
42 | num_candidates: 256
43 | temperature: 0.5
44 | use_ema: True
45 |
46 | # hydra
47 | hydra:
48 | job:
49 | chdir: false
50 |
51 |
--------------------------------------------------------------------------------
/configs/idql/antmaze/task/antmaze-large-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-diverse-v2"
2 |
3 | weight_temperature: 5.
--------------------------------------------------------------------------------
/configs/idql/antmaze/task/antmaze-large-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-play-v2"
2 |
3 | weight_temperature: 5.
--------------------------------------------------------------------------------
/configs/idql/antmaze/task/antmaze-medium-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-diverse-v2"
2 |
3 | weight_temperature: 5.
--------------------------------------------------------------------------------
/configs/idql/antmaze/task/antmaze-medium-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-play-v2"
2 |
3 | weight_temperature: 5.
--------------------------------------------------------------------------------
/configs/idql/kitchen/kitchen.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: kitchen-mixed-v0
4 |
5 | pipeline_name: idql_d4rl_kitchen
6 | mode: inference
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | discount: 0.99
12 |
13 | # IQL
14 | iql_tau: 0.7
15 |
16 | # Actor
17 | solver: ddpm
18 | diffusion_steps: 5
19 | sampling_steps: 5
20 | predict_noise: True
21 | ema_rate: 0.9999
22 | actor_learning_rate: 0.0003
23 | actor_hidden_dim: 256
24 | actor_n_blocks: 3
25 | actor_dropout: 0.1
26 |
27 | # Critic
28 | critic_hidden_dim: 256
29 | critic_learning_rate: 0.0003
30 |
31 | # Training
32 | gradient_steps: 2000000
33 | batch_size: 256
34 | log_interval: 1000
35 | save_interval: 100000
36 |
37 | # Inference
38 | ckpt: latest
39 | num_envs: 50
40 | num_episodes: 3
41 | num_candidates: 256
42 | temperature: 0.5
43 | use_ema: True
44 |
45 | # hydra
46 | hydra:
47 | job:
48 | chdir: false
49 |
50 |
--------------------------------------------------------------------------------
/configs/idql/kitchen/task/kitchen-mixed-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-mixed-v0"
2 |
3 | weight_temperature: 1.
--------------------------------------------------------------------------------
/configs/idql/kitchen/task/kitchen-partial-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-partial-v0"
2 |
3 | weight_temperature: 1.
--------------------------------------------------------------------------------
/configs/idql/mujoco/mujoco.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: halfcheetah-medium-expert-v2
4 |
5 | pipeline_name: idql_d4rl_mujoco
6 | mode: inference
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | normalize_reward: True
12 | discount: 0.99
13 |
14 | # IQL
15 | iql_tau: 0.7
16 |
17 | # Actor
18 | solver: ddpm
19 | diffusion_steps: 5
20 | sampling_steps: 5
21 | predict_noise: True
22 | ema_rate: 0.9999
23 | actor_learning_rate: 0.0003
24 | actor_hidden_dim: 256
25 | actor_n_blocks: 3
26 | actor_dropout: 0.1
27 |
28 | # Critic
29 | critic_hidden_dim: 256
30 | critic_learning_rate: 0.0003
31 |
32 | # Training
33 | gradient_steps: 2000000
34 | batch_size: 256
35 | log_interval: 1000
36 | save_interval: 100000
37 |
38 | # Inference
39 | ckpt: latest
40 | num_envs: 50
41 | num_episodes: 3
42 | num_candidates: 256
43 | temperature: 0.5
44 | use_ema: True
45 |
46 | # hydra
47 | hydra:
48 | job:
49 | chdir: false
50 |
51 |
--------------------------------------------------------------------------------
/configs/idql/mujoco/task/halfcheetah-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-expert-v2"
2 |
3 | weight_temperature: 10.
--------------------------------------------------------------------------------
/configs/idql/mujoco/task/halfcheetah-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-replay-v2"
2 |
3 | weight_temperature: 100.
--------------------------------------------------------------------------------
/configs/idql/mujoco/task/halfcheetah-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-v2"
2 |
3 | weight_temperature: 400.
--------------------------------------------------------------------------------
/configs/idql/mujoco/task/hopper-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-expert-v2"
2 |
3 | weight_temperature: 5.
--------------------------------------------------------------------------------
/configs/idql/mujoco/task/hopper-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-replay-v2"
2 |
3 | weight_temperature: 50.
--------------------------------------------------------------------------------
/configs/idql/mujoco/task/hopper-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-v2"
2 |
3 | weight_temperature: 50.
--------------------------------------------------------------------------------
/configs/idql/mujoco/task/walker2d-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-expert-v2"
2 |
3 | weight_temperature: 300.
--------------------------------------------------------------------------------
/configs/idql/mujoco/task/walker2d-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-replay-v2"
2 |
3 | weight_temperature: 200.
--------------------------------------------------------------------------------
/configs/idql/mujoco/task/walker2d-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-v2"
2 |
3 | weight_temperature: 200.
--------------------------------------------------------------------------------
/configs/qgpo/mujoco/mujoco.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: halfcheetah-medium-expert-v2
4 |
5 | pipeline_name: qgpo_d4rl_mujoco
6 | # bc_training -> supported_action_collecting -> q_training -> cep_training -> inference
7 | mode: bc_training
8 | seed: 0
9 | device: cuda:0
10 |
11 | # QGPO
12 | K: 16
13 | betaQ: 1.0
14 | beta: 10
15 |
16 | # Environment
17 | discount: 0.99
18 |
19 | # Actor
20 | ema_rate: 0.9999
21 |
22 | # Critic
23 | hidden_dim: 256
24 |
25 | # Training
26 | bc_gradient_steps: 1000000
27 | q_gradient_steps: 500000
28 | cep_gradient_steps: 1000000
29 | log_interval: 1000
30 | save_interval: 100000
31 |
32 | # Inference
33 | sampling_steps: 5
34 | num_envs: 50
35 | num_episodes: 3
36 |
37 | # hydra
38 | hydra:
39 | job:
40 | chdir: false
41 |
42 |
--------------------------------------------------------------------------------
/configs/qgpo/mujoco/task/halfcheetah-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-expert-v2"
2 |
3 | w_cg: 3.0
--------------------------------------------------------------------------------
/configs/qgpo/mujoco/task/halfcheetah-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-replay-v2"
2 |
3 | w_cg: 5.0
--------------------------------------------------------------------------------
/configs/qgpo/mujoco/task/halfcheetah-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-v2"
2 |
3 | w_cg: 5.0
--------------------------------------------------------------------------------
/configs/qgpo/mujoco/task/hopper-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-expert-v2"
2 |
3 | w_cg: 0.7
4 |
--------------------------------------------------------------------------------
/configs/qgpo/mujoco/task/hopper-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-replay-v2"
2 |
3 | w_cg: 4
4 |
--------------------------------------------------------------------------------
/configs/qgpo/mujoco/task/hopper-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-v2"
2 |
3 | w_cg: 5.0
4 |
--------------------------------------------------------------------------------
/configs/qgpo/mujoco/task/walker2d-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-expert-v2"
2 |
3 | w_cg: 5.0
--------------------------------------------------------------------------------
/configs/qgpo/mujoco/task/walker2d-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-replay-v2"
2 |
3 | w_cg: 3.0
--------------------------------------------------------------------------------
/configs/qgpo/mujoco/task/walker2d-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-v2"
2 |
3 | w_cg: 3.0
4 |
--------------------------------------------------------------------------------
/configs/sfbc/mujoco/mujoco.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: halfcheetah-medium-expert-v2
4 |
5 | pipeline_name: sfbc_d4rl_mujoco
6 | mode: bc_training
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | discount: 0.99
12 |
13 | # Actor
14 | predict_noise: True
15 | ema_rate: 0.9999
16 | actor_learning_rate: 0.0003
17 |
18 | # Critic
19 | hidden_dim: 256
20 |
21 | # BC Training
22 | bc_gradient_steps: 1000000
23 | batch_size: 32
24 | log_interval: 1000
25 | save_interval: 100000
26 |
27 | # Critic Training
28 | critic_learning_rate: 0.001
29 | critic_gradient_steps: 50000
30 | eval_actor_ckpt: latest
31 | eval_actor_solver: ddpm
32 | eval_actor_sampling_steps: 5
33 | eval_actor_temperature: 1.0
34 | q_training_iters: 2
35 | monte_carlo_samples: 16
36 | weight_temperature: 20
37 |
38 | # Inference
39 | ckpt: latest
40 | solver: ddpm
41 | sampling_steps: 5
42 | num_envs: 50
43 | num_episodes: 3
44 | num_candidates: 50
45 | temperature: 1.0
46 | top_k_average: 4
47 |
48 | # hydra
49 | hydra:
50 | job:
51 | chdir: false
52 |
53 |
--------------------------------------------------------------------------------
/configs/sfbc/mujoco/task/halfcheetah-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-expert-v2"
2 |
--------------------------------------------------------------------------------
/configs/sfbc/mujoco/task/halfcheetah-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-replay-v2"
2 |
--------------------------------------------------------------------------------
/configs/sfbc/mujoco/task/halfcheetah-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-v2"
2 |
--------------------------------------------------------------------------------
/configs/sfbc/mujoco/task/hopper-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-expert-v2"
2 |
--------------------------------------------------------------------------------
/configs/sfbc/mujoco/task/hopper-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-replay-v2"
2 |
--------------------------------------------------------------------------------
/configs/sfbc/mujoco/task/hopper-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-v2"
2 |
--------------------------------------------------------------------------------
/configs/sfbc/mujoco/task/walker2d-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-expert-v2"
2 |
--------------------------------------------------------------------------------
/configs/sfbc/mujoco/task/walker2d-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-replay-v2"
2 |
--------------------------------------------------------------------------------
/configs/sfbc/mujoco/task/walker2d-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-v2"
2 |
--------------------------------------------------------------------------------
/configs/synther/antmaze/antmaze.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: antmaze-medium-play-v2
4 |
5 | pipeline_name: synther_d4rl_antmaze
6 | mode: inference
7 | seed: 0
8 | device: cuda:0
9 |
10 | # SynthER
11 | solver: ddpm
12 | diffusion_steps: 128
13 | sampling_steps: 128
14 | predict_noise: True
15 | ema_rate: 0.999
16 | diffusion_learning_rate: 0.0003
17 |
18 | # Diffusion Training
19 | diffusion_gradient_steps: 200000
20 | batch_size: 256
21 | log_interval: 1000
22 | save_interval: 100000
23 |
24 | # RL Training
25 | rl_gradient_steps: 1000000
26 |
27 | # Inference
28 | ckpt: latest
29 | num_envs: 50
30 | num_episodes: 3
31 | use_ema: True
32 |
33 | # hydra
34 | hydra:
35 | job:
36 | chdir: false
37 |
38 |
--------------------------------------------------------------------------------
/configs/synther/antmaze/task/antmaze-large-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-diverse-v2"
2 |
--------------------------------------------------------------------------------
/configs/synther/antmaze/task/antmaze-large-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-play-v2"
2 |
--------------------------------------------------------------------------------
/configs/synther/antmaze/task/antmaze-medium-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-diverse-v2"
2 |
--------------------------------------------------------------------------------
/configs/synther/antmaze/task/antmaze-medium-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-play-v2"
2 |
--------------------------------------------------------------------------------
/configs/synther/kitchen/kitchen.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: kitchen-mixed-v0
4 |
5 | pipeline_name: synther_d4rl_kitchen
6 | mode: inference
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Actor
11 | solver: ddpm
12 | diffusion_steps: 128
13 | sampling_steps: 128
14 | predict_noise: True
15 | ema_rate: 0.999
16 | diffusion_learning_rate: 0.0003
17 |
18 | # Diffusion Training
19 | diffusion_gradient_steps: 200000
20 | batch_size: 256
21 | log_interval: 1000
22 | save_interval: 100000
23 |
24 | # RL Training
25 | rl_gradient_steps: 1000000
26 |
27 | # Inference
28 | ckpt: latest
29 | num_envs: 50
30 | num_episodes: 3
31 | use_ema: True
32 |
33 | # hydra
34 | hydra:
35 | job:
36 | chdir: false
37 |
38 |
--------------------------------------------------------------------------------
/configs/synther/kitchen/task/kitchen-mixed-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-mixed-v0"
2 |
--------------------------------------------------------------------------------
/configs/synther/kitchen/task/kitchen-partial-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-partial-v0"
2 |
--------------------------------------------------------------------------------
/configs/synther/mujoco/mujoco.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: halfcheetah-medium-expert-v2
4 |
5 | pipeline_name: synther_d4rl_mujoco
6 | mode: inference
7 | seed: 0
8 | device: cuda:0
9 |
10 | # Environment
11 | normalize_reward: True
12 |
13 | # SynthER
14 | solver: ddpm
15 | diffusion_steps: 128
16 | sampling_steps: 128
17 | predict_noise: True
18 | ema_rate: 0.999
19 | diffusion_learning_rate: 0.0003
20 |
21 | # Diffusion Training
22 | diffusion_gradient_steps: 200000
23 | batch_size: 256
24 | log_interval: 1000
25 | save_interval: 100000
26 |
27 | # RL Training
28 | rl_gradient_steps: 1000000
29 |
30 | # Inference
31 | ckpt: latest
32 | num_envs: 50
33 | num_episodes: 3
34 | use_ema: True
35 |
36 | # hydra
37 | hydra:
38 | job:
39 | chdir: false
40 |
41 |
--------------------------------------------------------------------------------
/configs/synther/mujoco/task/halfcheetah-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-expert-v2"
2 |
--------------------------------------------------------------------------------
/configs/synther/mujoco/task/halfcheetah-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-replay-v2"
2 |
--------------------------------------------------------------------------------
/configs/synther/mujoco/task/halfcheetah-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-v2"
2 |
--------------------------------------------------------------------------------
/configs/synther/mujoco/task/hopper-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-expert-v2"
2 |
--------------------------------------------------------------------------------
/configs/synther/mujoco/task/hopper-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-replay-v2"
2 |
--------------------------------------------------------------------------------
/configs/synther/mujoco/task/hopper-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-v2"
2 |
--------------------------------------------------------------------------------
/configs/synther/mujoco/task/walker2d-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-expert-v2"
2 |
--------------------------------------------------------------------------------
/configs/synther/mujoco/task/walker2d-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-replay-v2"
2 |
--------------------------------------------------------------------------------
/configs/synther/mujoco/task/walker2d-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-v2"
2 |
--------------------------------------------------------------------------------
/configs/veteran/antmaze/reward_mode/linear.yaml:
--------------------------------------------------------------------------------
1 | name: linear
2 | continous_reward_at_done: true
3 | reward_tune: "iql"
4 | discount: 1.0
--------------------------------------------------------------------------------
/configs/veteran/antmaze/task/antmaze-large-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-diverse-v2"
2 | max_path_length: 1000
3 |
4 | planner_horizon: 40
5 | stride: 25
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/antmaze/task/antmaze-large-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-large-play-v2"
2 | max_path_length: 1000
3 |
4 | planner_horizon: 40
5 | stride: 25
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/antmaze/task/antmaze-medium-diverse-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-diverse-v2"
2 | max_path_length: 1000
3 |
4 | planner_horizon: 40
5 | stride: 25
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/antmaze/task/antmaze-medium-play-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "antmaze-medium-play-v2"
2 | max_path_length: 1000
3 |
4 | planner_horizon: 40
5 | stride: 25
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/kitchen/kitchen.yaml:
--------------------------------------------------------------------------------
1 | defaults:
2 | - _self_
3 | - task: kitchen-mixed-v0
4 |
5 | pipeline_name: veteran_d4rl_kitchen
6 | mode: train
7 | seed: 0
8 | device: cuda:0
9 | project: Default
10 | group: release
11 | name: Default
12 | enable_wandb: true
13 |
14 | # Guidance
15 | guidance_type: MCSS # cfg, cg, MCSS
16 | # For Planner
17 | planner_net: transformer # transformer, unet
18 | # Separate state and action
19 | pipeline_type: separate # separate, joint
20 | # Rebase_policy position
21 | rebase_policy: false
22 |
23 | # Environment
24 | discount: 0.997
25 |
26 | # Planner Config
27 | planner_solver: ddim
28 | ## Network Architecture
29 | planner_emb_dim: 128
30 | planner_d_model: 256
31 | planner_depth: 2
32 | planner_sampling_steps: 20
33 | planner_predict_noise: True
34 | planner_next_obs_loss_weight: 1
35 | planner_ema_rate: 0.9999
36 | unet_dim: 32
37 |
38 | ## Policy Config
39 | policy_solver: ddpm
40 | policy_hidden_dim: 256
41 | policy_diffusion_steps: 10
42 | policy_sampling_steps: 10
43 | policy_predict_noise: True
44 | policy_ema_rate: 0.995
45 | policy_learning_rate: 0.0003
46 | critic_learning_rate: 0.0003
47 |
48 | # Training
49 | use_diffusion_invdyn: 1
50 | invdyn_gradient_steps: 200000
51 | policy_diffusion_gradient_steps: 1000000
52 | planner_diffusion_gradient_steps: 1000000
53 | batch_size: 128
54 | log_interval: 1000
55 | save_interval: 100000
56 |
57 | # Inference
58 | num_envs: 50
59 | num_episodes: 20
60 | planner_num_candidates: 150
61 | planner_ckpt: 1000000
62 | critic_ckpt: 200000
63 | policy_ckpt: 1000000
64 | invdyn_ckpt: 200000
65 | planner_use_ema: True
66 | policy_temperature: 0.5
67 | policy_use_ema: True
68 |
69 | # hydra
70 | hydra:
71 | job:
72 | chdir: false
73 |
74 |
--------------------------------------------------------------------------------
/configs/veteran/kitchen/task/kitchen-mixed-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-mixed-v0"
2 | max_path_length: 280
3 |
4 | planner_horizon: 32
5 | stride: 4
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/kitchen/task/kitchen-partial-v0.yaml:
--------------------------------------------------------------------------------
1 | env_name: "kitchen-partial-v0"
2 | max_path_length: 280
3 |
4 | planner_horizon: 32
5 | stride: 4
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/maze2d/reward_mode/linear.yaml:
--------------------------------------------------------------------------------
1 | name: linear
2 | continous_reward_at_done: true
3 | reward_tune: "iql"
4 | discount: 1.0
--------------------------------------------------------------------------------
/configs/veteran/maze2d/task/maze2d-large-v1.yaml:
--------------------------------------------------------------------------------
1 | env_name: "maze2d-large-v1"
2 | max_path_length: 800
3 |
4 | planner_horizon: 32
5 | stride: 15
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/maze2d/task/maze2d-medium-v1.yaml:
--------------------------------------------------------------------------------
1 | env_name: "maze2d-medium-v1"
2 | max_path_length: 600
3 |
4 | planner_horizon: 32
5 | stride: 15
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/maze2d/task/maze2d-umaze-v1.yaml:
--------------------------------------------------------------------------------
1 | env_name: "maze2d-umaze-v1"
2 | max_path_length: 300
3 |
4 | planner_horizon: 32
5 | stride: 15
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/mujoco/task/halfcheetah-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-expert-v2"
2 | max_path_length: 1000
3 |
4 | planner_horizon: 4
5 | stride: 1
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/mujoco/task/halfcheetah-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-replay-v2"
2 | max_path_length: 1000
3 |
4 | planner_horizon: 4
5 | stride: 1
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/mujoco/task/halfcheetah-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "halfcheetah-medium-v2"
2 | max_path_length: 1000
3 |
4 | planner_horizon: 4
5 | stride: 1
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/mujoco/task/hopper-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-expert-v2"
2 | max_path_length: 1000
3 |
4 | planner_horizon: 4
5 | stride: 1
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/mujoco/task/hopper-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-replay-v2"
2 | max_path_length: 1000
3 |
4 | planner_horizon: 4
5 | stride: 1
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/mujoco/task/hopper-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "hopper-medium-v2"
2 | max_path_length: 1000
3 |
4 | planner_horizon: 4
5 | stride: 1
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/mujoco/task/walker2d-medium-expert-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-expert-v2"
2 | max_path_length: 1000
3 |
4 | planner_horizon: 4
5 | stride: 1
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/mujoco/task/walker2d-medium-replay-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-replay-v2"
2 | max_path_length: 1000
3 |
4 | planner_horizon: 4
5 | stride: 1
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/configs/veteran/mujoco/task/walker2d-medium-v2.yaml:
--------------------------------------------------------------------------------
1 | env_name: "walker2d-medium-v2"
2 | max_path_length: 1000
3 |
4 | planner_horizon: 4
5 | stride: 1
6 | planner_temperature: 1.0
7 | planner_target_return: 1.0 # Placeholder. Require grid tuning for CFG
8 | planner_w_cfg: 1.0 # Placeholder. Require grid tuning for CG and CFG
--------------------------------------------------------------------------------
/pipelines/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleanDiffuserTeam/CleanDiffuser/05f17fc9dbeae7c19a5e264632c9ae9aaac5994e/pipelines/__init__.py
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | numpy<1.23.0
2 | einops
3 | mujoco_py>=2.0
4 | gym>=0.13,<0.24
5 | dm_control>=1.0.3,<=1.0.20
6 | cython==3.0.0a10
7 | numba<0.60.0
8 | matplotlib<=3.7.5
9 | six
10 | hydra-core
11 | zarr<2.17
12 | wandb
13 | dill
14 | av
15 | pygame
16 | pymunk
17 | shapely<2.0.0
18 | scikit-image<0.23.0
19 | opencv-python
20 | imagecodecs
21 | torch>1.0.0,<2.3.0
22 | torchvision
23 | mujoco<=3.1.6
24 |
--------------------------------------------------------------------------------
/setup.py:
--------------------------------------------------------------------------------
1 | """Setups the project."""
2 |
3 | import pathlib
4 |
5 | from setuptools import setup
6 |
7 | CWD = pathlib.Path(__file__).absolute().parent
8 | PKG_NAME = "cleandiffuser"
9 |
10 |
11 | def get_version():
12 | """Gets the version."""
13 | path = CWD / PKG_NAME / "__init__.py"
14 | content = path.read_text()
15 |
16 | for line in content.splitlines():
17 | if line.startswith("__version__"):
18 | return line.strip().split()[-1].strip().strip('"')
19 | raise RuntimeError("bad version data in __init__.py")
20 |
21 |
22 | def get_description():
23 | """Gets the description from the readme."""
24 | with open("README.md") as fh:
25 | long_description = ""
26 | header_count = 0
27 | for line in fh:
28 | if line.startswith("##"):
29 | header_count += 1
30 | if header_count < 2:
31 | long_description += line
32 | else:
33 | break
34 | return long_description
35 |
36 |
37 | setup(name=PKG_NAME, version=get_version(), long_description=get_description())
38 |
--------------------------------------------------------------------------------
/tests/test_d4rl_envs.py:
--------------------------------------------------------------------------------
1 | import types
2 | import warnings
3 | import gym
4 | import d4rl
5 | import pytest
6 |
7 | d4rl_env_ids = [
8 | "halfcheetah-medium-v0",
9 | "halfcheetah-medium-replay-v0",
10 | "halfcheetah-medium-expert-v0",
11 | "hopper-medium-v0",
12 | "hopper-medium-replay-v0",
13 | "hopper-medium-expert-v0",
14 | "walker2d-medium-v0",
15 | "walker2d-medium-replay-v0",
16 | "walker2d-medium-expert-v0",
17 | "antmaze-medium-play-v0",
18 | "antmaze-medium-diverse-v0",
19 | "antmaze-large-play-v0",
20 | "antmaze-large-diverse-v0",
21 | ]
22 |
23 | @pytest.mark.parametrize("env_id", d4rl_env_ids)
24 | def test_d4rl_env(env_id):
25 | try:
26 | env = gym.make(env_id)
27 | env.reset()
28 | obs, reward, done, info = env.step(env.action_space.sample())
29 | assert env is not None
30 | assert obs is not None
31 | except Exception as e:
32 | pytest.fail(f"Failed to load environment {env_id} with error: {e}")
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/tests/test_dit.py:
--------------------------------------------------------------------------------
1 | import pytest
2 | import torch
3 | from cleandiffuser.nn_diffusion.dit import DiT1d, DiT1Ref, DiTBlock, FinalLayer1d
4 |
5 | def test_dit_block_forward():
6 | block = DiTBlock(hidden_size=128, n_heads=4, dropout=0.1)
7 | x = torch.randn(2, 10, 128)
8 | t = torch.randn(2, 128)
9 | result = block(x, t)
10 | assert result.shape == x.shape
11 |
12 | def test_final_layer1d_forward():
13 | layer = FinalLayer1d(hidden_size=128, out_dim=64)
14 | x = torch.randn(2, 10, 128)
15 | t = torch.randn(2, 128)
16 | result = layer(x, t)
17 | assert result.shape == (2, 10, 64)
18 |
19 | def test_dit1d_forward():
20 | model = DiT1d(in_dim=64, emb_dim=128, d_model=128, n_heads=4, depth=2, dropout=0.1)
21 | x = torch.randn(2, 10, 64)
22 | noise = torch.randn(2)
23 | condition = torch.randn(2, 128)
24 | result = model(x, noise, condition)
25 | assert result.shape == x.shape
26 |
27 | def test_dit1ref_forward():
28 | model = DiT1Ref(in_dim=64, emb_dim=128, d_model=128, n_heads=4, depth=2, dropout=0.1)
29 | x = torch.randn(2, 10, 128) # in_dim * 2
30 | noise = torch.randn(2)
31 | condition = torch.randn(2, 128)
32 | result = model(x, noise, condition)
33 | assert result.shape == (2, 10, 128)
--------------------------------------------------------------------------------
/tests/test_dql_mlp.py:
--------------------------------------------------------------------------------
1 | import pytest
2 | import torch
3 | from cleandiffuser.nn_diffusion import BaseNNDiffusion, DQLMlp
4 |
5 |
6 | def test_dqlmlp_forward():
7 | model = DQLMlp(obs_dim=10, act_dim=5, emb_dim=16)
8 | x = torch.randn(2, 5)
9 | noise = torch.randn(2)
10 | condition = torch.randn(2, 10)
11 |
12 | output = model(x, noise, condition)
13 | assert output.shape == (2, 5)
14 |
15 |
16 | def test_dqlmlp_forward_no_condition():
17 | model = DQLMlp(obs_dim=10, act_dim=5, emb_dim=16)
18 | x = torch.randn(2, 5) # batch size of 2, act_dim of 5
19 | noise = torch.randn(2) # batch size of 2
20 | output = model(x, noise)
21 | assert output.shape == (2, 5)
22 |
23 |
24 | def test_dqlmlp_forward_with_different_shapes():
25 | model = DQLMlp(obs_dim=10, act_dim=5, emb_dim=16)
26 | x = torch.randn(3, 5) # batch size of 3, act_dim of 5
27 | noise = torch.randn(3) # batch size of 3
28 | condition = torch.randn(3, 10) # batch size of 3, obs_dim of 10
29 |
30 | output = model(x, noise, condition)
31 | assert output.shape == (3, 5) # should match (batch_size, act_dim)
32 |
33 |
34 | def test_dqlmlp_layer_shapes():
35 | model = DQLMlp(obs_dim=10, act_dim=5, emb_dim=16)
36 | x = torch.randn(2, 5) # batch size of 2, act_dim of 5
37 | noise = torch.randn(2) # batch size of 2
38 | condition = torch.randn(2, 10) # batch size of 2, obs_dim of 10
39 |
40 | t = model.time_mlp(model.map_noise(noise))
41 | assert t.shape == (2, 16)
42 |
43 | x_cat = torch.cat([x, t, condition], -1)
44 | assert x_cat.shape == (2, 31)
45 |
46 | mid_output = model.mid_layer(x_cat)
47 | assert mid_output.shape == (2, 256)
--------------------------------------------------------------------------------
/tests/test_janner_unet.py:
--------------------------------------------------------------------------------
1 | import pytest
2 | import torch
3 | from cleandiffuser.nn_diffusion.jannerunet import JannerUNet1d
4 |
5 | def test_jannerunet1d_forward():
6 | batch_size = 2
7 | horizon = 16
8 | in_dim = 16
9 | x = torch.randn(batch_size, horizon, in_dim)
10 | noise = torch.randn(batch_size)
11 | condition = torch.randn(batch_size, 32)
12 |
13 | model = JannerUNet1d(in_dim=in_dim, model_dim=32, emb_dim=32, kernel_size=3, dim_mult=[1, 2, 2, 2], attention=True)
14 |
15 | output = model(x, noise, condition)
16 |
17 | assert output.shape == (batch_size, horizon, in_dim), f"Expected shape {(batch_size, horizon, in_dim)}, but got {output.shape}"
18 |
19 | def test_jannerunet1d_no_condition():
20 | batch_size = 2
21 | horizon = 8
22 | in_dim = 16
23 | x = torch.randn(batch_size, horizon, in_dim)
24 | noise = torch.randn(batch_size)
25 |
26 | model = JannerUNet1d(in_dim=in_dim, model_dim=32, emb_dim=32, kernel_size=3, dim_mult=[1, 2, 2, 2], attention=True)
27 |
28 | output = model(x, noise, None)
29 |
30 | assert output.shape == (batch_size, horizon, in_dim), f"Expected shape {(batch_size, horizon, in_dim)}, but got {output.shape}"
31 |
--------------------------------------------------------------------------------
/tests/test_kitchen_datasets.py:
--------------------------------------------------------------------------------
1 | import sys
2 | import os
3 | import pytest
4 | import torch
5 | from cleandiffuser.dataset.kitchen_dataset import KitchenMjlDataset, KitchenDataset
6 |
7 | @pytest.fixture
8 | def setup_dataloader(request):
9 | abs_action = request.param
10 | if abs_action:
11 | dataset_path = os.path.expanduser("dev/kitchen/kitchen_demos_multitask")
12 | dataset = KitchenMjlDataset(dataset_path, horizon=10, pad_before=0, pad_after=0)
13 | else:
14 | dataset_path = os.path.expanduser("dev/kitchen")
15 | dataset = KitchenDataset(dataset_path, horizon=10, pad_before=0, pad_after=0)
16 |
17 | dataloader = torch.utils.data.DataLoader(
18 | dataset,
19 | batch_size=10,
20 | num_workers=4,
21 | shuffle=True,
22 | # accelerate cpu-gpu transfer
23 | pin_memory=True,
24 | # don't kill worker process after each epoch
25 | persistent_workers=True
26 | )
27 | return dataloader
28 |
29 | @pytest.mark.parametrize("setup_dataloader", [True, False], indirect=True)
30 | def test_dataloader_batch(setup_dataloader):
31 | dataloader = setup_dataloader
32 |
33 | batch = next(iter(dataloader))
34 |
35 | assert 'obs' in batch
36 | assert 'action' in batch
37 |
38 | print("batch['obs']['state'].shape:", batch['obs']['state'].shape)
39 | print("batch['action'].shape:", batch['action'].shape)
40 |
41 | assert batch['obs']['state'].shape == (10, 10, 60)
42 | assert batch['action'].shape == (10, 10, 9)
43 |
44 |
45 | if __name__ == '__main__':
46 | pytest.main()
--------------------------------------------------------------------------------
/tests/test_kitchen_envs.py:
--------------------------------------------------------------------------------
1 | import sys
2 | import os
3 | import gym
4 | import pytest
5 | import numpy as np
6 |
7 | from cleandiffuser.env import kitchen
8 | from cleandiffuser.env.wrapper import VideoRecordingWrapper, MultiStepWrapper
9 | from cleandiffuser.env.utils import VideoRecorder
10 | from cleandiffuser.env.kitchen.kitchen_lowdim_wrapper import KitchenLowdimWrapper
11 |
12 |
13 | @pytest.fixture
14 | def setup_env():
15 | env = gym.make("kitchen-all-v0") # state
16 | render_hw = (240, 360)
17 | env = KitchenLowdimWrapper(env=env, init_qpos=None, init_qvel=None, render_hw=tuple(render_hw))
18 |
19 | fps = 12.5
20 | video_recorder = VideoRecorder.create_h264(
21 | fps=fps,
22 | codec='h264',
23 | input_pix_fmt='rgb24',
24 | crf=22,
25 | thread_type='FRAME',
26 | thread_count=1
27 | )
28 | steps_per_render = int(max(10 // fps, 1))
29 | env = VideoRecordingWrapper(env, video_recorder, file_path=None, steps_per_render=steps_per_render)
30 | env = MultiStepWrapper(env, n_obs_steps=2, n_action_steps=8, max_episode_steps=280)
31 |
32 | env.seed(1000)
33 | return env
34 |
35 |
36 | def test_env_reset(setup_env):
37 | env = setup_env
38 | obs = env.reset()
39 |
40 | assert obs is not None
41 |
42 |
43 | def test_env_step(setup_env):
44 | env = setup_env
45 | obs = env.reset()
46 |
47 | action = env.action_space.sample()
48 |
49 | obs, reward, terminal, info = env.step(action)
50 |
51 | assert obs is not None
52 | assert isinstance(reward, float)
53 | assert isinstance(info, dict)
--------------------------------------------------------------------------------
/tests/test_pearce_transformer.py:
--------------------------------------------------------------------------------
1 | import pytest
2 | import torch
3 | import torch.nn as nn
4 | from cleandiffuser.nn_diffusion import BaseNNDiffusion
5 | from cleandiffuser.nn_diffusion.pearcetransformer import TimeSiren, TransformerEncoderBlock, EmbeddingBlock, PearceTransformer
6 |
7 | @pytest.fixture
8 | def random_tensor():
9 | return torch.randn(2, 10) # Example tensor for testing
10 |
11 | def test_time_siren(random_tensor):
12 | model = TimeSiren(input_dim=10, emb_dim=20)
13 | output = model(random_tensor)
14 | assert output.shape == (2, 20)
15 |
16 | def test_transformer_encoder_block():
17 | model = TransformerEncoderBlock(trans_emb_dim=16, transformer_dim=32, nheads=2)
18 | input_tensor = torch.randn(3, 2, 16)
19 | output = model(input_tensor)
20 | assert output.shape == (3, 2, 16)
21 |
22 | def test_embedding_block(random_tensor):
23 | model = EmbeddingBlock(in_dim=10, emb_dim=20)
24 | output = model(random_tensor)
25 | assert output.shape == (2, 20)
26 |
27 | def test_pearce_transformer():
28 | model = PearceTransformer(act_dim=10, To=2, emb_dim=32, trans_emb_dim=16, nhead=2)
29 | x = torch.randn(2, 10)
30 | noise = torch.randn(2)
31 | condition = torch.randn(2, 2, 32)
32 | output = model(x, noise, condition)
33 | assert output.shape == (2, 10)
34 |
--------------------------------------------------------------------------------
/tests/test_sfbc_unet.py:
--------------------------------------------------------------------------------
1 | import pytest
2 | import torch
3 | import torch.nn as nn
4 | from cleandiffuser.nn_diffusion.sfbc_unet import ResidualBlock, SfBCUNet
5 |
6 |
7 | @pytest.fixture
8 | def sample_data():
9 | x = torch.randn(2, 2, 10)
10 | noise = torch.randn(2, )
11 | condition = torch.randn(2, 64) # Batch size of 2, condition size of 64
12 | return x, noise, condition
13 |
14 | def test_residual_block_forward(sample_data):
15 | x, _, condition = sample_data
16 | in_dim, out_dim, emb_dim = 10, 10, 64
17 | block = ResidualBlock(in_dim, out_dim, emb_dim)
18 | output = block(x, condition)
19 | assert output.shape == x.shape
20 |
21 | def test_sfbcu_net_forward(sample_data):
22 | x, noise, condition = sample_data
23 | act_dim = 10
24 | emb_dim = 64
25 | hidden_dims = [512, 256, 128]
26 | model = SfBCUNet(act_dim, emb_dim, hidden_dims)
27 | output = model(x, noise, condition)
28 | assert output.shape == x.shape
29 |
30 | def test_sfbcu_net_forward_without_condition(sample_data):
31 | x, noise, _ = sample_data
32 | act_dim = 10
33 | emb_dim = 64
34 | hidden_dims = [512, 256, 128]
35 | model = SfBCUNet(act_dim, emb_dim, hidden_dims)
36 | output = model(x, noise)
37 | assert output.shape == x.shape
--------------------------------------------------------------------------------