serialexperimentsleon commited on
Commit
224608f
·
verified ·
1 Parent(s): 50c20ce

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 +16 -0
  2. 113637/.hydra/config.yaml +349 -0
  3. 113637/.hydra/hydra.yaml +169 -0
  4. 113637/.hydra/overrides.yaml +3 -0
  5. 113637/eval_policy.log +15 -0
  6. 113638/.hydra/config.yaml +349 -0
  7. 113638/.hydra/hydra.yaml +169 -0
  8. 113638/.hydra/overrides.yaml +3 -0
  9. 113638/episode_rosbags/aligned_depth_to_color_K.npy +3 -0
  10. 113638/episode_rosbags/cam_tf_world.npy +3 -0
  11. 113638/episode_rosbags/color_K.npy +3 -0
  12. 113638/episode_rosbags/depth_K.npy +3 -0
  13. 113638/episode_rosbags/episode_0_2024-12-11-11-37-21.bag +3 -0
  14. 113638/episode_rosbags/episode_1_2024-12-11-11-38-11.bag +3 -0
  15. 113638/episode_rosbags/episode_2_2024-12-11-11-39-24.bag +3 -0
  16. 113638/episode_rosbags/episode_3_2024-12-11-11-40-13.bag +3 -0
  17. 113638/episode_rosbags/episode_4_2024-12-11-11-41-04.bag +3 -0
  18. 113638/eval_robot.log +12 -0
  19. 113638/eval_video/0_eval.mp4 +3 -0
  20. 113638/eval_video/1_eval.mp4 +3 -0
  21. 113638/eval_video/2_eval.mp4 +3 -0
  22. 113638/eval_video/3_eval.mp4 +3 -0
  23. 113638/eval_video/4_eval.mp4 +3 -0
  24. 113638/tb/events.out.tfevents.1733935005.leonmkim-ROG-Strix-G15CS-G15CS.743294.0 +3 -0
  25. 113638/wandb/debug-internal.log +0 -0
  26. 113638/wandb/debug.log +31 -0
  27. 113638/wandb/run-20241211_113644-ahosb0lo/files/code/FISH/eval_robot.py +512 -0
  28. 113638/wandb/run-20241211_113644-ahosb0lo/files/config.yaml +966 -0
  29. 113638/wandb/run-20241211_113644-ahosb0lo/files/diff.patch +48 -0
  30. 113638/wandb/run-20241211_113644-ahosb0lo/files/media/videos/eval/0_eval_0_dea3cb7ce16ad057bd5f.mp4 +3 -0
  31. 113638/wandb/run-20241211_113644-ahosb0lo/files/media/videos/eval/1_eval_1_925210ff3b36d88f3887.mp4 +3 -0
  32. 113638/wandb/run-20241211_113644-ahosb0lo/files/media/videos/eval/2_eval_2_ddba0e3583786ac1097b.mp4 +3 -0
  33. 113638/wandb/run-20241211_113644-ahosb0lo/files/media/videos/eval/3_eval_3_b687720b2d32aeeb9a91.mp4 +3 -0
  34. 113638/wandb/run-20241211_113644-ahosb0lo/files/media/videos/eval/4_eval_4_10441113b4d3ea44e8c6.mp4 +3 -0
  35. 113638/wandb/run-20241211_113644-ahosb0lo/files/output.log +0 -0
  36. 113638/wandb/run-20241211_113644-ahosb0lo/files/requirements.txt +339 -0
  37. 113638/wandb/run-20241211_113644-ahosb0lo/files/wandb-metadata.json +92 -0
  38. 113638/wandb/run-20241211_113644-ahosb0lo/files/wandb-summary.json +1 -0
  39. 113638/wandb/run-20241211_113644-ahosb0lo/logs/debug-internal.log +0 -0
  40. 113638/wandb/run-20241211_113644-ahosb0lo/logs/debug.log +31 -0
  41. 113638/wandb/run-20241211_113644-ahosb0lo/run-ahosb0lo.wandb +3 -0
  42. config.yaml +453 -0
  43. snapshot_10500.pt +3 -0
  44. snapshot_10749.pt +3 -0
  45. snapshot_12000.pt +3 -0
  46. snapshot_13500.pt +3 -0
  47. snapshot_14453.pt +3 -0
  48. snapshot_14999.pt +3 -0
  49. snapshot_1500.pt +3 -0
  50. snapshot_15000.pt +3 -0
.gitattributes CHANGED
@@ -33,3 +33,19 @@ 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
+ 113638/wandb/run-20241211_113644-ahosb0lo/run-ahosb0lo.wandb filter=lfs diff=lfs merge=lfs -text
37
+ 113638/wandb/run-20241211_113644-ahosb0lo/files/media/videos/eval/2_eval_2_ddba0e3583786ac1097b.mp4 filter=lfs diff=lfs merge=lfs -text
38
+ 113638/wandb/run-20241211_113644-ahosb0lo/files/media/videos/eval/3_eval_3_b687720b2d32aeeb9a91.mp4 filter=lfs diff=lfs merge=lfs -text
39
+ 113638/wandb/run-20241211_113644-ahosb0lo/files/media/videos/eval/4_eval_4_10441113b4d3ea44e8c6.mp4 filter=lfs diff=lfs merge=lfs -text
40
+ 113638/wandb/run-20241211_113644-ahosb0lo/files/media/videos/eval/0_eval_0_dea3cb7ce16ad057bd5f.mp4 filter=lfs diff=lfs merge=lfs -text
41
+ 113638/wandb/run-20241211_113644-ahosb0lo/files/media/videos/eval/1_eval_1_925210ff3b36d88f3887.mp4 filter=lfs diff=lfs merge=lfs -text
42
+ 113638/eval_video/3_eval.mp4 filter=lfs diff=lfs merge=lfs -text
43
+ 113638/eval_video/4_eval.mp4 filter=lfs diff=lfs merge=lfs -text
44
+ 113638/eval_video/1_eval.mp4 filter=lfs diff=lfs merge=lfs -text
45
+ 113638/eval_video/2_eval.mp4 filter=lfs diff=lfs merge=lfs -text
46
+ 113638/eval_video/0_eval.mp4 filter=lfs diff=lfs merge=lfs -text
47
+ 113638/episode_rosbags/episode_3_2024-12-11-11-40-13.bag filter=lfs diff=lfs merge=lfs -text
48
+ 113638/episode_rosbags/episode_4_2024-12-11-11-41-04.bag filter=lfs diff=lfs merge=lfs -text
49
+ 113638/episode_rosbags/episode_2_2024-12-11-11-39-24.bag filter=lfs diff=lfs merge=lfs -text
50
+ 113638/episode_rosbags/episode_1_2024-12-11-11-38-11.bag filter=lfs diff=lfs merge=lfs -text
51
+ 113638/episode_rosbags/episode_0_2024-12-11-11-37-21.bag filter=lfs diff=lfs merge=lfs -text
113637/.hydra/config.yaml ADDED
@@ -0,0 +1,349 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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: 192_240x320_multiobj_twodim_recovery_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: '265650'
79
+ true_action_history: false
80
+ wandb_notes: null
81
+ checkpoint_epoch: 12000
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
+ agent:
88
+ _target_: agent.diffusion_policy.DiffusionPolicyAgent
89
+ name: diffusion_policy
90
+ load_checkpoint: ${eval}
91
+ device: ${device}
92
+ n_obs_steps: ${.config.policy_cfg.n_obs_steps}
93
+ suite_name: ${suite.name}
94
+ obs_type: ${obs_type}
95
+ enable_arm: ${eval}
96
+ enable_camera: ${eval}
97
+ use_tb: ${use_tb}
98
+ desired_image_shape:
99
+ - 13
100
+ - 180
101
+ - 240
102
+ orig_cam_shape:
103
+ - 3
104
+ - 240
105
+ - 320
106
+ config:
107
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
108
+ compile: false
109
+ device: ${device}
110
+ cam_resize_shape: ${agent.desired_image_shape}
111
+ orig_cam_shape: ${agent.orig_cam_shape}
112
+ policy_frequency: ${policy_frequency}
113
+ interpolation_frequency: ${interpolation_frequency}
114
+ policy_cfg:
115
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
116
+ n_obs_steps: 1
117
+ horizon: 36
118
+ n_action_steps: ${agent.config.policy_cfg.horizon}
119
+ input_shapes:
120
+ observation.image: ${agent.config.cam_resize_shape}
121
+ context_observation.image: ${agent.config.cam_resize_shape}
122
+ observation.state:
123
+ - 8
124
+ observation.action_history:
125
+ - 7
126
+ output_shapes:
127
+ action:
128
+ - 7
129
+ input_normalization_modes:
130
+ observation.image: mean_std
131
+ observation.state: min_max
132
+ observation.action_history: min_max
133
+ output_normalization_modes:
134
+ action: min_max
135
+ vision_backbone: resnet18
136
+ pretrained_backbone_weights: null
137
+ transforms:
138
+ - _target_: torchaug.transforms.RandomAffine
139
+ degrees:
140
+ - -5
141
+ - 5
142
+ translate:
143
+ - 0.05
144
+ - 0.05
145
+ batch_transform: true
146
+ num_chunks: -1
147
+ batch_inplace: true
148
+ - _target_: torchaug.transforms.RandomColorJitter
149
+ brightness: 0.3
150
+ contrast: 0.4
151
+ saturation: 0.5
152
+ hue: 0.08
153
+ batch_transform: true
154
+ num_chunks: -1
155
+ batch_inplace: true
156
+ use_group_norm: true
157
+ spatial_softmax_num_keypoints: 32
158
+ action_history_encoder_config:
159
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
160
+ in_channels: 7
161
+ out_channels: 32
162
+ history_length: ${agent.config.policy_cfg.n_action_steps}
163
+ kernel_size: ${agent.config.policy_cfg.kernel_size}
164
+ downsample_kernel_size: 3
165
+ downsample_stride: 2
166
+ downsample_padding: 1
167
+ down_dims:
168
+ - 256
169
+ - 512
170
+ - 1024
171
+ kernel_size: 5
172
+ n_groups: 8
173
+ diffusion_step_embed_dim: 128
174
+ use_film_scale_modulation: true
175
+ noise_scheduler_type: DDIM
176
+ beta_schedule: squaredcos_cap_v2
177
+ beta_start: 0.0001
178
+ beta_end: 0.02
179
+ prediction_type: epsilon
180
+ clip_sample: true
181
+ clip_sample_range: 1.0
182
+ num_train_timesteps: 50
183
+ num_inference_steps: 10
184
+ do_mask_loss_for_padding: false
185
+ train_cfg:
186
+ _target_: utils.TrainConfig
187
+ lr: 0.0001
188
+ lr_scheduler: cosine
189
+ lr_warmup_steps: 500
190
+ adam_betas:
191
+ - 0.95
192
+ - 0.999
193
+ adam_eps: 1.0e-08
194
+ adam_weight_decay: 1.0e-06
195
+ grad_clip_norm: 10
196
+ offline_steps: ${num_train_frames_diffusion}
197
+ use_amp: true
198
+ observation_cfg:
199
+ _target_: agent.encoder.VisualFeatureSet
200
+ use_depth: ${use_depth}
201
+ use_color: ${use_color}
202
+ mask_input_dict:
203
+ _target_: agent.encoder.MaskInputDict
204
+ enable: ${use_masks}
205
+ representation: ${mask_representation}
206
+ mask_list: ${mask_list}
207
+ crop_input_config:
208
+ _target_: agent.encoder.CropInputConfig
209
+ color_crop_type: ${color_crop_type}
210
+ depth_crop_type: ${depth_crop_type}
211
+ segmask_crop_type: ${segmask_crop_type}
212
+ crop_hw: ${crop_hw}
213
+ crop_down_offset: ${crop_down_offset}
214
+ add_crop_binary_mask: ${add_crop_binary_mask}
215
+ add_coord_conv_map: ${add_coord_conv_map}
216
+ context_input_config:
217
+ _target_: agent.encoder.ContextInputConfig
218
+ use_color: ${use_context_color}
219
+ use_depth: ${use_context_depth}
220
+ mask_input_dict:
221
+ _target_: agent.encoder.MaskInputDict
222
+ enable: ${use_context_segmask}
223
+ representation: ${mask_representation}
224
+ mask_list: ${mask_list}
225
+ crop_input_config:
226
+ _target_: agent.encoder.CropInputConfig
227
+ color_crop_type: ${context_color_crop_type}
228
+ depth_crop_type: ${context_depth_crop_type}
229
+ segmask_crop_type: ${context_segmask_crop_type}
230
+ crop_hw: ${crop_hw}
231
+ crop_down_offset: ${crop_down_offset}
232
+ add_crop_binary_mask: ${context_add_crop_binary_mask}
233
+ add_coord_conv_map: ${context_add_coord_conv_map}
234
+ mask_soft_approx_scheduler_config:
235
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
236
+ num_steps: 40000
237
+ initial_value: 10.0
238
+ final_value: 1000.0
239
+ interpolation_scheme: constant
240
+ use_contact_map: ${use_contact_map}
241
+ use_sdf_maps: ${use_sdf_maps}
242
+ use_normals_maps: ${use_normals_maps}
243
+ which_objects: ${which_objects}
244
+ grasped_dtc_max_value: ${grasped_dtc_max_value}
245
+ env_dtc_max_value: ${env_dtc_max_value}
246
+ grasped_normals_mask_max_dtc_value: ${grasped_normals_mask_max_dtc_value}
247
+ env_normals_mask_max_dtc_value: ${env_normals_mask_max_dtc_value}
248
+ clamp_dtc: ${clamp_dtc}
249
+ max_contact_prob: ${max_contact_prob}
250
+ mask_normals_within_sdf: ${mask_normals_within_sdf}
251
+ dtc_adaptive_normalization: ${dtc_adaptive_normalization}
252
+ adaptive_normals_mask: ${adaptive_normals_mask}
253
+ max_depth: ${max_depth}
254
+ image_shape: ${agent.desired_image_shape}
255
+ learnable_contact_preprocess_params: ${learnable_contact_preprocess_params}
256
+ learning_rate: ${agent.config.train_cfg.lr}
257
+ weight_decay: 0.0
258
+ contact_model_name: ${contact_model_name}
259
+ zero_centered: false
260
+ suite:
261
+ suite: frankagym
262
+ name: frankagym
263
+ frame_stack: ${agent.n_obs_steps}
264
+ action_repeat: 1
265
+ discount: 0.99
266
+ hidden_dim: 1024
267
+ num_train_frames: 2010
268
+ num_seed_frames: 260
269
+ num_train_epochs: 5000
270
+ validate_every_epochs: 100
271
+ validate_diffusion_on_action_loss_every_epochs: 500
272
+ train_eval_diffusion_on_action_loss_every_epochs: 500
273
+ check_topk_every_epochs: 10
274
+ save_snapshot_every_epochs: 5000
275
+ eval_every_frames: 2000
276
+ num_eval_episodes: 5
277
+ save_snapshot: true
278
+ wait_for_user_to_start_episode: true
279
+ task_make_fn:
280
+ _target_: suite.frankagym.make
281
+ name: ${task_name}
282
+ height: 240
283
+ width: 320
284
+ frame_stack: ${suite.frame_stack}
285
+ action_repeat: ${suite.action_repeat}
286
+ seed: ${seed}
287
+ enable_arm: ${agent.enable_arm}
288
+ enable_gripper: ${enable_gripper}
289
+ start_with_gripper_open: ${start_with_gripper_open}
290
+ enable_camera: ${agent.enable_camera}
291
+ path_to_depth_extrinsics: ${path_to_depth_extrinsics}
292
+ contact_estimation_model_ckpt_path: ${contact_estimation_model_ckpt_path}
293
+ x_limit: ${x_limit}
294
+ y_limit: ${y_limit}
295
+ z_limit: ${z_limit}
296
+ device: ${device}
297
+ interpolation_frequency: ${interpolation_frequency}
298
+ policy_frequency: ${policy_frequency}
299
+ debug_timestamps: ${debug_timestamps}
300
+ stop_after_action: ${stop_after_action}
301
+ open_loop: ${open_loop}
302
+ wait_for_new_camera_frames: ${wait_for_new_camera_frames}
303
+ action_key: ${action_key}
304
+ action_trajectory_horizon: ${agent.config.policy_cfg.horizon}
305
+ action_trajectories: ${action_trajectories}
306
+ path_to_zarr_dataset: ${expert_dataset}
307
+ agent_policy_cfg: ???
308
+ true_action_history: ${true_action_history}
309
+ num_train_frames_bc: 50000
310
+ num_train_frames_drq: 1100000
311
+ stddev_schedule_drq: linear(1.0,0.1,100000)
312
+ task_name: FrankaInsertion-v1
313
+ num_train_frames_vinn: 25000
314
+ num_train_frames_diffusion: 1000000
315
+ num_train_epochs_bc: 5000
316
+ num_train_epochs_diffusion: 5000
317
+ validate_every_epochs_bc: 5
318
+ validate_every_epochs_diffusion: 25
319
+ validate_diffusion_on_action_loss_every_epochs: 50
320
+ train_eval_diffusion_on_action_loss_every_epochs: 500
321
+ check_topk_every_epochs: 5
322
+ check_topk_every_epochs_diffusion: ${validate_diffusion_on_action_loss_every_epochs}
323
+ save_snapshot_every_epochs_diffusion: 5000
324
+ x_limit:
325
+ - 0.2
326
+ - 0.7
327
+ y_limit:
328
+ - -0.4
329
+ - 0.4
330
+ z_limit:
331
+ - -0.05
332
+ - 0.55
333
+ home_displacement:
334
+ - 0.55
335
+ - 0.0
336
+ - 0.55
337
+ - 180.0
338
+ - 0.0
339
+ - 0.0
340
+ enable_gripper: true
341
+ start_with_gripper_open: true
342
+ offset_mask:
343
+ - 1
344
+ - 1
345
+ - 1
346
+ - 1
347
+ - 1
348
+ - 1
349
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
113637/.hydra/hydra.yaml ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: ${experiment_dir}/${now:%H%M%S}
4
+ sweep:
5
+ dir: ${experiment_dir}/${now:%H%M%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ submitit_folder: ${experiment_dir}/${now:%H%M%S}/.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_policy
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/265650/113637
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
113637/.hydra/overrides.yaml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ - agent=diffusion
2
+ - suite=frankagym
3
+ - suite/frankagym_task@_global_=insertion
113637/eval_policy.log ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [2024-12-11 11:36:37,909][py.warnings][WARNING] - /home/leonmkim/fish_leon/FISH/eval_policy.py:428: 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
+ [2024-12-11 11:36:37,913][py.warnings][WARNING] - /home/leonmkim/fish_leon/FISH/eval_policy.py:365: 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
+
13
+ [2024-12-11 11:36:40,078][py.warnings][WARNING] - /home/leonmkim/fish_leon/FISH/eval_policy.py:414: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
14
+ payload = torch.load(f)
15
+
113638/.hydra/config.yaml ADDED
@@ -0,0 +1,349 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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: 192_240x320_multiobj_twodim_recovery_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: '265650'
79
+ true_action_history: false
80
+ wandb_notes: null
81
+ checkpoint_epoch: 12000
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
+ agent:
88
+ _target_: agent.diffusion_policy.DiffusionPolicyAgent
89
+ name: diffusion_policy
90
+ load_checkpoint: ${eval}
91
+ device: ${device}
92
+ n_obs_steps: ${.config.policy_cfg.n_obs_steps}
93
+ suite_name: ${suite.name}
94
+ obs_type: ${obs_type}
95
+ enable_arm: ${eval}
96
+ enable_camera: ${eval}
97
+ use_tb: ${use_tb}
98
+ desired_image_shape:
99
+ - 13
100
+ - 180
101
+ - 240
102
+ orig_cam_shape:
103
+ - 3
104
+ - 240
105
+ - 320
106
+ config:
107
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
108
+ compile: false
109
+ device: ${device}
110
+ cam_resize_shape: ${agent.desired_image_shape}
111
+ orig_cam_shape: ${agent.orig_cam_shape}
112
+ policy_frequency: ${policy_frequency}
113
+ interpolation_frequency: ${interpolation_frequency}
114
+ policy_cfg:
115
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
116
+ n_obs_steps: 1
117
+ horizon: 36
118
+ n_action_steps: ${agent.config.policy_cfg.horizon}
119
+ input_shapes:
120
+ observation.image: ${agent.config.cam_resize_shape}
121
+ context_observation.image: ${agent.config.cam_resize_shape}
122
+ observation.state:
123
+ - 8
124
+ observation.action_history:
125
+ - 7
126
+ output_shapes:
127
+ action:
128
+ - 7
129
+ input_normalization_modes:
130
+ observation.image: mean_std
131
+ observation.state: min_max
132
+ observation.action_history: min_max
133
+ output_normalization_modes:
134
+ action: min_max
135
+ vision_backbone: resnet18
136
+ pretrained_backbone_weights: null
137
+ transforms:
138
+ - _target_: torchaug.transforms.RandomAffine
139
+ degrees:
140
+ - -5
141
+ - 5
142
+ translate:
143
+ - 0.05
144
+ - 0.05
145
+ batch_transform: true
146
+ num_chunks: -1
147
+ batch_inplace: true
148
+ - _target_: torchaug.transforms.RandomColorJitter
149
+ brightness: 0.3
150
+ contrast: 0.4
151
+ saturation: 0.5
152
+ hue: 0.08
153
+ batch_transform: true
154
+ num_chunks: -1
155
+ batch_inplace: true
156
+ use_group_norm: true
157
+ spatial_softmax_num_keypoints: 32
158
+ action_history_encoder_config:
159
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
160
+ in_channels: 7
161
+ out_channels: 32
162
+ history_length: ${agent.config.policy_cfg.n_action_steps}
163
+ kernel_size: ${agent.config.policy_cfg.kernel_size}
164
+ downsample_kernel_size: 3
165
+ downsample_stride: 2
166
+ downsample_padding: 1
167
+ down_dims:
168
+ - 256
169
+ - 512
170
+ - 1024
171
+ kernel_size: 5
172
+ n_groups: 8
173
+ diffusion_step_embed_dim: 128
174
+ use_film_scale_modulation: true
175
+ noise_scheduler_type: DDIM
176
+ beta_schedule: squaredcos_cap_v2
177
+ beta_start: 0.0001
178
+ beta_end: 0.02
179
+ prediction_type: epsilon
180
+ clip_sample: true
181
+ clip_sample_range: 1.0
182
+ num_train_timesteps: 50
183
+ num_inference_steps: 10
184
+ do_mask_loss_for_padding: false
185
+ train_cfg:
186
+ _target_: utils.TrainConfig
187
+ lr: 0.0001
188
+ lr_scheduler: cosine
189
+ lr_warmup_steps: 500
190
+ adam_betas:
191
+ - 0.95
192
+ - 0.999
193
+ adam_eps: 1.0e-08
194
+ adam_weight_decay: 1.0e-06
195
+ grad_clip_norm: 10
196
+ offline_steps: ${num_train_frames_diffusion}
197
+ use_amp: true
198
+ observation_cfg:
199
+ _target_: agent.encoder.VisualFeatureSet
200
+ use_depth: ${use_depth}
201
+ use_color: ${use_color}
202
+ mask_input_dict:
203
+ _target_: agent.encoder.MaskInputDict
204
+ enable: ${use_masks}
205
+ representation: ${mask_representation}
206
+ mask_list: ${mask_list}
207
+ crop_input_config:
208
+ _target_: agent.encoder.CropInputConfig
209
+ color_crop_type: ${color_crop_type}
210
+ depth_crop_type: ${depth_crop_type}
211
+ segmask_crop_type: ${segmask_crop_type}
212
+ crop_hw: ${crop_hw}
213
+ crop_down_offset: ${crop_down_offset}
214
+ add_crop_binary_mask: ${add_crop_binary_mask}
215
+ add_coord_conv_map: ${add_coord_conv_map}
216
+ context_input_config:
217
+ _target_: agent.encoder.ContextInputConfig
218
+ use_color: ${use_context_color}
219
+ use_depth: ${use_context_depth}
220
+ mask_input_dict:
221
+ _target_: agent.encoder.MaskInputDict
222
+ enable: ${use_context_segmask}
223
+ representation: ${mask_representation}
224
+ mask_list: ${mask_list}
225
+ crop_input_config:
226
+ _target_: agent.encoder.CropInputConfig
227
+ color_crop_type: ${context_color_crop_type}
228
+ depth_crop_type: ${context_depth_crop_type}
229
+ segmask_crop_type: ${context_segmask_crop_type}
230
+ crop_hw: ${crop_hw}
231
+ crop_down_offset: ${crop_down_offset}
232
+ add_crop_binary_mask: ${context_add_crop_binary_mask}
233
+ add_coord_conv_map: ${context_add_coord_conv_map}
234
+ mask_soft_approx_scheduler_config:
235
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
236
+ num_steps: 40000
237
+ initial_value: 10.0
238
+ final_value: 1000.0
239
+ interpolation_scheme: constant
240
+ use_contact_map: ${use_contact_map}
241
+ use_sdf_maps: ${use_sdf_maps}
242
+ use_normals_maps: ${use_normals_maps}
243
+ which_objects: ${which_objects}
244
+ grasped_dtc_max_value: ${grasped_dtc_max_value}
245
+ env_dtc_max_value: ${env_dtc_max_value}
246
+ grasped_normals_mask_max_dtc_value: ${grasped_normals_mask_max_dtc_value}
247
+ env_normals_mask_max_dtc_value: ${env_normals_mask_max_dtc_value}
248
+ clamp_dtc: ${clamp_dtc}
249
+ max_contact_prob: ${max_contact_prob}
250
+ mask_normals_within_sdf: ${mask_normals_within_sdf}
251
+ dtc_adaptive_normalization: ${dtc_adaptive_normalization}
252
+ adaptive_normals_mask: ${adaptive_normals_mask}
253
+ max_depth: ${max_depth}
254
+ image_shape: ${agent.desired_image_shape}
255
+ learnable_contact_preprocess_params: ${learnable_contact_preprocess_params}
256
+ learning_rate: ${agent.config.train_cfg.lr}
257
+ weight_decay: 0.0
258
+ contact_model_name: ${contact_model_name}
259
+ zero_centered: false
260
+ suite:
261
+ suite: frankagym
262
+ name: frankagym
263
+ frame_stack: ${agent.n_obs_steps}
264
+ action_repeat: 1
265
+ discount: 0.99
266
+ hidden_dim: 1024
267
+ num_train_frames: 2010
268
+ num_seed_frames: 260
269
+ num_train_epochs: 5000
270
+ validate_every_epochs: 100
271
+ validate_diffusion_on_action_loss_every_epochs: 500
272
+ train_eval_diffusion_on_action_loss_every_epochs: 500
273
+ check_topk_every_epochs: 10
274
+ save_snapshot_every_epochs: 5000
275
+ eval_every_frames: 2000
276
+ num_eval_episodes: 5
277
+ save_snapshot: true
278
+ wait_for_user_to_start_episode: true
279
+ task_make_fn:
280
+ _target_: suite.frankagym.make
281
+ name: ${task_name}
282
+ height: 240
283
+ width: 320
284
+ frame_stack: ${suite.frame_stack}
285
+ action_repeat: ${suite.action_repeat}
286
+ seed: ${seed}
287
+ enable_arm: ${agent.enable_arm}
288
+ enable_gripper: ${enable_gripper}
289
+ start_with_gripper_open: ${start_with_gripper_open}
290
+ enable_camera: ${agent.enable_camera}
291
+ path_to_depth_extrinsics: ${path_to_depth_extrinsics}
292
+ contact_estimation_model_ckpt_path: ${contact_estimation_model_ckpt_path}
293
+ x_limit: ${x_limit}
294
+ y_limit: ${y_limit}
295
+ z_limit: ${z_limit}
296
+ device: ${device}
297
+ interpolation_frequency: ${interpolation_frequency}
298
+ policy_frequency: ${policy_frequency}
299
+ debug_timestamps: ${debug_timestamps}
300
+ stop_after_action: ${stop_after_action}
301
+ open_loop: ${open_loop}
302
+ wait_for_new_camera_frames: ${wait_for_new_camera_frames}
303
+ action_key: ${action_key}
304
+ action_trajectory_horizon: ${agent.config.policy_cfg.horizon}
305
+ action_trajectories: ${action_trajectories}
306
+ path_to_zarr_dataset: ${expert_dataset}
307
+ agent_policy_cfg: ???
308
+ true_action_history: ${true_action_history}
309
+ num_train_frames_bc: 50000
310
+ num_train_frames_drq: 1100000
311
+ stddev_schedule_drq: linear(1.0,0.1,100000)
312
+ task_name: FrankaInsertion-v1
313
+ num_train_frames_vinn: 25000
314
+ num_train_frames_diffusion: 1000000
315
+ num_train_epochs_bc: 5000
316
+ num_train_epochs_diffusion: 5000
317
+ validate_every_epochs_bc: 5
318
+ validate_every_epochs_diffusion: 25
319
+ validate_diffusion_on_action_loss_every_epochs: 50
320
+ train_eval_diffusion_on_action_loss_every_epochs: 500
321
+ check_topk_every_epochs: 5
322
+ check_topk_every_epochs_diffusion: ${validate_diffusion_on_action_loss_every_epochs}
323
+ save_snapshot_every_epochs_diffusion: 5000
324
+ x_limit:
325
+ - 0.2
326
+ - 0.7
327
+ y_limit:
328
+ - -0.4
329
+ - 0.4
330
+ z_limit:
331
+ - -0.05
332
+ - 0.55
333
+ home_displacement:
334
+ - 0.55
335
+ - 0.0
336
+ - 0.55
337
+ - 180.0
338
+ - 0.0
339
+ - 0.0
340
+ enable_gripper: true
341
+ start_with_gripper_open: true
342
+ offset_mask:
343
+ - 1
344
+ - 1
345
+ - 1
346
+ - 1
347
+ - 1
348
+ - 1
349
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
113638/.hydra/hydra.yaml ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: ${experiment_dir}/${now:%H%M%S}
4
+ sweep:
5
+ dir: ${experiment_dir}/${now:%H%M%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ submitit_folder: ${experiment_dir}/${now:%H%M%S}/.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/265650/113638
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
113638/.hydra/overrides.yaml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ - agent=diffusion
2
+ - suite=frankagym
3
+ - suite/frankagym_task@_global_=insertion
113638/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
113638/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
113638/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
113638/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
113638/episode_rosbags/episode_0_2024-12-11-11-37-21.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:74bc90c7db93c607b967f9bc030866df3e80592ea3e65471c2351a0175390234
3
+ size 2623667119
113638/episode_rosbags/episode_1_2024-12-11-11-38-11.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:daa007fc960ef8b8f8b1b4dcdc7952b67485ebddb405bebb85a8573ec8f10c07
3
+ size 2597056688
113638/episode_rosbags/episode_2_2024-12-11-11-39-24.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:375221ca835c5bfea3c361551cc0ffbabc20af5b4420093df8c9924b1607f57e
3
+ size 2619130394
113638/episode_rosbags/episode_3_2024-12-11-11-40-13.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bd05f0d20454eac597268244d15aa5b7cdfcdc95ff8813e0bab97598d552509e
3
+ size 2614967649
113638/episode_rosbags/episode_4_2024-12-11-11-41-04.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0ff38aff071b614754716e52ff85c66afa8284cf8a48965237df3ae8a42f1220
3
+ size 2616371914
113638/eval_robot.log ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [2024-12-11 11:36:38,723][py.warnings][WARNING] - /home/leonmkim/fish_leon/FISH/eval_robot.py:503: 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
+ [2024-12-11 11:36:38,726][py.warnings][WARNING] - /home/leonmkim/fish_leon/FISH/eval_robot.py:439: 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
+
113638/eval_video/0_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dea3cb7ce16ad057bd5fcb35b50592a86feeb9f7d6f3bd7b6f42095d27997931
3
+ size 1422243
113638/eval_video/1_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:925210ff3b36d88f3887c6bf561b993eeb2172f9b898edf7efaa91f7c720e590
3
+ size 1468875
113638/eval_video/2_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ddba0e3583786ac1097bd8d918d5801eb4867cac0e908be1695101412c576aec
3
+ size 1498755
113638/eval_video/3_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b687720b2d32aeeb9a91a18ae8924160e7860fcc22b2850d7f2b3b59ca27c2ec
3
+ size 1454836
113638/eval_video/4_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:10441113b4d3ea44e8c6df553d629edb8882f588fa5814fc108ba5370ac0ec0d
3
+ size 1451627
113638/tb/events.out.tfevents.1733935005.leonmkim-ROG-Strix-G15CS-G15CS.743294.0 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bc2777e686dca07c00a1f3ef6536f0fb088e018afe2d03ca0d9b75f1f5570f46
3
+ size 1103
113638/wandb/debug-internal.log ADDED
The diff for this file is too large to render. See raw diff
 
113638/wandb/debug.log ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_setup.py:_flush():76] Current SDK version is 0.17.5
2
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_setup.py:_flush():76] Configure stats pid to 743294
3
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/.config/wandb/settings
4
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/265650/113638/wandb/settings
5
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_setup.py:_flush():76] Loading settings from environment variables: {}
6
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_setup.py:_flush():76] Applying setup settings: {'_disable_service': False}
7
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [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
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_setup.py:_flush():76] Applying login settings: {}
9
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_init.py:_log_setup():529] Logging user logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/265650/113638/wandb/run-20241211_113644-ahosb0lo/logs/debug.log
10
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_init.py:_log_setup():530] Logging internal logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/265650/113638/wandb/run-20241211_113644-ahosb0lo/logs/debug-internal.log
11
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_init.py:init():569] calling init triggers
12
+ 2024-12-11 11:36:44,615 INFO MainThread:743294 [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': 2, 'device': 'cuda', 'save_video': True, 'save_train_video': True, 'use_tb': True, 'use_wandb': True, 'wandb_run_id': '265650', 'wandb_notes': '265650_req_265757restarted_2', 'eval': True, 'process_contact_features': True, 'obs_type': 'pixels', 'use_color': True, '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': '64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_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/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_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/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_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/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml', 'include_groups_list': ['hbm_twodim_left_to_right'], 'expert_dataset_config': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demo_config.yaml', 'name_of_valid_demo': '64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_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/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'valid_demo_idxs_list_or_num': None, 'val_num_groups': 16, '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', 'bc_regularize': False, 'bc_weight_type': 'qfilter', 'experiment_dir': './exp_local/frankagym_pixels/FrankaInsertion-v1/265650', 'agent': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgent', 'name': 'diffusion_policy', 'load_checkpoint': True, 'obs_shape': [14, 240, 320], 'action_shape': [36, 7], '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_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', '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': True, '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}, 'policy_frequency': 5, 'interpolation_frequency': 25}}, '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/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'observation_cfg': {'_target_': 'agent.encoder.VisualFeatureSet', 'use_depth': True, 'use_color': True, '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}, '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_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', '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': True, '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}, 'policy_frequency': 5, 'interpolation_frequency': 25}, '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', 'feature_type': '180x240_1_RGB_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_acthst_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, 'true_action_history': False, 'checkpoint_epoch': 12000, '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/265650', 'residual_weight': '/home/leonmkim/fish_leon/FISH/weights/frankagym_pixels/FrankaInsertion-v1/weight.pt'}
14
+ 2024-12-11 11:36:44,615 INFO MainThread:743294 [wandb_init.py:init():619] starting backend
15
+ 2024-12-11 11:36:44,615 INFO MainThread:743294 [wandb_init.py:init():623] setting up manager
16
+ 2024-12-11 11:36:44,619 INFO MainThread:743294 [backend.py:_multiprocessing_setup():105] multiprocessing start_methods=fork,spawn,forkserver, using: spawn
17
+ 2024-12-11 11:36:44,620 INFO MainThread:743294 [wandb_init.py:init():631] backend started and connected
18
+ 2024-12-11 11:36:44,632 INFO MainThread:743294 [wandb_init.py:init():720] updated telemetry
19
+ 2024-12-11 11:36:44,639 INFO MainThread:743294 [wandb_init.py:init():753] communicating run to backend with 90.0 second timeout
20
+ 2024-12-11 11:36:44,920 INFO MainThread:743294 [wandb_run.py:_on_init():2435] communicating current version
21
+ 2024-12-11 11:36:44,991 INFO MainThread:743294 [wandb_run.py:_on_init():2444] got version response upgrade_message: "wandb version 0.19.0 is available! To upgrade, please run:\n $ pip install wandb --upgrade"
22
+
23
+ 2024-12-11 11:36:44,991 INFO MainThread:743294 [wandb_init.py:init():804] starting run threads in backend
24
+ 2024-12-11 11:36:45,329 INFO MainThread:743294 [wandb_run.py:_console_start():2413] atexit reg
25
+ 2024-12-11 11:36:45,329 INFO MainThread:743294 [wandb_run.py:_redirect():2255] redirect: wrap_raw
26
+ 2024-12-11 11:36:45,329 INFO MainThread:743294 [wandb_run.py:_redirect():2320] Wrapping output streams.
27
+ 2024-12-11 11:36:45,329 INFO MainThread:743294 [wandb_run.py:_redirect():2345] Redirects installed.
28
+ 2024-12-11 11:36:45,331 INFO MainThread:743294 [wandb_init.py:init():847] run started, returning control to user process
29
+ 2024-12-11 11:36:45,331 INFO MainThread:743294 [wandb_run.py:_tensorboard_callback():1544] tensorboard callback: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/265650/113638/tb, True
30
+ 2024-12-11 11:36:49,564 INFO MainThread:743294 [wandb_run.py:_config_callback():1382] config_cb None None {'grasped_obj_name': 'hbm', 'left_book_slot': 'twodim'}
31
+ 2024-12-11 11:42:01,796 WARNING MsgRouterThr:743294 [router.py:message_loop():77] message_loop has been closed
113638/wandb/run-20241211_113644-ahosb0lo/files/code/FISH/eval_robot.py ADDED
@@ -0,0 +1,512 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ # get path of current file
39
+ current_path = os.path.dirname(os.path.realpath(__file__))
40
+ sys.path.append(os.path.join(current_path, os.pardir))
41
+ # 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
42
+
43
+ def make_agent(obs_spec, action_spec, cfg):
44
+ cfg.obs_shape = obs_spec['pixels'].shape
45
+ dataset_statistics = None # this will be loaded from the checkpoint
46
+ try:
47
+ cfg.action_shape = action_spec.shape
48
+ except:
49
+ pass
50
+ return hydra.utils.instantiate(cfg, dataset_statistics)
51
+
52
+ class Workspace:
53
+ def __init__(self, cfg):
54
+ self.work_dir = Path.cwd()
55
+ print(f'workspace: {self.work_dir}')
56
+
57
+ signal.signal(signal.SIGINT, self.signal_handler)
58
+
59
+ self.cfg = cfg
60
+ self.loading_uncompiled_checkpoint_with_compile = False
61
+ self.loading_compiled_checkpoint_with_no_compile = False
62
+
63
+ snapshot_path = Path(self.cfg.checkpoint_weight_dir) / f'snapshot_{self.cfg.checkpoint_epoch}.pt'
64
+ self.load_checkpoint_conf(snapshot_path=snapshot_path)
65
+
66
+ # load config for action trajectories
67
+ utils.set_seed_everywhere(self.cfg.seed)
68
+ self.device = torch.device(self.cfg.device)
69
+ self.setup()
70
+
71
+ # self.agent = make_agent(self.eval_env.observation_spec(),
72
+ # self.eval_env.action_spec(), self.cfg.agent)
73
+ self.timer = utils.Timer()
74
+ # self._global_step = 0
75
+ self._global_episode = 0
76
+ self._global_epoch = 0
77
+ self.num_episode_successes = 0
78
+
79
+ # Need to convert hydra config to primitive container for wandb https://docs.wandb.ai/guides/integrations/hydra
80
+ with open_dict(self.cfg):
81
+ self.cfg.feature_type = get_feature_dirname_from_configs(
82
+ hydra.utils.instantiate(self.cfg.agent.config.observation_cfg),
83
+ self.cfg.agent.config.policy_cfg.input_shapes,
84
+ 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,
85
+ )
86
+
87
+ wandb_config = OmegaConf.to_container(
88
+ self.cfg, resolve=True, throw_on_missing=True
89
+ )
90
+ # must be called before any tf summary writer is created
91
+ if self.cfg.use_wandb:
92
+ wandb.init(project='extrinsic_contact_downstream', entity='serialexperimentsleon', job_type='eval', sync_tensorboard=self.cfg.use_tb, config=wandb_config)
93
+
94
+ self.logger = Logger(self.work_dir, use_tb=self.cfg.use_tb, use_wandb=self.cfg.use_wandb)
95
+
96
+ # if not self.loading_uncompiled_checkpoint_with_compile and self.cfg.agent.config.compile:
97
+ # self.agent.compile_modules()
98
+
99
+ # self.load_checkpoint(snapshot_path=snapshot_path)
100
+
101
+ # if self.loading_uncompiled_checkpoint_with_compile: # need to call compile after loading the checkpoint
102
+ # self.agent.compile_modules()
103
+
104
+ print(f"loaded agent with feature_type: {self.cfg.feature_type}")
105
+
106
+ def check_for_key_press(self):
107
+ while self.continue_keypress_thread:
108
+ inp = input("Press 'r' to restart current episode, 'n' to stop current episode and skip to next, 'q' to break entire eval\n")
109
+ if inp == 'n':
110
+ self.preempt_episode = True
111
+ print("preempting episode")
112
+ elif inp in ['', '0', '1']: # enter key
113
+ if inp in ['0', '1']:
114
+ self.num_episode_successes += int(inp)
115
+ self.proceed_after_env_reset_event.set()
116
+ print("proceeding to start episode!")
117
+ elif inp == 'q':
118
+ self.proceed_after_env_reset_event.set()
119
+ self.preempt_episode = True
120
+ self.exit_eval = True
121
+ self.continue_keypress_thread = False # will stop the keypress thread
122
+ print("quitting eval")
123
+ break
124
+ elif inp == 'r':
125
+ print('restarting episode')
126
+ self.preempt_episode = True
127
+ self.restart_episode = True
128
+ else:
129
+ print("Invalid key press, try again")
130
+
131
+ # self.keypress_input_thread.join() # wait for the keypress thread to finish
132
+
133
+ def signal_handler(self, signal, frame):
134
+ print("\nprogram exiting gracefully")
135
+ self.proceed_after_env_reset_event.set()
136
+ self.preempt_episode = True
137
+ self.exit_eval = True
138
+ self.continue_keypress_thread = False # will stop the keypress thread
139
+ self.keypress_input_thread.join() # wait for the keypress thread to finish
140
+ video_filepath = self.video_recorder.save()
141
+ # get the video file and convert to video tensor to log
142
+ self.logger.log_video('eval/video', video_filepath, self.global_step)
143
+ sys.exit(0)
144
+
145
+ def setup(self):
146
+ # create envs
147
+ self.eval_env = hydra.utils.call(self.cfg.suite.task_make_fn)
148
+ # expert_demo_config_path = os.path.join(os.path.dirname(self.cfg.expert_dataset), 'demo_config.yaml')
149
+ # self.expert_demo_config = yaml.load(open(expert_demo_config_path, 'r'), Loader=yaml.FullLoader)
150
+ # self.eval_env._env.action_trans_norm = expert_demo_config['max_translation_action_norm']
151
+ # self.eval_env._env.action_rot_norm = expert_demo_config['max_rotation_action_norm']
152
+ # self.eval_env._env.action_period = expert_demo_config['sample_period']
153
+ # print(f"setting max_translation_action_norm to {expert_demo_config['max_translation_action_norm']} and sample_period to {expert_demo_config['sample_period']}")
154
+ # print(f"setting max_rotation_action_norm to {expert_demo_config['max_rotation_action_norm']}")
155
+
156
+ # self.eval_env.set_demo_params(self.cfg.expert_dataset)
157
+
158
+ # Turn off random start
159
+ self.eval_env.random_start = False
160
+
161
+ # create replay buffer
162
+ # data_specs = [
163
+ # {
164
+ # 'observation': self.eval_env.observation_spec(),
165
+ # },
166
+ # # self.eval_env.observation_spec()['features'],
167
+ # self.eval_env.action_spec(),
168
+ # specs.Array(self.eval_env.action_spec().shape, self.eval_env.action_spec().dtype, 'vinn_action'),
169
+ # specs.Array((1, ), np.float32, 'reward'),
170
+ # specs.Array((1, ), np.float32, 'discount'),
171
+ # ]
172
+
173
+ # 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())
174
+ self.eval_replay_storage = RosbagEvalReplayBufferStorage(self.work_dir)
175
+
176
+ self.video_recorder = VideoRecorder(
177
+ self.work_dir if self.cfg.save_video else None,
178
+ ros_enabled=True,
179
+ fps=self.cfg.agent.config.policy_frequency,
180
+ )
181
+
182
+ print('workspace setup complete')
183
+
184
+ @property
185
+ def global_step(self):
186
+ # return self._global_step
187
+ return self.eval_env.get_global_step()
188
+
189
+ @property
190
+ def global_episode(self):
191
+ return self._global_episode
192
+
193
+ @property
194
+ def global_frame(self):
195
+ return self.global_step * self.cfg.action_repeat
196
+
197
+ @property
198
+ def global_epoch(self):
199
+ return self._global_epoch
200
+
201
+ def reset(self, eval_idx):
202
+ if not self.eval_env.enable_arm:
203
+ return np.array([0,0,0], dtype=np.float32)
204
+ self.eval_env.arm_refresh(reset=False)
205
+ # Set start position
206
+ try:
207
+ self.eval_env.set_position(self.start_pos[eval_idx])
208
+ except:
209
+ self.eval_env.arm.set_position(self.start_pos[eval_idx])
210
+ if self.eval_env.arm.keep_gripper_closed:
211
+ self.eval_env.arm.close_gripper_fully()
212
+ else:
213
+ self.eval_env.arm.open_gripper_fully()
214
+ time.sleep(0.1)
215
+ time_step = self.eval_env.step(np.zeros(self.eval_env.action_spec().shape[0], dtype=np.float32),
216
+ np.zeros(self.eval_env.action_spec().shape[0], dtype=np.float32))
217
+ return time_step
218
+
219
+ def eval(self):
220
+ # before evals start, prompt user for name of grasped object and the left book of the slot location
221
+ grasped_obj_name = input("Enter the name of the grasped object: ")
222
+ left_book_slot = input("Enter the left book slot location: ")
223
+ # update wandb config
224
+ if self.cfg.use_wandb:
225
+ wandb.config.update({'grasped_obj_name': grasped_obj_name, 'left_book_slot': left_book_slot})
226
+
227
+ self.preempt_episode = False
228
+ self.exit_eval = False
229
+ self.restart_episode = False
230
+
231
+ self.continue_keypress_thread = True
232
+ self.proceed_after_env_reset_event = threading.Event()
233
+ self.keypress_input_thread = threading.Thread(target=self.check_for_key_press)
234
+ self.keypress_input_thread.start()
235
+
236
+ # # Set model to eval mode
237
+ # self.agent.train(False)
238
+
239
+ eval_until_episode = utils.Until(self.cfg.num_eval)
240
+
241
+ self.use_action_history = False
242
+ # if "dp" in repr(self.agent) and "observation.action_history" in self.cfg.agent.config.policy_cfg.input_shapes:
243
+ if "observation.action_history" in self.cfg.agent.config.policy_cfg.input_shapes:
244
+ self.use_action_history = True
245
+
246
+ # self.eval_replay_storage._new_eval_step(0)
247
+
248
+ # if 'vinn' in repr(self.agent) or 'openloop' in repr(self.agent):
249
+ # with open(self.cfg.expert_dataset, 'rb') as f:
250
+ # if self.cfg.obs_type == 'pixels':
251
+ # self.expert_demo, _, self.expert_action, self.expert_reward = pickle.load(f)
252
+ # elif self.cfg.obs_type == 'features':
253
+ # _, self.expert_demo, self.expert_action, self.expert_reward = pickle.load(f)
254
+
255
+ # if self.cfg.action_trajectories:
256
+ # with open(self.cfg.expert_action_trajectories, 'rb') as f:
257
+ # self.expert_action = pickle.load(f)
258
+
259
+ # if isinstance(self.cfg.train_demo_idxs_list_or_num, int):
260
+ # if self.cfg.train_demo_idxs_list_or_num == -1:
261
+ # self.cfg.train_demo_idxs_list_or_num = len(self.expert_demo)
262
+ # train_demo_idxs_list_or_num = list(range(self.cfg.train_demo_idxs_list_or_num))
263
+
264
+ # self.expert_demo = self.expert_demo[train_demo_idxs_list_or_num]
265
+ # self.expert_action = self.expert_action[train_demo_idxs_list_or_num]
266
+ # self.expert_reward = self.expert_reward[train_demo_idxs_list_or_num]
267
+ # # if self.cfg.action_plans:
268
+ # # self.expert_action_plans = self.expert_action_plans[self.cfg.train_demo_idxs_list_or_num]
269
+ # # self.expert_demo = self.expert_demo[:self.cfg.num_demos]
270
+ # # self.expert_action = self.expert_action[:self.cfg.num_demos]
271
+ # # self.expert_reward = self.expert_reward[:self.cfg.num_demos]
272
+
273
+ # self.expert_demo = np.concatenate(self.expert_demo, axis=0)
274
+ # self.expert_rgb_obs = np.ascontiguousarray(np.transpose(self.expert_demo, (0,2,3,1))[:, :,:,:3].astype(np.uint8))
275
+ # self.expert_action = np.concatenate(self.expert_action, axis=0)
276
+
277
+ # self.agent.save_representations(self.expert_demo, self.expert_action, 128, config=self.expert_demo_config)
278
+
279
+ # Get start points
280
+ if self.cfg.random_start:
281
+ eval_starts = Path(self.cfg.eval_starts) / 'starts.pkl'
282
+ if eval_starts.exists():
283
+ with eval_starts.open('rb') as f:
284
+ self.start_pos = pickle.load(f)
285
+ else:
286
+ eval_starts = Path(self.cfg.eval_starts)
287
+ eval_starts.mkdir(parents=True, exist_ok=True)
288
+
289
+ # Generate start points
290
+ self.start_pos = []
291
+ try:
292
+ for _ in range(self.cfg.num_eval):
293
+ self.start_pos.append(self.eval_env.get_random_pos())
294
+ except:
295
+ for _ in range(self.cfg.num_eval):
296
+ self.start_pos.append(self.eval_env.arm.get_random_pos())
297
+
298
+ # Save start points for the task
299
+ eval_starts = eval_starts / 'starts.pkl'
300
+ with eval_starts.open('wb') as f:
301
+ pickle.dump(self.start_pos, f)
302
+
303
+ time_step = self.eval_env.reset()
304
+ # replay_thread = None
305
+ while eval_until_episode(self.global_episode) and not self.exit_eval:
306
+ # self.video_recorder.init(self.eval_env, video_filename=f'{self.global_episode}_eval.mp4')
307
+ print(f"Starting episode {self.global_episode}")
308
+ time_step = self.eval_env.reset() #Leon: need to call reset twice in case objects are trapped
309
+ self.video_recorder.init(self.eval_env, video_filename=f'{self.global_episode}_eval.mp4')
310
+ # x = input("Press Enter to continue... after reseting env")
311
+ print("Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success")
312
+ self.proceed_after_env_reset_event.clear() # clear the event flag
313
+ self.proceed_after_env_reset_event.wait() # blocking wait for the event flag to be set
314
+ if self.global_episode > 0:
315
+ self.logger.log_metrics({'num_success': self.num_episode_successes}, self.global_step, 'eval', episode=self.global_episode)
316
+ self.logger.log_metrics({'success_rate': self.num_episode_successes/self.global_episode}, self.global_step, 'eval', episode=self.global_episode)
317
+ time_step = self.eval_env.reset()
318
+ # debug_info_dict = self.eval_env.debug_info_dict
319
+ # if replay_thread is not None:
320
+ # # wait for the last replay thread to finish
321
+ # replay_thread.join()
322
+
323
+ # self.eval_replay_storage.add(time_step._replace(observation=time_step.observation[self.cfg.obs_type]), debug_info_dict)
324
+ # 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))
325
+ # replay_thread = threading.Thread(target=self.eval_replay_storage.add, args=(time_step, debug_info_dict))
326
+
327
+ # replay_thread.start()
328
+ if self.cfg.random_start:
329
+ time_step = self.reset(self.global_episode)
330
+ time.sleep(2) #5)
331
+ # if 'vinn' in repr(self.agent):
332
+ # self.agent.reset()
333
+ # # self.agent.buffer.reset()
334
+ # # if self.cfg.open_loop:
335
+ # # self.agent.current_step = 0
336
+ # if 'openloop' in repr(self.agent):
337
+ # self.agent.curr_step = 0
338
+ # at start of each episode, provide zero action for policies that use action history
339
+ # shape should be (T_o, T_a, action_dim)
340
+
341
+ # while not time_step.last() and not self.preempt_episode:
342
+ self.video_recorder.ros_start_recording()
343
+ self.eval_replay_storage.start_episode()
344
+ self.eval_env.start_policy_timer()
345
+ while not self.eval_env.episode_done() and not self.preempt_episode:
346
+ # with torch.no_grad(), utils.eval_mode(self.agent):
347
+ # # if self.cfg.agent.provide_topk:
348
+ # # action, vinn_action, topk = self.agent.act(
349
+ # # time_step.observation['pixels'],
350
+ # # self.global_step,
351
+ # # eval_mode=True)
352
+ # # elif self.cfg.agent.provide_obs:
353
+ # # action, vinn_action, obs = self.agent.act(
354
+ # # time_step.observation['pixels'],
355
+ # # self.global_step,
356
+ # # eval_mode=True)
357
+ # # else:
358
+ # action, vinn_action = self.agent.act(
359
+ # time_step.observation,
360
+ # self.global_step,
361
+ # eval_mode=True,
362
+ # obs_timestamp=time_step.observation['timestamp'],
363
+ # obs_seq=time_step.observation['seq'],
364
+ # action_history=action_history,
365
+ # action_history_start_timestamp=action_history_start_timestamp,
366
+ # )
367
+ # DONT WAIT FOR POLICY TO GET AN ACTION
368
+ # we dont want to slow down grabbing obs and passing to sam/contact features
369
+
370
+ self.eval_env.run_policy_threads() # this just does a rospy sleep
371
+
372
+ # if self.use_action_history:
373
+ # action_history_start_timestamp = time_step.observation['timestamp']
374
+ # # action_history = action[:self.cfg.agent.config.policy_cfg.action_history_encoder_config.history_length, ...]
375
+ # # add n_obs_steps dimension to action_history, for now we assume n_obs_steps = 1
376
+ # # TODO: handle n_obs_steps > 1
377
+ # action_history = action[np.newaxis, ...]
378
+
379
+ # time_step = self.eval_env.step(action, vinn_action) # obs, reward after action has been taken
380
+ # debug_info_dict = self.eval_env.debug_info_dict
381
+
382
+ # time_step = self.eval_env.ros_step()
383
+
384
+ # replay_thread.join()
385
+
386
+ # time how long it takes to execute the step
387
+ # time_before_add = time.perf_counter()
388
+ # self.eval_replay_storage.add(time_step._replace(observation=time_step.observation[self.cfg.obs_type]), debug_info_dict)
389
+ # use thread to call the add function in a separate thread
390
+ # 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))
391
+
392
+ # replay_thread = threading.Thread(target=self.eval_replay_storage.add, args=(time_step, debug_info_dict))
393
+ # replay_thread.start()
394
+
395
+ # print(f"Time to add to replay buffer: {time.perf_counter() - time_before_add}")
396
+
397
+ # self.video_recorder.record(self.eval_env)
398
+ # self._global_step += 1
399
+
400
+ self.eval_env.stop_policy_timer()
401
+
402
+ if self.restart_episode:
403
+ # means we should delete the current episode and start again
404
+ self.restart_episode = False
405
+ self.eval_replay_storage.reset_current_episode()
406
+ self.video_recorder.reset_current_episode()
407
+
408
+ else:
409
+ self.eval_replay_storage.store_current_episode()
410
+ video_filepath = self.video_recorder.save()
411
+ self.logger.log_video(f"eval/{video_filepath.name.rstrip('.mp4')}", video_filepath, self.global_step)
412
+ self._global_episode += 1
413
+
414
+ self.preempt_episode = False # reset preempt_episode flag
415
+
416
+ # self.video_recorder.save(f'{episode}_eval.mp4')
417
+ # get the video file and convert to video tensor to log
418
+
419
+ self.eval_env.reset()
420
+
421
+ print("Evaluation finished. To wrap up, rate prev episode, press 0 for failure and 1 for success")
422
+ self.proceed_after_env_reset_event.clear() # clear the event flag
423
+ self.proceed_after_env_reset_event.wait() # blocking wait for the event flag to be set
424
+ if self.global_episode > 0:
425
+ # self.logger.log_metrics({'num_success': self.num_episode_successes}, self.global_step, 'eval', episode=self.global_episode)
426
+ self.logger.log_metrics({'num_success': self.num_episode_successes}, self.global_step, 'eval', episode=self.global_episode)
427
+ self.logger.log_metrics({'success_rate': self.num_episode_successes/self.global_episode}, self.global_step, 'eval', episode=self.global_episode)
428
+
429
+ self.continue_keypress_thread = False # will stop the keypress thread
430
+ self.keypress_input_thread.join() # wait for the keypress thread to finish
431
+
432
+ def load_checkpoint_conf(self, snapshot_path):
433
+ config_path = snapshot_path.parent / 'config.yaml'
434
+ if not config_path.exists():
435
+ raise FileNotFoundError(f'No snapshot conf found at {config_path}')
436
+ else:
437
+ # load the omegaconf config
438
+ hydra.core.global_hydra.GlobalHydra.instance().clear()
439
+ hydra.initialize(
440
+ str(_relative_path_between(Path(config_path).absolute().parent, Path(__file__).absolute().parent)),
441
+ )
442
+ cfg = hydra.compose(Path(config_path).stem)
443
+ from deepdiff import DeepDiff
444
+ from omegaconf import open_dict
445
+ diff = DeepDiff(OmegaConf.to_container(cfg), OmegaConf.to_container(self.cfg)) # old, new
446
+ # import re
447
+ 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']"]]
448
+ if "values_changed" in diff:
449
+ # 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
450
+ # for keys above, overwrite the old config with the new config
451
+ for k, v in diff['values_changed'].items():
452
+ # replace any keys that are under "root['suite']"
453
+ if k in overwriteable_keys or k.startswith("root['suite']"):
454
+ print(f"Found changed key {k} with value {v}. Overwriting old checkpoint config")
455
+ if k == "root['agent']['config']['compile']":
456
+ if diff['values_changed'][k]['new_value']:
457
+ self.loading_uncompiled_checkpoint_with_compile = True
458
+ elif not diff['values_changed'][k]['new_value']:
459
+ # raise ValueError("Cannot load a compiled checkpoint without compile")
460
+ self.loading_compiled_checkpoint_with_no_compile = True
461
+ exec(f"{k.replace('root[', 'cfg[')} = {k.replace('root[', 'self.cfg[')}")
462
+ # for any new values, update the old checkpoint config
463
+ if "dictionary_item_added" in diff:
464
+ for new_key in diff['dictionary_item_added']: # this is a list
465
+ # if new_key == "root['suite']['task_make_fn']['observation_cfg']":
466
+ if new_key == "root['suite']['task_make_fn']['agent_policy_cfg']":
467
+ # pass the agents observation_cfg to the suite task_make_fn
468
+ with open_dict(cfg): # to allow addition of non-existing keys
469
+ # cfg.suite.task_make_fn.observation_cfg = cfg.agent.config.observation_cfg
470
+ cfg.suite.task_make_fn.agent_policy_cfg = cfg.agent.config
471
+ continue
472
+ elif "['agent']['config']['policy_cfg']['input_shapes']" in new_key:
473
+ # skip adding the new key if it is the input_shapes of the policy_cfg
474
+ continue
475
+ else:
476
+ print(f"Found new key {new_key} with value {eval(new_key.replace('root[', 'self.cfg['))}. Adding to checkpoint config")
477
+ # eval(new_key.replace('root', 'cfg')) = eval(new_key.replace('root', 'self.cfg'))
478
+ if new_key == "root['agent']['config']['compile']":
479
+ if self.cfg.agent.config.compile:
480
+ self.loading_uncompiled_checkpoint_with_compile = True
481
+
482
+ with open_dict(cfg):
483
+ exec(f"{new_key.replace('root[', 'cfg[')}={new_key.replace('root[', 'self.cfg[')}")
484
+ self.cfg = cfg
485
+
486
+ def load_checkpoint(self, snapshot_path, bc=False):
487
+ print(f'resuming {repr(self.agent)}: {snapshot_path}')
488
+ with snapshot_path.open('rb') as f:
489
+ payload = torch.load(f)
490
+ agent_payload = {}
491
+ for k, v in payload.items():
492
+ if k not in self.__dict__:
493
+ agent_payload[k] = v
494
+ elif k == '_global_epoch':
495
+ self._global_epoch = v
496
+ print(f'loaded epoch: {v}')
497
+ if self.cfg.use_wandb:
498
+ # add to config of wandb
499
+ wandb.config.update({'epoch': v})
500
+
501
+ # self.agent.load_snapshot_eval(agent_payload, bc)
502
+
503
+ @hydra.main(config_path='cfgs', config_name='config_eval')
504
+ def main(cfg):
505
+ from eval_robot import Workspace as W
506
+ root_dir = Path.cwd()
507
+ workspace = W(cfg)
508
+
509
+ workspace.eval()
510
+
511
+ if __name__ == '__main__':
512
+ main()
113638/wandb/run-20241211_113644-ahosb0lo/files/config.yaml ADDED
@@ -0,0 +1,966 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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: 2
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: '265650'
42
+ wandb_notes:
43
+ desc: null
44
+ value: 265650_req_265757restarted_2
45
+ eval:
46
+ desc: null
47
+ value: true
48
+ process_contact_features:
49
+ desc: null
50
+ value: true
51
+ obs_type:
52
+ desc: null
53
+ value: pixels
54
+ use_color:
55
+ desc: null
56
+ value: true
57
+ use_depth:
58
+ desc: null
59
+ value: true
60
+ use_masks:
61
+ desc: null
62
+ value: true
63
+ mask_list:
64
+ desc: null
65
+ value:
66
+ - EE_obj_mask
67
+ mask_representation:
68
+ desc: null
69
+ value: channels
70
+ crop_hw:
71
+ desc: null
72
+ value:
73
+ - 144
74
+ - 144
75
+ crop_down_offset:
76
+ desc: null
77
+ value: 48
78
+ color_crop_type:
79
+ desc: null
80
+ value: null
81
+ depth_crop_type:
82
+ desc: null
83
+ value: null
84
+ segmask_crop_type:
85
+ desc: null
86
+ value: null
87
+ add_crop_binary_mask:
88
+ desc: null
89
+ value: false
90
+ add_coord_conv_map:
91
+ desc: null
92
+ value: false
93
+ use_context_color:
94
+ desc: null
95
+ value: false
96
+ use_context_depth:
97
+ desc: null
98
+ value: false
99
+ use_context_segmask:
100
+ desc: null
101
+ value: false
102
+ context_color_crop_type:
103
+ desc: null
104
+ value: null
105
+ context_depth_crop_type:
106
+ desc: null
107
+ value: null
108
+ context_segmask_crop_type:
109
+ desc: null
110
+ value: null
111
+ context_add_crop_binary_mask:
112
+ desc: null
113
+ value: false
114
+ context_add_coord_conv_map:
115
+ desc: null
116
+ value: false
117
+ use_contact_map:
118
+ desc: null
119
+ value: true
120
+ use_sdf_maps:
121
+ desc: null
122
+ value: true
123
+ use_normals_maps:
124
+ desc: null
125
+ value: true
126
+ which_objects:
127
+ desc: null
128
+ value: both
129
+ max_contact_prob:
130
+ desc: null
131
+ value: 0.1
132
+ max_depth:
133
+ desc: null
134
+ value: 2.0
135
+ grasped_dtc_max_value:
136
+ desc: null
137
+ value: 0.2
138
+ env_dtc_max_value:
139
+ desc: null
140
+ value: 0.4
141
+ grasped_normals_mask_max_dtc_value:
142
+ desc: null
143
+ value: 0.2
144
+ env_normals_mask_max_dtc_value:
145
+ desc: null
146
+ value: 0.4
147
+ clamp_dtc:
148
+ desc: null
149
+ value: true
150
+ dtc_adaptive_normalization:
151
+ desc: null
152
+ value: false
153
+ mask_normals_within_sdf:
154
+ desc: null
155
+ value: true
156
+ adaptive_normals_mask:
157
+ desc: null
158
+ value: true
159
+ learnable_contact_preprocess_params:
160
+ desc: null
161
+ value: true
162
+ contact_model_name:
163
+ desc: null
164
+ value: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
165
+ contact_estimation_model_ckpt_path:
166
+ desc: null
167
+ value: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
168
+ encoder_type:
169
+ desc: null
170
+ value: small
171
+ debug_timestamps:
172
+ desc: null
173
+ value: false
174
+ open_loop:
175
+ desc: null
176
+ value: false
177
+ action_trajectories:
178
+ desc: null
179
+ value: true
180
+ stop_after_action:
181
+ desc: null
182
+ value: false
183
+ interpolation_frequency:
184
+ desc: null
185
+ value: 25
186
+ policy_frequency:
187
+ desc: null
188
+ value: 5
189
+ wait_for_new_camera_frames:
190
+ desc: null
191
+ value: true
192
+ baseline:
193
+ desc: null
194
+ value: false
195
+ train_demo_idxs_list_or_num:
196
+ desc: null
197
+ value: -1
198
+ log_train_every_steps:
199
+ desc: null
200
+ value: 25
201
+ name_of_expert_demo:
202
+ desc: null
203
+ value: 64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
204
+ expert_dataset_dirpath:
205
+ desc: null
206
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
207
+ store_dataset_in_memory:
208
+ desc: null
209
+ value: false
210
+ expert_dataset:
211
+ desc: null
212
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr
213
+ action_key:
214
+ desc: null
215
+ value: action_trajectory_25hz
216
+ semantic_demo_grouping_name:
217
+ desc: null
218
+ value: semantic_demo_grouping.yaml
219
+ semantic_demo_grouping:
220
+ desc: null
221
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml
222
+ include_groups_list:
223
+ desc: null
224
+ value:
225
+ - hbm_twodim_left_to_right
226
+ expert_dataset_config:
227
+ desc: null
228
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demo_config.yaml
229
+ name_of_valid_demo:
230
+ desc: null
231
+ value: 64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
232
+ valid_dataset_dir:
233
+ desc: null
234
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr
235
+ valid_demo_idxs_list_or_num:
236
+ desc: null
237
+ value: null
238
+ val_num_groups:
239
+ desc: null
240
+ value: 16
241
+ load_bc:
242
+ desc: null
243
+ value: true
244
+ checkpoint_epoch_list:
245
+ desc: null
246
+ value:
247
+ - 99
248
+ - 199
249
+ - 299
250
+ - 399
251
+ - 499
252
+ - 599
253
+ - 699
254
+ - 799
255
+ - 899
256
+ - 999
257
+ - 1249
258
+ - 1499
259
+ - 1749
260
+ - 1999
261
+ - 2999
262
+ - 3999
263
+ - 4999
264
+ - 5999
265
+ - 6999
266
+ - 7999
267
+ - 8999
268
+ - 9999
269
+ snapshot_root_dir:
270
+ desc: null
271
+ value: /mnt/grasp_high_usage/leonmkim/contact_estimation/FISH
272
+ save_snapshot:
273
+ desc: null
274
+ value: true
275
+ save_last_snapshot:
276
+ desc: null
277
+ value: true
278
+ save_snapshot_when_done:
279
+ desc: null
280
+ value: true
281
+ top_k_checkpoints:
282
+ desc: null
283
+ value: 5
284
+ save_snapshot_link_to_weights_dir:
285
+ desc: null
286
+ value: deprecated
287
+ bc_regularize:
288
+ desc: null
289
+ value: false
290
+ bc_weight_type:
291
+ desc: null
292
+ value: qfilter
293
+ experiment_dir:
294
+ desc: null
295
+ value: ./exp_local/frankagym_pixels/FrankaInsertion-v1/265650
296
+ agent:
297
+ desc: null
298
+ value:
299
+ _target_: agent.diffusion_policy.DiffusionPolicyAgent
300
+ name: diffusion_policy
301
+ load_checkpoint: true
302
+ obs_shape:
303
+ - 14
304
+ - 240
305
+ - 320
306
+ action_shape:
307
+ - 36
308
+ - 7
309
+ device: cuda
310
+ n_obs_steps: 1
311
+ suite_name: frankagym
312
+ obs_type: pixels
313
+ enable_arm: true
314
+ enable_camera: true
315
+ use_tb: true
316
+ desired_image_shape:
317
+ - 13
318
+ - 180
319
+ - 240
320
+ orig_cam_shape:
321
+ - 3
322
+ - 240
323
+ - 320
324
+ config:
325
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
326
+ compile: false
327
+ device: cuda
328
+ cam_resize_shape:
329
+ - 13
330
+ - 180
331
+ - 240
332
+ orig_cam_shape:
333
+ - 3
334
+ - 240
335
+ - 320
336
+ policy_cfg:
337
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
338
+ n_obs_steps: 1
339
+ horizon: 36
340
+ n_action_steps: 36
341
+ output_shapes:
342
+ action:
343
+ - 7
344
+ input_normalization_modes:
345
+ observation.image: mean_std
346
+ observation.state: min_max
347
+ observation.action_history: min_max
348
+ output_normalization_modes:
349
+ action: min_max
350
+ vision_backbone: resnet18
351
+ pretrained_backbone_weights: null
352
+ transforms:
353
+ - _target_: torchaug.transforms.RandomAffine
354
+ degrees:
355
+ - -5
356
+ - 5
357
+ translate:
358
+ - 0.05
359
+ - 0.05
360
+ batch_transform: true
361
+ num_chunks: -1
362
+ batch_inplace: true
363
+ - _target_: torchaug.transforms.RandomColorJitter
364
+ brightness: 0.3
365
+ contrast: 0.4
366
+ saturation: 0.5
367
+ hue: 0.08
368
+ batch_transform: true
369
+ num_chunks: -1
370
+ batch_inplace: true
371
+ use_group_norm: true
372
+ spatial_softmax_num_keypoints: 32
373
+ action_history_encoder_config:
374
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
375
+ in_channels: 7
376
+ out_channels: 32
377
+ history_length: 6
378
+ kernel_size: 5
379
+ downsample_kernel_size: 3
380
+ downsample_stride: 2
381
+ downsample_padding: 1
382
+ down_dims:
383
+ - 256
384
+ - 512
385
+ - 1024
386
+ kernel_size: 5
387
+ n_groups: 8
388
+ diffusion_step_embed_dim: 128
389
+ use_film_scale_modulation: true
390
+ noise_scheduler_type: DDIM
391
+ beta_schedule: squaredcos_cap_v2
392
+ beta_start: 0.0001
393
+ beta_end: 0.02
394
+ prediction_type: epsilon
395
+ clip_sample: true
396
+ clip_sample_range: 1.0
397
+ num_train_timesteps: 50
398
+ num_inference_steps: 10
399
+ do_mask_loss_for_padding: false
400
+ input_shapes:
401
+ observation.image:
402
+ - 13
403
+ - 180
404
+ - 240
405
+ context_observation.image:
406
+ - 13
407
+ - 180
408
+ - 240
409
+ observation.state:
410
+ - 8
411
+ observation.action_history:
412
+ - 7
413
+ train_cfg:
414
+ _target_: utils.TrainConfig
415
+ lr: 0.0001
416
+ lr_scheduler: cosine
417
+ lr_warmup_steps: 500
418
+ adam_betas:
419
+ - 0.95
420
+ - 0.999
421
+ adam_eps: 1.0e-08
422
+ adam_weight_decay: 1.0e-06
423
+ grad_clip_norm: 10
424
+ offline_steps: 1000000
425
+ use_amp: true
426
+ observation_cfg:
427
+ _target_: agent.encoder.VisualFeatureSet
428
+ use_depth: true
429
+ use_color: true
430
+ mask_input_dict:
431
+ _target_: agent.encoder.MaskInputDict
432
+ enable: true
433
+ representation: channels
434
+ mask_list:
435
+ - EE_obj_mask
436
+ crop_input_config:
437
+ _target_: agent.encoder.CropInputConfig
438
+ color_crop_type: null
439
+ depth_crop_type: null
440
+ segmask_crop_type: null
441
+ crop_hw:
442
+ - 144
443
+ - 144
444
+ crop_down_offset: 48
445
+ add_crop_binary_mask: false
446
+ add_coord_conv_map: false
447
+ context_input_config:
448
+ _target_: agent.encoder.ContextInputConfig
449
+ use_color: false
450
+ use_depth: false
451
+ mask_input_dict:
452
+ _target_: agent.encoder.MaskInputDict
453
+ enable: false
454
+ representation: channels
455
+ mask_list:
456
+ - EE_obj_mask
457
+ crop_input_config:
458
+ _target_: agent.encoder.CropInputConfig
459
+ color_crop_type: null
460
+ depth_crop_type: null
461
+ segmask_crop_type: null
462
+ crop_hw:
463
+ - 144
464
+ - 144
465
+ crop_down_offset: 48
466
+ add_crop_binary_mask: false
467
+ add_coord_conv_map: false
468
+ mask_soft_approx_scheduler_config:
469
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
470
+ num_steps: 40000
471
+ initial_value: 10.0
472
+ final_value: 1000.0
473
+ interpolation_scheme: cosine
474
+ use_contact_map: true
475
+ use_sdf_maps: true
476
+ use_normals_maps: true
477
+ which_objects: both
478
+ grasped_dtc_max_value: 0.2
479
+ env_dtc_max_value: 0.4
480
+ grasped_normals_mask_max_dtc_value: 0.2
481
+ env_normals_mask_max_dtc_value: 0.4
482
+ clamp_dtc: true
483
+ max_contact_prob: 0.1
484
+ mask_normals_within_sdf: true
485
+ dtc_adaptive_normalization: false
486
+ adaptive_normals_mask: true
487
+ max_depth: 2.0
488
+ image_shape:
489
+ - 13
490
+ - 180
491
+ - 240
492
+ learnable_contact_preprocess_params: true
493
+ learning_rate: 0.0001
494
+ weight_decay: 0.0
495
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
496
+ zero_centered: false
497
+ policy_frequency: 5
498
+ interpolation_frequency: 25
499
+ suite:
500
+ desc: null
501
+ value:
502
+ suite: frankagym
503
+ name: frankagym
504
+ frame_stack: 1
505
+ action_repeat: 1
506
+ discount: 0.99
507
+ hidden_dim: 1024
508
+ num_train_frames: 2010
509
+ num_seed_frames: 260
510
+ num_train_epochs: 5000
511
+ validate_every_epochs: 100
512
+ validate_diffusion_on_action_loss_every_epochs: 500
513
+ train_eval_diffusion_on_action_loss_every_epochs: 500
514
+ check_topk_every_epochs: 10
515
+ save_snapshot_every_epochs: 5000
516
+ eval_every_frames: 2000
517
+ num_eval_episodes: 5
518
+ save_snapshot: true
519
+ wait_for_user_to_start_episode: true
520
+ task_make_fn:
521
+ _target_: suite.frankagym.make
522
+ name: FrankaInsertion-v1
523
+ height: 240
524
+ width: 320
525
+ frame_stack: 1
526
+ action_repeat: 1
527
+ seed: 0
528
+ enable_arm: true
529
+ enable_gripper: true
530
+ start_with_gripper_open: true
531
+ enable_camera: true
532
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
533
+ contact_estimation_model_ckpt_path: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
534
+ x_limit:
535
+ - 0.2
536
+ - 0.7
537
+ y_limit:
538
+ - -0.4
539
+ - 0.4
540
+ z_limit:
541
+ - -0.05
542
+ - 0.55
543
+ device: cuda
544
+ interpolation_frequency: 25
545
+ policy_frequency: 5
546
+ debug_timestamps: false
547
+ stop_after_action: false
548
+ open_loop: false
549
+ wait_for_new_camera_frames: true
550
+ action_key: action_trajectory_25hz
551
+ action_trajectory_horizon: 36
552
+ action_trajectories: true
553
+ path_to_zarr_dataset: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr
554
+ observation_cfg:
555
+ _target_: agent.encoder.VisualFeatureSet
556
+ use_depth: true
557
+ use_color: true
558
+ mask_input_dict:
559
+ _target_: agent.encoder.MaskInputDict
560
+ enable: true
561
+ representation: channels
562
+ mask_list:
563
+ - EE_obj_mask
564
+ crop_input_config:
565
+ _target_: agent.encoder.CropInputConfig
566
+ color_crop_type: null
567
+ depth_crop_type: null
568
+ segmask_crop_type: null
569
+ crop_hw:
570
+ - 144
571
+ - 144
572
+ crop_down_offset: 48
573
+ add_crop_binary_mask: false
574
+ add_coord_conv_map: false
575
+ context_input_config:
576
+ _target_: agent.encoder.ContextInputConfig
577
+ use_color: false
578
+ use_depth: false
579
+ mask_input_dict:
580
+ _target_: agent.encoder.MaskInputDict
581
+ enable: false
582
+ representation: channels
583
+ mask_list:
584
+ - EE_obj_mask
585
+ crop_input_config:
586
+ _target_: agent.encoder.CropInputConfig
587
+ color_crop_type: null
588
+ depth_crop_type: null
589
+ segmask_crop_type: null
590
+ crop_hw:
591
+ - 144
592
+ - 144
593
+ crop_down_offset: 48
594
+ add_crop_binary_mask: false
595
+ add_coord_conv_map: false
596
+ mask_soft_approx_scheduler_config:
597
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
598
+ num_steps: 40000
599
+ initial_value: 10.0
600
+ final_value: 1000.0
601
+ interpolation_scheme: cosine
602
+ use_contact_map: true
603
+ use_sdf_maps: true
604
+ use_normals_maps: true
605
+ which_objects: both
606
+ grasped_dtc_max_value: 0.2
607
+ env_dtc_max_value: 0.4
608
+ grasped_normals_mask_max_dtc_value: 0.2
609
+ env_normals_mask_max_dtc_value: 0.4
610
+ clamp_dtc: true
611
+ max_contact_prob: 0.1
612
+ mask_normals_within_sdf: true
613
+ dtc_adaptive_normalization: false
614
+ adaptive_normals_mask: true
615
+ max_depth: 2.0
616
+ image_shape:
617
+ - 13
618
+ - 180
619
+ - 240
620
+ learnable_contact_preprocess_params: true
621
+ learning_rate: 0.0001
622
+ weight_decay: 0.0
623
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
624
+ zero_centered: false
625
+ agent_policy_cfg:
626
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
627
+ compile: false
628
+ device: cuda
629
+ cam_resize_shape:
630
+ - 13
631
+ - 180
632
+ - 240
633
+ orig_cam_shape:
634
+ - 3
635
+ - 240
636
+ - 320
637
+ policy_cfg:
638
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
639
+ n_obs_steps: 1
640
+ horizon: 36
641
+ n_action_steps: 36
642
+ output_shapes:
643
+ action:
644
+ - 7
645
+ input_normalization_modes:
646
+ observation.image: mean_std
647
+ observation.state: min_max
648
+ observation.action_history: min_max
649
+ output_normalization_modes:
650
+ action: min_max
651
+ vision_backbone: resnet18
652
+ pretrained_backbone_weights: null
653
+ transforms:
654
+ - _target_: torchaug.transforms.RandomAffine
655
+ degrees:
656
+ - -5
657
+ - 5
658
+ translate:
659
+ - 0.05
660
+ - 0.05
661
+ batch_transform: true
662
+ num_chunks: -1
663
+ batch_inplace: true
664
+ - _target_: torchaug.transforms.RandomColorJitter
665
+ brightness: 0.3
666
+ contrast: 0.4
667
+ saturation: 0.5
668
+ hue: 0.08
669
+ batch_transform: true
670
+ num_chunks: -1
671
+ batch_inplace: true
672
+ use_group_norm: true
673
+ spatial_softmax_num_keypoints: 32
674
+ action_history_encoder_config:
675
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
676
+ in_channels: 7
677
+ out_channels: 32
678
+ history_length: 6
679
+ kernel_size: 5
680
+ downsample_kernel_size: 3
681
+ downsample_stride: 2
682
+ downsample_padding: 1
683
+ down_dims:
684
+ - 256
685
+ - 512
686
+ - 1024
687
+ kernel_size: 5
688
+ n_groups: 8
689
+ diffusion_step_embed_dim: 128
690
+ use_film_scale_modulation: true
691
+ noise_scheduler_type: DDIM
692
+ beta_schedule: squaredcos_cap_v2
693
+ beta_start: 0.0001
694
+ beta_end: 0.02
695
+ prediction_type: epsilon
696
+ clip_sample: true
697
+ clip_sample_range: 1.0
698
+ num_train_timesteps: 50
699
+ num_inference_steps: 10
700
+ do_mask_loss_for_padding: false
701
+ input_shapes:
702
+ observation.image:
703
+ - 13
704
+ - 180
705
+ - 240
706
+ context_observation.image:
707
+ - 13
708
+ - 180
709
+ - 240
710
+ observation.state:
711
+ - 8
712
+ observation.action_history:
713
+ - 7
714
+ train_cfg:
715
+ _target_: utils.TrainConfig
716
+ lr: 0.0001
717
+ lr_scheduler: cosine
718
+ lr_warmup_steps: 500
719
+ adam_betas:
720
+ - 0.95
721
+ - 0.999
722
+ adam_eps: 1.0e-08
723
+ adam_weight_decay: 1.0e-06
724
+ grad_clip_norm: 10
725
+ offline_steps: 1000000
726
+ use_amp: true
727
+ observation_cfg:
728
+ _target_: agent.encoder.VisualFeatureSet
729
+ use_depth: true
730
+ use_color: true
731
+ mask_input_dict:
732
+ _target_: agent.encoder.MaskInputDict
733
+ enable: true
734
+ representation: channels
735
+ mask_list:
736
+ - EE_obj_mask
737
+ crop_input_config:
738
+ _target_: agent.encoder.CropInputConfig
739
+ color_crop_type: null
740
+ depth_crop_type: null
741
+ segmask_crop_type: null
742
+ crop_hw:
743
+ - 144
744
+ - 144
745
+ crop_down_offset: 48
746
+ add_crop_binary_mask: false
747
+ add_coord_conv_map: false
748
+ context_input_config:
749
+ _target_: agent.encoder.ContextInputConfig
750
+ use_color: false
751
+ use_depth: false
752
+ mask_input_dict:
753
+ _target_: agent.encoder.MaskInputDict
754
+ enable: false
755
+ representation: channels
756
+ mask_list:
757
+ - EE_obj_mask
758
+ crop_input_config:
759
+ _target_: agent.encoder.CropInputConfig
760
+ color_crop_type: null
761
+ depth_crop_type: null
762
+ segmask_crop_type: null
763
+ crop_hw:
764
+ - 144
765
+ - 144
766
+ crop_down_offset: 48
767
+ add_crop_binary_mask: false
768
+ add_coord_conv_map: false
769
+ mask_soft_approx_scheduler_config:
770
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
771
+ num_steps: 40000
772
+ initial_value: 10.0
773
+ final_value: 1000.0
774
+ interpolation_scheme: cosine
775
+ use_contact_map: true
776
+ use_sdf_maps: true
777
+ use_normals_maps: true
778
+ which_objects: both
779
+ grasped_dtc_max_value: 0.2
780
+ env_dtc_max_value: 0.4
781
+ grasped_normals_mask_max_dtc_value: 0.2
782
+ env_normals_mask_max_dtc_value: 0.4
783
+ clamp_dtc: true
784
+ max_contact_prob: 0.1
785
+ mask_normals_within_sdf: true
786
+ dtc_adaptive_normalization: false
787
+ adaptive_normals_mask: true
788
+ max_depth: 2.0
789
+ image_shape:
790
+ - 13
791
+ - 180
792
+ - 240
793
+ learnable_contact_preprocess_params: true
794
+ learning_rate: 0.0001
795
+ weight_decay: 0.0
796
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
797
+ zero_centered: false
798
+ policy_frequency: 5
799
+ interpolation_frequency: 25
800
+ true_action_history: false
801
+ num_train_frames_bc:
802
+ desc: null
803
+ value: 50000
804
+ num_train_frames_drq:
805
+ desc: null
806
+ value: 1100000
807
+ stddev_schedule_drq:
808
+ desc: null
809
+ value: linear(1.0,0.1,100000)
810
+ task_name:
811
+ desc: null
812
+ value: FrankaInsertion-v1
813
+ num_train_frames_vinn:
814
+ desc: null
815
+ value: 25000
816
+ num_train_frames_diffusion:
817
+ desc: null
818
+ value: 1000000
819
+ num_train_epochs_bc:
820
+ desc: null
821
+ value: 5000
822
+ num_train_epochs_diffusion:
823
+ desc: null
824
+ value: 15000
825
+ validate_every_epochs_bc:
826
+ desc: null
827
+ value: 5
828
+ validate_every_epochs_diffusion:
829
+ desc: null
830
+ value: 250
831
+ validate_diffusion_on_action_loss_every_epochs:
832
+ desc: null
833
+ value: 250
834
+ train_eval_diffusion_on_action_loss_every_epochs:
835
+ desc: null
836
+ value: 250
837
+ check_topk_every_epochs:
838
+ desc: null
839
+ value: 5
840
+ check_topk_every_epochs_diffusion:
841
+ desc: null
842
+ value: 250
843
+ save_snapshot_every_epochs_diffusion:
844
+ desc: null
845
+ value: 1500
846
+ x_limit:
847
+ desc: null
848
+ value:
849
+ - 0.2
850
+ - 0.7
851
+ y_limit:
852
+ desc: null
853
+ value:
854
+ - -0.4
855
+ - 0.4
856
+ z_limit:
857
+ desc: null
858
+ value:
859
+ - -0.05
860
+ - 0.55
861
+ home_displacement:
862
+ desc: null
863
+ value:
864
+ - 0.55
865
+ - 0.0
866
+ - 0.55
867
+ - 180.0
868
+ - 0.0
869
+ - 0.0
870
+ enable_gripper:
871
+ desc: null
872
+ value: true
873
+ start_with_gripper_open:
874
+ desc: null
875
+ value: true
876
+ offset_mask:
877
+ desc: null
878
+ value:
879
+ - 1
880
+ - 1
881
+ - 1
882
+ - 1
883
+ - 1
884
+ - 1
885
+ path_to_depth_extrinsics:
886
+ desc: null
887
+ value: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
888
+ feature_type:
889
+ desc: null
890
+ value: 180x240_1_RGB_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_acthst_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1
891
+ save_buffer:
892
+ desc: null
893
+ value: true
894
+ num_eval:
895
+ desc: null
896
+ value: 5
897
+ random_start:
898
+ desc: null
899
+ value: false
900
+ eval_starts:
901
+ desc: null
902
+ value: /home/leonmkim/fish_leon/FISH/eval_starts/frankagym_pixels/FrankaInsertion-v1
903
+ num_valid_demos:
904
+ desc: null
905
+ value: null
906
+ load_checkpoint:
907
+ desc: null
908
+ value: true
909
+ true_action_history:
910
+ desc: null
911
+ value: false
912
+ checkpoint_epoch:
913
+ desc: null
914
+ value: 12000
915
+ load_residual_weight:
916
+ desc: null
917
+ value: false
918
+ checkpoint_root_dir:
919
+ desc: null
920
+ value: /home/leonmkim/fish_leon/FISH
921
+ checkpoint_weight_dir:
922
+ desc: null
923
+ value: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/265650
924
+ residual_weight:
925
+ desc: null
926
+ value: /home/leonmkim/fish_leon/FISH/weights/frankagym_pixels/FrankaInsertion-v1/weight.pt
927
+ _wandb:
928
+ desc: null
929
+ value:
930
+ code_path: code/FISH/eval_robot.py
931
+ python_version: 3.10.14
932
+ cli_version: 0.17.5
933
+ framework: torch
934
+ is_jupyter_run: false
935
+ is_kaggle_kernel: false
936
+ start_time: 1733935004
937
+ t:
938
+ 1:
939
+ - 1
940
+ - 41
941
+ - 49
942
+ - 50
943
+ - 55
944
+ - 83
945
+ 2:
946
+ - 1
947
+ - 41
948
+ - 49
949
+ - 50
950
+ - 55
951
+ - 83
952
+ 3:
953
+ - 16
954
+ - 23
955
+ - 35
956
+ 4: 3.10.14
957
+ 5: 0.17.5
958
+ 8:
959
+ - 5
960
+ 13: linux-x86_64
961
+ grasped_obj_name:
962
+ desc: null
963
+ value: hbm
964
+ left_book_slot:
965
+ desc: null
966
+ value: twodim
113638/wandb/run-20241211_113644-ahosb0lo/files/diff.patch ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ diff --git a/FISH/cfgs/config_eval.yaml b/FISH/cfgs/config_eval.yaml
2
+ index 91f9f99..78e1f6e 100644
3
+ --- a/FISH/cfgs/config_eval.yaml
4
+ +++ b/FISH/cfgs/config_eval.yaml
5
+ @@ -124,18 +124,41 @@ bc_weight_type: 'qfilter' # linear, qfilter
6
+ # Load weights
7
+ load_checkpoint: ${agent.load_checkpoint}
8
+ # 64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
9
+ -# full dataset
10
+ +# full 32 demos
11
+ # wandb_run_id: "265626" # RGBD+Mask+act history seed 0
12
+ # wandb_run_id: "265638" # RGBD+Mask+act history seed 1
13
+ # wandb_run_id: "265637" # RGBD+Mask+act history seed 2
14
+ # wandb_run_id: "265636" # RGBD+Mask+act history seed 3
15
+ # wandb_run_id: "265635" # RGBD+Mask+act history seed 4
16
+
17
+ +# 8 held out demos (26 demos)
18
+ +# wandb_run_id: "265652" # RGBD+Mask+contact+act history dataset seed 0
19
+ +# wandb_run_id: "265654" # RGBD+Mask+contact+act history dataset seed 1
20
+ +# wandb_run_id: "265655" # RGBD+Mask+contact+act history dataset seed 2
21
+ +
22
+ +# 8 held out demos (26 demos)
23
+ +# wandb_run_id: "265656" # RGBD+Mask+act history dataset seed 0
24
+ +# wandb_run_id: "265657" # RGBD+Mask+act history dataset seed 1
25
+ +# wandb_run_id: "265658" # RGBD+Mask+act history dataset seed 2
26
+ +
27
+ +# 16 held out demos (16 demos)
28
+ +# wandb_run_id: "265641" # RGBD+Mask+act history dataset seed 0
29
+ +# wandb_run_id: "265644" # RGBD+Mask+act history dataset seed 1
30
+ +# wandb_run_id: "265645" # RGBD+Mask+act history dataset seed 2
31
+ +# wandb_run_id: "266381_0" # RGBD+Mask+act history dataset seed 4
32
+ +
33
+ +# 16 held out demos (16 demos)
34
+ +# wandb_run_id: "265646" # RGBD+Mask+Contact+act history dataset seed 0
35
+ +# wandb_run_id: "265649" # RGBD+Mask+Contact+act history dataset seed 1
36
+ +wandb_run_id: "265650" # RGBD+Mask+Contact+act history dataset seed 2
37
+ +# wandb_run_id: "266378_0" # RGBD+Mask+Contact+act history dataset seed 4
38
+ +
39
+ # wandb_run_id: "265628" # RGBD+Mask+contact+act history seed 0
40
+ # wandb_run_id: "265630" # RGBD+Mask+contact+act history seed 1
41
+ # wandb_run_id: "265631" # RGBD+Mask+contact+act history seed 2
42
+ # wandb_run_id: "265633" # RGBD+Mask+contact+act history seed 3
43
+ -wandb_run_id: "265634" # RGBD+Mask+contact+act history seed 4
44
+ +# wandb_run_id: "265634" # RGBD+Mask+contact+act history seed 4
45
+ +
46
+
47
+ # 54_240x320_hbm_twodim_fps_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
48
+ # full dataset
113638/wandb/run-20241211_113644-ahosb0lo/files/media/videos/eval/0_eval_0_dea3cb7ce16ad057bd5f.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dea3cb7ce16ad057bd5fcb35b50592a86feeb9f7d6f3bd7b6f42095d27997931
3
+ size 1422243
113638/wandb/run-20241211_113644-ahosb0lo/files/media/videos/eval/1_eval_1_925210ff3b36d88f3887.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:925210ff3b36d88f3887c6bf561b993eeb2172f9b898edf7efaa91f7c720e590
3
+ size 1468875
113638/wandb/run-20241211_113644-ahosb0lo/files/media/videos/eval/2_eval_2_ddba0e3583786ac1097b.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ddba0e3583786ac1097bd8d918d5801eb4867cac0e908be1695101412c576aec
3
+ size 1498755
113638/wandb/run-20241211_113644-ahosb0lo/files/media/videos/eval/3_eval_3_b687720b2d32aeeb9a91.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b687720b2d32aeeb9a91a18ae8924160e7860fcc22b2850d7f2b3b59ca27c2ec
3
+ size 1454836
113638/wandb/run-20241211_113644-ahosb0lo/files/media/videos/eval/4_eval_4_10441113b4d3ea44e8c6.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:10441113b4d3ea44e8c6df553d629edb8882f588fa5814fc108ba5370ac0ec0d
3
+ size 1451627
113638/wandb/run-20241211_113644-ahosb0lo/files/output.log ADDED
The diff for this file is too large to render. See raw diff
 
113638/wandb/run-20241211_113644-ahosb0lo/files/requirements.txt ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ bondpy==1.8.6
31
+ byol-pytorch==0.8.0
32
+ cachetools==5.4.0
33
+ camera-calibration-parsers==1.12.0
34
+ camera-calibration==1.17.0
35
+ cascadio==0.0.13
36
+ catkin-pkg==1.0.0
37
+ catkin==0.7.18
38
+ catkin==0.8.10
39
+ certifi==2024.7.4
40
+ cffi==1.16.0
41
+ chardet==5.2.0
42
+ charset-normalizer==3.3.2
43
+ click==8.1.7
44
+ cloudpickle==3.0.0
45
+ cmake==3.30.1
46
+ colorlog==6.8.2
47
+ contourpy==1.2.1
48
+ controller-manager-msgs==0.20.0
49
+ controller-manager==0.20.0
50
+ coverage==7.6.0
51
+ coveralls==4.0.1
52
+ cv-bridge==1.16.2
53
+ cycler==0.12.1
54
+ datasets==2.20.0
55
+ decorator==4.4.2
56
+ deepdiff==7.0.1
57
+ defusedxml==0.7.1
58
+ diagnostic-analysis==1.11.0
59
+ diagnostic-common-diagnostics==1.11.0
60
+ diagnostic-updater==1.11.0
61
+ diffusers==0.27.2
62
+ dill==0.3.8
63
+ distro==1.9.0
64
+ dm-control==1.0.8
65
+ dm-env==1.6
66
+ dm-tree==0.1.8
67
+ docker-pycreds==0.4.0
68
+ docopt==0.6.2
69
+ docutils==0.21.2
70
+ dynamic-reconfigure==1.7.3
71
+ einops==0.8.0
72
+ embreex==2.17.7.post5
73
+ empy==3.3.4
74
+ etils==1.7.0
75
+ exceptiongroup==1.2.2
76
+ ezdxf==1.3.2
77
+ fasteners==0.19
78
+ filelock==3.15.4
79
+ fonttools==4.53.1
80
+ freetype-py==2.4.0
81
+ frozenlist==1.4.1
82
+ fsspec==2024.5.0
83
+ gazebo_plugins==2.9.2
84
+ gazebo_ros==2.9.2
85
+ gdown==5.2.0
86
+ gencpp==0.7.0
87
+ geneus==3.0.0
88
+ genlisp==0.4.18
89
+ genmsg==0.5.12
90
+ genmsg==0.6.0
91
+ gennodejs==2.0.2
92
+ genpy==0.6.14
93
+ genpy==0.6.15
94
+ geometry-msgs==1.13.0.post2
95
+ gitdb==4.0.11
96
+ glfw==2.7.0
97
+ glooey==0.3.6
98
+ gmsh==4.12.2
99
+ gnupg==2.3.1
100
+ google-auth-oauthlib==1.0.0
101
+ google-auth==2.32.0
102
+ grpcio==1.65.1
103
+ gym-envs==0.0.1
104
+ gym-notices==0.0.8
105
+ gym==0.22.0
106
+ gymnasium==0.29.1
107
+ h11==0.14.0
108
+ h5py==3.11.0
109
+ hf_transfer==0.1.8
110
+ httpcore==1.0.5
111
+ httpx==0.27.0
112
+ huggingface-hub==0.23.5
113
+ hydra-core==1.3.2
114
+ hydra-submitit-launcher==1.2.0
115
+ idna==3.7
116
+ image-geometry==1.16.2
117
+ imageio-ffmpeg==0.5.1
118
+ imageio==2.34.2
119
+ importlib_metadata==8.2.0
120
+ importlib_resources==6.4.0
121
+ iniconfig==2.0.0
122
+ interactive-markers==1.12.0
123
+ joint-state-publisher-gui==1.15.1
124
+ joint-state-publisher==1.15.1
125
+ jsonschema-specifications==2023.12.1
126
+ jsonschema==4.23.0
127
+ kiwisolver==1.4.5
128
+ kornia==0.7.3
129
+ kornia_rs==0.1.5
130
+ labmaze==1.0.6
131
+ laser_geometry==1.6.7
132
+ lazy_loader==0.4
133
+ lerobot==0.1.0
134
+ lightning-utilities==0.11.6
135
+ llvmlite==0.43.0
136
+ lxml==5.2.2
137
+ manifold3d==2.5.1
138
+ mapbox-earcut==1.0.1
139
+ markdown-it-py==3.0.0
140
+ matplotlib==3.9.1
141
+ mdurl==0.1.2
142
+ meshio==5.3.5
143
+ message-filters==1.16.0
144
+ more-itertools==10.3.0
145
+ moviepy==1.0.3
146
+ mpmath==1.3.0
147
+ mujoco==3.2.0
148
+ multidict==6.0.5
149
+ multiprocess==0.70.16
150
+ natsort==8.4.0
151
+ netifaces==0.11.0
152
+ networkx==3.3
153
+ nodeenv==1.9.1
154
+ numba==0.60.0
155
+ numcodecs==0.13.0
156
+ numpy==1.26.4
157
+ nvidia-cublas-cu12==12.1.3.1
158
+ nvidia-cuda-cupti-cu12==12.1.105
159
+ nvidia-cuda-nvrtc-cu12==12.1.105
160
+ nvidia-cuda-runtime-cu12==12.1.105
161
+ nvidia-cudnn-cu12==9.1.0.70
162
+ nvidia-cufft-cu12==11.0.2.54
163
+ nvidia-curand-cu12==10.3.2.106
164
+ nvidia-cusolver-cu12==11.4.5.107
165
+ nvidia-cusparse-cu12==12.1.0.106
166
+ nvidia-nccl-cu12==2.20.5
167
+ nvidia-nvjitlink-cu12==12.5.82
168
+ nvidia-nvtx-cu12==12.1.105
169
+ oauthlib==3.2.2
170
+ omegaconf==2.3.0
171
+ openctm==0.0.5
172
+ opencv-python==4.10.0.84
173
+ ordered-set==4.1.0
174
+ packaging==24.1
175
+ pandas==2.2.2
176
+ pillow==10.4.0
177
+ pip==24.2
178
+ platformdirs==4.2.2
179
+ pluggy==1.5.0
180
+ proglog==0.1.10
181
+ protobuf==5.27.2
182
+ psutil==6.0.0
183
+ pyarrow-hotfix==0.6
184
+ pyarrow==17.0.0
185
+ pyasn1==0.6.0
186
+ pyasn1_modules==0.4.0
187
+ pyav==12.3.0
188
+ pycollada==0.8
189
+ pycparser==2.22
190
+ pycryptodomex==3.21.0
191
+ pyglet==1.5.29
192
+ pyinstrument==4.6.2
193
+ pymunk==6.8.1
194
+ pyparsing==2.4.7
195
+ pyrealsense2==2.54.2.5684
196
+ pyribbit==0.1.46
197
+ pyright==1.1.373
198
+ pytest-beartype==0.0.2
199
+ pytest-cov==5.0.0
200
+ pytest==8.3.1
201
+ python-dateutil==2.9.0.post0
202
+ python-fcl==0.7.0.6
203
+ python-qt-binding==0.4.4
204
+ pytorch-lightning==2.4.0
205
+ pytz==2024.1
206
+ qt-dotgraph==0.4.2
207
+ qt-gui-cpp==0.4.2
208
+ qt-gui-py-common==0.4.2
209
+ qt-gui==0.4.2
210
+ referencing==0.35.1
211
+ regex==2024.5.15
212
+ requests-oauthlib==2.0.0
213
+ requests==2.32.3
214
+ rerun-sdk==0.17.0
215
+ resource_retriever==1.12.7
216
+ rich==13.7.1
217
+ ros-numpy==0.0.5
218
+ rosbag==1.16.0
219
+ rosboost-cfg==1.15.8
220
+ rosclean==1.15.8
221
+ roscpp==1.15.11
222
+ roscreate==1.15.8
223
+ rosgraph-msgs==1.11.3.post2
224
+ rosgraph==1.15.11
225
+ rosgraph==1.16.0
226
+ roslaunch==1.16.0
227
+ roslib==1.14.7.post0
228
+ roslib==1.15.8
229
+ roslint==0.12.0
230
+ roslz4==1.16.0
231
+ rosmake==1.15.8
232
+ rosmaster==1.16.0
233
+ rosmsg==1.16.0
234
+ rosnode==1.16.0
235
+ rosparam==1.16.0
236
+ rospkg==1.5.1
237
+ rospy==1.15.11
238
+ rospy==1.16.0
239
+ rosservice==1.16.0
240
+ rostest==1.16.0
241
+ rostopic==1.16.0
242
+ rosunit==1.15.8
243
+ roswtf==1.16.0
244
+ rpds-py==0.19.1
245
+ rqt-console==0.4.12
246
+ rqt-image-view==0.4.17
247
+ rqt-logger-level==0.4.12
248
+ rqt-moveit==0.5.11
249
+ rqt-reconfigure==0.5.5
250
+ rqt-robot-dashboard==0.5.8
251
+ rqt-robot-monitor==0.5.15
252
+ rqt-runtime-monitor==0.5.10
253
+ rqt-rviz==0.7.0
254
+ rqt-tf-tree==0.6.4
255
+ rqt_action==0.4.9
256
+ rqt_bag==0.5.1
257
+ rqt_bag_plugins==0.5.1
258
+ rqt_dep==0.4.12
259
+ rqt_graph==0.4.14
260
+ rqt_gui==0.5.3
261
+ rqt_gui_py==0.5.3
262
+ rqt_launch==0.4.9
263
+ rqt_msg==0.4.10
264
+ rqt_nav_view==0.5.7
265
+ rqt_plot==0.4.13
266
+ rqt_pose_view==0.5.11
267
+ rqt_publisher==0.4.10
268
+ rqt_py_common==0.5.3
269
+ rqt_py_console==0.4.10
270
+ rqt_robot_steering==0.5.12
271
+ rqt_service_caller==0.4.10
272
+ rqt_shell==0.4.11
273
+ rqt_srv==0.4.9
274
+ rqt_top==0.4.10
275
+ rqt_topic==0.4.13
276
+ rqt_web==0.4.10
277
+ rsa==4.9
278
+ ruff==0.5.4
279
+ rviz==1.14.25
280
+ safetensors==0.4.3
281
+ scikit-image==0.24.0
282
+ scikit-video==1.1.11
283
+ scipy==1.14.0
284
+ seaborn==0.13.2
285
+ sensor-msgs==1.13.1
286
+ sentry-sdk==2.11.0
287
+ setproctitle==1.3.3
288
+ setuptools==65.5.0
289
+ shapely==2.0.5
290
+ signature_dispatch==1.0.1
291
+ six==1.16.0
292
+ smach-ros==2.5.2
293
+ smach==2.5.2
294
+ smclib==1.8.6
295
+ smmap==5.0.1
296
+ sniffio==1.3.1
297
+ soupsieve==2.5
298
+ std-msgs==0.5.13.post0
299
+ submitit==1.5.1
300
+ svg.path==6.3
301
+ sympy==1.13.1
302
+ tensorboard-data-server==0.7.2
303
+ tensorboard==2.14.0
304
+ termcolor==2.4.0
305
+ tf-conversions==1.13.2
306
+ tf2-geometry-msgs==0.7.7
307
+ tf2-kdl==0.7.7
308
+ tf2-msgs==0.7.2.post3
309
+ tf2-py==0.7.7
310
+ tf2-ros==0.6.5
311
+ tf2-ros==0.7.7
312
+ tf2_py==0.6.5.post1
313
+ tf==1.13.2
314
+ tifffile==2024.7.24
315
+ tomli==2.0.1
316
+ topic-tools==1.16.0
317
+ torch==2.4.0
318
+ torchaug==0.5.2
319
+ torchmetrics==1.4.0.post0
320
+ torchvision==0.19.0
321
+ tqdm==4.66.4
322
+ trimesh==4.4.3
323
+ triton==3.0.0
324
+ typeguard==3.0.2
325
+ typing_extensions==4.12.2
326
+ tzdata==2024.1
327
+ urchin==0.0.27
328
+ urllib3==2.2.2
329
+ vecrec==0.3.1
330
+ vhacdx==0.0.8.post1
331
+ wandb==0.17.5
332
+ wheel==0.43.0
333
+ xacro==1.14.18
334
+ xatlas==0.0.9
335
+ xxhash==3.4.1
336
+ yarl==1.9.4
337
+ zarr==2.18.2
338
+ zipp==3.19.2
339
+ zstandard==0.23.0
113638/wandb/run-20241211_113644-ahosb0lo/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": "2024-12-11T16:36:45.012114",
5
+ "startedAt": "2024-12-11T16:36:44.613038",
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": "1b557f164c7f62a8d1545c761b13ede1677c3a83"
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": 3937.48675,
30
+ "min": 800.0,
31
+ "max": 4700.0
32
+ },
33
+ "cpu_freq_per_core": [
34
+ {
35
+ "current": 3000.0,
36
+ "min": 800.0,
37
+ "max": 4700.0
38
+ },
39
+ {
40
+ "current": 3000.0,
41
+ "min": 800.0,
42
+ "max": 4700.0
43
+ },
44
+ {
45
+ "current": 4499.999,
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": 4500.011,
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": 661.6516265869141
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.71596908569336
91
+ }
92
+ }
113638/wandb/run-20241211_113644-ahosb0lo/files/wandb-summary.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"eval/0_eval": {"_type": "video-file", "sha256": "dea3cb7ce16ad057bd5fcb35b50592a86feeb9f7d6f3bd7b6f42095d27997931", "size": 1422243, "path": "media/videos/eval/0_eval_0_dea3cb7ce16ad057bd5f.mp4"}, "global_step": 680, "_timestamp": 1733935311.290467, "_runtime": 306.669842004776, "_step": 9, "eval/1_eval": {"_type": "video-file", "sha256": "925210ff3b36d88f3887c6bf561b993eeb2172f9b898edf7efaa91f7c720e590", "size": 1468875, "path": "media/videos/eval/1_eval_1_925210ff3b36d88f3887.mp4"}, "eval/num_success": 4.0, "episode": 5.0, "eval/success_rate": 0.800000011920929, "eval/2_eval": {"_type": "video-file", "sha256": "ddba0e3583786ac1097bd8d918d5801eb4867cac0e908be1695101412c576aec", "size": 1498755, "path": "media/videos/eval/2_eval_2_ddba0e3583786ac1097b.mp4"}, "eval/3_eval": {"_type": "video-file", "sha256": "b687720b2d32aeeb9a91a18ae8924160e7860fcc22b2850d7f2b3b59ca27c2ec", "size": 1454836, "path": "media/videos/eval/3_eval_3_b687720b2d32aeeb9a91.mp4"}, "eval/4_eval": {"_type": "video-file", "sha256": "10441113b4d3ea44e8c6df553d629edb8882f588fa5814fc108ba5370ac0ec0d", "size": 1451627, "path": "media/videos/eval/4_eval_4_10441113b4d3ea44e8c6.mp4"}, "_wandb": {"runtime": 306}}
113638/wandb/run-20241211_113644-ahosb0lo/logs/debug-internal.log ADDED
The diff for this file is too large to render. See raw diff
 
113638/wandb/run-20241211_113644-ahosb0lo/logs/debug.log ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_setup.py:_flush():76] Current SDK version is 0.17.5
2
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_setup.py:_flush():76] Configure stats pid to 743294
3
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/.config/wandb/settings
4
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/265650/113638/wandb/settings
5
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_setup.py:_flush():76] Loading settings from environment variables: {}
6
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_setup.py:_flush():76] Applying setup settings: {'_disable_service': False}
7
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [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
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_setup.py:_flush():76] Applying login settings: {}
9
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_init.py:_log_setup():529] Logging user logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/265650/113638/wandb/run-20241211_113644-ahosb0lo/logs/debug.log
10
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_init.py:_log_setup():530] Logging internal logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/265650/113638/wandb/run-20241211_113644-ahosb0lo/logs/debug-internal.log
11
+ 2024-12-11 11:36:44,614 INFO MainThread:743294 [wandb_init.py:init():569] calling init triggers
12
+ 2024-12-11 11:36:44,615 INFO MainThread:743294 [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': 2, 'device': 'cuda', 'save_video': True, 'save_train_video': True, 'use_tb': True, 'use_wandb': True, 'wandb_run_id': '265650', 'wandb_notes': '265650_req_265757restarted_2', 'eval': True, 'process_contact_features': True, 'obs_type': 'pixels', 'use_color': True, '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': '64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_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/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_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/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_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/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml', 'include_groups_list': ['hbm_twodim_left_to_right'], 'expert_dataset_config': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demo_config.yaml', 'name_of_valid_demo': '64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_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/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'valid_demo_idxs_list_or_num': None, 'val_num_groups': 16, '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', 'bc_regularize': False, 'bc_weight_type': 'qfilter', 'experiment_dir': './exp_local/frankagym_pixels/FrankaInsertion-v1/265650', 'agent': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgent', 'name': 'diffusion_policy', 'load_checkpoint': True, 'obs_shape': [14, 240, 320], 'action_shape': [36, 7], '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_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', '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': True, '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}, 'policy_frequency': 5, 'interpolation_frequency': 25}}, '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/64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'observation_cfg': {'_target_': 'agent.encoder.VisualFeatureSet', 'use_depth': True, 'use_color': True, '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}, '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_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', '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': True, '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}, 'policy_frequency': 5, 'interpolation_frequency': 25}, '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', 'feature_type': '180x240_1_RGB_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_acthst_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, 'true_action_history': False, 'checkpoint_epoch': 12000, '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/265650', 'residual_weight': '/home/leonmkim/fish_leon/FISH/weights/frankagym_pixels/FrankaInsertion-v1/weight.pt'}
14
+ 2024-12-11 11:36:44,615 INFO MainThread:743294 [wandb_init.py:init():619] starting backend
15
+ 2024-12-11 11:36:44,615 INFO MainThread:743294 [wandb_init.py:init():623] setting up manager
16
+ 2024-12-11 11:36:44,619 INFO MainThread:743294 [backend.py:_multiprocessing_setup():105] multiprocessing start_methods=fork,spawn,forkserver, using: spawn
17
+ 2024-12-11 11:36:44,620 INFO MainThread:743294 [wandb_init.py:init():631] backend started and connected
18
+ 2024-12-11 11:36:44,632 INFO MainThread:743294 [wandb_init.py:init():720] updated telemetry
19
+ 2024-12-11 11:36:44,639 INFO MainThread:743294 [wandb_init.py:init():753] communicating run to backend with 90.0 second timeout
20
+ 2024-12-11 11:36:44,920 INFO MainThread:743294 [wandb_run.py:_on_init():2435] communicating current version
21
+ 2024-12-11 11:36:44,991 INFO MainThread:743294 [wandb_run.py:_on_init():2444] got version response upgrade_message: "wandb version 0.19.0 is available! To upgrade, please run:\n $ pip install wandb --upgrade"
22
+
23
+ 2024-12-11 11:36:44,991 INFO MainThread:743294 [wandb_init.py:init():804] starting run threads in backend
24
+ 2024-12-11 11:36:45,329 INFO MainThread:743294 [wandb_run.py:_console_start():2413] atexit reg
25
+ 2024-12-11 11:36:45,329 INFO MainThread:743294 [wandb_run.py:_redirect():2255] redirect: wrap_raw
26
+ 2024-12-11 11:36:45,329 INFO MainThread:743294 [wandb_run.py:_redirect():2320] Wrapping output streams.
27
+ 2024-12-11 11:36:45,329 INFO MainThread:743294 [wandb_run.py:_redirect():2345] Redirects installed.
28
+ 2024-12-11 11:36:45,331 INFO MainThread:743294 [wandb_init.py:init():847] run started, returning control to user process
29
+ 2024-12-11 11:36:45,331 INFO MainThread:743294 [wandb_run.py:_tensorboard_callback():1544] tensorboard callback: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/265650/113638/tb, True
30
+ 2024-12-11 11:36:49,564 INFO MainThread:743294 [wandb_run.py:_config_callback():1382] config_cb None None {'grasped_obj_name': 'hbm', 'left_book_slot': 'twodim'}
31
+ 2024-12-11 11:42:01,796 WARNING MsgRouterThr:743294 [router.py:message_loop():77] message_loop has been closed
113638/wandb/run-20241211_113644-ahosb0lo/run-ahosb0lo.wandb ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a5a235a463c7c99af6fdcdad2bbd2c51fdc774401c7f98baa7f4c83783e6b5ec
3
+ size 294853
config.yaml ADDED
@@ -0,0 +1,453 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ root_dir: /mnt/kostas-graid/datasets/extrinsic_contact_data
2
+ replay_buffer_size: 150000
3
+ replay_buffer_num_workers: 2
4
+ nstep: 3
5
+ batch_size: 128
6
+ seed: 0
7
+ dataset_shuffle_seed: 2
8
+ device: cuda
9
+ save_video: true
10
+ save_train_video: true
11
+ use_tb: true
12
+ use_wandb: true
13
+ wandb_run_id: '265650'
14
+ wandb_notes: 265650_req_265757restarted_2
15
+ eval: false
16
+ process_contact_features: ${eval}
17
+ obs_type: pixels
18
+ use_color: true
19
+ use_depth: true
20
+ use_masks: true
21
+ mask_list:
22
+ - EE_obj_mask
23
+ mask_representation: channels
24
+ crop_hw:
25
+ - 144
26
+ - 144
27
+ crop_down_offset: 48
28
+ color_crop_type: null
29
+ depth_crop_type: null
30
+ segmask_crop_type: null
31
+ add_crop_binary_mask: false
32
+ add_coord_conv_map: false
33
+ use_context_color: false
34
+ use_context_depth: false
35
+ use_context_segmask: false
36
+ context_color_crop_type: null
37
+ context_depth_crop_type: null
38
+ context_segmask_crop_type: null
39
+ context_add_crop_binary_mask: false
40
+ context_add_coord_conv_map: false
41
+ use_contact_map: true
42
+ use_sdf_maps: true
43
+ use_normals_maps: true
44
+ which_objects: both
45
+ max_contact_prob: 0.1
46
+ max_depth: 2.0
47
+ grasped_dtc_max_value: 0.2
48
+ env_dtc_max_value: 0.4
49
+ grasped_normals_mask_max_dtc_value: 0.2
50
+ env_normals_mask_max_dtc_value: 0.4
51
+ clamp_dtc: true
52
+ dtc_adaptive_normalization: false
53
+ mask_normals_within_sdf: true
54
+ adaptive_normals_mask: true
55
+ learnable_contact_preprocess_params: true
56
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
57
+ contact_estimation_model_ckpt_path: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
58
+ encoder_type: small
59
+ debug_timestamps: false
60
+ open_loop: false
61
+ action_trajectories: true
62
+ stop_after_action: false
63
+ interpolation_frequency: 25
64
+ policy_frequency: 5
65
+ wait_for_new_camera_frames: true
66
+ baseline: false
67
+ train_demo_idxs_list_or_num: -1
68
+ log_train_every_steps: 25
69
+ name_of_expert_demo: 64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
70
+ expert_dataset_dirpath: ${root_dir}/FISH/expert_demos/${suite.name}/${task_name}/${name_of_expert_demo}
71
+ store_dataset_in_memory: false
72
+ expert_dataset: ${expert_dataset_dirpath}/demos.zarr
73
+ action_key: ${oc.if_else:${action_trajectories}, 'action_trajectory_${interpolation_frequency}hz',
74
+ 'action'}
75
+ semantic_demo_grouping_name: semantic_demo_grouping.yaml
76
+ semantic_demo_grouping: ${expert_dataset_dirpath}/${semantic_demo_grouping_name}
77
+ include_groups_list:
78
+ - hbm_twodim_left_to_right
79
+ expert_dataset_config: ${expert_dataset_dirpath}/demo_config.yaml
80
+ name_of_valid_demo: 64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
81
+ valid_dataset_dir: ${root_dir}/FISH/expert_demos/${suite.name}/${task_name}/${name_of_valid_demo}/demos.zarr
82
+ valid_demo_idxs_list_or_num: null
83
+ val_num_groups: 16
84
+ load_bc: ${agent.load_checkpoint}
85
+ checkpoint_epoch_list:
86
+ - 99
87
+ - 199
88
+ - 299
89
+ - 399
90
+ - 499
91
+ - 599
92
+ - 699
93
+ - 799
94
+ - 899
95
+ - 999
96
+ - 1249
97
+ - 1499
98
+ - 1749
99
+ - 1999
100
+ - 2999
101
+ - 3999
102
+ - 4999
103
+ - 5999
104
+ - 6999
105
+ - 7999
106
+ - 8999
107
+ - 9999
108
+ snapshot_root_dir: /mnt/grasp_high_usage/leonmkim/contact_estimation/FISH
109
+ save_snapshot: true
110
+ save_last_snapshot: true
111
+ save_snapshot_when_done: true
112
+ top_k_checkpoints: 5
113
+ save_snapshot_link_to_weights_dir: deprecated
114
+ bc_regularize: false
115
+ bc_weight_type: qfilter
116
+ experiment_dir: ./exp_local/${suite.name}_${obs_type}/${task_name}/${wandb_run_id}
117
+ agent:
118
+ _target_: agent.diffusion_policy.DiffusionPolicyAgent
119
+ name: diffusion_policy
120
+ load_checkpoint: ${eval}
121
+ obs_shape:
122
+ - 14
123
+ - 240
124
+ - 320
125
+ action_shape:
126
+ - 36
127
+ - 7
128
+ device: ${device}
129
+ n_obs_steps: ${.config.policy_cfg.n_obs_steps}
130
+ suite_name: ${suite.name}
131
+ obs_type: ${obs_type}
132
+ enable_arm: ${eval}
133
+ enable_camera: ${eval}
134
+ use_tb: ${use_tb}
135
+ desired_image_shape:
136
+ - 13
137
+ - 180
138
+ - 240
139
+ orig_cam_shape:
140
+ - 3
141
+ - 240
142
+ - 320
143
+ config:
144
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
145
+ compile: false
146
+ device: ${device}
147
+ cam_resize_shape: ${agent.desired_image_shape}
148
+ orig_cam_shape: ${agent.orig_cam_shape}
149
+ policy_cfg:
150
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
151
+ n_obs_steps: 1
152
+ horizon: 36
153
+ n_action_steps: ${agent.config.policy_cfg.horizon}
154
+ output_shapes:
155
+ action:
156
+ - 7
157
+ input_normalization_modes:
158
+ observation.image: mean_std
159
+ observation.state: min_max
160
+ observation.action_history: min_max
161
+ output_normalization_modes:
162
+ action: min_max
163
+ vision_backbone: resnet18
164
+ pretrained_backbone_weights: null
165
+ transforms:
166
+ - _target_: torchaug.transforms.RandomAffine
167
+ degrees:
168
+ - -5
169
+ - 5
170
+ translate:
171
+ - 0.05
172
+ - 0.05
173
+ batch_transform: true
174
+ num_chunks: -1
175
+ batch_inplace: true
176
+ - _target_: torchaug.transforms.RandomColorJitter
177
+ brightness: 0.3
178
+ contrast: 0.4
179
+ saturation: 0.5
180
+ hue: 0.08
181
+ batch_transform: true
182
+ num_chunks: -1
183
+ batch_inplace: true
184
+ use_group_norm: true
185
+ spatial_softmax_num_keypoints: 32
186
+ action_history_encoder_config:
187
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
188
+ in_channels: 7
189
+ out_channels: 32
190
+ history_length: 6
191
+ kernel_size: ${agent.config.policy_cfg.kernel_size}
192
+ downsample_kernel_size: 3
193
+ downsample_stride: 2
194
+ downsample_padding: 1
195
+ down_dims:
196
+ - 256
197
+ - 512
198
+ - 1024
199
+ kernel_size: 5
200
+ n_groups: 8
201
+ diffusion_step_embed_dim: 128
202
+ use_film_scale_modulation: true
203
+ noise_scheduler_type: DDIM
204
+ beta_schedule: squaredcos_cap_v2
205
+ beta_start: 0.0001
206
+ beta_end: 0.02
207
+ prediction_type: epsilon
208
+ clip_sample: true
209
+ clip_sample_range: 1.0
210
+ num_train_timesteps: 50
211
+ num_inference_steps: 10
212
+ do_mask_loss_for_padding: false
213
+ input_shapes:
214
+ observation.image:
215
+ - 13
216
+ - 180
217
+ - 240
218
+ context_observation.image:
219
+ - 13
220
+ - 180
221
+ - 240
222
+ observation.state:
223
+ - 8
224
+ observation.action_history:
225
+ - 7
226
+ train_cfg:
227
+ _target_: utils.TrainConfig
228
+ lr: 0.0001
229
+ lr_scheduler: cosine
230
+ lr_warmup_steps: 500
231
+ adam_betas:
232
+ - 0.95
233
+ - 0.999
234
+ adam_eps: 1.0e-08
235
+ adam_weight_decay: 1.0e-06
236
+ grad_clip_norm: 10
237
+ offline_steps: ${num_train_frames_diffusion}
238
+ use_amp: true
239
+ observation_cfg:
240
+ _target_: agent.encoder.VisualFeatureSet
241
+ use_depth: ${use_depth}
242
+ use_color: ${use_color}
243
+ mask_input_dict:
244
+ _target_: agent.encoder.MaskInputDict
245
+ enable: ${use_masks}
246
+ representation: ${mask_representation}
247
+ mask_list: ${mask_list}
248
+ crop_input_config:
249
+ _target_: agent.encoder.CropInputConfig
250
+ color_crop_type: ${color_crop_type}
251
+ depth_crop_type: ${depth_crop_type}
252
+ segmask_crop_type: ${segmask_crop_type}
253
+ crop_hw: ${crop_hw}
254
+ crop_down_offset: ${crop_down_offset}
255
+ add_crop_binary_mask: ${add_crop_binary_mask}
256
+ add_coord_conv_map: ${add_coord_conv_map}
257
+ context_input_config:
258
+ _target_: agent.encoder.ContextInputConfig
259
+ use_color: ${use_context_color}
260
+ use_depth: ${use_context_depth}
261
+ mask_input_dict:
262
+ _target_: agent.encoder.MaskInputDict
263
+ enable: ${use_context_segmask}
264
+ representation: ${mask_representation}
265
+ mask_list: ${mask_list}
266
+ crop_input_config:
267
+ _target_: agent.encoder.CropInputConfig
268
+ color_crop_type: ${context_color_crop_type}
269
+ depth_crop_type: ${context_depth_crop_type}
270
+ segmask_crop_type: ${context_segmask_crop_type}
271
+ crop_hw: ${crop_hw}
272
+ crop_down_offset: ${crop_down_offset}
273
+ add_crop_binary_mask: ${context_add_crop_binary_mask}
274
+ add_coord_conv_map: ${context_add_coord_conv_map}
275
+ mask_soft_approx_scheduler_config:
276
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
277
+ num_steps: 40000
278
+ initial_value: 10.0
279
+ final_value: 1000.0
280
+ interpolation_scheme: cosine
281
+ use_contact_map: ${use_contact_map}
282
+ use_sdf_maps: ${use_sdf_maps}
283
+ use_normals_maps: ${use_normals_maps}
284
+ which_objects: ${which_objects}
285
+ grasped_dtc_max_value: ${grasped_dtc_max_value}
286
+ env_dtc_max_value: ${env_dtc_max_value}
287
+ grasped_normals_mask_max_dtc_value: ${grasped_normals_mask_max_dtc_value}
288
+ env_normals_mask_max_dtc_value: ${env_normals_mask_max_dtc_value}
289
+ clamp_dtc: ${clamp_dtc}
290
+ max_contact_prob: ${max_contact_prob}
291
+ mask_normals_within_sdf: ${mask_normals_within_sdf}
292
+ dtc_adaptive_normalization: ${dtc_adaptive_normalization}
293
+ adaptive_normals_mask: ${adaptive_normals_mask}
294
+ max_depth: ${max_depth}
295
+ image_shape: ${agent.desired_image_shape}
296
+ learnable_contact_preprocess_params: ${learnable_contact_preprocess_params}
297
+ learning_rate: 0.0001
298
+ weight_decay: 0.0
299
+ contact_model_name: ${contact_model_name}
300
+ zero_centered: false
301
+ policy_frequency: 5
302
+ interpolation_frequency: 25
303
+ suite:
304
+ suite: frankagym
305
+ name: frankagym
306
+ frame_stack: ${agent.n_obs_steps}
307
+ action_repeat: 1
308
+ discount: 0.99
309
+ hidden_dim: 1024
310
+ num_train_frames: 1000000
311
+ num_seed_frames: 0
312
+ num_train_epochs: 15000
313
+ validate_every_epochs: 250
314
+ validate_diffusion_on_action_loss_every_epochs: 250
315
+ train_eval_diffusion_on_action_loss_every_epochs: 250
316
+ check_topk_every_epochs: 250
317
+ save_snapshot_every_epochs: 1500
318
+ eval_every_frames: 2000
319
+ num_eval_episodes: 5
320
+ save_snapshot: true
321
+ wait_for_user_to_start_episode: true
322
+ task_make_fn:
323
+ _target_: suite.frankagym.make
324
+ name: ${task_name}
325
+ height: 240
326
+ width: 320
327
+ frame_stack: ${suite.frame_stack}
328
+ action_repeat: ${suite.action_repeat}
329
+ seed: ${seed}
330
+ enable_arm: ${agent.enable_arm}
331
+ enable_gripper: ${enable_gripper}
332
+ start_with_gripper_open: ${start_with_gripper_open}
333
+ enable_camera: ${agent.enable_camera}
334
+ path_to_depth_extrinsics: ${path_to_depth_extrinsics}
335
+ contact_estimation_model_ckpt_path: ${contact_estimation_model_ckpt_path}
336
+ x_limit: ${x_limit}
337
+ y_limit: ${y_limit}
338
+ z_limit: ${z_limit}
339
+ device: ${device}
340
+ interpolation_frequency: ${interpolation_frequency}
341
+ policy_frequency: ${policy_frequency}
342
+ debug_timestamps: ${debug_timestamps}
343
+ stop_after_action: ${stop_after_action}
344
+ open_loop: ${open_loop}
345
+ wait_for_new_camera_frames: ${wait_for_new_camera_frames}
346
+ action_key: ${action_key}
347
+ action_trajectory_horizon: ${agent.config.policy_cfg.horizon}
348
+ action_trajectories: ${action_trajectories}
349
+ path_to_zarr_dataset: ${expert_dataset}
350
+ observation_cfg:
351
+ _target_: agent.encoder.VisualFeatureSet
352
+ use_depth: ${use_depth}
353
+ use_color: ${use_color}
354
+ mask_input_dict:
355
+ _target_: agent.encoder.MaskInputDict
356
+ enable: ${use_masks}
357
+ representation: ${mask_representation}
358
+ mask_list: ${mask_list}
359
+ crop_input_config:
360
+ _target_: agent.encoder.CropInputConfig
361
+ color_crop_type: ${color_crop_type}
362
+ depth_crop_type: ${depth_crop_type}
363
+ segmask_crop_type: ${segmask_crop_type}
364
+ crop_hw: ${crop_hw}
365
+ crop_down_offset: ${crop_down_offset}
366
+ add_crop_binary_mask: ${add_crop_binary_mask}
367
+ add_coord_conv_map: ${add_coord_conv_map}
368
+ context_input_config:
369
+ _target_: agent.encoder.ContextInputConfig
370
+ use_color: ${use_context_color}
371
+ use_depth: ${use_context_depth}
372
+ mask_input_dict:
373
+ _target_: agent.encoder.MaskInputDict
374
+ enable: ${use_context_segmask}
375
+ representation: ${mask_representation}
376
+ mask_list: ${mask_list}
377
+ crop_input_config:
378
+ _target_: agent.encoder.CropInputConfig
379
+ color_crop_type: ${context_color_crop_type}
380
+ depth_crop_type: ${context_depth_crop_type}
381
+ segmask_crop_type: ${context_segmask_crop_type}
382
+ crop_hw: ${crop_hw}
383
+ crop_down_offset: ${crop_down_offset}
384
+ add_crop_binary_mask: ${context_add_crop_binary_mask}
385
+ add_coord_conv_map: ${context_add_coord_conv_map}
386
+ mask_soft_approx_scheduler_config:
387
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
388
+ num_steps: 40000
389
+ initial_value: 10.0
390
+ final_value: 1000.0
391
+ interpolation_scheme: cosine
392
+ use_contact_map: ${use_contact_map}
393
+ use_sdf_maps: ${use_sdf_maps}
394
+ use_normals_maps: ${use_normals_maps}
395
+ which_objects: ${which_objects}
396
+ grasped_dtc_max_value: ${grasped_dtc_max_value}
397
+ env_dtc_max_value: ${env_dtc_max_value}
398
+ grasped_normals_mask_max_dtc_value: ${grasped_normals_mask_max_dtc_value}
399
+ env_normals_mask_max_dtc_value: ${env_normals_mask_max_dtc_value}
400
+ clamp_dtc: ${clamp_dtc}
401
+ max_contact_prob: ${max_contact_prob}
402
+ mask_normals_within_sdf: ${mask_normals_within_sdf}
403
+ dtc_adaptive_normalization: ${dtc_adaptive_normalization}
404
+ adaptive_normals_mask: ${adaptive_normals_mask}
405
+ max_depth: ${max_depth}
406
+ image_shape: ${agent.desired_image_shape}
407
+ learnable_contact_preprocess_params: ${learnable_contact_preprocess_params}
408
+ learning_rate: 0.0001
409
+ weight_decay: 0.0
410
+ contact_model_name: ${contact_model_name}
411
+ zero_centered: false
412
+ num_train_frames_bc: 50000
413
+ num_train_frames_drq: 1100000
414
+ stddev_schedule_drq: linear(1.0,0.1,100000)
415
+ task_name: FrankaInsertion-v1
416
+ num_train_frames_vinn: 25000
417
+ num_train_frames_diffusion: 1000000
418
+ num_train_epochs_bc: 5000
419
+ num_train_epochs_diffusion: 15000
420
+ validate_every_epochs_bc: 5
421
+ validate_every_epochs_diffusion: 250
422
+ validate_diffusion_on_action_loss_every_epochs: 250
423
+ train_eval_diffusion_on_action_loss_every_epochs: 250
424
+ check_topk_every_epochs: 5
425
+ check_topk_every_epochs_diffusion: 250
426
+ save_snapshot_every_epochs_diffusion: 1500
427
+ x_limit:
428
+ - 0.2
429
+ - 0.7
430
+ y_limit:
431
+ - -0.4
432
+ - 0.4
433
+ z_limit:
434
+ - -0.05
435
+ - 0.55
436
+ home_displacement:
437
+ - 0.55
438
+ - 0.0
439
+ - 0.55
440
+ - 180.0
441
+ - 0.0
442
+ - 0.0
443
+ enable_gripper: true
444
+ start_with_gripper_open: true
445
+ offset_mask:
446
+ - 1
447
+ - 1
448
+ - 1
449
+ - 1
450
+ - 1
451
+ - 1
452
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
453
+ feature_type: 180x240_1_RGB_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_acthst_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1
snapshot_10500.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d240de137ad4b77d28e5670df4f74a7b7b6d8c14408e2a625ce14ced049ff3e8
3
+ size 910445958
snapshot_10749.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:48677ce6dca1d2e08d5b6f808077e680050fad4ddf69814acc2224efe60c8ec4
3
+ size 910445958
snapshot_12000.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:43310ae363123487086d4f0d99dcdb1c897916b9b111f7a5883c5f16bc55ec44
3
+ size 910445958
snapshot_13500.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6f355ea511588c624f1f12472f1c4f159ef0d5330732ad0eeeb11ce3dcda47e1
3
+ size 910445958
snapshot_14453.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:246648ccf3ac9a0cc43cdf478d705e049c9d5b13df49f548b3e885ed1d078702
3
+ size 910445958
snapshot_14999.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:98b56bd4a55998f86774e65d31ff27b1ee05ccce33d29fab015ccbba4c928ff5
3
+ size 910445958
snapshot_1500.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bb5da0e457c39a7fca91e2036bf75959fd2deb378f9a5bdfd8db9f650d6e2ee4
3
+ size 910445448
snapshot_15000.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f06a576476429639f85664a8dac99b0ad1c299d48cf1688e0798331e10779556
3
+ size 910445958