Equidiff / equidiff /equi_diffpo /config /train_equi_diffusion_unet_voxel_abs.yaml
Lillianwei's picture
mimicgen
c1f1d32
defaults:
- _self_
- task: mimicgen_voxel_abs
name: equi_diff_voxel
_target_: equi_diffpo.workspace.train_equi_workspace.TrainEquiWorkspace
shape_meta: ${task.shape_meta}
exp_name: "default"
task_name: stack_d1
n_demo: 200
horizon: 16
n_obs_steps: 1
n_action_steps: 8
n_latency_steps: 0
dataset_obs_steps: ${n_obs_steps}
past_action_visible: False
# dataset: equi_diffpo.dataset.robomimic_replay_image_sym_dataset.RobomimicReplayImageSymDataset
dataset_path: data/robomimic/datasets/${task_name}/${task_name}_voxel_abs.hdf5
policy:
_target_: equi_diffpo.policy.diffusion_equi_unet_voxel_policy.DiffusionEquiUNetPolicyVoxel
shape_meta: ${shape_meta}
noise_scheduler:
_target_: diffusers.schedulers.scheduling_ddpm.DDPMScheduler
num_train_timesteps: 100
beta_start: 0.0001
beta_end: 0.02
beta_schedule: squaredcos_cap_v2
variance_type: fixed_small # Yilun's paper uses fixed_small_log instead, but easy to cause Nan
clip_sample: True # required when predict_epsilon=False
prediction_type: epsilon # or sample
horizon: ${horizon}
n_action_steps: ${eval:'${n_action_steps}+${n_latency_steps}'}
n_obs_steps: ${n_obs_steps}
num_inference_steps: 100
crop_shape: [58, 58, 58]
# crop_shape: null
diffusion_step_embed_dim: 128
enc_n_hidden: 128
down_dims: [256, 512, 1024]
kernel_size: 5
n_groups: 8
cond_predict_scale: True
rot_aug: True
# scheduler.step params
# predict_epsilon: True
ema:
_target_: equi_diffpo.model.diffusion.ema_model.EMAModel
update_after_step: 0
inv_gamma: 1.0
power: 0.75
min_value: 0.0
max_value: 0.9999
dataloader:
batch_size: 64
num_workers: 16
shuffle: True
pin_memory: True
persistent_workers: True
drop_last: true
val_dataloader:
batch_size: 64
num_workers: 16
shuffle: False
pin_memory: True
persistent_workers: True
optimizer:
betas: [0.95, 0.999]
eps: 1.0e-08
learning_rate: 0.0001
weight_decay: 1.0e-06
training:
device: "cuda:0"
seed: 0
debug: False
resume: True
# optimization
lr_scheduler: cosine
lr_warmup_steps: 500
num_epochs: ${eval:'50000 / ${n_demo}'}
gradient_accumulate_every: 1
# EMA destroys performance when used with BatchNorm
# replace BatchNorm with GroupNorm.
use_ema: True
# training loop control
# in epochs
rollout_every: ${eval:'1000 / ${n_demo}'}
checkpoint_every: ${eval:'1000 / ${n_demo}'}
val_every: 1
sample_every: 5
# steps per epoch
max_train_steps: null
max_val_steps: null
# misc
tqdm_interval_sec: 1.0
logging:
project: equi_diff_${task_name}_voxel
resume: True
mode: online
name: equi_diff_voxel_${n_demo}
tags: ["${name}", "${task_name}", "${exp_name}"]
id: null
group: null
checkpoint:
topk:
monitor_key: test_mean_score
mode: max
k: 5
format_str: 'epoch={epoch:04d}-test_mean_score={test_mean_score:.3f}.ckpt'
save_last_ckpt: True
save_last_snapshot: False
multi_run:
run_dir: data/outputs/${now:%Y.%m.%d}/${now:%H.%M.%S}_${name}_${task_name}
wandb_name_base: ${now:%Y.%m.%d-%H.%M.%S}_${name}_${task_name}
hydra:
job:
override_dirname: ${name}
run:
dir: data/outputs/${now:%Y.%m.%d}/${now:%H.%M.%S}_${name}_${task_name}
sweep:
dir: data/outputs/${now:%Y.%m.%d}/${now:%H.%M.%S}_${name}_${task_name}
subdir: ${hydra.job.num}