serialexperimentsleon commited on
Commit
fbedae1
·
verified ·
1 Parent(s): 7dc35e2

Add files using upload-large-folder tool

Browse files
Files changed (42) hide show
  1. .gitattributes +15 -0
  2. 201837/.hydra/config.yaml +350 -0
  3. 201837/.hydra/hydra.yaml +169 -0
  4. 201837/.hydra/overrides.yaml +3 -0
  5. 201837/episode_rosbags/aligned_depth_to_color_K.npy +3 -0
  6. 201837/episode_rosbags/cam_tf_world.npy +3 -0
  7. 201837/episode_rosbags/color_K.npy +3 -0
  8. 201837/episode_rosbags/depth_K.npy +3 -0
  9. 201837/episode_rosbags/episode_0_2024-12-17-20-20-27.bag +3 -0
  10. 201837/episode_rosbags/episode_1_2024-12-17-20-21-47.bag +3 -0
  11. 201837/episode_rosbags/episode_2_2024-12-17-20-22-50.bag +3 -0
  12. 201837/episode_rosbags/episode_3_2024-12-17-20-23-32.bag +3 -0
  13. 201837/episode_rosbags/episode_4_2024-12-17-20-24-11.bag +3 -0
  14. 201837/eval_robot.log +12 -0
  15. 201837/eval_video/0_eval.mp4 +3 -0
  16. 201837/eval_video/1_eval.mp4 +3 -0
  17. 201837/eval_video/2_eval.mp4 +3 -0
  18. 201837/eval_video/3_eval.mp4 +3 -0
  19. 201837/eval_video/4_eval.mp4 +3 -0
  20. 201837/tb/events.out.tfevents.1734484724.leonmkim-ROG-Strix-G15CS-G15CS.60829.0 +3 -0
  21. 201837/wandb/debug-internal.log +0 -0
  22. 201837/wandb/debug.log +31 -0
  23. 201837/wandb/run-20241217_201844-3irhkym4/files/code/FISH/eval_robot.py +512 -0
  24. 201837/wandb/run-20241217_201844-3irhkym4/files/config.yaml +891 -0
  25. 201837/wandb/run-20241217_201844-3irhkym4/files/diff.patch +171 -0
  26. 201837/wandb/run-20241217_201844-3irhkym4/files/media/videos/eval/0_eval_0_dea50b578cd8d3a2c625.mp4 +3 -0
  27. 201837/wandb/run-20241217_201844-3irhkym4/files/media/videos/eval/1_eval_1_b03068849d1999348de8.mp4 +3 -0
  28. 201837/wandb/run-20241217_201844-3irhkym4/files/media/videos/eval/2_eval_2_eceb31face7919d35cb1.mp4 +3 -0
  29. 201837/wandb/run-20241217_201844-3irhkym4/files/media/videos/eval/3_eval_3_95771f58d825c3736e35.mp4 +3 -0
  30. 201837/wandb/run-20241217_201844-3irhkym4/files/media/videos/eval/4_eval_4_826edd31511fa05407cc.mp4 +3 -0
  31. 201837/wandb/run-20241217_201844-3irhkym4/files/output.log +231 -0
  32. 201837/wandb/run-20241217_201844-3irhkym4/files/requirements.txt +339 -0
  33. 201837/wandb/run-20241217_201844-3irhkym4/files/wandb-metadata.json +92 -0
  34. 201837/wandb/run-20241217_201844-3irhkym4/files/wandb-summary.json +1 -0
  35. 201837/wandb/run-20241217_201844-3irhkym4/logs/debug-internal.log +0 -0
  36. 201837/wandb/run-20241217_201844-3irhkym4/logs/debug.log +31 -0
  37. 201837/wandb/run-20241217_201844-3irhkym4/run-3irhkym4.wandb +0 -0
  38. 201841/.hydra/config.yaml +350 -0
  39. 201841/.hydra/hydra.yaml +169 -0
  40. 201841/.hydra/overrides.yaml +3 -0
  41. 201841/eval_policy.log +15 -0
  42. config.yaml +546 -0
.gitattributes CHANGED
@@ -33,3 +33,18 @@ 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
+ 201837/wandb/run-20241217_201844-3irhkym4/files/media/videos/eval/2_eval_2_eceb31face7919d35cb1.mp4 filter=lfs diff=lfs merge=lfs -text
37
+ 201837/eval_video/2_eval.mp4 filter=lfs diff=lfs merge=lfs -text
38
+ 201837/eval_video/1_eval.mp4 filter=lfs diff=lfs merge=lfs -text
39
+ 201837/eval_video/4_eval.mp4 filter=lfs diff=lfs merge=lfs -text
40
+ 201837/wandb/run-20241217_201844-3irhkym4/files/media/videos/eval/4_eval_4_826edd31511fa05407cc.mp4 filter=lfs diff=lfs merge=lfs -text
41
+ 201837/wandb/run-20241217_201844-3irhkym4/files/media/videos/eval/1_eval_1_b03068849d1999348de8.mp4 filter=lfs diff=lfs merge=lfs -text
42
+ 201837/wandb/run-20241217_201844-3irhkym4/files/media/videos/eval/0_eval_0_dea50b578cd8d3a2c625.mp4 filter=lfs diff=lfs merge=lfs -text
43
+ 201837/eval_video/3_eval.mp4 filter=lfs diff=lfs merge=lfs -text
44
+ 201837/wandb/run-20241217_201844-3irhkym4/files/media/videos/eval/3_eval_3_95771f58d825c3736e35.mp4 filter=lfs diff=lfs merge=lfs -text
45
+ 201837/eval_video/0_eval.mp4 filter=lfs diff=lfs merge=lfs -text
46
+ 201837/episode_rosbags/episode_0_2024-12-17-20-20-27.bag filter=lfs diff=lfs merge=lfs -text
47
+ 201837/episode_rosbags/episode_4_2024-12-17-20-24-11.bag filter=lfs diff=lfs merge=lfs -text
48
+ 201837/episode_rosbags/episode_2_2024-12-17-20-22-50.bag filter=lfs diff=lfs merge=lfs -text
49
+ 201837/episode_rosbags/episode_1_2024-12-17-20-21-47.bag filter=lfs diff=lfs merge=lfs -text
50
+ 201837/episode_rosbags/episode_3_2024-12-17-20-23-32.bag filter=lfs diff=lfs merge=lfs -text
201837/.hydra/config.yaml ADDED
@@ -0,0 +1,350 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ root_dir: /home/${oc.env:USER}/fish_leon
2
+ nstep: 3
3
+ seed: 41
4
+ dataset_shuffle_seed: ${seed}
5
+ device: cuda
6
+ save_video: true
7
+ save_buffer: true
8
+ use_tb: true
9
+ baseline: false
10
+ use_wandb: true
11
+ eval: true
12
+ process_contact_features: ${eval}
13
+ obs_type: pixels
14
+ use_color: true
15
+ use_depth: true
16
+ use_masks: false
17
+ mask_list:
18
+ - EE_obj_mask
19
+ mask_representation: channels
20
+ crop_hw:
21
+ - 144
22
+ - 144
23
+ crop_down_offset: 48
24
+ color_crop_type: null
25
+ depth_crop_type: null
26
+ segmask_crop_type: null
27
+ add_crop_binary_mask: false
28
+ add_coord_conv_map: false
29
+ use_context_color: false
30
+ use_context_depth: false
31
+ use_context_segmask: false
32
+ context_color_crop_type: null
33
+ context_depth_crop_type: null
34
+ context_segmask_crop_type: null
35
+ context_add_crop_binary_mask: false
36
+ context_add_coord_conv_map: false
37
+ use_contact_map: false
38
+ use_sdf_maps: false
39
+ use_normals_maps: false
40
+ which_objects: both
41
+ max_contact_prob: 0.1
42
+ max_depth: 2.0
43
+ grasped_dtc_max_value: 0.105
44
+ env_dtc_max_value: 0.425
45
+ grasped_normals_mask_max_dtc_value: 0.105
46
+ env_normals_mask_max_dtc_value: 0.425
47
+ clamp_dtc: true
48
+ dtc_adaptive_normalization: false
49
+ mask_normals_within_sdf: true
50
+ adaptive_normals_mask: true
51
+ learnable_contact_preprocess_params: false
52
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_ctxt_seed_183386_epoch_9
53
+ contact_estimation_model_ckpt_path: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
54
+ num_eval: 5
55
+ debug_timestamps: false
56
+ open_loop: false
57
+ action_trajectories: true
58
+ stop_after_action: false
59
+ interpolation_frequency: 25
60
+ policy_frequency: 5
61
+ wait_for_new_camera_frames: true
62
+ random_start: false
63
+ eval_starts: ${root_dir}/FISH/eval_starts/${suite.name}_${obs_type}/${task_name}
64
+ train_demo_idxs_list_or_num: null
65
+ num_valid_demos: null
66
+ val_num_groups: 3
67
+ name_of_expert_demo: 112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
68
+ expert_dataset_dirpath: ${root_dir}/FISH/expert_demos/${suite.name}/${task_name}/${name_of_expert_demo}
69
+ expert_dataset: ${expert_dataset_dirpath}/demos.zarr
70
+ action_key: ${oc.if_else:${action_trajectories}, 'action_trajectory_${interpolation_frequency}hz',
71
+ 'action'}
72
+ semantic_demo_grouping_name: semantic_demo_grouping.yaml
73
+ semantic_demo_grouping: ${expert_dataset_dirpath}/${semantic_demo_grouping_name}
74
+ expert_dataset_config: ${expert_dataset_dirpath}/demo_config.yaml
75
+ bc_regularize: false
76
+ bc_weight_type: qfilter
77
+ load_checkpoint: ${agent.load_checkpoint}
78
+ wandb_run_id: '497_0'
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
+ final_experiment_dir: ${experiment_dir}/${now:%H%M%S}
88
+ agent:
89
+ _target_: agent.diffusion_policy.DiffusionPolicyAgent
90
+ name: diffusion_policy
91
+ load_checkpoint: ${eval}
92
+ device: ${device}
93
+ n_obs_steps: ${.config.policy_cfg.n_obs_steps}
94
+ suite_name: ${suite.name}
95
+ obs_type: ${obs_type}
96
+ enable_arm: ${eval}
97
+ enable_camera: ${eval}
98
+ use_tb: ${use_tb}
99
+ desired_image_shape:
100
+ - 13
101
+ - 180
102
+ - 240
103
+ orig_cam_shape:
104
+ - 3
105
+ - 240
106
+ - 320
107
+ config:
108
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
109
+ compile: false
110
+ device: ${device}
111
+ cam_resize_shape: ${agent.desired_image_shape}
112
+ orig_cam_shape: ${agent.orig_cam_shape}
113
+ policy_frequency: ${policy_frequency}
114
+ interpolation_frequency: ${interpolation_frequency}
115
+ policy_cfg:
116
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
117
+ n_obs_steps: 1
118
+ horizon: 36
119
+ n_action_steps: ${agent.config.policy_cfg.horizon}
120
+ input_shapes:
121
+ observation.image: ${agent.config.cam_resize_shape}
122
+ context_observation.image: ${agent.config.cam_resize_shape}
123
+ observation.state:
124
+ - 8
125
+ observation.action_history:
126
+ - 7
127
+ output_shapes:
128
+ action:
129
+ - 7
130
+ input_normalization_modes:
131
+ observation.image: mean_std
132
+ observation.state: min_max
133
+ observation.action_history: min_max
134
+ output_normalization_modes:
135
+ action: min_max
136
+ vision_backbone: resnet18
137
+ pretrained_backbone_weights: null
138
+ transforms:
139
+ - _target_: torchaug.transforms.RandomAffine
140
+ degrees:
141
+ - -5
142
+ - 5
143
+ translate:
144
+ - 0.05
145
+ - 0.05
146
+ batch_transform: true
147
+ num_chunks: -1
148
+ batch_inplace: true
149
+ - _target_: torchaug.transforms.RandomColorJitter
150
+ brightness: 0.3
151
+ contrast: 0.4
152
+ saturation: 0.5
153
+ hue: 0.08
154
+ batch_transform: true
155
+ num_chunks: -1
156
+ batch_inplace: true
157
+ use_group_norm: true
158
+ spatial_softmax_num_keypoints: 32
159
+ action_history_encoder_config:
160
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
161
+ in_channels: 7
162
+ out_channels: 32
163
+ history_length: ${agent.config.policy_cfg.n_action_steps}
164
+ kernel_size: ${agent.config.policy_cfg.kernel_size}
165
+ downsample_kernel_size: 3
166
+ downsample_stride: 2
167
+ downsample_padding: 1
168
+ down_dims:
169
+ - 256
170
+ - 512
171
+ - 1024
172
+ kernel_size: 5
173
+ n_groups: 8
174
+ diffusion_step_embed_dim: 128
175
+ use_film_scale_modulation: true
176
+ noise_scheduler_type: DDIM
177
+ beta_schedule: squaredcos_cap_v2
178
+ beta_start: 0.0001
179
+ beta_end: 0.02
180
+ prediction_type: epsilon
181
+ clip_sample: true
182
+ clip_sample_range: 1.0
183
+ num_train_timesteps: 50
184
+ num_inference_steps: 10
185
+ do_mask_loss_for_padding: false
186
+ train_cfg:
187
+ _target_: utils.TrainConfig
188
+ lr: 0.0001
189
+ lr_scheduler: cosine
190
+ lr_warmup_steps: 500
191
+ adam_betas:
192
+ - 0.95
193
+ - 0.999
194
+ adam_eps: 1.0e-08
195
+ adam_weight_decay: 1.0e-06
196
+ grad_clip_norm: 10
197
+ offline_steps: ${num_train_frames_diffusion}
198
+ use_amp: true
199
+ observation_cfg:
200
+ _target_: agent.encoder.VisualFeatureSet
201
+ use_depth: ${use_depth}
202
+ use_color: ${use_color}
203
+ mask_input_dict:
204
+ _target_: agent.encoder.MaskInputDict
205
+ enable: ${use_masks}
206
+ representation: ${mask_representation}
207
+ mask_list: ${mask_list}
208
+ crop_input_config:
209
+ _target_: agent.encoder.CropInputConfig
210
+ color_crop_type: ${color_crop_type}
211
+ depth_crop_type: ${depth_crop_type}
212
+ segmask_crop_type: ${segmask_crop_type}
213
+ crop_hw: ${crop_hw}
214
+ crop_down_offset: ${crop_down_offset}
215
+ add_crop_binary_mask: ${add_crop_binary_mask}
216
+ add_coord_conv_map: ${add_coord_conv_map}
217
+ context_input_config:
218
+ _target_: agent.encoder.ContextInputConfig
219
+ use_color: ${use_context_color}
220
+ use_depth: ${use_context_depth}
221
+ mask_input_dict:
222
+ _target_: agent.encoder.MaskInputDict
223
+ enable: ${use_context_segmask}
224
+ representation: ${mask_representation}
225
+ mask_list: ${mask_list}
226
+ crop_input_config:
227
+ _target_: agent.encoder.CropInputConfig
228
+ color_crop_type: ${context_color_crop_type}
229
+ depth_crop_type: ${context_depth_crop_type}
230
+ segmask_crop_type: ${context_segmask_crop_type}
231
+ crop_hw: ${crop_hw}
232
+ crop_down_offset: ${crop_down_offset}
233
+ add_crop_binary_mask: ${context_add_crop_binary_mask}
234
+ add_coord_conv_map: ${context_add_coord_conv_map}
235
+ mask_soft_approx_scheduler_config:
236
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
237
+ num_steps: 40000
238
+ initial_value: 10.0
239
+ final_value: 1000.0
240
+ interpolation_scheme: constant
241
+ use_contact_map: ${use_contact_map}
242
+ use_sdf_maps: ${use_sdf_maps}
243
+ use_normals_maps: ${use_normals_maps}
244
+ which_objects: ${which_objects}
245
+ grasped_dtc_max_value: ${grasped_dtc_max_value}
246
+ env_dtc_max_value: ${env_dtc_max_value}
247
+ grasped_normals_mask_max_dtc_value: ${grasped_normals_mask_max_dtc_value}
248
+ env_normals_mask_max_dtc_value: ${env_normals_mask_max_dtc_value}
249
+ clamp_dtc: ${clamp_dtc}
250
+ max_contact_prob: ${max_contact_prob}
251
+ mask_normals_within_sdf: ${mask_normals_within_sdf}
252
+ dtc_adaptive_normalization: ${dtc_adaptive_normalization}
253
+ adaptive_normals_mask: ${adaptive_normals_mask}
254
+ max_depth: ${max_depth}
255
+ image_shape: ${agent.desired_image_shape}
256
+ learnable_contact_preprocess_params: ${learnable_contact_preprocess_params}
257
+ learning_rate: ${agent.config.train_cfg.lr}
258
+ weight_decay: 0.0
259
+ contact_model_name: ${contact_model_name}
260
+ zero_centered: false
261
+ suite:
262
+ suite: frankagym
263
+ name: frankagym
264
+ frame_stack: ${agent.n_obs_steps}
265
+ action_repeat: 1
266
+ discount: 0.99
267
+ hidden_dim: 1024
268
+ num_train_frames: 2010
269
+ num_seed_frames: 260
270
+ num_train_epochs: 5000
271
+ validate_every_epochs: 100
272
+ validate_diffusion_on_action_loss_every_epochs: 500
273
+ train_eval_diffusion_on_action_loss_every_epochs: 500
274
+ check_topk_every_epochs: 10
275
+ save_snapshot_every_epochs: 5000
276
+ eval_every_frames: 2000
277
+ num_eval_episodes: 5
278
+ save_snapshot: true
279
+ wait_for_user_to_start_episode: true
280
+ task_make_fn:
281
+ _target_: suite.frankagym.make
282
+ name: ${task_name}
283
+ height: 240
284
+ width: 320
285
+ frame_stack: ${suite.frame_stack}
286
+ action_repeat: ${suite.action_repeat}
287
+ seed: ${seed}
288
+ enable_arm: ${agent.enable_arm}
289
+ enable_gripper: ${enable_gripper}
290
+ start_with_gripper_open: ${start_with_gripper_open}
291
+ enable_camera: ${agent.enable_camera}
292
+ path_to_depth_extrinsics: ${path_to_depth_extrinsics}
293
+ contact_estimation_model_ckpt_path: ${contact_estimation_model_ckpt_path}
294
+ x_limit: ${x_limit}
295
+ y_limit: ${y_limit}
296
+ z_limit: ${z_limit}
297
+ device: ${device}
298
+ interpolation_frequency: ${interpolation_frequency}
299
+ policy_frequency: ${policy_frequency}
300
+ debug_timestamps: ${debug_timestamps}
301
+ stop_after_action: ${stop_after_action}
302
+ open_loop: ${open_loop}
303
+ wait_for_new_camera_frames: ${wait_for_new_camera_frames}
304
+ action_key: ${action_key}
305
+ action_trajectory_horizon: ${agent.config.policy_cfg.horizon}
306
+ action_trajectories: ${action_trajectories}
307
+ path_to_zarr_dataset: ${expert_dataset}
308
+ agent_policy_cfg: ???
309
+ true_action_history: ${true_action_history}
310
+ num_train_frames_bc: 50000
311
+ num_train_frames_drq: 1100000
312
+ stddev_schedule_drq: linear(1.0,0.1,100000)
313
+ task_name: FrankaInsertion-v1
314
+ num_train_frames_vinn: 25000
315
+ num_train_frames_diffusion: 1000000
316
+ num_train_epochs_bc: 5000
317
+ num_train_epochs_diffusion: 5000
318
+ validate_every_epochs_bc: 5
319
+ validate_every_epochs_diffusion: 25
320
+ validate_diffusion_on_action_loss_every_epochs: 50
321
+ train_eval_diffusion_on_action_loss_every_epochs: 500
322
+ check_topk_every_epochs: 5
323
+ check_topk_every_epochs_diffusion: ${validate_diffusion_on_action_loss_every_epochs}
324
+ save_snapshot_every_epochs_diffusion: 5000
325
+ x_limit:
326
+ - 0.2
327
+ - 0.7
328
+ y_limit:
329
+ - -0.4
330
+ - 0.4
331
+ z_limit:
332
+ - -0.05
333
+ - 0.55
334
+ home_displacement:
335
+ - 0.55
336
+ - 0.0
337
+ - 0.55
338
+ - 180.0
339
+ - 0.0
340
+ - 0.0
341
+ enable_gripper: true
342
+ start_with_gripper_open: true
343
+ offset_mask:
344
+ - 1
345
+ - 1
346
+ - 1
347
+ - 1
348
+ - 1
349
+ - 1
350
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
201837/.hydra/hydra.yaml ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: ${final_experiment_dir}
4
+ sweep:
5
+ dir: ${final_experiment_dir}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ submitit_folder: ${final_experiment_dir}/.slurm
9
+ timeout_min: 60
10
+ cpus_per_task: null
11
+ gpus_per_node: null
12
+ tasks_per_node: 1
13
+ mem_gb: null
14
+ nodes: 1
15
+ name: ${hydra.job.name}
16
+ stderr_to_stdout: false
17
+ _target_: hydra_plugins.hydra_submitit_launcher.submitit_launcher.LocalLauncher
18
+ sweeper:
19
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
20
+ max_batch_size: null
21
+ params: null
22
+ help:
23
+ app_name: ${hydra.job.name}
24
+ header: '${hydra.help.app_name} is powered by Hydra.
25
+
26
+ '
27
+ footer: 'Powered by Hydra (https://hydra.cc)
28
+
29
+ Use --hydra-help to view Hydra specific help
30
+
31
+ '
32
+ template: '${hydra.help.header}
33
+
34
+ == Configuration groups ==
35
+
36
+ Compose your configuration from those groups (group=option)
37
+
38
+
39
+ $APP_CONFIG_GROUPS
40
+
41
+
42
+ == Config ==
43
+
44
+ Override anything in the config (foo.bar=value)
45
+
46
+
47
+ $CONFIG
48
+
49
+
50
+ ${hydra.help.footer}
51
+
52
+ '
53
+ hydra_help:
54
+ template: 'Hydra (${hydra.runtime.version})
55
+
56
+ See https://hydra.cc for more info.
57
+
58
+
59
+ == Flags ==
60
+
61
+ $FLAGS_HELP
62
+
63
+
64
+ == Configuration groups ==
65
+
66
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
67
+ to command line)
68
+
69
+
70
+ $HYDRA_CONFIG_GROUPS
71
+
72
+
73
+ Use ''--cfg hydra'' to Show the Hydra config.
74
+
75
+ '
76
+ hydra_help: ???
77
+ hydra_logging:
78
+ version: 1
79
+ formatters:
80
+ simple:
81
+ format: '[%(asctime)s][HYDRA] %(message)s'
82
+ handlers:
83
+ console:
84
+ class: logging.StreamHandler
85
+ formatter: simple
86
+ stream: ext://sys.stdout
87
+ root:
88
+ level: INFO
89
+ handlers:
90
+ - console
91
+ loggers:
92
+ logging_example:
93
+ level: DEBUG
94
+ disable_existing_loggers: false
95
+ job_logging:
96
+ version: 1
97
+ formatters:
98
+ simple:
99
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
100
+ handlers:
101
+ console:
102
+ class: logging.StreamHandler
103
+ formatter: simple
104
+ stream: ext://sys.stdout
105
+ file:
106
+ class: logging.FileHandler
107
+ formatter: simple
108
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
109
+ root:
110
+ level: INFO
111
+ handlers:
112
+ - console
113
+ - file
114
+ disable_existing_loggers: false
115
+ env: {}
116
+ mode: RUN
117
+ searchpath: []
118
+ callbacks: {}
119
+ output_subdir: .hydra
120
+ overrides:
121
+ hydra:
122
+ - hydra.mode=RUN
123
+ task:
124
+ - agent=diffusion
125
+ - suite=frankagym
126
+ - suite/frankagym_task@_global_=insertion
127
+ job:
128
+ name: eval_robot
129
+ chdir: true
130
+ override_dirname: agent=diffusion,suite/frankagym_task@_global_=insertion,suite=frankagym
131
+ id: ???
132
+ num: ???
133
+ config_name: config_eval
134
+ env_set: {}
135
+ env_copy: []
136
+ config:
137
+ override_dirname:
138
+ kv_sep: '='
139
+ item_sep: ','
140
+ exclude_keys: []
141
+ runtime:
142
+ version: 1.3.2
143
+ version_base: '1.1'
144
+ cwd: /home/leonmkim/fish_leon/FISH
145
+ config_sources:
146
+ - path: hydra.conf
147
+ schema: pkg
148
+ provider: hydra
149
+ - path: /home/leonmkim/fish_leon/FISH/cfgs
150
+ schema: file
151
+ provider: main
152
+ - path: ''
153
+ schema: structured
154
+ provider: schema
155
+ output_dir: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837
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
201837/.hydra/overrides.yaml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ - agent=diffusion
2
+ - suite=frankagym
3
+ - suite/frankagym_task@_global_=insertion
201837/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
201837/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
201837/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
201837/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
201837/episode_rosbags/episode_0_2024-12-17-20-20-27.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:72641c3305918ebfef7b3878da8c92a57752dfaf432ec577c843c5511e3800e5
3
+ size 1330118343
201837/episode_rosbags/episode_1_2024-12-17-20-21-47.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8faf985ecfe3494b12a7008353b3c661a309805b75d9a4895fdc1dead375ade2
3
+ size 1331572313
201837/episode_rosbags/episode_2_2024-12-17-20-22-50.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:25fd5f3dec30bec3ac5659441930b062a4555f7ccb1f483f5f56c831e4c3b9d3
3
+ size 1329588968
201837/episode_rosbags/episode_3_2024-12-17-20-23-32.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:223912b470ca00df86fa5132cb25630d7f1b7345ecdcbc5b8a5b623e0d413260
3
+ size 1334587423
201837/episode_rosbags/episode_4_2024-12-17-20-24-11.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d2d31da2f592c6d2456462baeeb21c81c67b4e4e70bc6f7d3d6386a87a6879d8
3
+ size 1328314562
201837/eval_robot.log ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [2024-12-17 20:18:37,121][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-17 20:18:37,124][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
+
201837/eval_video/0_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dea50b578cd8d3a2c6254112afbcdb9c2d9dc9bd31684d2e1bc823cce1b48d5d
3
+ size 1132502
201837/eval_video/1_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b03068849d1999348de8fc0b571ed701037f147e737a9786498a363caba34117
3
+ size 1129817
201837/eval_video/2_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:eceb31face7919d35cb19ad3bc1cd876ef6be569c61506515d6442f1681cb643
3
+ size 1129899
201837/eval_video/3_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:95771f58d825c3736e354f2c8518e116e86477e5e99ef74f90c2d6cbe4fe4b5f
3
+ size 1121711
201837/eval_video/4_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:826edd31511fa05407cc33c74e4d66ef962fe09faa1bb10951b49828909ed245
3
+ size 1135337
201837/tb/events.out.tfevents.1734484724.leonmkim-ROG-Strix-G15CS-G15CS.60829.0 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:52d577cf04cf169d220e11a8535b1c6db34fb81483d3b6a0cd6c763fb7955308
3
+ size 1103
201837/wandb/debug-internal.log ADDED
The diff for this file is too large to render. See raw diff
 
201837/wandb/debug.log ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_setup.py:_flush():76] Current SDK version is 0.17.5
2
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_setup.py:_flush():76] Configure stats pid to 60829
3
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/.config/wandb/settings
4
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837/wandb/settings
5
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_setup.py:_flush():76] Loading settings from environment variables: {}
6
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_setup.py:_flush():76] Applying setup settings: {'_disable_service': False}
7
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [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-17 20:18:44,042 INFO MainThread:60829 [wandb_setup.py:_flush():76] Applying login settings: {}
9
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_init.py:_log_setup():529] Logging user logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837/wandb/run-20241217_201844-3irhkym4/logs/debug.log
10
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_init.py:_log_setup():530] Logging internal logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837/wandb/run-20241217_201844-3irhkym4/logs/debug-internal.log
11
+ 2024-12-17 20:18:44,043 INFO MainThread:60829 [wandb_init.py:init():569] calling init triggers
12
+ 2024-12-17 20:18:44,043 INFO MainThread:60829 [wandb_init.py:init():576] wandb.init called with sweep_config: {}
13
+ config: {'root_dir': '/home/leonmkim/fish_leon', 'replay_buffer_size': 150000, 'replay_buffer_num_workers': 2, 'nstep': 3, 'batch_size': 128, 'seed': 0, 'dataset_shuffle_seed': 0, 'device': 'cuda', 'save_video': True, 'save_train_video': True, 'use_tb': True, 'use_wandb': True, 'wandb_run_id': '497_0', 'wandb_notes': '497_0_req_580_0', 'eval': True, 'true_action_history': False, 'process_contact_features': True, 'obs_type': 'pixels', 'use_color': True, 'use_depth': True, 'use_masks': False, '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': False, 'use_sdf_maps': False, 'use_normals_maps': False, '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': '112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'expert_dataset_dirpath': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'store_dataset_in_memory': False, 'expert_dataset': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'action_key': 'action_trajectory_25hz', 'semantic_demo_grouping_name': 'semantic_demo_grouping.yaml', 'semantic_demo_grouping': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml', 'include_groups_list': ['german_twodim'], 'expert_dataset_config': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demo_config.yaml', 'name_of_valid_demo': '112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'valid_dataset_dir': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'valid_demo_idxs_list_or_num': None, 'val_num_groups': 0, '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/kostas-graid/datasets/extrinsic_contact_data/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/497_0', 'agent': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgent', 'name': 'diffusion_policy', 'load_checkpoint': True, 'device': 'cuda', 'n_obs_steps': 1, 'suite_name': 'frankagym', 'obs_type': 'pixels', 'enable_arm': True, 'enable_camera': True, 'use_tb': True, 'desired_image_shape': [13, 180, 240], 'orig_cam_shape': [3, 240, 320], 'config': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgentConfig', 'compile': False, 'device': 'cuda', 'cam_resize_shape': [13, 180, 240], 'orig_cam_shape': [3, 240, 320], 'policy_frequency': 5, 'interpolation_frequency': 25, 'policy_cfg': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig', 'n_obs_steps': 1, 'horizon': 36, 'n_action_steps': 36, 'output_shapes': {'action': [7]}, 'input_normalization_modes': {'observation.image': 'mean_std', 'observation.state': 'min_max', 'observation.action_history': 'min_max'}, 'output_normalization_modes': {'action': 'min_max'}, 'vision_backbone': 'resnet18', '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': 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}, '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': False, 'use_sdf_maps': False, 'use_normals_maps': False, '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}}}, '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/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'agent_policy_cfg': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgentConfig', 'compile': False, 'device': 'cuda', 'cam_resize_shape': [13, 180, 240], 'orig_cam_shape': [3, 240, 320], 'policy_frequency': 5, 'interpolation_frequency': 25, 'policy_cfg': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig', 'n_obs_steps': 1, 'horizon': 36, 'n_action_steps': 36, 'output_shapes': {'action': [7]}, 'input_normalization_modes': {'observation.image': 'mean_std', 'observation.state': 'min_max', 'observation.action_history': 'min_max'}, 'output_normalization_modes': {'action': 'min_max'}, 'vision_backbone': 'resnet18', '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': 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}, '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': False, 'use_sdf_maps': False, 'use_normals_maps': False, '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}}, '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_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, '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/497_0', 'residual_weight': '/home/leonmkim/fish_leon/FISH/weights/frankagym_pixels/FrankaInsertion-v1/weight.pt', 'final_experiment_dir': './exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837'}
14
+ 2024-12-17 20:18:44,043 INFO MainThread:60829 [wandb_init.py:init():619] starting backend
15
+ 2024-12-17 20:18:44,043 INFO MainThread:60829 [wandb_init.py:init():623] setting up manager
16
+ 2024-12-17 20:18:44,050 INFO MainThread:60829 [backend.py:_multiprocessing_setup():105] multiprocessing start_methods=fork,spawn,forkserver, using: spawn
17
+ 2024-12-17 20:18:44,052 INFO MainThread:60829 [wandb_init.py:init():631] backend started and connected
18
+ 2024-12-17 20:18:44,065 INFO MainThread:60829 [wandb_init.py:init():720] updated telemetry
19
+ 2024-12-17 20:18:44,072 INFO MainThread:60829 [wandb_init.py:init():753] communicating run to backend with 90.0 second timeout
20
+ 2024-12-17 20:18:44,360 INFO MainThread:60829 [wandb_run.py:_on_init():2435] communicating current version
21
+ 2024-12-17 20:18:44,409 INFO MainThread:60829 [wandb_run.py:_on_init():2444] got version response upgrade_message: "wandb version 0.19.1 is available! To upgrade, please run:\n $ pip install wandb --upgrade"
22
+
23
+ 2024-12-17 20:18:44,409 INFO MainThread:60829 [wandb_init.py:init():804] starting run threads in backend
24
+ 2024-12-17 20:18:44,794 INFO MainThread:60829 [wandb_run.py:_console_start():2413] atexit reg
25
+ 2024-12-17 20:18:44,794 INFO MainThread:60829 [wandb_run.py:_redirect():2255] redirect: wrap_raw
26
+ 2024-12-17 20:18:44,794 INFO MainThread:60829 [wandb_run.py:_redirect():2320] Wrapping output streams.
27
+ 2024-12-17 20:18:44,794 INFO MainThread:60829 [wandb_run.py:_redirect():2345] Redirects installed.
28
+ 2024-12-17 20:18:44,796 INFO MainThread:60829 [wandb_init.py:init():847] run started, returning control to user process
29
+ 2024-12-17 20:18:44,796 INFO MainThread:60829 [wandb_run.py:_tensorboard_callback():1544] tensorboard callback: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837/tb, True
30
+ 2024-12-17 20:18:50,418 INFO MainThread:60829 [wandb_run.py:_config_callback():1382] config_cb None None {'grasped_obj_name': 'german', 'left_book_slot': 'twodim'}
31
+ 2024-12-17 20:24:59,241 WARNING MsgRouterThr:60829 [router.py:message_loop():77] message_loop has been closed
201837/wandb/run-20241217_201844-3irhkym4/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()
201837/wandb/run-20241217_201844-3irhkym4/files/config.yaml ADDED
@@ -0,0 +1,891 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ wandb_version: 1
2
+
3
+ root_dir:
4
+ desc: null
5
+ value: /home/leonmkim/fish_leon
6
+ replay_buffer_size:
7
+ desc: null
8
+ value: 150000
9
+ replay_buffer_num_workers:
10
+ desc: null
11
+ value: 2
12
+ nstep:
13
+ desc: null
14
+ value: 3
15
+ batch_size:
16
+ desc: null
17
+ value: 128
18
+ seed:
19
+ desc: null
20
+ value: 0
21
+ dataset_shuffle_seed:
22
+ desc: null
23
+ value: 0
24
+ device:
25
+ desc: null
26
+ value: cuda
27
+ save_video:
28
+ desc: null
29
+ value: true
30
+ save_train_video:
31
+ desc: null
32
+ value: true
33
+ use_tb:
34
+ desc: null
35
+ value: true
36
+ use_wandb:
37
+ desc: null
38
+ value: true
39
+ wandb_run_id:
40
+ desc: null
41
+ value: '497_0'
42
+ wandb_notes:
43
+ desc: null
44
+ value: 497_0_req_580_0
45
+ eval:
46
+ desc: null
47
+ value: true
48
+ true_action_history:
49
+ desc: null
50
+ value: false
51
+ process_contact_features:
52
+ desc: null
53
+ value: true
54
+ obs_type:
55
+ desc: null
56
+ value: pixels
57
+ use_color:
58
+ desc: null
59
+ value: true
60
+ use_depth:
61
+ desc: null
62
+ value: true
63
+ use_masks:
64
+ desc: null
65
+ value: false
66
+ mask_list:
67
+ desc: null
68
+ value:
69
+ - EE_obj_mask
70
+ mask_representation:
71
+ desc: null
72
+ value: channels
73
+ crop_hw:
74
+ desc: null
75
+ value:
76
+ - 144
77
+ - 144
78
+ crop_down_offset:
79
+ desc: null
80
+ value: 48
81
+ color_crop_type:
82
+ desc: null
83
+ value: null
84
+ depth_crop_type:
85
+ desc: null
86
+ value: null
87
+ segmask_crop_type:
88
+ desc: null
89
+ value: null
90
+ add_crop_binary_mask:
91
+ desc: null
92
+ value: false
93
+ add_coord_conv_map:
94
+ desc: null
95
+ value: false
96
+ use_context_color:
97
+ desc: null
98
+ value: false
99
+ use_context_depth:
100
+ desc: null
101
+ value: false
102
+ use_context_segmask:
103
+ desc: null
104
+ value: false
105
+ context_color_crop_type:
106
+ desc: null
107
+ value: null
108
+ context_depth_crop_type:
109
+ desc: null
110
+ value: null
111
+ context_segmask_crop_type:
112
+ desc: null
113
+ value: null
114
+ context_add_crop_binary_mask:
115
+ desc: null
116
+ value: false
117
+ context_add_coord_conv_map:
118
+ desc: null
119
+ value: false
120
+ use_contact_map:
121
+ desc: null
122
+ value: false
123
+ use_sdf_maps:
124
+ desc: null
125
+ value: false
126
+ use_normals_maps:
127
+ desc: null
128
+ value: false
129
+ which_objects:
130
+ desc: null
131
+ value: both
132
+ max_contact_prob:
133
+ desc: null
134
+ value: 0.1
135
+ max_depth:
136
+ desc: null
137
+ value: 2.0
138
+ grasped_dtc_max_value:
139
+ desc: null
140
+ value: 0.2
141
+ env_dtc_max_value:
142
+ desc: null
143
+ value: 0.4
144
+ grasped_normals_mask_max_dtc_value:
145
+ desc: null
146
+ value: 0.2
147
+ env_normals_mask_max_dtc_value:
148
+ desc: null
149
+ value: 0.4
150
+ clamp_dtc:
151
+ desc: null
152
+ value: true
153
+ dtc_adaptive_normalization:
154
+ desc: null
155
+ value: false
156
+ mask_normals_within_sdf:
157
+ desc: null
158
+ value: true
159
+ adaptive_normals_mask:
160
+ desc: null
161
+ value: true
162
+ learnable_contact_preprocess_params:
163
+ desc: null
164
+ value: true
165
+ contact_model_name:
166
+ desc: null
167
+ value: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
168
+ contact_estimation_model_ckpt_path:
169
+ desc: null
170
+ value: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
171
+ encoder_type:
172
+ desc: null
173
+ value: small
174
+ debug_timestamps:
175
+ desc: null
176
+ value: false
177
+ open_loop:
178
+ desc: null
179
+ value: false
180
+ action_trajectories:
181
+ desc: null
182
+ value: true
183
+ stop_after_action:
184
+ desc: null
185
+ value: false
186
+ interpolation_frequency:
187
+ desc: null
188
+ value: 25
189
+ policy_frequency:
190
+ desc: null
191
+ value: 5
192
+ wait_for_new_camera_frames:
193
+ desc: null
194
+ value: true
195
+ baseline:
196
+ desc: null
197
+ value: false
198
+ train_demo_idxs_list_or_num:
199
+ desc: null
200
+ value: -1
201
+ log_train_every_steps:
202
+ desc: null
203
+ value: 25
204
+ name_of_expert_demo:
205
+ desc: null
206
+ value: 112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
207
+ expert_dataset_dirpath:
208
+ desc: null
209
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
210
+ store_dataset_in_memory:
211
+ desc: null
212
+ value: false
213
+ expert_dataset:
214
+ desc: null
215
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr
216
+ action_key:
217
+ desc: null
218
+ value: action_trajectory_25hz
219
+ semantic_demo_grouping_name:
220
+ desc: null
221
+ value: semantic_demo_grouping.yaml
222
+ semantic_demo_grouping:
223
+ desc: null
224
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml
225
+ include_groups_list:
226
+ desc: null
227
+ value:
228
+ - german_twodim
229
+ expert_dataset_config:
230
+ desc: null
231
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demo_config.yaml
232
+ name_of_valid_demo:
233
+ desc: null
234
+ value: 112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
235
+ valid_dataset_dir:
236
+ desc: null
237
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr
238
+ valid_demo_idxs_list_or_num:
239
+ desc: null
240
+ value: null
241
+ val_num_groups:
242
+ desc: null
243
+ value: 0
244
+ load_bc:
245
+ desc: null
246
+ value: true
247
+ checkpoint_epoch_list:
248
+ desc: null
249
+ value:
250
+ - 99
251
+ - 199
252
+ - 299
253
+ - 399
254
+ - 499
255
+ - 599
256
+ - 699
257
+ - 799
258
+ - 899
259
+ - 999
260
+ - 1249
261
+ - 1499
262
+ - 1749
263
+ - 1999
264
+ - 2999
265
+ - 3999
266
+ - 4999
267
+ - 5999
268
+ - 6999
269
+ - 7999
270
+ - 8999
271
+ - 9999
272
+ snapshot_root_dir:
273
+ desc: null
274
+ value: /mnt/kostas-graid/datasets/extrinsic_contact_data/FISH
275
+ save_snapshot:
276
+ desc: null
277
+ value: true
278
+ save_last_snapshot:
279
+ desc: null
280
+ value: true
281
+ save_snapshot_when_done:
282
+ desc: null
283
+ value: true
284
+ top_k_checkpoints:
285
+ desc: null
286
+ value: 5
287
+ save_snapshot_link_to_weights_dir:
288
+ desc: null
289
+ value: deprecated
290
+ bc_regularize:
291
+ desc: null
292
+ value: false
293
+ bc_weight_type:
294
+ desc: null
295
+ value: qfilter
296
+ experiment_dir:
297
+ desc: null
298
+ value: ./exp_local/frankagym_pixels/FrankaInsertion-v1/497_0
299
+ agent:
300
+ desc: null
301
+ value:
302
+ _target_: agent.diffusion_policy.DiffusionPolicyAgent
303
+ name: diffusion_policy
304
+ load_checkpoint: true
305
+ device: cuda
306
+ n_obs_steps: 1
307
+ suite_name: frankagym
308
+ obs_type: pixels
309
+ enable_arm: true
310
+ enable_camera: true
311
+ use_tb: true
312
+ desired_image_shape:
313
+ - 13
314
+ - 180
315
+ - 240
316
+ orig_cam_shape:
317
+ - 3
318
+ - 240
319
+ - 320
320
+ config:
321
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
322
+ compile: false
323
+ device: cuda
324
+ cam_resize_shape:
325
+ - 13
326
+ - 180
327
+ - 240
328
+ orig_cam_shape:
329
+ - 3
330
+ - 240
331
+ - 320
332
+ policy_frequency: 5
333
+ interpolation_frequency: 25
334
+ policy_cfg:
335
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
336
+ n_obs_steps: 1
337
+ horizon: 36
338
+ n_action_steps: 36
339
+ output_shapes:
340
+ action:
341
+ - 7
342
+ input_normalization_modes:
343
+ observation.image: mean_std
344
+ observation.state: min_max
345
+ observation.action_history: min_max
346
+ output_normalization_modes:
347
+ action: min_max
348
+ vision_backbone: resnet18
349
+ pretrained_backbone_weights: null
350
+ transforms:
351
+ - _target_: torchaug.transforms.RandomAffine
352
+ degrees:
353
+ - -5
354
+ - 5
355
+ translate:
356
+ - 0.05
357
+ - 0.05
358
+ batch_transform: true
359
+ num_chunks: -1
360
+ batch_inplace: true
361
+ - _target_: torchaug.transforms.RandomColorJitter
362
+ brightness: 0.3
363
+ contrast: 0.4
364
+ saturation: 0.5
365
+ hue: 0.08
366
+ batch_transform: true
367
+ num_chunks: -1
368
+ batch_inplace: true
369
+ use_group_norm: true
370
+ spatial_softmax_num_keypoints: 32
371
+ action_history_encoder_config:
372
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
373
+ in_channels: 7
374
+ out_channels: 32
375
+ history_length: 6
376
+ kernel_size: 5
377
+ downsample_kernel_size: 3
378
+ downsample_stride: 2
379
+ downsample_padding: 1
380
+ down_dims:
381
+ - 256
382
+ - 512
383
+ - 1024
384
+ kernel_size: 5
385
+ n_groups: 8
386
+ diffusion_step_embed_dim: 128
387
+ use_film_scale_modulation: true
388
+ noise_scheduler_type: DDIM
389
+ beta_schedule: squaredcos_cap_v2
390
+ beta_start: 0.0001
391
+ beta_end: 0.02
392
+ prediction_type: epsilon
393
+ clip_sample: true
394
+ clip_sample_range: 1.0
395
+ num_train_timesteps: 50
396
+ num_inference_steps: 10
397
+ do_mask_loss_for_padding: false
398
+ input_shapes:
399
+ observation.image:
400
+ - 13
401
+ - 180
402
+ - 240
403
+ context_observation.image:
404
+ - 13
405
+ - 180
406
+ - 240
407
+ observation.state:
408
+ - 8
409
+ observation.action_history:
410
+ - 7
411
+ train_cfg:
412
+ _target_: utils.TrainConfig
413
+ lr: 0.0001
414
+ lr_scheduler: cosine
415
+ lr_warmup_steps: 500
416
+ adam_betas:
417
+ - 0.95
418
+ - 0.999
419
+ adam_eps: 1.0e-08
420
+ adam_weight_decay: 1.0e-06
421
+ grad_clip_norm: 10
422
+ offline_steps: 1000000
423
+ use_amp: true
424
+ observation_cfg:
425
+ _target_: agent.encoder.VisualFeatureSet
426
+ use_depth: true
427
+ use_color: true
428
+ mask_input_dict:
429
+ _target_: agent.encoder.MaskInputDict
430
+ enable: false
431
+ representation: channels
432
+ mask_list:
433
+ - EE_obj_mask
434
+ crop_input_config:
435
+ _target_: agent.encoder.CropInputConfig
436
+ color_crop_type: null
437
+ depth_crop_type: null
438
+ segmask_crop_type: null
439
+ crop_hw:
440
+ - 144
441
+ - 144
442
+ crop_down_offset: 48
443
+ add_crop_binary_mask: false
444
+ add_coord_conv_map: false
445
+ context_input_config:
446
+ _target_: agent.encoder.ContextInputConfig
447
+ use_color: false
448
+ use_depth: false
449
+ mask_input_dict:
450
+ _target_: agent.encoder.MaskInputDict
451
+ enable: false
452
+ representation: channels
453
+ mask_list:
454
+ - EE_obj_mask
455
+ crop_input_config:
456
+ _target_: agent.encoder.CropInputConfig
457
+ color_crop_type: null
458
+ depth_crop_type: null
459
+ segmask_crop_type: null
460
+ crop_hw:
461
+ - 144
462
+ - 144
463
+ crop_down_offset: 48
464
+ add_crop_binary_mask: false
465
+ add_coord_conv_map: false
466
+ mask_soft_approx_scheduler_config:
467
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
468
+ num_steps: 40000
469
+ initial_value: 10.0
470
+ final_value: 1000.0
471
+ interpolation_scheme: cosine
472
+ use_contact_map: false
473
+ use_sdf_maps: false
474
+ use_normals_maps: false
475
+ which_objects: both
476
+ grasped_dtc_max_value: 0.2
477
+ env_dtc_max_value: 0.4
478
+ grasped_normals_mask_max_dtc_value: 0.2
479
+ env_normals_mask_max_dtc_value: 0.4
480
+ clamp_dtc: true
481
+ max_contact_prob: 0.1
482
+ mask_normals_within_sdf: true
483
+ dtc_adaptive_normalization: false
484
+ adaptive_normals_mask: true
485
+ max_depth: 2.0
486
+ image_shape:
487
+ - 13
488
+ - 180
489
+ - 240
490
+ learnable_contact_preprocess_params: true
491
+ learning_rate: 0.0001
492
+ weight_decay: 0.0
493
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
494
+ zero_centered: false
495
+ suite:
496
+ desc: null
497
+ value:
498
+ suite: frankagym
499
+ name: frankagym
500
+ frame_stack: 1
501
+ action_repeat: 1
502
+ discount: 0.99
503
+ hidden_dim: 1024
504
+ num_train_frames: 2010
505
+ num_seed_frames: 260
506
+ num_train_epochs: 5000
507
+ validate_every_epochs: 100
508
+ validate_diffusion_on_action_loss_every_epochs: 500
509
+ train_eval_diffusion_on_action_loss_every_epochs: 500
510
+ check_topk_every_epochs: 10
511
+ save_snapshot_every_epochs: 5000
512
+ eval_every_frames: 2000
513
+ num_eval_episodes: 5
514
+ save_snapshot: true
515
+ wait_for_user_to_start_episode: true
516
+ task_make_fn:
517
+ _target_: suite.frankagym.make
518
+ name: FrankaInsertion-v1
519
+ height: 240
520
+ width: 320
521
+ frame_stack: 1
522
+ action_repeat: 1
523
+ seed: 0
524
+ enable_arm: true
525
+ enable_gripper: true
526
+ start_with_gripper_open: true
527
+ enable_camera: true
528
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
529
+ contact_estimation_model_ckpt_path: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
530
+ x_limit:
531
+ - 0.2
532
+ - 0.7
533
+ y_limit:
534
+ - -0.4
535
+ - 0.4
536
+ z_limit:
537
+ - -0.05
538
+ - 0.55
539
+ device: cuda
540
+ interpolation_frequency: 25
541
+ policy_frequency: 5
542
+ debug_timestamps: false
543
+ stop_after_action: false
544
+ open_loop: false
545
+ wait_for_new_camera_frames: true
546
+ action_key: action_trajectory_25hz
547
+ action_trajectory_horizon: 36
548
+ action_trajectories: true
549
+ path_to_zarr_dataset: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr
550
+ agent_policy_cfg:
551
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
552
+ compile: false
553
+ device: cuda
554
+ cam_resize_shape:
555
+ - 13
556
+ - 180
557
+ - 240
558
+ orig_cam_shape:
559
+ - 3
560
+ - 240
561
+ - 320
562
+ policy_frequency: 5
563
+ interpolation_frequency: 25
564
+ policy_cfg:
565
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
566
+ n_obs_steps: 1
567
+ horizon: 36
568
+ n_action_steps: 36
569
+ output_shapes:
570
+ action:
571
+ - 7
572
+ input_normalization_modes:
573
+ observation.image: mean_std
574
+ observation.state: min_max
575
+ observation.action_history: min_max
576
+ output_normalization_modes:
577
+ action: min_max
578
+ vision_backbone: resnet18
579
+ pretrained_backbone_weights: null
580
+ transforms:
581
+ - _target_: torchaug.transforms.RandomAffine
582
+ degrees:
583
+ - -5
584
+ - 5
585
+ translate:
586
+ - 0.05
587
+ - 0.05
588
+ batch_transform: true
589
+ num_chunks: -1
590
+ batch_inplace: true
591
+ - _target_: torchaug.transforms.RandomColorJitter
592
+ brightness: 0.3
593
+ contrast: 0.4
594
+ saturation: 0.5
595
+ hue: 0.08
596
+ batch_transform: true
597
+ num_chunks: -1
598
+ batch_inplace: true
599
+ use_group_norm: true
600
+ spatial_softmax_num_keypoints: 32
601
+ action_history_encoder_config:
602
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
603
+ in_channels: 7
604
+ out_channels: 32
605
+ history_length: 6
606
+ kernel_size: 5
607
+ downsample_kernel_size: 3
608
+ downsample_stride: 2
609
+ downsample_padding: 1
610
+ down_dims:
611
+ - 256
612
+ - 512
613
+ - 1024
614
+ kernel_size: 5
615
+ n_groups: 8
616
+ diffusion_step_embed_dim: 128
617
+ use_film_scale_modulation: true
618
+ noise_scheduler_type: DDIM
619
+ beta_schedule: squaredcos_cap_v2
620
+ beta_start: 0.0001
621
+ beta_end: 0.02
622
+ prediction_type: epsilon
623
+ clip_sample: true
624
+ clip_sample_range: 1.0
625
+ num_train_timesteps: 50
626
+ num_inference_steps: 10
627
+ do_mask_loss_for_padding: false
628
+ input_shapes:
629
+ observation.image:
630
+ - 13
631
+ - 180
632
+ - 240
633
+ context_observation.image:
634
+ - 13
635
+ - 180
636
+ - 240
637
+ observation.state:
638
+ - 8
639
+ observation.action_history:
640
+ - 7
641
+ train_cfg:
642
+ _target_: utils.TrainConfig
643
+ lr: 0.0001
644
+ lr_scheduler: cosine
645
+ lr_warmup_steps: 500
646
+ adam_betas:
647
+ - 0.95
648
+ - 0.999
649
+ adam_eps: 1.0e-08
650
+ adam_weight_decay: 1.0e-06
651
+ grad_clip_norm: 10
652
+ offline_steps: 1000000
653
+ use_amp: true
654
+ observation_cfg:
655
+ _target_: agent.encoder.VisualFeatureSet
656
+ use_depth: true
657
+ use_color: true
658
+ mask_input_dict:
659
+ _target_: agent.encoder.MaskInputDict
660
+ enable: false
661
+ representation: channels
662
+ mask_list:
663
+ - EE_obj_mask
664
+ crop_input_config:
665
+ _target_: agent.encoder.CropInputConfig
666
+ color_crop_type: null
667
+ depth_crop_type: null
668
+ segmask_crop_type: null
669
+ crop_hw:
670
+ - 144
671
+ - 144
672
+ crop_down_offset: 48
673
+ add_crop_binary_mask: false
674
+ add_coord_conv_map: false
675
+ context_input_config:
676
+ _target_: agent.encoder.ContextInputConfig
677
+ use_color: false
678
+ use_depth: false
679
+ mask_input_dict:
680
+ _target_: agent.encoder.MaskInputDict
681
+ enable: false
682
+ representation: channels
683
+ mask_list:
684
+ - EE_obj_mask
685
+ crop_input_config:
686
+ _target_: agent.encoder.CropInputConfig
687
+ color_crop_type: null
688
+ depth_crop_type: null
689
+ segmask_crop_type: null
690
+ crop_hw:
691
+ - 144
692
+ - 144
693
+ crop_down_offset: 48
694
+ add_crop_binary_mask: false
695
+ add_coord_conv_map: false
696
+ mask_soft_approx_scheduler_config:
697
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
698
+ num_steps: 40000
699
+ initial_value: 10.0
700
+ final_value: 1000.0
701
+ interpolation_scheme: cosine
702
+ use_contact_map: false
703
+ use_sdf_maps: false
704
+ use_normals_maps: false
705
+ which_objects: both
706
+ grasped_dtc_max_value: 0.2
707
+ env_dtc_max_value: 0.4
708
+ grasped_normals_mask_max_dtc_value: 0.2
709
+ env_normals_mask_max_dtc_value: 0.4
710
+ clamp_dtc: true
711
+ max_contact_prob: 0.1
712
+ mask_normals_within_sdf: true
713
+ dtc_adaptive_normalization: false
714
+ adaptive_normals_mask: true
715
+ max_depth: 2.0
716
+ image_shape:
717
+ - 13
718
+ - 180
719
+ - 240
720
+ learnable_contact_preprocess_params: true
721
+ learning_rate: 0.0001
722
+ weight_decay: 0.0
723
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
724
+ zero_centered: false
725
+ true_action_history: false
726
+ num_train_frames_bc:
727
+ desc: null
728
+ value: 50000
729
+ num_train_frames_drq:
730
+ desc: null
731
+ value: 1100000
732
+ stddev_schedule_drq:
733
+ desc: null
734
+ value: linear(1.0,0.1,100000)
735
+ task_name:
736
+ desc: null
737
+ value: FrankaInsertion-v1
738
+ num_train_frames_vinn:
739
+ desc: null
740
+ value: 25000
741
+ num_train_frames_diffusion:
742
+ desc: null
743
+ value: 1000000
744
+ num_train_epochs_bc:
745
+ desc: null
746
+ value: 5000
747
+ num_train_epochs_diffusion:
748
+ desc: null
749
+ value: 15000
750
+ validate_every_epochs_bc:
751
+ desc: null
752
+ value: 5
753
+ validate_every_epochs_diffusion:
754
+ desc: null
755
+ value: 250
756
+ validate_diffusion_on_action_loss_every_epochs:
757
+ desc: null
758
+ value: 250
759
+ train_eval_diffusion_on_action_loss_every_epochs:
760
+ desc: null
761
+ value: 250
762
+ check_topk_every_epochs:
763
+ desc: null
764
+ value: 5
765
+ check_topk_every_epochs_diffusion:
766
+ desc: null
767
+ value: 250
768
+ save_snapshot_every_epochs_diffusion:
769
+ desc: null
770
+ value: 1500
771
+ x_limit:
772
+ desc: null
773
+ value:
774
+ - 0.2
775
+ - 0.7
776
+ y_limit:
777
+ desc: null
778
+ value:
779
+ - -0.4
780
+ - 0.4
781
+ z_limit:
782
+ desc: null
783
+ value:
784
+ - -0.05
785
+ - 0.55
786
+ home_displacement:
787
+ desc: null
788
+ value:
789
+ - 0.55
790
+ - 0.0
791
+ - 0.55
792
+ - 180.0
793
+ - 0.0
794
+ - 0.0
795
+ enable_gripper:
796
+ desc: null
797
+ value: true
798
+ start_with_gripper_open:
799
+ desc: null
800
+ value: true
801
+ offset_mask:
802
+ desc: null
803
+ value:
804
+ - 1
805
+ - 1
806
+ - 1
807
+ - 1
808
+ - 1
809
+ - 1
810
+ path_to_depth_extrinsics:
811
+ desc: null
812
+ value: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
813
+ feature_type:
814
+ desc: null
815
+ value: 180x240_1_RGB_D_2.0_acthst_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1
816
+ save_buffer:
817
+ desc: null
818
+ value: true
819
+ num_eval:
820
+ desc: null
821
+ value: 5
822
+ random_start:
823
+ desc: null
824
+ value: false
825
+ eval_starts:
826
+ desc: null
827
+ value: /home/leonmkim/fish_leon/FISH/eval_starts/frankagym_pixels/FrankaInsertion-v1
828
+ num_valid_demos:
829
+ desc: null
830
+ value: null
831
+ load_checkpoint:
832
+ desc: null
833
+ value: true
834
+ checkpoint_epoch:
835
+ desc: null
836
+ value: 12000
837
+ load_residual_weight:
838
+ desc: null
839
+ value: false
840
+ checkpoint_root_dir:
841
+ desc: null
842
+ value: /home/leonmkim/fish_leon/FISH
843
+ checkpoint_weight_dir:
844
+ desc: null
845
+ value: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/497_0
846
+ residual_weight:
847
+ desc: null
848
+ value: /home/leonmkim/fish_leon/FISH/weights/frankagym_pixels/FrankaInsertion-v1/weight.pt
849
+ final_experiment_dir:
850
+ desc: null
851
+ value: ./exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837
852
+ _wandb:
853
+ desc: null
854
+ value:
855
+ code_path: code/FISH/eval_robot.py
856
+ python_version: 3.10.14
857
+ cli_version: 0.17.5
858
+ framework: torch
859
+ is_jupyter_run: false
860
+ is_kaggle_kernel: false
861
+ start_time: 1734484724
862
+ t:
863
+ 1:
864
+ - 1
865
+ - 41
866
+ - 49
867
+ - 50
868
+ - 55
869
+ - 83
870
+ 2:
871
+ - 1
872
+ - 41
873
+ - 49
874
+ - 50
875
+ - 55
876
+ - 83
877
+ 3:
878
+ - 16
879
+ - 23
880
+ - 35
881
+ 4: 3.10.14
882
+ 5: 0.17.5
883
+ 8:
884
+ - 5
885
+ 13: linux-x86_64
886
+ grasped_obj_name:
887
+ desc: null
888
+ value: german
889
+ left_book_slot:
890
+ desc: null
891
+ value: twodim
201837/wandb/run-20241217_201844-3irhkym4/files/diff.patch ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ diff --git a/FISH/cfgs/config_eval.yaml b/FISH/cfgs/config_eval.yaml
2
+ index bb0a413..5d2488e 100644
3
+ --- a/FISH/cfgs/config_eval.yaml
4
+ +++ b/FISH/cfgs/config_eval.yaml
5
+ @@ -107,7 +107,7 @@ num_valid_demos: null
6
+ val_num_groups: 3
7
+
8
+ # name_of_expert_demo: 'book_insertion_wo_ends_wedge_v2_76_all_demos_10hz_no_filter_wo_flow_mask_expert_demos_imp_act'
9
+ -name_of_expert_demo: '192_240x320_multiobj_twodim_recovery_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act'
10
+ +name_of_expert_demo: '112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act'
11
+ expert_dataset_dirpath: '${root_dir}/FISH/expert_demos/${suite.name}/${task_name}/${name_of_expert_demo}'
12
+
13
+ expert_dataset: '${expert_dataset_dirpath}/demos.zarr'
14
+ @@ -123,89 +123,17 @@ bc_weight_type: 'qfilter' # linear, qfilter
15
+
16
+ # Load weights
17
+ load_checkpoint: ${agent.load_checkpoint}
18
+ -# 64_240x320_hbm_twodim_fps_fix_contact_fix_recovery_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
19
+ -# full 32 demos
20
+ -# wandb_run_id: "265625" # RGBD history seed 0
21
+ -# wandb_run_id: "266370_1" # RGBD history seed 1
22
+ -# wandb_run_id: "266370_2" # RGBD history seed 2
23
+ -# wandb_run_id: "266382_4" # RGBD history seed 4
24
+ -
25
+ -# 16 held out demos (16 demos)
26
+ -# wandb_run_id: "266392_0" # RGBD+act history dataset seed 0
27
+ -# wandb_run_id: "266407_0" # RGBD+act history dataset seed 1
28
+ -wandb_run_id: "266406_0" # RGBD+act history dataset seed 2
29
+ -
30
+ -# wandb_run_id: "265626" # RGBD+Mask+act history seed 0
31
+ -# wandb_run_id: "265638" # RGBD+Mask+act history seed 1
32
+ -# wandb_run_id: "265637" # RGBD+Mask+act history seed 2
33
+ -# wandb_run_id: "265636" # RGBD+Mask+act history seed 3
34
+ -# wandb_run_id: "265635" # RGBD+Mask+act history seed 4
35
+ -
36
+ -# wandb_run_id: "265628" # RGBD+Mask+contact+act history seed 0
37
+ -# wandb_run_id: "265630" # RGBD+Mask+contact+act history seed 1
38
+ -# wandb_run_id: "265631" # RGBD+Mask+contact+act history seed 2
39
+ -# wandb_run_id: "265633" # RGBD+Mask+contact+act history seed 3
40
+ -# wandb_run_id: "265634" # RGBD+Mask+contact+act history seed 4
41
+ -
42
+ -# 8 held out demos (26 demos)
43
+ -# wandb_run_id: "265652" # RGBD+Mask+contact+act history dataset seed 0
44
+ -# wandb_run_id: "265654" # RGBD+Mask+contact+act history dataset seed 1
45
+ -# wandb_run_id: "265655" # RGBD+Mask+contact+act history dataset seed 2
46
+ -
47
+ -# 8 held out demos (26 demos)
48
+ -# wandb_run_id: "265656" # RGBD+Mask+act history dataset seed 0
49
+ -# wandb_run_id: "265657" # RGBD+Mask+act history dataset seed 1
50
+ -# wandb_run_id: "265658" # RGBD+Mask+act history dataset seed 2
51
+ -
52
+ -# 16 held out demos (16 demos)
53
+ -# wandb_run_id: "265641" # RGBD+Mask+act history dataset seed 0
54
+ -# wandb_run_id: "265644" # RGBD+Mask+act history dataset seed 1
55
+ -# wandb_run_id: "265645" # RGBD+Mask+act history dataset seed 2
56
+ -# wandb_run_id: "266381_0" # RGBD+Mask+act history dataset seed 4
57
+ -
58
+ -# 16 held out demos (16 demos)
59
+ -# wandb_run_id: "265646" # RGBD+Mask+Contact+act history dataset seed 0
60
+ -# wandb_run_id: "265649" # RGBD+Mask+Contact+act history dataset seed 1
61
+ -# wandb_run_id: "265650" # RGBD+Mask+Contact+act history dataset seed 2
62
+ -# wandb_run_id: "266378_0" # RGBD+Mask+Contact+act history dataset seed 4
63
+ -
64
+ -
65
+ -
66
+ -
67
+ -# 54_240x320_hbm_twodim_fps_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
68
+ -# full dataset
69
+ -# 6 step action history
70
+ -# wandb_run_id: '250358_0' # RGBD+act history
71
+ -# wandb_run_id: '250371_0' # RGBD+mask+act history
72
+ -# wandb_run_id: '250366_0' # RGBD+contact+act history
73
+ -# wandb_run_id: '250376_0' # RGBD+mask+contact+act history
74
+ -# wandb_run_id: '250366_0' # RGBD+contact+act history
75
+ -
76
+ -# 54_240x320_hbm_twodim_fps_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
77
+ -# 16 held out demos
78
+ -# wandb_run_id: '250362_0' # RGBD+act history
79
+ -# wandb_run_id: '250373_0' # RGBD+mask+act history
80
+ -# wandb_run_id: '250378_0' # RGBD+mask+contact+act history
81
+ -# wandb_run_id: '250368_0' # RGBD+contact+act history
82
+ -
83
+ -# 54_240x320_hbm_twodim_fps_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
84
+ -# 32 held out demos
85
+ -# wandb_run_id: '250365_0' # RGBD+act history
86
+ -# wandb_run_id: '250375_0' # RGBD+mask+act history
87
+ -wandb_run_id: '250380_0' # RGBD+mask+contact+act history
88
+ -# wandb_run_id: '250370_0' # RGBD+contact+act history
89
+ -# 4 step action history
90
+ -# wandb_run_id: '264772_0' # RGBD+act history
91
+ -# wandb_run_id: '264775_0' # RGBD+mask+act history
92
+ -# wandb_run_id: '264776_0' # RGBD+contact+act history
93
+ -# wandb_run_id: '264777_0' # RGBD+mask+contact+act history
94
+ -
95
+ -# 54_240x320_hbm_twodim_fps_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
96
+ -# 16 held out demos
97
+ -# wandb_run_id: '250362_0' # RGBD+act history
98
+ -# wandb_run_id: '250373_0' # RGBD+mask+act history
99
+ -# wandb_run_id: '250378_0' # RGBD+mask+contact+act history
100
+ -# wandb_run_id: '250368_0' # RGBD+contact+act history
101
+ +# 112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
102
+ +# RGBD+act history
103
+ +# 14 demos
104
+ +wandb_run_id: '497_0' # german
105
+ +# wandb_run_id: '505_0' # hbm
106
+ +# wandb_run_id: '506_0' # lady
107
+ +# wandb_run_id: '507_0' # greece
108
+ +# wandb_run_id: '508_0' # fowlers
109
+ +# wandb_run_id: '509_0' # lib
110
+ +# wandb_run_id: '510_0' # modelsys
111
+ +# wandb_run_id: '511_0' # electrodyn
112
+
113
+ # 54_240x320_hbm_twodim_fps_fix_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
114
+ # 32 held out demos
115
+ diff --git a/FISH/download_model_checkpoints.py b/FISH/download_model_checkpoints.py
116
+ index 9406a46..f67cc2a 100644
117
+ --- a/FISH/download_model_checkpoints.py
118
+ +++ b/FISH/download_model_checkpoints.py
119
+ @@ -15,10 +15,11 @@ if not local_checkpoint_root_dir.exists():
120
+ local_checkpoint_root_dir.mkdir(parents=True)
121
+
122
+ # Download the model checkpoints
123
+ -remote_checkpoint_root_dir = Path('/mnt/grasp_high_usage/leonmkim/contact_estimation/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1')
124
+ +# remote_checkpoint_root_dir = Path('/mnt/grasp_high_usage/leonmkim/contact_estimation/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1')
125
+ +remote_checkpoint_root_dir = Path('/mnt/kostas-graid/datasets/extrinsic_contact_data/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1')
126
+ remote_checkpoint_root_dir = remote_checkpoint_root_dir.expanduser()
127
+ remote_username = 'leonmkim'
128
+ -remote_host = 'halley'
129
+ +remote_host = 'grasp-login1'
130
+
131
+ #180x240_1_RGB_D_2.0_msk_channels_EE_obj_mask_acthst_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1
132
+ # run_id_list = [
133
+ @@ -75,6 +76,17 @@ remote_host = 'halley'
134
+ # ]
135
+
136
+ # 180x240_1_RGB_D_2.0_acthst_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1
137
+ +run_id_list = [
138
+ + '497_0', # german
139
+ + '505_0', # hbm
140
+ + '506_0', # lady
141
+ + '507_0', # greece
142
+ + '508_0', # fowlers
143
+ + '509_0', # lib
144
+ + '510_0', # modelsys
145
+ + '511_0', # electrodyn
146
+ +]
147
+ +
148
+ # run_id_list = [
149
+ # '266382_4',
150
+ # '266370_2',
151
+ @@ -116,13 +128,13 @@ remote_host = 'halley'
152
+ # ]
153
+
154
+ # 180x240_1_RGB_D_2.0_cntct_0.1_DTC_clmpd_lrnbl_nrmls_DTCmask_adpt_lrnbl_both_lr_0.0001_wd_0.0_local_multitask_outhd64all_home_crop_h144w144d48_ctxt_seed_183386_epoch_9_acthst_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1
155
+ -run_id_list = [
156
+ - # '266384_4,# not yet available
157
+ - '266372_1',
158
+ - '266372_2',
159
+ - '265627',
160
+ - '265620',
161
+ -]
162
+ +# run_id_list = [
163
+ +# # '266384_4,# not yet available
164
+ +# '266372_1',
165
+ +# '266372_2',
166
+ +# '265627',
167
+ +# '265620',
168
+ +# ]
169
+ checkpoint_epoch = 12000
170
+
171
+ # use subprocess to download the model checkpoints in parallel
201837/wandb/run-20241217_201844-3irhkym4/files/media/videos/eval/0_eval_0_dea50b578cd8d3a2c625.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dea50b578cd8d3a2c6254112afbcdb9c2d9dc9bd31684d2e1bc823cce1b48d5d
3
+ size 1132502
201837/wandb/run-20241217_201844-3irhkym4/files/media/videos/eval/1_eval_1_b03068849d1999348de8.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b03068849d1999348de8fc0b571ed701037f147e737a9786498a363caba34117
3
+ size 1129817
201837/wandb/run-20241217_201844-3irhkym4/files/media/videos/eval/2_eval_2_eceb31face7919d35cb1.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:eceb31face7919d35cb19ad3bc1cd876ef6be569c61506515d6442f1681cb643
3
+ size 1129899
201837/wandb/run-20241217_201844-3irhkym4/files/media/videos/eval/3_eval_3_95771f58d825c3736e35.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:95771f58d825c3736e354f2c8518e116e86477e5e99ef74f90c2d6cbe4fe4b5f
3
+ size 1121711
201837/wandb/run-20241217_201844-3irhkym4/files/media/videos/eval/4_eval_4_826edd31511fa05407cc.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:826edd31511fa05407cc33c74e4d66ef962fe09faa1bb10951b49828909ed245
3
+ size 1135337
201837/wandb/run-20241217_201844-3irhkym4/files/output.log ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ loaded agent with feature_type: 180x240_1_RGB_D_2.0_acthst_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1
3
+ [INFO] [1734484730.420681]: resetting environment
4
+ [INFO] [1734484730.421698]: cleared current plan
5
+ [INFO] [1734484730.422547]: moving to home
6
+ [INFO] [1734484733.629262]: reached home
7
+ [INFO] [1734484733.630688]: reset action history
8
+ [INFO] [1734484736.388379]: environment reset
9
+ Starting episode 0
10
+ [INFO] [1734484736.390978]: resetting environment
11
+ [INFO] [1734484736.391808]: cleared current plan
12
+ [INFO] [1734484736.393146]: moving to home
13
+ [INFO] [1734484737.395294]: reached home
14
+ [INFO] [1734484737.397130]: reset action history
15
+ [INFO] [1734484740.105501]: environment reset
16
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
17
+ proceeding to start episode![INFO] [1734484823.938111]: resetting environment
18
+ [INFO] [1734484823.940561]: cleared current plan
19
+ [INFO] [1734484823.942163]: moving to home
20
+ [INFO] [1734484824.944610]: reached home
21
+ [INFO] [1734484824.945820]: reset action history
22
+ [INFO] [1734484827.652726]: environment reset
23
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837/episode_rosbags/episode_0_2024-12-17-20-20-27.bag
24
+ ... logging to /home/leonmkim/.ros/log/94e09230-bcdd-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-60829.log
25
+ started roslaunch server http://158.130.50.37:37913/
26
+ SUMMARY
27
+ ========
28
+ PARAMETERS
29
+ * /rosdistro: noetic
30
+ * /rosversion: 1.16.0
31
+ NODES
32
+ /
33
+ print_text (rostopic/rostopic)
34
+ pub_text (rostopic/rostopic)
35
+ rosbag_record (rosbag/record)
36
+ ROS_MASTER_URI=http://localhost:11311
37
+ process[pub_text-1]: started with pid [61183]
38
+ process[print_text-2]: started with pid [61192]
39
+ process[rosbag_record-3]: started with pid [61208]
40
+ started bagging!
41
+ For topic gripper_width: timestamp difference is -134163007 for nearest: 1734484829119813100 - target: 1734484829253976107 at idx 25
42
+ For topic gripper_width: timestamp difference is -133761101 for nearest: 1734484829619813270 - target: 1734484829753574371 at idx 31
43
+ For topic gripper_width: timestamp difference is -132615313 for nearest: 1734484831019812122 - target: 1734484831152427435 at idx 45
44
+ [INFO] [1734484854.427842]: Storing episode...
45
+ [rosbag_record-3] killing on exit
46
+ [print_text-2] killing on exit[pub_text-1] killing on exit
47
+ [INFO] [1734484855.183498]: Stored episode 1.
48
+ [INFO] [1734484855.184848]: Saving video...
49
+ [INFO] [1734484855.453441]: Video saved!
50
+ Starting episode 1
51
+ [INFO] [1734484855.485854]: resetting environment
52
+ [INFO] [1734484855.487334]: cleared current plan
53
+ [INFO] [1734484855.488335]: moving to home
54
+ [INFO] [1734484858.791774]: reached home
55
+ [INFO] [1734484858.792222]: reset action history
56
+ [INFO] [1734484861.497751]: environment reset
57
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
58
+ proceeding to start episode!
59
+ [INFO] [1734484903.488989]: resetting environment
60
+ [INFO] [1734484903.489387]: cleared current plan
61
+ [INFO] [1734484903.489773]: moving to home
62
+ [INFO] [1734484904.491623]: reached home
63
+ [INFO] [1734484904.492381]: reset action history
64
+ [INFO] [1734484907.200129]: environment reset
65
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837/episode_rosbags/episode_1_2024-12-17-20-21-47.bag
66
+ ... logging to /home/leonmkim/.ros/log/94e09230-bcdd-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-60829.log
67
+ started roslaunch server http://158.130.50.37:37253/
68
+ SUMMARY
69
+ ========
70
+ PARAMETERS
71
+ * /rosdistro: noetic
72
+ * /rosversion: 1.16.0
73
+ NODES
74
+ /
75
+ print_text (rostopic/rostopic)
76
+ pub_text (rostopic/rostopic)
77
+ rosbag_record (rosbag/record)
78
+ ROS_MASTER_URI=http://localhost:11311
79
+ process[pub_text-4]: started with pid [61618]
80
+ process[print_text-5]: started with pid [61619]
81
+ process[rosbag_record-6]: started with pid [61620]
82
+ started bagging!
83
+ [INFO] [1734484933.935166]: Storing episode...
84
+ [rosbag_record-6] killing on exit[print_text-5] killing on exit
85
+ [pub_text-4] killing on exit
86
+ [INFO] [1734484934.711021]: Stored episode 2.
87
+ [INFO] [1734484934.711238]: Saving video...
88
+ [INFO] [1734484935.260596]: Video saved!
89
+ Starting episode 2
90
+ [INFO] [1734484935.290000]: resetting environment
91
+ [INFO] [1734484935.291668]: cleared current plan
92
+ [INFO] [1734484935.292706]: moving to home
93
+ [INFO] [1734484938.407371]: reached home
94
+ [INFO] [1734484938.410666]: reset action history
95
+ [INFO] [1734484941.131134]: environment reset
96
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
97
+ proceeding to start episode!
98
+ [INFO] [1734484966.671992]: resetting environment
99
+ [INFO] [1734484966.674911]: cleared current plan
100
+ [INFO] [1734484966.675584]: moving to home
101
+ [INFO] [1734484967.677376]: reached home
102
+ [INFO] [1734484967.677825]: reset action history
103
+ [INFO] [1734484970.385507]: environment reset
104
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837/episode_rosbags/episode_2_2024-12-17-20-22-50.bag
105
+ ... logging to /home/leonmkim/.ros/log/94e09230-bcdd-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-60829.log
106
+ started roslaunch server http://158.130.50.37:45873/
107
+ SUMMARY
108
+ ========
109
+ PARAMETERS
110
+ * /rosdistro: noetic
111
+ * /rosversion: 1.16.0
112
+ NODES
113
+ /
114
+ print_text (rostopic/rostopic)
115
+ pub_text (rostopic/rostopic)
116
+ rosbag_record (rosbag/record)
117
+ ROS_MASTER_URI=http://localhost:11311
118
+ process[pub_text-7]: started with pid [61767]
119
+ process[print_text-8]: started with pid [61768]
120
+ process[rosbag_record-9]: started with pid [61769]
121
+ started bagging!
122
+ For topic gripper_width: timestamp difference is -147409865 for nearest: 1734484977119813016 - target: 1734484977267222881 at idx 102
123
+ For topic gripper_width: timestamp difference is -139434683 for nearest: 1734484987119765652 - target: 1734484987259200335 at idx 242
124
+ For topic gripper_width: timestamp difference is -138732297 for nearest: 1734484987919811862 - target: 1734484988058544159 at idx 249
125
+ [INFO] [1734484997.109189]: Storing episode...
126
+ [rosbag_record-9] killing on exit
127
+ [print_text-8] killing on exit[pub_text-7] killing on exit
128
+ [INFO] [1734484997.903498]: Stored episode 3.
129
+ [INFO] [1734484997.903889]: Saving video...
130
+ [INFO] [1734484998.410878]: Video saved!
131
+ Starting episode 3
132
+ [INFO] [1734484998.445729]: resetting environment
133
+ [INFO] [1734484998.452914]: cleared current plan
134
+ [INFO] [1734484998.458637]: moving to home
135
+ [INFO] [1734485001.667557]: reached home
136
+ [INFO] [1734485001.670920]: reset action history
137
+ [INFO] [1734485004.390377]: environment reset
138
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
139
+ proceeding to start episode![INFO] [1734485008.447488]: resetting environment
140
+ [INFO] [1734485008.451961]: cleared current plan
141
+ [INFO] [1734485008.456254]: moving to home
142
+ [INFO] [1734485009.460804]: reached home
143
+ [INFO] [1734485009.464302]: reset action history
144
+ [INFO] [1734485012.186896]: environment reset
145
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837/episode_rosbags/episode_3_2024-12-17-20-23-32.bag
146
+ ... logging to /home/leonmkim/.ros/log/94e09230-bcdd-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-60829.log
147
+ started roslaunch server http://158.130.50.37:37153/
148
+ SUMMARY
149
+ ========
150
+ PARAMETERS
151
+ * /rosdistro: noetic
152
+ * /rosversion: 1.16.0
153
+ NODES
154
+ /
155
+ print_text (rostopic/rostopic)
156
+ pub_text (rostopic/rostopic)
157
+ rosbag_record (rosbag/record)
158
+ ROS_MASTER_URI=http://localhost:11311
159
+ process[pub_text-10]: started with pid [61899]
160
+ process[print_text-11]: started with pid [61900]
161
+ process[rosbag_record-12]: started with pid [61901]
162
+ started bagging!
163
+ For topic gripper_width: timestamp difference is -145934963 for nearest: 1734485020119813538 - target: 1734485020265748501 at idx 108
164
+ For topic gripper_width: timestamp difference is -165404665 for nearest: 1734485037119836700 - target: 1734485037285241365 at idx 249
165
+ [INFO] [1734485038.937844]: Storing episode...
166
+ [rosbag_record-12] killing on exit
167
+ [pub_text-10] killing on exit
168
+ [print_text-11] killing on exit
169
+ [INFO] [1734485039.721756]: Stored episode 4.
170
+ [INFO] [1734485039.724256]: Saving video...
171
+ [INFO] [1734485040.140897]: Video saved!
172
+ Starting episode 4
173
+ [INFO] [1734485040.171080]: resetting environment
174
+ [INFO] [1734485040.174430]: cleared current plan
175
+ [INFO] [1734485040.184991]: moving to home
176
+ [INFO] [1734485043.292286]: reached home
177
+ [INFO] [1734485043.294680]: reset action history
178
+ [INFO] [1734485046.076210]: environment reset
179
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
180
+ proceeding to start episode!
181
+ [INFO] [1734485047.376684]: resetting environment
182
+ [INFO] [1734485047.380262]: cleared current plan
183
+ [INFO] [1734485047.382329]: moving to home
184
+ [INFO] [1734485048.389316]: reached home
185
+ [INFO] [1734485048.393635]: reset action history
186
+ [INFO] [1734485051.126704]: environment reset
187
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837/episode_rosbags/episode_4_2024-12-17-20-24-11.bag
188
+ ... logging to /home/leonmkim/.ros/log/94e09230-bcdd-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-60829.log
189
+ started roslaunch server http://158.130.50.37:46683/
190
+ SUMMARY
191
+ ========
192
+ PARAMETERS
193
+ * /rosdistro: noetic
194
+ * /rosversion: 1.16.0
195
+ NODES
196
+ /
197
+ print_text (rostopic/rostopic)
198
+ pub_text (rostopic/rostopic)
199
+ rosbag_record (rosbag/record)
200
+ ROS_MASTER_URI=http://localhost:11311
201
+ process[pub_text-13]: started with pid [62032]
202
+ process[print_text-14]: started with pid [62056]
203
+ process[rosbag_record-15]: started with pid [62057]
204
+ started bagging!
205
+ For topic gripper_width: timestamp difference is -111348356 for nearest: 1734485062719922577 - target: 1734485062831270933 at idx 165
206
+ For topic gripper_width: timestamp difference is -110003152 for nearest: 1734485064519812188 - target: 1734485064629815340 at idx 186
207
+ For topic gripper_width: timestamp difference is -109519615 for nearest: 1734485065119812117 - target: 1734485065229331732 at idx 193
208
+ For topic gripper_width: timestamp difference is -107841022 for nearest: 1734485067119812720 - target: 1734485067227653742 at idx 218
209
+ For topic gripper_width: timestamp difference is -107506285 for nearest: 1734485067519811382 - target: 1734485067627317667 at idx 221
210
+ For topic gripper_width: timestamp difference is -105336491 for nearest: 1734485070119810995 - target: 1734485070225147486 at idx 249
211
+ For topic gripper_width: timestamp difference is -105149600 for nearest: 1734485070319833425 - target: 1734485070424983025 at idx 249
212
+ For topic gripper_width: timestamp difference is -135520577 for nearest: 1734485073919875265 - target: 1734485074055395842 at idx 249
213
+ [INFO] [1734485077.917191]: Storing episode...
214
+ [rosbag_record-15] killing on exit
215
+ [pub_text-13] killing on exit
216
+ [print_text-14] killing on exit
217
+ [INFO] [1734485078.732205]: Stored episode 5.
218
+ [INFO] [1734485078.740892]: Saving video...
219
+ [INFO] [1734485079.342679]: Video saved!
220
+ [INFO] [1734485079.409388]: resetting environment
221
+ [INFO] [1734485079.413339]: cleared current plan
222
+ [INFO] [1734485079.420570]: moving to home
223
+ [WARN] [1734485079.270026]: Plan exhausted
224
+ [WARN] [1734485079.313904]: Plan exhausted
225
+ [WARN] [1734485079.348914]: Plan exhausted
226
+ [WARN] [1734485079.390223]: Plan exhausted
227
+ [INFO] [1734485082.733536]: reached home
228
+ [INFO] [1734485082.737259]: reset action history
229
+ [INFO] [1734485085.582130]: environment reset
230
+ Evaluation finished. To wrap up, rate prev episode, press 0 for failure and 1 for success
231
+ proceeding to start episode!
201837/wandb/run-20241217_201844-3irhkym4/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
201837/wandb/run-20241217_201844-3irhkym4/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-18T01:18:44.432232",
5
+ "startedAt": "2024-12-18T01:18:44.040438",
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": "5f28b54373d7d41e4ebace380ff1080a8ffc4051"
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": 3379.483625,
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": 3000.0,
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": 4511.096,
61
+ "min": 800.0,
62
+ "max": 4700.0
63
+ },
64
+ {
65
+ "current": 3000.0,
66
+ "min": 800.0,
67
+ "max": 4700.0
68
+ },
69
+ {
70
+ "current": 3000.0,
71
+ "min": 800.0,
72
+ "max": 4700.0
73
+ }
74
+ ],
75
+ "disk": {
76
+ "/": {
77
+ "total": 915.3232879638672,
78
+ "used": 341.2469367980957
79
+ }
80
+ },
81
+ "gpu": "NVIDIA GeForce RTX 2070 SUPER",
82
+ "gpu_count": 1,
83
+ "gpu_devices": [
84
+ {
85
+ "name": "NVIDIA GeForce RTX 2070 SUPER",
86
+ "memory_total": 8589934592
87
+ }
88
+ ],
89
+ "memory": {
90
+ "total": 62.71595764160156
91
+ }
92
+ }
201837/wandb/run-20241217_201844-3irhkym4/files/wandb-summary.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"eval/0_eval": {"_type": "video-file", "sha256": "dea50b578cd8d3a2c6254112afbcdb9c2d9dc9bd31684d2e1bc823cce1b48d5d", "size": 1132502, "path": "media/videos/eval/0_eval_0_dea50b578cd8d3a2c625.mp4"}, "global_step": 660, "_timestamp": 1734485087.9067447, "_runtime": 363.85385370254517, "_step": 9, "eval/1_eval": {"_type": "video-file", "sha256": "b03068849d1999348de8fc0b571ed701037f147e737a9786498a363caba34117", "size": 1129817, "path": "media/videos/eval/1_eval_1_b03068849d1999348de8.mp4"}, "eval/num_success": 0.0, "episode": 5.0, "eval/success_rate": 0.0, "eval/2_eval": {"_type": "video-file", "sha256": "eceb31face7919d35cb19ad3bc1cd876ef6be569c61506515d6442f1681cb643", "size": 1129899, "path": "media/videos/eval/2_eval_2_eceb31face7919d35cb1.mp4"}, "eval/3_eval": {"_type": "video-file", "sha256": "95771f58d825c3736e354f2c8518e116e86477e5e99ef74f90c2d6cbe4fe4b5f", "size": 1121711, "path": "media/videos/eval/3_eval_3_95771f58d825c3736e35.mp4"}, "eval/4_eval": {"_type": "video-file", "sha256": "826edd31511fa05407cc33c74e4d66ef962fe09faa1bb10951b49828909ed245", "size": 1135337, "path": "media/videos/eval/4_eval_4_826edd31511fa05407cc.mp4"}, "_wandb": {"runtime": 363}}
201837/wandb/run-20241217_201844-3irhkym4/logs/debug-internal.log ADDED
The diff for this file is too large to render. See raw diff
 
201837/wandb/run-20241217_201844-3irhkym4/logs/debug.log ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_setup.py:_flush():76] Current SDK version is 0.17.5
2
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_setup.py:_flush():76] Configure stats pid to 60829
3
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/.config/wandb/settings
4
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837/wandb/settings
5
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_setup.py:_flush():76] Loading settings from environment variables: {}
6
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_setup.py:_flush():76] Applying setup settings: {'_disable_service': False}
7
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [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-17 20:18:44,042 INFO MainThread:60829 [wandb_setup.py:_flush():76] Applying login settings: {}
9
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_init.py:_log_setup():529] Logging user logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837/wandb/run-20241217_201844-3irhkym4/logs/debug.log
10
+ 2024-12-17 20:18:44,042 INFO MainThread:60829 [wandb_init.py:_log_setup():530] Logging internal logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837/wandb/run-20241217_201844-3irhkym4/logs/debug-internal.log
11
+ 2024-12-17 20:18:44,043 INFO MainThread:60829 [wandb_init.py:init():569] calling init triggers
12
+ 2024-12-17 20:18:44,043 INFO MainThread:60829 [wandb_init.py:init():576] wandb.init called with sweep_config: {}
13
+ config: {'root_dir': '/home/leonmkim/fish_leon', 'replay_buffer_size': 150000, 'replay_buffer_num_workers': 2, 'nstep': 3, 'batch_size': 128, 'seed': 0, 'dataset_shuffle_seed': 0, 'device': 'cuda', 'save_video': True, 'save_train_video': True, 'use_tb': True, 'use_wandb': True, 'wandb_run_id': '497_0', 'wandb_notes': '497_0_req_580_0', 'eval': True, 'true_action_history': False, 'process_contact_features': True, 'obs_type': 'pixels', 'use_color': True, 'use_depth': True, 'use_masks': False, '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': False, 'use_sdf_maps': False, 'use_normals_maps': False, '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': '112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'expert_dataset_dirpath': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'store_dataset_in_memory': False, 'expert_dataset': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'action_key': 'action_trajectory_25hz', 'semantic_demo_grouping_name': 'semantic_demo_grouping.yaml', 'semantic_demo_grouping': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml', 'include_groups_list': ['german_twodim'], 'expert_dataset_config': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demo_config.yaml', 'name_of_valid_demo': '112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'valid_dataset_dir': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'valid_demo_idxs_list_or_num': None, 'val_num_groups': 0, '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/kostas-graid/datasets/extrinsic_contact_data/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/497_0', 'agent': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgent', 'name': 'diffusion_policy', 'load_checkpoint': True, 'device': 'cuda', 'n_obs_steps': 1, 'suite_name': 'frankagym', 'obs_type': 'pixels', 'enable_arm': True, 'enable_camera': True, 'use_tb': True, 'desired_image_shape': [13, 180, 240], 'orig_cam_shape': [3, 240, 320], 'config': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgentConfig', 'compile': False, 'device': 'cuda', 'cam_resize_shape': [13, 180, 240], 'orig_cam_shape': [3, 240, 320], 'policy_frequency': 5, 'interpolation_frequency': 25, 'policy_cfg': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig', 'n_obs_steps': 1, 'horizon': 36, 'n_action_steps': 36, 'output_shapes': {'action': [7]}, 'input_normalization_modes': {'observation.image': 'mean_std', 'observation.state': 'min_max', 'observation.action_history': 'min_max'}, 'output_normalization_modes': {'action': 'min_max'}, 'vision_backbone': 'resnet18', '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': 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}, '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': False, 'use_sdf_maps': False, 'use_normals_maps': False, '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}}}, '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/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'agent_policy_cfg': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgentConfig', 'compile': False, 'device': 'cuda', 'cam_resize_shape': [13, 180, 240], 'orig_cam_shape': [3, 240, 320], 'policy_frequency': 5, 'interpolation_frequency': 25, 'policy_cfg': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig', 'n_obs_steps': 1, 'horizon': 36, 'n_action_steps': 36, 'output_shapes': {'action': [7]}, 'input_normalization_modes': {'observation.image': 'mean_std', 'observation.state': 'min_max', 'observation.action_history': 'min_max'}, 'output_normalization_modes': {'action': 'min_max'}, 'vision_backbone': 'resnet18', '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': 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}, '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': False, 'use_sdf_maps': False, 'use_normals_maps': False, '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}}, '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_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, '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/497_0', 'residual_weight': '/home/leonmkim/fish_leon/FISH/weights/frankagym_pixels/FrankaInsertion-v1/weight.pt', 'final_experiment_dir': './exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837'}
14
+ 2024-12-17 20:18:44,043 INFO MainThread:60829 [wandb_init.py:init():619] starting backend
15
+ 2024-12-17 20:18:44,043 INFO MainThread:60829 [wandb_init.py:init():623] setting up manager
16
+ 2024-12-17 20:18:44,050 INFO MainThread:60829 [backend.py:_multiprocessing_setup():105] multiprocessing start_methods=fork,spawn,forkserver, using: spawn
17
+ 2024-12-17 20:18:44,052 INFO MainThread:60829 [wandb_init.py:init():631] backend started and connected
18
+ 2024-12-17 20:18:44,065 INFO MainThread:60829 [wandb_init.py:init():720] updated telemetry
19
+ 2024-12-17 20:18:44,072 INFO MainThread:60829 [wandb_init.py:init():753] communicating run to backend with 90.0 second timeout
20
+ 2024-12-17 20:18:44,360 INFO MainThread:60829 [wandb_run.py:_on_init():2435] communicating current version
21
+ 2024-12-17 20:18:44,409 INFO MainThread:60829 [wandb_run.py:_on_init():2444] got version response upgrade_message: "wandb version 0.19.1 is available! To upgrade, please run:\n $ pip install wandb --upgrade"
22
+
23
+ 2024-12-17 20:18:44,409 INFO MainThread:60829 [wandb_init.py:init():804] starting run threads in backend
24
+ 2024-12-17 20:18:44,794 INFO MainThread:60829 [wandb_run.py:_console_start():2413] atexit reg
25
+ 2024-12-17 20:18:44,794 INFO MainThread:60829 [wandb_run.py:_redirect():2255] redirect: wrap_raw
26
+ 2024-12-17 20:18:44,794 INFO MainThread:60829 [wandb_run.py:_redirect():2320] Wrapping output streams.
27
+ 2024-12-17 20:18:44,794 INFO MainThread:60829 [wandb_run.py:_redirect():2345] Redirects installed.
28
+ 2024-12-17 20:18:44,796 INFO MainThread:60829 [wandb_init.py:init():847] run started, returning control to user process
29
+ 2024-12-17 20:18:44,796 INFO MainThread:60829 [wandb_run.py:_tensorboard_callback():1544] tensorboard callback: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/497_0/201837/tb, True
30
+ 2024-12-17 20:18:50,418 INFO MainThread:60829 [wandb_run.py:_config_callback():1382] config_cb None None {'grasped_obj_name': 'german', 'left_book_slot': 'twodim'}
31
+ 2024-12-17 20:24:59,241 WARNING MsgRouterThr:60829 [router.py:message_loop():77] message_loop has been closed
201837/wandb/run-20241217_201844-3irhkym4/run-3irhkym4.wandb ADDED
Binary file (66 kB). View file
 
201841/.hydra/config.yaml ADDED
@@ -0,0 +1,350 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ root_dir: /home/${oc.env:USER}/fish_leon
2
+ nstep: 3
3
+ seed: 41
4
+ dataset_shuffle_seed: ${seed}
5
+ device: cuda
6
+ save_video: true
7
+ save_buffer: true
8
+ use_tb: true
9
+ baseline: false
10
+ use_wandb: true
11
+ eval: true
12
+ process_contact_features: ${eval}
13
+ obs_type: pixels
14
+ use_color: true
15
+ use_depth: true
16
+ use_masks: false
17
+ mask_list:
18
+ - EE_obj_mask
19
+ mask_representation: channels
20
+ crop_hw:
21
+ - 144
22
+ - 144
23
+ crop_down_offset: 48
24
+ color_crop_type: null
25
+ depth_crop_type: null
26
+ segmask_crop_type: null
27
+ add_crop_binary_mask: false
28
+ add_coord_conv_map: false
29
+ use_context_color: false
30
+ use_context_depth: false
31
+ use_context_segmask: false
32
+ context_color_crop_type: null
33
+ context_depth_crop_type: null
34
+ context_segmask_crop_type: null
35
+ context_add_crop_binary_mask: false
36
+ context_add_coord_conv_map: false
37
+ use_contact_map: false
38
+ use_sdf_maps: false
39
+ use_normals_maps: false
40
+ which_objects: both
41
+ max_contact_prob: 0.1
42
+ max_depth: 2.0
43
+ grasped_dtc_max_value: 0.105
44
+ env_dtc_max_value: 0.425
45
+ grasped_normals_mask_max_dtc_value: 0.105
46
+ env_normals_mask_max_dtc_value: 0.425
47
+ clamp_dtc: true
48
+ dtc_adaptive_normalization: false
49
+ mask_normals_within_sdf: true
50
+ adaptive_normals_mask: true
51
+ learnable_contact_preprocess_params: false
52
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_ctxt_seed_183386_epoch_9
53
+ contact_estimation_model_ckpt_path: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
54
+ num_eval: 5
55
+ debug_timestamps: false
56
+ open_loop: false
57
+ action_trajectories: true
58
+ stop_after_action: false
59
+ interpolation_frequency: 25
60
+ policy_frequency: 5
61
+ wait_for_new_camera_frames: true
62
+ random_start: false
63
+ eval_starts: ${root_dir}/FISH/eval_starts/${suite.name}_${obs_type}/${task_name}
64
+ train_demo_idxs_list_or_num: null
65
+ num_valid_demos: null
66
+ val_num_groups: 3
67
+ name_of_expert_demo: 112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
68
+ expert_dataset_dirpath: ${root_dir}/FISH/expert_demos/${suite.name}/${task_name}/${name_of_expert_demo}
69
+ expert_dataset: ${expert_dataset_dirpath}/demos.zarr
70
+ action_key: ${oc.if_else:${action_trajectories}, 'action_trajectory_${interpolation_frequency}hz',
71
+ 'action'}
72
+ semantic_demo_grouping_name: semantic_demo_grouping.yaml
73
+ semantic_demo_grouping: ${expert_dataset_dirpath}/${semantic_demo_grouping_name}
74
+ expert_dataset_config: ${expert_dataset_dirpath}/demo_config.yaml
75
+ bc_regularize: false
76
+ bc_weight_type: qfilter
77
+ load_checkpoint: ${agent.load_checkpoint}
78
+ wandb_run_id: '497_0'
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
+ final_experiment_dir: ${experiment_dir}/${now:%H%M%S}
88
+ agent:
89
+ _target_: agent.diffusion_policy.DiffusionPolicyAgent
90
+ name: diffusion_policy
91
+ load_checkpoint: ${eval}
92
+ device: ${device}
93
+ n_obs_steps: ${.config.policy_cfg.n_obs_steps}
94
+ suite_name: ${suite.name}
95
+ obs_type: ${obs_type}
96
+ enable_arm: ${eval}
97
+ enable_camera: ${eval}
98
+ use_tb: ${use_tb}
99
+ desired_image_shape:
100
+ - 13
101
+ - 180
102
+ - 240
103
+ orig_cam_shape:
104
+ - 3
105
+ - 240
106
+ - 320
107
+ config:
108
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
109
+ compile: false
110
+ device: ${device}
111
+ cam_resize_shape: ${agent.desired_image_shape}
112
+ orig_cam_shape: ${agent.orig_cam_shape}
113
+ policy_frequency: ${policy_frequency}
114
+ interpolation_frequency: ${interpolation_frequency}
115
+ policy_cfg:
116
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
117
+ n_obs_steps: 1
118
+ horizon: 36
119
+ n_action_steps: ${agent.config.policy_cfg.horizon}
120
+ input_shapes:
121
+ observation.image: ${agent.config.cam_resize_shape}
122
+ context_observation.image: ${agent.config.cam_resize_shape}
123
+ observation.state:
124
+ - 8
125
+ observation.action_history:
126
+ - 7
127
+ output_shapes:
128
+ action:
129
+ - 7
130
+ input_normalization_modes:
131
+ observation.image: mean_std
132
+ observation.state: min_max
133
+ observation.action_history: min_max
134
+ output_normalization_modes:
135
+ action: min_max
136
+ vision_backbone: resnet18
137
+ pretrained_backbone_weights: null
138
+ transforms:
139
+ - _target_: torchaug.transforms.RandomAffine
140
+ degrees:
141
+ - -5
142
+ - 5
143
+ translate:
144
+ - 0.05
145
+ - 0.05
146
+ batch_transform: true
147
+ num_chunks: -1
148
+ batch_inplace: true
149
+ - _target_: torchaug.transforms.RandomColorJitter
150
+ brightness: 0.3
151
+ contrast: 0.4
152
+ saturation: 0.5
153
+ hue: 0.08
154
+ batch_transform: true
155
+ num_chunks: -1
156
+ batch_inplace: true
157
+ use_group_norm: true
158
+ spatial_softmax_num_keypoints: 32
159
+ action_history_encoder_config:
160
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
161
+ in_channels: 7
162
+ out_channels: 32
163
+ history_length: ${agent.config.policy_cfg.n_action_steps}
164
+ kernel_size: ${agent.config.policy_cfg.kernel_size}
165
+ downsample_kernel_size: 3
166
+ downsample_stride: 2
167
+ downsample_padding: 1
168
+ down_dims:
169
+ - 256
170
+ - 512
171
+ - 1024
172
+ kernel_size: 5
173
+ n_groups: 8
174
+ diffusion_step_embed_dim: 128
175
+ use_film_scale_modulation: true
176
+ noise_scheduler_type: DDIM
177
+ beta_schedule: squaredcos_cap_v2
178
+ beta_start: 0.0001
179
+ beta_end: 0.02
180
+ prediction_type: epsilon
181
+ clip_sample: true
182
+ clip_sample_range: 1.0
183
+ num_train_timesteps: 50
184
+ num_inference_steps: 10
185
+ do_mask_loss_for_padding: false
186
+ train_cfg:
187
+ _target_: utils.TrainConfig
188
+ lr: 0.0001
189
+ lr_scheduler: cosine
190
+ lr_warmup_steps: 500
191
+ adam_betas:
192
+ - 0.95
193
+ - 0.999
194
+ adam_eps: 1.0e-08
195
+ adam_weight_decay: 1.0e-06
196
+ grad_clip_norm: 10
197
+ offline_steps: ${num_train_frames_diffusion}
198
+ use_amp: true
199
+ observation_cfg:
200
+ _target_: agent.encoder.VisualFeatureSet
201
+ use_depth: ${use_depth}
202
+ use_color: ${use_color}
203
+ mask_input_dict:
204
+ _target_: agent.encoder.MaskInputDict
205
+ enable: ${use_masks}
206
+ representation: ${mask_representation}
207
+ mask_list: ${mask_list}
208
+ crop_input_config:
209
+ _target_: agent.encoder.CropInputConfig
210
+ color_crop_type: ${color_crop_type}
211
+ depth_crop_type: ${depth_crop_type}
212
+ segmask_crop_type: ${segmask_crop_type}
213
+ crop_hw: ${crop_hw}
214
+ crop_down_offset: ${crop_down_offset}
215
+ add_crop_binary_mask: ${add_crop_binary_mask}
216
+ add_coord_conv_map: ${add_coord_conv_map}
217
+ context_input_config:
218
+ _target_: agent.encoder.ContextInputConfig
219
+ use_color: ${use_context_color}
220
+ use_depth: ${use_context_depth}
221
+ mask_input_dict:
222
+ _target_: agent.encoder.MaskInputDict
223
+ enable: ${use_context_segmask}
224
+ representation: ${mask_representation}
225
+ mask_list: ${mask_list}
226
+ crop_input_config:
227
+ _target_: agent.encoder.CropInputConfig
228
+ color_crop_type: ${context_color_crop_type}
229
+ depth_crop_type: ${context_depth_crop_type}
230
+ segmask_crop_type: ${context_segmask_crop_type}
231
+ crop_hw: ${crop_hw}
232
+ crop_down_offset: ${crop_down_offset}
233
+ add_crop_binary_mask: ${context_add_crop_binary_mask}
234
+ add_coord_conv_map: ${context_add_coord_conv_map}
235
+ mask_soft_approx_scheduler_config:
236
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
237
+ num_steps: 40000
238
+ initial_value: 10.0
239
+ final_value: 1000.0
240
+ interpolation_scheme: constant
241
+ use_contact_map: ${use_contact_map}
242
+ use_sdf_maps: ${use_sdf_maps}
243
+ use_normals_maps: ${use_normals_maps}
244
+ which_objects: ${which_objects}
245
+ grasped_dtc_max_value: ${grasped_dtc_max_value}
246
+ env_dtc_max_value: ${env_dtc_max_value}
247
+ grasped_normals_mask_max_dtc_value: ${grasped_normals_mask_max_dtc_value}
248
+ env_normals_mask_max_dtc_value: ${env_normals_mask_max_dtc_value}
249
+ clamp_dtc: ${clamp_dtc}
250
+ max_contact_prob: ${max_contact_prob}
251
+ mask_normals_within_sdf: ${mask_normals_within_sdf}
252
+ dtc_adaptive_normalization: ${dtc_adaptive_normalization}
253
+ adaptive_normals_mask: ${adaptive_normals_mask}
254
+ max_depth: ${max_depth}
255
+ image_shape: ${agent.desired_image_shape}
256
+ learnable_contact_preprocess_params: ${learnable_contact_preprocess_params}
257
+ learning_rate: ${agent.config.train_cfg.lr}
258
+ weight_decay: 0.0
259
+ contact_model_name: ${contact_model_name}
260
+ zero_centered: false
261
+ suite:
262
+ suite: frankagym
263
+ name: frankagym
264
+ frame_stack: ${agent.n_obs_steps}
265
+ action_repeat: 1
266
+ discount: 0.99
267
+ hidden_dim: 1024
268
+ num_train_frames: 2010
269
+ num_seed_frames: 260
270
+ num_train_epochs: 5000
271
+ validate_every_epochs: 100
272
+ validate_diffusion_on_action_loss_every_epochs: 500
273
+ train_eval_diffusion_on_action_loss_every_epochs: 500
274
+ check_topk_every_epochs: 10
275
+ save_snapshot_every_epochs: 5000
276
+ eval_every_frames: 2000
277
+ num_eval_episodes: 5
278
+ save_snapshot: true
279
+ wait_for_user_to_start_episode: true
280
+ task_make_fn:
281
+ _target_: suite.frankagym.make
282
+ name: ${task_name}
283
+ height: 240
284
+ width: 320
285
+ frame_stack: ${suite.frame_stack}
286
+ action_repeat: ${suite.action_repeat}
287
+ seed: ${seed}
288
+ enable_arm: ${agent.enable_arm}
289
+ enable_gripper: ${enable_gripper}
290
+ start_with_gripper_open: ${start_with_gripper_open}
291
+ enable_camera: ${agent.enable_camera}
292
+ path_to_depth_extrinsics: ${path_to_depth_extrinsics}
293
+ contact_estimation_model_ckpt_path: ${contact_estimation_model_ckpt_path}
294
+ x_limit: ${x_limit}
295
+ y_limit: ${y_limit}
296
+ z_limit: ${z_limit}
297
+ device: ${device}
298
+ interpolation_frequency: ${interpolation_frequency}
299
+ policy_frequency: ${policy_frequency}
300
+ debug_timestamps: ${debug_timestamps}
301
+ stop_after_action: ${stop_after_action}
302
+ open_loop: ${open_loop}
303
+ wait_for_new_camera_frames: ${wait_for_new_camera_frames}
304
+ action_key: ${action_key}
305
+ action_trajectory_horizon: ${agent.config.policy_cfg.horizon}
306
+ action_trajectories: ${action_trajectories}
307
+ path_to_zarr_dataset: ${expert_dataset}
308
+ agent_policy_cfg: ???
309
+ true_action_history: ${true_action_history}
310
+ num_train_frames_bc: 50000
311
+ num_train_frames_drq: 1100000
312
+ stddev_schedule_drq: linear(1.0,0.1,100000)
313
+ task_name: FrankaInsertion-v1
314
+ num_train_frames_vinn: 25000
315
+ num_train_frames_diffusion: 1000000
316
+ num_train_epochs_bc: 5000
317
+ num_train_epochs_diffusion: 5000
318
+ validate_every_epochs_bc: 5
319
+ validate_every_epochs_diffusion: 25
320
+ validate_diffusion_on_action_loss_every_epochs: 50
321
+ train_eval_diffusion_on_action_loss_every_epochs: 500
322
+ check_topk_every_epochs: 5
323
+ check_topk_every_epochs_diffusion: ${validate_diffusion_on_action_loss_every_epochs}
324
+ save_snapshot_every_epochs_diffusion: 5000
325
+ x_limit:
326
+ - 0.2
327
+ - 0.7
328
+ y_limit:
329
+ - -0.4
330
+ - 0.4
331
+ z_limit:
332
+ - -0.05
333
+ - 0.55
334
+ home_displacement:
335
+ - 0.55
336
+ - 0.0
337
+ - 0.55
338
+ - 180.0
339
+ - 0.0
340
+ - 0.0
341
+ enable_gripper: true
342
+ start_with_gripper_open: true
343
+ offset_mask:
344
+ - 1
345
+ - 1
346
+ - 1
347
+ - 1
348
+ - 1
349
+ - 1
350
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
201841/.hydra/hydra.yaml ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: ${final_experiment_dir}
4
+ sweep:
5
+ dir: ${final_experiment_dir}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ submitit_folder: ${final_experiment_dir}/.slurm
9
+ timeout_min: 60
10
+ cpus_per_task: null
11
+ gpus_per_node: null
12
+ tasks_per_node: 1
13
+ mem_gb: null
14
+ nodes: 1
15
+ name: ${hydra.job.name}
16
+ stderr_to_stdout: false
17
+ _target_: hydra_plugins.hydra_submitit_launcher.submitit_launcher.LocalLauncher
18
+ sweeper:
19
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
20
+ max_batch_size: null
21
+ params: null
22
+ help:
23
+ app_name: ${hydra.job.name}
24
+ header: '${hydra.help.app_name} is powered by Hydra.
25
+
26
+ '
27
+ footer: 'Powered by Hydra (https://hydra.cc)
28
+
29
+ Use --hydra-help to view Hydra specific help
30
+
31
+ '
32
+ template: '${hydra.help.header}
33
+
34
+ == Configuration groups ==
35
+
36
+ Compose your configuration from those groups (group=option)
37
+
38
+
39
+ $APP_CONFIG_GROUPS
40
+
41
+
42
+ == Config ==
43
+
44
+ Override anything in the config (foo.bar=value)
45
+
46
+
47
+ $CONFIG
48
+
49
+
50
+ ${hydra.help.footer}
51
+
52
+ '
53
+ hydra_help:
54
+ template: 'Hydra (${hydra.runtime.version})
55
+
56
+ See https://hydra.cc for more info.
57
+
58
+
59
+ == Flags ==
60
+
61
+ $FLAGS_HELP
62
+
63
+
64
+ == Configuration groups ==
65
+
66
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
67
+ to command line)
68
+
69
+
70
+ $HYDRA_CONFIG_GROUPS
71
+
72
+
73
+ Use ''--cfg hydra'' to Show the Hydra config.
74
+
75
+ '
76
+ hydra_help: ???
77
+ hydra_logging:
78
+ version: 1
79
+ formatters:
80
+ simple:
81
+ format: '[%(asctime)s][HYDRA] %(message)s'
82
+ handlers:
83
+ console:
84
+ class: logging.StreamHandler
85
+ formatter: simple
86
+ stream: ext://sys.stdout
87
+ root:
88
+ level: INFO
89
+ handlers:
90
+ - console
91
+ loggers:
92
+ logging_example:
93
+ level: DEBUG
94
+ disable_existing_loggers: false
95
+ job_logging:
96
+ version: 1
97
+ formatters:
98
+ simple:
99
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
100
+ handlers:
101
+ console:
102
+ class: logging.StreamHandler
103
+ formatter: simple
104
+ stream: ext://sys.stdout
105
+ file:
106
+ class: logging.FileHandler
107
+ formatter: simple
108
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
109
+ root:
110
+ level: INFO
111
+ handlers:
112
+ - console
113
+ - file
114
+ disable_existing_loggers: false
115
+ env: {}
116
+ mode: RUN
117
+ searchpath: []
118
+ callbacks: {}
119
+ output_subdir: .hydra
120
+ overrides:
121
+ hydra:
122
+ - hydra.mode=RUN
123
+ task:
124
+ - agent=diffusion
125
+ - suite=frankagym
126
+ - suite/frankagym_task@_global_=insertion
127
+ job:
128
+ name: eval_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/497_0/201841
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
201841/.hydra/overrides.yaml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ - agent=diffusion
2
+ - suite=frankagym
3
+ - suite/frankagym_task@_global_=insertion
201841/eval_policy.log ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [2024-12-17 20:18:41,502][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-17 20:18:41,505][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-17 20:18:42,896][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
+
config.yaml ADDED
@@ -0,0 +1,546 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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: 0
8
+ device: cuda
9
+ save_video: true
10
+ save_train_video: true
11
+ use_tb: true
12
+ use_wandb: true
13
+ wandb_run_id: '497_0'
14
+ wandb_notes: 497_0_req_580_0
15
+ eval: false
16
+ true_action_history: false
17
+ process_contact_features: ${eval}
18
+ obs_type: pixels
19
+ use_color: true
20
+ use_depth: true
21
+ use_masks: false
22
+ mask_list:
23
+ - EE_obj_mask
24
+ mask_representation: channels
25
+ crop_hw:
26
+ - 144
27
+ - 144
28
+ crop_down_offset: 48
29
+ color_crop_type: null
30
+ depth_crop_type: null
31
+ segmask_crop_type: null
32
+ add_crop_binary_mask: false
33
+ add_coord_conv_map: false
34
+ use_context_color: false
35
+ use_context_depth: false
36
+ use_context_segmask: false
37
+ context_color_crop_type: null
38
+ context_depth_crop_type: null
39
+ context_segmask_crop_type: null
40
+ context_add_crop_binary_mask: false
41
+ context_add_coord_conv_map: false
42
+ use_contact_map: false
43
+ use_sdf_maps: false
44
+ use_normals_maps: false
45
+ which_objects: both
46
+ max_contact_prob: 0.1
47
+ max_depth: 2.0
48
+ grasped_dtc_max_value: 0.2
49
+ env_dtc_max_value: 0.4
50
+ grasped_normals_mask_max_dtc_value: 0.2
51
+ env_normals_mask_max_dtc_value: 0.4
52
+ clamp_dtc: true
53
+ dtc_adaptive_normalization: false
54
+ mask_normals_within_sdf: true
55
+ adaptive_normals_mask: true
56
+ learnable_contact_preprocess_params: true
57
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
58
+ contact_estimation_model_ckpt_path: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
59
+ encoder_type: small
60
+ debug_timestamps: false
61
+ open_loop: false
62
+ action_trajectories: true
63
+ stop_after_action: false
64
+ interpolation_frequency: 25
65
+ policy_frequency: 5
66
+ wait_for_new_camera_frames: true
67
+ baseline: false
68
+ train_demo_idxs_list_or_num: -1
69
+ log_train_every_steps: 25
70
+ name_of_expert_demo: 112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
71
+ expert_dataset_dirpath: ${root_dir}/FISH/expert_demos/${suite.name}/${task_name}/${name_of_expert_demo}
72
+ store_dataset_in_memory: false
73
+ expert_dataset: ${expert_dataset_dirpath}/demos.zarr
74
+ action_key: ${oc.if_else:${action_trajectories}, 'action_trajectory_${interpolation_frequency}hz',
75
+ 'action'}
76
+ semantic_demo_grouping_name: semantic_demo_grouping.yaml
77
+ semantic_demo_grouping: ${expert_dataset_dirpath}/${semantic_demo_grouping_name}
78
+ include_groups_list:
79
+ - german_twodim
80
+ expert_dataset_config: ${expert_dataset_dirpath}/demo_config.yaml
81
+ name_of_valid_demo: 112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
82
+ valid_dataset_dir: ${root_dir}/FISH/expert_demos/${suite.name}/${task_name}/${name_of_valid_demo}/demos.zarr
83
+ valid_demo_idxs_list_or_num: null
84
+ val_num_groups: 0
85
+ load_bc: ${agent.load_checkpoint}
86
+ checkpoint_epoch_list:
87
+ - 99
88
+ - 199
89
+ - 299
90
+ - 399
91
+ - 499
92
+ - 599
93
+ - 699
94
+ - 799
95
+ - 899
96
+ - 999
97
+ - 1249
98
+ - 1499
99
+ - 1749
100
+ - 1999
101
+ - 2999
102
+ - 3999
103
+ - 4999
104
+ - 5999
105
+ - 6999
106
+ - 7999
107
+ - 8999
108
+ - 9999
109
+ snapshot_root_dir: /mnt/kostas-graid/datasets/extrinsic_contact_data/FISH
110
+ save_snapshot: true
111
+ save_last_snapshot: true
112
+ save_snapshot_when_done: true
113
+ top_k_checkpoints: 5
114
+ save_snapshot_link_to_weights_dir: deprecated
115
+ bc_regularize: false
116
+ bc_weight_type: qfilter
117
+ experiment_dir: ./exp_local/${suite.name}_${obs_type}/${task_name}/${wandb_run_id}
118
+ agent:
119
+ _target_: agent.diffusion_policy.DiffusionPolicyAgent
120
+ name: diffusion_policy
121
+ load_checkpoint: ${eval}
122
+ device: ${device}
123
+ n_obs_steps: ${.config.policy_cfg.n_obs_steps}
124
+ suite_name: ${suite.name}
125
+ obs_type: ${obs_type}
126
+ enable_arm: ${eval}
127
+ enable_camera: ${eval}
128
+ use_tb: ${use_tb}
129
+ desired_image_shape:
130
+ - 13
131
+ - 180
132
+ - 240
133
+ orig_cam_shape:
134
+ - 3
135
+ - 240
136
+ - 320
137
+ config:
138
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
139
+ compile: false
140
+ device: ${device}
141
+ cam_resize_shape: ${agent.desired_image_shape}
142
+ orig_cam_shape: ${agent.orig_cam_shape}
143
+ policy_frequency: ${policy_frequency}
144
+ interpolation_frequency: ${interpolation_frequency}
145
+ policy_cfg:
146
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
147
+ n_obs_steps: 1
148
+ horizon: 36
149
+ n_action_steps: ${agent.config.policy_cfg.horizon}
150
+ output_shapes:
151
+ action:
152
+ - 7
153
+ input_normalization_modes:
154
+ observation.image: mean_std
155
+ observation.state: min_max
156
+ observation.action_history: min_max
157
+ output_normalization_modes:
158
+ action: min_max
159
+ vision_backbone: resnet18
160
+ pretrained_backbone_weights: null
161
+ transforms:
162
+ - _target_: torchaug.transforms.RandomAffine
163
+ degrees:
164
+ - -5
165
+ - 5
166
+ translate:
167
+ - 0.05
168
+ - 0.05
169
+ batch_transform: true
170
+ num_chunks: -1
171
+ batch_inplace: true
172
+ - _target_: torchaug.transforms.RandomColorJitter
173
+ brightness: 0.3
174
+ contrast: 0.4
175
+ saturation: 0.5
176
+ hue: 0.08
177
+ batch_transform: true
178
+ num_chunks: -1
179
+ batch_inplace: true
180
+ use_group_norm: true
181
+ spatial_softmax_num_keypoints: 32
182
+ action_history_encoder_config:
183
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
184
+ in_channels: 7
185
+ out_channels: 32
186
+ history_length: 6
187
+ kernel_size: ${agent.config.policy_cfg.kernel_size}
188
+ downsample_kernel_size: 3
189
+ downsample_stride: 2
190
+ downsample_padding: 1
191
+ down_dims:
192
+ - 256
193
+ - 512
194
+ - 1024
195
+ kernel_size: 5
196
+ n_groups: 8
197
+ diffusion_step_embed_dim: 128
198
+ use_film_scale_modulation: true
199
+ noise_scheduler_type: DDIM
200
+ beta_schedule: squaredcos_cap_v2
201
+ beta_start: 0.0001
202
+ beta_end: 0.02
203
+ prediction_type: epsilon
204
+ clip_sample: true
205
+ clip_sample_range: 1.0
206
+ num_train_timesteps: 50
207
+ num_inference_steps: 10
208
+ do_mask_loss_for_padding: false
209
+ input_shapes:
210
+ observation.image:
211
+ - 13
212
+ - 180
213
+ - 240
214
+ context_observation.image:
215
+ - 13
216
+ - 180
217
+ - 240
218
+ observation.state:
219
+ - 8
220
+ observation.action_history:
221
+ - 7
222
+ train_cfg:
223
+ _target_: utils.TrainConfig
224
+ lr: 0.0001
225
+ lr_scheduler: cosine
226
+ lr_warmup_steps: 500
227
+ adam_betas:
228
+ - 0.95
229
+ - 0.999
230
+ adam_eps: 1.0e-08
231
+ adam_weight_decay: 1.0e-06
232
+ grad_clip_norm: 10
233
+ offline_steps: ${num_train_frames_diffusion}
234
+ use_amp: true
235
+ observation_cfg:
236
+ _target_: agent.encoder.VisualFeatureSet
237
+ use_depth: ${use_depth}
238
+ use_color: ${use_color}
239
+ mask_input_dict:
240
+ _target_: agent.encoder.MaskInputDict
241
+ enable: ${use_masks}
242
+ representation: ${mask_representation}
243
+ mask_list: ${mask_list}
244
+ crop_input_config:
245
+ _target_: agent.encoder.CropInputConfig
246
+ color_crop_type: ${color_crop_type}
247
+ depth_crop_type: ${depth_crop_type}
248
+ segmask_crop_type: ${segmask_crop_type}
249
+ crop_hw: ${crop_hw}
250
+ crop_down_offset: ${crop_down_offset}
251
+ add_crop_binary_mask: ${add_crop_binary_mask}
252
+ add_coord_conv_map: ${add_coord_conv_map}
253
+ context_input_config:
254
+ _target_: agent.encoder.ContextInputConfig
255
+ use_color: ${use_context_color}
256
+ use_depth: ${use_context_depth}
257
+ mask_input_dict:
258
+ _target_: agent.encoder.MaskInputDict
259
+ enable: ${use_context_segmask}
260
+ representation: ${mask_representation}
261
+ mask_list: ${mask_list}
262
+ crop_input_config:
263
+ _target_: agent.encoder.CropInputConfig
264
+ color_crop_type: ${context_color_crop_type}
265
+ depth_crop_type: ${context_depth_crop_type}
266
+ segmask_crop_type: ${context_segmask_crop_type}
267
+ crop_hw: ${crop_hw}
268
+ crop_down_offset: ${crop_down_offset}
269
+ add_crop_binary_mask: ${context_add_crop_binary_mask}
270
+ add_coord_conv_map: ${context_add_coord_conv_map}
271
+ mask_soft_approx_scheduler_config:
272
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
273
+ num_steps: 40000
274
+ initial_value: 10.0
275
+ final_value: 1000.0
276
+ interpolation_scheme: cosine
277
+ use_contact_map: ${use_contact_map}
278
+ use_sdf_maps: ${use_sdf_maps}
279
+ use_normals_maps: ${use_normals_maps}
280
+ which_objects: ${which_objects}
281
+ grasped_dtc_max_value: ${grasped_dtc_max_value}
282
+ env_dtc_max_value: ${env_dtc_max_value}
283
+ grasped_normals_mask_max_dtc_value: ${grasped_normals_mask_max_dtc_value}
284
+ env_normals_mask_max_dtc_value: ${env_normals_mask_max_dtc_value}
285
+ clamp_dtc: ${clamp_dtc}
286
+ max_contact_prob: ${max_contact_prob}
287
+ mask_normals_within_sdf: ${mask_normals_within_sdf}
288
+ dtc_adaptive_normalization: ${dtc_adaptive_normalization}
289
+ adaptive_normals_mask: ${adaptive_normals_mask}
290
+ max_depth: ${max_depth}
291
+ image_shape: ${agent.desired_image_shape}
292
+ learnable_contact_preprocess_params: ${learnable_contact_preprocess_params}
293
+ learning_rate: 0.0001
294
+ weight_decay: 0.0
295
+ contact_model_name: ${contact_model_name}
296
+ zero_centered: false
297
+ suite:
298
+ suite: frankagym
299
+ name: frankagym
300
+ frame_stack: ${agent.n_obs_steps}
301
+ action_repeat: 1
302
+ discount: 0.99
303
+ hidden_dim: 1024
304
+ num_train_frames: 1000000
305
+ num_seed_frames: 0
306
+ num_train_epochs: 15000
307
+ validate_every_epochs: 250
308
+ validate_diffusion_on_action_loss_every_epochs: 250
309
+ train_eval_diffusion_on_action_loss_every_epochs: 250
310
+ check_topk_every_epochs: 250
311
+ save_snapshot_every_epochs: 1500
312
+ eval_every_frames: 2000
313
+ num_eval_episodes: 5
314
+ save_snapshot: true
315
+ wait_for_user_to_start_episode: true
316
+ task_make_fn:
317
+ _target_: suite.frankagym.make
318
+ name: ${task_name}
319
+ height: 240
320
+ width: 320
321
+ frame_stack: ${suite.frame_stack}
322
+ action_repeat: ${suite.action_repeat}
323
+ seed: ${seed}
324
+ enable_arm: ${agent.enable_arm}
325
+ enable_gripper: ${enable_gripper}
326
+ start_with_gripper_open: ${start_with_gripper_open}
327
+ enable_camera: ${agent.enable_camera}
328
+ path_to_depth_extrinsics: ${path_to_depth_extrinsics}
329
+ contact_estimation_model_ckpt_path: ${contact_estimation_model_ckpt_path}
330
+ x_limit: ${x_limit}
331
+ y_limit: ${y_limit}
332
+ z_limit: ${z_limit}
333
+ device: ${device}
334
+ interpolation_frequency: ${interpolation_frequency}
335
+ policy_frequency: ${policy_frequency}
336
+ debug_timestamps: ${debug_timestamps}
337
+ stop_after_action: ${stop_after_action}
338
+ open_loop: ${open_loop}
339
+ wait_for_new_camera_frames: ${wait_for_new_camera_frames}
340
+ action_key: ${action_key}
341
+ action_trajectory_horizon: ${agent.config.policy_cfg.horizon}
342
+ action_trajectories: ${action_trajectories}
343
+ path_to_zarr_dataset: ${expert_dataset}
344
+ agent_policy_cfg:
345
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
346
+ compile: false
347
+ device: ${device}
348
+ cam_resize_shape: ${agent.desired_image_shape}
349
+ orig_cam_shape: ${agent.orig_cam_shape}
350
+ policy_frequency: ${policy_frequency}
351
+ interpolation_frequency: ${interpolation_frequency}
352
+ policy_cfg:
353
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
354
+ n_obs_steps: 1
355
+ horizon: 36
356
+ n_action_steps: ${agent.config.policy_cfg.horizon}
357
+ output_shapes:
358
+ action:
359
+ - 7
360
+ input_normalization_modes:
361
+ observation.image: mean_std
362
+ observation.state: min_max
363
+ observation.action_history: min_max
364
+ output_normalization_modes:
365
+ action: min_max
366
+ vision_backbone: resnet18
367
+ pretrained_backbone_weights: null
368
+ transforms:
369
+ - _target_: torchaug.transforms.RandomAffine
370
+ degrees:
371
+ - -5
372
+ - 5
373
+ translate:
374
+ - 0.05
375
+ - 0.05
376
+ batch_transform: true
377
+ num_chunks: -1
378
+ batch_inplace: true
379
+ - _target_: torchaug.transforms.RandomColorJitter
380
+ brightness: 0.3
381
+ contrast: 0.4
382
+ saturation: 0.5
383
+ hue: 0.08
384
+ batch_transform: true
385
+ num_chunks: -1
386
+ batch_inplace: true
387
+ use_group_norm: true
388
+ spatial_softmax_num_keypoints: 32
389
+ action_history_encoder_config:
390
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
391
+ in_channels: 7
392
+ out_channels: 32
393
+ history_length: 6
394
+ kernel_size: ${agent.config.policy_cfg.kernel_size}
395
+ downsample_kernel_size: 3
396
+ downsample_stride: 2
397
+ downsample_padding: 1
398
+ down_dims:
399
+ - 256
400
+ - 512
401
+ - 1024
402
+ kernel_size: 5
403
+ n_groups: 8
404
+ diffusion_step_embed_dim: 128
405
+ use_film_scale_modulation: true
406
+ noise_scheduler_type: DDIM
407
+ beta_schedule: squaredcos_cap_v2
408
+ beta_start: 0.0001
409
+ beta_end: 0.02
410
+ prediction_type: epsilon
411
+ clip_sample: true
412
+ clip_sample_range: 1.0
413
+ num_train_timesteps: 50
414
+ num_inference_steps: 10
415
+ do_mask_loss_for_padding: false
416
+ input_shapes:
417
+ observation.image:
418
+ - 13
419
+ - 180
420
+ - 240
421
+ context_observation.image:
422
+ - 13
423
+ - 180
424
+ - 240
425
+ observation.state:
426
+ - 8
427
+ observation.action_history:
428
+ - 7
429
+ train_cfg:
430
+ _target_: utils.TrainConfig
431
+ lr: 0.0001
432
+ lr_scheduler: cosine
433
+ lr_warmup_steps: 500
434
+ adam_betas:
435
+ - 0.95
436
+ - 0.999
437
+ adam_eps: 1.0e-08
438
+ adam_weight_decay: 1.0e-06
439
+ grad_clip_norm: 10
440
+ offline_steps: ${num_train_frames_diffusion}
441
+ use_amp: true
442
+ observation_cfg:
443
+ _target_: agent.encoder.VisualFeatureSet
444
+ use_depth: ${use_depth}
445
+ use_color: ${use_color}
446
+ mask_input_dict:
447
+ _target_: agent.encoder.MaskInputDict
448
+ enable: ${use_masks}
449
+ representation: ${mask_representation}
450
+ mask_list: ${mask_list}
451
+ crop_input_config:
452
+ _target_: agent.encoder.CropInputConfig
453
+ color_crop_type: ${color_crop_type}
454
+ depth_crop_type: ${depth_crop_type}
455
+ segmask_crop_type: ${segmask_crop_type}
456
+ crop_hw: ${crop_hw}
457
+ crop_down_offset: ${crop_down_offset}
458
+ add_crop_binary_mask: ${add_crop_binary_mask}
459
+ add_coord_conv_map: ${add_coord_conv_map}
460
+ context_input_config:
461
+ _target_: agent.encoder.ContextInputConfig
462
+ use_color: ${use_context_color}
463
+ use_depth: ${use_context_depth}
464
+ mask_input_dict:
465
+ _target_: agent.encoder.MaskInputDict
466
+ enable: ${use_context_segmask}
467
+ representation: ${mask_representation}
468
+ mask_list: ${mask_list}
469
+ crop_input_config:
470
+ _target_: agent.encoder.CropInputConfig
471
+ color_crop_type: ${context_color_crop_type}
472
+ depth_crop_type: ${context_depth_crop_type}
473
+ segmask_crop_type: ${context_segmask_crop_type}
474
+ crop_hw: ${crop_hw}
475
+ crop_down_offset: ${crop_down_offset}
476
+ add_crop_binary_mask: ${context_add_crop_binary_mask}
477
+ add_coord_conv_map: ${context_add_coord_conv_map}
478
+ mask_soft_approx_scheduler_config:
479
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
480
+ num_steps: 40000
481
+ initial_value: 10.0
482
+ final_value: 1000.0
483
+ interpolation_scheme: cosine
484
+ use_contact_map: ${use_contact_map}
485
+ use_sdf_maps: ${use_sdf_maps}
486
+ use_normals_maps: ${use_normals_maps}
487
+ which_objects: ${which_objects}
488
+ grasped_dtc_max_value: ${grasped_dtc_max_value}
489
+ env_dtc_max_value: ${env_dtc_max_value}
490
+ grasped_normals_mask_max_dtc_value: ${grasped_normals_mask_max_dtc_value}
491
+ env_normals_mask_max_dtc_value: ${env_normals_mask_max_dtc_value}
492
+ clamp_dtc: ${clamp_dtc}
493
+ max_contact_prob: ${max_contact_prob}
494
+ mask_normals_within_sdf: ${mask_normals_within_sdf}
495
+ dtc_adaptive_normalization: ${dtc_adaptive_normalization}
496
+ adaptive_normals_mask: ${adaptive_normals_mask}
497
+ max_depth: ${max_depth}
498
+ image_shape: ${agent.desired_image_shape}
499
+ learnable_contact_preprocess_params: ${learnable_contact_preprocess_params}
500
+ learning_rate: 0.0001
501
+ weight_decay: 0.0
502
+ contact_model_name: ${contact_model_name}
503
+ zero_centered: false
504
+ true_action_history: ${true_action_history}
505
+ num_train_frames_bc: 50000
506
+ num_train_frames_drq: 1100000
507
+ stddev_schedule_drq: linear(1.0,0.1,100000)
508
+ task_name: FrankaInsertion-v1
509
+ num_train_frames_vinn: 25000
510
+ num_train_frames_diffusion: 1000000
511
+ num_train_epochs_bc: 5000
512
+ num_train_epochs_diffusion: 15000
513
+ validate_every_epochs_bc: 5
514
+ validate_every_epochs_diffusion: 250
515
+ validate_diffusion_on_action_loss_every_epochs: 250
516
+ train_eval_diffusion_on_action_loss_every_epochs: 250
517
+ check_topk_every_epochs: 5
518
+ check_topk_every_epochs_diffusion: 250
519
+ save_snapshot_every_epochs_diffusion: 1500
520
+ x_limit:
521
+ - 0.2
522
+ - 0.7
523
+ y_limit:
524
+ - -0.4
525
+ - 0.4
526
+ z_limit:
527
+ - -0.05
528
+ - 0.55
529
+ home_displacement:
530
+ - 0.55
531
+ - 0.0
532
+ - 0.55
533
+ - 180.0
534
+ - 0.0
535
+ - 0.0
536
+ enable_gripper: true
537
+ start_with_gripper_open: true
538
+ offset_mask:
539
+ - 1
540
+ - 1
541
+ - 1
542
+ - 1
543
+ - 1
544
+ - 1
545
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
546
+ feature_type: 180x240_1_RGB_D_2.0_acthst_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1