├── .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 | ![Alt text](franka_panda.png?raw=false "sawyer") | 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 --------------------------------------------------------------------------------