serialexperimentsleon commited on
Commit
6b4eb4f
·
verified ·
1 Parent(s): df35155

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 +31 -0
  2. 231uxqco/.hydra/config.yaml +352 -0
  3. 231uxqco/.hydra/hydra.yaml +169 -0
  4. 231uxqco/.hydra/overrides.yaml +3 -0
  5. 231uxqco/episode_rosbags/aligned_depth_to_color_K.npy +3 -0
  6. 231uxqco/episode_rosbags/cam_tf_world.npy +3 -0
  7. 231uxqco/episode_rosbags/color_K.npy +3 -0
  8. 231uxqco/episode_rosbags/depth_K.npy +3 -0
  9. 231uxqco/episode_rosbags/episode_2_2025-01-21-21-04-15.bag +3 -0
  10. 231uxqco/eval_robot.log +12 -0
  11. 231uxqco/eval_video/0_eval.mp4 +3 -0
  12. 231uxqco/eval_video/1_eval.mp4 +3 -0
  13. 231uxqco/eval_video/2_eval.mp4 +3 -0
  14. 231uxqco/eval_video/3_eval.mp4 +3 -0
  15. 231uxqco/eval_video/4_eval.mp4 +3 -0
  16. 231uxqco/tb/events.out.tfevents.1737511382.leonmkim-ROG-Strix-G15CS-G15CS.2644351.0 +3 -0
  17. 231uxqco/wandb/debug-internal.log +0 -0
  18. 231uxqco/wandb/debug.log +31 -0
  19. 231uxqco/wandb/run-20250121_210301-231uxqco/files/code/FISH/eval_robot.py +606 -0
  20. 231uxqco/wandb/run-20250121_210301-231uxqco/files/config.yaml +936 -0
  21. 231uxqco/wandb/run-20250121_210301-231uxqco/files/diff.patch +13 -0
  22. 231uxqco/wandb/run-20250121_210301-231uxqco/files/media/table/eval/success_rate_ci_5_ff553b4df26f1e2b1b21.table.json +1 -0
  23. 231uxqco/wandb/run-20250121_210301-231uxqco/files/media/table/eval/total_success_rate_ci_6_ad9b7fb9cdbbec96b24f.table.json +1 -0
  24. 231uxqco/wandb/run-20250121_210301-231uxqco/files/media/videos/eval/0_eval_0_79182f80255d44a83209.mp4 +3 -0
  25. 231uxqco/wandb/run-20250121_210301-231uxqco/files/media/videos/eval/1_eval_1_dd15d97a4d935b9d7c47.mp4 +3 -0
  26. 231uxqco/wandb/run-20250121_210301-231uxqco/files/media/videos/eval/2_eval_2_7a63220f48203a65003f.mp4 +3 -0
  27. 231uxqco/wandb/run-20250121_210301-231uxqco/files/media/videos/eval/3_eval_3_a630738d7570f95eb6b4.mp4 +3 -0
  28. 231uxqco/wandb/run-20250121_210301-231uxqco/files/media/videos/eval/4_eval_4_49fbacdcf9023c6df72d.mp4 +3 -0
  29. 231uxqco/wandb/run-20250121_210301-231uxqco/files/output.log +272 -0
  30. 231uxqco/wandb/run-20250121_210301-231uxqco/files/requirements.txt +340 -0
  31. 231uxqco/wandb/run-20250121_210301-231uxqco/files/wandb-metadata.json +92 -0
  32. 231uxqco/wandb/run-20250121_210301-231uxqco/files/wandb-summary.json +1 -0
  33. 231uxqco/wandb/run-20250121_210301-231uxqco/logs/debug-internal.log +0 -0
  34. 231uxqco/wandb/run-20250121_210301-231uxqco/logs/debug.log +31 -0
  35. 231uxqco/wandb/run-20250121_210301-231uxqco/run-231uxqco.wandb +0 -0
  36. 37t5ymwr/.hydra/config.yaml +352 -0
  37. 37t5ymwr/.hydra/hydra.yaml +169 -0
  38. 37t5ymwr/.hydra/overrides.yaml +3 -0
  39. 37t5ymwr/episode_rosbags/aligned_depth_to_color_K.npy +3 -0
  40. 37t5ymwr/episode_rosbags/cam_tf_world.npy +3 -0
  41. 37t5ymwr/episode_rosbags/color_K.npy +3 -0
  42. 37t5ymwr/episode_rosbags/depth_K.npy +3 -0
  43. 37t5ymwr/eval_robot.log +12 -0
  44. 37t5ymwr/eval_video/0_eval.mp4 +3 -0
  45. 37t5ymwr/eval_video/1_eval.mp4 +3 -0
  46. 37t5ymwr/eval_video/2_eval.mp4 +3 -0
  47. 37t5ymwr/eval_video/3_eval.mp4 +3 -0
  48. 37t5ymwr/eval_video/4_eval.mp4 +3 -0
  49. 37t5ymwr/tb/events.out.tfevents.1737510970.leonmkim-ROG-Strix-G15CS-G15CS.2643122.0 +3 -0
  50. 37t5ymwr/wandb/debug-internal.log +0 -0
.gitattributes CHANGED
@@ -33,3 +33,34 @@ 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
+ 231uxqco/wandb/run-20250121_210301-231uxqco/files/media/videos/eval/0_eval_0_79182f80255d44a83209.mp4 filter=lfs diff=lfs merge=lfs -text
37
+ 231uxqco/wandb/run-20250121_210301-231uxqco/files/media/videos/eval/3_eval_3_a630738d7570f95eb6b4.mp4 filter=lfs diff=lfs merge=lfs -text
38
+ 231uxqco/wandb/run-20250121_210301-231uxqco/files/media/videos/eval/4_eval_4_49fbacdcf9023c6df72d.mp4 filter=lfs diff=lfs merge=lfs -text
39
+ 231uxqco/wandb/run-20250121_210301-231uxqco/files/media/videos/eval/1_eval_1_dd15d97a4d935b9d7c47.mp4 filter=lfs diff=lfs merge=lfs -text
40
+ 231uxqco/wandb/run-20250121_210301-231uxqco/files/media/videos/eval/2_eval_2_7a63220f48203a65003f.mp4 filter=lfs diff=lfs merge=lfs -text
41
+ 231uxqco/eval_video/4_eval.mp4 filter=lfs diff=lfs merge=lfs -text
42
+ 231uxqco/eval_video/3_eval.mp4 filter=lfs diff=lfs merge=lfs -text
43
+ 231uxqco/eval_video/0_eval.mp4 filter=lfs diff=lfs merge=lfs -text
44
+ 231uxqco/eval_video/1_eval.mp4 filter=lfs diff=lfs merge=lfs -text
45
+ 231uxqco/eval_video/2_eval.mp4 filter=lfs diff=lfs merge=lfs -text
46
+ 37t5ymwr/wandb/run-20250121_205609-37t5ymwr/files/media/videos/eval/4_eval_4_e88bcd3f25d83f27b5d9.mp4 filter=lfs diff=lfs merge=lfs -text
47
+ 37t5ymwr/wandb/run-20250121_205609-37t5ymwr/files/media/videos/eval/0_eval_0_2f683e3d27762b787fec.mp4 filter=lfs diff=lfs merge=lfs -text
48
+ 37t5ymwr/wandb/run-20250121_205609-37t5ymwr/files/media/videos/eval/2_eval_2_02b7b0943e5ffceb2ddf.mp4 filter=lfs diff=lfs merge=lfs -text
49
+ 37t5ymwr/wandb/run-20250121_205609-37t5ymwr/files/media/videos/eval/1_eval_1_52f38aea11256dff566a.mp4 filter=lfs diff=lfs merge=lfs -text
50
+ 37t5ymwr/wandb/run-20250121_205609-37t5ymwr/files/media/videos/eval/3_eval_3_eb1f7174555f6baf68df.mp4 filter=lfs diff=lfs merge=lfs -text
51
+ 37t5ymwr/eval_video/4_eval.mp4 filter=lfs diff=lfs merge=lfs -text
52
+ 37t5ymwr/eval_video/3_eval.mp4 filter=lfs diff=lfs merge=lfs -text
53
+ 37t5ymwr/eval_video/1_eval.mp4 filter=lfs diff=lfs merge=lfs -text
54
+ 37t5ymwr/eval_video/2_eval.mp4 filter=lfs diff=lfs merge=lfs -text
55
+ 37t5ymwr/eval_video/0_eval.mp4 filter=lfs diff=lfs merge=lfs -text
56
+ hcp6xxlt/wandb/run-20250121_213552-hcp6xxlt/files/media/videos/eval/0_eval_0_b5a262079efd287fc775.mp4 filter=lfs diff=lfs merge=lfs -text
57
+ hcp6xxlt/wandb/run-20250121_213552-hcp6xxlt/files/media/videos/eval/2_eval_2_7f4db46f72773c3d5eca.mp4 filter=lfs diff=lfs merge=lfs -text
58
+ hcp6xxlt/wandb/run-20250121_213552-hcp6xxlt/files/media/videos/eval/4_eval_4_d14611aa0de1dd53b110.mp4 filter=lfs diff=lfs merge=lfs -text
59
+ hcp6xxlt/wandb/run-20250121_213552-hcp6xxlt/files/media/videos/eval/1_eval_1_a81d19fe2171d168a019.mp4 filter=lfs diff=lfs merge=lfs -text
60
+ hcp6xxlt/wandb/run-20250121_213552-hcp6xxlt/files/media/videos/eval/3_eval_3_99b67859ddc474a3c0ab.mp4 filter=lfs diff=lfs merge=lfs -text
61
+ hcp6xxlt/eval_video/3_eval.mp4 filter=lfs diff=lfs merge=lfs -text
62
+ hcp6xxlt/eval_video/1_eval.mp4 filter=lfs diff=lfs merge=lfs -text
63
+ hcp6xxlt/eval_video/4_eval.mp4 filter=lfs diff=lfs merge=lfs -text
64
+ hcp6xxlt/eval_video/2_eval.mp4 filter=lfs diff=lfs merge=lfs -text
65
+ hcp6xxlt/eval_video/0_eval.mp4 filter=lfs diff=lfs merge=lfs -text
66
+ 231uxqco/episode_rosbags/episode_2_2025-01-21-21-04-15.bag filter=lfs diff=lfs merge=lfs -text
231uxqco/.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_0'
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
231uxqco/.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_0/231uxqco
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
231uxqco/.hydra/overrides.yaml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ - agent=diffusion
2
+ - suite=frankagym
3
+ - suite/frankagym_task@_global_=insertion
231uxqco/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
231uxqco/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
231uxqco/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
231uxqco/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
231uxqco/episode_rosbags/episode_2_2025-01-21-21-04-15.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:573a290d1b5698e107277f3994c6725e53370a40a574533e8571fa813bacb694
3
+ size 1059164155
231uxqco/eval_robot.log ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [2025-01-21 21:02:55,810][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:02:55,813][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
+
231uxqco/eval_video/0_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:79182f80255d44a832097c9a167b4ffae2e85c664d4cd1e225f3173ecfd26682
3
+ size 732693
231uxqco/eval_video/1_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dd15d97a4d935b9d7c4771fad495abd63a13d1eea7cc7d360244e746fc26f6c9
3
+ size 738914
231uxqco/eval_video/2_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7a63220f48203a65003fc8aea34ee07e3dc74e5b4075a8732409ba655029a2c0
3
+ size 727867
231uxqco/eval_video/3_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a630738d7570f95eb6b4dd484151384f879e4686e4928bd530d2f1f845b2c458
3
+ size 1498187
231uxqco/eval_video/4_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:49fbacdcf9023c6df72d37d4a0147471cbbdb7c93388382fda2284b8dd1c0982
3
+ size 867093
231uxqco/tb/events.out.tfevents.1737511382.leonmkim-ROG-Strix-G15CS-G15CS.2644351.0 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dd9b62ce374a8c9b392cf88ef2232d5190594d9fd01b5ccea4be3984e754f96a
3
+ size 6499
231uxqco/wandb/debug-internal.log ADDED
The diff for this file is too large to render. See raw diff
 
231uxqco/wandb/debug.log ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_setup.py:_flush():76] Current SDK version is 0.17.5
2
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_setup.py:_flush():76] Configure stats pid to 2644351
3
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/.config/wandb/settings
4
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/231uxqco/wandb/settings
5
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_setup.py:_flush():76] Loading settings from environment variables: {}
6
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_setup.py:_flush():76] Applying setup settings: {'_disable_service': False}
7
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [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:03:01,624 INFO MainThread:2644351 [wandb_setup.py:_flush():76] Applying login settings: {}
9
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_init.py:_log_setup():529] Logging user logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/231uxqco/wandb/run-20250121_210301-231uxqco/logs/debug.log
10
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_init.py:_log_setup():530] Logging internal logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/231uxqco/wandb/run-20250121_210301-231uxqco/logs/debug-internal.log
11
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_init.py:init():569] calling init triggers
12
+ 2025-01-21 21:03:01,625 INFO MainThread:2644351 [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': 0, 'dataset_shuffle_seed': 0, 'device': 'cuda', 'save_video': True, 'save_train_video': True, 'use_tb': True, 'use_wandb': True, 'wandb_run_id': '4295_0', 'wandb_notes': '4295_0_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_0', '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': 0, '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_0', 'residual_weight': '/home/leonmkim/fish_leon/FISH/weights/frankagym_pixels/FrankaInsertion-v1/weight.pt', 'final_experiment_dir': './exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/231uxqco'}
14
+ 2025-01-21 21:03:01,625 INFO MainThread:2644351 [wandb_init.py:init():619] starting backend
15
+ 2025-01-21 21:03:01,625 INFO MainThread:2644351 [wandb_init.py:init():623] setting up manager
16
+ 2025-01-21 21:03:01,628 INFO MainThread:2644351 [backend.py:_multiprocessing_setup():105] multiprocessing start_methods=fork,spawn,forkserver, using: spawn
17
+ 2025-01-21 21:03:01,628 INFO MainThread:2644351 [wandb_init.py:init():631] backend started and connected
18
+ 2025-01-21 21:03:01,638 INFO MainThread:2644351 [wandb_init.py:init():720] updated telemetry
19
+ 2025-01-21 21:03:01,644 INFO MainThread:2644351 [wandb_init.py:init():753] communicating run to backend with 90.0 second timeout
20
+ 2025-01-21 21:03:01,970 INFO MainThread:2644351 [wandb_run.py:_on_init():2435] communicating current version
21
+ 2025-01-21 21:03:02,013 INFO MainThread:2644351 [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:03:02,014 INFO MainThread:2644351 [wandb_init.py:init():804] starting run threads in backend
24
+ 2025-01-21 21:03:02,378 INFO MainThread:2644351 [wandb_run.py:_console_start():2413] atexit reg
25
+ 2025-01-21 21:03:02,378 INFO MainThread:2644351 [wandb_run.py:_redirect():2255] redirect: wrap_raw
26
+ 2025-01-21 21:03:02,378 INFO MainThread:2644351 [wandb_run.py:_redirect():2320] Wrapping output streams.
27
+ 2025-01-21 21:03:02,378 INFO MainThread:2644351 [wandb_run.py:_redirect():2345] Redirects installed.
28
+ 2025-01-21 21:03:02,380 INFO MainThread:2644351 [wandb_init.py:init():847] run started, returning control to user process
29
+ 2025-01-21 21:03:02,380 INFO MainThread:2644351 [wandb_run.py:_tensorboard_callback():1544] tensorboard callback: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/231uxqco/tb, True
30
+ 2025-01-21 21:03:06,303 INFO MainThread:2644351 [wandb_run.py:_config_callback():1382] config_cb None None {'grasped_obj_name': 'greece', 'left_book_slot': 'twodim'}
31
+ 2025-01-21 21:06:35,832 WARNING MsgRouterThr:2644351 [router.py:message_loop():77] message_loop has been closed
231uxqco/wandb/run-20250121_210301-231uxqco/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()
231uxqco/wandb/run-20250121_210301-231uxqco/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: 0
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_0'
42
+ wandb_notes:
43
+ desc: null
44
+ value: 4295_0_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_0
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: 0
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_0
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_0/231uxqco
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: 1737511381
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
231uxqco/wandb/run-20250121_210301-231uxqco/files/diff.patch ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ diff --git a/FISH/cfgs/config_eval.yaml b/FISH/cfgs/config_eval.yaml
2
+ index bb5fa99..c2e87d3 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
231uxqco/wandb/run-20250121_210301-231uxqco/files/media/table/eval/success_rate_ci_5_ff553b4df26f1e2b1b21.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": [[0.2, 0.003681928018651432, 0.7286170720596843, 0.0051474646723538384, 0.645829737157266, 0.025117173885908266, 0.5745371579974826, 0.10005546369206852, 0.4711491614637855]]}
231uxqco/wandb/run-20250121_210301-231uxqco/files/media/table/eval/total_success_rate_ci_6_ad9b7fb9cdbbec96b24f.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": [[2, 15, 0.13333333333333333, 0.012688301601120637, 0.43005549909083207, 0.02801970029376167, 0.4017714858251573, 0.03871402898715848, 0.31777475777932684, 0.040400557311902036, 0.31017325822335207]]}
231uxqco/wandb/run-20250121_210301-231uxqco/files/media/videos/eval/0_eval_0_79182f80255d44a83209.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:79182f80255d44a832097c9a167b4ffae2e85c664d4cd1e225f3173ecfd26682
3
+ size 732693
231uxqco/wandb/run-20250121_210301-231uxqco/files/media/videos/eval/1_eval_1_dd15d97a4d935b9d7c47.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dd15d97a4d935b9d7c4771fad495abd63a13d1eea7cc7d360244e746fc26f6c9
3
+ size 738914
231uxqco/wandb/run-20250121_210301-231uxqco/files/media/videos/eval/2_eval_2_7a63220f48203a65003f.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7a63220f48203a65003fc8aea34ee07e3dc74e5b4075a8732409ba655029a2c0
3
+ size 727867
231uxqco/wandb/run-20250121_210301-231uxqco/files/media/videos/eval/3_eval_3_a630738d7570f95eb6b4.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a630738d7570f95eb6b4dd484151384f879e4686e4928bd530d2f1f845b2c458
3
+ size 1498187
231uxqco/wandb/run-20250121_210301-231uxqco/files/media/videos/eval/4_eval_4_49fbacdcf9023c6df72d.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:49fbacdcf9023c6df72d37d4a0147471cbbdb7c93388382fda2284b8dd1c0982
3
+ size 867093
231uxqco/wandb/run-20250121_210301-231uxqco/files/output.log ADDED
@@ -0,0 +1,272 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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] [1737511386.304271]: resetting environment
4
+ [INFO] [1737511386.308057]: cleared current plan
5
+ [INFO] [1737511386.308851]: moving to home
6
+ [INFO] [1737511387.311241]: reached home
7
+ [INFO] [1737511387.312964]: reset action history
8
+ [INFO] [1737511390.023274]: environment reset
9
+ Starting episode 0
10
+ [INFO] [1737511390.027376]: resetting environment
11
+ [INFO] [1737511390.033133]: cleared current plan
12
+ [INFO] [1737511390.034608]: moving to home
13
+ [INFO] [1737511391.036807]: reached home
14
+ [INFO] [1737511391.038084]: reset action history
15
+ [INFO] [1737511393.798558]: 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] [1737511395.934877]: resetting environment
19
+ [INFO] [1737511395.940018]: cleared current plan
20
+ [INFO] [1737511395.941919]: moving to home
21
+ [INFO] [1737511396.945487]: reached home
22
+ [INFO] [1737511396.947427]: reset action history
23
+ [INFO] [1737511399.655773]: environment reset
24
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/231uxqco/episode_rosbags/episode_0_2025-01-21-21-03-19.bag
25
+ ... logging to /home/leonmkim/.ros/log/1b77c894-d3af-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-2644351.log
26
+ started roslaunch server http://158.130.50.37:35401/
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 [2644631]
39
+ process[print_text-2]: started with pid [2644655]
40
+ process[rosbag_record-3]: started with pid [2644656]
41
+ started bagging!
42
+ preempting episode
43
+ [INFO] [1737511414.282694]: Storing episode...
44
+ [rosbag_record-3] killing on exit
45
+ [print_text-2] killing on exit
46
+ [pub_text-1] killing on exit
47
+ [INFO] [1737511415.077481]: Stored episode 1.
48
+ [INFO] [1737511415.078206]: Saving video...
49
+ [INFO] [1737511415.306006]: Video saved!
50
+ Starting episode 1
51
+ [INFO] [1737511415.322939]: resetting environment
52
+ [INFO] [1737511415.336136]: cleared current plan
53
+ [INFO] [1737511415.336795]: moving to home
54
+ [INFO] [1737511418.839110]: reached home
55
+ [INFO] [1737511418.841480]: reset action history
56
+ [INFO] [1737511421.551880]: environment reset
57
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
58
+ proceeding to start episode!
59
+ Comuting lower confidence bound
60
+ Comuting upper confidence bound
61
+ Comuting lower confidence bound
62
+ Comuting upper confidence bound
63
+ Comuting lower confidence bound
64
+ Comuting upper confidence bound
65
+ Comuting lower confidence bound
66
+ Comuting upper confidence bound
67
+ [INFO] [1737511425.394647]: resetting environment
68
+ [INFO] [1737511425.398777]: cleared current plan
69
+ [INFO] [1737511425.398938]: moving to home
70
+ [INFO] [1737511426.400367]: reached home
71
+ [INFO] [1737511426.400759]: reset action history
72
+ [INFO] [1737511429.107649]: environment reset
73
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/231uxqco/episode_rosbags/episode_1_2025-01-21-21-03-49.bag
74
+ ... logging to /home/leonmkim/.ros/log/1b77c894-d3af-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-2644351.log
75
+ started roslaunch server http://158.130.50.37:43413/
76
+ SUMMARY
77
+ ========
78
+ PARAMETERS
79
+ * /rosdistro: noetic
80
+ * /rosversion: 1.16.0
81
+ NODES
82
+ /
83
+ print_text (rostopic/rostopic)
84
+ pub_text (rostopic/rostopic)
85
+ rosbag_record (rosbag/record)
86
+ ROS_MASTER_URI=http://localhost:11311
87
+ process[pub_text-4]: started with pid [2644779]
88
+ process[print_text-5]: started with pid [2644780]
89
+ process[rosbag_record-6]: started with pid [2644804]
90
+ started bagging!
91
+ preempting episode
92
+ [INFO] [1737511443.733980]: Storing episode...
93
+ [rosbag_record-6] killing on exit
94
+ [pub_text-4] killing on exit
95
+ [print_text-5] killing on exit
96
+ [INFO] [1737511444.518746]: Stored episode 2.
97
+ [INFO] [1737511444.519584]: Saving video...
98
+ [INFO] [1737511444.805121]: Video saved!
99
+ Starting episode 2
100
+ [INFO] [1737511444.832350]: resetting environment
101
+ [INFO] [1737511444.846761]: cleared current plan
102
+ [INFO] [1737511444.847655]: moving to home
103
+ [INFO] [1737511448.350158]: reached home
104
+ [INFO] [1737511448.355443]: reset action history
105
+ [INFO] [1737511451.076514]: environment reset
106
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
107
+ proceeding to start episode!Comuting lower confidence bound
108
+ Comuting upper confidence bound
109
+ Comuting lower confidence bound
110
+ Comuting upper confidence bound
111
+ Comuting lower confidence bound
112
+ Comuting upper confidence bound
113
+ Comuting lower confidence bound
114
+ Comuting upper confidence bound
115
+ [INFO] [1737511452.140847]: resetting environment
116
+ [INFO] [1737511452.150830]: cleared current plan
117
+ [INFO] [1737511452.151026]: moving to home
118
+ [INFO] [1737511453.152466]: reached home
119
+ [INFO] [1737511453.152965]: reset action history
120
+ [INFO] [1737511455.863679]: environment reset
121
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/231uxqco/episode_rosbags/episode_2_2025-01-21-21-04-15.bag
122
+ ... logging to /home/leonmkim/.ros/log/1b77c894-d3af-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-2644351.log
123
+ started roslaunch server http://158.130.50.37:42291/
124
+ SUMMARY
125
+ ========
126
+ PARAMETERS
127
+ * /rosdistro: noetic
128
+ * /rosversion: 1.16.0
129
+ NODES
130
+ /
131
+ print_text (rostopic/rostopic)
132
+ pub_text (rostopic/rostopic)
133
+ rosbag_record (rosbag/record)
134
+ ROS_MASTER_URI=http://localhost:11311
135
+ process[pub_text-7]: started with pid [2644952]
136
+ process[print_text-8]: started with pid [2644953]
137
+ process[rosbag_record-9]: started with pid [2644954]
138
+ started bagging!
139
+ For topic gripper_width: timestamp difference is 105999097 for nearest: 1737511462379171237 - target: 1737511462273172140 at idx 88
140
+ preempting episode
141
+ [INFO] [1737511470.406128]: Storing episode...
142
+ [rosbag_record-9] killing on exit
143
+ [pub_text-7] killing on exit[print_text-8] killing on exit
144
+ [INFO] [1737511471.121557]: Stored episode 3.
145
+ [INFO] [1737511471.124794]: Saving video...
146
+ [INFO] [1737511471.412588]: Video saved!
147
+ Starting episode 3
148
+ [INFO] [1737511471.439085]: resetting environment
149
+ [INFO] [1737511471.454337]: cleared current plan
150
+ [INFO] [1737511471.455076]: moving to home
151
+ [INFO] [1737511474.960933]: reached home
152
+ [INFO] [1737511474.963919]: reset action history
153
+ [INFO] [1737511477.688791]: environment reset
154
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
155
+ proceeding to start episode!Comuting lower confidence bound
156
+ Comuting upper confidence bound
157
+ Comuting lower confidence bound
158
+ Comuting upper confidence bound
159
+ Comuting lower confidence bound
160
+ Comuting upper confidence bound
161
+ Comuting lower confidence bound
162
+ Comuting upper confidence bound
163
+ [INFO] [1737511479.454260]: resetting environment
164
+ [INFO] [1737511479.467877]: cleared current plan
165
+ [INFO] [1737511479.469798]: moving to home
166
+ [INFO] [1737511480.478248]: reached home
167
+ [INFO] [1737511480.481835]: reset action history
168
+ [INFO] [1737511483.210564]: environment reset
169
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/231uxqco/episode_rosbags/episode_3_2025-01-21-21-04-43.bag
170
+ ... logging to /home/leonmkim/.ros/log/1b77c894-d3af-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-2644351.log
171
+ started roslaunch server http://158.130.50.37:43829/
172
+ SUMMARY
173
+ ========
174
+ PARAMETERS
175
+ * /rosdistro: noetic
176
+ * /rosversion: 1.16.0
177
+ NODES
178
+ /
179
+ print_text (rostopic/rostopic)
180
+ pub_text (rostopic/rostopic)
181
+ rosbag_record (rosbag/record)
182
+ ROS_MASTER_URI=http://localhost:11311
183
+ process[pub_text-10]: started with pid [2645069]
184
+ process[print_text-11]: started with pid [2645070]
185
+ process[rosbag_record-12]: started with pid [2645094]
186
+ started bagging!
187
+ For topic gripper_width: timestamp difference is 109020337 for nearest: 1737511507279171332 - target: 1737511507170150995 at idx 249
188
+ [INFO] [1737511517.900889]: Storing episode...
189
+ [rosbag_record-12] killing on exit
190
+ [print_text-11] killing on exit[pub_text-10] killing on exit
191
+ [INFO] [1737511518.697542]: Stored episode 4.
192
+ [INFO] [1737511518.700881]: Saving video...
193
+ [INFO] [1737511518.963184]: Video saved!
194
+ Starting episode 4
195
+ [INFO] [1737511519.044858]: resetting environment
196
+ [INFO] [1737511519.058009]: cleared current plan
197
+ [INFO] [1737511519.058241]: moving to home
198
+ [INFO] [1737511522.663255]: reached home
199
+ [INFO] [1737511522.667053]: reset action history
200
+ [INFO] [1737511525.455071]: environment reset
201
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
202
+ proceeding to start episode!
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
+ Comuting lower confidence bound
210
+ Comuting upper confidence bound
211
+ [INFO] [1737511532.116097]: resetting environment
212
+ [INFO] [1737511532.142746]: cleared current plan
213
+ [INFO] [1737511532.143737]: moving to home
214
+ [INFO] [1737511533.149423]: reached home
215
+ [INFO] [1737511533.151736]: reset action history
216
+ [INFO] [1737511535.882608]: environment reset
217
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/231uxqco/episode_rosbags/episode_4_2025-01-21-21-05-35.bag
218
+ ... logging to /home/leonmkim/.ros/log/1b77c894-d3af-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-2644351.log
219
+ started roslaunch server http://158.130.50.37:35675/
220
+ SUMMARY
221
+ ========
222
+ PARAMETERS
223
+ * /rosdistro: noetic
224
+ * /rosversion: 1.16.0
225
+ NODES
226
+ /
227
+ print_text (rostopic/rostopic)
228
+ pub_text (rostopic/rostopic)
229
+ rosbag_record (rosbag/record)
230
+ ROS_MASTER_URI=http://localhost:11311
231
+ process[pub_text-13]: started with pid [2645245]
232
+ process[print_text-14]: started with pid [2645246]
233
+ process[rosbag_record-15]: started with pid [2645247]
234
+ started bagging!
235
+ For topic gripper_width: timestamp difference is 100174625 for nearest: 1737511537579171856 - target: 1737511537478997231 at idx 25
236
+ For topic gripper_width: timestamp difference is 102285340 for nearest: 1737511540379172995 - target: 1737511540276887655 at idx 62
237
+ For topic gripper_width: timestamp difference is 105865653 for nearest: 1737511544779203351 - target: 1737511544673337698 at idx 117
238
+ For topic gripper_width: timestamp difference is 112680047 for nearest: 1737511553079175322 - target: 1737511552966495275 at idx 217
239
+ preempting episode
240
+ [INFO] [1737511553.888417]: Storing episode...
241
+ [rosbag_record-15] killing on exit[print_text-14] killing on exit
242
+ [pub_text-13] killing on exit
243
+ [INFO] [1737511554.628613]: Stored episode 5.
244
+ [INFO] [1737511554.636236]: Saving video...
245
+ [INFO] [1737511555.240381]: Video saved!
246
+ [INFO] [1737511555.286868]: resetting environment
247
+ [INFO] [1737511555.296052]: cleared current plan
248
+ [INFO] [1737511555.296793]: moving to home
249
+ [WARN] [1737511555.188237]: Plan exhausted
250
+ [WARN] [1737511555.228219]: Plan exhausted
251
+ [WARN] [1737511555.268391]: Plan exhausted
252
+ [INFO] [1737511558.799912]: reached home
253
+ [INFO] [1737511558.807121]: reset action history
254
+ [INFO] [1737511561.595832]: environment reset
255
+ Evaluation finished. To wrap up, rate prev episode, press 0 for failure and 1 for success
256
+ proceeding to start episode!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
+ Comuting lower confidence bound
265
+ Comuting upper confidence bound
266
+ Comuting lower confidence bound
267
+ Comuting upper confidence bound
268
+ Comuting lower confidence bound
269
+ Comuting upper confidence bound
270
+ Comuting lower confidence bound
271
+ Comuting upper confidence bound
272
+ proceeding to start episode!
231uxqco/wandb/run-20250121_210301-231uxqco/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
231uxqco/wandb/run-20250121_210301-231uxqco/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:03:02.038107",
5
+ "startedAt": "2025-01-22T02:03:01.622424",
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": 3373.7529999999997,
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": 4498.064,
41
+ "min": 800.0,
42
+ "max": 4700.0
43
+ },
44
+ {
45
+ "current": 4500.015,
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": 3000.0,
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": 337.3622856140137
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
+ }
231uxqco/wandb/run-20250121_210301-231uxqco/files/wandb-summary.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"eval/0_eval": {"_type": "video-file", "sha256": "79182f80255d44a832097c9a167b4ffae2e85c664d4cd1e225f3173ecfd26682", "size": 732693, "path": "media/videos/eval/0_eval_0_79182f80255d44a83209.mp4"}, "global_step": 366, "_timestamp": 1737511562.5682266, "_runtime": 180.93920946121216, "_step": 11, "eval/1_eval": {"_type": "video-file", "sha256": "dd15d97a4d935b9d7c4771fad495abd63a13d1eea7cc7d360244e746fc26f6c9", "size": 738914, "path": "media/videos/eval/1_eval_1_dd15d97a4d935b9d7c47.mp4"}, "eval/num_success": 1.0, "episode": 15.0, "eval/success_rate": 0.20000000298023224, "eval/success_rate_lb_0.01": 0.0036819279193878174, "eval/success_rate_ub_0.01": 0.7286170721054077, "eval/success_rate_lb_0.025": 0.005147464573383331, "eval/success_rate_ub_0.025": 0.6458297371864319, "eval/success_rate_lb_0.05": 0.0251171737909317, "eval/success_rate_ub_0.05": 0.5745371580123901, "eval/success_rate_lb_0.1": 0.10005546361207962, "eval/success_rate_ub_0.1": 0.47114917635917664, "eval/2_eval": {"_type": "video-file", "sha256": "7a63220f48203a65003fc8aea34ee07e3dc74e5b4075a8732409ba655029a2c0", "size": 727867, "path": "media/videos/eval/2_eval_2_7a63220f48203a65003f.mp4"}, "eval/3_eval": {"_type": "video-file", "sha256": "a630738d7570f95eb6b4dd484151384f879e4686e4928bd530d2f1f845b2c458", "size": 1498187, "path": "media/videos/eval/3_eval_3_a630738d7570f95eb6b4.mp4"}, "eval/4_eval": {"_type": "video-file", "sha256": "49fbacdcf9023c6df72d37d4a0147471cbbdb7c93388382fda2284b8dd1c0982", "size": 867093, "path": "media/videos/eval/4_eval_4_49fbacdcf9023c6df72d.mp4"}, "eval/success_rate_ci": {"_type": "table-file", "sha256": "ff553b4df26f1e2b1b21e12412af8c8e47b3dc0662f8640d7c2b7298b63d3c98", "size": 405, "artifact_path": "wandb-client-artifact://rdzm9nddnvykbmhi4brjdwi6nbyrgia47h9u8tqzzrulgr3tzn85c8ulks2htm6p9boqi6dsd8ef6z4nvjmg4u5d20qtz6j9ti61rj2y0by2puvt7kge9an0l9kkb2p3/eval/success_rate_ci.table.json", "_latest_artifact_path": "wandb-client-artifact://8yl9qgkq1pbmfmcrz9kg1lwihapit27aoimxhkwegh6q5n1jasy2whn0vex0uj1ol7j7t0y96qlticopan4hdwmdndzjba596oj2x4kq2nkav9ingzkri9ykjzavzkgo:latest/eval/success_rate_ci.table.json", "path": "media/table/eval/success_rate_ci_5_ff553b4df26f1e2b1b21.table.json", "ncols": 9, "nrows": 1}, "total_num_successes": 2, "total_num_episodes": 15, "total_success_rate": 0.13333333333333333, "total_success_rate_lb_0.01": 0.012688301601120637, "total_success_rate_ub_0.01": 0.43005549909083207, "total_success_rate_lb_0.025": 0.02801970029376167, "total_success_rate_ub_0.025": 0.4017714858251573, "total_success_rate_lb_0.05": 0.03871402898715848, "total_success_rate_ub_0.05": 0.31777475777932684, "total_success_rate_lb_0.1": 0.040400557311902036, "total_success_rate_ub_0.1": 0.31017325822335207, "eval/total_success_rate_ci": {"_type": "table-file", "sha256": "ad9b7fb9cdbbec96b24f0132720174945a65d1e0650c2ff4bce15f6b1399f4ce", "size": 529, "artifact_path": "wandb-client-artifact://cceeh2usob9p7diob721d7ec4aqkexoza5e67hrofw9rn5gkdp1noqedi6qehk8x0q2ln46kob4l2yxfm3bdjc1xw87ujathevoqcb0k9wbsrxpq8g0adu7443f2i040/eval/total_success_rate_ci.table.json", "_latest_artifact_path": "wandb-client-artifact://5q3g6eso0fx4o46dnpvm0r6jv24bwksrgkapguzdymudowohyj8lmhdf5zn541pge9au7da5wwbodm0ibl03hzsczxdm8kp491mvu7na7g2sv0kewehxb38zttjqtpi6:latest/eval/total_success_rate_ci.table.json", "path": "media/table/eval/total_success_rate_ci_6_ad9b7fb9cdbbec96b24f.table.json", "ncols": 11, "nrows": 1}, "_wandb": {"runtime": 203}, "eval/total_success_rate": 0.13333334028720856, "eval/total_success_rate_lb_0.01": 0.012688301503658295, "eval/total_success_rate_ub_0.01": 0.43005549907684326, "eval/total_success_rate_lb_0.025": 0.028019700199365616, "eval/total_success_rate_ub_0.025": 0.4017714858055115, "eval/total_success_rate_lb_0.05": 0.038714028894901276, "eval/total_success_rate_ub_0.05": 0.31777477264404297, "eval/total_success_rate_lb_0.1": 0.04040055721998215, "eval/total_success_rate_ub_0.1": 0.31017327308654785}
231uxqco/wandb/run-20250121_210301-231uxqco/logs/debug-internal.log ADDED
The diff for this file is too large to render. See raw diff
 
231uxqco/wandb/run-20250121_210301-231uxqco/logs/debug.log ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_setup.py:_flush():76] Current SDK version is 0.17.5
2
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_setup.py:_flush():76] Configure stats pid to 2644351
3
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/.config/wandb/settings
4
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/231uxqco/wandb/settings
5
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_setup.py:_flush():76] Loading settings from environment variables: {}
6
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_setup.py:_flush():76] Applying setup settings: {'_disable_service': False}
7
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [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:03:01,624 INFO MainThread:2644351 [wandb_setup.py:_flush():76] Applying login settings: {}
9
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_init.py:_log_setup():529] Logging user logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/231uxqco/wandb/run-20250121_210301-231uxqco/logs/debug.log
10
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_init.py:_log_setup():530] Logging internal logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/231uxqco/wandb/run-20250121_210301-231uxqco/logs/debug-internal.log
11
+ 2025-01-21 21:03:01,624 INFO MainThread:2644351 [wandb_init.py:init():569] calling init triggers
12
+ 2025-01-21 21:03:01,625 INFO MainThread:2644351 [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': 0, 'dataset_shuffle_seed': 0, 'device': 'cuda', 'save_video': True, 'save_train_video': True, 'use_tb': True, 'use_wandb': True, 'wandb_run_id': '4295_0', 'wandb_notes': '4295_0_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_0', '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': 0, '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_0', 'residual_weight': '/home/leonmkim/fish_leon/FISH/weights/frankagym_pixels/FrankaInsertion-v1/weight.pt', 'final_experiment_dir': './exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/231uxqco'}
14
+ 2025-01-21 21:03:01,625 INFO MainThread:2644351 [wandb_init.py:init():619] starting backend
15
+ 2025-01-21 21:03:01,625 INFO MainThread:2644351 [wandb_init.py:init():623] setting up manager
16
+ 2025-01-21 21:03:01,628 INFO MainThread:2644351 [backend.py:_multiprocessing_setup():105] multiprocessing start_methods=fork,spawn,forkserver, using: spawn
17
+ 2025-01-21 21:03:01,628 INFO MainThread:2644351 [wandb_init.py:init():631] backend started and connected
18
+ 2025-01-21 21:03:01,638 INFO MainThread:2644351 [wandb_init.py:init():720] updated telemetry
19
+ 2025-01-21 21:03:01,644 INFO MainThread:2644351 [wandb_init.py:init():753] communicating run to backend with 90.0 second timeout
20
+ 2025-01-21 21:03:01,970 INFO MainThread:2644351 [wandb_run.py:_on_init():2435] communicating current version
21
+ 2025-01-21 21:03:02,013 INFO MainThread:2644351 [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:03:02,014 INFO MainThread:2644351 [wandb_init.py:init():804] starting run threads in backend
24
+ 2025-01-21 21:03:02,378 INFO MainThread:2644351 [wandb_run.py:_console_start():2413] atexit reg
25
+ 2025-01-21 21:03:02,378 INFO MainThread:2644351 [wandb_run.py:_redirect():2255] redirect: wrap_raw
26
+ 2025-01-21 21:03:02,378 INFO MainThread:2644351 [wandb_run.py:_redirect():2320] Wrapping output streams.
27
+ 2025-01-21 21:03:02,378 INFO MainThread:2644351 [wandb_run.py:_redirect():2345] Redirects installed.
28
+ 2025-01-21 21:03:02,380 INFO MainThread:2644351 [wandb_init.py:init():847] run started, returning control to user process
29
+ 2025-01-21 21:03:02,380 INFO MainThread:2644351 [wandb_run.py:_tensorboard_callback():1544] tensorboard callback: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/231uxqco/tb, True
30
+ 2025-01-21 21:03:06,303 INFO MainThread:2644351 [wandb_run.py:_config_callback():1382] config_cb None None {'grasped_obj_name': 'greece', 'left_book_slot': 'twodim'}
31
+ 2025-01-21 21:06:35,832 WARNING MsgRouterThr:2644351 [router.py:message_loop():77] message_loop has been closed
231uxqco/wandb/run-20250121_210301-231uxqco/run-231uxqco.wandb ADDED
Binary file (77.4 kB). View file
 
37t5ymwr/.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_0'
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
37t5ymwr/.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_0/37t5ymwr
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
37t5ymwr/.hydra/overrides.yaml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ - agent=diffusion
2
+ - suite=frankagym
3
+ - suite/frankagym_task@_global_=insertion
37t5ymwr/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
37t5ymwr/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
37t5ymwr/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
37t5ymwr/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
37t5ymwr/eval_robot.log ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [2025-01-21 20:56:04,201][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 20:56:04,203][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
+
37t5ymwr/eval_video/0_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2f683e3d27762b787fec968a43a002ce99ba89e75ad7489e6f4904d2285ad695
3
+ size 1559689
37t5ymwr/eval_video/1_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:52f38aea11256dff566a2fe5eaa942024fa1dd1d934656e060ced805c2d27859
3
+ size 967457
37t5ymwr/eval_video/2_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:02b7b0943e5ffceb2ddf97a0139944e21ff99cec3cc94a868728bb81dbb119a6
3
+ size 855954
37t5ymwr/eval_video/3_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:eb1f7174555f6baf68df8b0ad0e48f5922021f91c0eaa6bdcf8fa1bbfde0c8f9
3
+ size 1514034
37t5ymwr/eval_video/4_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e88bcd3f25d83f27b5d9f0b70d22f2822bca00fd82b3655266eb8985d2231772
3
+ size 798661
37t5ymwr/tb/events.out.tfevents.1737510970.leonmkim-ROG-Strix-G15CS-G15CS.2643122.0 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8ebbbdf91d6e9a4aff3ca12d0790608dd5078513d6ed9e5f453c146eed2f596d
3
+ size 6519
37t5ymwr/wandb/debug-internal.log ADDED
The diff for this file is too large to render. See raw diff