v0.5 to main (#10)
* v0.5 (#9) * update idql configs * update awr configs * update dipo configs * update qsm configs * update dqm configs * update project version to 0.5.0
This commit is contained in:
@@ -7,7 +7,7 @@ _target_: agent.eval.eval_diffusion_agent.EvalDiffusionAgent
|
||||
|
||||
name: ${env_name}_eval_diffusion_mlp_ta${horizon_steps}_td${denoising_steps}
|
||||
logdir: ${oc.env:DPPO_LOG_DIR}/robomimic-eval/${name}/${now:%Y-%m-%d}_${now:%H-%M-%S}_${seed}
|
||||
base_policy_path: ${oc.env:DPPO_LOG_DIR}/robomimic-pretrain/can/can_pre_diffusion_mlp_ta4_td20/2024-06-28_13-29-54/checkpoint/state_5000.pt # use 8000 for comparing policy parameterizations
|
||||
base_policy_path:
|
||||
robomimic_env_cfg_path: cfg/robomimic/env_meta/${env_name}.json
|
||||
normalization_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/normalization.npz
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -58,7 +57,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 9
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 100
|
||||
cond_steps: 1
|
||||
img_cond_steps: 1
|
||||
@@ -90,7 +89,7 @@ model:
|
||||
img_cond_steps: ${img_cond_steps}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
act_steps: 4
|
||||
@@ -55,6 +54,6 @@ model:
|
||||
fixed_std: 0.1
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 9
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
img_cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -82,6 +81,6 @@ model:
|
||||
fixed_std: 0.1
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
@@ -0,0 +1,66 @@
|
||||
defaults:
|
||||
- _self_
|
||||
hydra:
|
||||
run:
|
||||
dir: ${logdir}
|
||||
_target_: agent.eval.eval_diffusion_agent.EvalDiffusionAgent
|
||||
|
||||
name: ${env_name}_eval_diffusion_mlp_ta${horizon_steps}_td${denoising_steps}
|
||||
logdir: ${oc.env:DPPO_LOG_DIR}/robomimic-eval/${name}/${now:%Y-%m-%d}_${now:%H-%M-%S}_${seed}
|
||||
base_policy_path:
|
||||
robomimic_env_cfg_path: cfg/robomimic/env_meta/${env_name}.json
|
||||
normalization_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/normalization.npz
|
||||
|
||||
seed: 42
|
||||
device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 1
|
||||
act_steps: 1
|
||||
|
||||
n_steps: 400 # each episode takes max_episode_steps / act_steps steps
|
||||
render_num: 0
|
||||
|
||||
env:
|
||||
n_envs: 50
|
||||
name: ${env_name}
|
||||
best_reward_threshold_for_success: 1
|
||||
max_episode_steps: 400
|
||||
save_video: False
|
||||
wrappers:
|
||||
robomimic_lowdim:
|
||||
normalization_path: ${normalization_path}
|
||||
low_dim_keys: ['robot0_eef_pos',
|
||||
'robot0_eef_quat',
|
||||
'robot0_gripper_qpos',
|
||||
'object'] # same order of preprocessed observations
|
||||
multi_step:
|
||||
n_obs_steps: ${cond_steps}
|
||||
n_action_steps: ${act_steps}
|
||||
max_episode_steps: ${env.max_episode_steps}
|
||||
reset_within_step: True
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion.DiffusionModel
|
||||
predict_epsilon: True
|
||||
denoised_clip_value: 1.0
|
||||
randn_clip_value: 3
|
||||
#
|
||||
network_path: ${base_policy_path}
|
||||
network:
|
||||
_target_: model.diffusion.mlp_diffusion.DiffusionMLP
|
||||
time_dim: 32
|
||||
mlp_dims: [1024, 1024, 1024]
|
||||
cond_mlp_dims: [512, 64]
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
denoising_steps: ${denoising_steps}
|
||||
device: ${device}
|
||||
@@ -0,0 +1,60 @@
|
||||
defaults:
|
||||
- _self_
|
||||
hydra:
|
||||
run:
|
||||
dir: ${logdir}
|
||||
_target_: agent.eval.eval_gaussian_agent.EvalGaussianAgent
|
||||
|
||||
name: ${env_name}_eval_gaussian_mlp_ta${horizon_steps}
|
||||
logdir: ${oc.env:DPPO_LOG_DIR}/robomimic-eval/${name}/${now:%Y-%m-%d}_${now:%H-%M-%S}_${seed}
|
||||
base_policy_path:
|
||||
robomimic_env_cfg_path: cfg/robomimic/env_meta/${env_name}.json
|
||||
normalization_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/normalization.npz
|
||||
|
||||
seed: 42
|
||||
device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
cond_steps: 1
|
||||
horizon_steps: 1
|
||||
act_steps: 1
|
||||
|
||||
n_steps: 400 # each episode takes max_episode_steps / act_steps steps
|
||||
render_num: 0
|
||||
|
||||
env:
|
||||
n_envs: 50
|
||||
name: ${env_name}
|
||||
best_reward_threshold_for_success: 1
|
||||
max_episode_steps: 400
|
||||
save_video: False
|
||||
wrappers:
|
||||
robomimic_lowdim:
|
||||
normalization_path: ${normalization_path}
|
||||
low_dim_keys: ['robot0_eef_pos',
|
||||
'robot0_eef_quat',
|
||||
'robot0_gripper_qpos',
|
||||
'object'] # same order of preprocessed observations
|
||||
multi_step:
|
||||
n_obs_steps: ${cond_steps}
|
||||
n_action_steps: ${act_steps}
|
||||
max_episode_steps: ${env.max_episode_steps}
|
||||
reset_within_step: True
|
||||
|
||||
model:
|
||||
_target_: model.common.gaussian.GaussianModel
|
||||
randn_clip_value: 3
|
||||
#
|
||||
network_path: ${base_policy_path}
|
||||
network:
|
||||
_target_: model.common.mlp_gaussian.Gaussian_MLP
|
||||
mlp_dims: [1024, 1024, 1024]
|
||||
activation_type: ReLU
|
||||
use_layernorm: true
|
||||
fixed_std: 0.1
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
@@ -0,0 +1,122 @@
|
||||
defaults:
|
||||
- _self_
|
||||
hydra:
|
||||
run:
|
||||
dir: ${logdir}
|
||||
_target_: agent.finetune.train_calql_agent.TrainCalQLAgent
|
||||
|
||||
name: ${env_name}_calql_mlp_ta${horizon_steps}
|
||||
logdir: ${oc.env:DPPO_LOG_DIR}/robomimic-finetune/${name}/${now:%Y-%m-%d}_${now:%H-%M-%S}_${seed}
|
||||
base_policy_path:
|
||||
robomimic_env_cfg_path: cfg/robomimic/env_meta/${env_name}.json
|
||||
normalization_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/normalization.npz
|
||||
offline_dataset_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/train.npz
|
||||
|
||||
seed: 42
|
||||
device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
cond_steps: 1
|
||||
horizon_steps: 1
|
||||
act_steps: 1
|
||||
|
||||
env:
|
||||
n_envs: 1
|
||||
name: ${env_name}
|
||||
best_reward_threshold_for_success: 1
|
||||
max_episode_steps: 300
|
||||
reset_at_iteration: False
|
||||
save_video: False
|
||||
wrappers:
|
||||
robomimic_lowdim:
|
||||
normalization_path: ${normalization_path}
|
||||
low_dim_keys: ['robot0_eef_pos',
|
||||
'robot0_eef_quat',
|
||||
'robot0_gripper_qpos',
|
||||
'object'] # same order of preprocessed observations
|
||||
multi_step:
|
||||
n_obs_steps: ${cond_steps}
|
||||
n_action_steps: ${act_steps}
|
||||
max_episode_steps: ${env.max_episode_steps}
|
||||
reset_within_step: True
|
||||
|
||||
wandb:
|
||||
entity: ${oc.env:DPPO_WANDB_ENTITY}
|
||||
project: calql-${env_name}
|
||||
run: ${now:%H-%M-%S}_${name}
|
||||
|
||||
train:
|
||||
n_train_itr: 10000
|
||||
n_steps: 1 # not used
|
||||
n_episode_per_epoch: 1
|
||||
gamma: 0.99
|
||||
actor_lr: 1e-4
|
||||
actor_weight_decay: 0
|
||||
actor_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 1e-4
|
||||
critic_lr: 3e-4
|
||||
critic_weight_decay: 0
|
||||
critic_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 3e-4
|
||||
save_model_freq: 100
|
||||
val_freq: 10
|
||||
render:
|
||||
freq: 1
|
||||
num: 0
|
||||
log_freq: 1
|
||||
# CalQL specific
|
||||
train_online: True
|
||||
batch_size: 256
|
||||
n_random_actions: 4
|
||||
target_ema_rate: 0.005
|
||||
scale_reward_factor: 1.0
|
||||
num_update: 1000
|
||||
buffer_size: 1000000
|
||||
online_utd_ratio: 1
|
||||
n_eval_episode: 40
|
||||
n_explore_steps: 0
|
||||
target_entropy: ${eval:'- ${action_dim} * ${act_steps}'}
|
||||
init_temperature: 1
|
||||
automatic_entropy_tuning: True
|
||||
|
||||
model:
|
||||
_target_: model.rl.gaussian_calql.CalQL_Gaussian
|
||||
randn_clip_value: 3
|
||||
cql_min_q_weight: 5.0
|
||||
tanh_output: True
|
||||
network_path: ${base_policy_path}
|
||||
actor:
|
||||
_target_: model.common.mlp_gaussian.Gaussian_MLP
|
||||
mlp_dims: [512, 512, 512]
|
||||
activation_type: ReLU
|
||||
tanh_output: False # squash after sampling instead
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
|
||||
std_max: 7.3891
|
||||
std_min: 0.0067
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
mlp_dims: [256, 256, 256]
|
||||
activation_type: ReLU
|
||||
use_layernorm: True
|
||||
double_q: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
action_dim: ${action_dim}
|
||||
action_steps: ${act_steps}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
offline_dataset:
|
||||
_target_: agent.dataset.sequence.StitchedSequenceQLearningDataset
|
||||
dataset_path: ${offline_dataset_path}
|
||||
horizon_steps: ${horizon_steps}
|
||||
cond_steps: ${cond_steps}
|
||||
device: ${device}
|
||||
discount_factor: ${train.gamma}
|
||||
get_mc_return: True
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -73,7 +72,7 @@ train:
|
||||
max_adv_weight: 100
|
||||
beta: 10
|
||||
buffer_size: 3000
|
||||
batch_size: 256
|
||||
batch_size: 1000
|
||||
replay_ratio: 64
|
||||
critic_update_ratio: 4
|
||||
|
||||
@@ -91,7 +90,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
mlp_dims: [256, 256, 256]
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -70,11 +69,12 @@ train:
|
||||
num: 0
|
||||
# DIPO specific
|
||||
scale_reward_factor: 1
|
||||
eta: 0.0001
|
||||
target_ema_rate: 0.005
|
||||
buffer_size: 1000000
|
||||
action_lr: 0.0001
|
||||
action_gradient_steps: 10
|
||||
buffer_size: 400000
|
||||
batch_size: 5000
|
||||
replay_ratio: 64
|
||||
replay_ratio: 16
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_dipo.DIPODiffusion
|
||||
@@ -90,7 +90,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -48,7 +47,7 @@ wandb:
|
||||
|
||||
train:
|
||||
n_train_itr: 300
|
||||
n_critic_warmup_itr: 2
|
||||
n_critic_warmup_itr: 5
|
||||
n_steps: 300
|
||||
gamma: 0.999
|
||||
actor_lr: 1e-5
|
||||
@@ -70,10 +69,11 @@ train:
|
||||
num: 0
|
||||
# DQL specific
|
||||
scale_reward_factor: 1
|
||||
target_ema_rate: 0.005
|
||||
buffer_size: 1000000
|
||||
eta: 1.0
|
||||
buffer_size: 400000
|
||||
batch_size: 5000
|
||||
replay_ratio: 64
|
||||
replay_ratio: 16
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_dql.DQLDiffusion
|
||||
@@ -89,7 +89,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -74,9 +73,9 @@ train:
|
||||
eval_sample_num: 10 # how many samples to score during eval
|
||||
critic_tau: 0.001 # rate of target q network update
|
||||
use_expectile_exploration: True
|
||||
buffer_size: 3000
|
||||
batch_size: 512
|
||||
replay_ratio: 16
|
||||
buffer_size: 5000 # * n_envs
|
||||
replay_ratio: 128
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_idql.IDQLDiffusion
|
||||
@@ -92,7 +91,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic_q:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
ft_denoising_steps: 10
|
||||
cond_steps: 1
|
||||
@@ -97,7 +96,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
mlp_dims: [256, 256, 256]
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 9
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 100
|
||||
ft_denoising_steps: 5
|
||||
cond_steps: 1
|
||||
@@ -140,7 +139,7 @@ model:
|
||||
img_cond_steps: ${img_cond_steps}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.ViTCritic
|
||||
spatial_emb: 128
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
ft_denoising_steps: 10
|
||||
cond_steps: 1
|
||||
@@ -100,7 +99,7 @@ model:
|
||||
smaller_encoder: False
|
||||
cond_predict_scale: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
mlp_dims: [256, 256, 256]
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
ft_denoising_steps: 10
|
||||
cond_steps: 1
|
||||
@@ -92,7 +91,6 @@ model:
|
||||
sde_min_beta: 1e-10
|
||||
sde_probability_flow: True
|
||||
#
|
||||
gamma_denoising: 0.99
|
||||
clip_ploss_coef: 0.01
|
||||
min_sampling_denoising_std: 0.1
|
||||
min_logprob_denoising_std: 0.1
|
||||
@@ -105,7 +103,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
mlp_dims: [256, 256, 256]
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
act_steps: 4
|
||||
@@ -91,7 +90,7 @@ model:
|
||||
std_max: 0.2
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
mlp_dims: [256, 256, 256]
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 9
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
img_cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -122,7 +121,7 @@ model:
|
||||
img_cond_steps: ${img_cond_steps}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.ViTCritic
|
||||
spatial_emb: 128
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
act_steps: 4
|
||||
@@ -92,7 +91,7 @@ model:
|
||||
std_max: 0.2
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
mlp_dims: [256, 256, 256]
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
act_steps: 4
|
||||
@@ -92,7 +91,7 @@ model:
|
||||
num_modes: ${num_modes}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
mlp_dims: [256, 256, 256]
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
act_steps: 4
|
||||
@@ -93,7 +92,7 @@ model:
|
||||
num_modes: ${num_modes}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
mlp_dims: [256, 256, 256]
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -70,11 +69,11 @@ train:
|
||||
num: 0
|
||||
# QSM specific
|
||||
scale_reward_factor: 1
|
||||
q_grad_coeff: 50
|
||||
q_grad_coeff: 10
|
||||
critic_tau: 0.005 # rate of target q network update
|
||||
buffer_size: 3000
|
||||
batch_size: 256
|
||||
replay_ratio: 32
|
||||
buffer_size: 5000 # * n_envs
|
||||
replay_ratio: 16
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_qsm.QSMDiffusion
|
||||
@@ -90,7 +89,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -82,7 +81,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
defaults:
|
||||
- _self_
|
||||
hydra:
|
||||
run:
|
||||
dir: ${logdir}
|
||||
_target_: agent.finetune.train_ibrl_agent.TrainIBRLAgent
|
||||
|
||||
name: ${env_name}_ibrl_mlp_ta${horizon_steps}
|
||||
logdir: ${oc.env:DPPO_LOG_DIR}/robomimic-finetune/${name}/${now:%Y-%m-%d}_${now:%H-%M-%S}_${seed}
|
||||
base_policy_path:
|
||||
robomimic_env_cfg_path: cfg/robomimic/env_meta/${env_name}.json
|
||||
normalization_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/normalization.npz
|
||||
offline_dataset_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/train.npz
|
||||
|
||||
seed: 42
|
||||
device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
cond_steps: 1
|
||||
horizon_steps: 1
|
||||
act_steps: 1
|
||||
|
||||
env:
|
||||
n_envs: 1
|
||||
name: ${env_name}
|
||||
max_episode_steps: 250 # IBRL uses 200
|
||||
reset_at_iteration: False
|
||||
save_video: False
|
||||
best_reward_threshold_for_success: 1
|
||||
wrappers:
|
||||
robomimic_lowdim:
|
||||
normalization_path: ${normalization_path}
|
||||
low_dim_keys: ['robot0_eef_pos',
|
||||
'robot0_eef_quat',
|
||||
'robot0_gripper_qpos',
|
||||
'object'] # same order of preprocessed observations
|
||||
multi_step:
|
||||
n_obs_steps: ${cond_steps}
|
||||
n_action_steps: ${act_steps}
|
||||
max_episode_steps: ${env.max_episode_steps}
|
||||
reset_within_step: True
|
||||
|
||||
wandb:
|
||||
entity: ${oc.env:DPPO_WANDB_ENTITY}
|
||||
project: ibrl-${env_name}
|
||||
run: ${now:%H-%M-%S}_${name}
|
||||
|
||||
train:
|
||||
n_train_itr: 1000000
|
||||
n_steps: 1
|
||||
gamma: 0.99
|
||||
actor_lr: 1e-4
|
||||
actor_weight_decay: 0
|
||||
actor_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 1e-4
|
||||
critic_lr: 1e-4
|
||||
critic_weight_decay: 0
|
||||
critic_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 1e-4
|
||||
save_model_freq: 100000
|
||||
val_freq: 10000
|
||||
render:
|
||||
freq: 10000
|
||||
num: 0
|
||||
log_freq: 200
|
||||
# IBRL specific
|
||||
batch_size: 256
|
||||
target_ema_rate: 0.01
|
||||
scale_reward_factor: 1
|
||||
critic_num_update: 3
|
||||
buffer_size: 400000
|
||||
n_eval_episode: 40
|
||||
n_explore_steps: 0
|
||||
update_freq: 2
|
||||
|
||||
model:
|
||||
_target_: model.rl.gaussian_ibrl.IBRL_Gaussian
|
||||
randn_clip_value: 3
|
||||
n_critics: 5
|
||||
soft_action_sample: True
|
||||
soft_action_sample_beta: 10
|
||||
network_path: ${base_policy_path}
|
||||
actor:
|
||||
_target_: model.common.mlp_gaussian.Gaussian_MLP
|
||||
mlp_dims: [1024, 1024, 1024]
|
||||
activation_type: ReLU
|
||||
dropout: 0.5
|
||||
fixed_std: 0.1
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
mlp_dims: [1024, 1024, 1024]
|
||||
activation_type: ReLU
|
||||
use_layernorm: True
|
||||
double_q: False # use ensemble
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
action_dim: ${action_dim}
|
||||
action_steps: ${act_steps}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
offline_dataset:
|
||||
_target_: agent.dataset.sequence.StitchedSequenceQLearningDataset
|
||||
dataset_path: ${offline_dataset_path}
|
||||
horizon_steps: ${horizon_steps}
|
||||
cond_steps: ${cond_steps}
|
||||
device: ${device}
|
||||
max_n_episodes: 100
|
||||
@@ -0,0 +1,114 @@
|
||||
defaults:
|
||||
- _self_
|
||||
hydra:
|
||||
run:
|
||||
dir: ${logdir}
|
||||
_target_: agent.finetune.train_rlpd_agent.TrainRLPDAgent
|
||||
|
||||
name: ${env_name}_rlpd_mlp_ta${horizon_steps}
|
||||
logdir: ${oc.env:DPPO_LOG_DIR}/robomimic-finetune/${name}/${now:%Y-%m-%d}_${now:%H-%M-%S}_${seed}
|
||||
robomimic_env_cfg_path: cfg/robomimic/env_meta/${env_name}.json
|
||||
normalization_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/normalization.npz
|
||||
offline_dataset_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/train.npz
|
||||
|
||||
seed: 42
|
||||
device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
cond_steps: 1
|
||||
horizon_steps: 1
|
||||
act_steps: 1
|
||||
|
||||
env:
|
||||
n_envs: 1
|
||||
name: ${env_name}
|
||||
max_episode_steps: 300
|
||||
reset_at_iteration: False
|
||||
save_video: False
|
||||
best_reward_threshold_for_success: 1
|
||||
wrappers:
|
||||
robomimic_lowdim:
|
||||
normalization_path: ${normalization_path}
|
||||
low_dim_keys: ['robot0_eef_pos',
|
||||
'robot0_eef_quat',
|
||||
'robot0_gripper_qpos',
|
||||
'object'] # same order of preprocessed observations
|
||||
multi_step:
|
||||
n_obs_steps: ${cond_steps}
|
||||
n_action_steps: ${act_steps}
|
||||
max_episode_steps: ${env.max_episode_steps}
|
||||
reset_within_step: True
|
||||
|
||||
wandb:
|
||||
entity: ${oc.env:DPPO_WANDB_ENTITY}
|
||||
project: rlpd-${env_name}
|
||||
run: ${now:%H-%M-%S}_${name}
|
||||
|
||||
train:
|
||||
n_train_itr: 1000000
|
||||
n_steps: 1
|
||||
gamma: 0.99
|
||||
actor_lr: 1e-4
|
||||
actor_weight_decay: 0
|
||||
actor_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 1e-4
|
||||
critic_lr: 1e-4
|
||||
critic_weight_decay: 0
|
||||
critic_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 1e-4
|
||||
save_model_freq: 100000
|
||||
val_freq: 10000
|
||||
render:
|
||||
freq: 10000
|
||||
num: 0
|
||||
log_freq: 200
|
||||
# RLPD specific
|
||||
batch_size: 256
|
||||
target_ema_rate: 0.01
|
||||
scale_reward_factor: 1
|
||||
critic_num_update: 3
|
||||
buffer_size: 400000
|
||||
n_eval_episode: 40
|
||||
n_explore_steps: 0
|
||||
target_entropy: ${eval:'- ${action_dim} * ${act_steps}'}
|
||||
init_temperature: 1
|
||||
|
||||
model:
|
||||
_target_: model.rl.gaussian_rlpd.RLPD_Gaussian
|
||||
randn_clip_value: 10
|
||||
backup_entropy: True
|
||||
n_critics: 5
|
||||
tanh_output: True
|
||||
actor:
|
||||
_target_: model.common.mlp_gaussian.Gaussian_MLP
|
||||
mlp_dims: [512, 512, 512]
|
||||
activation_type: ReLU
|
||||
tanh_output: False # squash after sampling instead
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
|
||||
std_max: 7.3891
|
||||
std_min: 0.0067
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
mlp_dims: [256, 256, 256]
|
||||
activation_type: ReLU
|
||||
use_layernorm: True
|
||||
double_q: False # use ensemble
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
action_dim: ${action_dim}
|
||||
action_steps: ${act_steps}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
offline_dataset:
|
||||
_target_: agent.dataset.sequence.StitchedSequenceQLearningDataset
|
||||
dataset_path: ${offline_dataset_path}
|
||||
horizon_steps: ${horizon_steps}
|
||||
cond_steps: ${cond_steps}
|
||||
device: ${device}
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -73,7 +72,7 @@ train:
|
||||
max_adv_weight: 100
|
||||
beta: 10
|
||||
buffer_size: 3000
|
||||
batch_size: 256
|
||||
batch_size: 1000
|
||||
replay_ratio: 64
|
||||
critic_update_ratio: 4
|
||||
|
||||
@@ -91,13 +90,13 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
mlp_dims: [256, 256, 256]
|
||||
activation_type: Mish
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -48,7 +47,7 @@ wandb:
|
||||
|
||||
train:
|
||||
n_train_itr: 300
|
||||
n_critic_warmup_itr: 2
|
||||
n_critic_warmup_itr: 5
|
||||
n_steps: 300
|
||||
gamma: 0.999
|
||||
actor_lr: 1e-5
|
||||
@@ -70,11 +69,12 @@ train:
|
||||
num: 0
|
||||
# DIPO specific
|
||||
scale_reward_factor: 1
|
||||
eta: 0.0001
|
||||
target_ema_rate: 0.005
|
||||
buffer_size: 1000000
|
||||
action_lr: 0.0001
|
||||
action_gradient_steps: 10
|
||||
buffer_size: 400000
|
||||
batch_size: 5000
|
||||
replay_ratio: 64
|
||||
replay_ratio: 16
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_dipo.DIPODiffusion
|
||||
@@ -90,7 +90,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -48,7 +47,7 @@ wandb:
|
||||
|
||||
train:
|
||||
n_train_itr: 300
|
||||
n_critic_warmup_itr: 2
|
||||
n_critic_warmup_itr: 5
|
||||
n_steps: 300
|
||||
gamma: 0.999
|
||||
actor_lr: 1e-5
|
||||
@@ -70,10 +69,11 @@ train:
|
||||
num: 0
|
||||
# DQL specific
|
||||
scale_reward_factor: 1
|
||||
target_ema_rate: 0.005
|
||||
buffer_size: 1000000
|
||||
eta: 1.0
|
||||
buffer_size: 400000
|
||||
batch_size: 5000
|
||||
replay_ratio: 64
|
||||
replay_ratio: 16
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_dql.DQLDiffusion
|
||||
@@ -89,7 +89,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -74,9 +73,9 @@ train:
|
||||
eval_sample_num: 10 # how many samples to score during eval
|
||||
critic_tau: 0.001 # rate of target q network update
|
||||
use_expectile_exploration: True
|
||||
buffer_size: 3000
|
||||
batch_size: 512
|
||||
replay_ratio: 16
|
||||
buffer_size: 5000 # * n_envs
|
||||
replay_ratio: 128
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_idql.IDQLDiffusion
|
||||
@@ -92,7 +91,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic_q:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
ft_denoising_steps: 10
|
||||
cond_steps: 1
|
||||
@@ -97,7 +96,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: lift
|
||||
obs_dim: 9
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 100
|
||||
ft_denoising_steps: 5
|
||||
cond_steps: 1
|
||||
@@ -140,7 +139,7 @@ model:
|
||||
img_cond_steps: ${img_cond_steps}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.ViTCritic
|
||||
spatial_emb: 128
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
ft_denoising_steps: 10
|
||||
cond_steps: 1
|
||||
@@ -100,7 +99,7 @@ model:
|
||||
smaller_encoder: False
|
||||
cond_predict_scale: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
act_steps: 4
|
||||
@@ -91,7 +90,7 @@ model:
|
||||
std_max: 0.2
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: lift
|
||||
obs_dim: 9
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
img_cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -122,7 +121,7 @@ model:
|
||||
img_cond_steps: ${img_cond_steps}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.ViTCritic
|
||||
spatial_emb: 128
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
act_steps: 4
|
||||
@@ -92,7 +91,7 @@ model:
|
||||
std_max: 0.2
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
act_steps: 4
|
||||
@@ -92,7 +91,7 @@ model:
|
||||
num_modes: ${num_modes}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
act_steps: 4
|
||||
@@ -93,7 +92,7 @@ model:
|
||||
num_modes: ${num_modes}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -70,11 +69,11 @@ train:
|
||||
num: 0
|
||||
# QSM specific
|
||||
scale_reward_factor: 1
|
||||
q_grad_coeff: 50
|
||||
q_grad_coeff: 10
|
||||
critic_tau: 0.005 # rate of target q network update
|
||||
buffer_size: 3000
|
||||
batch_size: 256
|
||||
replay_ratio: 32
|
||||
buffer_size: 5000 # * n_envs
|
||||
replay_ratio: 16
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_qsm.QSMDiffusion
|
||||
@@ -90,7 +89,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -82,7 +81,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
defaults:
|
||||
- _self_
|
||||
hydra:
|
||||
run:
|
||||
dir: ${logdir}
|
||||
_target_: agent.finetune.train_rlpd_agent.TrainRLPDAgent
|
||||
|
||||
name: ${env_name}_rlpd_mlp_ta${horizon_steps}
|
||||
logdir: ${oc.env:DPPO_LOG_DIR}/robomimic-finetune/${name}/${now:%Y-%m-%d}_${now:%H-%M-%S}_${seed}
|
||||
robomimic_env_cfg_path: cfg/robomimic/env_meta/${env_name}.json
|
||||
normalization_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/normalization.npz
|
||||
offline_dataset_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/train.npz
|
||||
|
||||
seed: 42
|
||||
device: cuda:0
|
||||
env_name: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
cond_steps: 1
|
||||
horizon_steps: 1
|
||||
act_steps: 1
|
||||
|
||||
env:
|
||||
n_envs: 1
|
||||
name: ${env_name}
|
||||
max_episode_steps: 300
|
||||
reset_at_iteration: False
|
||||
save_video: False
|
||||
best_reward_threshold_for_success: 1
|
||||
wrappers:
|
||||
robomimic_lowdim:
|
||||
normalization_path: ${normalization_path}
|
||||
low_dim_keys: ['robot0_eef_pos',
|
||||
'robot0_eef_quat',
|
||||
'robot0_gripper_qpos',
|
||||
'object'] # same order of preprocessed observations
|
||||
multi_step:
|
||||
n_obs_steps: ${cond_steps}
|
||||
n_action_steps: ${act_steps}
|
||||
max_episode_steps: ${env.max_episode_steps}
|
||||
reset_within_step: True
|
||||
|
||||
wandb:
|
||||
entity: ${oc.env:DPPO_WANDB_ENTITY}
|
||||
project: rlpd-${env_name}
|
||||
run: ${now:%H-%M-%S}_${name}
|
||||
|
||||
train:
|
||||
n_train_itr: 250000
|
||||
n_steps: 1
|
||||
gamma: 0.99
|
||||
actor_lr: 3e-4
|
||||
actor_weight_decay: 0
|
||||
actor_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 3e-4
|
||||
critic_lr: 3e-4
|
||||
critic_weight_decay: 0
|
||||
critic_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 3e-4
|
||||
save_model_freq: 50000
|
||||
val_freq: 5000
|
||||
render:
|
||||
freq: 1
|
||||
num: 0
|
||||
log_freq: 200
|
||||
# RLPD specific
|
||||
batch_size: 256
|
||||
target_ema_rate: 0.005
|
||||
scale_reward_factor: 1
|
||||
critic_num_update: 5
|
||||
buffer_size: 1000000
|
||||
n_eval_episode: 10
|
||||
n_explore_steps: 5000
|
||||
target_entropy: ${eval:'- ${action_dim} * ${act_steps}'}
|
||||
init_temperature: 1
|
||||
|
||||
model:
|
||||
_target_: model.rl.gaussian_rlpd.RLPD_Gaussian
|
||||
randn_clip_value: 10
|
||||
backup_entropy: True
|
||||
n_critics: 5
|
||||
tanh_output: True
|
||||
actor:
|
||||
_target_: model.common.mlp_gaussian.Gaussian_MLP
|
||||
mlp_dims: [512, 512, 512]
|
||||
activation_type: ReLU
|
||||
tanh_output: False # squash after sampling instead
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
|
||||
std_max: 7.3891
|
||||
std_min: 0.0067
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
mlp_dims: [256, 256, 256]
|
||||
activation_type: ReLU
|
||||
use_layernorm: True
|
||||
double_q: False # use ensemble
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
action_dim: ${action_dim}
|
||||
action_steps: ${act_steps}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
offline_dataset:
|
||||
_target_: agent.dataset.sequence.StitchedSequenceQLearningDataset
|
||||
dataset_path: ${offline_dataset_path}
|
||||
horizon_steps: ${horizon_steps}
|
||||
cond_steps: ${cond_steps}
|
||||
device: ${device}
|
||||
@@ -0,0 +1,122 @@
|
||||
defaults:
|
||||
- _self_
|
||||
hydra:
|
||||
run:
|
||||
dir: ${logdir}
|
||||
_target_: agent.finetune.train_calql_agent.TrainCalQLAgent
|
||||
|
||||
name: ${env_name}_calql_mlp_ta${horizon_steps}
|
||||
logdir: ${oc.env:DPPO_LOG_DIR}/robomimic-finetune/${name}/${now:%Y-%m-%d}_${now:%H-%M-%S}_${seed}
|
||||
base_policy_path:
|
||||
robomimic_env_cfg_path: cfg/robomimic/env_meta/${env_name}.json
|
||||
normalization_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/normalization.npz
|
||||
offline_dataset_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/train.npz
|
||||
|
||||
seed: 42
|
||||
device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
cond_steps: 1
|
||||
horizon_steps: 1
|
||||
act_steps: 1
|
||||
|
||||
env:
|
||||
n_envs: 1
|
||||
name: ${env_name}
|
||||
best_reward_threshold_for_success: 1
|
||||
max_episode_steps: 400
|
||||
reset_at_iteration: False
|
||||
save_video: False
|
||||
wrappers:
|
||||
robomimic_lowdim:
|
||||
normalization_path: ${normalization_path}
|
||||
low_dim_keys: ['robot0_eef_pos',
|
||||
'robot0_eef_quat',
|
||||
'robot0_gripper_qpos',
|
||||
'object'] # same order of preprocessed observations
|
||||
multi_step:
|
||||
n_obs_steps: ${cond_steps}
|
||||
n_action_steps: ${act_steps}
|
||||
max_episode_steps: ${env.max_episode_steps}
|
||||
reset_within_step: True
|
||||
|
||||
wandb:
|
||||
entity: ${oc.env:DPPO_WANDB_ENTITY}
|
||||
project: calql-${env_name}
|
||||
run: ${now:%H-%M-%S}_${name}
|
||||
|
||||
train:
|
||||
n_train_itr: 10000
|
||||
n_steps: 1 # not used
|
||||
n_episode_per_epoch: 1
|
||||
gamma: 0.99
|
||||
actor_lr: 1e-4
|
||||
actor_weight_decay: 0
|
||||
actor_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 1e-4
|
||||
critic_lr: 3e-4
|
||||
critic_weight_decay: 0
|
||||
critic_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 3e-4
|
||||
save_model_freq: 100
|
||||
val_freq: 10
|
||||
render:
|
||||
freq: 1
|
||||
num: 0
|
||||
log_freq: 1
|
||||
# CalQL specific
|
||||
train_online: True
|
||||
batch_size: 256
|
||||
n_random_actions: 4
|
||||
target_ema_rate: 0.005
|
||||
scale_reward_factor: 1.0
|
||||
num_update: 1000
|
||||
buffer_size: 1000000
|
||||
online_utd_ratio: 1
|
||||
n_eval_episode: 40
|
||||
n_explore_steps: 0
|
||||
target_entropy: ${eval:'- ${action_dim} * ${act_steps}'}
|
||||
init_temperature: 1
|
||||
automatic_entropy_tuning: True
|
||||
|
||||
model:
|
||||
_target_: model.rl.gaussian_calql.CalQL_Gaussian
|
||||
randn_clip_value: 3
|
||||
cql_min_q_weight: 5.0
|
||||
tanh_output: True
|
||||
network_path: ${base_policy_path}
|
||||
actor:
|
||||
_target_: model.common.mlp_gaussian.Gaussian_MLP
|
||||
mlp_dims: [512, 512, 512]
|
||||
activation_type: ReLU
|
||||
tanh_output: False # squash after sampling instead
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
|
||||
std_max: 7.3891
|
||||
std_min: 0.0067
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
mlp_dims: [256, 256, 256]
|
||||
activation_type: ReLU
|
||||
use_layernorm: True
|
||||
double_q: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
action_dim: ${action_dim}
|
||||
action_steps: ${act_steps}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
offline_dataset:
|
||||
_target_: agent.dataset.sequence.StitchedSequenceQLearningDataset
|
||||
dataset_path: ${offline_dataset_path}
|
||||
horizon_steps: ${horizon_steps}
|
||||
cond_steps: ${cond_steps}
|
||||
device: ${device}
|
||||
discount_factor: ${train.gamma}
|
||||
get_mc_return: True
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -73,7 +72,7 @@ train:
|
||||
max_adv_weight: 100
|
||||
beta: 10
|
||||
buffer_size: 3000
|
||||
batch_size: 256
|
||||
batch_size: 1000
|
||||
replay_ratio: 64
|
||||
critic_update_ratio: 4
|
||||
|
||||
@@ -92,13 +91,13 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
mlp_dims: [256, 256, 256]
|
||||
activation_type: Mish
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -70,11 +69,12 @@ train:
|
||||
num: 0
|
||||
# DIPO specific
|
||||
scale_reward_factor: 1
|
||||
eta: 0.0001
|
||||
target_ema_rate: 0.005
|
||||
buffer_size: 1000000
|
||||
action_lr: 0.0001
|
||||
action_gradient_steps: 10
|
||||
buffer_size: 400000
|
||||
batch_size: 5000
|
||||
replay_ratio: 64
|
||||
replay_ratio: 16
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_dipo.DIPODiffusion
|
||||
@@ -91,7 +91,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -48,7 +47,7 @@ wandb:
|
||||
|
||||
train:
|
||||
n_train_itr: 300
|
||||
n_critic_warmup_itr: 2
|
||||
n_critic_warmup_itr: 5
|
||||
n_steps: 400
|
||||
gamma: 0.999
|
||||
actor_lr: 1e-5
|
||||
@@ -70,10 +69,11 @@ train:
|
||||
num: 0
|
||||
# DQL specific
|
||||
scale_reward_factor: 1
|
||||
target_ema_rate: 0.005
|
||||
buffer_size: 1000000
|
||||
eta: 1.0
|
||||
buffer_size: 400000
|
||||
batch_size: 5000
|
||||
replay_ratio: 64
|
||||
replay_ratio: 16
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_dql.DQLDiffusion
|
||||
@@ -90,7 +90,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -74,9 +73,9 @@ train:
|
||||
eval_sample_num: 10 # how many samples to score during eval
|
||||
critic_tau: 0.001 # rate of target q network update
|
||||
use_expectile_exploration: True
|
||||
buffer_size: 3000
|
||||
batch_size: 512
|
||||
replay_ratio: 16
|
||||
buffer_size: 5000 # * n_envs
|
||||
replay_ratio: 128
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_idql.IDQLDiffusion
|
||||
@@ -93,7 +92,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic_q:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
ft_denoising_steps: 10
|
||||
cond_steps: 1
|
||||
@@ -98,7 +97,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 9
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 100
|
||||
ft_denoising_steps: 5
|
||||
cond_steps: 1
|
||||
@@ -140,7 +139,7 @@ model:
|
||||
img_cond_steps: ${img_cond_steps}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.ViTCritic
|
||||
spatial_emb: 128
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
ft_denoising_steps: 10
|
||||
cond_steps: 1
|
||||
@@ -100,7 +99,7 @@ model:
|
||||
smaller_encoder: False
|
||||
cond_predict_scale: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
act_steps: 4
|
||||
@@ -91,7 +90,7 @@ model:
|
||||
std_max: 0.2
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 9
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
img_cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -122,7 +121,7 @@ model:
|
||||
img_cond_steps: ${img_cond_steps}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.ViTCritic
|
||||
spatial_emb: 128
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
act_steps: 4
|
||||
@@ -92,7 +91,7 @@ model:
|
||||
std_max: 0.2
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
act_steps: 4
|
||||
@@ -92,7 +91,7 @@ model:
|
||||
num_modes: ${num_modes}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
act_steps: 4
|
||||
@@ -93,7 +92,7 @@ model:
|
||||
num_modes: ${num_modes}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -70,11 +69,11 @@ train:
|
||||
num: 0
|
||||
# QSM specific
|
||||
scale_reward_factor: 1
|
||||
q_grad_coeff: 50
|
||||
q_grad_coeff: 10
|
||||
critic_tau: 0.005 # rate of target q network update
|
||||
buffer_size: 3000
|
||||
batch_size: 256
|
||||
replay_ratio: 32
|
||||
buffer_size: 5000 # * n_envs
|
||||
replay_ratio: 16
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_qsm.QSMDiffusion
|
||||
@@ -91,7 +90,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 4
|
||||
@@ -83,7 +82,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
defaults:
|
||||
- _self_
|
||||
hydra:
|
||||
run:
|
||||
dir: ${logdir}
|
||||
_target_: agent.finetune.train_ibrl_agent.TrainIBRLAgent
|
||||
|
||||
name: ${env_name}_ibrl_mlp_ta${horizon_steps}
|
||||
logdir: ${oc.env:DPPO_LOG_DIR}/robomimic-finetune/${name}/${now:%Y-%m-%d}_${now:%H-%M-%S}_${seed}
|
||||
base_policy_path:
|
||||
robomimic_env_cfg_path: cfg/robomimic/env_meta/${env_name}.json
|
||||
normalization_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/normalization.npz
|
||||
offline_dataset_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/train.npz
|
||||
|
||||
seed: 42
|
||||
device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
cond_steps: 1
|
||||
horizon_steps: 1
|
||||
act_steps: 1
|
||||
|
||||
env:
|
||||
n_envs: 1
|
||||
name: ${env_name}
|
||||
max_episode_steps: 350 # IBRL uses 300
|
||||
reset_at_iteration: False
|
||||
save_video: False
|
||||
best_reward_threshold_for_success: 1
|
||||
wrappers:
|
||||
robomimic_lowdim:
|
||||
normalization_path: ${normalization_path}
|
||||
low_dim_keys: ['robot0_eef_pos',
|
||||
'robot0_eef_quat',
|
||||
'robot0_gripper_qpos',
|
||||
'object'] # same order of preprocessed observations
|
||||
multi_step:
|
||||
n_obs_steps: ${cond_steps}
|
||||
n_action_steps: ${act_steps}
|
||||
max_episode_steps: ${env.max_episode_steps}
|
||||
reset_within_step: True
|
||||
|
||||
wandb:
|
||||
entity: ${oc.env:DPPO_WANDB_ENTITY}
|
||||
project: ibrl-${env_name}
|
||||
run: ${now:%H-%M-%S}_${name}
|
||||
|
||||
train:
|
||||
n_train_itr: 1000000
|
||||
n_steps: 1
|
||||
gamma: 0.99
|
||||
actor_lr: 1e-4
|
||||
actor_weight_decay: 0
|
||||
actor_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 1e-4
|
||||
critic_lr: 1e-4
|
||||
critic_weight_decay: 0
|
||||
critic_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 1e-4
|
||||
save_model_freq: 100000
|
||||
val_freq: 10000
|
||||
render:
|
||||
freq: 10000
|
||||
num: 0
|
||||
log_freq: 200
|
||||
# IBRL specific
|
||||
batch_size: 256
|
||||
target_ema_rate: 0.01
|
||||
scale_reward_factor: 1
|
||||
critic_num_update: 3
|
||||
buffer_size: 400000
|
||||
n_eval_episode: 40
|
||||
n_explore_steps: 0
|
||||
update_freq: 2
|
||||
|
||||
model:
|
||||
_target_: model.rl.gaussian_ibrl.IBRL_Gaussian
|
||||
randn_clip_value: 3
|
||||
n_critics: 5
|
||||
soft_action_sample: True
|
||||
soft_action_sample_beta: 10
|
||||
network_path: ${base_policy_path}
|
||||
actor:
|
||||
_target_: model.common.mlp_gaussian.Gaussian_MLP
|
||||
mlp_dims: [1024, 1024, 1024]
|
||||
activation_type: ReLU
|
||||
dropout: 0.5
|
||||
fixed_std: 0.1
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
mlp_dims: [1024, 1024, 1024]
|
||||
activation_type: ReLU
|
||||
use_layernorm: True
|
||||
double_q: False # use ensemble
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
action_dim: ${action_dim}
|
||||
action_steps: ${act_steps}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
offline_dataset:
|
||||
_target_: agent.dataset.sequence.StitchedSequenceQLearningDataset
|
||||
dataset_path: ${offline_dataset_path}
|
||||
horizon_steps: ${horizon_steps}
|
||||
cond_steps: ${cond_steps}
|
||||
device: ${device}
|
||||
max_n_episodes: 100
|
||||
@@ -0,0 +1,114 @@
|
||||
defaults:
|
||||
- _self_
|
||||
hydra:
|
||||
run:
|
||||
dir: ${logdir}
|
||||
_target_: agent.finetune.train_rlpd_agent.TrainRLPDAgent
|
||||
|
||||
name: ${env_name}_rlpd_mlp_ta${horizon_steps}
|
||||
logdir: ${oc.env:DPPO_LOG_DIR}/robomimic-finetune/${name}/${now:%Y-%m-%d}_${now:%H-%M-%S}_${seed}
|
||||
robomimic_env_cfg_path: cfg/robomimic/env_meta/${env_name}.json
|
||||
normalization_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/normalization.npz
|
||||
offline_dataset_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/train.npz
|
||||
|
||||
seed: 42
|
||||
device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
cond_steps: 1
|
||||
horizon_steps: 1
|
||||
act_steps: 1
|
||||
|
||||
env:
|
||||
n_envs: 1
|
||||
name: ${env_name}
|
||||
max_episode_steps: 400
|
||||
reset_at_iteration: False
|
||||
save_video: False
|
||||
best_reward_threshold_for_success: 1
|
||||
wrappers:
|
||||
robomimic_lowdim:
|
||||
normalization_path: ${normalization_path}
|
||||
low_dim_keys: ['robot0_eef_pos',
|
||||
'robot0_eef_quat',
|
||||
'robot0_gripper_qpos',
|
||||
'object'] # same order of preprocessed observations
|
||||
multi_step:
|
||||
n_obs_steps: ${cond_steps}
|
||||
n_action_steps: ${act_steps}
|
||||
max_episode_steps: ${env.max_episode_steps}
|
||||
reset_within_step: True
|
||||
|
||||
wandb:
|
||||
entity: ${oc.env:DPPO_WANDB_ENTITY}
|
||||
project: rlpd-${env_name}
|
||||
run: ${now:%H-%M-%S}_${name}
|
||||
|
||||
train:
|
||||
n_train_itr: 1000000
|
||||
n_steps: 1
|
||||
gamma: 0.99
|
||||
actor_lr: 1e-4
|
||||
actor_weight_decay: 0
|
||||
actor_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 1e-4
|
||||
critic_lr: 1e-4
|
||||
critic_weight_decay: 0
|
||||
critic_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 1e-4
|
||||
save_model_freq: 100000
|
||||
val_freq: 10000
|
||||
render:
|
||||
freq: 10000
|
||||
num: 0
|
||||
log_freq: 200
|
||||
# RLPD specific
|
||||
batch_size: 256
|
||||
target_ema_rate: 0.01
|
||||
scale_reward_factor: 1
|
||||
critic_num_update: 3
|
||||
buffer_size: 400000
|
||||
n_eval_episode: 40
|
||||
n_explore_steps: 0
|
||||
target_entropy: ${eval:'- ${action_dim} * ${act_steps}'}
|
||||
init_temperature: 1
|
||||
|
||||
model:
|
||||
_target_: model.rl.gaussian_rlpd.RLPD_Gaussian
|
||||
randn_clip_value: 10
|
||||
backup_entropy: True
|
||||
n_critics: 5
|
||||
tanh_output: True
|
||||
actor:
|
||||
_target_: model.common.mlp_gaussian.Gaussian_MLP
|
||||
mlp_dims: [512, 512, 512]
|
||||
activation_type: ReLU
|
||||
tanh_output: False # squash after sampling instead
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
|
||||
std_max: 7.3891
|
||||
std_min: 0.0067
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
mlp_dims: [256, 256, 256]
|
||||
activation_type: ReLU
|
||||
use_layernorm: True
|
||||
double_q: False # use ensemble
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
action_dim: ${action_dim}
|
||||
action_steps: ${act_steps}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
offline_dataset:
|
||||
_target_: agent.dataset.sequence.StitchedSequenceQLearningDataset
|
||||
dataset_path: ${offline_dataset_path}
|
||||
horizon_steps: ${horizon_steps}
|
||||
cond_steps: ${cond_steps}
|
||||
device: ${device}
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: transport
|
||||
obs_dim: 59
|
||||
action_dim: 14
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 8
|
||||
@@ -76,7 +75,7 @@ train:
|
||||
max_adv_weight: 100
|
||||
beta: 10
|
||||
buffer_size: 3000
|
||||
batch_size: 256
|
||||
batch_size: 1000
|
||||
replay_ratio: 64
|
||||
critic_update_ratio: 4
|
||||
|
||||
@@ -94,13 +93,13 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
mlp_dims: [256, 256, 256]
|
||||
activation_type: Mish
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: transport
|
||||
obs_dim: 59
|
||||
action_dim: 14
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 8
|
||||
@@ -73,11 +72,12 @@ train:
|
||||
num: 0
|
||||
# DIPO specific
|
||||
scale_reward_factor: 1
|
||||
eta: 0.0001
|
||||
target_ema_rate: 0.005
|
||||
buffer_size: 1000000
|
||||
action_lr: 0.0001
|
||||
action_gradient_steps: 10
|
||||
buffer_size: 400000
|
||||
batch_size: 5000
|
||||
replay_ratio: 64
|
||||
replay_ratio: 16
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_dipo.DIPODiffusion
|
||||
@@ -93,7 +93,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: transport
|
||||
obs_dim: 59
|
||||
action_dim: 14
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 8
|
||||
@@ -73,10 +72,11 @@ train:
|
||||
num: 0
|
||||
# DQL specific
|
||||
scale_reward_factor: 1
|
||||
target_ema_rate: 0.005
|
||||
buffer_size: 1000000
|
||||
eta: 1.0
|
||||
buffer_size: 400000
|
||||
batch_size: 5000
|
||||
replay_ratio: 64
|
||||
replay_ratio: 16
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_dql.DQLDiffusion
|
||||
@@ -92,7 +92,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: transport
|
||||
obs_dim: 59
|
||||
action_dim: 14
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 8
|
||||
@@ -77,9 +76,9 @@ train:
|
||||
eval_sample_num: 10 # how many samples to score during eval
|
||||
critic_tau: 0.001 # rate of target q network update
|
||||
use_expectile_exploration: True
|
||||
buffer_size: 3000
|
||||
batch_size: 512
|
||||
replay_ratio: 16
|
||||
buffer_size: 5000 # * n_envs
|
||||
replay_ratio: 128
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_idql.IDQLDiffusion
|
||||
@@ -95,7 +94,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic_q:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: transport
|
||||
obs_dim: 59
|
||||
action_dim: 14
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
ft_denoising_steps: 10
|
||||
cond_steps: 1
|
||||
@@ -100,7 +99,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: transport
|
||||
obs_dim: 18
|
||||
action_dim: 14
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 100
|
||||
ft_denoising_steps: 5
|
||||
cond_steps: 1
|
||||
@@ -145,7 +144,7 @@ model:
|
||||
img_cond_steps: ${img_cond_steps}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.ViTCritic
|
||||
spatial_emb: 128
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: transport
|
||||
obs_dim: 59
|
||||
action_dim: 14
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
ft_denoising_steps: 10
|
||||
cond_steps: 1
|
||||
@@ -103,7 +102,7 @@ model:
|
||||
smaller_encoder: False
|
||||
cond_predict_scale: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: transport
|
||||
obs_dim: 59
|
||||
action_dim: 14
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 8
|
||||
act_steps: 8
|
||||
@@ -94,7 +93,7 @@ model:
|
||||
std_max: 0.2
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: transport
|
||||
obs_dim: 18
|
||||
action_dim: 14
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
img_cond_steps: 1
|
||||
horizon_steps: 8
|
||||
@@ -127,7 +126,7 @@ model:
|
||||
img_cond_steps: ${img_cond_steps}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.ViTCritic
|
||||
spatial_emb: 128
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: transport
|
||||
obs_dim: 59
|
||||
action_dim: 14
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 8
|
||||
act_steps: 8
|
||||
@@ -95,7 +94,7 @@ model:
|
||||
std_max: 0.2
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: transport
|
||||
obs_dim: 59
|
||||
action_dim: 14
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 8
|
||||
act_steps: 8
|
||||
@@ -95,7 +94,7 @@ model:
|
||||
num_modes: ${num_modes}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: transport
|
||||
obs_dim: 59
|
||||
action_dim: 14
|
||||
transition_dim: ${action_dim}
|
||||
cond_steps: 1
|
||||
horizon_steps: 8
|
||||
act_steps: 8
|
||||
@@ -96,7 +95,7 @@ model:
|
||||
num_modes: ${num_modes}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObs
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: transport
|
||||
obs_dim: 59
|
||||
action_dim: 14
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 8
|
||||
@@ -73,11 +72,11 @@ train:
|
||||
num: 0
|
||||
# QSM specific
|
||||
scale_reward_factor: 1
|
||||
q_grad_coeff: 50
|
||||
q_grad_coeff: 10
|
||||
critic_tau: 0.005 # rate of target q network update
|
||||
buffer_size: 3000
|
||||
batch_size: 256
|
||||
replay_ratio: 32
|
||||
buffer_size: 5000 # * n_envs
|
||||
replay_ratio: 16
|
||||
batch_size: 1000
|
||||
|
||||
model:
|
||||
_target_: model.diffusion.diffusion_qsm.QSMDiffusion
|
||||
@@ -93,7 +92,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -16,7 +16,6 @@ device: cuda:0
|
||||
env_name: transport
|
||||
obs_dim: 59
|
||||
action_dim: 14
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
cond_steps: 1
|
||||
horizon_steps: 8
|
||||
@@ -85,7 +84,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
defaults:
|
||||
- _self_
|
||||
hydra:
|
||||
run:
|
||||
dir: ${logdir}
|
||||
_target_: agent.finetune.train_calql_agent.TrainCalQLAgent
|
||||
|
||||
name: ${env_name}_calql_mlp_ta${horizon_steps}
|
||||
logdir: ${oc.env:DPPO_LOG_DIR}/robomimic-pretrain/${name}/${now:%Y-%m-%d}_${now:%H-%M-%S}_${seed}
|
||||
robomimic_env_cfg_path: cfg/robomimic/env_meta/${env_name}.json
|
||||
normalization_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/normalization.npz
|
||||
offline_dataset_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/train.npz
|
||||
|
||||
seed: 42
|
||||
device: cuda:0
|
||||
env_name: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
cond_steps: 1
|
||||
horizon_steps: 1
|
||||
act_steps: 1
|
||||
|
||||
env:
|
||||
n_envs: 1
|
||||
name: ${env_name}
|
||||
best_reward_threshold_for_success: 1
|
||||
max_episode_steps: 300
|
||||
reset_at_iteration: False
|
||||
save_video: False
|
||||
wrappers:
|
||||
robomimic_lowdim:
|
||||
normalization_path: ${normalization_path}
|
||||
low_dim_keys: ['robot0_eef_pos',
|
||||
'robot0_eef_quat',
|
||||
'robot0_gripper_qpos',
|
||||
'object'] # same order of preprocessed observations
|
||||
multi_step:
|
||||
n_obs_steps: ${cond_steps}
|
||||
n_action_steps: ${act_steps}
|
||||
max_episode_steps: ${env.max_episode_steps}
|
||||
reset_within_step: True
|
||||
|
||||
wandb:
|
||||
entity: ${oc.env:DPPO_WANDB_ENTITY}
|
||||
project: calql-${env_name}
|
||||
run: ${now:%H-%M-%S}_${name}
|
||||
|
||||
train:
|
||||
n_train_itr: 100
|
||||
n_steps: 1
|
||||
gamma: 0.99
|
||||
actor_lr: 1e-4
|
||||
actor_weight_decay: 0
|
||||
actor_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 1e-4
|
||||
critic_lr: 3e-4
|
||||
critic_weight_decay: 0
|
||||
critic_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 3e-4
|
||||
save_model_freq: 10
|
||||
val_freq: 10
|
||||
render:
|
||||
freq: 1
|
||||
num: 0
|
||||
log_freq: 1
|
||||
# CalQL specific
|
||||
train_online: False
|
||||
batch_size: 256
|
||||
n_random_actions: 4
|
||||
target_ema_rate: 0.005
|
||||
scale_reward_factor: 1.0
|
||||
num_update: 1000
|
||||
buffer_size: 1000000
|
||||
n_eval_episode: 10
|
||||
n_explore_steps: 0
|
||||
target_entropy: ${eval:'- ${action_dim} * ${act_steps}'}
|
||||
init_temperature: 1
|
||||
automatic_entropy_tuning: True
|
||||
|
||||
model:
|
||||
_target_: model.rl.gaussian_calql.CalQL_Gaussian
|
||||
randn_clip_value: 3
|
||||
cql_min_q_weight: 5.0
|
||||
tanh_output: True
|
||||
actor:
|
||||
_target_: model.common.mlp_gaussian.Gaussian_MLP
|
||||
mlp_dims: [512, 512, 512]
|
||||
activation_type: ReLU
|
||||
tanh_output: False # squash after sampling instead
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
|
||||
std_max: 7.3891
|
||||
std_min: 0.0067
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
mlp_dims: [256, 256, 256]
|
||||
activation_type: ReLU
|
||||
use_layernorm: True
|
||||
double_q: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
action_dim: ${action_dim}
|
||||
action_steps: ${act_steps}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
offline_dataset:
|
||||
_target_: agent.dataset.sequence.StitchedSequenceQLearningDataset
|
||||
dataset_path: ${offline_dataset_path}
|
||||
horizon_steps: ${horizon_steps}
|
||||
cond_steps: ${cond_steps}
|
||||
device: ${device}
|
||||
discount_factor: ${train.gamma}
|
||||
get_mc_return: True
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
@@ -48,7 +47,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: can
|
||||
obs_dim: 9 # proprioception only
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 100
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
@@ -72,7 +71,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
@@ -51,7 +50,7 @@ model:
|
||||
smaller_encoder: False
|
||||
cond_predict_scale: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
|
||||
@@ -45,7 +44,7 @@ model:
|
||||
fixed_std: 0.1
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
defaults:
|
||||
- _self_
|
||||
hydra:
|
||||
run:
|
||||
dir: ${logdir}
|
||||
_target_: agent.pretrain.train_gaussian_agent.TrainGaussianAgent
|
||||
|
||||
name: ${env}_pre_gaussian_mlp_ta${horizon_steps}
|
||||
logdir: ${oc.env:DPPO_LOG_DIR}/robomimic-pretrain/${name}/${now:%Y-%m-%d}_${now:%H-%M-%S}_${seed}
|
||||
train_dataset_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env}/train.npz
|
||||
|
||||
seed: 42
|
||||
device: cuda:0
|
||||
env: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
horizon_steps: 1
|
||||
cond_steps: 1
|
||||
|
||||
wandb:
|
||||
entity: ${oc.env:DPPO_WANDB_ENTITY}
|
||||
project: robomimic-${env}-pretrain
|
||||
run: ${now:%H-%M-%S}_${name}
|
||||
|
||||
train:
|
||||
n_epochs: 5000
|
||||
batch_size: 256
|
||||
learning_rate: 1e-4
|
||||
weight_decay: 0
|
||||
lr_scheduler:
|
||||
first_cycle_steps: 5000
|
||||
warmup_steps: 100
|
||||
min_lr: 1e-4
|
||||
epoch_start_ema: 20
|
||||
update_ema_freq: 10
|
||||
save_model_freq: 1000
|
||||
|
||||
model:
|
||||
_target_: model.common.gaussian.GaussianModel
|
||||
network:
|
||||
_target_: model.common.mlp_gaussian.Gaussian_MLP
|
||||
mlp_dims: [1024, 1024, 1024]
|
||||
activation_type: ReLU
|
||||
dropout: 0.5
|
||||
fixed_std: 0.1
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
ema:
|
||||
decay: 0.995
|
||||
|
||||
train_dataset:
|
||||
_target_: agent.dataset.sequence.StitchedSequenceDataset
|
||||
dataset_path: ${train_dataset_path}
|
||||
horizon_steps: ${horizon_steps}
|
||||
cond_steps: ${cond_steps}
|
||||
device: ${device}
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: can
|
||||
obs_dim: 9 # proprioception only
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
img_cond_steps: 1
|
||||
@@ -69,7 +68,7 @@ model:
|
||||
img_cond_steps: ${img_cond_steps}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
|
||||
@@ -47,7 +46,7 @@ model:
|
||||
learn_fixed_std: False
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
num_modes: 5
|
||||
@@ -47,7 +46,7 @@ model:
|
||||
num_modes: ${num_modes}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: can
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
num_modes: 5
|
||||
@@ -49,7 +48,7 @@ model:
|
||||
num_modes: ${num_modes}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
@@ -48,7 +47,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: lift
|
||||
obs_dim: 9 # proprioception only
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 100
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
@@ -72,7 +71,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
@@ -50,7 +49,7 @@ model:
|
||||
n_groups: 8
|
||||
smaller_encoder: False
|
||||
cond_predict_scale: True
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
|
||||
@@ -45,7 +44,7 @@ model:
|
||||
fixed_std: 0.1
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
defaults:
|
||||
- _self_
|
||||
hydra:
|
||||
run:
|
||||
dir: ${logdir}
|
||||
_target_: agent.pretrain.train_gaussian_agent.TrainGaussianAgent
|
||||
|
||||
name: ${env}_pre_gaussian_mlp_ta${horizon_steps}
|
||||
logdir: ${oc.env:DPPO_LOG_DIR}/robomimic-pretrain/${name}/${now:%Y-%m-%d}_${now:%H-%M-%S}_${seed}
|
||||
train_dataset_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env}/train.npz
|
||||
|
||||
seed: 42
|
||||
device: cuda:0
|
||||
env: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
horizon_steps: 1
|
||||
cond_steps: 1
|
||||
|
||||
wandb:
|
||||
entity: ${oc.env:DPPO_WANDB_ENTITY}
|
||||
project: robomimic-${env}-pretrain
|
||||
run: ${now:%H-%M-%S}_${name}
|
||||
|
||||
train:
|
||||
n_epochs: 5000
|
||||
batch_size: 256
|
||||
learning_rate: 1e-4
|
||||
weight_decay: 1e-6
|
||||
lr_scheduler:
|
||||
first_cycle_steps: 5000
|
||||
warmup_steps: 100
|
||||
min_lr: 1e-5
|
||||
epoch_start_ema: 20
|
||||
update_ema_freq: 10
|
||||
save_model_freq: 1000
|
||||
|
||||
model:
|
||||
_target_: model.common.gaussian.GaussianModel
|
||||
network:
|
||||
_target_: model.common.mlp_gaussian.Gaussian_MLP
|
||||
mlp_dims: [1024, 1024, 1024]
|
||||
residual_style: False
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
ema:
|
||||
decay: 0.995
|
||||
|
||||
train_dataset:
|
||||
_target_: agent.dataset.sequence.StitchedSequenceDataset
|
||||
dataset_path: ${train_dataset_path}
|
||||
horizon_steps: ${horizon_steps}
|
||||
cond_steps: ${cond_steps}
|
||||
device: ${device}
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: lift
|
||||
obs_dim: 9 # proprioception only
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
img_cond_steps: 1
|
||||
@@ -69,7 +68,7 @@ model:
|
||||
img_cond_steps: ${img_cond_steps}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
|
||||
@@ -47,7 +46,7 @@ model:
|
||||
learn_fixed_std: False
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
num_modes: 5
|
||||
@@ -47,7 +46,7 @@ model:
|
||||
num_modes: ${num_modes}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: lift
|
||||
obs_dim: 19
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
num_modes: 5
|
||||
@@ -49,7 +48,7 @@ model:
|
||||
num_modes: ${num_modes}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
defaults:
|
||||
- _self_
|
||||
hydra:
|
||||
run:
|
||||
dir: ${logdir}
|
||||
_target_: agent.finetune.train_calql_agent.TrainCalQLAgent
|
||||
|
||||
name: ${env_name}_calql_mlp_ta${horizon_steps}
|
||||
logdir: ${oc.env:DPPO_LOG_DIR}/robomimic-pretrain/${name}/${now:%Y-%m-%d}_${now:%H-%M-%S}_${seed}
|
||||
robomimic_env_cfg_path: cfg/robomimic/env_meta/${env_name}.json
|
||||
normalization_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/normalization.npz
|
||||
offline_dataset_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env_name}/train.npz
|
||||
|
||||
seed: 42
|
||||
device: cuda:0
|
||||
env_name: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
cond_steps: 1
|
||||
horizon_steps: 1
|
||||
act_steps: 1
|
||||
|
||||
env:
|
||||
n_envs: 1
|
||||
name: ${env_name}
|
||||
best_reward_threshold_for_success: 1
|
||||
max_episode_steps: 400
|
||||
reset_at_iteration: False
|
||||
save_video: False
|
||||
wrappers:
|
||||
robomimic_lowdim:
|
||||
normalization_path: ${normalization_path}
|
||||
low_dim_keys: ['robot0_eef_pos',
|
||||
'robot0_eef_quat',
|
||||
'robot0_gripper_qpos',
|
||||
'object'] # same order of preprocessed observations
|
||||
multi_step:
|
||||
n_obs_steps: ${cond_steps}
|
||||
n_action_steps: ${act_steps}
|
||||
max_episode_steps: ${env.max_episode_steps}
|
||||
reset_within_step: True
|
||||
|
||||
wandb:
|
||||
entity: ${oc.env:DPPO_WANDB_ENTITY}
|
||||
project: calql-${env_name}
|
||||
run: ${now:%H-%M-%S}_${name}
|
||||
|
||||
train:
|
||||
n_train_itr: 100
|
||||
n_steps: 1
|
||||
gamma: 0.99
|
||||
actor_lr: 1e-4
|
||||
actor_weight_decay: 0
|
||||
actor_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 1e-4
|
||||
critic_lr: 3e-4
|
||||
critic_weight_decay: 0
|
||||
critic_lr_scheduler:
|
||||
first_cycle_steps: 1000
|
||||
warmup_steps: 10
|
||||
min_lr: 3e-4
|
||||
save_model_freq: 10
|
||||
val_freq: 10
|
||||
render:
|
||||
freq: 1
|
||||
num: 0
|
||||
log_freq: 1
|
||||
# CalQL specific
|
||||
train_online: False
|
||||
batch_size: 256
|
||||
n_random_actions: 4
|
||||
target_ema_rate: 0.005
|
||||
scale_reward_factor: 1.0
|
||||
num_update: 1000
|
||||
buffer_size: 1000000
|
||||
n_eval_episode: 10
|
||||
n_explore_steps: 0
|
||||
target_entropy: ${eval:'- ${action_dim} * ${act_steps}'}
|
||||
init_temperature: 1
|
||||
automatic_entropy_tuning: True
|
||||
|
||||
model:
|
||||
_target_: model.rl.gaussian_calql.CalQL_Gaussian
|
||||
randn_clip_value: 3
|
||||
cql_min_q_weight: 5.0
|
||||
tanh_output: True
|
||||
actor:
|
||||
_target_: model.common.mlp_gaussian.Gaussian_MLP
|
||||
mlp_dims: [512, 512, 512]
|
||||
activation_type: ReLU
|
||||
tanh_output: False # squash after sampling instead
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
|
||||
std_max: 7.3891
|
||||
std_min: 0.0067
|
||||
critic:
|
||||
_target_: model.common.critic.CriticObsAct
|
||||
mlp_dims: [256, 256, 256]
|
||||
activation_type: ReLU
|
||||
use_layernorm: True
|
||||
double_q: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
action_dim: ${action_dim}
|
||||
action_steps: ${act_steps}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
offline_dataset:
|
||||
_target_: agent.dataset.sequence.StitchedSequenceQLearningDataset
|
||||
dataset_path: ${offline_dataset_path}
|
||||
horizon_steps: ${horizon_steps}
|
||||
cond_steps: ${cond_steps}
|
||||
device: ${device}
|
||||
discount_factor: ${train.gamma}
|
||||
get_mc_return: True
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
@@ -49,7 +48,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: square
|
||||
obs_dim: 9 # proprioception only
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 100
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
@@ -72,7 +71,7 @@ model:
|
||||
img_cond_steps: ${img_cond_steps}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
@@ -51,7 +50,7 @@ model:
|
||||
smaller_encoder: False
|
||||
cond_predict_scale: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
|
||||
@@ -45,7 +44,7 @@ model:
|
||||
fixed_std: 0.1
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
defaults:
|
||||
- _self_
|
||||
hydra:
|
||||
run:
|
||||
dir: ${logdir}
|
||||
_target_: agent.pretrain.train_gaussian_agent.TrainGaussianAgent
|
||||
|
||||
name: ${env}_pre_gaussian_mlp_ta${horizon_steps}
|
||||
logdir: ${oc.env:DPPO_LOG_DIR}/robomimic-pretrain/${name}/${now:%Y-%m-%d}_${now:%H-%M-%S}_${seed}
|
||||
train_dataset_path: ${oc.env:DPPO_DATA_DIR}/robomimic/${env}/train.npz
|
||||
|
||||
seed: 42
|
||||
device: cuda:0
|
||||
env: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
horizon_steps: 1
|
||||
cond_steps: 1
|
||||
|
||||
wandb:
|
||||
entity: ${oc.env:DPPO_WANDB_ENTITY}
|
||||
project: robomimic-${env}-pretrain
|
||||
run: ${now:%H-%M-%S}_${name}
|
||||
|
||||
train:
|
||||
n_epochs: 5000
|
||||
batch_size: 256
|
||||
learning_rate: 1e-4
|
||||
weight_decay: 0
|
||||
lr_scheduler:
|
||||
first_cycle_steps: 5000
|
||||
warmup_steps: 100
|
||||
min_lr: 1e-4
|
||||
epoch_start_ema: 20
|
||||
update_ema_freq: 10
|
||||
save_model_freq: 1000
|
||||
|
||||
model:
|
||||
_target_: model.common.gaussian.GaussianModel
|
||||
network:
|
||||
_target_: model.common.mlp_gaussian.Gaussian_MLP
|
||||
mlp_dims: [1024, 1024, 1024]
|
||||
activation_type: ReLU
|
||||
dropout: 0.5
|
||||
fixed_std: 0.1
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
ema:
|
||||
decay: 0.995
|
||||
|
||||
train_dataset:
|
||||
_target_: agent.dataset.sequence.StitchedSequenceDataset
|
||||
dataset_path: ${train_dataset_path}
|
||||
horizon_steps: ${horizon_steps}
|
||||
cond_steps: ${cond_steps}
|
||||
device: ${device}
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: square
|
||||
obs_dim: 9 # proprioception only
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
img_cond_steps: 1
|
||||
@@ -69,7 +68,7 @@ model:
|
||||
img_cond_steps: ${img_cond_steps}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
|
||||
@@ -47,7 +46,7 @@ model:
|
||||
learn_fixed_std: False
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
num_modes: 5
|
||||
@@ -47,7 +46,7 @@ model:
|
||||
num_modes: ${num_modes}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: square
|
||||
obs_dim: 23
|
||||
action_dim: 7
|
||||
transition_dim: ${action_dim}
|
||||
horizon_steps: 4
|
||||
cond_steps: 1
|
||||
num_modes: 5
|
||||
@@ -49,7 +48,7 @@ model:
|
||||
num_modes: ${num_modes}
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
device: ${device}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ device: cuda:0
|
||||
env: transport
|
||||
obs_dim: 59
|
||||
action_dim: 14
|
||||
transition_dim: ${action_dim}
|
||||
denoising_steps: 20
|
||||
horizon_steps: 8
|
||||
cond_steps: 1
|
||||
@@ -48,7 +47,7 @@ model:
|
||||
residual_style: True
|
||||
cond_dim: ${eval:'${obs_dim} * ${cond_steps}'}
|
||||
horizon_steps: ${horizon_steps}
|
||||
transition_dim: ${transition_dim}
|
||||
action_dim: ${action_dim}
|
||||
horizon_steps: ${horizon_steps}
|
||||
obs_dim: ${obs_dim}
|
||||
action_dim: ${action_dim}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user