serialexperimentsleon commited on
Commit
f01853d
·
verified ·
1 Parent(s): 18a00c2

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +33 -0
  2. 0e7f0awm/.hydra/config.yaml +352 -0
  3. 0e7f0awm/.hydra/hydra.yaml +169 -0
  4. 0e7f0awm/.hydra/overrides.yaml +3 -0
  5. 0e7f0awm/episode_rosbags/aligned_depth_to_color_K.npy +3 -0
  6. 0e7f0awm/episode_rosbags/cam_tf_world.npy +3 -0
  7. 0e7f0awm/episode_rosbags/color_K.npy +3 -0
  8. 0e7f0awm/episode_rosbags/depth_K.npy +3 -0
  9. 0e7f0awm/episode_rosbags/episode_0_2025-01-21-21-25-37.rrd +3 -0
  10. 0e7f0awm/eval_robot.log +12 -0
  11. 0e7f0awm/eval_video/0_eval.mp4 +3 -0
  12. 0e7f0awm/eval_video/1_eval.mp4 +3 -0
  13. 0e7f0awm/eval_video/2_eval.mp4 +3 -0
  14. 0e7f0awm/eval_video/3_eval.mp4 +3 -0
  15. 0e7f0awm/eval_video/4_eval.mp4 +3 -0
  16. 0e7f0awm/tb/events.out.tfevents.1737512717.leonmkim-ROG-Strix-G15CS-G15CS.2650272.0 +3 -0
  17. 0e7f0awm/wandb/debug-internal.log +0 -0
  18. 0e7f0awm/wandb/debug.log +31 -0
  19. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/code/FISH/eval_robot.py +606 -0
  20. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/config.yaml +936 -0
  21. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/diff.patch +24 -0
  22. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/table/eval/success_rate_ci_5_d8821c50291f0fbf979f.table.json +1 -0
  23. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/table/eval/total_success_rate_ci_6_e3405f8336f17a4a59dd.table.json +1 -0
  24. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/videos/eval/0_eval_0_43ff0adeaa2aac56e705.mp4 +3 -0
  25. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/videos/eval/1_eval_1_6b41bcf0751cacefe8bb.mp4 +3 -0
  26. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/videos/eval/2_eval_2_ebcc91651af67cca62de.mp4 +3 -0
  27. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/videos/eval/3_eval_3_6c7d164a44f31be2687d.mp4 +3 -0
  28. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/videos/eval/4_eval_4_1dd664735f9b5c78730c.mp4 +3 -0
  29. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/output.log +264 -0
  30. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/requirements.txt +340 -0
  31. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/wandb-metadata.json +92 -0
  32. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/wandb-summary.json +1 -0
  33. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/logs/debug-internal.log +0 -0
  34. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/logs/debug.log +31 -0
  35. 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/run-0e7f0awm.wandb +0 -0
  36. 4lg2e533/.hydra/config.yaml +352 -0
  37. 4lg2e533/.hydra/hydra.yaml +169 -0
  38. 4lg2e533/.hydra/overrides.yaml +3 -0
  39. 4lg2e533/episode_rosbags/aligned_depth_to_color_K.npy +3 -0
  40. 4lg2e533/episode_rosbags/cam_tf_world.npy +3 -0
  41. 4lg2e533/episode_rosbags/color_K.npy +3 -0
  42. 4lg2e533/episode_rosbags/depth_K.npy +3 -0
  43. 4lg2e533/eval_robot.log +12 -0
  44. 4lg2e533/eval_video/0_eval.mp4 +3 -0
  45. 4lg2e533/eval_video/1_eval.mp4 +3 -0
  46. 4lg2e533/eval_video/2_eval.mp4 +3 -0
  47. 4lg2e533/eval_video/3_eval.mp4 +3 -0
  48. 4lg2e533/eval_video/4_eval.mp4 +3 -0
  49. 4lg2e533/tb/events.out.tfevents.1737514870.leonmkim-ROG-Strix-G15CS-G15CS.2659946.0 +3 -0
  50. 4lg2e533/wandb/debug-internal.log +0 -0
.gitattributes CHANGED
@@ -33,3 +33,36 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ zxwyz3xz/wandb/run-20250121_221640-zxwyz3xz/files/media/videos/eval/2_eval_2_f1e3df16fecb0ef689e4.mp4 filter=lfs diff=lfs merge=lfs -text
37
+ zxwyz3xz/wandb/run-20250121_221640-zxwyz3xz/files/media/videos/eval/3_eval_3_a8f87ed816b532325ab6.mp4 filter=lfs diff=lfs merge=lfs -text
38
+ zxwyz3xz/wandb/run-20250121_221640-zxwyz3xz/files/media/videos/eval/4_eval_4_63c7fb6457e58c00fb2c.mp4 filter=lfs diff=lfs merge=lfs -text
39
+ zxwyz3xz/wandb/run-20250121_221640-zxwyz3xz/files/media/videos/eval/1_eval_1_eac294d6ae1c852d4b2d.mp4 filter=lfs diff=lfs merge=lfs -text
40
+ zxwyz3xz/wandb/run-20250121_221640-zxwyz3xz/files/media/videos/eval/0_eval_0_54e7fe314d9c986a5f0c.mp4 filter=lfs diff=lfs merge=lfs -text
41
+ zxwyz3xz/eval_video/3_eval.mp4 filter=lfs diff=lfs merge=lfs -text
42
+ zxwyz3xz/eval_video/4_eval.mp4 filter=lfs diff=lfs merge=lfs -text
43
+ zxwyz3xz/eval_video/1_eval.mp4 filter=lfs diff=lfs merge=lfs -text
44
+ zxwyz3xz/eval_video/0_eval.mp4 filter=lfs diff=lfs merge=lfs -text
45
+ zxwyz3xz/eval_video/2_eval.mp4 filter=lfs diff=lfs merge=lfs -text
46
+ 4lg2e533/wandb/run-20250121_220110-4lg2e533/files/media/videos/eval/4_eval_4_ac7a1d089ff431aae59a.mp4 filter=lfs diff=lfs merge=lfs -text
47
+ 4lg2e533/wandb/run-20250121_220110-4lg2e533/files/media/videos/eval/2_eval_2_977e432fb56e9f58fb59.mp4 filter=lfs diff=lfs merge=lfs -text
48
+ 4lg2e533/wandb/run-20250121_220110-4lg2e533/files/media/videos/eval/1_eval_1_c351cf40eb1c20bd3656.mp4 filter=lfs diff=lfs merge=lfs -text
49
+ 4lg2e533/eval_video/0_eval.mp4 filter=lfs diff=lfs merge=lfs -text
50
+ 4lg2e533/eval_video/1_eval.mp4 filter=lfs diff=lfs merge=lfs -text
51
+ 4lg2e533/wandb/run-20250121_220110-4lg2e533/files/media/videos/eval/3_eval_3_d1e75bdfd0a4e32aff60.mp4 filter=lfs diff=lfs merge=lfs -text
52
+ 4lg2e533/eval_video/4_eval.mp4 filter=lfs diff=lfs merge=lfs -text
53
+ 4lg2e533/eval_video/3_eval.mp4 filter=lfs diff=lfs merge=lfs -text
54
+ 4lg2e533/wandb/run-20250121_220110-4lg2e533/files/media/videos/eval/0_eval_0_f0d20ac03e2b6a636fd4.mp4 filter=lfs diff=lfs merge=lfs -text
55
+ 4lg2e533/eval_video/2_eval.mp4 filter=lfs diff=lfs merge=lfs -text
56
+ 0e7f0awm/episode_rosbags/episode_0_2025-01-21-21-25-37.rrd filter=lfs diff=lfs merge=lfs -text
57
+ 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/videos/eval/0_eval_0_43ff0adeaa2aac56e705.mp4 filter=lfs diff=lfs merge=lfs -text
58
+ 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/videos/eval/1_eval_1_6b41bcf0751cacefe8bb.mp4 filter=lfs diff=lfs merge=lfs -text
59
+ 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/videos/eval/4_eval_4_1dd664735f9b5c78730c.mp4 filter=lfs diff=lfs merge=lfs -text
60
+ 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/videos/eval/2_eval_2_ebcc91651af67cca62de.mp4 filter=lfs diff=lfs merge=lfs -text
61
+ 0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/videos/eval/3_eval_3_6c7d164a44f31be2687d.mp4 filter=lfs diff=lfs merge=lfs -text
62
+ 0e7f0awm/eval_video/3_eval.mp4 filter=lfs diff=lfs merge=lfs -text
63
+ 0e7f0awm/eval_video/4_eval.mp4 filter=lfs diff=lfs merge=lfs -text
64
+ 0e7f0awm/eval_video/1_eval.mp4 filter=lfs diff=lfs merge=lfs -text
65
+ 0e7f0awm/eval_video/2_eval.mp4 filter=lfs diff=lfs merge=lfs -text
66
+ 0e7f0awm/eval_video/0_eval.mp4 filter=lfs diff=lfs merge=lfs -text
67
+ nf7i3zuf/episode_rosbags/episode_1_2025-01-21-21-46-18.bag filter=lfs diff=lfs merge=lfs -text
68
+ nf7i3zuf/episode_rosbags/episode_3_2025-01-21-21-47-59.bag filter=lfs diff=lfs merge=lfs -text
0e7f0awm/.hydra/config.yaml ADDED
@@ -0,0 +1,352 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ root_dir: /home/${oc.env:USER}/fish_leon
2
+ nstep: 3
3
+ seed: 41
4
+ dataset_shuffle_seed: ${seed}
5
+ device: cuda
6
+ save_video: true
7
+ save_buffer: true
8
+ use_tb: true
9
+ baseline: false
10
+ use_wandb: true
11
+ eval: true
12
+ process_contact_features: ${eval}
13
+ obs_type: pixels
14
+ use_color: true
15
+ use_depth: true
16
+ use_masks: false
17
+ mask_list:
18
+ - EE_obj_mask
19
+ mask_representation: channels
20
+ crop_hw:
21
+ - 144
22
+ - 144
23
+ crop_down_offset: 48
24
+ color_crop_type: null
25
+ depth_crop_type: null
26
+ segmask_crop_type: null
27
+ add_crop_binary_mask: false
28
+ add_coord_conv_map: false
29
+ use_context_color: false
30
+ use_context_depth: false
31
+ use_context_segmask: false
32
+ context_color_crop_type: null
33
+ context_depth_crop_type: null
34
+ context_segmask_crop_type: null
35
+ context_add_crop_binary_mask: false
36
+ context_add_coord_conv_map: false
37
+ use_contact_map: false
38
+ use_sdf_maps: false
39
+ use_normals_maps: false
40
+ which_objects: both
41
+ max_contact_prob: 0.1
42
+ max_depth: 2.0
43
+ grasped_dtc_max_value: 0.105
44
+ env_dtc_max_value: 0.425
45
+ grasped_normals_mask_max_dtc_value: 0.105
46
+ env_normals_mask_max_dtc_value: 0.425
47
+ clamp_dtc: true
48
+ dtc_adaptive_normalization: false
49
+ mask_normals_within_sdf: true
50
+ adaptive_normals_mask: true
51
+ learnable_contact_preprocess_params: false
52
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_ctxt_seed_183386_epoch_9
53
+ contact_estimation_model_ckpt_path: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
54
+ num_eval: 5
55
+ debug_timestamps: false
56
+ open_loop: false
57
+ action_trajectories: true
58
+ stop_after_action: false
59
+ interpolation_frequency: 25
60
+ policy_frequency: 5
61
+ wait_for_new_camera_frames: true
62
+ random_start: false
63
+ eval_starts: ${root_dir}/FISH/eval_starts/${suite.name}_${obs_type}/${task_name}
64
+ train_demo_idxs_list_or_num: null
65
+ num_valid_demos: null
66
+ val_num_groups: 3
67
+ name_of_expert_demo: 112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
68
+ expert_dataset_dirpath: ${root_dir}/FISH/expert_demos/${suite.name}/${task_name}/${name_of_expert_demo}
69
+ expert_dataset: ${expert_dataset_dirpath}/demos.zarr
70
+ action_key: ${oc.if_else:${action_trajectories}, 'action_trajectory_${interpolation_frequency}hz',
71
+ 'action'}
72
+ semantic_demo_grouping_name: semantic_demo_grouping.yaml
73
+ semantic_demo_grouping: ${expert_dataset_dirpath}/${semantic_demo_grouping_name}
74
+ expert_dataset_config: ${expert_dataset_dirpath}/demo_config.yaml
75
+ bc_regularize: false
76
+ bc_weight_type: qfilter
77
+ load_checkpoint: ${agent.load_checkpoint}
78
+ wandb_run_id: '4295_1'
79
+ true_action_history: false
80
+ wandb_notes: null
81
+ checkpoint_epoch: 7500
82
+ load_residual_weight: false
83
+ checkpoint_root_dir: /home/${oc.env:USER}/fish_leon/FISH
84
+ checkpoint_weight_dir: ${checkpoint_root_dir}/exp_local/${suite.name}_${obs_type}/${task_name}/${wandb_run_id}
85
+ residual_weight: ${root_dir}/FISH/weights/${suite.name}_${obs_type}/${task_name}/weight.pt
86
+ experiment_dir: ./exp_local/${suite.name}_${obs_type}/${task_name}/${wandb_run_id}
87
+ final_experiment_dir: ${experiment_dir}/${oc.generate_run_id:}
88
+ agent:
89
+ _target_: agent.diffusion_policy.DiffusionPolicyAgent
90
+ name: diffusion_policy
91
+ load_checkpoint: ${eval}
92
+ device: ${device}
93
+ n_obs_steps: ${.config.policy_cfg.n_obs_steps}
94
+ suite_name: ${suite.name}
95
+ obs_type: ${obs_type}
96
+ enable_arm: ${eval}
97
+ enable_camera: ${eval}
98
+ use_tb: ${use_tb}
99
+ desired_image_shape:
100
+ - 13
101
+ - 180
102
+ - 240
103
+ orig_cam_shape:
104
+ - 3
105
+ - 240
106
+ - 320
107
+ config:
108
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
109
+ compile: false
110
+ device: ${device}
111
+ cam_resize_shape: ${agent.desired_image_shape}
112
+ orig_cam_shape: ${agent.orig_cam_shape}
113
+ policy_frequency: ${policy_frequency}
114
+ interpolation_frequency: ${interpolation_frequency}
115
+ policy_cfg:
116
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
117
+ n_obs_steps: 1
118
+ horizon: 36
119
+ n_action_steps: ${agent.config.policy_cfg.horizon}
120
+ input_shapes:
121
+ observation.image: ${agent.config.cam_resize_shape}
122
+ context_observation.image: ${agent.config.cam_resize_shape}
123
+ observation.state:
124
+ - 8
125
+ observation.action_history:
126
+ - 7
127
+ output_shapes:
128
+ action:
129
+ - 7
130
+ input_normalization_modes:
131
+ observation.image: mean_std
132
+ observation.state: min_max
133
+ observation.action_history: min_max
134
+ output_normalization_modes:
135
+ action: min_max
136
+ vision_backbone: resnet18
137
+ crop_distractors_tlhw: null
138
+ pretrained_backbone_weights: null
139
+ transforms:
140
+ - _target_: torchaug.transforms.RandomAffine
141
+ degrees:
142
+ - -5
143
+ - 5
144
+ translate:
145
+ - 0.05
146
+ - 0.05
147
+ batch_transform: true
148
+ num_chunks: -1
149
+ batch_inplace: true
150
+ - _target_: torchaug.transforms.RandomColorJitter
151
+ brightness: 0.3
152
+ contrast: 0.4
153
+ saturation: 0.5
154
+ hue: 0.08
155
+ batch_transform: true
156
+ num_chunks: -1
157
+ batch_inplace: true
158
+ use_group_norm: true
159
+ spatial_softmax_num_keypoints: 32
160
+ action_history_encoder_config:
161
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
162
+ in_channels: 7
163
+ out_channels: 32
164
+ history_length: ${agent.config.policy_cfg.n_action_steps}
165
+ kernel_size: ${agent.config.policy_cfg.kernel_size}
166
+ downsample_kernel_size: 3
167
+ downsample_stride: 2
168
+ downsample_padding: 1
169
+ down_dims:
170
+ - 256
171
+ - 512
172
+ - 1024
173
+ kernel_size: 5
174
+ n_groups: 8
175
+ diffusion_step_embed_dim: 128
176
+ use_film_scale_modulation: true
177
+ noise_scheduler_type: DDIM
178
+ beta_schedule: squaredcos_cap_v2
179
+ beta_start: 0.0001
180
+ beta_end: 0.02
181
+ prediction_type: epsilon
182
+ clip_sample: true
183
+ clip_sample_range: 1.0
184
+ num_train_timesteps: 50
185
+ num_inference_steps: 10
186
+ do_mask_loss_for_padding: false
187
+ train_cfg:
188
+ _target_: utils.TrainConfig
189
+ lr: 0.0001
190
+ lr_scheduler: cosine
191
+ lr_warmup_steps: 500
192
+ adam_betas:
193
+ - 0.95
194
+ - 0.999
195
+ adam_eps: 1.0e-08
196
+ adam_weight_decay: 1.0e-06
197
+ grad_clip_norm: 10
198
+ offline_steps: ${num_train_frames_diffusion}
199
+ use_amp: true
200
+ observation_cfg:
201
+ _target_: agent.encoder.VisualFeatureSet
202
+ use_depth: ${use_depth}
203
+ use_color: ${use_color}
204
+ mask_input_dict:
205
+ _target_: agent.encoder.MaskInputDict
206
+ enable: ${use_masks}
207
+ representation: ${mask_representation}
208
+ mask_list: ${mask_list}
209
+ crop_input_config:
210
+ _target_: agent.encoder.CropInputConfig
211
+ color_crop_type: ${color_crop_type}
212
+ depth_crop_type: ${depth_crop_type}
213
+ segmask_crop_type: ${segmask_crop_type}
214
+ crop_hw: ${crop_hw}
215
+ crop_down_offset: ${crop_down_offset}
216
+ add_crop_binary_mask: ${add_crop_binary_mask}
217
+ add_coord_conv_map: ${add_coord_conv_map}
218
+ context_input_config:
219
+ _target_: agent.encoder.ContextInputConfig
220
+ use_color: ${use_context_color}
221
+ use_depth: ${use_context_depth}
222
+ mask_input_dict:
223
+ _target_: agent.encoder.MaskInputDict
224
+ enable: ${use_context_segmask}
225
+ representation: ${mask_representation}
226
+ mask_list: ${mask_list}
227
+ crop_input_config:
228
+ _target_: agent.encoder.CropInputConfig
229
+ color_crop_type: ${context_color_crop_type}
230
+ depth_crop_type: ${context_depth_crop_type}
231
+ segmask_crop_type: ${context_segmask_crop_type}
232
+ crop_hw: ${crop_hw}
233
+ crop_down_offset: ${crop_down_offset}
234
+ add_crop_binary_mask: ${context_add_crop_binary_mask}
235
+ add_coord_conv_map: ${context_add_coord_conv_map}
236
+ mask_soft_approx_scheduler_config:
237
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
238
+ num_steps: 40000
239
+ initial_value: 10.0
240
+ final_value: 1000.0
241
+ interpolation_scheme: constant
242
+ use_contact_map: ${use_contact_map}
243
+ use_sdf_maps: ${use_sdf_maps}
244
+ use_normals_maps: ${use_normals_maps}
245
+ which_objects: ${which_objects}
246
+ grasped_dtc_max_value: ${grasped_dtc_max_value}
247
+ env_dtc_max_value: ${env_dtc_max_value}
248
+ grasped_normals_mask_max_dtc_value: ${grasped_normals_mask_max_dtc_value}
249
+ env_normals_mask_max_dtc_value: ${env_normals_mask_max_dtc_value}
250
+ clamp_dtc: ${clamp_dtc}
251
+ max_contact_prob: ${max_contact_prob}
252
+ mask_normals_within_sdf: ${mask_normals_within_sdf}
253
+ dtc_adaptive_normalization: ${dtc_adaptive_normalization}
254
+ adaptive_normals_mask: ${adaptive_normals_mask}
255
+ max_depth: ${max_depth}
256
+ image_shape: ${agent.desired_image_shape}
257
+ learnable_contact_preprocess_params: ${learnable_contact_preprocess_params}
258
+ learning_rate: ${agent.config.train_cfg.lr}
259
+ weight_decay: 0.0
260
+ contact_model_name: ${contact_model_name}
261
+ zero_centered: false
262
+ crop_distractors_tlhw: ${agent.config.policy_cfg.crop_distractors_tlhw}
263
+ suite:
264
+ suite: frankagym
265
+ name: frankagym
266
+ frame_stack: ${agent.n_obs_steps}
267
+ action_repeat: 1
268
+ discount: 0.99
269
+ hidden_dim: 1024
270
+ num_train_frames: 2010
271
+ num_seed_frames: 260
272
+ num_train_epochs: 5000
273
+ validate_every_epochs: 100
274
+ validate_diffusion_on_action_loss_every_epochs: 500
275
+ train_eval_diffusion_on_action_loss_every_epochs: 500
276
+ check_topk_every_epochs: 10
277
+ save_snapshot_every_epochs: 5000
278
+ eval_every_frames: 2000
279
+ num_eval_episodes: 5
280
+ save_snapshot: true
281
+ wait_for_user_to_start_episode: true
282
+ task_make_fn:
283
+ _target_: suite.frankagym.make
284
+ name: ${task_name}
285
+ height: 240
286
+ width: 320
287
+ frame_stack: ${suite.frame_stack}
288
+ action_repeat: ${suite.action_repeat}
289
+ seed: ${seed}
290
+ enable_arm: ${agent.enable_arm}
291
+ enable_gripper: ${enable_gripper}
292
+ start_with_gripper_open: ${start_with_gripper_open}
293
+ enable_camera: ${agent.enable_camera}
294
+ path_to_depth_extrinsics: ${path_to_depth_extrinsics}
295
+ contact_estimation_model_ckpt_path: ${contact_estimation_model_ckpt_path}
296
+ x_limit: ${x_limit}
297
+ y_limit: ${y_limit}
298
+ z_limit: ${z_limit}
299
+ device: ${device}
300
+ interpolation_frequency: ${interpolation_frequency}
301
+ policy_frequency: ${policy_frequency}
302
+ debug_timestamps: ${debug_timestamps}
303
+ stop_after_action: ${stop_after_action}
304
+ open_loop: ${open_loop}
305
+ wait_for_new_camera_frames: ${wait_for_new_camera_frames}
306
+ action_key: ${action_key}
307
+ action_trajectory_horizon: ${agent.config.policy_cfg.horizon}
308
+ action_trajectories: ${action_trajectories}
309
+ path_to_zarr_dataset: ${expert_dataset}
310
+ agent_policy_cfg: ???
311
+ true_action_history: ${true_action_history}
312
+ num_train_frames_bc: 50000
313
+ num_train_frames_drq: 1100000
314
+ stddev_schedule_drq: linear(1.0,0.1,100000)
315
+ task_name: FrankaInsertion-v1
316
+ num_train_frames_vinn: 25000
317
+ num_train_frames_diffusion: 1000000
318
+ num_train_epochs_bc: 5000
319
+ num_train_epochs_diffusion: 5000
320
+ validate_every_epochs_bc: 5
321
+ validate_every_epochs_diffusion: 25
322
+ validate_diffusion_on_action_loss_every_epochs: 50
323
+ train_eval_diffusion_on_action_loss_every_epochs: 500
324
+ check_topk_every_epochs: 5
325
+ check_topk_every_epochs_diffusion: ${validate_diffusion_on_action_loss_every_epochs}
326
+ save_snapshot_every_epochs_diffusion: 5000
327
+ x_limit:
328
+ - 0.2
329
+ - 0.7
330
+ y_limit:
331
+ - -0.4
332
+ - 0.4
333
+ z_limit:
334
+ - -0.05
335
+ - 0.55
336
+ home_displacement:
337
+ - 0.55
338
+ - 0.0
339
+ - 0.55
340
+ - 180.0
341
+ - 0.0
342
+ - 0.0
343
+ enable_gripper: true
344
+ start_with_gripper_open: true
345
+ offset_mask:
346
+ - 1
347
+ - 1
348
+ - 1
349
+ - 1
350
+ - 1
351
+ - 1
352
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
0e7f0awm/.hydra/hydra.yaml ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: ${final_experiment_dir}
4
+ sweep:
5
+ dir: ${final_experiment_dir}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ submitit_folder: ${final_experiment_dir}/.slurm
9
+ timeout_min: 60
10
+ cpus_per_task: null
11
+ gpus_per_node: null
12
+ tasks_per_node: 1
13
+ mem_gb: null
14
+ nodes: 1
15
+ name: ${hydra.job.name}
16
+ stderr_to_stdout: false
17
+ _target_: hydra_plugins.hydra_submitit_launcher.submitit_launcher.LocalLauncher
18
+ sweeper:
19
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
20
+ max_batch_size: null
21
+ params: null
22
+ help:
23
+ app_name: ${hydra.job.name}
24
+ header: '${hydra.help.app_name} is powered by Hydra.
25
+
26
+ '
27
+ footer: 'Powered by Hydra (https://hydra.cc)
28
+
29
+ Use --hydra-help to view Hydra specific help
30
+
31
+ '
32
+ template: '${hydra.help.header}
33
+
34
+ == Configuration groups ==
35
+
36
+ Compose your configuration from those groups (group=option)
37
+
38
+
39
+ $APP_CONFIG_GROUPS
40
+
41
+
42
+ == Config ==
43
+
44
+ Override anything in the config (foo.bar=value)
45
+
46
+
47
+ $CONFIG
48
+
49
+
50
+ ${hydra.help.footer}
51
+
52
+ '
53
+ hydra_help:
54
+ template: 'Hydra (${hydra.runtime.version})
55
+
56
+ See https://hydra.cc for more info.
57
+
58
+
59
+ == Flags ==
60
+
61
+ $FLAGS_HELP
62
+
63
+
64
+ == Configuration groups ==
65
+
66
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
67
+ to command line)
68
+
69
+
70
+ $HYDRA_CONFIG_GROUPS
71
+
72
+
73
+ Use ''--cfg hydra'' to Show the Hydra config.
74
+
75
+ '
76
+ hydra_help: ???
77
+ hydra_logging:
78
+ version: 1
79
+ formatters:
80
+ simple:
81
+ format: '[%(asctime)s][HYDRA] %(message)s'
82
+ handlers:
83
+ console:
84
+ class: logging.StreamHandler
85
+ formatter: simple
86
+ stream: ext://sys.stdout
87
+ root:
88
+ level: INFO
89
+ handlers:
90
+ - console
91
+ loggers:
92
+ logging_example:
93
+ level: DEBUG
94
+ disable_existing_loggers: false
95
+ job_logging:
96
+ version: 1
97
+ formatters:
98
+ simple:
99
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
100
+ handlers:
101
+ console:
102
+ class: logging.StreamHandler
103
+ formatter: simple
104
+ stream: ext://sys.stdout
105
+ file:
106
+ class: logging.FileHandler
107
+ formatter: simple
108
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
109
+ root:
110
+ level: INFO
111
+ handlers:
112
+ - console
113
+ - file
114
+ disable_existing_loggers: false
115
+ env: {}
116
+ mode: RUN
117
+ searchpath: []
118
+ callbacks: {}
119
+ output_subdir: .hydra
120
+ overrides:
121
+ hydra:
122
+ - hydra.mode=RUN
123
+ task:
124
+ - agent=diffusion
125
+ - suite=frankagym
126
+ - suite/frankagym_task@_global_=insertion
127
+ job:
128
+ name: eval_robot
129
+ chdir: true
130
+ override_dirname: agent=diffusion,suite/frankagym_task@_global_=insertion,suite=frankagym
131
+ id: ???
132
+ num: ???
133
+ config_name: config_eval
134
+ env_set: {}
135
+ env_copy: []
136
+ config:
137
+ override_dirname:
138
+ kv_sep: '='
139
+ item_sep: ','
140
+ exclude_keys: []
141
+ runtime:
142
+ version: 1.3.2
143
+ version_base: '1.1'
144
+ cwd: /home/leonmkim/fish_leon/FISH
145
+ config_sources:
146
+ - path: hydra.conf
147
+ schema: pkg
148
+ provider: hydra
149
+ - path: /home/leonmkim/fish_leon/FISH/cfgs
150
+ schema: file
151
+ provider: main
152
+ - path: ''
153
+ schema: structured
154
+ provider: schema
155
+ output_dir: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm
156
+ choices:
157
+ suite: frankagym
158
+ suite/frankagym_task@_global_: insertion
159
+ agent: diffusion
160
+ hydra/env: default
161
+ hydra/callbacks: null
162
+ hydra/job_logging: default
163
+ hydra/hydra_logging: default
164
+ hydra/hydra_help: default
165
+ hydra/help: default
166
+ hydra/sweeper: basic
167
+ hydra/launcher: submitit_local
168
+ hydra/output: default
169
+ verbose: false
0e7f0awm/.hydra/overrides.yaml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ - agent=diffusion
2
+ - suite=frankagym
3
+ - suite/frankagym_task@_global_=insertion
0e7f0awm/episode_rosbags/aligned_depth_to_color_K.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4a962c703d20da282f5e009d432dff51df4ebd22f3386699b6754ea9cfc06a55
3
+ size 200
0e7f0awm/episode_rosbags/cam_tf_world.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:29313ba240dd65ebbc79056d5582a97c9586cf2a1d4a1e0db13b87b49152cc9e
3
+ size 256
0e7f0awm/episode_rosbags/color_K.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4a962c703d20da282f5e009d432dff51df4ebd22f3386699b6754ea9cfc06a55
3
+ size 200
0e7f0awm/episode_rosbags/depth_K.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cc601d2fecd31c5513c76a88b5d4d8059adc1f92dad682e2d755d89a66d8fdf7
3
+ size 200
0e7f0awm/episode_rosbags/episode_0_2025-01-21-21-25-37.rrd ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e72fab3d70c05b41b6188559b2186d2b32707b2f0078dfd62ced3c31cb47ed0e
3
+ size 272322799
0e7f0awm/eval_robot.log ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [2025-01-21 21:25:11,086][py.warnings][WARNING] - /home/leonmkim/fish_leon/FISH/eval_robot.py:597: UserWarning:
2
+ The version_base parameter is not specified.
3
+ Please specify a compatability version level, or None.
4
+ Will assume defaults for version 1.1
5
+ @hydra.main(config_path='cfgs', config_name='config_eval')
6
+
7
+ [2025-01-21 21:25:11,088][py.warnings][WARNING] - /home/leonmkim/fish_leon/FISH/eval_robot.py:533: UserWarning:
8
+ The version_base parameter is not specified.
9
+ Please specify a compatability version level, or None.
10
+ Will assume defaults for version 1.1
11
+ hydra.initialize(
12
+
0e7f0awm/eval_video/0_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:43ff0adeaa2aac56e705ffe46113ad0ea61aecc3b467f045c11c40cac3fc026e
3
+ size 1497303
0e7f0awm/eval_video/1_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6b41bcf0751cacefe8bb11ec7af9ed5e5a069aa9e2900ac19b43d8ad540a4e4e
3
+ size 1533229
0e7f0awm/eval_video/2_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ebcc91651af67cca62de31104a2a79dbb6f62a076e08fa6d01ca662c3bdf77a2
3
+ size 1542126
0e7f0awm/eval_video/3_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6c7d164a44f31be2687d000530560b70a01353d005e918556e3a5e5ea9972a78
3
+ size 1578241
0e7f0awm/eval_video/4_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1dd664735f9b5c78730cb288e5b87cf1102ace7673ed83e702aab87668bca5ce
3
+ size 1549753
0e7f0awm/tb/events.out.tfevents.1737512717.leonmkim-ROG-Strix-G15CS-G15CS.2650272.0 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:32882a134dc757183a4815ff18174a23fe20c2892137a24cf79d686ceee1ca08
3
+ size 6539
0e7f0awm/wandb/debug-internal.log ADDED
The diff for this file is too large to render. See raw diff
 
0e7f0awm/wandb/debug.log ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Current SDK version is 0.17.5
2
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Configure stats pid to 2650272
3
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/.config/wandb/settings
4
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm/wandb/settings
5
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Loading settings from environment variables: {}
6
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Applying setup settings: {'_disable_service': False}
7
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Inferring run settings from compute environment: {'program_relpath': 'FISH/eval_robot.py', 'program_abspath': '/home/leonmkim/fish_leon/FISH/eval_robot.py', 'program': '/home/leonmkim/fish_leon/FISH/eval_robot.py'}
8
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Applying login settings: {}
9
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_init.py:_log_setup():529] Logging user logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm/wandb/run-20250121_212516-0e7f0awm/logs/debug.log
10
+ 2025-01-21 21:25:16,835 INFO MainThread:2650272 [wandb_init.py:_log_setup():530] Logging internal logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm/wandb/run-20250121_212516-0e7f0awm/logs/debug-internal.log
11
+ 2025-01-21 21:25:16,835 INFO MainThread:2650272 [wandb_init.py:init():569] calling init triggers
12
+ 2025-01-21 21:25:16,835 INFO MainThread:2650272 [wandb_init.py:init():576] wandb.init called with sweep_config: {}
13
+ config: {'root_dir': '/home/leonmkim/fish_leon', 'replay_buffer_size': 150000, 'replay_buffer_num_workers': 2, 'nstep': 3, 'batch_size': 128, 'seed': 1, 'dataset_shuffle_seed': 0, 'device': 'cuda', 'save_video': True, 'save_train_video': True, 'use_tb': True, 'use_wandb': True, 'wandb_run_id': '4295_1', 'wandb_notes': '4295_1_restarted_1', 'eval': True, 'true_action_history': False, 'train_pad_after': 4, 'process_contact_features': True, 'obs_type': 'pixels', 'use_color': False, 'use_depth': True, 'use_masks': True, 'mask_list': ['EE_obj_mask'], 'mask_representation': 'channels', 'crop_hw': [144, 144], 'crop_down_offset': 48, 'color_crop_type': None, 'depth_crop_type': None, 'segmask_crop_type': None, 'add_crop_binary_mask': False, 'add_coord_conv_map': False, 'use_context_color': False, 'use_context_depth': False, 'use_context_segmask': False, 'context_color_crop_type': None, 'context_depth_crop_type': None, 'context_segmask_crop_type': None, 'context_add_crop_binary_mask': False, 'context_add_coord_conv_map': False, 'use_contact_map': True, 'use_sdf_maps': True, 'use_normals_maps': True, 'which_objects': 'both', 'max_contact_prob': 0.1, 'max_depth': 2.0, 'grasped_dtc_max_value': 0.2, 'env_dtc_max_value': 0.4, 'grasped_normals_mask_max_dtc_value': 0.2, 'env_normals_mask_max_dtc_value': 0.4, 'clamp_dtc': True, 'dtc_adaptive_normalization': False, 'mask_normals_within_sdf': True, 'adaptive_normals_mask': True, 'learnable_contact_preprocess_params': True, 'contact_model_name': 'local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9', 'contact_estimation_model_ckpt_path': '~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt', 'encoder_type': 'small', 'debug_timestamps': False, 'open_loop': False, 'action_trajectories': True, 'stop_after_action': False, 'interpolation_frequency': 25, 'policy_frequency': 5, 'wait_for_new_camera_frames': True, 'baseline': False, 'train_demo_idxs_list_or_num': -1, 'log_train_every_steps': 25, 'name_of_expert_demo': '120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'expert_dataset_dirpath': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'store_dataset_in_memory': False, 'expert_dataset': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'action_key': 'action_trajectory_25hz', 'semantic_demo_grouping_name': 'semantic_demo_grouping.yaml', 'semantic_demo_grouping': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml', 'include_groups_list': 'all', 'expert_dataset_config': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demo_config.yaml', 'name_of_valid_demo': '120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'valid_dataset_dir': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'valid_demo_idxs_list_or_num': None, 'val_num_groups': 7, 'load_bc': True, 'checkpoint_epoch_list': [99, 199, 299, 399, 499, 599, 699, 799, 899, 999, 1249, 1499, 1749, 1999, 2999, 3999, 4999, 5999, 6999, 7999, 8999, 9999], 'snapshot_root_dir': '/mnt/grasp_high_usage/leonmkim/contact_estimation/FISH', 'save_snapshot': True, 'save_last_snapshot': True, 'save_snapshot_when_done': True, 'top_k_checkpoints': 5, 'save_snapshot_link_to_weights_dir': 'deprecated', 'restore_missing_checkpoint': None, 'bc_regularize': False, 'bc_weight_type': 'qfilter', 'experiment_dir': './exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1', 'agent': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgent', 'name': 'diffusion_policy', 'load_checkpoint': True, 'device': 'cuda', 'n_obs_steps': 1, 'suite_name': 'frankagym', 'obs_type': 'pixels', 'enable_arm': True, 'enable_camera': True, 'use_tb': True, 'desired_image_shape': [13, 180, 240], 'orig_cam_shape': [3, 240, 320], 'config': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgentConfig', 'compile': False, 'device': 'cuda', 'cam_resize_shape': [13, 180, 240], 'orig_cam_shape': [3, 240, 320], 'policy_frequency': 5, 'interpolation_frequency': 25, 'policy_cfg': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig', 'n_obs_steps': 1, 'horizon': 36, 'n_action_steps': 36, 'output_shapes': {'action': [7]}, 'input_normalization_modes': {'observation.image': 'mean_std', 'observation.state': 'min_max', 'observation.action_history': 'min_max'}, 'output_normalization_modes': {'action': 'min_max'}, 'vision_backbone': 'resnet18', 'crop_distractors_tlhw': [32, 68, 174, 174], 'pretrained_backbone_weights': None, 'transforms': [{'_target_': 'torchaug.transforms.RandomAffine', 'degrees': [-5, 5], 'translate': [0.05, 0.05], 'batch_transform': True, 'num_chunks': -1, 'batch_inplace': True}, {'_target_': 'torchaug.transforms.RandomColorJitter', 'brightness': 0.3, 'contrast': 0.4, 'saturation': 0.5, 'hue': 0.08, 'batch_transform': True, 'num_chunks': -1, 'batch_inplace': True}], 'use_group_norm': True, 'spatial_softmax_num_keypoints': 32, 'action_history_encoder_config': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig', 'in_channels': 7, 'out_channels': 32, 'history_length': 6, 'kernel_size': 5, 'downsample_kernel_size': 3, 'downsample_stride': 2, 'downsample_padding': 1}, 'down_dims': [256, 512, 1024], 'kernel_size': 5, 'n_groups': 8, 'diffusion_step_embed_dim': 128, 'use_film_scale_modulation': True, 'noise_scheduler_type': 'DDIM', 'beta_schedule': 'squaredcos_cap_v2', 'beta_start': 0.0001, 'beta_end': 0.02, 'prediction_type': 'epsilon', 'clip_sample': True, 'clip_sample_range': 1.0, 'num_train_timesteps': 50, 'num_inference_steps': 10, 'do_mask_loss_for_padding': False, 'input_shapes': {'observation.image': [13, 180, 240], 'context_observation.image': [13, 180, 240], 'observation.state': [8], 'observation.action_history': [7]}}, 'train_cfg': {'_target_': 'utils.TrainConfig', 'lr': 0.0001, 'lr_scheduler': 'cosine', 'lr_warmup_steps': 500, 'adam_betas': [0.95, 0.999], 'adam_eps': 1e-08, 'adam_weight_decay': 1e-06, 'grad_clip_norm': 10, 'offline_steps': 1000000, 'use_amp': True}, 'observation_cfg': {'_target_': 'agent.encoder.VisualFeatureSet', 'use_depth': True, 'use_color': False, 'mask_input_dict': {'_target_': 'agent.encoder.MaskInputDict', 'enable': True, 'representation': 'channels', 'mask_list': ['EE_obj_mask']}, 'crop_input_config': {'_target_': 'agent.encoder.CropInputConfig', 'color_crop_type': None, 'depth_crop_type': None, 'segmask_crop_type': None, 'crop_hw': [144, 144], 'crop_down_offset': 48, 'add_crop_binary_mask': False, 'add_coord_conv_map': False}, 'context_input_config': {'_target_': 'agent.encoder.ContextInputConfig', 'use_color': False, 'use_depth': False, 'mask_input_dict': {'_target_': 'agent.encoder.MaskInputDict', 'enable': False, 'representation': 'channels', 'mask_list': ['EE_obj_mask']}, 'crop_input_config': {'_target_': 'agent.encoder.CropInputConfig', 'color_crop_type': None, 'depth_crop_type': None, 'segmask_crop_type': None, 'crop_hw': [144, 144], 'crop_down_offset': 48, 'add_crop_binary_mask': False, 'add_coord_conv_map': False}}, 'mask_soft_approx_scheduler_config': {'_target_': 'agent.encoder.MaskSoftApproxSchedulerConfig', 'num_steps': 40000, 'initial_value': 10.0, 'final_value': 1000.0, 'interpolation_scheme': 'cosine'}, 'use_contact_map': True, 'use_sdf_maps': True, 'use_normals_maps': True, 'which_objects': 'both', 'grasped_dtc_max_value': 0.2, 'env_dtc_max_value': 0.4, 'grasped_normals_mask_max_dtc_value': 0.2, 'env_normals_mask_max_dtc_value': 0.4, 'clamp_dtc': True, 'max_contact_prob': 0.1, 'mask_normals_within_sdf': True, 'dtc_adaptive_normalization': False, 'adaptive_normals_mask': True, 'max_depth': 2.0, 'image_shape': [13, 180, 240], 'learnable_contact_preprocess_params': True, 'learning_rate': 0.0001, 'weight_decay': 0.0, 'contact_model_name': 'local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9', 'zero_centered': False, 'crop_distractors_tlhw': [32, 68, 174, 174]}}}, 'suite': {'suite': 'frankagym', 'name': 'frankagym', 'frame_stack': 1, 'action_repeat': 1, 'discount': 0.99, 'hidden_dim': 1024, 'num_train_frames': 2010, 'num_seed_frames': 260, 'num_train_epochs': 5000, 'validate_every_epochs': 100, 'validate_diffusion_on_action_loss_every_epochs': 500, 'train_eval_diffusion_on_action_loss_every_epochs': 500, 'check_topk_every_epochs': 10, 'save_snapshot_every_epochs': 5000, 'eval_every_frames': 2000, 'num_eval_episodes': 5, 'save_snapshot': True, 'wait_for_user_to_start_episode': True, 'task_make_fn': {'_target_': 'suite.frankagym.make', 'name': 'FrankaInsertion-v1', 'height': 240, 'width': 320, 'frame_stack': 1, 'action_repeat': 1, 'seed': 1, 'enable_arm': True, 'enable_gripper': True, 'start_with_gripper_open': True, 'enable_camera': True, 'path_to_depth_extrinsics': '~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy', 'contact_estimation_model_ckpt_path': '~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt', 'x_limit': [0.2, 0.7], 'y_limit': [-0.4, 0.4], 'z_limit': [-0.05, 0.55], 'device': 'cuda', 'interpolation_frequency': 25, 'policy_frequency': 5, 'debug_timestamps': False, 'stop_after_action': False, 'open_loop': False, 'wait_for_new_camera_frames': True, 'action_key': 'action_trajectory_25hz', 'action_trajectory_horizon': 36, 'action_trajectories': True, 'path_to_zarr_dataset': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'agent_policy_cfg': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgentConfig', 'compile': False, 'device': 'cuda', 'cam_resize_shape': [13, 180, 240], 'orig_cam_shape': [3, 240, 320], 'policy_frequency': 5, 'interpolation_frequency': 25, 'policy_cfg': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig', 'n_obs_steps': 1, 'horizon': 36, 'n_action_steps': 36, 'output_shapes': {'action': [7]}, 'input_normalization_modes': {'observation.image': 'mean_std', 'observation.state': 'min_max', 'observation.action_history': 'min_max'}, 'output_normalization_modes': {'action': 'min_max'}, 'vision_backbone': 'resnet18', 'crop_distractors_tlhw': [32, 68, 174, 174], 'pretrained_backbone_weights': None, 'transforms': [{'_target_': 'torchaug.transforms.RandomAffine', 'degrees': [-5, 5], 'translate': [0.05, 0.05], 'batch_transform': True, 'num_chunks': -1, 'batch_inplace': True}, {'_target_': 'torchaug.transforms.RandomColorJitter', 'brightness': 0.3, 'contrast': 0.4, 'saturation': 0.5, 'hue': 0.08, 'batch_transform': True, 'num_chunks': -1, 'batch_inplace': True}], 'use_group_norm': True, 'spatial_softmax_num_keypoints': 32, 'action_history_encoder_config': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig', 'in_channels': 7, 'out_channels': 32, 'history_length': 6, 'kernel_size': 5, 'downsample_kernel_size': 3, 'downsample_stride': 2, 'downsample_padding': 1}, 'down_dims': [256, 512, 1024], 'kernel_size': 5, 'n_groups': 8, 'diffusion_step_embed_dim': 128, 'use_film_scale_modulation': True, 'noise_scheduler_type': 'DDIM', 'beta_schedule': 'squaredcos_cap_v2', 'beta_start': 0.0001, 'beta_end': 0.02, 'prediction_type': 'epsilon', 'clip_sample': True, 'clip_sample_range': 1.0, 'num_train_timesteps': 50, 'num_inference_steps': 10, 'do_mask_loss_for_padding': False, 'input_shapes': {'observation.image': [13, 180, 240], 'context_observation.image': [13, 180, 240], 'observation.state': [8], 'observation.action_history': [7]}}, 'train_cfg': {'_target_': 'utils.TrainConfig', 'lr': 0.0001, 'lr_scheduler': 'cosine', 'lr_warmup_steps': 500, 'adam_betas': [0.95, 0.999], 'adam_eps': 1e-08, 'adam_weight_decay': 1e-06, 'grad_clip_norm': 10, 'offline_steps': 1000000, 'use_amp': True}, 'observation_cfg': {'_target_': 'agent.encoder.VisualFeatureSet', 'use_depth': True, 'use_color': False, 'mask_input_dict': {'_target_': 'agent.encoder.MaskInputDict', 'enable': True, 'representation': 'channels', 'mask_list': ['EE_obj_mask']}, 'crop_input_config': {'_target_': 'agent.encoder.CropInputConfig', 'color_crop_type': None, 'depth_crop_type': None, 'segmask_crop_type': None, 'crop_hw': [144, 144], 'crop_down_offset': 48, 'add_crop_binary_mask': False, 'add_coord_conv_map': False}, 'context_input_config': {'_target_': 'agent.encoder.ContextInputConfig', 'use_color': False, 'use_depth': False, 'mask_input_dict': {'_target_': 'agent.encoder.MaskInputDict', 'enable': False, 'representation': 'channels', 'mask_list': ['EE_obj_mask']}, 'crop_input_config': {'_target_': 'agent.encoder.CropInputConfig', 'color_crop_type': None, 'depth_crop_type': None, 'segmask_crop_type': None, 'crop_hw': [144, 144], 'crop_down_offset': 48, 'add_crop_binary_mask': False, 'add_coord_conv_map': False}}, 'mask_soft_approx_scheduler_config': {'_target_': 'agent.encoder.MaskSoftApproxSchedulerConfig', 'num_steps': 40000, 'initial_value': 10.0, 'final_value': 1000.0, 'interpolation_scheme': 'cosine'}, 'use_contact_map': True, 'use_sdf_maps': True, 'use_normals_maps': True, 'which_objects': 'both', 'grasped_dtc_max_value': 0.2, 'env_dtc_max_value': 0.4, 'grasped_normals_mask_max_dtc_value': 0.2, 'env_normals_mask_max_dtc_value': 0.4, 'clamp_dtc': True, 'max_contact_prob': 0.1, 'mask_normals_within_sdf': True, 'dtc_adaptive_normalization': False, 'adaptive_normals_mask': True, 'max_depth': 2.0, 'image_shape': [13, 180, 240], 'learnable_contact_preprocess_params': True, 'learning_rate': 0.0001, 'weight_decay': 0.0, 'contact_model_name': 'local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9', 'zero_centered': False, 'crop_distractors_tlhw': [32, 68, 174, 174]}}, 'true_action_history': False}}, 'num_train_frames_bc': 50000, 'num_train_frames_drq': 1100000, 'stddev_schedule_drq': 'linear(1.0,0.1,100000)', 'task_name': 'FrankaInsertion-v1', 'num_train_frames_vinn': 25000, 'num_train_frames_diffusion': 1000000, 'num_train_epochs_bc': 5000, 'num_train_epochs_diffusion': 15000, 'validate_every_epochs_bc': 5, 'validate_every_epochs_diffusion': 250, 'validate_diffusion_on_action_loss_every_epochs': 250, 'train_eval_diffusion_on_action_loss_every_epochs': 250, 'check_topk_every_epochs': 5, 'check_topk_every_epochs_diffusion': 250, 'save_snapshot_every_epochs_diffusion': 1500, 'x_limit': [0.2, 0.7], 'y_limit': [-0.4, 0.4], 'z_limit': [-0.05, 0.55], 'home_displacement': [0.55, 0.0, 0.55, 180.0, 0.0, 0.0], 'enable_gripper': True, 'start_with_gripper_open': True, 'offset_mask': [1, 1, 1, 1, 1, 1], 'path_to_depth_extrinsics': '~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy', 'test': {'username': 'leonmkim', 'hostname': 'grasp-login1', 'name_of_expert_demo': '112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'root_dir': '~/fish_leon', 'expert_dataset_dirpath': '~/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'expert_dataset': '~/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'semantic_demo_grouping_name': 'semantic_demo_grouping.yaml', 'semantic_demo_grouping': '~/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml', 'include_groups_list': 'all', 'batch_size': 128, 'store_dataset_in_memory': False, 'use_tb': True, 'local_snapshot_root_dir': '/mnt/bighdd/fish_contact_backup', 'local_snapshot_dir': '/mnt/bighdd/fish_contact_backup/exp_local/frankagym_pixels/FrankaInsertion-v1', 'resume_wandb_run': False}, 'feature_type': '180x240_crpdstlhw24x51x130x130_1_D_2.0_msk_channels_EE_obj_mask_cntct_0.1_DTC_clmpd_lrnbl_nrmls_DTCmask_adpt_lrnbl_both_lr_0.0001_wd_0.0_local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9_acthist_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1', 'save_buffer': True, 'num_eval': 5, 'random_start': False, 'eval_starts': '/home/leonmkim/fish_leon/FISH/eval_starts/frankagym_pixels/FrankaInsertion-v1', 'num_valid_demos': None, 'load_checkpoint': True, 'checkpoint_epoch': 7500, 'load_residual_weight': False, 'checkpoint_root_dir': '/home/leonmkim/fish_leon/FISH', 'checkpoint_weight_dir': '/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1', 'residual_weight': '/home/leonmkim/fish_leon/FISH/weights/frankagym_pixels/FrankaInsertion-v1/weight.pt', 'final_experiment_dir': './exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm'}
14
+ 2025-01-21 21:25:16,835 INFO MainThread:2650272 [wandb_init.py:init():619] starting backend
15
+ 2025-01-21 21:25:16,835 INFO MainThread:2650272 [wandb_init.py:init():623] setting up manager
16
+ 2025-01-21 21:25:16,839 INFO MainThread:2650272 [backend.py:_multiprocessing_setup():105] multiprocessing start_methods=fork,spawn,forkserver, using: spawn
17
+ 2025-01-21 21:25:16,840 INFO MainThread:2650272 [wandb_init.py:init():631] backend started and connected
18
+ 2025-01-21 21:25:16,854 INFO MainThread:2650272 [wandb_init.py:init():720] updated telemetry
19
+ 2025-01-21 21:25:16,860 INFO MainThread:2650272 [wandb_init.py:init():753] communicating run to backend with 90.0 second timeout
20
+ 2025-01-21 21:25:17,200 INFO MainThread:2650272 [wandb_run.py:_on_init():2435] communicating current version
21
+ 2025-01-21 21:25:17,274 INFO MainThread:2650272 [wandb_run.py:_on_init():2444] got version response upgrade_message: "wandb version 0.19.4 is available! To upgrade, please run:\n $ pip install wandb --upgrade"
22
+
23
+ 2025-01-21 21:25:17,275 INFO MainThread:2650272 [wandb_init.py:init():804] starting run threads in backend
24
+ 2025-01-21 21:25:17,629 INFO MainThread:2650272 [wandb_run.py:_console_start():2413] atexit reg
25
+ 2025-01-21 21:25:17,629 INFO MainThread:2650272 [wandb_run.py:_redirect():2255] redirect: wrap_raw
26
+ 2025-01-21 21:25:17,629 INFO MainThread:2650272 [wandb_run.py:_redirect():2320] Wrapping output streams.
27
+ 2025-01-21 21:25:17,629 INFO MainThread:2650272 [wandb_run.py:_redirect():2345] Redirects installed.
28
+ 2025-01-21 21:25:17,631 INFO MainThread:2650272 [wandb_init.py:init():847] run started, returning control to user process
29
+ 2025-01-21 21:25:17,631 INFO MainThread:2650272 [wandb_run.py:_tensorboard_callback():1544] tensorboard callback: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm/tb, True
30
+ 2025-01-21 21:25:24,844 INFO MainThread:2650272 [wandb_run.py:_config_callback():1382] config_cb None None {'grasped_obj_name': 'greece', 'left_book_slot': 'twodim'}
31
+ 2025-01-21 21:30:29,128 WARNING MsgRouterThr:2650272 [router.py:message_loop():77] message_loop has been closed
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/code/FISH/eval_robot.py ADDED
@@ -0,0 +1,606 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #%%
2
+ import warnings
3
+ import os
4
+
5
+ os.environ['MKL_SERVICE_FORCE_INTEL'] = '1'
6
+ os.environ['MUJOCO_GL'] = 'egl'
7
+ from pathlib import Path
8
+ #%%
9
+ import hydra
10
+ import numpy as np
11
+ import torch
12
+
13
+ import utils
14
+ from utils import get_feature_dirname_from_configs
15
+
16
+ from video import VideoRecorder
17
+ import pickle
18
+ import time
19
+ import threading
20
+ import shutil
21
+ from logger import Logger
22
+
23
+ import wandb
24
+ from omegaconf import OmegaConf, open_dict
25
+
26
+ from replay_buffer_robot import RosbagEvalReplayBufferStorage
27
+ from lerobot.common.utils.utils import _relative_path_between
28
+
29
+ torch.backends.cudnn.benchmark = True
30
+ warnings.filterwarnings('ignore', category=DeprecationWarning)
31
+
32
+ # import specs for replay buffer
33
+ from dm_env import specs
34
+
35
+ import sys, signal
36
+ import yaml
37
+
38
+ import binomial_cis as bc
39
+
40
+ # get path of current file
41
+ current_path = os.path.dirname(os.path.realpath(__file__))
42
+ sys.path.append(os.path.join(current_path, os.pardir))
43
+ # from contact_estimation.src.utils.viz_utils import normalized_surface_normal_to_rgb, depth_map_to_im, grasped_env_dtc_map_to_im, contact_prob_map_to_im, desaturate_color_image, masked_overlay_im_list
44
+
45
+ def make_agent(obs_spec, action_spec, cfg):
46
+ cfg.obs_shape = obs_spec['pixels'].shape
47
+ dataset_statistics = None # this will be loaded from the checkpoint
48
+ try:
49
+ cfg.action_shape = action_spec.shape
50
+ except:
51
+ pass
52
+ return hydra.utils.instantiate(cfg, dataset_statistics)
53
+
54
+ class Workspace:
55
+ def __init__(self, cfg):
56
+ self.work_dir = Path.cwd()
57
+ print(f'workspace: {self.work_dir}')
58
+
59
+ signal.signal(signal.SIGINT, self.signal_handler)
60
+
61
+ self.cfg = cfg
62
+ self.loading_uncompiled_checkpoint_with_compile = False
63
+ self.loading_compiled_checkpoint_with_no_compile = False
64
+
65
+ snapshot_path = Path(self.cfg.checkpoint_weight_dir) / f'snapshot_{self.cfg.checkpoint_epoch}.pt'
66
+ self.load_checkpoint_conf(snapshot_path=snapshot_path)
67
+
68
+ # load config for action trajectories
69
+ utils.set_seed_everywhere(self.cfg.seed)
70
+ self.device = torch.device(self.cfg.device)
71
+ self.setup()
72
+
73
+ # self.agent = make_agent(self.eval_env.observation_spec(),
74
+ # self.eval_env.action_spec(), self.cfg.agent)
75
+ self.timer = utils.Timer()
76
+ # self._global_step = 0
77
+ self._global_episode = 0
78
+ self._global_epoch = 0
79
+ self.num_episode_successes = 0
80
+
81
+ self.alpha_range = [.01, .025, .05, .1]
82
+
83
+ # Need to convert hydra config to primitive container for wandb https://docs.wandb.ai/guides/integrations/hydra
84
+ with open_dict(self.cfg):
85
+ self.cfg.feature_type = get_feature_dirname_from_configs(
86
+ hydra.utils.instantiate(self.cfg.agent.config),
87
+ # hydra.utils.instantiate(self.cfg.agent.config.observation_cfg),
88
+ # self.cfg.agent.config.policy_cfg.input_shapes,
89
+ # hydra.utils.instantiate(self.cfg.agent.config.policy_cfg.action_history_encoder_config) if 'observation.action_history' in self.cfg.agent.config.policy_cfg.input_shapes else None,
90
+ )
91
+
92
+ wandb_config = OmegaConf.to_container(
93
+ self.cfg, resolve=True, throw_on_missing=True
94
+ )
95
+ # must be called before any tf summary writer is created
96
+ if self.cfg.use_wandb:
97
+ # get the run id from the final_experiment_dir directory
98
+ run_id = os.path.basename(os.path.normpath(self.cfg.final_experiment_dir))
99
+ wandb.init(project='extrinsic_contact_downstream', entity='serialexperimentsleon', job_type='eval', sync_tensorboard=self.cfg.use_tb, config=wandb_config, id=run_id)
100
+
101
+ self.logger = Logger(self.work_dir, use_tb=self.cfg.use_tb, use_wandb=self.cfg.use_wandb)
102
+
103
+ # if not self.loading_uncompiled_checkpoint_with_compile and self.cfg.agent.config.compile:
104
+ # self.agent.compile_modules()
105
+
106
+ # self.load_checkpoint(snapshot_path=snapshot_path)
107
+
108
+ # if self.loading_uncompiled_checkpoint_with_compile: # need to call compile after loading the checkpoint
109
+ # self.agent.compile_modules()
110
+
111
+ print(f"loaded agent with feature_type: {self.cfg.feature_type}")
112
+
113
+ def check_for_key_press(self):
114
+ while self.continue_keypress_thread:
115
+ inp = input("Press 'r' to restart current episode, 'n' to stop current episode and skip to next, 'q' to break entire eval\n")
116
+ if inp == 'n':
117
+ self.preempt_episode = True
118
+ print("preempting episode")
119
+ elif inp in ['', '0', '1']: # enter key
120
+ if inp in ['0', '1']:
121
+ self.num_episode_successes += int(inp)
122
+ self.proceed_after_env_reset_event.set()
123
+ print("proceeding to start episode!")
124
+ elif inp == 'q':
125
+ self.proceed_after_env_reset_event.set()
126
+ self.preempt_episode = True
127
+ self.exit_eval = True
128
+ self.continue_keypress_thread = False # will stop the keypress thread
129
+ print("quitting eval")
130
+ break
131
+ elif inp == 'r':
132
+ print('restarting episode')
133
+ self.preempt_episode = True
134
+ self.restart_episode = True
135
+ else:
136
+ print("Invalid key press, try again")
137
+
138
+ # self.keypress_input_thread.join() # wait for the keypress thread to finish
139
+
140
+ def signal_handler(self, signal, frame):
141
+ print("\nprogram exiting gracefully")
142
+ self.proceed_after_env_reset_event.set()
143
+ self.preempt_episode = True
144
+ self.exit_eval = True
145
+ self.continue_keypress_thread = False # will stop the keypress thread
146
+ self.keypress_input_thread.join() # wait for the keypress thread to finish
147
+ video_filepath = self.video_recorder.save()
148
+ # get the video file and convert to video tensor to log
149
+ self.logger.log_video('eval/video', video_filepath, self.global_step)
150
+ wandb.finish()
151
+ sys.exit(0)
152
+
153
+ def setup(self):
154
+ # create envs
155
+ self.eval_env = hydra.utils.call(self.cfg.suite.task_make_fn)
156
+ # expert_demo_config_path = os.path.join(os.path.dirname(self.cfg.expert_dataset), 'demo_config.yaml')
157
+ # self.expert_demo_config = yaml.load(open(expert_demo_config_path, 'r'), Loader=yaml.FullLoader)
158
+ # self.eval_env._env.action_trans_norm = expert_demo_config['max_translation_action_norm']
159
+ # self.eval_env._env.action_rot_norm = expert_demo_config['max_rotation_action_norm']
160
+ # self.eval_env._env.action_period = expert_demo_config['sample_period']
161
+ # print(f"setting max_translation_action_norm to {expert_demo_config['max_translation_action_norm']} and sample_period to {expert_demo_config['sample_period']}")
162
+ # print(f"setting max_rotation_action_norm to {expert_demo_config['max_rotation_action_norm']}")
163
+
164
+ # self.eval_env.set_demo_params(self.cfg.expert_dataset)
165
+
166
+ # Turn off random start
167
+ self.eval_env.random_start = False
168
+
169
+ # create replay buffer
170
+ # data_specs = [
171
+ # {
172
+ # 'observation': self.eval_env.observation_spec(),
173
+ # },
174
+ # # self.eval_env.observation_spec()['features'],
175
+ # self.eval_env.action_spec(),
176
+ # specs.Array(self.eval_env.action_spec().shape, self.eval_env.action_spec().dtype, 'vinn_action'),
177
+ # specs.Array((1, ), np.float32, 'reward'),
178
+ # specs.Array((1, ), np.float32, 'discount'),
179
+ # ]
180
+
181
+ # self.eval_replay_storage = ZarrEvalReplayBufferStorage(data_specs, self.work_dir / 'eval_buffer', debug_timestamps=self.cfg.debug_timestamps, save_buffer=self.cfg.save_buffer, debug_info_data_specs=self.eval_env.debug_info_data_specs, camera_info_dict=self.eval_env.get_camera_info_dict())
182
+ self.eval_replay_storage = RosbagEvalReplayBufferStorage(self.work_dir)
183
+
184
+ self.video_recorder = VideoRecorder(
185
+ self.work_dir if self.cfg.save_video else None,
186
+ ros_enabled=True,
187
+ fps=self.cfg.agent.config.policy_frequency,
188
+ )
189
+
190
+ print('workspace setup complete')
191
+
192
+ @property
193
+ def global_step(self):
194
+ # return self._global_step
195
+ return self.eval_env.get_global_step()
196
+
197
+ @property
198
+ def global_episode(self):
199
+ return self._global_episode
200
+
201
+ @property
202
+ def global_frame(self):
203
+ return self.global_step * self.cfg.action_repeat
204
+
205
+ @property
206
+ def global_epoch(self):
207
+ return self._global_epoch
208
+
209
+ def reset(self, eval_idx):
210
+ if not self.eval_env.enable_arm:
211
+ return np.array([0,0,0], dtype=np.float32)
212
+ self.eval_env.arm_refresh(reset=False)
213
+ # Set start position
214
+ try:
215
+ self.eval_env.set_position(self.start_pos[eval_idx])
216
+ except:
217
+ self.eval_env.arm.set_position(self.start_pos[eval_idx])
218
+ if self.eval_env.arm.keep_gripper_closed:
219
+ self.eval_env.arm.close_gripper_fully()
220
+ else:
221
+ self.eval_env.arm.open_gripper_fully()
222
+ time.sleep(0.1)
223
+ time_step = self.eval_env.step(np.zeros(self.eval_env.action_spec().shape[0], dtype=np.float32),
224
+ np.zeros(self.eval_env.action_spec().shape[0], dtype=np.float32))
225
+ return time_step
226
+
227
+ def eval(self):
228
+ # before evals start, prompt user for name of grasped object and the left book of the slot location
229
+ grasped_obj_name = input("Enter the name of the grasped object: ")
230
+ left_book_slot = input("Enter the left book slot location: ")
231
+ # update wandb config
232
+ if self.cfg.use_wandb:
233
+ wandb.config.update({'grasped_obj_name': grasped_obj_name, 'left_book_slot': left_book_slot})
234
+
235
+ self.preempt_episode = False
236
+ self.exit_eval = False
237
+ self.restart_episode = False
238
+
239
+ self.continue_keypress_thread = True
240
+ self.proceed_after_env_reset_event = threading.Event()
241
+ self.keypress_input_thread = threading.Thread(target=self.check_for_key_press)
242
+ self.keypress_input_thread.start()
243
+
244
+ # # Set model to eval mode
245
+ # self.agent.train(False)
246
+
247
+ eval_until_episode = utils.Until(self.cfg.num_eval)
248
+
249
+ self.use_action_history = False
250
+ # if "dp" in repr(self.agent) and "observation.action_history" in self.cfg.agent.config.policy_cfg.input_shapes:
251
+ if "observation.action_history" in self.cfg.agent.config.policy_cfg.input_shapes:
252
+ self.use_action_history = True
253
+
254
+ # self.eval_replay_storage._new_eval_step(0)
255
+
256
+ # if 'vinn' in repr(self.agent) or 'openloop' in repr(self.agent):
257
+ # with open(self.cfg.expert_dataset, 'rb') as f:
258
+ # if self.cfg.obs_type == 'pixels':
259
+ # self.expert_demo, _, self.expert_action, self.expert_reward = pickle.load(f)
260
+ # elif self.cfg.obs_type == 'features':
261
+ # _, self.expert_demo, self.expert_action, self.expert_reward = pickle.load(f)
262
+
263
+ # if self.cfg.action_trajectories:
264
+ # with open(self.cfg.expert_action_trajectories, 'rb') as f:
265
+ # self.expert_action = pickle.load(f)
266
+
267
+ # if isinstance(self.cfg.train_demo_idxs_list_or_num, int):
268
+ # if self.cfg.train_demo_idxs_list_or_num == -1:
269
+ # self.cfg.train_demo_idxs_list_or_num = len(self.expert_demo)
270
+ # train_demo_idxs_list_or_num = list(range(self.cfg.train_demo_idxs_list_or_num))
271
+
272
+ # self.expert_demo = self.expert_demo[train_demo_idxs_list_or_num]
273
+ # self.expert_action = self.expert_action[train_demo_idxs_list_or_num]
274
+ # self.expert_reward = self.expert_reward[train_demo_idxs_list_or_num]
275
+ # # if self.cfg.action_plans:
276
+ # # self.expert_action_plans = self.expert_action_plans[self.cfg.train_demo_idxs_list_or_num]
277
+ # # self.expert_demo = self.expert_demo[:self.cfg.num_demos]
278
+ # # self.expert_action = self.expert_action[:self.cfg.num_demos]
279
+ # # self.expert_reward = self.expert_reward[:self.cfg.num_demos]
280
+
281
+ # self.expert_demo = np.concatenate(self.expert_demo, axis=0)
282
+ # self.expert_rgb_obs = np.ascontiguousarray(np.transpose(self.expert_demo, (0,2,3,1))[:, :,:,:3].astype(np.uint8))
283
+ # self.expert_action = np.concatenate(self.expert_action, axis=0)
284
+
285
+ # self.agent.save_representations(self.expert_demo, self.expert_action, 128, config=self.expert_demo_config)
286
+
287
+ # Get start points
288
+ if self.cfg.random_start:
289
+ eval_starts = Path(self.cfg.eval_starts) / 'starts.pkl'
290
+ if eval_starts.exists():
291
+ with eval_starts.open('rb') as f:
292
+ self.start_pos = pickle.load(f)
293
+ else:
294
+ eval_starts = Path(self.cfg.eval_starts)
295
+ eval_starts.mkdir(parents=True, exist_ok=True)
296
+
297
+ # Generate start points
298
+ self.start_pos = []
299
+ try:
300
+ for _ in range(self.cfg.num_eval):
301
+ self.start_pos.append(self.eval_env.get_random_pos())
302
+ except:
303
+ for _ in range(self.cfg.num_eval):
304
+ self.start_pos.append(self.eval_env.arm.get_random_pos())
305
+
306
+ # Save start points for the task
307
+ eval_starts = eval_starts / 'starts.pkl'
308
+ with eval_starts.open('wb') as f:
309
+ pickle.dump(self.start_pos, f)
310
+
311
+ time_step = self.eval_env.reset()
312
+ # replay_thread = None
313
+ while eval_until_episode(self.global_episode) and not self.exit_eval:
314
+ # self.video_recorder.init(self.eval_env, video_filename=f'{self.global_episode}_eval.mp4')
315
+ print(f"Starting episode {self.global_episode}")
316
+ time_step = self.eval_env.reset() #Leon: need to call reset twice in case objects are trapped
317
+ self.video_recorder.init(self.eval_env, video_filename=f'{self.global_episode}_eval.mp4')
318
+ # x = input("Press Enter to continue... after reseting env")
319
+ print("Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success")
320
+ self.proceed_after_env_reset_event.clear() # clear the event flag
321
+ self.proceed_after_env_reset_event.wait() # blocking wait for the event flag to be set
322
+ if self.global_episode > 0:
323
+ self.logger.log_metrics({'num_success': self.num_episode_successes}, self.global_step, 'eval', episode=self.global_episode)
324
+ self.logger.log_metrics({'success_rate': self.num_episode_successes/self.global_episode}, self.global_step, 'eval', episode=self.global_episode)
325
+
326
+ # log confidence intervals for success rate
327
+ k = self.num_episode_successes # number of successes
328
+ n = self.global_episode # number of trials
329
+
330
+ table_columns = []
331
+ table_data = []
332
+ for alpha in self.alpha_range:
333
+ lb = bc.binom_ci(k, n, alpha, 'lb')
334
+ ub = bc.binom_ci(k, n, alpha, 'ub')
335
+
336
+ self.logger.log_metrics({f'success_rate_lb_{alpha}': lb}, self.global_step, 'eval', episode=self.global_episode)
337
+ self.logger.log_metrics({f'success_rate_ub_{alpha}': ub}, self.global_step, 'eval', episode=self.global_episode)
338
+
339
+ time_step = self.eval_env.reset()
340
+ # debug_info_dict = self.eval_env.debug_info_dict
341
+ # if replay_thread is not None:
342
+ # # wait for the last replay thread to finish
343
+ # replay_thread.join()
344
+
345
+ # self.eval_replay_storage.add(time_step._replace(observation=time_step.observation[self.cfg.obs_type]), debug_info_dict)
346
+ # replay_thread = threading.Thread(target=self.eval_replay_storage.add, args=(time_step._replace(observation=time_step.observation[self.cfg.obs_type]), debug_info_dict))
347
+ # replay_thread = threading.Thread(target=self.eval_replay_storage.add, args=(time_step, debug_info_dict))
348
+
349
+ # replay_thread.start()
350
+ if self.cfg.random_start:
351
+ time_step = self.reset(self.global_episode)
352
+ time.sleep(2) #5)
353
+ # if 'vinn' in repr(self.agent):
354
+ # self.agent.reset()
355
+ # # self.agent.buffer.reset()
356
+ # # if self.cfg.open_loop:
357
+ # # self.agent.current_step = 0
358
+ # if 'openloop' in repr(self.agent):
359
+ # self.agent.curr_step = 0
360
+ # at start of each episode, provide zero action for policies that use action history
361
+ # shape should be (T_o, T_a, action_dim)
362
+
363
+ # while not time_step.last() and not self.preempt_episode:
364
+ self.video_recorder.ros_start_recording()
365
+ self.eval_replay_storage.start_episode()
366
+ self.eval_env.start_policy_timer()
367
+ while not self.eval_env.episode_done() and not self.preempt_episode:
368
+ # with torch.no_grad(), utils.eval_mode(self.agent):
369
+ # # if self.cfg.agent.provide_topk:
370
+ # # action, vinn_action, topk = self.agent.act(
371
+ # # time_step.observation['pixels'],
372
+ # # self.global_step,
373
+ # # eval_mode=True)
374
+ # # elif self.cfg.agent.provide_obs:
375
+ # # action, vinn_action, obs = self.agent.act(
376
+ # # time_step.observation['pixels'],
377
+ # # self.global_step,
378
+ # # eval_mode=True)
379
+ # # else:
380
+ # action, vinn_action = self.agent.act(
381
+ # time_step.observation,
382
+ # self.global_step,
383
+ # eval_mode=True,
384
+ # obs_timestamp=time_step.observation['timestamp'],
385
+ # obs_seq=time_step.observation['seq'],
386
+ # action_history=action_history,
387
+ # action_history_start_timestamp=action_history_start_timestamp,
388
+ # )
389
+ # DONT WAIT FOR POLICY TO GET AN ACTION
390
+ # we dont want to slow down grabbing obs and passing to sam/contact features
391
+
392
+ self.eval_env.run_policy_threads() # this just does a rospy sleep
393
+
394
+ # if self.use_action_history:
395
+ # action_history_start_timestamp = time_step.observation['timestamp']
396
+ # # action_history = action[:self.cfg.agent.config.policy_cfg.action_history_encoder_config.history_length, ...]
397
+ # # add n_obs_steps dimension to action_history, for now we assume n_obs_steps = 1
398
+ # # TODO: handle n_obs_steps > 1
399
+ # action_history = action[np.newaxis, ...]
400
+
401
+ # time_step = self.eval_env.step(action, vinn_action) # obs, reward after action has been taken
402
+ # debug_info_dict = self.eval_env.debug_info_dict
403
+
404
+ # time_step = self.eval_env.ros_step()
405
+
406
+ # replay_thread.join()
407
+
408
+ # time how long it takes to execute the step
409
+ # time_before_add = time.perf_counter()
410
+ # self.eval_replay_storage.add(time_step._replace(observation=time_step.observation[self.cfg.obs_type]), debug_info_dict)
411
+ # use thread to call the add function in a separate thread
412
+ # replay_thread = threading.Thread(target=self.eval_replay_storage.add, args=(time_step._replace(observation=time_step.observation[self.cfg.obs_type]), debug_info_dict))
413
+
414
+ # replay_thread = threading.Thread(target=self.eval_replay_storage.add, args=(time_step, debug_info_dict))
415
+ # replay_thread.start()
416
+
417
+ # print(f"Time to add to replay buffer: {time.perf_counter() - time_before_add}")
418
+
419
+ # self.video_recorder.record(self.eval_env)
420
+ # self._global_step += 1
421
+
422
+ self.eval_env.stop_policy_timer()
423
+
424
+ if self.restart_episode:
425
+ # means we should delete the current episode and start again
426
+ self.restart_episode = False
427
+ self.eval_replay_storage.reset_current_episode()
428
+ self.video_recorder.reset_current_episode()
429
+
430
+ else:
431
+ self.eval_replay_storage.store_current_episode()
432
+ video_filepath = self.video_recorder.save()
433
+ self.logger.log_video(f"eval/{video_filepath.name.rstrip('.mp4')}", video_filepath, self.global_step)
434
+ self._global_episode += 1
435
+
436
+ self.preempt_episode = False # reset preempt_episode flag
437
+
438
+ # self.video_recorder.save(f'{episode}_eval.mp4')
439
+ # get the video file and convert to video tensor to log
440
+
441
+ self.eval_env.reset()
442
+
443
+ print("Evaluation finished. To wrap up, rate prev episode, press 0 for failure and 1 for success")
444
+ self.proceed_after_env_reset_event.clear() # clear the event flag
445
+ self.proceed_after_env_reset_event.wait() # blocking wait for the event flag to be set
446
+ if self.global_episode > 0:
447
+ # self.logger.log_metrics({'num_success': self.num_episode_successes}, self.global_step, 'eval', episode=self.global_episode)
448
+ self.logger.log_metrics({'num_success': self.num_episode_successes}, self.global_step, 'eval', episode=self.global_episode)
449
+ self.logger.log_metrics({'success_rate': self.num_episode_successes/self.global_episode}, self.global_step, 'eval', episode=self.global_episode)
450
+
451
+ # log confidence intervals for success rate
452
+ k = self.num_episode_successes # number of successes
453
+ n = self.global_episode # number of trials
454
+
455
+ table_columns = ['success_rate']
456
+ table_data = [self.num_episode_successes/self.global_episode]
457
+ for alpha in self.alpha_range:
458
+ lb = bc.binom_ci(k, n, alpha, 'lb')
459
+ ub = bc.binom_ci(k, n, alpha, 'ub')
460
+
461
+ self.logger.log_metrics({f'success_rate_lb_{alpha}': lb}, self.global_step, 'eval', episode=self.global_episode)
462
+ self.logger.log_metrics({f'success_rate_ub_{alpha}': ub}, self.global_step, 'eval', episode=self.global_episode)
463
+
464
+ table_columns.extend([f'success_rate_lb_{alpha}', f'success_rate_ub_{alpha}'])
465
+ table_data.extend([lb, ub])
466
+
467
+ table_data = [table_data]
468
+
469
+ # seperately log as a table
470
+ wandb.log({
471
+ "eval/success_rate_ci": wandb.Table(data=table_data, columns=table_columns)
472
+ })
473
+
474
+ # also accumulate eval metrics across previous eval runs
475
+ # TODO: change wandb init to resume from an existing run!!!
476
+ run_filter={
477
+ "jobType": "eval",
478
+ "config.wandb_run_id": self.cfg.wandb_run_id,
479
+ "summary_metrics.episode": {"$gte": 5},
480
+ "config.checkpoint_epoch": self.cfg.checkpoint_epoch,
481
+ "state": "finished",
482
+ # "config.grasped_obj_name": grasped_obj_name,
483
+ # "config.left_book_slot": left_book_slot,
484
+ }
485
+
486
+ api = wandb.Api()
487
+ filtered_runs = api.runs("serialexperimentsleon/extrinsic_contact_downstream", filters=run_filter)
488
+ total_num_successes = self.num_episode_successes
489
+ total_num_episodes = self.global_episode
490
+ list_of_historical_run_ids = []
491
+ if len(filtered_runs) > 0:
492
+ for filtered_run in filtered_runs:
493
+ total_num_successes += filtered_run.summary_metrics['eval/num_success']
494
+ # total_num_episodes += filtered_run.summary_metrics['episode']
495
+ total_num_episodes += filtered_run.config['num_eval']
496
+ list_of_historical_run_ids.append(filtered_run.id)
497
+
498
+ wandb.summary['total_num_successes'] = total_num_successes
499
+ wandb.summary['total_num_episodes'] = total_num_episodes
500
+ wandb.summary['total_success_rate'] = total_num_successes/total_num_episodes
501
+
502
+ # log the accumulated metrics as a table
503
+ total_table_columns = ['total_num_successes', 'total_num_episodes', 'total_success_rate']
504
+ total_table_data = [total_num_successes, total_num_episodes, total_num_successes/total_num_episodes]
505
+ self.logger.log_metrics({'total_success_rate': total_num_successes/total_num_episodes}, self.global_step, 'eval', episode=total_num_episodes)
506
+
507
+ for alpha in self.alpha_range:
508
+ lb = bc.binom_ci(total_num_successes, total_num_episodes, alpha, 'lb')
509
+ ub = bc.binom_ci(total_num_successes, total_num_episodes, alpha, 'ub')
510
+ total_table_columns.extend([f'total_success_rate_lb_{alpha}', f'total_success_rate_ub_{alpha}'])
511
+ total_table_data.extend([lb, ub])
512
+ wandb.summary[f'total_success_rate_lb_{alpha}'] = lb
513
+ wandb.summary[f'total_success_rate_ub_{alpha}'] = ub
514
+
515
+ self.logger.log_metrics({f'total_success_rate_lb_{alpha}': lb}, self.global_step, 'eval', episode=total_num_episodes)
516
+ self.logger.log_metrics({f'total_success_rate_ub_{alpha}': ub}, self.global_step, 'eval', episode=total_num_episodes)
517
+
518
+ total_table_data = [total_table_data]
519
+ wandb.log({
520
+ 'eval/total_success_rate_ci': wandb.Table(data=total_table_data, columns=total_table_columns)
521
+ })
522
+
523
+ self.continue_keypress_thread = False # will stop the keypress thread
524
+ self.keypress_input_thread.join() # wait for the keypress thread to finish
525
+
526
+ def load_checkpoint_conf(self, snapshot_path):
527
+ config_path = snapshot_path.parent / 'config.yaml'
528
+ if not config_path.exists():
529
+ raise FileNotFoundError(f'No snapshot conf found at {config_path}')
530
+ else:
531
+ # load the omegaconf config
532
+ hydra.core.global_hydra.GlobalHydra.instance().clear()
533
+ hydra.initialize(
534
+ str(_relative_path_between(Path(config_path).absolute().parent, Path(__file__).absolute().parent)),
535
+ )
536
+ cfg = hydra.compose(Path(config_path).stem)
537
+ from deepdiff import DeepDiff
538
+ from omegaconf import open_dict
539
+ diff = DeepDiff(OmegaConf.to_container(cfg), OmegaConf.to_container(self.cfg)) # old, new
540
+ # import re
541
+ overwriteable_keys = [f"root{overwritable_key}" for overwritable_key in ["['use_wandb']", "['path_to_depth_extrinsics']", "['eval']", "['root_dir']", "['wandb_notes']", "['agent']['config']['train_cfg']['use_amp']", "['agent']['config']['compile']", "['agent']['config']['policy_cfg']['num_inference_steps']"]]
542
+ if "values_changed" in diff:
543
+ # top_k_checkpoints, wandb_notes, agent.config.train_cfg.use_amp, save_snapshot_every_epochs_diffusion, check_topk_every_epochs_diffusion, validate_diffusion_on_action_loss_every_epochs, train_eval_diffusion_on_action_loss_every_epochs, validate_every_epochs_diffusion
544
+ # for keys above, overwrite the old config with the new config
545
+ for k, v in diff['values_changed'].items():
546
+ # replace any keys that are under "root['suite']"
547
+ if k in overwriteable_keys or k.startswith("root['suite']"):
548
+ print(f"Found changed key {k} with value {v}. Overwriting old checkpoint config")
549
+ if k == "root['agent']['config']['compile']":
550
+ if diff['values_changed'][k]['new_value']:
551
+ self.loading_uncompiled_checkpoint_with_compile = True
552
+ elif not diff['values_changed'][k]['new_value']:
553
+ # raise ValueError("Cannot load a compiled checkpoint without compile")
554
+ self.loading_compiled_checkpoint_with_no_compile = True
555
+ exec(f"{k.replace('root[', 'cfg[')} = {k.replace('root[', 'self.cfg[')}")
556
+ # for any new values, update the old checkpoint config
557
+ if "dictionary_item_added" in diff:
558
+ for new_key in diff['dictionary_item_added']: # this is a list
559
+ # if new_key == "root['suite']['task_make_fn']['observation_cfg']":
560
+ if new_key == "root['suite']['task_make_fn']['agent_policy_cfg']":
561
+ # pass the agents observation_cfg to the suite task_make_fn
562
+ with open_dict(cfg): # to allow addition of non-existing keys
563
+ # cfg.suite.task_make_fn.observation_cfg = cfg.agent.config.observation_cfg
564
+ cfg.suite.task_make_fn.agent_policy_cfg = cfg.agent.config
565
+ continue
566
+ elif "['agent']['config']['policy_cfg']['input_shapes']" in new_key:
567
+ # skip adding the new key if it is the input_shapes of the policy_cfg
568
+ continue
569
+ else:
570
+ print(f"Found new key {new_key} with value {eval(new_key.replace('root[', 'self.cfg['))}. Adding to checkpoint config")
571
+ # eval(new_key.replace('root', 'cfg')) = eval(new_key.replace('root', 'self.cfg'))
572
+ if new_key == "root['agent']['config']['compile']":
573
+ if self.cfg.agent.config.compile:
574
+ self.loading_uncompiled_checkpoint_with_compile = True
575
+
576
+ with open_dict(cfg):
577
+ exec(f"{new_key.replace('root[', 'cfg[')}={new_key.replace('root[', 'self.cfg[')}")
578
+ self.cfg = cfg
579
+
580
+ def load_checkpoint(self, snapshot_path, bc=False):
581
+ print(f'resuming {repr(self.agent)}: {snapshot_path}')
582
+ with snapshot_path.open('rb') as f:
583
+ payload = torch.load(f)
584
+ agent_payload = {}
585
+ for k, v in payload.items():
586
+ if k not in self.__dict__:
587
+ agent_payload[k] = v
588
+ elif k == '_global_epoch':
589
+ self._global_epoch = v
590
+ print(f'loaded epoch: {v}')
591
+ if self.cfg.use_wandb:
592
+ # add to config of wandb
593
+ wandb.config.update({'epoch': v})
594
+
595
+ # self.agent.load_snapshot_eval(agent_payload, bc)
596
+
597
+ @hydra.main(config_path='cfgs', config_name='config_eval')
598
+ def main(cfg):
599
+ from eval_robot import Workspace as W
600
+ root_dir = Path.cwd()
601
+ workspace = W(cfg)
602
+
603
+ workspace.eval()
604
+
605
+ if __name__ == '__main__':
606
+ main()
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/config.yaml ADDED
@@ -0,0 +1,936 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ wandb_version: 1
2
+
3
+ root_dir:
4
+ desc: null
5
+ value: /home/leonmkim/fish_leon
6
+ replay_buffer_size:
7
+ desc: null
8
+ value: 150000
9
+ replay_buffer_num_workers:
10
+ desc: null
11
+ value: 2
12
+ nstep:
13
+ desc: null
14
+ value: 3
15
+ batch_size:
16
+ desc: null
17
+ value: 128
18
+ seed:
19
+ desc: null
20
+ value: 1
21
+ dataset_shuffle_seed:
22
+ desc: null
23
+ value: 0
24
+ device:
25
+ desc: null
26
+ value: cuda
27
+ save_video:
28
+ desc: null
29
+ value: true
30
+ save_train_video:
31
+ desc: null
32
+ value: true
33
+ use_tb:
34
+ desc: null
35
+ value: true
36
+ use_wandb:
37
+ desc: null
38
+ value: true
39
+ wandb_run_id:
40
+ desc: null
41
+ value: '4295_1'
42
+ wandb_notes:
43
+ desc: null
44
+ value: 4295_1_restarted_1
45
+ eval:
46
+ desc: null
47
+ value: true
48
+ true_action_history:
49
+ desc: null
50
+ value: false
51
+ train_pad_after:
52
+ desc: null
53
+ value: 4
54
+ process_contact_features:
55
+ desc: null
56
+ value: true
57
+ obs_type:
58
+ desc: null
59
+ value: pixels
60
+ use_color:
61
+ desc: null
62
+ value: false
63
+ use_depth:
64
+ desc: null
65
+ value: true
66
+ use_masks:
67
+ desc: null
68
+ value: true
69
+ mask_list:
70
+ desc: null
71
+ value:
72
+ - EE_obj_mask
73
+ mask_representation:
74
+ desc: null
75
+ value: channels
76
+ crop_hw:
77
+ desc: null
78
+ value:
79
+ - 144
80
+ - 144
81
+ crop_down_offset:
82
+ desc: null
83
+ value: 48
84
+ color_crop_type:
85
+ desc: null
86
+ value: null
87
+ depth_crop_type:
88
+ desc: null
89
+ value: null
90
+ segmask_crop_type:
91
+ desc: null
92
+ value: null
93
+ add_crop_binary_mask:
94
+ desc: null
95
+ value: false
96
+ add_coord_conv_map:
97
+ desc: null
98
+ value: false
99
+ use_context_color:
100
+ desc: null
101
+ value: false
102
+ use_context_depth:
103
+ desc: null
104
+ value: false
105
+ use_context_segmask:
106
+ desc: null
107
+ value: false
108
+ context_color_crop_type:
109
+ desc: null
110
+ value: null
111
+ context_depth_crop_type:
112
+ desc: null
113
+ value: null
114
+ context_segmask_crop_type:
115
+ desc: null
116
+ value: null
117
+ context_add_crop_binary_mask:
118
+ desc: null
119
+ value: false
120
+ context_add_coord_conv_map:
121
+ desc: null
122
+ value: false
123
+ use_contact_map:
124
+ desc: null
125
+ value: true
126
+ use_sdf_maps:
127
+ desc: null
128
+ value: true
129
+ use_normals_maps:
130
+ desc: null
131
+ value: true
132
+ which_objects:
133
+ desc: null
134
+ value: both
135
+ max_contact_prob:
136
+ desc: null
137
+ value: 0.1
138
+ max_depth:
139
+ desc: null
140
+ value: 2.0
141
+ grasped_dtc_max_value:
142
+ desc: null
143
+ value: 0.2
144
+ env_dtc_max_value:
145
+ desc: null
146
+ value: 0.4
147
+ grasped_normals_mask_max_dtc_value:
148
+ desc: null
149
+ value: 0.2
150
+ env_normals_mask_max_dtc_value:
151
+ desc: null
152
+ value: 0.4
153
+ clamp_dtc:
154
+ desc: null
155
+ value: true
156
+ dtc_adaptive_normalization:
157
+ desc: null
158
+ value: false
159
+ mask_normals_within_sdf:
160
+ desc: null
161
+ value: true
162
+ adaptive_normals_mask:
163
+ desc: null
164
+ value: true
165
+ learnable_contact_preprocess_params:
166
+ desc: null
167
+ value: true
168
+ contact_model_name:
169
+ desc: null
170
+ value: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
171
+ contact_estimation_model_ckpt_path:
172
+ desc: null
173
+ value: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
174
+ encoder_type:
175
+ desc: null
176
+ value: small
177
+ debug_timestamps:
178
+ desc: null
179
+ value: false
180
+ open_loop:
181
+ desc: null
182
+ value: false
183
+ action_trajectories:
184
+ desc: null
185
+ value: true
186
+ stop_after_action:
187
+ desc: null
188
+ value: false
189
+ interpolation_frequency:
190
+ desc: null
191
+ value: 25
192
+ policy_frequency:
193
+ desc: null
194
+ value: 5
195
+ wait_for_new_camera_frames:
196
+ desc: null
197
+ value: true
198
+ baseline:
199
+ desc: null
200
+ value: false
201
+ train_demo_idxs_list_or_num:
202
+ desc: null
203
+ value: -1
204
+ log_train_every_steps:
205
+ desc: null
206
+ value: 25
207
+ name_of_expert_demo:
208
+ desc: null
209
+ value: 120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
210
+ expert_dataset_dirpath:
211
+ desc: null
212
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
213
+ store_dataset_in_memory:
214
+ desc: null
215
+ value: false
216
+ expert_dataset:
217
+ desc: null
218
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr
219
+ action_key:
220
+ desc: null
221
+ value: action_trajectory_25hz
222
+ semantic_demo_grouping_name:
223
+ desc: null
224
+ value: semantic_demo_grouping.yaml
225
+ semantic_demo_grouping:
226
+ desc: null
227
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml
228
+ include_groups_list:
229
+ desc: null
230
+ value: all
231
+ expert_dataset_config:
232
+ desc: null
233
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demo_config.yaml
234
+ name_of_valid_demo:
235
+ desc: null
236
+ value: 120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
237
+ valid_dataset_dir:
238
+ desc: null
239
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr
240
+ valid_demo_idxs_list_or_num:
241
+ desc: null
242
+ value: null
243
+ val_num_groups:
244
+ desc: null
245
+ value: 7
246
+ load_bc:
247
+ desc: null
248
+ value: true
249
+ checkpoint_epoch_list:
250
+ desc: null
251
+ value:
252
+ - 99
253
+ - 199
254
+ - 299
255
+ - 399
256
+ - 499
257
+ - 599
258
+ - 699
259
+ - 799
260
+ - 899
261
+ - 999
262
+ - 1249
263
+ - 1499
264
+ - 1749
265
+ - 1999
266
+ - 2999
267
+ - 3999
268
+ - 4999
269
+ - 5999
270
+ - 6999
271
+ - 7999
272
+ - 8999
273
+ - 9999
274
+ snapshot_root_dir:
275
+ desc: null
276
+ value: /mnt/grasp_high_usage/leonmkim/contact_estimation/FISH
277
+ save_snapshot:
278
+ desc: null
279
+ value: true
280
+ save_last_snapshot:
281
+ desc: null
282
+ value: true
283
+ save_snapshot_when_done:
284
+ desc: null
285
+ value: true
286
+ top_k_checkpoints:
287
+ desc: null
288
+ value: 5
289
+ save_snapshot_link_to_weights_dir:
290
+ desc: null
291
+ value: deprecated
292
+ restore_missing_checkpoint:
293
+ desc: null
294
+ value: null
295
+ bc_regularize:
296
+ desc: null
297
+ value: false
298
+ bc_weight_type:
299
+ desc: null
300
+ value: qfilter
301
+ experiment_dir:
302
+ desc: null
303
+ value: ./exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1
304
+ agent:
305
+ desc: null
306
+ value:
307
+ _target_: agent.diffusion_policy.DiffusionPolicyAgent
308
+ name: diffusion_policy
309
+ load_checkpoint: true
310
+ device: cuda
311
+ n_obs_steps: 1
312
+ suite_name: frankagym
313
+ obs_type: pixels
314
+ enable_arm: true
315
+ enable_camera: true
316
+ use_tb: true
317
+ desired_image_shape:
318
+ - 13
319
+ - 180
320
+ - 240
321
+ orig_cam_shape:
322
+ - 3
323
+ - 240
324
+ - 320
325
+ config:
326
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
327
+ compile: false
328
+ device: cuda
329
+ cam_resize_shape:
330
+ - 13
331
+ - 180
332
+ - 240
333
+ orig_cam_shape:
334
+ - 3
335
+ - 240
336
+ - 320
337
+ policy_frequency: 5
338
+ interpolation_frequency: 25
339
+ policy_cfg:
340
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
341
+ n_obs_steps: 1
342
+ horizon: 36
343
+ n_action_steps: 36
344
+ output_shapes:
345
+ action:
346
+ - 7
347
+ input_normalization_modes:
348
+ observation.image: mean_std
349
+ observation.state: min_max
350
+ observation.action_history: min_max
351
+ output_normalization_modes:
352
+ action: min_max
353
+ vision_backbone: resnet18
354
+ crop_distractors_tlhw:
355
+ - 32
356
+ - 68
357
+ - 174
358
+ - 174
359
+ pretrained_backbone_weights: null
360
+ transforms:
361
+ - _target_: torchaug.transforms.RandomAffine
362
+ degrees:
363
+ - -5
364
+ - 5
365
+ translate:
366
+ - 0.05
367
+ - 0.05
368
+ batch_transform: true
369
+ num_chunks: -1
370
+ batch_inplace: true
371
+ - _target_: torchaug.transforms.RandomColorJitter
372
+ brightness: 0.3
373
+ contrast: 0.4
374
+ saturation: 0.5
375
+ hue: 0.08
376
+ batch_transform: true
377
+ num_chunks: -1
378
+ batch_inplace: true
379
+ use_group_norm: true
380
+ spatial_softmax_num_keypoints: 32
381
+ action_history_encoder_config:
382
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
383
+ in_channels: 7
384
+ out_channels: 32
385
+ history_length: 6
386
+ kernel_size: 5
387
+ downsample_kernel_size: 3
388
+ downsample_stride: 2
389
+ downsample_padding: 1
390
+ down_dims:
391
+ - 256
392
+ - 512
393
+ - 1024
394
+ kernel_size: 5
395
+ n_groups: 8
396
+ diffusion_step_embed_dim: 128
397
+ use_film_scale_modulation: true
398
+ noise_scheduler_type: DDIM
399
+ beta_schedule: squaredcos_cap_v2
400
+ beta_start: 0.0001
401
+ beta_end: 0.02
402
+ prediction_type: epsilon
403
+ clip_sample: true
404
+ clip_sample_range: 1.0
405
+ num_train_timesteps: 50
406
+ num_inference_steps: 10
407
+ do_mask_loss_for_padding: false
408
+ input_shapes:
409
+ observation.image:
410
+ - 13
411
+ - 180
412
+ - 240
413
+ context_observation.image:
414
+ - 13
415
+ - 180
416
+ - 240
417
+ observation.state:
418
+ - 8
419
+ observation.action_history:
420
+ - 7
421
+ train_cfg:
422
+ _target_: utils.TrainConfig
423
+ lr: 0.0001
424
+ lr_scheduler: cosine
425
+ lr_warmup_steps: 500
426
+ adam_betas:
427
+ - 0.95
428
+ - 0.999
429
+ adam_eps: 1.0e-08
430
+ adam_weight_decay: 1.0e-06
431
+ grad_clip_norm: 10
432
+ offline_steps: 1000000
433
+ use_amp: true
434
+ observation_cfg:
435
+ _target_: agent.encoder.VisualFeatureSet
436
+ use_depth: true
437
+ use_color: false
438
+ mask_input_dict:
439
+ _target_: agent.encoder.MaskInputDict
440
+ enable: true
441
+ representation: channels
442
+ mask_list:
443
+ - EE_obj_mask
444
+ crop_input_config:
445
+ _target_: agent.encoder.CropInputConfig
446
+ color_crop_type: null
447
+ depth_crop_type: null
448
+ segmask_crop_type: null
449
+ crop_hw:
450
+ - 144
451
+ - 144
452
+ crop_down_offset: 48
453
+ add_crop_binary_mask: false
454
+ add_coord_conv_map: false
455
+ context_input_config:
456
+ _target_: agent.encoder.ContextInputConfig
457
+ use_color: false
458
+ use_depth: false
459
+ mask_input_dict:
460
+ _target_: agent.encoder.MaskInputDict
461
+ enable: false
462
+ representation: channels
463
+ mask_list:
464
+ - EE_obj_mask
465
+ crop_input_config:
466
+ _target_: agent.encoder.CropInputConfig
467
+ color_crop_type: null
468
+ depth_crop_type: null
469
+ segmask_crop_type: null
470
+ crop_hw:
471
+ - 144
472
+ - 144
473
+ crop_down_offset: 48
474
+ add_crop_binary_mask: false
475
+ add_coord_conv_map: false
476
+ mask_soft_approx_scheduler_config:
477
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
478
+ num_steps: 40000
479
+ initial_value: 10.0
480
+ final_value: 1000.0
481
+ interpolation_scheme: cosine
482
+ use_contact_map: true
483
+ use_sdf_maps: true
484
+ use_normals_maps: true
485
+ which_objects: both
486
+ grasped_dtc_max_value: 0.2
487
+ env_dtc_max_value: 0.4
488
+ grasped_normals_mask_max_dtc_value: 0.2
489
+ env_normals_mask_max_dtc_value: 0.4
490
+ clamp_dtc: true
491
+ max_contact_prob: 0.1
492
+ mask_normals_within_sdf: true
493
+ dtc_adaptive_normalization: false
494
+ adaptive_normals_mask: true
495
+ max_depth: 2.0
496
+ image_shape:
497
+ - 13
498
+ - 180
499
+ - 240
500
+ learnable_contact_preprocess_params: true
501
+ learning_rate: 0.0001
502
+ weight_decay: 0.0
503
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
504
+ zero_centered: false
505
+ crop_distractors_tlhw:
506
+ - 32
507
+ - 68
508
+ - 174
509
+ - 174
510
+ suite:
511
+ desc: null
512
+ value:
513
+ suite: frankagym
514
+ name: frankagym
515
+ frame_stack: 1
516
+ action_repeat: 1
517
+ discount: 0.99
518
+ hidden_dim: 1024
519
+ num_train_frames: 2010
520
+ num_seed_frames: 260
521
+ num_train_epochs: 5000
522
+ validate_every_epochs: 100
523
+ validate_diffusion_on_action_loss_every_epochs: 500
524
+ train_eval_diffusion_on_action_loss_every_epochs: 500
525
+ check_topk_every_epochs: 10
526
+ save_snapshot_every_epochs: 5000
527
+ eval_every_frames: 2000
528
+ num_eval_episodes: 5
529
+ save_snapshot: true
530
+ wait_for_user_to_start_episode: true
531
+ task_make_fn:
532
+ _target_: suite.frankagym.make
533
+ name: FrankaInsertion-v1
534
+ height: 240
535
+ width: 320
536
+ frame_stack: 1
537
+ action_repeat: 1
538
+ seed: 1
539
+ enable_arm: true
540
+ enable_gripper: true
541
+ start_with_gripper_open: true
542
+ enable_camera: true
543
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
544
+ contact_estimation_model_ckpt_path: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
545
+ x_limit:
546
+ - 0.2
547
+ - 0.7
548
+ y_limit:
549
+ - -0.4
550
+ - 0.4
551
+ z_limit:
552
+ - -0.05
553
+ - 0.55
554
+ device: cuda
555
+ interpolation_frequency: 25
556
+ policy_frequency: 5
557
+ debug_timestamps: false
558
+ stop_after_action: false
559
+ open_loop: false
560
+ wait_for_new_camera_frames: true
561
+ action_key: action_trajectory_25hz
562
+ action_trajectory_horizon: 36
563
+ action_trajectories: true
564
+ path_to_zarr_dataset: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr
565
+ agent_policy_cfg:
566
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
567
+ compile: false
568
+ device: cuda
569
+ cam_resize_shape:
570
+ - 13
571
+ - 180
572
+ - 240
573
+ orig_cam_shape:
574
+ - 3
575
+ - 240
576
+ - 320
577
+ policy_frequency: 5
578
+ interpolation_frequency: 25
579
+ policy_cfg:
580
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
581
+ n_obs_steps: 1
582
+ horizon: 36
583
+ n_action_steps: 36
584
+ output_shapes:
585
+ action:
586
+ - 7
587
+ input_normalization_modes:
588
+ observation.image: mean_std
589
+ observation.state: min_max
590
+ observation.action_history: min_max
591
+ output_normalization_modes:
592
+ action: min_max
593
+ vision_backbone: resnet18
594
+ crop_distractors_tlhw:
595
+ - 32
596
+ - 68
597
+ - 174
598
+ - 174
599
+ pretrained_backbone_weights: null
600
+ transforms:
601
+ - _target_: torchaug.transforms.RandomAffine
602
+ degrees:
603
+ - -5
604
+ - 5
605
+ translate:
606
+ - 0.05
607
+ - 0.05
608
+ batch_transform: true
609
+ num_chunks: -1
610
+ batch_inplace: true
611
+ - _target_: torchaug.transforms.RandomColorJitter
612
+ brightness: 0.3
613
+ contrast: 0.4
614
+ saturation: 0.5
615
+ hue: 0.08
616
+ batch_transform: true
617
+ num_chunks: -1
618
+ batch_inplace: true
619
+ use_group_norm: true
620
+ spatial_softmax_num_keypoints: 32
621
+ action_history_encoder_config:
622
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
623
+ in_channels: 7
624
+ out_channels: 32
625
+ history_length: 6
626
+ kernel_size: 5
627
+ downsample_kernel_size: 3
628
+ downsample_stride: 2
629
+ downsample_padding: 1
630
+ down_dims:
631
+ - 256
632
+ - 512
633
+ - 1024
634
+ kernel_size: 5
635
+ n_groups: 8
636
+ diffusion_step_embed_dim: 128
637
+ use_film_scale_modulation: true
638
+ noise_scheduler_type: DDIM
639
+ beta_schedule: squaredcos_cap_v2
640
+ beta_start: 0.0001
641
+ beta_end: 0.02
642
+ prediction_type: epsilon
643
+ clip_sample: true
644
+ clip_sample_range: 1.0
645
+ num_train_timesteps: 50
646
+ num_inference_steps: 10
647
+ do_mask_loss_for_padding: false
648
+ input_shapes:
649
+ observation.image:
650
+ - 13
651
+ - 180
652
+ - 240
653
+ context_observation.image:
654
+ - 13
655
+ - 180
656
+ - 240
657
+ observation.state:
658
+ - 8
659
+ observation.action_history:
660
+ - 7
661
+ train_cfg:
662
+ _target_: utils.TrainConfig
663
+ lr: 0.0001
664
+ lr_scheduler: cosine
665
+ lr_warmup_steps: 500
666
+ adam_betas:
667
+ - 0.95
668
+ - 0.999
669
+ adam_eps: 1.0e-08
670
+ adam_weight_decay: 1.0e-06
671
+ grad_clip_norm: 10
672
+ offline_steps: 1000000
673
+ use_amp: true
674
+ observation_cfg:
675
+ _target_: agent.encoder.VisualFeatureSet
676
+ use_depth: true
677
+ use_color: false
678
+ mask_input_dict:
679
+ _target_: agent.encoder.MaskInputDict
680
+ enable: true
681
+ representation: channels
682
+ mask_list:
683
+ - EE_obj_mask
684
+ crop_input_config:
685
+ _target_: agent.encoder.CropInputConfig
686
+ color_crop_type: null
687
+ depth_crop_type: null
688
+ segmask_crop_type: null
689
+ crop_hw:
690
+ - 144
691
+ - 144
692
+ crop_down_offset: 48
693
+ add_crop_binary_mask: false
694
+ add_coord_conv_map: false
695
+ context_input_config:
696
+ _target_: agent.encoder.ContextInputConfig
697
+ use_color: false
698
+ use_depth: false
699
+ mask_input_dict:
700
+ _target_: agent.encoder.MaskInputDict
701
+ enable: false
702
+ representation: channels
703
+ mask_list:
704
+ - EE_obj_mask
705
+ crop_input_config:
706
+ _target_: agent.encoder.CropInputConfig
707
+ color_crop_type: null
708
+ depth_crop_type: null
709
+ segmask_crop_type: null
710
+ crop_hw:
711
+ - 144
712
+ - 144
713
+ crop_down_offset: 48
714
+ add_crop_binary_mask: false
715
+ add_coord_conv_map: false
716
+ mask_soft_approx_scheduler_config:
717
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
718
+ num_steps: 40000
719
+ initial_value: 10.0
720
+ final_value: 1000.0
721
+ interpolation_scheme: cosine
722
+ use_contact_map: true
723
+ use_sdf_maps: true
724
+ use_normals_maps: true
725
+ which_objects: both
726
+ grasped_dtc_max_value: 0.2
727
+ env_dtc_max_value: 0.4
728
+ grasped_normals_mask_max_dtc_value: 0.2
729
+ env_normals_mask_max_dtc_value: 0.4
730
+ clamp_dtc: true
731
+ max_contact_prob: 0.1
732
+ mask_normals_within_sdf: true
733
+ dtc_adaptive_normalization: false
734
+ adaptive_normals_mask: true
735
+ max_depth: 2.0
736
+ image_shape:
737
+ - 13
738
+ - 180
739
+ - 240
740
+ learnable_contact_preprocess_params: true
741
+ learning_rate: 0.0001
742
+ weight_decay: 0.0
743
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
744
+ zero_centered: false
745
+ crop_distractors_tlhw:
746
+ - 32
747
+ - 68
748
+ - 174
749
+ - 174
750
+ true_action_history: false
751
+ num_train_frames_bc:
752
+ desc: null
753
+ value: 50000
754
+ num_train_frames_drq:
755
+ desc: null
756
+ value: 1100000
757
+ stddev_schedule_drq:
758
+ desc: null
759
+ value: linear(1.0,0.1,100000)
760
+ task_name:
761
+ desc: null
762
+ value: FrankaInsertion-v1
763
+ num_train_frames_vinn:
764
+ desc: null
765
+ value: 25000
766
+ num_train_frames_diffusion:
767
+ desc: null
768
+ value: 1000000
769
+ num_train_epochs_bc:
770
+ desc: null
771
+ value: 5000
772
+ num_train_epochs_diffusion:
773
+ desc: null
774
+ value: 15000
775
+ validate_every_epochs_bc:
776
+ desc: null
777
+ value: 5
778
+ validate_every_epochs_diffusion:
779
+ desc: null
780
+ value: 250
781
+ validate_diffusion_on_action_loss_every_epochs:
782
+ desc: null
783
+ value: 250
784
+ train_eval_diffusion_on_action_loss_every_epochs:
785
+ desc: null
786
+ value: 250
787
+ check_topk_every_epochs:
788
+ desc: null
789
+ value: 5
790
+ check_topk_every_epochs_diffusion:
791
+ desc: null
792
+ value: 250
793
+ save_snapshot_every_epochs_diffusion:
794
+ desc: null
795
+ value: 1500
796
+ x_limit:
797
+ desc: null
798
+ value:
799
+ - 0.2
800
+ - 0.7
801
+ y_limit:
802
+ desc: null
803
+ value:
804
+ - -0.4
805
+ - 0.4
806
+ z_limit:
807
+ desc: null
808
+ value:
809
+ - -0.05
810
+ - 0.55
811
+ home_displacement:
812
+ desc: null
813
+ value:
814
+ - 0.55
815
+ - 0.0
816
+ - 0.55
817
+ - 180.0
818
+ - 0.0
819
+ - 0.0
820
+ enable_gripper:
821
+ desc: null
822
+ value: true
823
+ start_with_gripper_open:
824
+ desc: null
825
+ value: true
826
+ offset_mask:
827
+ desc: null
828
+ value:
829
+ - 1
830
+ - 1
831
+ - 1
832
+ - 1
833
+ - 1
834
+ - 1
835
+ path_to_depth_extrinsics:
836
+ desc: null
837
+ value: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
838
+ test:
839
+ desc: null
840
+ value:
841
+ username: leonmkim
842
+ hostname: grasp-login1
843
+ name_of_expert_demo: 112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
844
+ root_dir: ~/fish_leon
845
+ expert_dataset_dirpath: ~/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
846
+ expert_dataset: ~/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr
847
+ semantic_demo_grouping_name: semantic_demo_grouping.yaml
848
+ semantic_demo_grouping: ~/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml
849
+ include_groups_list: all
850
+ batch_size: 128
851
+ store_dataset_in_memory: false
852
+ use_tb: true
853
+ local_snapshot_root_dir: /mnt/bighdd/fish_contact_backup
854
+ local_snapshot_dir: /mnt/bighdd/fish_contact_backup/exp_local/frankagym_pixels/FrankaInsertion-v1
855
+ resume_wandb_run: false
856
+ feature_type:
857
+ desc: null
858
+ value: 180x240_crpdstlhw24x51x130x130_1_D_2.0_msk_channels_EE_obj_mask_cntct_0.1_DTC_clmpd_lrnbl_nrmls_DTCmask_adpt_lrnbl_both_lr_0.0001_wd_0.0_local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9_acthist_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1
859
+ save_buffer:
860
+ desc: null
861
+ value: true
862
+ num_eval:
863
+ desc: null
864
+ value: 5
865
+ random_start:
866
+ desc: null
867
+ value: false
868
+ eval_starts:
869
+ desc: null
870
+ value: /home/leonmkim/fish_leon/FISH/eval_starts/frankagym_pixels/FrankaInsertion-v1
871
+ num_valid_demos:
872
+ desc: null
873
+ value: null
874
+ load_checkpoint:
875
+ desc: null
876
+ value: true
877
+ checkpoint_epoch:
878
+ desc: null
879
+ value: 7500
880
+ load_residual_weight:
881
+ desc: null
882
+ value: false
883
+ checkpoint_root_dir:
884
+ desc: null
885
+ value: /home/leonmkim/fish_leon/FISH
886
+ checkpoint_weight_dir:
887
+ desc: null
888
+ value: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1
889
+ residual_weight:
890
+ desc: null
891
+ value: /home/leonmkim/fish_leon/FISH/weights/frankagym_pixels/FrankaInsertion-v1/weight.pt
892
+ final_experiment_dir:
893
+ desc: null
894
+ value: ./exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm
895
+ _wandb:
896
+ desc: null
897
+ value:
898
+ code_path: code/FISH/eval_robot.py
899
+ python_version: 3.10.14
900
+ cli_version: 0.17.5
901
+ framework: torch
902
+ is_jupyter_run: false
903
+ is_kaggle_kernel: false
904
+ start_time: 1737512716
905
+ t:
906
+ 1:
907
+ - 1
908
+ - 41
909
+ - 49
910
+ - 50
911
+ - 55
912
+ - 83
913
+ 2:
914
+ - 1
915
+ - 41
916
+ - 49
917
+ - 50
918
+ - 55
919
+ - 83
920
+ 3:
921
+ - 14
922
+ - 16
923
+ - 23
924
+ - 35
925
+ - 62
926
+ 4: 3.10.14
927
+ 5: 0.17.5
928
+ 8:
929
+ - 5
930
+ 13: linux-x86_64
931
+ grasped_obj_name:
932
+ desc: null
933
+ value: greece
934
+ left_book_slot:
935
+ desc: null
936
+ value: twodim
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/diff.patch ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ diff --git a/FISH/cfgs/config_eval.yaml b/FISH/cfgs/config_eval.yaml
2
+ index bb5fa99..3a697a3 100644
3
+ --- a/FISH/cfgs/config_eval.yaml
4
+ +++ b/FISH/cfgs/config_eval.yaml
5
+ @@ -82,7 +82,7 @@ contact_estimation_model_ckpt_path: '~/fish_leon/contact_estimation/artifacts/17
6
+
7
+ # Number of evaluation trajectories
8
+ # num_eval: 10
9
+ -num_eval: 20
10
+ +num_eval: 5
11
+
12
+ debug_timestamps: False
13
+ open_loop: False
14
+ @@ -144,8 +144,8 @@ load_checkpoint: ${agent.load_checkpoint}
15
+ # wandb_run_id: '3465_2' # seed 2
16
+
17
+ # crp_D+mask+contact+act history
18
+ -wandb_run_id: '4295_0'
19
+ -# wandb_run_id: '4295_1' # seed 1
20
+ +# wandb_run_id: '4295_0'
21
+ +wandb_run_id: '4295_1' # seed 1
22
+ # wandb_run_id: '4295_2' # seed 2
23
+
24
+ # RGBD+mask+act history
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/table/eval/success_rate_ci_5_d8821c50291f0fbf979f.table.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"columns": ["success_rate", "success_rate_lb_0.01", "success_rate_ub_0.01", "success_rate_lb_0.025", "success_rate_ub_0.025", "success_rate_lb_0.05", "success_rate_ub_0.05", "success_rate_lb_0.1", "success_rate_ub_0.1"], "data": [[1.0, 0.7501049041247838, 1, 0.6051223873881857, 1, 0.6927025019737123, 1, 0.6332908421488255, 1]]}
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/table/eval/total_success_rate_ci_6_e3405f8336f17a4a59dd.table.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"columns": ["total_num_successes", "total_num_episodes", "total_success_rate", "total_success_rate_lb_0.01", "total_success_rate_ub_0.01", "total_success_rate_lb_0.025", "total_success_rate_ub_0.025", "total_success_rate_lb_0.05", "total_success_rate_ub_0.05", "total_success_rate_lb_0.1", "total_success_rate_ub_0.1"], "data": [[5, 5, 1.0, 0.9786591528888874, 1, 0.5107108652570282, 1, 0.5613806098576808, 1, 1, 1]]}
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/videos/eval/0_eval_0_43ff0adeaa2aac56e705.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:43ff0adeaa2aac56e705ffe46113ad0ea61aecc3b467f045c11c40cac3fc026e
3
+ size 1497303
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/videos/eval/1_eval_1_6b41bcf0751cacefe8bb.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6b41bcf0751cacefe8bb11ec7af9ed5e5a069aa9e2900ac19b43d8ad540a4e4e
3
+ size 1533229
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/videos/eval/2_eval_2_ebcc91651af67cca62de.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ebcc91651af67cca62de31104a2a79dbb6f62a076e08fa6d01ca662c3bdf77a2
3
+ size 1542126
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/videos/eval/3_eval_3_6c7d164a44f31be2687d.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6c7d164a44f31be2687d000530560b70a01353d005e918556e3a5e5ea9972a78
3
+ size 1578241
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/media/videos/eval/4_eval_4_1dd664735f9b5c78730c.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1dd664735f9b5c78730cb288e5b87cf1102ace7673ed83e702aab87668bca5ce
3
+ size 1549753
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/output.log ADDED
@@ -0,0 +1,264 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ loaded agent with feature_type: 180x240_crpdstlhw24x51x130x130_1_D_2.0_msk_channels_EE_obj_mask_cntct_0.1_DTC_clmpd_lrnbl_nrmls_DTCmask_adpt_lrnbl_both_lr_0.0001_wd_0.0_local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9_acthist_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1
3
+ [INFO] [1737512724.845518]: resetting environment
4
+ [INFO] [1737512724.852802]: cleared current plan
5
+ [INFO] [1737512724.853707]: moving to home
6
+ [INFO] [1737512725.855743]: reached home
7
+ [INFO] [1737512725.857075]: reset action history
8
+ [INFO] [1737512728.567875]: environment reset
9
+ Starting episode 0
10
+ [INFO] [1737512728.572582]: resetting environment
11
+ [INFO] [1737512728.577631]: cleared current plan
12
+ [INFO] [1737512728.578729]: moving to home
13
+ [INFO] [1737512729.581264]: reached home
14
+ [INFO] [1737512729.582628]: reset action history
15
+ [INFO] [1737512732.292210]: environment reset
16
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
17
+ proceeding to start episode!
18
+ [INFO] [1737512733.564496]: resetting environment
19
+ [INFO] [1737512733.568739]: cleared current plan
20
+ [INFO] [1737512733.569833]: moving to home
21
+ [INFO] [1737512734.572695]: reached home
22
+ [INFO] [1737512734.573899]: reset action history
23
+ [INFO] [1737512737.282510]: environment reset
24
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm/episode_rosbags/episode_0_2025-01-21-21-25-37.bag
25
+ ... logging to /home/leonmkim/.ros/log/1b77c894-d3af-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-2650272.log
26
+ started roslaunch server http://158.130.50.37:44097/
27
+ SUMMARY
28
+ ========
29
+ PARAMETERS
30
+ * /rosdistro: noetic
31
+ * /rosversion: 1.16.0
32
+ NODES
33
+ /
34
+ print_text (rostopic/rostopic)
35
+ pub_text (rostopic/rostopic)
36
+ rosbag_record (rosbag/record)
37
+ ROS_MASTER_URI=http://localhost:11311
38
+ process[pub_text-1]: started with pid [2650577]
39
+ process[print_text-2]: started with pid [2650601]
40
+ process[rosbag_record-3]: started with pid [2650602]
41
+ started bagging!
42
+ [INFO] [1737512772.293201]: Storing episode...
43
+ [rosbag_record-3] killing on exit
44
+ [print_text-2] killing on exit
45
+ [pub_text-1] killing on exit
46
+ [INFO] [1737512773.050043]: Stored episode 1.
47
+ [INFO] [1737512773.055691]: Saving video...
48
+ [INFO] [1737512773.263689]: Video saved!
49
+ Starting episode 1
50
+ [INFO] [1737512773.282404]: resetting environment
51
+ [INFO] [1737512773.291131]: cleared current plan
52
+ [INFO] [1737512773.291401]: moving to home
53
+ [INFO] [1737512776.894495]: reached home
54
+ [INFO] [1737512776.894943]: reset action history
55
+ [INFO] [1737512779.663930]: environment reset
56
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
57
+ proceeding to start episode!
58
+ Comuting lower confidence bound
59
+ Comuting upper confidence bound
60
+ Comuting lower confidence bound
61
+ Comuting upper confidence bound
62
+ Comuting lower confidence bound
63
+ Comuting upper confidence bound
64
+ Comuting lower confidence bound
65
+ Comuting upper confidence bound
66
+ [INFO] [1737512788.443367]: resetting environment
67
+ [INFO] [1737512788.447132]: cleared current plan
68
+ [INFO] [1737512788.447319]: moving to home
69
+ [INFO] [1737512789.448732]: reached home
70
+ [INFO] [1737512789.449382]: reset action history
71
+ [INFO] [1737512792.159430]: environment reset
72
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm/episode_rosbags/episode_1_2025-01-21-21-26-32.bag
73
+ ... logging to /home/leonmkim/.ros/log/1b77c894-d3af-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-2650272.log
74
+ started roslaunch server http://158.130.50.37:42095/
75
+ SUMMARY
76
+ ========
77
+ PARAMETERS
78
+ * /rosdistro: noetic
79
+ * /rosversion: 1.16.0
80
+ NODES
81
+ /
82
+ print_text (rostopic/rostopic)
83
+ pub_text (rostopic/rostopic)
84
+ rosbag_record (rosbag/record)
85
+ ROS_MASTER_URI=http://localhost:11311
86
+ process[pub_text-4]: started with pid [2650756]
87
+ process[print_text-5]: started with pid [2650757]
88
+ process[rosbag_record-6]: started with pid [2650758]
89
+ started bagging!
90
+ [INFO] [1737512827.081540]: Storing episode...
91
+ [rosbag_record-6] killing on exit
92
+ [print_text-5] killing on exit[pub_text-4] killing on exit
93
+ [INFO] [1737512827.833222]: Stored episode 2.
94
+ [INFO] [1737512827.845796]: Saving video...
95
+ [INFO] [1737512828.072531]: Video saved!
96
+ Starting episode 2
97
+ [INFO] [1737512828.103480]: resetting environment
98
+ [INFO] [1737512828.123565]: cleared current plan
99
+ [INFO] [1737512828.127642]: moving to home
100
+ [INFO] [1737512831.744768]: reached home
101
+ [INFO] [1737512831.749003]: reset action history
102
+ [INFO] [1737512834.472909]: environment reset
103
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
104
+ proceeding to start episode!Comuting lower confidence bound
105
+ Comuting upper confidence bound
106
+ Comuting lower confidence bound
107
+ Comuting upper confidence bound
108
+ Comuting lower confidence bound
109
+ Comuting upper confidence bound
110
+ Comuting lower confidence bound
111
+ Comuting upper confidence bound
112
+ [INFO] [1737512835.894581]: resetting environment
113
+ [INFO] [1737512835.912276]: cleared current plan
114
+ [INFO] [1737512835.915297]: moving to home
115
+ [INFO] [1737512836.918894]: reached home
116
+ [INFO] [1737512836.919698]: reset action history
117
+ [INFO] [1737512839.646399]: environment reset
118
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm/episode_rosbags/episode_2_2025-01-21-21-27-19.bag
119
+ ... logging to /home/leonmkim/.ros/log/1b77c894-d3af-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-2650272.log
120
+ started roslaunch server http://158.130.50.37:37843/
121
+ SUMMARY
122
+ ========
123
+ PARAMETERS
124
+ * /rosdistro: noetic
125
+ * /rosversion: 1.16.0
126
+ NODES
127
+ /
128
+ print_text (rostopic/rostopic)
129
+ pub_text (rostopic/rostopic)
130
+ rosbag_record (rosbag/record)
131
+ ROS_MASTER_URI=http://localhost:11311
132
+ process[pub_text-7]: started with pid [2650900]
133
+ process[print_text-8]: started with pid [2650908]
134
+ process[rosbag_record-9]: started with pid [2650909]
135
+ started bagging!
136
+ For topic gripper_width: timestamp difference is 100456463 for nearest: 1737512861079159723 - target: 1737512860978703260 at idx 249
137
+ For topic gripper_width: timestamp difference is 112619277 for nearest: 1737512867079105254 - target: 1737512866966485977 at idx 249
138
+ For topic gripper_width: timestamp difference is 111569451 for nearest: 1737512871979117440 - target: 1737512871867547989 at idx 249
139
+ [INFO] [1737512875.598048]: Storing episode...
140
+ [rosbag_record-9] killing on exit
141
+ [print_text-8] killing on exit
142
+ [pub_text-7] killing on exit
143
+ [INFO] [1737512876.353447]: Stored episode 3.
144
+ [INFO] [1737512876.356951]: Saving video...
145
+ [INFO] [1737512876.573018]: Video saved!
146
+ Starting episode 3
147
+ [INFO] [1737512876.616644]: resetting environment
148
+ [INFO] [1737512876.644454]: cleared current plan
149
+ [INFO] [1737512876.647381]: moving to home
150
+ [INFO] [1737512880.252689]: reached home
151
+ [INFO] [1737512880.261163]: reset action history
152
+ [INFO] [1737512883.047823]: environment reset
153
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
154
+ proceeding to start episode!Comuting lower confidence bound
155
+ Comuting upper confidence bound
156
+ Comuting lower confidence bound
157
+ Comuting upper confidence bound
158
+ Comuting lower confidence bound
159
+ Comuting upper confidence bound
160
+ Comuting lower confidence bound
161
+ Comuting upper confidence bound
162
+ [INFO] [1737512888.268791]: resetting environment
163
+ [INFO] [1737512888.286587]: cleared current plan
164
+ [INFO] [1737512888.286812]: moving to home
165
+ [INFO] [1737512889.288758]: reached home
166
+ [INFO] [1737512889.293517]: reset action history
167
+ [INFO] [1737512892.070584]: environment reset
168
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm/episode_rosbags/episode_3_2025-01-21-21-28-12.bag
169
+ ... logging to /home/leonmkim/.ros/log/1b77c894-d3af-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-2650272.log
170
+ started roslaunch server http://158.130.50.37:45317/
171
+ SUMMARY
172
+ ========
173
+ PARAMETERS
174
+ * /rosdistro: noetic
175
+ * /rosversion: 1.16.0
176
+ NODES
177
+ /
178
+ print_text (rostopic/rostopic)
179
+ pub_text (rostopic/rostopic)
180
+ rosbag_record (rosbag/record)
181
+ ROS_MASTER_URI=http://localhost:11311
182
+ process[pub_text-10]: started with pid [2651042]
183
+ process[print_text-11]: started with pid [2651043]
184
+ process[rosbag_record-12]: started with pid [2651044]
185
+ started bagging!
186
+ For topic gripper_width: timestamp difference is 117910521 for nearest: 1737512922679159300 - target: 1737512922561248779 at idx 249
187
+ [INFO] [1737512928.848335]: Storing episode...
188
+ [pub_text-10] killing on exit[print_text-11] killing on exit
189
+ [rosbag_record-12] killing on exit
190
+ [INFO] [1737512929.804549]: Stored episode 4.
191
+ [INFO] [1737512929.818505]: Saving video...
192
+ [INFO] [1737512930.077425]: Video saved!
193
+ Starting episode 4
194
+ [INFO] [1737512930.131616]: resetting environment
195
+ [INFO] [1737512930.151739]: cleared current plan
196
+ [INFO] [1737512930.152471]: moving to home
197
+ [INFO] [1737512933.761069]: reached home
198
+ [INFO] [1737512933.763967]: reset action history
199
+ [INFO] [1737512936.551983]: environment reset
200
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
201
+ proceeding to start episode!Comuting lower confidence bound
202
+ Comuting upper confidence bound
203
+ Comuting lower confidence bound
204
+ Comuting upper confidence bound
205
+ Comuting lower confidence bound
206
+ Comuting upper confidence bound
207
+ Comuting lower confidence bound
208
+ Comuting upper confidence bound
209
+ [INFO] [1737512940.947392]: resetting environment
210
+ [INFO] [1737512940.993072]: cleared current plan
211
+ [INFO] [1737512940.996505]: moving to home
212
+ [INFO] [1737512942.003433]: reached home
213
+ [INFO] [1737512942.006438]: reset action history
214
+ [INFO] [1737512944.797894]: environment reset
215
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm/episode_rosbags/episode_4_2025-01-21-21-29-04.bag
216
+ ... logging to /home/leonmkim/.ros/log/1b77c894-d3af-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-2650272.log
217
+ started roslaunch server http://158.130.50.37:45483/
218
+ SUMMARY
219
+ ========
220
+ PARAMETERS
221
+ * /rosdistro: noetic
222
+ * /rosversion: 1.16.0
223
+ NODES
224
+ /
225
+ print_text (rostopic/rostopic)
226
+ pub_text (rostopic/rostopic)
227
+ rosbag_record (rosbag/record)
228
+ ROS_MASTER_URI=http://localhost:11311
229
+ process[pub_text-13]: started with pid [2651182]
230
+ process[print_text-14]: started with pid [2651183]
231
+ process[rosbag_record-15]: started with pid [2651184]
232
+ started bagging!
233
+ For topic gripper_width: timestamp difference is 102262214 for nearest: 1737512949979182676 - target: 1737512949876920462 at idx 67
234
+ [INFO] [1737512981.086152]: Storing episode...
235
+ [rosbag_record-15] killing on exit
236
+ [pub_text-13] killing on exit
237
+ [print_text-14] killing on exit
238
+ [INFO] [1737512981.952518]: Stored episode 5.
239
+ [INFO] [1737512981.954539]: Saving video...
240
+ [INFO] [1737512982.180001]: Video saved!
241
+ [INFO] [1737512982.250940]: resetting environment
242
+ [INFO] [1737512982.289704]: cleared current plan
243
+ [INFO] [1737512982.290060]: moving to home
244
+ [INFO] [1737512985.893738]: reached home
245
+ [INFO] [1737512985.900269]: reset action history
246
+ [INFO] [1737512988.707855]: environment reset
247
+ Evaluation finished. To wrap up, rate prev episode, press 0 for failure and 1 for success
248
+ proceeding to start episode!Comuting lower confidence bound
249
+ Comuting upper confidence bound
250
+ Comuting lower confidence bound
251
+ Comuting upper confidence bound
252
+ Comuting lower confidence bound
253
+ Comuting upper confidence bound
254
+ Comuting lower confidence bound
255
+ Comuting upper confidence bound
256
+ Comuting lower confidence bound
257
+ Comuting upper confidence bound
258
+ Comuting lower confidence bound
259
+ Comuting upper confidence bound
260
+ Comuting lower confidence bound
261
+ Comuting upper confidence bound
262
+ Comuting lower confidence bound
263
+ Comuting upper confidence bound
264
+ proceeding to start episode!
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/requirements.txt ADDED
@@ -0,0 +1,340 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Cython==3.0.10
2
+ Farama-Notifications==0.0.4
3
+ GitPython==3.1.43
4
+ Jinja2==3.1.4
5
+ Markdown==3.6
6
+ MarkupSafe==2.1.5
7
+ POT==0.7.0
8
+ PyOpenGL==3.1.7
9
+ PySocks==1.7.1
10
+ PyYAML==6.0.1
11
+ Pygments==2.18.0
12
+ Rtree==1.3.0
13
+ Werkzeug==3.0.3
14
+ absl-py==2.1.0
15
+ accelerate==0.33.0
16
+ actionlib-msgs==1.13.0.post3
17
+ actionlib==1.12.0
18
+ actionlib==1.14.0
19
+ aiohttp==3.9.5
20
+ aiosignal==1.3.1
21
+ angles==1.9.13
22
+ antlr4-python3-runtime==4.9.3
23
+ anyio==4.4.0
24
+ asciitree==0.3.3
25
+ async-timeout==4.0.3
26
+ attrs==23.2.0
27
+ autoprop==4.1.0
28
+ beartype==0.18.5
29
+ beautifulsoup4==4.12.3
30
+ binomial_cis==0.0.11
31
+ bondpy==1.8.6
32
+ byol-pytorch==0.8.0
33
+ cachetools==5.4.0
34
+ camera-calibration-parsers==1.12.0
35
+ camera-calibration==1.17.0
36
+ cascadio==0.0.13
37
+ catkin-pkg==1.0.0
38
+ catkin==0.7.18
39
+ catkin==0.8.10
40
+ certifi==2024.7.4
41
+ cffi==1.16.0
42
+ chardet==5.2.0
43
+ charset-normalizer==3.3.2
44
+ click==8.1.7
45
+ cloudpickle==3.0.0
46
+ cmake==3.30.1
47
+ colorlog==6.8.2
48
+ contourpy==1.2.1
49
+ controller-manager-msgs==0.20.0
50
+ controller-manager==0.20.0
51
+ coverage==7.6.0
52
+ coveralls==4.0.1
53
+ cv-bridge==1.16.2
54
+ cycler==0.12.1
55
+ datasets==2.20.0
56
+ decorator==4.4.2
57
+ deepdiff==7.0.1
58
+ defusedxml==0.7.1
59
+ diagnostic-analysis==1.11.0
60
+ diagnostic-common-diagnostics==1.11.0
61
+ diagnostic-updater==1.11.0
62
+ diffusers==0.27.2
63
+ dill==0.3.8
64
+ distro==1.9.0
65
+ dm-control==1.0.8
66
+ dm-env==1.6
67
+ dm-tree==0.1.8
68
+ docker-pycreds==0.4.0
69
+ docopt==0.6.2
70
+ docutils==0.21.2
71
+ dynamic-reconfigure==1.7.3
72
+ einops==0.8.0
73
+ embreex==2.17.7.post5
74
+ empy==3.3.4
75
+ etils==1.7.0
76
+ exceptiongroup==1.2.2
77
+ ezdxf==1.3.2
78
+ fasteners==0.19
79
+ filelock==3.15.4
80
+ fonttools==4.53.1
81
+ freetype-py==2.4.0
82
+ frozenlist==1.4.1
83
+ fsspec==2024.5.0
84
+ gazebo_plugins==2.9.2
85
+ gazebo_ros==2.9.2
86
+ gdown==5.2.0
87
+ gencpp==0.7.0
88
+ geneus==3.0.0
89
+ genlisp==0.4.18
90
+ genmsg==0.5.12
91
+ genmsg==0.6.0
92
+ gennodejs==2.0.2
93
+ genpy==0.6.14
94
+ genpy==0.6.15
95
+ geometry-msgs==1.13.0.post2
96
+ gitdb==4.0.11
97
+ glfw==2.7.0
98
+ glooey==0.3.6
99
+ gmsh==4.12.2
100
+ gnupg==2.3.1
101
+ google-auth-oauthlib==1.0.0
102
+ google-auth==2.32.0
103
+ grpcio==1.65.1
104
+ gym-envs==0.0.1
105
+ gym-notices==0.0.8
106
+ gym==0.22.0
107
+ gymnasium==0.29.1
108
+ h11==0.14.0
109
+ h5py==3.11.0
110
+ hf_transfer==0.1.8
111
+ httpcore==1.0.5
112
+ httpx==0.27.0
113
+ huggingface-hub==0.23.5
114
+ hydra-core==1.3.2
115
+ hydra-submitit-launcher==1.2.0
116
+ idna==3.7
117
+ image-geometry==1.16.2
118
+ imageio-ffmpeg==0.5.1
119
+ imageio==2.34.2
120
+ importlib_metadata==8.2.0
121
+ importlib_resources==6.4.0
122
+ iniconfig==2.0.0
123
+ interactive-markers==1.12.0
124
+ joint-state-publisher-gui==1.15.1
125
+ joint-state-publisher==1.15.1
126
+ jsonschema-specifications==2023.12.1
127
+ jsonschema==4.23.0
128
+ kiwisolver==1.4.5
129
+ kornia==0.7.3
130
+ kornia_rs==0.1.5
131
+ labmaze==1.0.6
132
+ laser_geometry==1.6.7
133
+ lazy_loader==0.4
134
+ lerobot==0.1.0
135
+ lightning-utilities==0.11.6
136
+ llvmlite==0.43.0
137
+ lxml==5.2.2
138
+ manifold3d==2.5.1
139
+ mapbox-earcut==1.0.1
140
+ markdown-it-py==3.0.0
141
+ matplotlib==3.9.1
142
+ mdurl==0.1.2
143
+ meshio==5.3.5
144
+ message-filters==1.16.0
145
+ more-itertools==10.3.0
146
+ moviepy==1.0.3
147
+ mpmath==1.3.0
148
+ mujoco==3.2.0
149
+ multidict==6.0.5
150
+ multiprocess==0.70.16
151
+ natsort==8.4.0
152
+ netifaces==0.11.0
153
+ networkx==3.3
154
+ nodeenv==1.9.1
155
+ numba==0.60.0
156
+ numcodecs==0.13.0
157
+ numpy==1.26.4
158
+ nvidia-cublas-cu12==12.1.3.1
159
+ nvidia-cuda-cupti-cu12==12.1.105
160
+ nvidia-cuda-nvrtc-cu12==12.1.105
161
+ nvidia-cuda-runtime-cu12==12.1.105
162
+ nvidia-cudnn-cu12==9.1.0.70
163
+ nvidia-cufft-cu12==11.0.2.54
164
+ nvidia-curand-cu12==10.3.2.106
165
+ nvidia-cusolver-cu12==11.4.5.107
166
+ nvidia-cusparse-cu12==12.1.0.106
167
+ nvidia-nccl-cu12==2.20.5
168
+ nvidia-nvjitlink-cu12==12.5.82
169
+ nvidia-nvtx-cu12==12.1.105
170
+ oauthlib==3.2.2
171
+ omegaconf==2.3.0
172
+ openctm==0.0.5
173
+ opencv-python==4.10.0.84
174
+ ordered-set==4.1.0
175
+ packaging==24.1
176
+ pandas==2.2.2
177
+ pillow==10.4.0
178
+ pip==24.3.1
179
+ platformdirs==4.2.2
180
+ pluggy==1.5.0
181
+ proglog==0.1.10
182
+ protobuf==5.27.2
183
+ psutil==6.0.0
184
+ pyarrow-hotfix==0.6
185
+ pyarrow==17.0.0
186
+ pyasn1==0.6.0
187
+ pyasn1_modules==0.4.0
188
+ pyav==12.3.0
189
+ pycollada==0.8
190
+ pycparser==2.22
191
+ pycryptodomex==3.21.0
192
+ pyglet==1.5.29
193
+ pyinstrument==4.6.2
194
+ pymunk==6.8.1
195
+ pyparsing==2.4.7
196
+ pyrealsense2==2.54.2.5684
197
+ pyribbit==0.1.46
198
+ pyright==1.1.373
199
+ pytest-beartype==0.0.2
200
+ pytest-cov==5.0.0
201
+ pytest==8.3.1
202
+ python-dateutil==2.9.0.post0
203
+ python-fcl==0.7.0.6
204
+ python-qt-binding==0.4.4
205
+ pytorch-lightning==2.4.0
206
+ pytz==2024.1
207
+ qt-dotgraph==0.4.2
208
+ qt-gui-cpp==0.4.2
209
+ qt-gui-py-common==0.4.2
210
+ qt-gui==0.4.2
211
+ referencing==0.35.1
212
+ regex==2024.5.15
213
+ requests-oauthlib==2.0.0
214
+ requests==2.32.3
215
+ rerun-sdk==0.17.0
216
+ resource_retriever==1.12.7
217
+ rich==13.7.1
218
+ ros-numpy==0.0.5
219
+ rosbag==1.16.0
220
+ rosboost-cfg==1.15.8
221
+ rosclean==1.15.8
222
+ roscpp==1.15.11
223
+ roscreate==1.15.8
224
+ rosgraph-msgs==1.11.3.post2
225
+ rosgraph==1.15.11
226
+ rosgraph==1.16.0
227
+ roslaunch==1.16.0
228
+ roslib==1.14.7.post0
229
+ roslib==1.15.8
230
+ roslint==0.12.0
231
+ roslz4==1.16.0
232
+ rosmake==1.15.8
233
+ rosmaster==1.16.0
234
+ rosmsg==1.16.0
235
+ rosnode==1.16.0
236
+ rosparam==1.16.0
237
+ rospkg==1.5.1
238
+ rospy==1.15.11
239
+ rospy==1.16.0
240
+ rosservice==1.16.0
241
+ rostest==1.16.0
242
+ rostopic==1.16.0
243
+ rosunit==1.15.8
244
+ roswtf==1.16.0
245
+ rpds-py==0.19.1
246
+ rqt-console==0.4.12
247
+ rqt-image-view==0.4.17
248
+ rqt-logger-level==0.4.12
249
+ rqt-moveit==0.5.11
250
+ rqt-reconfigure==0.5.5
251
+ rqt-robot-dashboard==0.5.8
252
+ rqt-robot-monitor==0.5.15
253
+ rqt-runtime-monitor==0.5.10
254
+ rqt-rviz==0.7.0
255
+ rqt-tf-tree==0.6.4
256
+ rqt_action==0.4.9
257
+ rqt_bag==0.5.1
258
+ rqt_bag_plugins==0.5.1
259
+ rqt_dep==0.4.12
260
+ rqt_graph==0.4.14
261
+ rqt_gui==0.5.3
262
+ rqt_gui_py==0.5.3
263
+ rqt_launch==0.4.9
264
+ rqt_msg==0.4.10
265
+ rqt_nav_view==0.5.7
266
+ rqt_plot==0.4.13
267
+ rqt_pose_view==0.5.11
268
+ rqt_publisher==0.4.10
269
+ rqt_py_common==0.5.3
270
+ rqt_py_console==0.4.10
271
+ rqt_robot_steering==0.5.12
272
+ rqt_service_caller==0.4.10
273
+ rqt_shell==0.4.11
274
+ rqt_srv==0.4.9
275
+ rqt_top==0.4.10
276
+ rqt_topic==0.4.13
277
+ rqt_web==0.4.10
278
+ rsa==4.9
279
+ ruff==0.5.4
280
+ rviz==1.14.25
281
+ safetensors==0.4.3
282
+ scikit-image==0.24.0
283
+ scikit-video==1.1.11
284
+ scipy==1.14.0
285
+ seaborn==0.13.2
286
+ sensor-msgs==1.13.1
287
+ sentry-sdk==2.11.0
288
+ setproctitle==1.3.3
289
+ setuptools==65.5.0
290
+ shapely==2.0.5
291
+ signature_dispatch==1.0.1
292
+ six==1.16.0
293
+ smach-ros==2.5.2
294
+ smach==2.5.2
295
+ smclib==1.8.6
296
+ smmap==5.0.1
297
+ sniffio==1.3.1
298
+ soupsieve==2.5
299
+ std-msgs==0.5.13.post0
300
+ submitit==1.5.1
301
+ svg.path==6.3
302
+ sympy==1.13.1
303
+ tensorboard-data-server==0.7.2
304
+ tensorboard==2.14.0
305
+ termcolor==2.4.0
306
+ tf-conversions==1.13.2
307
+ tf2-geometry-msgs==0.7.7
308
+ tf2-kdl==0.7.7
309
+ tf2-msgs==0.7.2.post3
310
+ tf2-py==0.7.7
311
+ tf2-ros==0.6.5
312
+ tf2-ros==0.7.7
313
+ tf2_py==0.6.5.post1
314
+ tf==1.13.2
315
+ tifffile==2024.7.24
316
+ tomli==2.0.1
317
+ topic-tools==1.16.0
318
+ torch==2.4.0
319
+ torchaug==0.5.2
320
+ torchmetrics==1.4.0.post0
321
+ torchvision==0.19.0
322
+ tqdm==4.66.4
323
+ trimesh==4.4.3
324
+ triton==3.0.0
325
+ typeguard==3.0.2
326
+ typing_extensions==4.12.2
327
+ tzdata==2024.1
328
+ urchin==0.0.27
329
+ urllib3==2.2.2
330
+ vecrec==0.3.1
331
+ vhacdx==0.0.8.post1
332
+ wandb==0.17.5
333
+ wheel==0.43.0
334
+ xacro==1.14.18
335
+ xatlas==0.0.9
336
+ xxhash==3.4.1
337
+ yarl==1.9.4
338
+ zarr==2.18.2
339
+ zipp==3.19.2
340
+ zstandard==0.23.0
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/wandb-metadata.json ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "os": "Linux-5.15.0-125-generic-x86_64-with-glibc2.31",
3
+ "python": "3.10.14",
4
+ "heartbeatAt": "2025-01-22T02:25:17.299296",
5
+ "startedAt": "2025-01-22T02:25:16.828689",
6
+ "docker": null,
7
+ "cuda": null,
8
+ "args": [
9
+ "agent=diffusion",
10
+ "suite=frankagym",
11
+ "suite/frankagym_task@_global_=insertion"
12
+ ],
13
+ "state": "running",
14
+ "program": "/home/leonmkim/fish_leon/FISH/eval_robot.py",
15
+ "codePathLocal": null,
16
+ "codePath": "FISH/eval_robot.py",
17
+ "git": {
18
+ "remote": "https://github.com/leonmkim/fish_leon.git",
19
+ "commit": "dc9da9fa0ef2996c7fec8d105e7933e728cd952f"
20
+ },
21
+ "email": "leonmkim@seas.upenn.edu",
22
+ "root": "/home/leonmkim/fish_leon",
23
+ "host": "leonmkim-ROG-Strix-G15CS-G15CS",
24
+ "username": "leonmkim",
25
+ "executable": "/home/leonmkim/.pyenv/versions/lerobot/bin/python",
26
+ "cpu_count": 8,
27
+ "cpu_count_logical": 8,
28
+ "cpu_freq": {
29
+ "current": 3561.83275,
30
+ "min": 800.0,
31
+ "max": 4700.0
32
+ },
33
+ "cpu_freq_per_core": [
34
+ {
35
+ "current": 3000.0,
36
+ "min": 800.0,
37
+ "max": 4700.0
38
+ },
39
+ {
40
+ "current": 3000.0,
41
+ "min": 800.0,
42
+ "max": 4700.0
43
+ },
44
+ {
45
+ "current": 4491.548,
46
+ "min": 800.0,
47
+ "max": 4700.0
48
+ },
49
+ {
50
+ "current": 3000.0,
51
+ "min": 800.0,
52
+ "max": 4700.0
53
+ },
54
+ {
55
+ "current": 3000.0,
56
+ "min": 800.0,
57
+ "max": 4700.0
58
+ },
59
+ {
60
+ "current": 3000.0,
61
+ "min": 800.0,
62
+ "max": 4700.0
63
+ },
64
+ {
65
+ "current": 4499.283,
66
+ "min": 800.0,
67
+ "max": 4700.0
68
+ },
69
+ {
70
+ "current": 3000.0,
71
+ "min": 800.0,
72
+ "max": 4700.0
73
+ }
74
+ ],
75
+ "disk": {
76
+ "/": {
77
+ "total": 915.3232879638672,
78
+ "used": 369.33309173583984
79
+ }
80
+ },
81
+ "gpu": "NVIDIA GeForce RTX 2070 SUPER",
82
+ "gpu_count": 1,
83
+ "gpu_devices": [
84
+ {
85
+ "name": "NVIDIA GeForce RTX 2070 SUPER",
86
+ "memory_total": 8589934592
87
+ }
88
+ ],
89
+ "memory": {
90
+ "total": 62.71595764160156
91
+ }
92
+ }
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/files/wandb-summary.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"eval/0_eval": {"_type": "video-file", "sha256": "43ff0adeaa2aac56e705ffe46113ad0ea61aecc3b467f045c11c40cac3fc026e", "size": 1497303, "path": "media/videos/eval/0_eval_0_43ff0adeaa2aac56e705.mp4"}, "global_step": 665, "_timestamp": 1737513000.961645, "_runtime": 284.1208748817444, "_step": 11, "eval/1_eval": {"_type": "video-file", "sha256": "6b41bcf0751cacefe8bb11ec7af9ed5e5a069aa9e2900ac19b43d8ad540a4e4e", "size": 1533229, "path": "media/videos/eval/1_eval_1_6b41bcf0751cacefe8bb.mp4"}, "eval/num_success": 5.0, "episode": 5.0, "eval/success_rate": 1.0, "eval/success_rate_lb_0.01": 0.7501049041748047, "eval/success_rate_ub_0.01": 1.0, "eval/success_rate_lb_0.025": 0.6051223874092102, "eval/success_rate_ub_0.025": 1.0, "eval/success_rate_lb_0.05": 0.6927024722099304, "eval/success_rate_ub_0.05": 1.0, "eval/success_rate_lb_0.1": 0.6332908272743225, "eval/success_rate_ub_0.1": 1.0, "eval/2_eval": {"_type": "video-file", "sha256": "ebcc91651af67cca62de31104a2a79dbb6f62a076e08fa6d01ca662c3bdf77a2", "size": 1542126, "path": "media/videos/eval/2_eval_2_ebcc91651af67cca62de.mp4"}, "eval/3_eval": {"_type": "video-file", "sha256": "6c7d164a44f31be2687d000530560b70a01353d005e918556e3a5e5ea9972a78", "size": 1578241, "path": "media/videos/eval/3_eval_3_6c7d164a44f31be2687d.mp4"}, "eval/4_eval": {"_type": "video-file", "sha256": "1dd664735f9b5c78730cb288e5b87cf1102ace7673ed83e702aab87668bca5ce", "size": 1549753, "path": "media/videos/eval/4_eval_4_1dd664735f9b5c78730c.mp4"}, "eval/success_rate_ci": {"_type": "table-file", "sha256": "d8821c50291f0fbf979f12eb7aaa0b647dfd15fe05387335a9663efc94f7fc3c", "size": 330, "artifact_path": "wandb-client-artifact://mc2paq05dcpv4j4f688zjbcbmr2a5t4x5ob87vshdkng1xtu5z1yw9pktfsq5l4vt97mlv1i1b8ezxufam8q44ng3n7ftsk5o71js1cbd7y4rsvjwxmdfg6ny9dt8ohl/eval/success_rate_ci.table.json", "_latest_artifact_path": "wandb-client-artifact://uu1ew5o7c9bxm23msrif9wc6isozujoi80eywp6y3wwhblwbn6un3ho5wdi0xyx4gh5ph6bm2ahyr74vnz4mgt22yurj875oeydin4si2p1ptiucqik4mp100i9o7zrz:latest/eval/success_rate_ci.table.json", "path": "media/table/eval/success_rate_ci_5_d8821c50291f0fbf979f.table.json", "ncols": 9, "nrows": 1}, "total_num_successes": 5, "total_num_episodes": 5, "total_success_rate": 1.0, "total_success_rate_lb_0.01": 0.9786591528888874, "total_success_rate_ub_0.01": 1, "total_success_rate_lb_0.025": 0.5107108652570282, "total_success_rate_ub_0.025": 1, "total_success_rate_lb_0.05": 0.5613806098576808, "total_success_rate_ub_0.05": 1, "total_success_rate_lb_0.1": 1, "total_success_rate_ub_0.1": 1, "eval/total_success_rate_ci": {"_type": "table-file", "sha256": "e3405f8336f17a4a59dd9de56afebbdceab20a8c5c8ce9c3ea21635b9f54eaac", "size": 418, "artifact_path": "wandb-client-artifact://s88w972zuhay530jxnggfwha7krxsehf10rmueb4qcz95j3764rjb5h7p2fa4nhxxb619d8xomqhcxfnytfcqo98meultjfyeuzo9my5vi4la3mo4nv4xgz5dup4tyz7/eval/total_success_rate_ci.table.json", "_latest_artifact_path": "wandb-client-artifact://deg9a3jj150npt100r5jnkug0ot4b923pbxquqi13cw47hvijaols8kv2njyt3qfkfc8m2ahrwqkq74a7eqzccssxni5lwewbq6vu95asmktm1ml2nkzqfpagf42ocza:latest/eval/total_success_rate_ci.table.json", "path": "media/table/eval/total_success_rate_ci_6_e3405f8336f17a4a59dd.table.json", "ncols": 11, "nrows": 1}, "_wandb": {"runtime": 300}, "eval/total_success_rate": 1.0, "eval/total_success_rate_lb_0.01": 0.9786591529846191, "eval/total_success_rate_ub_0.01": 1.0, "eval/total_success_rate_lb_0.025": 0.5107108354568481, "eval/total_success_rate_ub_0.025": 1.0, "eval/total_success_rate_lb_0.05": 0.5613806247711182, "eval/total_success_rate_ub_0.05": 1.0, "eval/total_success_rate_lb_0.1": 1.0, "eval/total_success_rate_ub_0.1": 1.0}
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/logs/debug-internal.log ADDED
The diff for this file is too large to render. See raw diff
 
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/logs/debug.log ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Current SDK version is 0.17.5
2
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Configure stats pid to 2650272
3
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/.config/wandb/settings
4
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm/wandb/settings
5
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Loading settings from environment variables: {}
6
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Applying setup settings: {'_disable_service': False}
7
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Inferring run settings from compute environment: {'program_relpath': 'FISH/eval_robot.py', 'program_abspath': '/home/leonmkim/fish_leon/FISH/eval_robot.py', 'program': '/home/leonmkim/fish_leon/FISH/eval_robot.py'}
8
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_setup.py:_flush():76] Applying login settings: {}
9
+ 2025-01-21 21:25:16,834 INFO MainThread:2650272 [wandb_init.py:_log_setup():529] Logging user logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm/wandb/run-20250121_212516-0e7f0awm/logs/debug.log
10
+ 2025-01-21 21:25:16,835 INFO MainThread:2650272 [wandb_init.py:_log_setup():530] Logging internal logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm/wandb/run-20250121_212516-0e7f0awm/logs/debug-internal.log
11
+ 2025-01-21 21:25:16,835 INFO MainThread:2650272 [wandb_init.py:init():569] calling init triggers
12
+ 2025-01-21 21:25:16,835 INFO MainThread:2650272 [wandb_init.py:init():576] wandb.init called with sweep_config: {}
13
+ config: {'root_dir': '/home/leonmkim/fish_leon', 'replay_buffer_size': 150000, 'replay_buffer_num_workers': 2, 'nstep': 3, 'batch_size': 128, 'seed': 1, 'dataset_shuffle_seed': 0, 'device': 'cuda', 'save_video': True, 'save_train_video': True, 'use_tb': True, 'use_wandb': True, 'wandb_run_id': '4295_1', 'wandb_notes': '4295_1_restarted_1', 'eval': True, 'true_action_history': False, 'train_pad_after': 4, 'process_contact_features': True, 'obs_type': 'pixels', 'use_color': False, 'use_depth': True, 'use_masks': True, 'mask_list': ['EE_obj_mask'], 'mask_representation': 'channels', 'crop_hw': [144, 144], 'crop_down_offset': 48, 'color_crop_type': None, 'depth_crop_type': None, 'segmask_crop_type': None, 'add_crop_binary_mask': False, 'add_coord_conv_map': False, 'use_context_color': False, 'use_context_depth': False, 'use_context_segmask': False, 'context_color_crop_type': None, 'context_depth_crop_type': None, 'context_segmask_crop_type': None, 'context_add_crop_binary_mask': False, 'context_add_coord_conv_map': False, 'use_contact_map': True, 'use_sdf_maps': True, 'use_normals_maps': True, 'which_objects': 'both', 'max_contact_prob': 0.1, 'max_depth': 2.0, 'grasped_dtc_max_value': 0.2, 'env_dtc_max_value': 0.4, 'grasped_normals_mask_max_dtc_value': 0.2, 'env_normals_mask_max_dtc_value': 0.4, 'clamp_dtc': True, 'dtc_adaptive_normalization': False, 'mask_normals_within_sdf': True, 'adaptive_normals_mask': True, 'learnable_contact_preprocess_params': True, 'contact_model_name': 'local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9', 'contact_estimation_model_ckpt_path': '~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt', 'encoder_type': 'small', 'debug_timestamps': False, 'open_loop': False, 'action_trajectories': True, 'stop_after_action': False, 'interpolation_frequency': 25, 'policy_frequency': 5, 'wait_for_new_camera_frames': True, 'baseline': False, 'train_demo_idxs_list_or_num': -1, 'log_train_every_steps': 25, 'name_of_expert_demo': '120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'expert_dataset_dirpath': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'store_dataset_in_memory': False, 'expert_dataset': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'action_key': 'action_trajectory_25hz', 'semantic_demo_grouping_name': 'semantic_demo_grouping.yaml', 'semantic_demo_grouping': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml', 'include_groups_list': 'all', 'expert_dataset_config': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demo_config.yaml', 'name_of_valid_demo': '120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'valid_dataset_dir': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'valid_demo_idxs_list_or_num': None, 'val_num_groups': 7, 'load_bc': True, 'checkpoint_epoch_list': [99, 199, 299, 399, 499, 599, 699, 799, 899, 999, 1249, 1499, 1749, 1999, 2999, 3999, 4999, 5999, 6999, 7999, 8999, 9999], 'snapshot_root_dir': '/mnt/grasp_high_usage/leonmkim/contact_estimation/FISH', 'save_snapshot': True, 'save_last_snapshot': True, 'save_snapshot_when_done': True, 'top_k_checkpoints': 5, 'save_snapshot_link_to_weights_dir': 'deprecated', 'restore_missing_checkpoint': None, 'bc_regularize': False, 'bc_weight_type': 'qfilter', 'experiment_dir': './exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1', 'agent': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgent', 'name': 'diffusion_policy', 'load_checkpoint': True, 'device': 'cuda', 'n_obs_steps': 1, 'suite_name': 'frankagym', 'obs_type': 'pixels', 'enable_arm': True, 'enable_camera': True, 'use_tb': True, 'desired_image_shape': [13, 180, 240], 'orig_cam_shape': [3, 240, 320], 'config': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgentConfig', 'compile': False, 'device': 'cuda', 'cam_resize_shape': [13, 180, 240], 'orig_cam_shape': [3, 240, 320], 'policy_frequency': 5, 'interpolation_frequency': 25, 'policy_cfg': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig', 'n_obs_steps': 1, 'horizon': 36, 'n_action_steps': 36, 'output_shapes': {'action': [7]}, 'input_normalization_modes': {'observation.image': 'mean_std', 'observation.state': 'min_max', 'observation.action_history': 'min_max'}, 'output_normalization_modes': {'action': 'min_max'}, 'vision_backbone': 'resnet18', 'crop_distractors_tlhw': [32, 68, 174, 174], 'pretrained_backbone_weights': None, 'transforms': [{'_target_': 'torchaug.transforms.RandomAffine', 'degrees': [-5, 5], 'translate': [0.05, 0.05], 'batch_transform': True, 'num_chunks': -1, 'batch_inplace': True}, {'_target_': 'torchaug.transforms.RandomColorJitter', 'brightness': 0.3, 'contrast': 0.4, 'saturation': 0.5, 'hue': 0.08, 'batch_transform': True, 'num_chunks': -1, 'batch_inplace': True}], 'use_group_norm': True, 'spatial_softmax_num_keypoints': 32, 'action_history_encoder_config': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig', 'in_channels': 7, 'out_channels': 32, 'history_length': 6, 'kernel_size': 5, 'downsample_kernel_size': 3, 'downsample_stride': 2, 'downsample_padding': 1}, 'down_dims': [256, 512, 1024], 'kernel_size': 5, 'n_groups': 8, 'diffusion_step_embed_dim': 128, 'use_film_scale_modulation': True, 'noise_scheduler_type': 'DDIM', 'beta_schedule': 'squaredcos_cap_v2', 'beta_start': 0.0001, 'beta_end': 0.02, 'prediction_type': 'epsilon', 'clip_sample': True, 'clip_sample_range': 1.0, 'num_train_timesteps': 50, 'num_inference_steps': 10, 'do_mask_loss_for_padding': False, 'input_shapes': {'observation.image': [13, 180, 240], 'context_observation.image': [13, 180, 240], 'observation.state': [8], 'observation.action_history': [7]}}, 'train_cfg': {'_target_': 'utils.TrainConfig', 'lr': 0.0001, 'lr_scheduler': 'cosine', 'lr_warmup_steps': 500, 'adam_betas': [0.95, 0.999], 'adam_eps': 1e-08, 'adam_weight_decay': 1e-06, 'grad_clip_norm': 10, 'offline_steps': 1000000, 'use_amp': True}, 'observation_cfg': {'_target_': 'agent.encoder.VisualFeatureSet', 'use_depth': True, 'use_color': False, 'mask_input_dict': {'_target_': 'agent.encoder.MaskInputDict', 'enable': True, 'representation': 'channels', 'mask_list': ['EE_obj_mask']}, 'crop_input_config': {'_target_': 'agent.encoder.CropInputConfig', 'color_crop_type': None, 'depth_crop_type': None, 'segmask_crop_type': None, 'crop_hw': [144, 144], 'crop_down_offset': 48, 'add_crop_binary_mask': False, 'add_coord_conv_map': False}, 'context_input_config': {'_target_': 'agent.encoder.ContextInputConfig', 'use_color': False, 'use_depth': False, 'mask_input_dict': {'_target_': 'agent.encoder.MaskInputDict', 'enable': False, 'representation': 'channels', 'mask_list': ['EE_obj_mask']}, 'crop_input_config': {'_target_': 'agent.encoder.CropInputConfig', 'color_crop_type': None, 'depth_crop_type': None, 'segmask_crop_type': None, 'crop_hw': [144, 144], 'crop_down_offset': 48, 'add_crop_binary_mask': False, 'add_coord_conv_map': False}}, 'mask_soft_approx_scheduler_config': {'_target_': 'agent.encoder.MaskSoftApproxSchedulerConfig', 'num_steps': 40000, 'initial_value': 10.0, 'final_value': 1000.0, 'interpolation_scheme': 'cosine'}, 'use_contact_map': True, 'use_sdf_maps': True, 'use_normals_maps': True, 'which_objects': 'both', 'grasped_dtc_max_value': 0.2, 'env_dtc_max_value': 0.4, 'grasped_normals_mask_max_dtc_value': 0.2, 'env_normals_mask_max_dtc_value': 0.4, 'clamp_dtc': True, 'max_contact_prob': 0.1, 'mask_normals_within_sdf': True, 'dtc_adaptive_normalization': False, 'adaptive_normals_mask': True, 'max_depth': 2.0, 'image_shape': [13, 180, 240], 'learnable_contact_preprocess_params': True, 'learning_rate': 0.0001, 'weight_decay': 0.0, 'contact_model_name': 'local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9', 'zero_centered': False, 'crop_distractors_tlhw': [32, 68, 174, 174]}}}, 'suite': {'suite': 'frankagym', 'name': 'frankagym', 'frame_stack': 1, 'action_repeat': 1, 'discount': 0.99, 'hidden_dim': 1024, 'num_train_frames': 2010, 'num_seed_frames': 260, 'num_train_epochs': 5000, 'validate_every_epochs': 100, 'validate_diffusion_on_action_loss_every_epochs': 500, 'train_eval_diffusion_on_action_loss_every_epochs': 500, 'check_topk_every_epochs': 10, 'save_snapshot_every_epochs': 5000, 'eval_every_frames': 2000, 'num_eval_episodes': 5, 'save_snapshot': True, 'wait_for_user_to_start_episode': True, 'task_make_fn': {'_target_': 'suite.frankagym.make', 'name': 'FrankaInsertion-v1', 'height': 240, 'width': 320, 'frame_stack': 1, 'action_repeat': 1, 'seed': 1, 'enable_arm': True, 'enable_gripper': True, 'start_with_gripper_open': True, 'enable_camera': True, 'path_to_depth_extrinsics': '~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy', 'contact_estimation_model_ckpt_path': '~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt', 'x_limit': [0.2, 0.7], 'y_limit': [-0.4, 0.4], 'z_limit': [-0.05, 0.55], 'device': 'cuda', 'interpolation_frequency': 25, 'policy_frequency': 5, 'debug_timestamps': False, 'stop_after_action': False, 'open_loop': False, 'wait_for_new_camera_frames': True, 'action_key': 'action_trajectory_25hz', 'action_trajectory_horizon': 36, 'action_trajectories': True, 'path_to_zarr_dataset': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'agent_policy_cfg': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgentConfig', 'compile': False, 'device': 'cuda', 'cam_resize_shape': [13, 180, 240], 'orig_cam_shape': [3, 240, 320], 'policy_frequency': 5, 'interpolation_frequency': 25, 'policy_cfg': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig', 'n_obs_steps': 1, 'horizon': 36, 'n_action_steps': 36, 'output_shapes': {'action': [7]}, 'input_normalization_modes': {'observation.image': 'mean_std', 'observation.state': 'min_max', 'observation.action_history': 'min_max'}, 'output_normalization_modes': {'action': 'min_max'}, 'vision_backbone': 'resnet18', 'crop_distractors_tlhw': [32, 68, 174, 174], 'pretrained_backbone_weights': None, 'transforms': [{'_target_': 'torchaug.transforms.RandomAffine', 'degrees': [-5, 5], 'translate': [0.05, 0.05], 'batch_transform': True, 'num_chunks': -1, 'batch_inplace': True}, {'_target_': 'torchaug.transforms.RandomColorJitter', 'brightness': 0.3, 'contrast': 0.4, 'saturation': 0.5, 'hue': 0.08, 'batch_transform': True, 'num_chunks': -1, 'batch_inplace': True}], 'use_group_norm': True, 'spatial_softmax_num_keypoints': 32, 'action_history_encoder_config': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig', 'in_channels': 7, 'out_channels': 32, 'history_length': 6, 'kernel_size': 5, 'downsample_kernel_size': 3, 'downsample_stride': 2, 'downsample_padding': 1}, 'down_dims': [256, 512, 1024], 'kernel_size': 5, 'n_groups': 8, 'diffusion_step_embed_dim': 128, 'use_film_scale_modulation': True, 'noise_scheduler_type': 'DDIM', 'beta_schedule': 'squaredcos_cap_v2', 'beta_start': 0.0001, 'beta_end': 0.02, 'prediction_type': 'epsilon', 'clip_sample': True, 'clip_sample_range': 1.0, 'num_train_timesteps': 50, 'num_inference_steps': 10, 'do_mask_loss_for_padding': False, 'input_shapes': {'observation.image': [13, 180, 240], 'context_observation.image': [13, 180, 240], 'observation.state': [8], 'observation.action_history': [7]}}, 'train_cfg': {'_target_': 'utils.TrainConfig', 'lr': 0.0001, 'lr_scheduler': 'cosine', 'lr_warmup_steps': 500, 'adam_betas': [0.95, 0.999], 'adam_eps': 1e-08, 'adam_weight_decay': 1e-06, 'grad_clip_norm': 10, 'offline_steps': 1000000, 'use_amp': True}, 'observation_cfg': {'_target_': 'agent.encoder.VisualFeatureSet', 'use_depth': True, 'use_color': False, 'mask_input_dict': {'_target_': 'agent.encoder.MaskInputDict', 'enable': True, 'representation': 'channels', 'mask_list': ['EE_obj_mask']}, 'crop_input_config': {'_target_': 'agent.encoder.CropInputConfig', 'color_crop_type': None, 'depth_crop_type': None, 'segmask_crop_type': None, 'crop_hw': [144, 144], 'crop_down_offset': 48, 'add_crop_binary_mask': False, 'add_coord_conv_map': False}, 'context_input_config': {'_target_': 'agent.encoder.ContextInputConfig', 'use_color': False, 'use_depth': False, 'mask_input_dict': {'_target_': 'agent.encoder.MaskInputDict', 'enable': False, 'representation': 'channels', 'mask_list': ['EE_obj_mask']}, 'crop_input_config': {'_target_': 'agent.encoder.CropInputConfig', 'color_crop_type': None, 'depth_crop_type': None, 'segmask_crop_type': None, 'crop_hw': [144, 144], 'crop_down_offset': 48, 'add_crop_binary_mask': False, 'add_coord_conv_map': False}}, 'mask_soft_approx_scheduler_config': {'_target_': 'agent.encoder.MaskSoftApproxSchedulerConfig', 'num_steps': 40000, 'initial_value': 10.0, 'final_value': 1000.0, 'interpolation_scheme': 'cosine'}, 'use_contact_map': True, 'use_sdf_maps': True, 'use_normals_maps': True, 'which_objects': 'both', 'grasped_dtc_max_value': 0.2, 'env_dtc_max_value': 0.4, 'grasped_normals_mask_max_dtc_value': 0.2, 'env_normals_mask_max_dtc_value': 0.4, 'clamp_dtc': True, 'max_contact_prob': 0.1, 'mask_normals_within_sdf': True, 'dtc_adaptive_normalization': False, 'adaptive_normals_mask': True, 'max_depth': 2.0, 'image_shape': [13, 180, 240], 'learnable_contact_preprocess_params': True, 'learning_rate': 0.0001, 'weight_decay': 0.0, 'contact_model_name': 'local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9', 'zero_centered': False, 'crop_distractors_tlhw': [32, 68, 174, 174]}}, 'true_action_history': False}}, 'num_train_frames_bc': 50000, 'num_train_frames_drq': 1100000, 'stddev_schedule_drq': 'linear(1.0,0.1,100000)', 'task_name': 'FrankaInsertion-v1', 'num_train_frames_vinn': 25000, 'num_train_frames_diffusion': 1000000, 'num_train_epochs_bc': 5000, 'num_train_epochs_diffusion': 15000, 'validate_every_epochs_bc': 5, 'validate_every_epochs_diffusion': 250, 'validate_diffusion_on_action_loss_every_epochs': 250, 'train_eval_diffusion_on_action_loss_every_epochs': 250, 'check_topk_every_epochs': 5, 'check_topk_every_epochs_diffusion': 250, 'save_snapshot_every_epochs_diffusion': 1500, 'x_limit': [0.2, 0.7], 'y_limit': [-0.4, 0.4], 'z_limit': [-0.05, 0.55], 'home_displacement': [0.55, 0.0, 0.55, 180.0, 0.0, 0.0], 'enable_gripper': True, 'start_with_gripper_open': True, 'offset_mask': [1, 1, 1, 1, 1, 1], 'path_to_depth_extrinsics': '~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy', 'test': {'username': 'leonmkim', 'hostname': 'grasp-login1', 'name_of_expert_demo': '112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'root_dir': '~/fish_leon', 'expert_dataset_dirpath': '~/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'expert_dataset': '~/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'semantic_demo_grouping_name': 'semantic_demo_grouping.yaml', 'semantic_demo_grouping': '~/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml', 'include_groups_list': 'all', 'batch_size': 128, 'store_dataset_in_memory': False, 'use_tb': True, 'local_snapshot_root_dir': '/mnt/bighdd/fish_contact_backup', 'local_snapshot_dir': '/mnt/bighdd/fish_contact_backup/exp_local/frankagym_pixels/FrankaInsertion-v1', 'resume_wandb_run': False}, 'feature_type': '180x240_crpdstlhw24x51x130x130_1_D_2.0_msk_channels_EE_obj_mask_cntct_0.1_DTC_clmpd_lrnbl_nrmls_DTCmask_adpt_lrnbl_both_lr_0.0001_wd_0.0_local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9_acthist_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1', 'save_buffer': True, 'num_eval': 5, 'random_start': False, 'eval_starts': '/home/leonmkim/fish_leon/FISH/eval_starts/frankagym_pixels/FrankaInsertion-v1', 'num_valid_demos': None, 'load_checkpoint': True, 'checkpoint_epoch': 7500, 'load_residual_weight': False, 'checkpoint_root_dir': '/home/leonmkim/fish_leon/FISH', 'checkpoint_weight_dir': '/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1', 'residual_weight': '/home/leonmkim/fish_leon/FISH/weights/frankagym_pixels/FrankaInsertion-v1/weight.pt', 'final_experiment_dir': './exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm'}
14
+ 2025-01-21 21:25:16,835 INFO MainThread:2650272 [wandb_init.py:init():619] starting backend
15
+ 2025-01-21 21:25:16,835 INFO MainThread:2650272 [wandb_init.py:init():623] setting up manager
16
+ 2025-01-21 21:25:16,839 INFO MainThread:2650272 [backend.py:_multiprocessing_setup():105] multiprocessing start_methods=fork,spawn,forkserver, using: spawn
17
+ 2025-01-21 21:25:16,840 INFO MainThread:2650272 [wandb_init.py:init():631] backend started and connected
18
+ 2025-01-21 21:25:16,854 INFO MainThread:2650272 [wandb_init.py:init():720] updated telemetry
19
+ 2025-01-21 21:25:16,860 INFO MainThread:2650272 [wandb_init.py:init():753] communicating run to backend with 90.0 second timeout
20
+ 2025-01-21 21:25:17,200 INFO MainThread:2650272 [wandb_run.py:_on_init():2435] communicating current version
21
+ 2025-01-21 21:25:17,274 INFO MainThread:2650272 [wandb_run.py:_on_init():2444] got version response upgrade_message: "wandb version 0.19.4 is available! To upgrade, please run:\n $ pip install wandb --upgrade"
22
+
23
+ 2025-01-21 21:25:17,275 INFO MainThread:2650272 [wandb_init.py:init():804] starting run threads in backend
24
+ 2025-01-21 21:25:17,629 INFO MainThread:2650272 [wandb_run.py:_console_start():2413] atexit reg
25
+ 2025-01-21 21:25:17,629 INFO MainThread:2650272 [wandb_run.py:_redirect():2255] redirect: wrap_raw
26
+ 2025-01-21 21:25:17,629 INFO MainThread:2650272 [wandb_run.py:_redirect():2320] Wrapping output streams.
27
+ 2025-01-21 21:25:17,629 INFO MainThread:2650272 [wandb_run.py:_redirect():2345] Redirects installed.
28
+ 2025-01-21 21:25:17,631 INFO MainThread:2650272 [wandb_init.py:init():847] run started, returning control to user process
29
+ 2025-01-21 21:25:17,631 INFO MainThread:2650272 [wandb_run.py:_tensorboard_callback():1544] tensorboard callback: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/0e7f0awm/tb, True
30
+ 2025-01-21 21:25:24,844 INFO MainThread:2650272 [wandb_run.py:_config_callback():1382] config_cb None None {'grasped_obj_name': 'greece', 'left_book_slot': 'twodim'}
31
+ 2025-01-21 21:30:29,128 WARNING MsgRouterThr:2650272 [router.py:message_loop():77] message_loop has been closed
0e7f0awm/wandb/run-20250121_212516-0e7f0awm/run-0e7f0awm.wandb ADDED
Binary file (78.4 kB). View file
 
4lg2e533/.hydra/config.yaml ADDED
@@ -0,0 +1,352 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ root_dir: /home/${oc.env:USER}/fish_leon
2
+ nstep: 3
3
+ seed: 41
4
+ dataset_shuffle_seed: ${seed}
5
+ device: cuda
6
+ save_video: true
7
+ save_buffer: true
8
+ use_tb: true
9
+ baseline: false
10
+ use_wandb: true
11
+ eval: true
12
+ process_contact_features: ${eval}
13
+ obs_type: pixels
14
+ use_color: true
15
+ use_depth: true
16
+ use_masks: false
17
+ mask_list:
18
+ - EE_obj_mask
19
+ mask_representation: channels
20
+ crop_hw:
21
+ - 144
22
+ - 144
23
+ crop_down_offset: 48
24
+ color_crop_type: null
25
+ depth_crop_type: null
26
+ segmask_crop_type: null
27
+ add_crop_binary_mask: false
28
+ add_coord_conv_map: false
29
+ use_context_color: false
30
+ use_context_depth: false
31
+ use_context_segmask: false
32
+ context_color_crop_type: null
33
+ context_depth_crop_type: null
34
+ context_segmask_crop_type: null
35
+ context_add_crop_binary_mask: false
36
+ context_add_coord_conv_map: false
37
+ use_contact_map: false
38
+ use_sdf_maps: false
39
+ use_normals_maps: false
40
+ which_objects: both
41
+ max_contact_prob: 0.1
42
+ max_depth: 2.0
43
+ grasped_dtc_max_value: 0.105
44
+ env_dtc_max_value: 0.425
45
+ grasped_normals_mask_max_dtc_value: 0.105
46
+ env_normals_mask_max_dtc_value: 0.425
47
+ clamp_dtc: true
48
+ dtc_adaptive_normalization: false
49
+ mask_normals_within_sdf: true
50
+ adaptive_normals_mask: true
51
+ learnable_contact_preprocess_params: false
52
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_ctxt_seed_183386_epoch_9
53
+ contact_estimation_model_ckpt_path: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
54
+ num_eval: 5
55
+ debug_timestamps: false
56
+ open_loop: false
57
+ action_trajectories: true
58
+ stop_after_action: false
59
+ interpolation_frequency: 25
60
+ policy_frequency: 5
61
+ wait_for_new_camera_frames: true
62
+ random_start: false
63
+ eval_starts: ${root_dir}/FISH/eval_starts/${suite.name}_${obs_type}/${task_name}
64
+ train_demo_idxs_list_or_num: null
65
+ num_valid_demos: null
66
+ val_num_groups: 3
67
+ name_of_expert_demo: 112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
68
+ expert_dataset_dirpath: ${root_dir}/FISH/expert_demos/${suite.name}/${task_name}/${name_of_expert_demo}
69
+ expert_dataset: ${expert_dataset_dirpath}/demos.zarr
70
+ action_key: ${oc.if_else:${action_trajectories}, 'action_trajectory_${interpolation_frequency}hz',
71
+ 'action'}
72
+ semantic_demo_grouping_name: semantic_demo_grouping.yaml
73
+ semantic_demo_grouping: ${expert_dataset_dirpath}/${semantic_demo_grouping_name}
74
+ expert_dataset_config: ${expert_dataset_dirpath}/demo_config.yaml
75
+ bc_regularize: false
76
+ bc_weight_type: qfilter
77
+ load_checkpoint: ${agent.load_checkpoint}
78
+ wandb_run_id: '4295_1'
79
+ true_action_history: false
80
+ wandb_notes: null
81
+ checkpoint_epoch: 7500
82
+ load_residual_weight: false
83
+ checkpoint_root_dir: /home/${oc.env:USER}/fish_leon/FISH
84
+ checkpoint_weight_dir: ${checkpoint_root_dir}/exp_local/${suite.name}_${obs_type}/${task_name}/${wandb_run_id}
85
+ residual_weight: ${root_dir}/FISH/weights/${suite.name}_${obs_type}/${task_name}/weight.pt
86
+ experiment_dir: ./exp_local/${suite.name}_${obs_type}/${task_name}/${wandb_run_id}
87
+ final_experiment_dir: ${experiment_dir}/${oc.generate_run_id:}
88
+ agent:
89
+ _target_: agent.diffusion_policy.DiffusionPolicyAgent
90
+ name: diffusion_policy
91
+ load_checkpoint: ${eval}
92
+ device: ${device}
93
+ n_obs_steps: ${.config.policy_cfg.n_obs_steps}
94
+ suite_name: ${suite.name}
95
+ obs_type: ${obs_type}
96
+ enable_arm: ${eval}
97
+ enable_camera: ${eval}
98
+ use_tb: ${use_tb}
99
+ desired_image_shape:
100
+ - 13
101
+ - 180
102
+ - 240
103
+ orig_cam_shape:
104
+ - 3
105
+ - 240
106
+ - 320
107
+ config:
108
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
109
+ compile: false
110
+ device: ${device}
111
+ cam_resize_shape: ${agent.desired_image_shape}
112
+ orig_cam_shape: ${agent.orig_cam_shape}
113
+ policy_frequency: ${policy_frequency}
114
+ interpolation_frequency: ${interpolation_frequency}
115
+ policy_cfg:
116
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
117
+ n_obs_steps: 1
118
+ horizon: 36
119
+ n_action_steps: ${agent.config.policy_cfg.horizon}
120
+ input_shapes:
121
+ observation.image: ${agent.config.cam_resize_shape}
122
+ context_observation.image: ${agent.config.cam_resize_shape}
123
+ observation.state:
124
+ - 8
125
+ observation.action_history:
126
+ - 7
127
+ output_shapes:
128
+ action:
129
+ - 7
130
+ input_normalization_modes:
131
+ observation.image: mean_std
132
+ observation.state: min_max
133
+ observation.action_history: min_max
134
+ output_normalization_modes:
135
+ action: min_max
136
+ vision_backbone: resnet18
137
+ crop_distractors_tlhw: null
138
+ pretrained_backbone_weights: null
139
+ transforms:
140
+ - _target_: torchaug.transforms.RandomAffine
141
+ degrees:
142
+ - -5
143
+ - 5
144
+ translate:
145
+ - 0.05
146
+ - 0.05
147
+ batch_transform: true
148
+ num_chunks: -1
149
+ batch_inplace: true
150
+ - _target_: torchaug.transforms.RandomColorJitter
151
+ brightness: 0.3
152
+ contrast: 0.4
153
+ saturation: 0.5
154
+ hue: 0.08
155
+ batch_transform: true
156
+ num_chunks: -1
157
+ batch_inplace: true
158
+ use_group_norm: true
159
+ spatial_softmax_num_keypoints: 32
160
+ action_history_encoder_config:
161
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
162
+ in_channels: 7
163
+ out_channels: 32
164
+ history_length: ${agent.config.policy_cfg.n_action_steps}
165
+ kernel_size: ${agent.config.policy_cfg.kernel_size}
166
+ downsample_kernel_size: 3
167
+ downsample_stride: 2
168
+ downsample_padding: 1
169
+ down_dims:
170
+ - 256
171
+ - 512
172
+ - 1024
173
+ kernel_size: 5
174
+ n_groups: 8
175
+ diffusion_step_embed_dim: 128
176
+ use_film_scale_modulation: true
177
+ noise_scheduler_type: DDIM
178
+ beta_schedule: squaredcos_cap_v2
179
+ beta_start: 0.0001
180
+ beta_end: 0.02
181
+ prediction_type: epsilon
182
+ clip_sample: true
183
+ clip_sample_range: 1.0
184
+ num_train_timesteps: 50
185
+ num_inference_steps: 10
186
+ do_mask_loss_for_padding: false
187
+ train_cfg:
188
+ _target_: utils.TrainConfig
189
+ lr: 0.0001
190
+ lr_scheduler: cosine
191
+ lr_warmup_steps: 500
192
+ adam_betas:
193
+ - 0.95
194
+ - 0.999
195
+ adam_eps: 1.0e-08
196
+ adam_weight_decay: 1.0e-06
197
+ grad_clip_norm: 10
198
+ offline_steps: ${num_train_frames_diffusion}
199
+ use_amp: true
200
+ observation_cfg:
201
+ _target_: agent.encoder.VisualFeatureSet
202
+ use_depth: ${use_depth}
203
+ use_color: ${use_color}
204
+ mask_input_dict:
205
+ _target_: agent.encoder.MaskInputDict
206
+ enable: ${use_masks}
207
+ representation: ${mask_representation}
208
+ mask_list: ${mask_list}
209
+ crop_input_config:
210
+ _target_: agent.encoder.CropInputConfig
211
+ color_crop_type: ${color_crop_type}
212
+ depth_crop_type: ${depth_crop_type}
213
+ segmask_crop_type: ${segmask_crop_type}
214
+ crop_hw: ${crop_hw}
215
+ crop_down_offset: ${crop_down_offset}
216
+ add_crop_binary_mask: ${add_crop_binary_mask}
217
+ add_coord_conv_map: ${add_coord_conv_map}
218
+ context_input_config:
219
+ _target_: agent.encoder.ContextInputConfig
220
+ use_color: ${use_context_color}
221
+ use_depth: ${use_context_depth}
222
+ mask_input_dict:
223
+ _target_: agent.encoder.MaskInputDict
224
+ enable: ${use_context_segmask}
225
+ representation: ${mask_representation}
226
+ mask_list: ${mask_list}
227
+ crop_input_config:
228
+ _target_: agent.encoder.CropInputConfig
229
+ color_crop_type: ${context_color_crop_type}
230
+ depth_crop_type: ${context_depth_crop_type}
231
+ segmask_crop_type: ${context_segmask_crop_type}
232
+ crop_hw: ${crop_hw}
233
+ crop_down_offset: ${crop_down_offset}
234
+ add_crop_binary_mask: ${context_add_crop_binary_mask}
235
+ add_coord_conv_map: ${context_add_coord_conv_map}
236
+ mask_soft_approx_scheduler_config:
237
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
238
+ num_steps: 40000
239
+ initial_value: 10.0
240
+ final_value: 1000.0
241
+ interpolation_scheme: constant
242
+ use_contact_map: ${use_contact_map}
243
+ use_sdf_maps: ${use_sdf_maps}
244
+ use_normals_maps: ${use_normals_maps}
245
+ which_objects: ${which_objects}
246
+ grasped_dtc_max_value: ${grasped_dtc_max_value}
247
+ env_dtc_max_value: ${env_dtc_max_value}
248
+ grasped_normals_mask_max_dtc_value: ${grasped_normals_mask_max_dtc_value}
249
+ env_normals_mask_max_dtc_value: ${env_normals_mask_max_dtc_value}
250
+ clamp_dtc: ${clamp_dtc}
251
+ max_contact_prob: ${max_contact_prob}
252
+ mask_normals_within_sdf: ${mask_normals_within_sdf}
253
+ dtc_adaptive_normalization: ${dtc_adaptive_normalization}
254
+ adaptive_normals_mask: ${adaptive_normals_mask}
255
+ max_depth: ${max_depth}
256
+ image_shape: ${agent.desired_image_shape}
257
+ learnable_contact_preprocess_params: ${learnable_contact_preprocess_params}
258
+ learning_rate: ${agent.config.train_cfg.lr}
259
+ weight_decay: 0.0
260
+ contact_model_name: ${contact_model_name}
261
+ zero_centered: false
262
+ crop_distractors_tlhw: ${agent.config.policy_cfg.crop_distractors_tlhw}
263
+ suite:
264
+ suite: frankagym
265
+ name: frankagym
266
+ frame_stack: ${agent.n_obs_steps}
267
+ action_repeat: 1
268
+ discount: 0.99
269
+ hidden_dim: 1024
270
+ num_train_frames: 2010
271
+ num_seed_frames: 260
272
+ num_train_epochs: 5000
273
+ validate_every_epochs: 100
274
+ validate_diffusion_on_action_loss_every_epochs: 500
275
+ train_eval_diffusion_on_action_loss_every_epochs: 500
276
+ check_topk_every_epochs: 10
277
+ save_snapshot_every_epochs: 5000
278
+ eval_every_frames: 2000
279
+ num_eval_episodes: 5
280
+ save_snapshot: true
281
+ wait_for_user_to_start_episode: true
282
+ task_make_fn:
283
+ _target_: suite.frankagym.make
284
+ name: ${task_name}
285
+ height: 240
286
+ width: 320
287
+ frame_stack: ${suite.frame_stack}
288
+ action_repeat: ${suite.action_repeat}
289
+ seed: ${seed}
290
+ enable_arm: ${agent.enable_arm}
291
+ enable_gripper: ${enable_gripper}
292
+ start_with_gripper_open: ${start_with_gripper_open}
293
+ enable_camera: ${agent.enable_camera}
294
+ path_to_depth_extrinsics: ${path_to_depth_extrinsics}
295
+ contact_estimation_model_ckpt_path: ${contact_estimation_model_ckpt_path}
296
+ x_limit: ${x_limit}
297
+ y_limit: ${y_limit}
298
+ z_limit: ${z_limit}
299
+ device: ${device}
300
+ interpolation_frequency: ${interpolation_frequency}
301
+ policy_frequency: ${policy_frequency}
302
+ debug_timestamps: ${debug_timestamps}
303
+ stop_after_action: ${stop_after_action}
304
+ open_loop: ${open_loop}
305
+ wait_for_new_camera_frames: ${wait_for_new_camera_frames}
306
+ action_key: ${action_key}
307
+ action_trajectory_horizon: ${agent.config.policy_cfg.horizon}
308
+ action_trajectories: ${action_trajectories}
309
+ path_to_zarr_dataset: ${expert_dataset}
310
+ agent_policy_cfg: ???
311
+ true_action_history: ${true_action_history}
312
+ num_train_frames_bc: 50000
313
+ num_train_frames_drq: 1100000
314
+ stddev_schedule_drq: linear(1.0,0.1,100000)
315
+ task_name: FrankaInsertion-v1
316
+ num_train_frames_vinn: 25000
317
+ num_train_frames_diffusion: 1000000
318
+ num_train_epochs_bc: 5000
319
+ num_train_epochs_diffusion: 5000
320
+ validate_every_epochs_bc: 5
321
+ validate_every_epochs_diffusion: 25
322
+ validate_diffusion_on_action_loss_every_epochs: 50
323
+ train_eval_diffusion_on_action_loss_every_epochs: 500
324
+ check_topk_every_epochs: 5
325
+ check_topk_every_epochs_diffusion: ${validate_diffusion_on_action_loss_every_epochs}
326
+ save_snapshot_every_epochs_diffusion: 5000
327
+ x_limit:
328
+ - 0.2
329
+ - 0.7
330
+ y_limit:
331
+ - -0.4
332
+ - 0.4
333
+ z_limit:
334
+ - -0.05
335
+ - 0.55
336
+ home_displacement:
337
+ - 0.55
338
+ - 0.0
339
+ - 0.55
340
+ - 180.0
341
+ - 0.0
342
+ - 0.0
343
+ enable_gripper: true
344
+ start_with_gripper_open: true
345
+ offset_mask:
346
+ - 1
347
+ - 1
348
+ - 1
349
+ - 1
350
+ - 1
351
+ - 1
352
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
4lg2e533/.hydra/hydra.yaml ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: ${final_experiment_dir}
4
+ sweep:
5
+ dir: ${final_experiment_dir}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ submitit_folder: ${final_experiment_dir}/.slurm
9
+ timeout_min: 60
10
+ cpus_per_task: null
11
+ gpus_per_node: null
12
+ tasks_per_node: 1
13
+ mem_gb: null
14
+ nodes: 1
15
+ name: ${hydra.job.name}
16
+ stderr_to_stdout: false
17
+ _target_: hydra_plugins.hydra_submitit_launcher.submitit_launcher.LocalLauncher
18
+ sweeper:
19
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
20
+ max_batch_size: null
21
+ params: null
22
+ help:
23
+ app_name: ${hydra.job.name}
24
+ header: '${hydra.help.app_name} is powered by Hydra.
25
+
26
+ '
27
+ footer: 'Powered by Hydra (https://hydra.cc)
28
+
29
+ Use --hydra-help to view Hydra specific help
30
+
31
+ '
32
+ template: '${hydra.help.header}
33
+
34
+ == Configuration groups ==
35
+
36
+ Compose your configuration from those groups (group=option)
37
+
38
+
39
+ $APP_CONFIG_GROUPS
40
+
41
+
42
+ == Config ==
43
+
44
+ Override anything in the config (foo.bar=value)
45
+
46
+
47
+ $CONFIG
48
+
49
+
50
+ ${hydra.help.footer}
51
+
52
+ '
53
+ hydra_help:
54
+ template: 'Hydra (${hydra.runtime.version})
55
+
56
+ See https://hydra.cc for more info.
57
+
58
+
59
+ == Flags ==
60
+
61
+ $FLAGS_HELP
62
+
63
+
64
+ == Configuration groups ==
65
+
66
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
67
+ to command line)
68
+
69
+
70
+ $HYDRA_CONFIG_GROUPS
71
+
72
+
73
+ Use ''--cfg hydra'' to Show the Hydra config.
74
+
75
+ '
76
+ hydra_help: ???
77
+ hydra_logging:
78
+ version: 1
79
+ formatters:
80
+ simple:
81
+ format: '[%(asctime)s][HYDRA] %(message)s'
82
+ handlers:
83
+ console:
84
+ class: logging.StreamHandler
85
+ formatter: simple
86
+ stream: ext://sys.stdout
87
+ root:
88
+ level: INFO
89
+ handlers:
90
+ - console
91
+ loggers:
92
+ logging_example:
93
+ level: DEBUG
94
+ disable_existing_loggers: false
95
+ job_logging:
96
+ version: 1
97
+ formatters:
98
+ simple:
99
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
100
+ handlers:
101
+ console:
102
+ class: logging.StreamHandler
103
+ formatter: simple
104
+ stream: ext://sys.stdout
105
+ file:
106
+ class: logging.FileHandler
107
+ formatter: simple
108
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
109
+ root:
110
+ level: INFO
111
+ handlers:
112
+ - console
113
+ - file
114
+ disable_existing_loggers: false
115
+ env: {}
116
+ mode: RUN
117
+ searchpath: []
118
+ callbacks: {}
119
+ output_subdir: .hydra
120
+ overrides:
121
+ hydra:
122
+ - hydra.mode=RUN
123
+ task:
124
+ - agent=diffusion
125
+ - suite=frankagym
126
+ - suite/frankagym_task@_global_=insertion
127
+ job:
128
+ name: eval_robot
129
+ chdir: true
130
+ override_dirname: agent=diffusion,suite/frankagym_task@_global_=insertion,suite=frankagym
131
+ id: ???
132
+ num: ???
133
+ config_name: config_eval
134
+ env_set: {}
135
+ env_copy: []
136
+ config:
137
+ override_dirname:
138
+ kv_sep: '='
139
+ item_sep: ','
140
+ exclude_keys: []
141
+ runtime:
142
+ version: 1.3.2
143
+ version_base: '1.1'
144
+ cwd: /home/leonmkim/fish_leon/FISH
145
+ config_sources:
146
+ - path: hydra.conf
147
+ schema: pkg
148
+ provider: hydra
149
+ - path: /home/leonmkim/fish_leon/FISH/cfgs
150
+ schema: file
151
+ provider: main
152
+ - path: ''
153
+ schema: structured
154
+ provider: schema
155
+ output_dir: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_1/4lg2e533
156
+ choices:
157
+ suite: frankagym
158
+ suite/frankagym_task@_global_: insertion
159
+ agent: diffusion
160
+ hydra/env: default
161
+ hydra/callbacks: null
162
+ hydra/job_logging: default
163
+ hydra/hydra_logging: default
164
+ hydra/hydra_help: default
165
+ hydra/help: default
166
+ hydra/sweeper: basic
167
+ hydra/launcher: submitit_local
168
+ hydra/output: default
169
+ verbose: false
4lg2e533/.hydra/overrides.yaml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ - agent=diffusion
2
+ - suite=frankagym
3
+ - suite/frankagym_task@_global_=insertion
4lg2e533/episode_rosbags/aligned_depth_to_color_K.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4a962c703d20da282f5e009d432dff51df4ebd22f3386699b6754ea9cfc06a55
3
+ size 200
4lg2e533/episode_rosbags/cam_tf_world.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:29313ba240dd65ebbc79056d5582a97c9586cf2a1d4a1e0db13b87b49152cc9e
3
+ size 256
4lg2e533/episode_rosbags/color_K.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4a962c703d20da282f5e009d432dff51df4ebd22f3386699b6754ea9cfc06a55
3
+ size 200
4lg2e533/episode_rosbags/depth_K.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cc601d2fecd31c5513c76a88b5d4d8059adc1f92dad682e2d755d89a66d8fdf7
3
+ size 200
4lg2e533/eval_robot.log ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [2025-01-21 22:01:03,979][py.warnings][WARNING] - /home/leonmkim/fish_leon/FISH/eval_robot.py:597: UserWarning:
2
+ The version_base parameter is not specified.
3
+ Please specify a compatability version level, or None.
4
+ Will assume defaults for version 1.1
5
+ @hydra.main(config_path='cfgs', config_name='config_eval')
6
+
7
+ [2025-01-21 22:01:03,982][py.warnings][WARNING] - /home/leonmkim/fish_leon/FISH/eval_robot.py:533: UserWarning:
8
+ The version_base parameter is not specified.
9
+ Please specify a compatability version level, or None.
10
+ Will assume defaults for version 1.1
11
+ hydra.initialize(
12
+
4lg2e533/eval_video/0_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f0d20ac03e2b6a636fd4b75dc420d38bca78737161b03b456f4bafb0c9d3ac5c
3
+ size 1482819
4lg2e533/eval_video/1_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c351cf40eb1c20bd3656095d6296b33b5c1d6813b7dc6d200beb36a1247d8eb4
3
+ size 1501132
4lg2e533/eval_video/2_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:977e432fb56e9f58fb599098d19508aadfcf98861d2346a062f799302713a2ce
3
+ size 1562026
4lg2e533/eval_video/3_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d1e75bdfd0a4e32aff60e01308eeaf7bec80ee9a3c08c90f23113a3ee4e9300a
3
+ size 1508395
4lg2e533/eval_video/4_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ac7a1d089ff431aae59a91f891770d23cf42ae6990d7ccf3519ffdfae0139d56
3
+ size 1615658
4lg2e533/tb/events.out.tfevents.1737514870.leonmkim-ROG-Strix-G15CS-G15CS.2659946.0 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3debb0c0f953c8dedc6aaf8a035e26ea6d9811f695061522fba3a9c701bf8bff
3
+ size 6539
4lg2e533/wandb/debug-internal.log ADDED
The diff for this file is too large to render. See raw diff