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

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +49 -0
  2. 231uxqco/episode_rosbags/episode_0_2025-01-21-21-03-19.bag +3 -0
  3. 231uxqco/episode_rosbags/episode_1_2025-01-21-21-03-49.bag +3 -0
  4. 231uxqco/episode_rosbags/episode_4_2025-01-21-21-05-35.bag +3 -0
  5. 37t5ymwr/episode_rosbags/episode_1_2025-01-21-20-57-22.bag +3 -0
  6. 37t5ymwr/episode_rosbags/episode_2_2025-01-21-20-57-56.bag +3 -0
  7. 37t5ymwr/episode_rosbags/episode_4_2025-01-21-20-59-22.bag +3 -0
  8. 5z33ibf5/.hydra/config.yaml +352 -0
  9. 5z33ibf5/.hydra/hydra.yaml +169 -0
  10. 5z33ibf5/.hydra/overrides.yaml +3 -0
  11. 5z33ibf5/episode_rosbags/episode_0_2025-01-21-21-19-25.bag +3 -0
  12. 5z33ibf5/episode_rosbags/episode_1_2025-01-21-21-20-18.bag +3 -0
  13. 5z33ibf5/episode_rosbags/episode_2_2025-01-21-21-21-10.bag +3 -0
  14. 5z33ibf5/eval_video/0_eval.mp4 +3 -0
  15. 5z33ibf5/eval_video/1_eval.mp4 +3 -0
  16. 5z33ibf5/eval_video/2_eval.mp4 +3 -0
  17. 5z33ibf5/eval_video/3_eval.mp4 +3 -0
  18. 5z33ibf5/eval_video/4_eval.mp4 +3 -0
  19. 5z33ibf5/tb/events.out.tfevents.1737512323.leonmkim-ROG-Strix-G15CS-G15CS.2648747.0 +3 -0
  20. 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/code/FISH/eval_robot.py +606 -0
  21. 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/config.yaml +936 -0
  22. 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/diff.patch +13 -0
  23. 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/table/eval/success_rate_ci_5_1b420c32327aa0ba7f75.table.json +1 -0
  24. 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/table/eval/total_success_rate_ci_6_7f69fec0f5489086ad7f.table.json +1 -0
  25. 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/videos/eval/0_eval_0_52952b9d92244b702210.mp4 +3 -0
  26. 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/videos/eval/1_eval_1_f36a449d922a9d3cb168.mp4 +3 -0
  27. 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/videos/eval/2_eval_2_1bfe16d417bf0eae1e35.mp4 +3 -0
  28. 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/videos/eval/3_eval_3_d2f247956aef8b976274.mp4 +3 -0
  29. 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/videos/eval/4_eval_4_0b307d108c1b40ec3a03.mp4 +3 -0
  30. 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/output.log +280 -0
  31. 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/wandb-metadata.json +92 -0
  32. 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/wandb-summary.json +1 -0
  33. 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/logs/debug-internal.log +0 -0
  34. 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/logs/debug.log +31 -0
  35. 6yr9kinc/.hydra/config.yaml +352 -0
  36. 6yr9kinc/.hydra/hydra.yaml +169 -0
  37. 6yr9kinc/.hydra/overrides.yaml +3 -0
  38. 6yr9kinc/eval_policy.log +15 -0
  39. 8wyk5kwf/.hydra/config.yaml +352 -0
  40. 8wyk5kwf/.hydra/hydra.yaml +169 -0
  41. 8wyk5kwf/.hydra/overrides.yaml +3 -0
  42. 8wyk5kwf/episode_rosbags/aligned_depth_to_color_K.npy +3 -0
  43. 8wyk5kwf/episode_rosbags/cam_tf_world.npy +3 -0
  44. 8wyk5kwf/episode_rosbags/color_K.npy +3 -0
  45. 8wyk5kwf/episode_rosbags/depth_K.npy +3 -0
  46. 8wyk5kwf/episode_rosbags/episode_0_2025-01-21-21-41-29.bag +3 -0
  47. 8wyk5kwf/episode_rosbags/episode_1_2025-01-21-21-42-00.bag +3 -0
  48. 8wyk5kwf/episode_rosbags/episode_2_2025-01-21-21-42-34.bag +3 -0
  49. 8wyk5kwf/eval_robot.log +12 -0
  50. 8wyk5kwf/eval_video/0_eval.mp4 +3 -0
.gitattributes CHANGED
@@ -64,3 +64,52 @@ hcp6xxlt/eval_video/4_eval.mp4 filter=lfs diff=lfs merge=lfs -text
64
  hcp6xxlt/eval_video/2_eval.mp4 filter=lfs diff=lfs merge=lfs -text
65
  hcp6xxlt/eval_video/0_eval.mp4 filter=lfs diff=lfs merge=lfs -text
66
  231uxqco/episode_rosbags/episode_2_2025-01-21-21-04-15.bag filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  hcp6xxlt/eval_video/2_eval.mp4 filter=lfs diff=lfs merge=lfs -text
65
  hcp6xxlt/eval_video/0_eval.mp4 filter=lfs diff=lfs merge=lfs -text
66
  231uxqco/episode_rosbags/episode_2_2025-01-21-21-04-15.bag filter=lfs diff=lfs merge=lfs -text
67
+ 231uxqco/episode_rosbags/episode_1_2025-01-21-21-03-49.bag filter=lfs diff=lfs merge=lfs -text
68
+ 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/videos/eval/4_eval_4_0b307d108c1b40ec3a03.mp4 filter=lfs diff=lfs merge=lfs -text
69
+ 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/videos/eval/2_eval_2_1bfe16d417bf0eae1e35.mp4 filter=lfs diff=lfs merge=lfs -text
70
+ 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/videos/eval/1_eval_1_f36a449d922a9d3cb168.mp4 filter=lfs diff=lfs merge=lfs -text
71
+ 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/videos/eval/0_eval_0_52952b9d92244b702210.mp4 filter=lfs diff=lfs merge=lfs -text
72
+ 5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/videos/eval/3_eval_3_d2f247956aef8b976274.mp4 filter=lfs diff=lfs merge=lfs -text
73
+ 5z33ibf5/eval_video/3_eval.mp4 filter=lfs diff=lfs merge=lfs -text
74
+ 5z33ibf5/eval_video/4_eval.mp4 filter=lfs diff=lfs merge=lfs -text
75
+ 5z33ibf5/eval_video/1_eval.mp4 filter=lfs diff=lfs merge=lfs -text
76
+ 5z33ibf5/eval_video/2_eval.mp4 filter=lfs diff=lfs merge=lfs -text
77
+ 5z33ibf5/eval_video/0_eval.mp4 filter=lfs diff=lfs merge=lfs -text
78
+ 231uxqco/episode_rosbags/episode_0_2025-01-21-21-03-19.bag filter=lfs diff=lfs merge=lfs -text
79
+ 37t5ymwr/episode_rosbags/episode_4_2025-01-21-20-59-22.bag filter=lfs diff=lfs merge=lfs -text
80
+ 231uxqco/episode_rosbags/episode_4_2025-01-21-21-05-35.bag filter=lfs diff=lfs merge=lfs -text
81
+ 8wyk5kwf/wandb/run-20250121_214105-8wyk5kwf/files/media/videos/eval/4_eval_4_812bd740546f7b5fae32.mp4 filter=lfs diff=lfs merge=lfs -text
82
+ 8wyk5kwf/wandb/run-20250121_214105-8wyk5kwf/files/media/videos/eval/3_eval_3_41dd8f6943cd079f1ca4.mp4 filter=lfs diff=lfs merge=lfs -text
83
+ 8wyk5kwf/wandb/run-20250121_214105-8wyk5kwf/files/media/videos/eval/2_eval_2_d59a19bbca09918743b4.mp4 filter=lfs diff=lfs merge=lfs -text
84
+ 8wyk5kwf/wandb/run-20250121_214105-8wyk5kwf/files/media/videos/eval/0_eval_0_42455952124d4dc1494a.mp4 filter=lfs diff=lfs merge=lfs -text
85
+ 8wyk5kwf/wandb/run-20250121_214105-8wyk5kwf/files/media/videos/eval/1_eval_1_5d49fa2235834d91505b.mp4 filter=lfs diff=lfs merge=lfs -text
86
+ 8wyk5kwf/eval_video/3_eval.mp4 filter=lfs diff=lfs merge=lfs -text
87
+ 37t5ymwr/episode_rosbags/episode_2_2025-01-21-20-57-56.bag filter=lfs diff=lfs merge=lfs -text
88
+ 8wyk5kwf/eval_video/4_eval.mp4 filter=lfs diff=lfs merge=lfs -text
89
+ 8wyk5kwf/eval_video/1_eval.mp4 filter=lfs diff=lfs merge=lfs -text
90
+ 8wyk5kwf/eval_video/2_eval.mp4 filter=lfs diff=lfs merge=lfs -text
91
+ 8wyk5kwf/eval_video/0_eval.mp4 filter=lfs diff=lfs merge=lfs -text
92
+ hcp6xxlt/episode_rosbags/episode_2_2025-01-21-21-37-44.bag filter=lfs diff=lfs merge=lfs -text
93
+ hcp6xxlt/episode_rosbags/episode_0_2025-01-21-21-36-09.bag filter=lfs diff=lfs merge=lfs -text
94
+ hcp6xxlt/episode_rosbags/episode_1_2025-01-21-21-36-35.bag filter=lfs diff=lfs merge=lfs -text
95
+ 5z33ibf5/episode_rosbags/episode_0_2025-01-21-21-19-25.bag filter=lfs diff=lfs merge=lfs -text
96
+ m9j39xya/wandb/run-20250121_221248-m9j39xya/files/media/videos/eval/0_eval_0_be41a6a3e5ef05ec42a0.mp4 filter=lfs diff=lfs merge=lfs -text
97
+ m9j39xya/wandb/run-20250121_221248-m9j39xya/files/media/videos/eval/4_eval_4_ea6a2707d2dc8ca0cc1c.mp4 filter=lfs diff=lfs merge=lfs -text
98
+ m9j39xya/wandb/run-20250121_221248-m9j39xya/files/media/videos/eval/3_eval_3_9c8dea06ae5d95c512f9.mp4 filter=lfs diff=lfs merge=lfs -text
99
+ m9j39xya/wandb/run-20250121_221248-m9j39xya/files/media/videos/eval/2_eval_2_11990a56a7de0e8d16ed.mp4 filter=lfs diff=lfs merge=lfs -text
100
+ m9j39xya/wandb/run-20250121_221248-m9j39xya/files/media/videos/eval/1_eval_1_ad3604e3344632866d9d.mp4 filter=lfs diff=lfs merge=lfs -text
101
+ m9j39xya/eval_video/3_eval.mp4 filter=lfs diff=lfs merge=lfs -text
102
+ m9j39xya/eval_video/4_eval.mp4 filter=lfs diff=lfs merge=lfs -text
103
+ 37t5ymwr/episode_rosbags/episode_1_2025-01-21-20-57-22.bag filter=lfs diff=lfs merge=lfs -text
104
+ m9j39xya/eval_video/1_eval.mp4 filter=lfs diff=lfs merge=lfs -text
105
+ m9j39xya/eval_video/0_eval.mp4 filter=lfs diff=lfs merge=lfs -text
106
+ m9j39xya/eval_video/2_eval.mp4 filter=lfs diff=lfs merge=lfs -text
107
+ 5z33ibf5/episode_rosbags/episode_1_2025-01-21-21-20-18.bag filter=lfs diff=lfs merge=lfs -text
108
+ 5z33ibf5/episode_rosbags/episode_2_2025-01-21-21-21-10.bag filter=lfs diff=lfs merge=lfs -text
109
+ 8wyk5kwf/episode_rosbags/episode_1_2025-01-21-21-42-00.bag filter=lfs diff=lfs merge=lfs -text
110
+ 8wyk5kwf/episode_rosbags/episode_2_2025-01-21-21-42-34.bag filter=lfs diff=lfs merge=lfs -text
111
+ 8wyk5kwf/episode_rosbags/episode_0_2025-01-21-21-41-29.bag filter=lfs diff=lfs merge=lfs -text
112
+ aqyye28j/wandb/run-20250121_220708-aqyye28j/files/media/videos/eval/2_eval_2_96f346beb19c014ed98c.mp4 filter=lfs diff=lfs merge=lfs -text
113
+ aqyye28j/wandb/run-20250121_220708-aqyye28j/files/media/videos/eval/0_eval_0_51125b9dabf4e9b3cedc.mp4 filter=lfs diff=lfs merge=lfs -text
114
+ aqyye28j/wandb/run-20250121_220708-aqyye28j/files/media/videos/eval/1_eval_1_27250e24fb2dabe74cd6.mp4 filter=lfs diff=lfs merge=lfs -text
115
+ aqyye28j/wandb/run-20250121_220708-aqyye28j/files/media/videos/eval/3_eval_3_3cfd6f1db2c9dcc9eb14.mp4 filter=lfs diff=lfs merge=lfs -text
231uxqco/episode_rosbags/episode_0_2025-01-21-21-03-19.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ceaa7bae4e510a370957f97e51d52d23dba82dcc4e938029e43028491f0c4f33
3
+ size 1074980209
231uxqco/episode_rosbags/episode_1_2025-01-21-21-03-49.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d6879a170e36aaec26f6d5a934850216baad9f4f17f403e329f5929ad10d8657
3
+ size 1075145190
231uxqco/episode_rosbags/episode_4_2025-01-21-21-05-35.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:eda2bb1236aa33d292ed014a7f89032d352c9218023290b2db5b2b5309640de6
3
+ size 1320884069
37t5ymwr/episode_rosbags/episode_1_2025-01-21-20-57-22.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a3e851ab9568c1faaee98ac3e572c1185f121962ae8a191b5677f95f2a6b450f
3
+ size 1498588579
37t5ymwr/episode_rosbags/episode_2_2025-01-21-20-57-56.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2c6e096a0f0348b24fd8a28e803456e06b755b753eb28acdc9d9ad9547339061
3
+ size 1321418008
37t5ymwr/episode_rosbags/episode_4_2025-01-21-20-59-22.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d24b76439f5be2e94737ad303f4e77e24b58a3fdd641a7f52824aa1f1dca0d1d
3
+ size 1103146146
5z33ibf5/.hydra/config.yaml ADDED
@@ -0,0 +1,352 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ root_dir: /home/${oc.env:USER}/fish_leon
2
+ nstep: 3
3
+ seed: 41
4
+ dataset_shuffle_seed: ${seed}
5
+ device: cuda
6
+ save_video: true
7
+ save_buffer: true
8
+ use_tb: true
9
+ baseline: false
10
+ use_wandb: true
11
+ eval: true
12
+ process_contact_features: ${eval}
13
+ obs_type: pixels
14
+ use_color: true
15
+ use_depth: true
16
+ use_masks: false
17
+ mask_list:
18
+ - EE_obj_mask
19
+ mask_representation: channels
20
+ crop_hw:
21
+ - 144
22
+ - 144
23
+ crop_down_offset: 48
24
+ color_crop_type: null
25
+ depth_crop_type: null
26
+ segmask_crop_type: null
27
+ add_crop_binary_mask: false
28
+ add_coord_conv_map: false
29
+ use_context_color: false
30
+ use_context_depth: false
31
+ use_context_segmask: false
32
+ context_color_crop_type: null
33
+ context_depth_crop_type: null
34
+ context_segmask_crop_type: null
35
+ context_add_crop_binary_mask: false
36
+ context_add_coord_conv_map: false
37
+ use_contact_map: false
38
+ use_sdf_maps: false
39
+ use_normals_maps: false
40
+ which_objects: both
41
+ max_contact_prob: 0.1
42
+ max_depth: 2.0
43
+ grasped_dtc_max_value: 0.105
44
+ env_dtc_max_value: 0.425
45
+ grasped_normals_mask_max_dtc_value: 0.105
46
+ env_normals_mask_max_dtc_value: 0.425
47
+ clamp_dtc: true
48
+ dtc_adaptive_normalization: false
49
+ mask_normals_within_sdf: true
50
+ adaptive_normals_mask: true
51
+ learnable_contact_preprocess_params: false
52
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_ctxt_seed_183386_epoch_9
53
+ contact_estimation_model_ckpt_path: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
54
+ num_eval: 5
55
+ debug_timestamps: false
56
+ open_loop: false
57
+ action_trajectories: true
58
+ stop_after_action: false
59
+ interpolation_frequency: 25
60
+ policy_frequency: 5
61
+ wait_for_new_camera_frames: true
62
+ random_start: false
63
+ eval_starts: ${root_dir}/FISH/eval_starts/${suite.name}_${obs_type}/${task_name}
64
+ train_demo_idxs_list_or_num: null
65
+ num_valid_demos: null
66
+ val_num_groups: 3
67
+ name_of_expert_demo: 112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
68
+ expert_dataset_dirpath: ${root_dir}/FISH/expert_demos/${suite.name}/${task_name}/${name_of_expert_demo}
69
+ expert_dataset: ${expert_dataset_dirpath}/demos.zarr
70
+ action_key: ${oc.if_else:${action_trajectories}, 'action_trajectory_${interpolation_frequency}hz',
71
+ 'action'}
72
+ semantic_demo_grouping_name: semantic_demo_grouping.yaml
73
+ semantic_demo_grouping: ${expert_dataset_dirpath}/${semantic_demo_grouping_name}
74
+ expert_dataset_config: ${expert_dataset_dirpath}/demo_config.yaml
75
+ bc_regularize: false
76
+ bc_weight_type: qfilter
77
+ load_checkpoint: ${agent.load_checkpoint}
78
+ wandb_run_id: '4295_0'
79
+ true_action_history: false
80
+ wandb_notes: null
81
+ checkpoint_epoch: 7500
82
+ load_residual_weight: false
83
+ checkpoint_root_dir: /home/${oc.env:USER}/fish_leon/FISH
84
+ checkpoint_weight_dir: ${checkpoint_root_dir}/exp_local/${suite.name}_${obs_type}/${task_name}/${wandb_run_id}
85
+ residual_weight: ${root_dir}/FISH/weights/${suite.name}_${obs_type}/${task_name}/weight.pt
86
+ experiment_dir: ./exp_local/${suite.name}_${obs_type}/${task_name}/${wandb_run_id}
87
+ final_experiment_dir: ${experiment_dir}/${oc.generate_run_id:}
88
+ agent:
89
+ _target_: agent.diffusion_policy.DiffusionPolicyAgent
90
+ name: diffusion_policy
91
+ load_checkpoint: ${eval}
92
+ device: ${device}
93
+ n_obs_steps: ${.config.policy_cfg.n_obs_steps}
94
+ suite_name: ${suite.name}
95
+ obs_type: ${obs_type}
96
+ enable_arm: ${eval}
97
+ enable_camera: ${eval}
98
+ use_tb: ${use_tb}
99
+ desired_image_shape:
100
+ - 13
101
+ - 180
102
+ - 240
103
+ orig_cam_shape:
104
+ - 3
105
+ - 240
106
+ - 320
107
+ config:
108
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
109
+ compile: false
110
+ device: ${device}
111
+ cam_resize_shape: ${agent.desired_image_shape}
112
+ orig_cam_shape: ${agent.orig_cam_shape}
113
+ policy_frequency: ${policy_frequency}
114
+ interpolation_frequency: ${interpolation_frequency}
115
+ policy_cfg:
116
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
117
+ n_obs_steps: 1
118
+ horizon: 36
119
+ n_action_steps: ${agent.config.policy_cfg.horizon}
120
+ input_shapes:
121
+ observation.image: ${agent.config.cam_resize_shape}
122
+ context_observation.image: ${agent.config.cam_resize_shape}
123
+ observation.state:
124
+ - 8
125
+ observation.action_history:
126
+ - 7
127
+ output_shapes:
128
+ action:
129
+ - 7
130
+ input_normalization_modes:
131
+ observation.image: mean_std
132
+ observation.state: min_max
133
+ observation.action_history: min_max
134
+ output_normalization_modes:
135
+ action: min_max
136
+ vision_backbone: resnet18
137
+ crop_distractors_tlhw: null
138
+ pretrained_backbone_weights: null
139
+ transforms:
140
+ - _target_: torchaug.transforms.RandomAffine
141
+ degrees:
142
+ - -5
143
+ - 5
144
+ translate:
145
+ - 0.05
146
+ - 0.05
147
+ batch_transform: true
148
+ num_chunks: -1
149
+ batch_inplace: true
150
+ - _target_: torchaug.transforms.RandomColorJitter
151
+ brightness: 0.3
152
+ contrast: 0.4
153
+ saturation: 0.5
154
+ hue: 0.08
155
+ batch_transform: true
156
+ num_chunks: -1
157
+ batch_inplace: true
158
+ use_group_norm: true
159
+ spatial_softmax_num_keypoints: 32
160
+ action_history_encoder_config:
161
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
162
+ in_channels: 7
163
+ out_channels: 32
164
+ history_length: ${agent.config.policy_cfg.n_action_steps}
165
+ kernel_size: ${agent.config.policy_cfg.kernel_size}
166
+ downsample_kernel_size: 3
167
+ downsample_stride: 2
168
+ downsample_padding: 1
169
+ down_dims:
170
+ - 256
171
+ - 512
172
+ - 1024
173
+ kernel_size: 5
174
+ n_groups: 8
175
+ diffusion_step_embed_dim: 128
176
+ use_film_scale_modulation: true
177
+ noise_scheduler_type: DDIM
178
+ beta_schedule: squaredcos_cap_v2
179
+ beta_start: 0.0001
180
+ beta_end: 0.02
181
+ prediction_type: epsilon
182
+ clip_sample: true
183
+ clip_sample_range: 1.0
184
+ num_train_timesteps: 50
185
+ num_inference_steps: 10
186
+ do_mask_loss_for_padding: false
187
+ train_cfg:
188
+ _target_: utils.TrainConfig
189
+ lr: 0.0001
190
+ lr_scheduler: cosine
191
+ lr_warmup_steps: 500
192
+ adam_betas:
193
+ - 0.95
194
+ - 0.999
195
+ adam_eps: 1.0e-08
196
+ adam_weight_decay: 1.0e-06
197
+ grad_clip_norm: 10
198
+ offline_steps: ${num_train_frames_diffusion}
199
+ use_amp: true
200
+ observation_cfg:
201
+ _target_: agent.encoder.VisualFeatureSet
202
+ use_depth: ${use_depth}
203
+ use_color: ${use_color}
204
+ mask_input_dict:
205
+ _target_: agent.encoder.MaskInputDict
206
+ enable: ${use_masks}
207
+ representation: ${mask_representation}
208
+ mask_list: ${mask_list}
209
+ crop_input_config:
210
+ _target_: agent.encoder.CropInputConfig
211
+ color_crop_type: ${color_crop_type}
212
+ depth_crop_type: ${depth_crop_type}
213
+ segmask_crop_type: ${segmask_crop_type}
214
+ crop_hw: ${crop_hw}
215
+ crop_down_offset: ${crop_down_offset}
216
+ add_crop_binary_mask: ${add_crop_binary_mask}
217
+ add_coord_conv_map: ${add_coord_conv_map}
218
+ context_input_config:
219
+ _target_: agent.encoder.ContextInputConfig
220
+ use_color: ${use_context_color}
221
+ use_depth: ${use_context_depth}
222
+ mask_input_dict:
223
+ _target_: agent.encoder.MaskInputDict
224
+ enable: ${use_context_segmask}
225
+ representation: ${mask_representation}
226
+ mask_list: ${mask_list}
227
+ crop_input_config:
228
+ _target_: agent.encoder.CropInputConfig
229
+ color_crop_type: ${context_color_crop_type}
230
+ depth_crop_type: ${context_depth_crop_type}
231
+ segmask_crop_type: ${context_segmask_crop_type}
232
+ crop_hw: ${crop_hw}
233
+ crop_down_offset: ${crop_down_offset}
234
+ add_crop_binary_mask: ${context_add_crop_binary_mask}
235
+ add_coord_conv_map: ${context_add_coord_conv_map}
236
+ mask_soft_approx_scheduler_config:
237
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
238
+ num_steps: 40000
239
+ initial_value: 10.0
240
+ final_value: 1000.0
241
+ interpolation_scheme: constant
242
+ use_contact_map: ${use_contact_map}
243
+ use_sdf_maps: ${use_sdf_maps}
244
+ use_normals_maps: ${use_normals_maps}
245
+ which_objects: ${which_objects}
246
+ grasped_dtc_max_value: ${grasped_dtc_max_value}
247
+ env_dtc_max_value: ${env_dtc_max_value}
248
+ grasped_normals_mask_max_dtc_value: ${grasped_normals_mask_max_dtc_value}
249
+ env_normals_mask_max_dtc_value: ${env_normals_mask_max_dtc_value}
250
+ clamp_dtc: ${clamp_dtc}
251
+ max_contact_prob: ${max_contact_prob}
252
+ mask_normals_within_sdf: ${mask_normals_within_sdf}
253
+ dtc_adaptive_normalization: ${dtc_adaptive_normalization}
254
+ adaptive_normals_mask: ${adaptive_normals_mask}
255
+ max_depth: ${max_depth}
256
+ image_shape: ${agent.desired_image_shape}
257
+ learnable_contact_preprocess_params: ${learnable_contact_preprocess_params}
258
+ learning_rate: ${agent.config.train_cfg.lr}
259
+ weight_decay: 0.0
260
+ contact_model_name: ${contact_model_name}
261
+ zero_centered: false
262
+ crop_distractors_tlhw: ${agent.config.policy_cfg.crop_distractors_tlhw}
263
+ suite:
264
+ suite: frankagym
265
+ name: frankagym
266
+ frame_stack: ${agent.n_obs_steps}
267
+ action_repeat: 1
268
+ discount: 0.99
269
+ hidden_dim: 1024
270
+ num_train_frames: 2010
271
+ num_seed_frames: 260
272
+ num_train_epochs: 5000
273
+ validate_every_epochs: 100
274
+ validate_diffusion_on_action_loss_every_epochs: 500
275
+ train_eval_diffusion_on_action_loss_every_epochs: 500
276
+ check_topk_every_epochs: 10
277
+ save_snapshot_every_epochs: 5000
278
+ eval_every_frames: 2000
279
+ num_eval_episodes: 5
280
+ save_snapshot: true
281
+ wait_for_user_to_start_episode: true
282
+ task_make_fn:
283
+ _target_: suite.frankagym.make
284
+ name: ${task_name}
285
+ height: 240
286
+ width: 320
287
+ frame_stack: ${suite.frame_stack}
288
+ action_repeat: ${suite.action_repeat}
289
+ seed: ${seed}
290
+ enable_arm: ${agent.enable_arm}
291
+ enable_gripper: ${enable_gripper}
292
+ start_with_gripper_open: ${start_with_gripper_open}
293
+ enable_camera: ${agent.enable_camera}
294
+ path_to_depth_extrinsics: ${path_to_depth_extrinsics}
295
+ contact_estimation_model_ckpt_path: ${contact_estimation_model_ckpt_path}
296
+ x_limit: ${x_limit}
297
+ y_limit: ${y_limit}
298
+ z_limit: ${z_limit}
299
+ device: ${device}
300
+ interpolation_frequency: ${interpolation_frequency}
301
+ policy_frequency: ${policy_frequency}
302
+ debug_timestamps: ${debug_timestamps}
303
+ stop_after_action: ${stop_after_action}
304
+ open_loop: ${open_loop}
305
+ wait_for_new_camera_frames: ${wait_for_new_camera_frames}
306
+ action_key: ${action_key}
307
+ action_trajectory_horizon: ${agent.config.policy_cfg.horizon}
308
+ action_trajectories: ${action_trajectories}
309
+ path_to_zarr_dataset: ${expert_dataset}
310
+ agent_policy_cfg: ???
311
+ true_action_history: ${true_action_history}
312
+ num_train_frames_bc: 50000
313
+ num_train_frames_drq: 1100000
314
+ stddev_schedule_drq: linear(1.0,0.1,100000)
315
+ task_name: FrankaInsertion-v1
316
+ num_train_frames_vinn: 25000
317
+ num_train_frames_diffusion: 1000000
318
+ num_train_epochs_bc: 5000
319
+ num_train_epochs_diffusion: 5000
320
+ validate_every_epochs_bc: 5
321
+ validate_every_epochs_diffusion: 25
322
+ validate_diffusion_on_action_loss_every_epochs: 50
323
+ train_eval_diffusion_on_action_loss_every_epochs: 500
324
+ check_topk_every_epochs: 5
325
+ check_topk_every_epochs_diffusion: ${validate_diffusion_on_action_loss_every_epochs}
326
+ save_snapshot_every_epochs_diffusion: 5000
327
+ x_limit:
328
+ - 0.2
329
+ - 0.7
330
+ y_limit:
331
+ - -0.4
332
+ - 0.4
333
+ z_limit:
334
+ - -0.05
335
+ - 0.55
336
+ home_displacement:
337
+ - 0.55
338
+ - 0.0
339
+ - 0.55
340
+ - 180.0
341
+ - 0.0
342
+ - 0.0
343
+ enable_gripper: true
344
+ start_with_gripper_open: true
345
+ offset_mask:
346
+ - 1
347
+ - 1
348
+ - 1
349
+ - 1
350
+ - 1
351
+ - 1
352
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
5z33ibf5/.hydra/hydra.yaml ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: ${final_experiment_dir}
4
+ sweep:
5
+ dir: ${final_experiment_dir}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ submitit_folder: ${final_experiment_dir}/.slurm
9
+ timeout_min: 60
10
+ cpus_per_task: null
11
+ gpus_per_node: null
12
+ tasks_per_node: 1
13
+ mem_gb: null
14
+ nodes: 1
15
+ name: ${hydra.job.name}
16
+ stderr_to_stdout: false
17
+ _target_: hydra_plugins.hydra_submitit_launcher.submitit_launcher.LocalLauncher
18
+ sweeper:
19
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
20
+ max_batch_size: null
21
+ params: null
22
+ help:
23
+ app_name: ${hydra.job.name}
24
+ header: '${hydra.help.app_name} is powered by Hydra.
25
+
26
+ '
27
+ footer: 'Powered by Hydra (https://hydra.cc)
28
+
29
+ Use --hydra-help to view Hydra specific help
30
+
31
+ '
32
+ template: '${hydra.help.header}
33
+
34
+ == Configuration groups ==
35
+
36
+ Compose your configuration from those groups (group=option)
37
+
38
+
39
+ $APP_CONFIG_GROUPS
40
+
41
+
42
+ == Config ==
43
+
44
+ Override anything in the config (foo.bar=value)
45
+
46
+
47
+ $CONFIG
48
+
49
+
50
+ ${hydra.help.footer}
51
+
52
+ '
53
+ hydra_help:
54
+ template: 'Hydra (${hydra.runtime.version})
55
+
56
+ See https://hydra.cc for more info.
57
+
58
+
59
+ == Flags ==
60
+
61
+ $FLAGS_HELP
62
+
63
+
64
+ == Configuration groups ==
65
+
66
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
67
+ to command line)
68
+
69
+
70
+ $HYDRA_CONFIG_GROUPS
71
+
72
+
73
+ Use ''--cfg hydra'' to Show the Hydra config.
74
+
75
+ '
76
+ hydra_help: ???
77
+ hydra_logging:
78
+ version: 1
79
+ formatters:
80
+ simple:
81
+ format: '[%(asctime)s][HYDRA] %(message)s'
82
+ handlers:
83
+ console:
84
+ class: logging.StreamHandler
85
+ formatter: simple
86
+ stream: ext://sys.stdout
87
+ root:
88
+ level: INFO
89
+ handlers:
90
+ - console
91
+ loggers:
92
+ logging_example:
93
+ level: DEBUG
94
+ disable_existing_loggers: false
95
+ job_logging:
96
+ version: 1
97
+ formatters:
98
+ simple:
99
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
100
+ handlers:
101
+ console:
102
+ class: logging.StreamHandler
103
+ formatter: simple
104
+ stream: ext://sys.stdout
105
+ file:
106
+ class: logging.FileHandler
107
+ formatter: simple
108
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
109
+ root:
110
+ level: INFO
111
+ handlers:
112
+ - console
113
+ - file
114
+ disable_existing_loggers: false
115
+ env: {}
116
+ mode: RUN
117
+ searchpath: []
118
+ callbacks: {}
119
+ output_subdir: .hydra
120
+ overrides:
121
+ hydra:
122
+ - hydra.mode=RUN
123
+ task:
124
+ - agent=diffusion
125
+ - suite=frankagym
126
+ - suite/frankagym_task@_global_=insertion
127
+ job:
128
+ name: eval_robot
129
+ chdir: true
130
+ override_dirname: agent=diffusion,suite/frankagym_task@_global_=insertion,suite=frankagym
131
+ id: ???
132
+ num: ???
133
+ config_name: config_eval
134
+ env_set: {}
135
+ env_copy: []
136
+ config:
137
+ override_dirname:
138
+ kv_sep: '='
139
+ item_sep: ','
140
+ exclude_keys: []
141
+ runtime:
142
+ version: 1.3.2
143
+ version_base: '1.1'
144
+ cwd: /home/leonmkim/fish_leon/FISH
145
+ config_sources:
146
+ - path: hydra.conf
147
+ schema: pkg
148
+ provider: hydra
149
+ - path: /home/leonmkim/fish_leon/FISH/cfgs
150
+ schema: file
151
+ provider: main
152
+ - path: ''
153
+ schema: structured
154
+ provider: schema
155
+ output_dir: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/5z33ibf5
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
5z33ibf5/.hydra/overrides.yaml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ - agent=diffusion
2
+ - suite=frankagym
3
+ - suite/frankagym_task@_global_=insertion
5z33ibf5/episode_rosbags/episode_0_2025-01-21-21-19-25.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5466324f9c84324e3aa04b5c257554199cc63947f8a78ebbd9cb6f4d762a0484
3
+ size 2610649318
5z33ibf5/episode_rosbags/episode_1_2025-01-21-21-20-18.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e509a51ce97f1bd48da5822a1d50bc5d405f578ed3aab53656d4b7999aa1fdae
3
+ size 2592040189
5z33ibf5/episode_rosbags/episode_2_2025-01-21-21-21-10.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e471403dfe5cc63032ec153c7f2af196b9bc491b06682615ffedb95f7913307c
3
+ size 2601756742
5z33ibf5/eval_video/0_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:52952b9d92244b702210bb0b7ecf54272d94ebcdafdb932394ed66139de018ad
3
+ size 1496646
5z33ibf5/eval_video/1_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f36a449d922a9d3cb1686a75906fc79cfb5289c444b90f06ae867fbdf206f17f
3
+ size 1497131
5z33ibf5/eval_video/2_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1bfe16d417bf0eae1e35767e3953d00274fa7285bf1c4390332b92d49b5de96f
3
+ size 1524925
5z33ibf5/eval_video/3_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d2f247956aef8b976274554f80d2c1d1afc91e008ebaec6d3ca108010709c75c
3
+ size 1582269
5z33ibf5/eval_video/4_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0b307d108c1b40ec3a037c54c4c4941b5b15cd441d223e640b227116c91f34cd
3
+ size 1601611
5z33ibf5/tb/events.out.tfevents.1737512323.leonmkim-ROG-Strix-G15CS-G15CS.2648747.0 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:186f8b7546d88f4eed9d0fa211b2fa2ea6c0cc8a66c15d1ccaf1c43cea703076
3
+ size 6539
5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/code/FISH/eval_robot.py ADDED
@@ -0,0 +1,606 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #%%
2
+ import warnings
3
+ import os
4
+
5
+ os.environ['MKL_SERVICE_FORCE_INTEL'] = '1'
6
+ os.environ['MUJOCO_GL'] = 'egl'
7
+ from pathlib import Path
8
+ #%%
9
+ import hydra
10
+ import numpy as np
11
+ import torch
12
+
13
+ import utils
14
+ from utils import get_feature_dirname_from_configs
15
+
16
+ from video import VideoRecorder
17
+ import pickle
18
+ import time
19
+ import threading
20
+ import shutil
21
+ from logger import Logger
22
+
23
+ import wandb
24
+ from omegaconf import OmegaConf, open_dict
25
+
26
+ from replay_buffer_robot import RosbagEvalReplayBufferStorage
27
+ from lerobot.common.utils.utils import _relative_path_between
28
+
29
+ torch.backends.cudnn.benchmark = True
30
+ warnings.filterwarnings('ignore', category=DeprecationWarning)
31
+
32
+ # import specs for replay buffer
33
+ from dm_env import specs
34
+
35
+ import sys, signal
36
+ import yaml
37
+
38
+ import binomial_cis as bc
39
+
40
+ # get path of current file
41
+ current_path = os.path.dirname(os.path.realpath(__file__))
42
+ sys.path.append(os.path.join(current_path, os.pardir))
43
+ # from contact_estimation.src.utils.viz_utils import normalized_surface_normal_to_rgb, depth_map_to_im, grasped_env_dtc_map_to_im, contact_prob_map_to_im, desaturate_color_image, masked_overlay_im_list
44
+
45
+ def make_agent(obs_spec, action_spec, cfg):
46
+ cfg.obs_shape = obs_spec['pixels'].shape
47
+ dataset_statistics = None # this will be loaded from the checkpoint
48
+ try:
49
+ cfg.action_shape = action_spec.shape
50
+ except:
51
+ pass
52
+ return hydra.utils.instantiate(cfg, dataset_statistics)
53
+
54
+ class Workspace:
55
+ def __init__(self, cfg):
56
+ self.work_dir = Path.cwd()
57
+ print(f'workspace: {self.work_dir}')
58
+
59
+ signal.signal(signal.SIGINT, self.signal_handler)
60
+
61
+ self.cfg = cfg
62
+ self.loading_uncompiled_checkpoint_with_compile = False
63
+ self.loading_compiled_checkpoint_with_no_compile = False
64
+
65
+ snapshot_path = Path(self.cfg.checkpoint_weight_dir) / f'snapshot_{self.cfg.checkpoint_epoch}.pt'
66
+ self.load_checkpoint_conf(snapshot_path=snapshot_path)
67
+
68
+ # load config for action trajectories
69
+ utils.set_seed_everywhere(self.cfg.seed)
70
+ self.device = torch.device(self.cfg.device)
71
+ self.setup()
72
+
73
+ # self.agent = make_agent(self.eval_env.observation_spec(),
74
+ # self.eval_env.action_spec(), self.cfg.agent)
75
+ self.timer = utils.Timer()
76
+ # self._global_step = 0
77
+ self._global_episode = 0
78
+ self._global_epoch = 0
79
+ self.num_episode_successes = 0
80
+
81
+ self.alpha_range = [.01, .025, .05, .1]
82
+
83
+ # Need to convert hydra config to primitive container for wandb https://docs.wandb.ai/guides/integrations/hydra
84
+ with open_dict(self.cfg):
85
+ self.cfg.feature_type = get_feature_dirname_from_configs(
86
+ hydra.utils.instantiate(self.cfg.agent.config),
87
+ # hydra.utils.instantiate(self.cfg.agent.config.observation_cfg),
88
+ # self.cfg.agent.config.policy_cfg.input_shapes,
89
+ # hydra.utils.instantiate(self.cfg.agent.config.policy_cfg.action_history_encoder_config) if 'observation.action_history' in self.cfg.agent.config.policy_cfg.input_shapes else None,
90
+ )
91
+
92
+ wandb_config = OmegaConf.to_container(
93
+ self.cfg, resolve=True, throw_on_missing=True
94
+ )
95
+ # must be called before any tf summary writer is created
96
+ if self.cfg.use_wandb:
97
+ # get the run id from the final_experiment_dir directory
98
+ run_id = os.path.basename(os.path.normpath(self.cfg.final_experiment_dir))
99
+ wandb.init(project='extrinsic_contact_downstream', entity='serialexperimentsleon', job_type='eval', sync_tensorboard=self.cfg.use_tb, config=wandb_config, id=run_id)
100
+
101
+ self.logger = Logger(self.work_dir, use_tb=self.cfg.use_tb, use_wandb=self.cfg.use_wandb)
102
+
103
+ # if not self.loading_uncompiled_checkpoint_with_compile and self.cfg.agent.config.compile:
104
+ # self.agent.compile_modules()
105
+
106
+ # self.load_checkpoint(snapshot_path=snapshot_path)
107
+
108
+ # if self.loading_uncompiled_checkpoint_with_compile: # need to call compile after loading the checkpoint
109
+ # self.agent.compile_modules()
110
+
111
+ print(f"loaded agent with feature_type: {self.cfg.feature_type}")
112
+
113
+ def check_for_key_press(self):
114
+ while self.continue_keypress_thread:
115
+ inp = input("Press 'r' to restart current episode, 'n' to stop current episode and skip to next, 'q' to break entire eval\n")
116
+ if inp == 'n':
117
+ self.preempt_episode = True
118
+ print("preempting episode")
119
+ elif inp in ['', '0', '1']: # enter key
120
+ if inp in ['0', '1']:
121
+ self.num_episode_successes += int(inp)
122
+ self.proceed_after_env_reset_event.set()
123
+ print("proceeding to start episode!")
124
+ elif inp == 'q':
125
+ self.proceed_after_env_reset_event.set()
126
+ self.preempt_episode = True
127
+ self.exit_eval = True
128
+ self.continue_keypress_thread = False # will stop the keypress thread
129
+ print("quitting eval")
130
+ break
131
+ elif inp == 'r':
132
+ print('restarting episode')
133
+ self.preempt_episode = True
134
+ self.restart_episode = True
135
+ else:
136
+ print("Invalid key press, try again")
137
+
138
+ # self.keypress_input_thread.join() # wait for the keypress thread to finish
139
+
140
+ def signal_handler(self, signal, frame):
141
+ print("\nprogram exiting gracefully")
142
+ self.proceed_after_env_reset_event.set()
143
+ self.preempt_episode = True
144
+ self.exit_eval = True
145
+ self.continue_keypress_thread = False # will stop the keypress thread
146
+ self.keypress_input_thread.join() # wait for the keypress thread to finish
147
+ video_filepath = self.video_recorder.save()
148
+ # get the video file and convert to video tensor to log
149
+ self.logger.log_video('eval/video', video_filepath, self.global_step)
150
+ wandb.finish()
151
+ sys.exit(0)
152
+
153
+ def setup(self):
154
+ # create envs
155
+ self.eval_env = hydra.utils.call(self.cfg.suite.task_make_fn)
156
+ # expert_demo_config_path = os.path.join(os.path.dirname(self.cfg.expert_dataset), 'demo_config.yaml')
157
+ # self.expert_demo_config = yaml.load(open(expert_demo_config_path, 'r'), Loader=yaml.FullLoader)
158
+ # self.eval_env._env.action_trans_norm = expert_demo_config['max_translation_action_norm']
159
+ # self.eval_env._env.action_rot_norm = expert_demo_config['max_rotation_action_norm']
160
+ # self.eval_env._env.action_period = expert_demo_config['sample_period']
161
+ # print(f"setting max_translation_action_norm to {expert_demo_config['max_translation_action_norm']} and sample_period to {expert_demo_config['sample_period']}")
162
+ # print(f"setting max_rotation_action_norm to {expert_demo_config['max_rotation_action_norm']}")
163
+
164
+ # self.eval_env.set_demo_params(self.cfg.expert_dataset)
165
+
166
+ # Turn off random start
167
+ self.eval_env.random_start = False
168
+
169
+ # create replay buffer
170
+ # data_specs = [
171
+ # {
172
+ # 'observation': self.eval_env.observation_spec(),
173
+ # },
174
+ # # self.eval_env.observation_spec()['features'],
175
+ # self.eval_env.action_spec(),
176
+ # specs.Array(self.eval_env.action_spec().shape, self.eval_env.action_spec().dtype, 'vinn_action'),
177
+ # specs.Array((1, ), np.float32, 'reward'),
178
+ # specs.Array((1, ), np.float32, 'discount'),
179
+ # ]
180
+
181
+ # self.eval_replay_storage = ZarrEvalReplayBufferStorage(data_specs, self.work_dir / 'eval_buffer', debug_timestamps=self.cfg.debug_timestamps, save_buffer=self.cfg.save_buffer, debug_info_data_specs=self.eval_env.debug_info_data_specs, camera_info_dict=self.eval_env.get_camera_info_dict())
182
+ self.eval_replay_storage = RosbagEvalReplayBufferStorage(self.work_dir)
183
+
184
+ self.video_recorder = VideoRecorder(
185
+ self.work_dir if self.cfg.save_video else None,
186
+ ros_enabled=True,
187
+ fps=self.cfg.agent.config.policy_frequency,
188
+ )
189
+
190
+ print('workspace setup complete')
191
+
192
+ @property
193
+ def global_step(self):
194
+ # return self._global_step
195
+ return self.eval_env.get_global_step()
196
+
197
+ @property
198
+ def global_episode(self):
199
+ return self._global_episode
200
+
201
+ @property
202
+ def global_frame(self):
203
+ return self.global_step * self.cfg.action_repeat
204
+
205
+ @property
206
+ def global_epoch(self):
207
+ return self._global_epoch
208
+
209
+ def reset(self, eval_idx):
210
+ if not self.eval_env.enable_arm:
211
+ return np.array([0,0,0], dtype=np.float32)
212
+ self.eval_env.arm_refresh(reset=False)
213
+ # Set start position
214
+ try:
215
+ self.eval_env.set_position(self.start_pos[eval_idx])
216
+ except:
217
+ self.eval_env.arm.set_position(self.start_pos[eval_idx])
218
+ if self.eval_env.arm.keep_gripper_closed:
219
+ self.eval_env.arm.close_gripper_fully()
220
+ else:
221
+ self.eval_env.arm.open_gripper_fully()
222
+ time.sleep(0.1)
223
+ time_step = self.eval_env.step(np.zeros(self.eval_env.action_spec().shape[0], dtype=np.float32),
224
+ np.zeros(self.eval_env.action_spec().shape[0], dtype=np.float32))
225
+ return time_step
226
+
227
+ def eval(self):
228
+ # before evals start, prompt user for name of grasped object and the left book of the slot location
229
+ grasped_obj_name = input("Enter the name of the grasped object: ")
230
+ left_book_slot = input("Enter the left book slot location: ")
231
+ # update wandb config
232
+ if self.cfg.use_wandb:
233
+ wandb.config.update({'grasped_obj_name': grasped_obj_name, 'left_book_slot': left_book_slot})
234
+
235
+ self.preempt_episode = False
236
+ self.exit_eval = False
237
+ self.restart_episode = False
238
+
239
+ self.continue_keypress_thread = True
240
+ self.proceed_after_env_reset_event = threading.Event()
241
+ self.keypress_input_thread = threading.Thread(target=self.check_for_key_press)
242
+ self.keypress_input_thread.start()
243
+
244
+ # # Set model to eval mode
245
+ # self.agent.train(False)
246
+
247
+ eval_until_episode = utils.Until(self.cfg.num_eval)
248
+
249
+ self.use_action_history = False
250
+ # if "dp" in repr(self.agent) and "observation.action_history" in self.cfg.agent.config.policy_cfg.input_shapes:
251
+ if "observation.action_history" in self.cfg.agent.config.policy_cfg.input_shapes:
252
+ self.use_action_history = True
253
+
254
+ # self.eval_replay_storage._new_eval_step(0)
255
+
256
+ # if 'vinn' in repr(self.agent) or 'openloop' in repr(self.agent):
257
+ # with open(self.cfg.expert_dataset, 'rb') as f:
258
+ # if self.cfg.obs_type == 'pixels':
259
+ # self.expert_demo, _, self.expert_action, self.expert_reward = pickle.load(f)
260
+ # elif self.cfg.obs_type == 'features':
261
+ # _, self.expert_demo, self.expert_action, self.expert_reward = pickle.load(f)
262
+
263
+ # if self.cfg.action_trajectories:
264
+ # with open(self.cfg.expert_action_trajectories, 'rb') as f:
265
+ # self.expert_action = pickle.load(f)
266
+
267
+ # if isinstance(self.cfg.train_demo_idxs_list_or_num, int):
268
+ # if self.cfg.train_demo_idxs_list_or_num == -1:
269
+ # self.cfg.train_demo_idxs_list_or_num = len(self.expert_demo)
270
+ # train_demo_idxs_list_or_num = list(range(self.cfg.train_demo_idxs_list_or_num))
271
+
272
+ # self.expert_demo = self.expert_demo[train_demo_idxs_list_or_num]
273
+ # self.expert_action = self.expert_action[train_demo_idxs_list_or_num]
274
+ # self.expert_reward = self.expert_reward[train_demo_idxs_list_or_num]
275
+ # # if self.cfg.action_plans:
276
+ # # self.expert_action_plans = self.expert_action_plans[self.cfg.train_demo_idxs_list_or_num]
277
+ # # self.expert_demo = self.expert_demo[:self.cfg.num_demos]
278
+ # # self.expert_action = self.expert_action[:self.cfg.num_demos]
279
+ # # self.expert_reward = self.expert_reward[:self.cfg.num_demos]
280
+
281
+ # self.expert_demo = np.concatenate(self.expert_demo, axis=0)
282
+ # self.expert_rgb_obs = np.ascontiguousarray(np.transpose(self.expert_demo, (0,2,3,1))[:, :,:,:3].astype(np.uint8))
283
+ # self.expert_action = np.concatenate(self.expert_action, axis=0)
284
+
285
+ # self.agent.save_representations(self.expert_demo, self.expert_action, 128, config=self.expert_demo_config)
286
+
287
+ # Get start points
288
+ if self.cfg.random_start:
289
+ eval_starts = Path(self.cfg.eval_starts) / 'starts.pkl'
290
+ if eval_starts.exists():
291
+ with eval_starts.open('rb') as f:
292
+ self.start_pos = pickle.load(f)
293
+ else:
294
+ eval_starts = Path(self.cfg.eval_starts)
295
+ eval_starts.mkdir(parents=True, exist_ok=True)
296
+
297
+ # Generate start points
298
+ self.start_pos = []
299
+ try:
300
+ for _ in range(self.cfg.num_eval):
301
+ self.start_pos.append(self.eval_env.get_random_pos())
302
+ except:
303
+ for _ in range(self.cfg.num_eval):
304
+ self.start_pos.append(self.eval_env.arm.get_random_pos())
305
+
306
+ # Save start points for the task
307
+ eval_starts = eval_starts / 'starts.pkl'
308
+ with eval_starts.open('wb') as f:
309
+ pickle.dump(self.start_pos, f)
310
+
311
+ time_step = self.eval_env.reset()
312
+ # replay_thread = None
313
+ while eval_until_episode(self.global_episode) and not self.exit_eval:
314
+ # self.video_recorder.init(self.eval_env, video_filename=f'{self.global_episode}_eval.mp4')
315
+ print(f"Starting episode {self.global_episode}")
316
+ time_step = self.eval_env.reset() #Leon: need to call reset twice in case objects are trapped
317
+ self.video_recorder.init(self.eval_env, video_filename=f'{self.global_episode}_eval.mp4')
318
+ # x = input("Press Enter to continue... after reseting env")
319
+ print("Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success")
320
+ self.proceed_after_env_reset_event.clear() # clear the event flag
321
+ self.proceed_after_env_reset_event.wait() # blocking wait for the event flag to be set
322
+ if self.global_episode > 0:
323
+ self.logger.log_metrics({'num_success': self.num_episode_successes}, self.global_step, 'eval', episode=self.global_episode)
324
+ self.logger.log_metrics({'success_rate': self.num_episode_successes/self.global_episode}, self.global_step, 'eval', episode=self.global_episode)
325
+
326
+ # log confidence intervals for success rate
327
+ k = self.num_episode_successes # number of successes
328
+ n = self.global_episode # number of trials
329
+
330
+ table_columns = []
331
+ table_data = []
332
+ for alpha in self.alpha_range:
333
+ lb = bc.binom_ci(k, n, alpha, 'lb')
334
+ ub = bc.binom_ci(k, n, alpha, 'ub')
335
+
336
+ self.logger.log_metrics({f'success_rate_lb_{alpha}': lb}, self.global_step, 'eval', episode=self.global_episode)
337
+ self.logger.log_metrics({f'success_rate_ub_{alpha}': ub}, self.global_step, 'eval', episode=self.global_episode)
338
+
339
+ time_step = self.eval_env.reset()
340
+ # debug_info_dict = self.eval_env.debug_info_dict
341
+ # if replay_thread is not None:
342
+ # # wait for the last replay thread to finish
343
+ # replay_thread.join()
344
+
345
+ # self.eval_replay_storage.add(time_step._replace(observation=time_step.observation[self.cfg.obs_type]), debug_info_dict)
346
+ # replay_thread = threading.Thread(target=self.eval_replay_storage.add, args=(time_step._replace(observation=time_step.observation[self.cfg.obs_type]), debug_info_dict))
347
+ # replay_thread = threading.Thread(target=self.eval_replay_storage.add, args=(time_step, debug_info_dict))
348
+
349
+ # replay_thread.start()
350
+ if self.cfg.random_start:
351
+ time_step = self.reset(self.global_episode)
352
+ time.sleep(2) #5)
353
+ # if 'vinn' in repr(self.agent):
354
+ # self.agent.reset()
355
+ # # self.agent.buffer.reset()
356
+ # # if self.cfg.open_loop:
357
+ # # self.agent.current_step = 0
358
+ # if 'openloop' in repr(self.agent):
359
+ # self.agent.curr_step = 0
360
+ # at start of each episode, provide zero action for policies that use action history
361
+ # shape should be (T_o, T_a, action_dim)
362
+
363
+ # while not time_step.last() and not self.preempt_episode:
364
+ self.video_recorder.ros_start_recording()
365
+ self.eval_replay_storage.start_episode()
366
+ self.eval_env.start_policy_timer()
367
+ while not self.eval_env.episode_done() and not self.preempt_episode:
368
+ # with torch.no_grad(), utils.eval_mode(self.agent):
369
+ # # if self.cfg.agent.provide_topk:
370
+ # # action, vinn_action, topk = self.agent.act(
371
+ # # time_step.observation['pixels'],
372
+ # # self.global_step,
373
+ # # eval_mode=True)
374
+ # # elif self.cfg.agent.provide_obs:
375
+ # # action, vinn_action, obs = self.agent.act(
376
+ # # time_step.observation['pixels'],
377
+ # # self.global_step,
378
+ # # eval_mode=True)
379
+ # # else:
380
+ # action, vinn_action = self.agent.act(
381
+ # time_step.observation,
382
+ # self.global_step,
383
+ # eval_mode=True,
384
+ # obs_timestamp=time_step.observation['timestamp'],
385
+ # obs_seq=time_step.observation['seq'],
386
+ # action_history=action_history,
387
+ # action_history_start_timestamp=action_history_start_timestamp,
388
+ # )
389
+ # DONT WAIT FOR POLICY TO GET AN ACTION
390
+ # we dont want to slow down grabbing obs and passing to sam/contact features
391
+
392
+ self.eval_env.run_policy_threads() # this just does a rospy sleep
393
+
394
+ # if self.use_action_history:
395
+ # action_history_start_timestamp = time_step.observation['timestamp']
396
+ # # action_history = action[:self.cfg.agent.config.policy_cfg.action_history_encoder_config.history_length, ...]
397
+ # # add n_obs_steps dimension to action_history, for now we assume n_obs_steps = 1
398
+ # # TODO: handle n_obs_steps > 1
399
+ # action_history = action[np.newaxis, ...]
400
+
401
+ # time_step = self.eval_env.step(action, vinn_action) # obs, reward after action has been taken
402
+ # debug_info_dict = self.eval_env.debug_info_dict
403
+
404
+ # time_step = self.eval_env.ros_step()
405
+
406
+ # replay_thread.join()
407
+
408
+ # time how long it takes to execute the step
409
+ # time_before_add = time.perf_counter()
410
+ # self.eval_replay_storage.add(time_step._replace(observation=time_step.observation[self.cfg.obs_type]), debug_info_dict)
411
+ # use thread to call the add function in a separate thread
412
+ # replay_thread = threading.Thread(target=self.eval_replay_storage.add, args=(time_step._replace(observation=time_step.observation[self.cfg.obs_type]), debug_info_dict))
413
+
414
+ # replay_thread = threading.Thread(target=self.eval_replay_storage.add, args=(time_step, debug_info_dict))
415
+ # replay_thread.start()
416
+
417
+ # print(f"Time to add to replay buffer: {time.perf_counter() - time_before_add}")
418
+
419
+ # self.video_recorder.record(self.eval_env)
420
+ # self._global_step += 1
421
+
422
+ self.eval_env.stop_policy_timer()
423
+
424
+ if self.restart_episode:
425
+ # means we should delete the current episode and start again
426
+ self.restart_episode = False
427
+ self.eval_replay_storage.reset_current_episode()
428
+ self.video_recorder.reset_current_episode()
429
+
430
+ else:
431
+ self.eval_replay_storage.store_current_episode()
432
+ video_filepath = self.video_recorder.save()
433
+ self.logger.log_video(f"eval/{video_filepath.name.rstrip('.mp4')}", video_filepath, self.global_step)
434
+ self._global_episode += 1
435
+
436
+ self.preempt_episode = False # reset preempt_episode flag
437
+
438
+ # self.video_recorder.save(f'{episode}_eval.mp4')
439
+ # get the video file and convert to video tensor to log
440
+
441
+ self.eval_env.reset()
442
+
443
+ print("Evaluation finished. To wrap up, rate prev episode, press 0 for failure and 1 for success")
444
+ self.proceed_after_env_reset_event.clear() # clear the event flag
445
+ self.proceed_after_env_reset_event.wait() # blocking wait for the event flag to be set
446
+ if self.global_episode > 0:
447
+ # self.logger.log_metrics({'num_success': self.num_episode_successes}, self.global_step, 'eval', episode=self.global_episode)
448
+ self.logger.log_metrics({'num_success': self.num_episode_successes}, self.global_step, 'eval', episode=self.global_episode)
449
+ self.logger.log_metrics({'success_rate': self.num_episode_successes/self.global_episode}, self.global_step, 'eval', episode=self.global_episode)
450
+
451
+ # log confidence intervals for success rate
452
+ k = self.num_episode_successes # number of successes
453
+ n = self.global_episode # number of trials
454
+
455
+ table_columns = ['success_rate']
456
+ table_data = [self.num_episode_successes/self.global_episode]
457
+ for alpha in self.alpha_range:
458
+ lb = bc.binom_ci(k, n, alpha, 'lb')
459
+ ub = bc.binom_ci(k, n, alpha, 'ub')
460
+
461
+ self.logger.log_metrics({f'success_rate_lb_{alpha}': lb}, self.global_step, 'eval', episode=self.global_episode)
462
+ self.logger.log_metrics({f'success_rate_ub_{alpha}': ub}, self.global_step, 'eval', episode=self.global_episode)
463
+
464
+ table_columns.extend([f'success_rate_lb_{alpha}', f'success_rate_ub_{alpha}'])
465
+ table_data.extend([lb, ub])
466
+
467
+ table_data = [table_data]
468
+
469
+ # seperately log as a table
470
+ wandb.log({
471
+ "eval/success_rate_ci": wandb.Table(data=table_data, columns=table_columns)
472
+ })
473
+
474
+ # also accumulate eval metrics across previous eval runs
475
+ # TODO: change wandb init to resume from an existing run!!!
476
+ run_filter={
477
+ "jobType": "eval",
478
+ "config.wandb_run_id": self.cfg.wandb_run_id,
479
+ "summary_metrics.episode": {"$gte": 5},
480
+ "config.checkpoint_epoch": self.cfg.checkpoint_epoch,
481
+ "state": "finished",
482
+ # "config.grasped_obj_name": grasped_obj_name,
483
+ # "config.left_book_slot": left_book_slot,
484
+ }
485
+
486
+ api = wandb.Api()
487
+ filtered_runs = api.runs("serialexperimentsleon/extrinsic_contact_downstream", filters=run_filter)
488
+ total_num_successes = self.num_episode_successes
489
+ total_num_episodes = self.global_episode
490
+ list_of_historical_run_ids = []
491
+ if len(filtered_runs) > 0:
492
+ for filtered_run in filtered_runs:
493
+ total_num_successes += filtered_run.summary_metrics['eval/num_success']
494
+ # total_num_episodes += filtered_run.summary_metrics['episode']
495
+ total_num_episodes += filtered_run.config['num_eval']
496
+ list_of_historical_run_ids.append(filtered_run.id)
497
+
498
+ wandb.summary['total_num_successes'] = total_num_successes
499
+ wandb.summary['total_num_episodes'] = total_num_episodes
500
+ wandb.summary['total_success_rate'] = total_num_successes/total_num_episodes
501
+
502
+ # log the accumulated metrics as a table
503
+ total_table_columns = ['total_num_successes', 'total_num_episodes', 'total_success_rate']
504
+ total_table_data = [total_num_successes, total_num_episodes, total_num_successes/total_num_episodes]
505
+ self.logger.log_metrics({'total_success_rate': total_num_successes/total_num_episodes}, self.global_step, 'eval', episode=total_num_episodes)
506
+
507
+ for alpha in self.alpha_range:
508
+ lb = bc.binom_ci(total_num_successes, total_num_episodes, alpha, 'lb')
509
+ ub = bc.binom_ci(total_num_successes, total_num_episodes, alpha, 'ub')
510
+ total_table_columns.extend([f'total_success_rate_lb_{alpha}', f'total_success_rate_ub_{alpha}'])
511
+ total_table_data.extend([lb, ub])
512
+ wandb.summary[f'total_success_rate_lb_{alpha}'] = lb
513
+ wandb.summary[f'total_success_rate_ub_{alpha}'] = ub
514
+
515
+ self.logger.log_metrics({f'total_success_rate_lb_{alpha}': lb}, self.global_step, 'eval', episode=total_num_episodes)
516
+ self.logger.log_metrics({f'total_success_rate_ub_{alpha}': ub}, self.global_step, 'eval', episode=total_num_episodes)
517
+
518
+ total_table_data = [total_table_data]
519
+ wandb.log({
520
+ 'eval/total_success_rate_ci': wandb.Table(data=total_table_data, columns=total_table_columns)
521
+ })
522
+
523
+ self.continue_keypress_thread = False # will stop the keypress thread
524
+ self.keypress_input_thread.join() # wait for the keypress thread to finish
525
+
526
+ def load_checkpoint_conf(self, snapshot_path):
527
+ config_path = snapshot_path.parent / 'config.yaml'
528
+ if not config_path.exists():
529
+ raise FileNotFoundError(f'No snapshot conf found at {config_path}')
530
+ else:
531
+ # load the omegaconf config
532
+ hydra.core.global_hydra.GlobalHydra.instance().clear()
533
+ hydra.initialize(
534
+ str(_relative_path_between(Path(config_path).absolute().parent, Path(__file__).absolute().parent)),
535
+ )
536
+ cfg = hydra.compose(Path(config_path).stem)
537
+ from deepdiff import DeepDiff
538
+ from omegaconf import open_dict
539
+ diff = DeepDiff(OmegaConf.to_container(cfg), OmegaConf.to_container(self.cfg)) # old, new
540
+ # import re
541
+ overwriteable_keys = [f"root{overwritable_key}" for overwritable_key in ["['use_wandb']", "['path_to_depth_extrinsics']", "['eval']", "['root_dir']", "['wandb_notes']", "['agent']['config']['train_cfg']['use_amp']", "['agent']['config']['compile']", "['agent']['config']['policy_cfg']['num_inference_steps']"]]
542
+ if "values_changed" in diff:
543
+ # top_k_checkpoints, wandb_notes, agent.config.train_cfg.use_amp, save_snapshot_every_epochs_diffusion, check_topk_every_epochs_diffusion, validate_diffusion_on_action_loss_every_epochs, train_eval_diffusion_on_action_loss_every_epochs, validate_every_epochs_diffusion
544
+ # for keys above, overwrite the old config with the new config
545
+ for k, v in diff['values_changed'].items():
546
+ # replace any keys that are under "root['suite']"
547
+ if k in overwriteable_keys or k.startswith("root['suite']"):
548
+ print(f"Found changed key {k} with value {v}. Overwriting old checkpoint config")
549
+ if k == "root['agent']['config']['compile']":
550
+ if diff['values_changed'][k]['new_value']:
551
+ self.loading_uncompiled_checkpoint_with_compile = True
552
+ elif not diff['values_changed'][k]['new_value']:
553
+ # raise ValueError("Cannot load a compiled checkpoint without compile")
554
+ self.loading_compiled_checkpoint_with_no_compile = True
555
+ exec(f"{k.replace('root[', 'cfg[')} = {k.replace('root[', 'self.cfg[')}")
556
+ # for any new values, update the old checkpoint config
557
+ if "dictionary_item_added" in diff:
558
+ for new_key in diff['dictionary_item_added']: # this is a list
559
+ # if new_key == "root['suite']['task_make_fn']['observation_cfg']":
560
+ if new_key == "root['suite']['task_make_fn']['agent_policy_cfg']":
561
+ # pass the agents observation_cfg to the suite task_make_fn
562
+ with open_dict(cfg): # to allow addition of non-existing keys
563
+ # cfg.suite.task_make_fn.observation_cfg = cfg.agent.config.observation_cfg
564
+ cfg.suite.task_make_fn.agent_policy_cfg = cfg.agent.config
565
+ continue
566
+ elif "['agent']['config']['policy_cfg']['input_shapes']" in new_key:
567
+ # skip adding the new key if it is the input_shapes of the policy_cfg
568
+ continue
569
+ else:
570
+ print(f"Found new key {new_key} with value {eval(new_key.replace('root[', 'self.cfg['))}. Adding to checkpoint config")
571
+ # eval(new_key.replace('root', 'cfg')) = eval(new_key.replace('root', 'self.cfg'))
572
+ if new_key == "root['agent']['config']['compile']":
573
+ if self.cfg.agent.config.compile:
574
+ self.loading_uncompiled_checkpoint_with_compile = True
575
+
576
+ with open_dict(cfg):
577
+ exec(f"{new_key.replace('root[', 'cfg[')}={new_key.replace('root[', 'self.cfg[')}")
578
+ self.cfg = cfg
579
+
580
+ def load_checkpoint(self, snapshot_path, bc=False):
581
+ print(f'resuming {repr(self.agent)}: {snapshot_path}')
582
+ with snapshot_path.open('rb') as f:
583
+ payload = torch.load(f)
584
+ agent_payload = {}
585
+ for k, v in payload.items():
586
+ if k not in self.__dict__:
587
+ agent_payload[k] = v
588
+ elif k == '_global_epoch':
589
+ self._global_epoch = v
590
+ print(f'loaded epoch: {v}')
591
+ if self.cfg.use_wandb:
592
+ # add to config of wandb
593
+ wandb.config.update({'epoch': v})
594
+
595
+ # self.agent.load_snapshot_eval(agent_payload, bc)
596
+
597
+ @hydra.main(config_path='cfgs', config_name='config_eval')
598
+ def main(cfg):
599
+ from eval_robot import Workspace as W
600
+ root_dir = Path.cwd()
601
+ workspace = W(cfg)
602
+
603
+ workspace.eval()
604
+
605
+ if __name__ == '__main__':
606
+ main()
5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/config.yaml ADDED
@@ -0,0 +1,936 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ wandb_version: 1
2
+
3
+ root_dir:
4
+ desc: null
5
+ value: /home/leonmkim/fish_leon
6
+ replay_buffer_size:
7
+ desc: null
8
+ value: 150000
9
+ replay_buffer_num_workers:
10
+ desc: null
11
+ value: 2
12
+ nstep:
13
+ desc: null
14
+ value: 3
15
+ batch_size:
16
+ desc: null
17
+ value: 128
18
+ seed:
19
+ desc: null
20
+ value: 0
21
+ dataset_shuffle_seed:
22
+ desc: null
23
+ value: 0
24
+ device:
25
+ desc: null
26
+ value: cuda
27
+ save_video:
28
+ desc: null
29
+ value: true
30
+ save_train_video:
31
+ desc: null
32
+ value: true
33
+ use_tb:
34
+ desc: null
35
+ value: true
36
+ use_wandb:
37
+ desc: null
38
+ value: true
39
+ wandb_run_id:
40
+ desc: null
41
+ value: '4295_0'
42
+ wandb_notes:
43
+ desc: null
44
+ value: 4295_0_restarted_1
45
+ eval:
46
+ desc: null
47
+ value: true
48
+ true_action_history:
49
+ desc: null
50
+ value: false
51
+ train_pad_after:
52
+ desc: null
53
+ value: 4
54
+ process_contact_features:
55
+ desc: null
56
+ value: true
57
+ obs_type:
58
+ desc: null
59
+ value: pixels
60
+ use_color:
61
+ desc: null
62
+ value: false
63
+ use_depth:
64
+ desc: null
65
+ value: true
66
+ use_masks:
67
+ desc: null
68
+ value: true
69
+ mask_list:
70
+ desc: null
71
+ value:
72
+ - EE_obj_mask
73
+ mask_representation:
74
+ desc: null
75
+ value: channels
76
+ crop_hw:
77
+ desc: null
78
+ value:
79
+ - 144
80
+ - 144
81
+ crop_down_offset:
82
+ desc: null
83
+ value: 48
84
+ color_crop_type:
85
+ desc: null
86
+ value: null
87
+ depth_crop_type:
88
+ desc: null
89
+ value: null
90
+ segmask_crop_type:
91
+ desc: null
92
+ value: null
93
+ add_crop_binary_mask:
94
+ desc: null
95
+ value: false
96
+ add_coord_conv_map:
97
+ desc: null
98
+ value: false
99
+ use_context_color:
100
+ desc: null
101
+ value: false
102
+ use_context_depth:
103
+ desc: null
104
+ value: false
105
+ use_context_segmask:
106
+ desc: null
107
+ value: false
108
+ context_color_crop_type:
109
+ desc: null
110
+ value: null
111
+ context_depth_crop_type:
112
+ desc: null
113
+ value: null
114
+ context_segmask_crop_type:
115
+ desc: null
116
+ value: null
117
+ context_add_crop_binary_mask:
118
+ desc: null
119
+ value: false
120
+ context_add_coord_conv_map:
121
+ desc: null
122
+ value: false
123
+ use_contact_map:
124
+ desc: null
125
+ value: true
126
+ use_sdf_maps:
127
+ desc: null
128
+ value: true
129
+ use_normals_maps:
130
+ desc: null
131
+ value: true
132
+ which_objects:
133
+ desc: null
134
+ value: both
135
+ max_contact_prob:
136
+ desc: null
137
+ value: 0.1
138
+ max_depth:
139
+ desc: null
140
+ value: 2.0
141
+ grasped_dtc_max_value:
142
+ desc: null
143
+ value: 0.2
144
+ env_dtc_max_value:
145
+ desc: null
146
+ value: 0.4
147
+ grasped_normals_mask_max_dtc_value:
148
+ desc: null
149
+ value: 0.2
150
+ env_normals_mask_max_dtc_value:
151
+ desc: null
152
+ value: 0.4
153
+ clamp_dtc:
154
+ desc: null
155
+ value: true
156
+ dtc_adaptive_normalization:
157
+ desc: null
158
+ value: false
159
+ mask_normals_within_sdf:
160
+ desc: null
161
+ value: true
162
+ adaptive_normals_mask:
163
+ desc: null
164
+ value: true
165
+ learnable_contact_preprocess_params:
166
+ desc: null
167
+ value: true
168
+ contact_model_name:
169
+ desc: null
170
+ value: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
171
+ contact_estimation_model_ckpt_path:
172
+ desc: null
173
+ value: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
174
+ encoder_type:
175
+ desc: null
176
+ value: small
177
+ debug_timestamps:
178
+ desc: null
179
+ value: false
180
+ open_loop:
181
+ desc: null
182
+ value: false
183
+ action_trajectories:
184
+ desc: null
185
+ value: true
186
+ stop_after_action:
187
+ desc: null
188
+ value: false
189
+ interpolation_frequency:
190
+ desc: null
191
+ value: 25
192
+ policy_frequency:
193
+ desc: null
194
+ value: 5
195
+ wait_for_new_camera_frames:
196
+ desc: null
197
+ value: true
198
+ baseline:
199
+ desc: null
200
+ value: false
201
+ train_demo_idxs_list_or_num:
202
+ desc: null
203
+ value: -1
204
+ log_train_every_steps:
205
+ desc: null
206
+ value: 25
207
+ name_of_expert_demo:
208
+ desc: null
209
+ value: 120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
210
+ expert_dataset_dirpath:
211
+ desc: null
212
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
213
+ store_dataset_in_memory:
214
+ desc: null
215
+ value: false
216
+ expert_dataset:
217
+ desc: null
218
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr
219
+ action_key:
220
+ desc: null
221
+ value: action_trajectory_25hz
222
+ semantic_demo_grouping_name:
223
+ desc: null
224
+ value: semantic_demo_grouping.yaml
225
+ semantic_demo_grouping:
226
+ desc: null
227
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml
228
+ include_groups_list:
229
+ desc: null
230
+ value: all
231
+ expert_dataset_config:
232
+ desc: null
233
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demo_config.yaml
234
+ name_of_valid_demo:
235
+ desc: null
236
+ value: 120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
237
+ valid_dataset_dir:
238
+ desc: null
239
+ value: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr
240
+ valid_demo_idxs_list_or_num:
241
+ desc: null
242
+ value: null
243
+ val_num_groups:
244
+ desc: null
245
+ value: 7
246
+ load_bc:
247
+ desc: null
248
+ value: true
249
+ checkpoint_epoch_list:
250
+ desc: null
251
+ value:
252
+ - 99
253
+ - 199
254
+ - 299
255
+ - 399
256
+ - 499
257
+ - 599
258
+ - 699
259
+ - 799
260
+ - 899
261
+ - 999
262
+ - 1249
263
+ - 1499
264
+ - 1749
265
+ - 1999
266
+ - 2999
267
+ - 3999
268
+ - 4999
269
+ - 5999
270
+ - 6999
271
+ - 7999
272
+ - 8999
273
+ - 9999
274
+ snapshot_root_dir:
275
+ desc: null
276
+ value: /mnt/grasp_high_usage/leonmkim/contact_estimation/FISH
277
+ save_snapshot:
278
+ desc: null
279
+ value: true
280
+ save_last_snapshot:
281
+ desc: null
282
+ value: true
283
+ save_snapshot_when_done:
284
+ desc: null
285
+ value: true
286
+ top_k_checkpoints:
287
+ desc: null
288
+ value: 5
289
+ save_snapshot_link_to_weights_dir:
290
+ desc: null
291
+ value: deprecated
292
+ restore_missing_checkpoint:
293
+ desc: null
294
+ value: null
295
+ bc_regularize:
296
+ desc: null
297
+ value: false
298
+ bc_weight_type:
299
+ desc: null
300
+ value: qfilter
301
+ experiment_dir:
302
+ desc: null
303
+ value: ./exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0
304
+ agent:
305
+ desc: null
306
+ value:
307
+ _target_: agent.diffusion_policy.DiffusionPolicyAgent
308
+ name: diffusion_policy
309
+ load_checkpoint: true
310
+ device: cuda
311
+ n_obs_steps: 1
312
+ suite_name: frankagym
313
+ obs_type: pixels
314
+ enable_arm: true
315
+ enable_camera: true
316
+ use_tb: true
317
+ desired_image_shape:
318
+ - 13
319
+ - 180
320
+ - 240
321
+ orig_cam_shape:
322
+ - 3
323
+ - 240
324
+ - 320
325
+ config:
326
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
327
+ compile: false
328
+ device: cuda
329
+ cam_resize_shape:
330
+ - 13
331
+ - 180
332
+ - 240
333
+ orig_cam_shape:
334
+ - 3
335
+ - 240
336
+ - 320
337
+ policy_frequency: 5
338
+ interpolation_frequency: 25
339
+ policy_cfg:
340
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
341
+ n_obs_steps: 1
342
+ horizon: 36
343
+ n_action_steps: 36
344
+ output_shapes:
345
+ action:
346
+ - 7
347
+ input_normalization_modes:
348
+ observation.image: mean_std
349
+ observation.state: min_max
350
+ observation.action_history: min_max
351
+ output_normalization_modes:
352
+ action: min_max
353
+ vision_backbone: resnet18
354
+ crop_distractors_tlhw:
355
+ - 32
356
+ - 68
357
+ - 174
358
+ - 174
359
+ pretrained_backbone_weights: null
360
+ transforms:
361
+ - _target_: torchaug.transforms.RandomAffine
362
+ degrees:
363
+ - -5
364
+ - 5
365
+ translate:
366
+ - 0.05
367
+ - 0.05
368
+ batch_transform: true
369
+ num_chunks: -1
370
+ batch_inplace: true
371
+ - _target_: torchaug.transforms.RandomColorJitter
372
+ brightness: 0.3
373
+ contrast: 0.4
374
+ saturation: 0.5
375
+ hue: 0.08
376
+ batch_transform: true
377
+ num_chunks: -1
378
+ batch_inplace: true
379
+ use_group_norm: true
380
+ spatial_softmax_num_keypoints: 32
381
+ action_history_encoder_config:
382
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
383
+ in_channels: 7
384
+ out_channels: 32
385
+ history_length: 6
386
+ kernel_size: 5
387
+ downsample_kernel_size: 3
388
+ downsample_stride: 2
389
+ downsample_padding: 1
390
+ down_dims:
391
+ - 256
392
+ - 512
393
+ - 1024
394
+ kernel_size: 5
395
+ n_groups: 8
396
+ diffusion_step_embed_dim: 128
397
+ use_film_scale_modulation: true
398
+ noise_scheduler_type: DDIM
399
+ beta_schedule: squaredcos_cap_v2
400
+ beta_start: 0.0001
401
+ beta_end: 0.02
402
+ prediction_type: epsilon
403
+ clip_sample: true
404
+ clip_sample_range: 1.0
405
+ num_train_timesteps: 50
406
+ num_inference_steps: 10
407
+ do_mask_loss_for_padding: false
408
+ input_shapes:
409
+ observation.image:
410
+ - 13
411
+ - 180
412
+ - 240
413
+ context_observation.image:
414
+ - 13
415
+ - 180
416
+ - 240
417
+ observation.state:
418
+ - 8
419
+ observation.action_history:
420
+ - 7
421
+ train_cfg:
422
+ _target_: utils.TrainConfig
423
+ lr: 0.0001
424
+ lr_scheduler: cosine
425
+ lr_warmup_steps: 500
426
+ adam_betas:
427
+ - 0.95
428
+ - 0.999
429
+ adam_eps: 1.0e-08
430
+ adam_weight_decay: 1.0e-06
431
+ grad_clip_norm: 10
432
+ offline_steps: 1000000
433
+ use_amp: true
434
+ observation_cfg:
435
+ _target_: agent.encoder.VisualFeatureSet
436
+ use_depth: true
437
+ use_color: false
438
+ mask_input_dict:
439
+ _target_: agent.encoder.MaskInputDict
440
+ enable: true
441
+ representation: channels
442
+ mask_list:
443
+ - EE_obj_mask
444
+ crop_input_config:
445
+ _target_: agent.encoder.CropInputConfig
446
+ color_crop_type: null
447
+ depth_crop_type: null
448
+ segmask_crop_type: null
449
+ crop_hw:
450
+ - 144
451
+ - 144
452
+ crop_down_offset: 48
453
+ add_crop_binary_mask: false
454
+ add_coord_conv_map: false
455
+ context_input_config:
456
+ _target_: agent.encoder.ContextInputConfig
457
+ use_color: false
458
+ use_depth: false
459
+ mask_input_dict:
460
+ _target_: agent.encoder.MaskInputDict
461
+ enable: false
462
+ representation: channels
463
+ mask_list:
464
+ - EE_obj_mask
465
+ crop_input_config:
466
+ _target_: agent.encoder.CropInputConfig
467
+ color_crop_type: null
468
+ depth_crop_type: null
469
+ segmask_crop_type: null
470
+ crop_hw:
471
+ - 144
472
+ - 144
473
+ crop_down_offset: 48
474
+ add_crop_binary_mask: false
475
+ add_coord_conv_map: false
476
+ mask_soft_approx_scheduler_config:
477
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
478
+ num_steps: 40000
479
+ initial_value: 10.0
480
+ final_value: 1000.0
481
+ interpolation_scheme: cosine
482
+ use_contact_map: true
483
+ use_sdf_maps: true
484
+ use_normals_maps: true
485
+ which_objects: both
486
+ grasped_dtc_max_value: 0.2
487
+ env_dtc_max_value: 0.4
488
+ grasped_normals_mask_max_dtc_value: 0.2
489
+ env_normals_mask_max_dtc_value: 0.4
490
+ clamp_dtc: true
491
+ max_contact_prob: 0.1
492
+ mask_normals_within_sdf: true
493
+ dtc_adaptive_normalization: false
494
+ adaptive_normals_mask: true
495
+ max_depth: 2.0
496
+ image_shape:
497
+ - 13
498
+ - 180
499
+ - 240
500
+ learnable_contact_preprocess_params: true
501
+ learning_rate: 0.0001
502
+ weight_decay: 0.0
503
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
504
+ zero_centered: false
505
+ crop_distractors_tlhw:
506
+ - 32
507
+ - 68
508
+ - 174
509
+ - 174
510
+ suite:
511
+ desc: null
512
+ value:
513
+ suite: frankagym
514
+ name: frankagym
515
+ frame_stack: 1
516
+ action_repeat: 1
517
+ discount: 0.99
518
+ hidden_dim: 1024
519
+ num_train_frames: 2010
520
+ num_seed_frames: 260
521
+ num_train_epochs: 5000
522
+ validate_every_epochs: 100
523
+ validate_diffusion_on_action_loss_every_epochs: 500
524
+ train_eval_diffusion_on_action_loss_every_epochs: 500
525
+ check_topk_every_epochs: 10
526
+ save_snapshot_every_epochs: 5000
527
+ eval_every_frames: 2000
528
+ num_eval_episodes: 5
529
+ save_snapshot: true
530
+ wait_for_user_to_start_episode: true
531
+ task_make_fn:
532
+ _target_: suite.frankagym.make
533
+ name: FrankaInsertion-v1
534
+ height: 240
535
+ width: 320
536
+ frame_stack: 1
537
+ action_repeat: 1
538
+ seed: 0
539
+ enable_arm: true
540
+ enable_gripper: true
541
+ start_with_gripper_open: true
542
+ enable_camera: true
543
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
544
+ contact_estimation_model_ckpt_path: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
545
+ x_limit:
546
+ - 0.2
547
+ - 0.7
548
+ y_limit:
549
+ - -0.4
550
+ - 0.4
551
+ z_limit:
552
+ - -0.05
553
+ - 0.55
554
+ device: cuda
555
+ interpolation_frequency: 25
556
+ policy_frequency: 5
557
+ debug_timestamps: false
558
+ stop_after_action: false
559
+ open_loop: false
560
+ wait_for_new_camera_frames: true
561
+ action_key: action_trajectory_25hz
562
+ action_trajectory_horizon: 36
563
+ action_trajectories: true
564
+ path_to_zarr_dataset: /home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr
565
+ agent_policy_cfg:
566
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
567
+ compile: false
568
+ device: cuda
569
+ cam_resize_shape:
570
+ - 13
571
+ - 180
572
+ - 240
573
+ orig_cam_shape:
574
+ - 3
575
+ - 240
576
+ - 320
577
+ policy_frequency: 5
578
+ interpolation_frequency: 25
579
+ policy_cfg:
580
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
581
+ n_obs_steps: 1
582
+ horizon: 36
583
+ n_action_steps: 36
584
+ output_shapes:
585
+ action:
586
+ - 7
587
+ input_normalization_modes:
588
+ observation.image: mean_std
589
+ observation.state: min_max
590
+ observation.action_history: min_max
591
+ output_normalization_modes:
592
+ action: min_max
593
+ vision_backbone: resnet18
594
+ crop_distractors_tlhw:
595
+ - 32
596
+ - 68
597
+ - 174
598
+ - 174
599
+ pretrained_backbone_weights: null
600
+ transforms:
601
+ - _target_: torchaug.transforms.RandomAffine
602
+ degrees:
603
+ - -5
604
+ - 5
605
+ translate:
606
+ - 0.05
607
+ - 0.05
608
+ batch_transform: true
609
+ num_chunks: -1
610
+ batch_inplace: true
611
+ - _target_: torchaug.transforms.RandomColorJitter
612
+ brightness: 0.3
613
+ contrast: 0.4
614
+ saturation: 0.5
615
+ hue: 0.08
616
+ batch_transform: true
617
+ num_chunks: -1
618
+ batch_inplace: true
619
+ use_group_norm: true
620
+ spatial_softmax_num_keypoints: 32
621
+ action_history_encoder_config:
622
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
623
+ in_channels: 7
624
+ out_channels: 32
625
+ history_length: 6
626
+ kernel_size: 5
627
+ downsample_kernel_size: 3
628
+ downsample_stride: 2
629
+ downsample_padding: 1
630
+ down_dims:
631
+ - 256
632
+ - 512
633
+ - 1024
634
+ kernel_size: 5
635
+ n_groups: 8
636
+ diffusion_step_embed_dim: 128
637
+ use_film_scale_modulation: true
638
+ noise_scheduler_type: DDIM
639
+ beta_schedule: squaredcos_cap_v2
640
+ beta_start: 0.0001
641
+ beta_end: 0.02
642
+ prediction_type: epsilon
643
+ clip_sample: true
644
+ clip_sample_range: 1.0
645
+ num_train_timesteps: 50
646
+ num_inference_steps: 10
647
+ do_mask_loss_for_padding: false
648
+ input_shapes:
649
+ observation.image:
650
+ - 13
651
+ - 180
652
+ - 240
653
+ context_observation.image:
654
+ - 13
655
+ - 180
656
+ - 240
657
+ observation.state:
658
+ - 8
659
+ observation.action_history:
660
+ - 7
661
+ train_cfg:
662
+ _target_: utils.TrainConfig
663
+ lr: 0.0001
664
+ lr_scheduler: cosine
665
+ lr_warmup_steps: 500
666
+ adam_betas:
667
+ - 0.95
668
+ - 0.999
669
+ adam_eps: 1.0e-08
670
+ adam_weight_decay: 1.0e-06
671
+ grad_clip_norm: 10
672
+ offline_steps: 1000000
673
+ use_amp: true
674
+ observation_cfg:
675
+ _target_: agent.encoder.VisualFeatureSet
676
+ use_depth: true
677
+ use_color: false
678
+ mask_input_dict:
679
+ _target_: agent.encoder.MaskInputDict
680
+ enable: true
681
+ representation: channels
682
+ mask_list:
683
+ - EE_obj_mask
684
+ crop_input_config:
685
+ _target_: agent.encoder.CropInputConfig
686
+ color_crop_type: null
687
+ depth_crop_type: null
688
+ segmask_crop_type: null
689
+ crop_hw:
690
+ - 144
691
+ - 144
692
+ crop_down_offset: 48
693
+ add_crop_binary_mask: false
694
+ add_coord_conv_map: false
695
+ context_input_config:
696
+ _target_: agent.encoder.ContextInputConfig
697
+ use_color: false
698
+ use_depth: false
699
+ mask_input_dict:
700
+ _target_: agent.encoder.MaskInputDict
701
+ enable: false
702
+ representation: channels
703
+ mask_list:
704
+ - EE_obj_mask
705
+ crop_input_config:
706
+ _target_: agent.encoder.CropInputConfig
707
+ color_crop_type: null
708
+ depth_crop_type: null
709
+ segmask_crop_type: null
710
+ crop_hw:
711
+ - 144
712
+ - 144
713
+ crop_down_offset: 48
714
+ add_crop_binary_mask: false
715
+ add_coord_conv_map: false
716
+ mask_soft_approx_scheduler_config:
717
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
718
+ num_steps: 40000
719
+ initial_value: 10.0
720
+ final_value: 1000.0
721
+ interpolation_scheme: cosine
722
+ use_contact_map: true
723
+ use_sdf_maps: true
724
+ use_normals_maps: true
725
+ which_objects: both
726
+ grasped_dtc_max_value: 0.2
727
+ env_dtc_max_value: 0.4
728
+ grasped_normals_mask_max_dtc_value: 0.2
729
+ env_normals_mask_max_dtc_value: 0.4
730
+ clamp_dtc: true
731
+ max_contact_prob: 0.1
732
+ mask_normals_within_sdf: true
733
+ dtc_adaptive_normalization: false
734
+ adaptive_normals_mask: true
735
+ max_depth: 2.0
736
+ image_shape:
737
+ - 13
738
+ - 180
739
+ - 240
740
+ learnable_contact_preprocess_params: true
741
+ learning_rate: 0.0001
742
+ weight_decay: 0.0
743
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
744
+ zero_centered: false
745
+ crop_distractors_tlhw:
746
+ - 32
747
+ - 68
748
+ - 174
749
+ - 174
750
+ true_action_history: false
751
+ num_train_frames_bc:
752
+ desc: null
753
+ value: 50000
754
+ num_train_frames_drq:
755
+ desc: null
756
+ value: 1100000
757
+ stddev_schedule_drq:
758
+ desc: null
759
+ value: linear(1.0,0.1,100000)
760
+ task_name:
761
+ desc: null
762
+ value: FrankaInsertion-v1
763
+ num_train_frames_vinn:
764
+ desc: null
765
+ value: 25000
766
+ num_train_frames_diffusion:
767
+ desc: null
768
+ value: 1000000
769
+ num_train_epochs_bc:
770
+ desc: null
771
+ value: 5000
772
+ num_train_epochs_diffusion:
773
+ desc: null
774
+ value: 15000
775
+ validate_every_epochs_bc:
776
+ desc: null
777
+ value: 5
778
+ validate_every_epochs_diffusion:
779
+ desc: null
780
+ value: 250
781
+ validate_diffusion_on_action_loss_every_epochs:
782
+ desc: null
783
+ value: 250
784
+ train_eval_diffusion_on_action_loss_every_epochs:
785
+ desc: null
786
+ value: 250
787
+ check_topk_every_epochs:
788
+ desc: null
789
+ value: 5
790
+ check_topk_every_epochs_diffusion:
791
+ desc: null
792
+ value: 250
793
+ save_snapshot_every_epochs_diffusion:
794
+ desc: null
795
+ value: 1500
796
+ x_limit:
797
+ desc: null
798
+ value:
799
+ - 0.2
800
+ - 0.7
801
+ y_limit:
802
+ desc: null
803
+ value:
804
+ - -0.4
805
+ - 0.4
806
+ z_limit:
807
+ desc: null
808
+ value:
809
+ - -0.05
810
+ - 0.55
811
+ home_displacement:
812
+ desc: null
813
+ value:
814
+ - 0.55
815
+ - 0.0
816
+ - 0.55
817
+ - 180.0
818
+ - 0.0
819
+ - 0.0
820
+ enable_gripper:
821
+ desc: null
822
+ value: true
823
+ start_with_gripper_open:
824
+ desc: null
825
+ value: true
826
+ offset_mask:
827
+ desc: null
828
+ value:
829
+ - 1
830
+ - 1
831
+ - 1
832
+ - 1
833
+ - 1
834
+ - 1
835
+ path_to_depth_extrinsics:
836
+ desc: null
837
+ value: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
838
+ test:
839
+ desc: null
840
+ value:
841
+ username: leonmkim
842
+ hostname: grasp-login1
843
+ name_of_expert_demo: 112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
844
+ root_dir: ~/fish_leon
845
+ expert_dataset_dirpath: ~/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
846
+ expert_dataset: ~/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr
847
+ semantic_demo_grouping_name: semantic_demo_grouping.yaml
848
+ semantic_demo_grouping: ~/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml
849
+ include_groups_list: all
850
+ batch_size: 128
851
+ store_dataset_in_memory: false
852
+ use_tb: true
853
+ local_snapshot_root_dir: /mnt/bighdd/fish_contact_backup
854
+ local_snapshot_dir: /mnt/bighdd/fish_contact_backup/exp_local/frankagym_pixels/FrankaInsertion-v1
855
+ resume_wandb_run: false
856
+ feature_type:
857
+ desc: null
858
+ value: 180x240_crpdstlhw24x51x130x130_1_D_2.0_msk_channels_EE_obj_mask_cntct_0.1_DTC_clmpd_lrnbl_nrmls_DTCmask_adpt_lrnbl_both_lr_0.0001_wd_0.0_local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9_acthist_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1
859
+ save_buffer:
860
+ desc: null
861
+ value: true
862
+ num_eval:
863
+ desc: null
864
+ value: 5
865
+ random_start:
866
+ desc: null
867
+ value: false
868
+ eval_starts:
869
+ desc: null
870
+ value: /home/leonmkim/fish_leon/FISH/eval_starts/frankagym_pixels/FrankaInsertion-v1
871
+ num_valid_demos:
872
+ desc: null
873
+ value: null
874
+ load_checkpoint:
875
+ desc: null
876
+ value: true
877
+ checkpoint_epoch:
878
+ desc: null
879
+ value: 7500
880
+ load_residual_weight:
881
+ desc: null
882
+ value: false
883
+ checkpoint_root_dir:
884
+ desc: null
885
+ value: /home/leonmkim/fish_leon/FISH
886
+ checkpoint_weight_dir:
887
+ desc: null
888
+ value: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0
889
+ residual_weight:
890
+ desc: null
891
+ value: /home/leonmkim/fish_leon/FISH/weights/frankagym_pixels/FrankaInsertion-v1/weight.pt
892
+ final_experiment_dir:
893
+ desc: null
894
+ value: ./exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/5z33ibf5
895
+ _wandb:
896
+ desc: null
897
+ value:
898
+ code_path: code/FISH/eval_robot.py
899
+ python_version: 3.10.14
900
+ cli_version: 0.17.5
901
+ framework: torch
902
+ is_jupyter_run: false
903
+ is_kaggle_kernel: false
904
+ start_time: 1737512322
905
+ t:
906
+ 1:
907
+ - 1
908
+ - 41
909
+ - 49
910
+ - 50
911
+ - 55
912
+ - 83
913
+ 2:
914
+ - 1
915
+ - 41
916
+ - 49
917
+ - 50
918
+ - 55
919
+ - 83
920
+ 3:
921
+ - 14
922
+ - 16
923
+ - 23
924
+ - 35
925
+ - 62
926
+ 4: 3.10.14
927
+ 5: 0.17.5
928
+ 8:
929
+ - 5
930
+ 13: linux-x86_64
931
+ grasped_obj_name:
932
+ desc: null
933
+ value: greece
934
+ left_book_slot:
935
+ desc: null
936
+ value: twodim
5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/diff.patch ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ diff --git a/FISH/cfgs/config_eval.yaml b/FISH/cfgs/config_eval.yaml
2
+ index bb5fa99..c2e87d3 100644
3
+ --- a/FISH/cfgs/config_eval.yaml
4
+ +++ b/FISH/cfgs/config_eval.yaml
5
+ @@ -82,7 +82,7 @@ contact_estimation_model_ckpt_path: '~/fish_leon/contact_estimation/artifacts/17
6
+
7
+ # Number of evaluation trajectories
8
+ # num_eval: 10
9
+ -num_eval: 20
10
+ +num_eval: 5
11
+
12
+ debug_timestamps: False
13
+ open_loop: False
5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/table/eval/success_rate_ci_5_1b420c32327aa0ba7f75.table.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"columns": ["success_rate", "success_rate_lb_0.01", "success_rate_ub_0.01", "success_rate_lb_0.025", "success_rate_ub_0.025", "success_rate_lb_0.05", "success_rate_ub_0.05", "success_rate_lb_0.1", "success_rate_ub_0.1"], "data": [[1.0, 0.449680686007073, 1, 0.47999376058978616, 1, 0.6638181209236573, 1, 1, 1]]}
5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/table/eval/total_success_rate_ci_6_7f69fec0f5489086ad7f.table.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"columns": ["total_num_successes", "total_num_episodes", "total_success_rate", "total_success_rate_lb_0.01", "total_success_rate_ub_0.01", "total_success_rate_lb_0.025", "total_success_rate_ub_0.025", "total_success_rate_lb_0.05", "total_success_rate_ub_0.05", "total_success_rate_lb_0.1", "total_success_rate_ub_0.1"], "data": [[7, 20, 0.35, 0.13707314438925872, 0.6159580349690265, 0.17542183405692, 0.5902580916701045, 0.19973829394623704, 0.5288278013410134, 0.21333447849523368, 0.5130670443151089]]}
5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/videos/eval/0_eval_0_52952b9d92244b702210.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:52952b9d92244b702210bb0b7ecf54272d94ebcdafdb932394ed66139de018ad
3
+ size 1496646
5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/videos/eval/1_eval_1_f36a449d922a9d3cb168.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f36a449d922a9d3cb1686a75906fc79cfb5289c444b90f06ae867fbdf206f17f
3
+ size 1497131
5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/videos/eval/2_eval_2_1bfe16d417bf0eae1e35.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1bfe16d417bf0eae1e35767e3953d00274fa7285bf1c4390332b92d49b5de96f
3
+ size 1524925
5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/videos/eval/3_eval_3_d2f247956aef8b976274.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d2f247956aef8b976274554f80d2c1d1afc91e008ebaec6d3ca108010709c75c
3
+ size 1582269
5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/media/videos/eval/4_eval_4_0b307d108c1b40ec3a03.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0b307d108c1b40ec3a037c54c4c4941b5b15cd441d223e640b227116c91f34cd
3
+ size 1601611
5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/output.log ADDED
@@ -0,0 +1,280 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ loaded agent with feature_type: 180x240_crpdstlhw24x51x130x130_1_D_2.0_msk_channels_EE_obj_mask_cntct_0.1_DTC_clmpd_lrnbl_nrmls_DTCmask_adpt_lrnbl_both_lr_0.0001_wd_0.0_local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9_acthist_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1
3
+ [INFO] [1737512344.066829]: resetting environment
4
+ [INFO] [1737512344.071555]: cleared current plan
5
+ [INFO] [1737512344.072359]: moving to home
6
+ [INFO] [1737512345.074732]: reached home
7
+ [INFO] [1737512345.076250]: reset action history
8
+ [INFO] [1737512347.791137]: environment reset
9
+ Starting episode 0
10
+ [INFO] [1737512347.795354]: resetting environment
11
+ [INFO] [1737512347.799639]: cleared current plan
12
+ [INFO] [1737512347.800419]: moving to home
13
+ [INFO] [1737512348.802850]: reached home
14
+ [INFO] [1737512348.804140]: reset action history
15
+ [INFO] [1737512351.514226]: 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] [1737512361.602565]: resetting environment
18
+ [INFO] [1737512361.608536]: cleared current plan
19
+ [INFO] [1737512361.609563]: moving to home
20
+ [INFO] [1737512362.611631]: reached home
21
+ [INFO] [1737512362.612975]: reset action history
22
+ [INFO] [1737512365.321576]: environment reset
23
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/5z33ibf5/episode_rosbags/episode_0_2025-01-21-21-19-25.bag
24
+ ... logging to /home/leonmkim/.ros/log/1b77c894-d3af-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-2648747.log
25
+ started roslaunch server http://158.130.50.37:45519/
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 [2649062]
38
+ process[print_text-2]: started with pid [2649086]
39
+ process[rosbag_record-3]: started with pid [2649087]
40
+ started bagging!
41
+ For topic gripper_width: timestamp difference is 101189745 for nearest: 1737512372579162491 - target: 1737512372477972746 at idx 96
42
+ [INFO] [1737512400.271397]: Storing episode...
43
+ [rosbag_record-3] killing on exit
44
+ [print_text-2] killing on exit[pub_text-1] killing on exit
45
+ [INFO] [1737512401.070160]: Stored episode 1.
46
+ [INFO] [1737512401.070449]: Saving video...
47
+ [INFO] [1737512401.271325]: Video saved!
48
+ Starting episode 1
49
+ [INFO] [1737512401.284343]: resetting environment
50
+ [INFO] [1737512401.297850]: cleared current plan
51
+ [INFO] [1737512401.298455]: moving to home
52
+ [INFO] [1737512404.903185]: reached home
53
+ [INFO] [1737512404.904354]: reset action history
54
+ [INFO] [1737512407.615764]: environment reset
55
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
56
+ proceeding to start episode!
57
+ Comuting lower confidence bound
58
+ Comuting upper confidence bound
59
+ Comuting lower confidence bound
60
+ Comuting upper confidence bound
61
+ Comuting lower confidence bound
62
+ Comuting upper confidence bound
63
+ Comuting lower confidence bound
64
+ Comuting upper confidence bound
65
+ [INFO] [1737512414.630790]: resetting environment
66
+ [INFO] [1737512414.637108]: cleared current plan
67
+ [INFO] [1737512414.637758]: moving to home
68
+ [INFO] [1737512415.639205]: reached home
69
+ [INFO] [1737512415.639622]: reset action history
70
+ [INFO] [1737512418.347720]: environment reset
71
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/5z33ibf5/episode_rosbags/episode_1_2025-01-21-21-20-18.bag
72
+ ... logging to /home/leonmkim/.ros/log/1b77c894-d3af-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-2648747.log
73
+ started roslaunch server http://158.130.50.37:40889/
74
+ SUMMARY
75
+ ========
76
+ PARAMETERS
77
+ * /rosdistro: noetic
78
+ * /rosversion: 1.16.0
79
+ NODES
80
+ /
81
+ print_text (rostopic/rostopic)
82
+ pub_text (rostopic/rostopic)
83
+ rosbag_record (rosbag/record)
84
+ ROS_MASTER_URI=http://localhost:11311
85
+ process[pub_text-4]: started with pid [2649210]
86
+ process[print_text-5]: started with pid [2649211]
87
+ process[rosbag_record-6]: started with pid [2649235]
88
+ started bagging!
89
+ For topic gripper_width: timestamp difference is 112526717 for nearest: 1737512419412497105 - target: 1737512419299970388 at idx 15
90
+ For topic gripper_width: timestamp difference is 100327451 for nearest: 1737512445479163368 - target: 1737512445378835917 at idx 249
91
+ For topic gripper_width: timestamp difference is 101364895 for nearest: 1737512446779119536 - target: 1737512446677754641 at idx 249
92
+ For topic gripper_width: timestamp difference is 105899694 for nearest: 1737512452279161575 - target: 1737512452173261881 at idx 249
93
+ [INFO] [1737512453.038391]: Storing episode...
94
+ [rosbag_record-6] killing on exit
95
+ [print_text-5] killing on exit
96
+ [pub_text-4] killing on exit
97
+ [INFO] [1737512453.838337]: Stored episode 2.
98
+ [INFO] [1737512453.838769]: Saving video...
99
+ [INFO] [1737512454.392757]: Video saved!
100
+ Starting episode 2
101
+ [INFO] [1737512454.431414]: resetting environment
102
+ [INFO] [1737512454.453223]: cleared current plan
103
+ [INFO] [1737512454.454833]: moving to home
104
+ [WARN] [1737512454.380692]: Plan exhausted
105
+ [WARN] [1737512454.420855]: Plan exhausted
106
+ [INFO] [1737512458.061684]: reached home
107
+ [INFO] [1737512458.065943]: reset action history
108
+ [INFO] [1737512460.789738]: environment reset
109
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
110
+ proceeding to start episode!Comuting lower confidence bound
111
+ Comuting upper confidence bound
112
+ Comuting lower confidence bound
113
+ Comuting upper confidence bound
114
+ Comuting lower confidence bound
115
+ Comuting upper confidence bound
116
+ Comuting lower confidence bound
117
+ Comuting upper confidence bound
118
+ [INFO] [1737512467.102199]: resetting environment
119
+ [INFO] [1737512467.110906]: cleared current plan
120
+ [INFO] [1737512467.111114]: moving to home
121
+ [INFO] [1737512468.112596]: reached home
122
+ [INFO] [1737512468.113806]: reset action history
123
+ [INFO] [1737512470.823428]: environment reset
124
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/5z33ibf5/episode_rosbags/episode_2_2025-01-21-21-21-10.bag
125
+ ... logging to /home/leonmkim/.ros/log/1b77c894-d3af-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-2648747.log
126
+ started roslaunch server http://158.130.50.37:43591/
127
+ SUMMARY
128
+ ========
129
+ PARAMETERS
130
+ * /rosdistro: noetic
131
+ * /rosversion: 1.16.0
132
+ NODES
133
+ /
134
+ print_text (rostopic/rostopic)
135
+ pub_text (rostopic/rostopic)
136
+ rosbag_record (rosbag/record)
137
+ ROS_MASTER_URI=http://localhost:11311
138
+ process[pub_text-7]: started with pid [2649365]
139
+ process[print_text-8]: started with pid [2649366]
140
+ process[rosbag_record-9]: started with pid [2649390]
141
+ started bagging!
142
+ For topic gripper_width: timestamp difference is -105112122 for nearest: 1737512478812493040 - target: 1737512478917605162 at idx 104
143
+ For topic gripper_width: timestamp difference is 102645308 for nearest: 1737512483679187447 - target: 1737512483576542139 at idx 166
144
+ For topic gripper_width: timestamp difference is 102466929 for nearest: 1737512489412494051 - target: 1737512489310027122 at idx 237
145
+ [INFO] [1737512505.752525]: Storing episode...
146
+ [rosbag_record-9] killing on exit[print_text-8] killing on exit
147
+ [pub_text-7] killing on exit
148
+ [INFO] [1737512506.581306]: Stored episode 3.
149
+ [INFO] [1737512506.587126]: Saving video...
150
+ [WARN] [1737512507.100658]: Plan exhausted
151
+ [WARN] [1737512507.140645]: Plan exhausted
152
+ [INFO] [1737512507.070721]: Video saved!
153
+ Starting episode 3
154
+ [INFO] [1737512507.120391]: resetting environment
155
+ [INFO] [1737512507.145662]: cleared current plan
156
+ [INFO] [1737512507.145931]: moving to home
157
+ [INFO] [1737512510.752356]: reached home
158
+ [INFO] [1737512510.758472]: reset action history
159
+ [INFO] [1737512513.549517]: environment reset
160
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
161
+ proceeding to start episode!Comuting lower confidence bound
162
+ Comuting upper confidence bound
163
+ Comuting lower confidence bound
164
+ Comuting upper confidence bound
165
+ Comuting lower confidence bound
166
+ Comuting upper confidence bound
167
+ Comuting lower confidence bound
168
+ Comuting upper confidence bound
169
+ [INFO] [1737512533.129828]: resetting environment
170
+ [INFO] [1737512533.144915]: cleared current plan
171
+ [INFO] [1737512533.147726]: moving to home
172
+ [INFO] [1737512534.149325]: reached home
173
+ [INFO] [1737512534.159630]: reset action history
174
+ [INFO] [1737512536.897161]: environment reset
175
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/5z33ibf5/episode_rosbags/episode_3_2025-01-21-21-22-16.bag
176
+ ... logging to /home/leonmkim/.ros/log/1b77c894-d3af-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-2648747.log
177
+ started roslaunch server http://158.130.50.37:40733/
178
+ SUMMARY
179
+ ========
180
+ PARAMETERS
181
+ * /rosdistro: noetic
182
+ * /rosversion: 1.16.0
183
+ NODES
184
+ /
185
+ print_text (rostopic/rostopic)
186
+ pub_text (rostopic/rostopic)
187
+ rosbag_record (rosbag/record)
188
+ ROS_MASTER_URI=http://localhost:11311
189
+ process[pub_text-10]: started with pid [2649541]
190
+ process[print_text-11]: started with pid [2649542]
191
+ process[rosbag_record-12]: started with pid [2649543]
192
+ started bagging!
193
+ For topic gripper_width: timestamp difference is 113910194 for nearest: 1737512544879159208 - target: 1737512544765249014 at idx 100
194
+ For topic gripper_width: timestamp difference is 115392148 for nearest: 1737512546679185092 - target: 1737512546563792944 at idx 128
195
+ [INFO] [1737512572.937681]: Storing episode...
196
+ [print_text-11] killing on exit
197
+ [rosbag_record-12] killing on exit
198
+ [pub_text-10] killing on exit
199
+ [INFO] [1737512573.861141]: Stored episode 4.
200
+ [INFO] [1737512573.868678]: Saving video...
201
+ [INFO] [1737512574.377781]: Video saved!
202
+ Starting episode 4
203
+ [INFO] [1737512574.469411]: resetting environment
204
+ [INFO] [1737512574.506689]: cleared current plan
205
+ [INFO] [1737512574.506871]: moving to home
206
+ [WARN] [1737512574.300869]: Plan exhausted
207
+ [WARN] [1737512574.341642]: Plan exhausted
208
+ [WARN] [1737512574.387984]: Plan exhausted
209
+ [WARN] [1737512574.426885]: Plan exhausted
210
+ [WARN] [1737512574.461248]: Plan exhausted
211
+ [WARN] [1737512574.500782]: Plan exhausted
212
+ [INFO] [1737512578.114544]: reached home
213
+ [INFO] [1737512578.116574]: reset action history
214
+ [INFO] [1737512580.900574]: environment reset
215
+ Press Enter to continue... after reseting env. To rate prev episode, press 0 for failure and 1 for success
216
+ proceeding to start episode!Comuting lower confidence bound
217
+ Comuting upper confidence bound
218
+ Comuting lower confidence bound
219
+ Comuting upper confidence bound
220
+ Comuting lower confidence bound
221
+ Comuting upper confidence bound
222
+ Comuting lower confidence bound
223
+ Comuting upper confidence bound
224
+ [INFO] [1737512588.253288]: resetting environment
225
+ [INFO] [1737512588.295903]: cleared current plan
226
+ [INFO] [1737512588.298103]: moving to home
227
+ [INFO] [1737512589.304532]: reached home
228
+ [INFO] [1737512589.313428]: reset action history
229
+ [INFO] [1737512592.152229]: environment reset
230
+ bag_path_name:=/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/5z33ibf5/episode_rosbags/episode_4_2025-01-21-21-23-12.bag
231
+ ... logging to /home/leonmkim/.ros/log/1b77c894-d3af-11ef-96d2-5defea869005/roslaunch-leonmkim-ROG-Strix-G15CS-G15CS-2648747.log
232
+ started roslaunch server http://158.130.50.37:41637/
233
+ SUMMARY
234
+ ========
235
+ PARAMETERS
236
+ * /rosdistro: noetic
237
+ * /rosversion: 1.16.0
238
+ NODES
239
+ /
240
+ print_text (rostopic/rostopic)
241
+ pub_text (rostopic/rostopic)
242
+ rosbag_record (rosbag/record)
243
+ ROS_MASTER_URI=http://localhost:11311
244
+ process[pub_text-13]: started with pid [2649694]
245
+ process[print_text-14]: started with pid [2649695]
246
+ process[rosbag_record-15]: started with pid [2649696]
247
+ started bagging!
248
+ For topic gripper_width: timestamp difference is 110738336 for nearest: 1737512623479111730 - target: 1737512623368373394 at idx 249
249
+ [INFO] [1737512628.895769]: Storing episode...
250
+ [rosbag_record-15] killing on exit
251
+ [print_text-14] killing on exit
252
+ [pub_text-13] killing on exit
253
+ [INFO] [1737512629.627210]: Stored episode 5.
254
+ [INFO] [1737512629.639351]: Saving video...
255
+ [INFO] [1737512630.211458]: Video saved!
256
+ [INFO] [1737512630.257196]: resetting environment
257
+ [INFO] [1737512630.290530]: cleared current plan
258
+ [INFO] [1737512630.291321]: moving to home
259
+ [WARN] [1737512630.264509]: Plan exhausted
260
+ [INFO] [1737512633.895220]: reached home
261
+ [INFO] [1737512633.908928]: reset action history
262
+ [INFO] [1737512636.694786]: environment reset
263
+ Evaluation finished. To wrap up, rate prev episode, press 0 for failure and 1 for success
264
+ proceeding to start episode!Comuting lower confidence bound
265
+ Comuting upper confidence bound
266
+ Comuting lower confidence bound
267
+ Comuting upper confidence bound
268
+ Comuting lower confidence bound
269
+ Comuting upper confidence bound
270
+ Comuting lower confidence bound
271
+ Comuting upper confidence bound
272
+ Comuting lower confidence bound
273
+ Comuting upper confidence bound
274
+ Comuting lower confidence bound
275
+ Comuting upper confidence bound
276
+ Comuting lower confidence bound
277
+ Comuting upper confidence bound
278
+ Comuting lower confidence bound
279
+ Comuting upper confidence bound
280
+ proceeding to start episode!
5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/wandb-metadata.json ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "os": "Linux-5.15.0-125-generic-x86_64-with-glibc2.31",
3
+ "python": "3.10.14",
4
+ "heartbeatAt": "2025-01-22T02:18:42.776324",
5
+ "startedAt": "2025-01-22T02:18:42.329441",
6
+ "docker": null,
7
+ "cuda": null,
8
+ "args": [
9
+ "agent=diffusion",
10
+ "suite=frankagym",
11
+ "suite/frankagym_task@_global_=insertion"
12
+ ],
13
+ "state": "running",
14
+ "program": "/home/leonmkim/fish_leon/FISH/eval_robot.py",
15
+ "codePathLocal": null,
16
+ "codePath": "FISH/eval_robot.py",
17
+ "git": {
18
+ "remote": "https://github.com/leonmkim/fish_leon.git",
19
+ "commit": "dc9da9fa0ef2996c7fec8d105e7933e728cd952f"
20
+ },
21
+ "email": "leonmkim@seas.upenn.edu",
22
+ "root": "/home/leonmkim/fish_leon",
23
+ "host": "leonmkim-ROG-Strix-G15CS-G15CS",
24
+ "username": "leonmkim",
25
+ "executable": "/home/leonmkim/.pyenv/versions/lerobot/bin/python",
26
+ "cpu_count": 8,
27
+ "cpu_count_logical": 8,
28
+ "cpu_freq": {
29
+ "current": 3374.98625,
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": 4499.942,
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": 357.1996383666992
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
+ }
5z33ibf5/wandb/run-20250121_211842-5z33ibf5/files/wandb-summary.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"eval/0_eval": {"_type": "video-file", "sha256": "52952b9d92244b702210bb0b7ecf54272d94ebcdafdb932394ed66139de018ad", "size": 1496646, "path": "media/videos/eval/0_eval_0_52952b9d92244b702210.mp4"}, "global_step": 665, "_timestamp": 1737512641.3707454, "_runtime": 319.0309205055237, "_step": 11, "eval/1_eval": {"_type": "video-file", "sha256": "f36a449d922a9d3cb1686a75906fc79cfb5289c444b90f06ae867fbdf206f17f", "size": 1497131, "path": "media/videos/eval/1_eval_1_f36a449d922a9d3cb168.mp4"}, "eval/num_success": 5.0, "episode": 20.0, "eval/success_rate": 1.0, "eval/success_rate_lb_0.01": 0.4496806859970093, "eval/success_rate_ub_0.01": 1.0, "eval/success_rate_lb_0.025": 0.4799937605857849, "eval/success_rate_ub_0.025": 1.0, "eval/success_rate_lb_0.05": 0.6638181209564209, "eval/success_rate_ub_0.05": 1.0, "eval/success_rate_lb_0.1": 1.0, "eval/success_rate_ub_0.1": 1.0, "eval/2_eval": {"_type": "video-file", "sha256": "1bfe16d417bf0eae1e35767e3953d00274fa7285bf1c4390332b92d49b5de96f", "size": 1524925, "path": "media/videos/eval/2_eval_2_1bfe16d417bf0eae1e35.mp4"}, "eval/3_eval": {"_type": "video-file", "sha256": "d2f247956aef8b976274554f80d2c1d1afc91e008ebaec6d3ca108010709c75c", "size": 1582269, "path": "media/videos/eval/3_eval_3_d2f247956aef8b976274.mp4"}, "eval/4_eval": {"_type": "video-file", "sha256": "0b307d108c1b40ec3a037c54c4c4941b5b15cd441d223e640b227116c91f34cd", "size": 1601611, "path": "media/videos/eval/4_eval_4_0b307d108c1b40ec3a03.mp4"}, "eval/success_rate_ci": {"_type": "table-file", "sha256": "1b420c32327aa0ba7f7504ab8676a845cd69d26134af4445f97766065563f5e1", "size": 313, "artifact_path": "wandb-client-artifact://l5071udynioifpufowga68d3m0t8z8xi2tejarl8k1qrqoinp6ruxu5gy0ve1v5u058bhn56f1slutyn7t4flsurppoug4b3tkkfkowot6my3g53drn4dnyz0mq2nyhf/eval/success_rate_ci.table.json", "_latest_artifact_path": "wandb-client-artifact://dueqyuoirjeskldhrxavjem5dq6q4uj6jce9j08b99gsv6cdg6k3hwpbk616pja151o5j6b24ytfc4p1fyt2qz3jn9qwpalyad6gzu881bvhffsythv6v0k2iwtdjyit:latest/eval/success_rate_ci.table.json", "path": "media/table/eval/success_rate_ci_5_1b420c32327aa0ba7f75.table.json", "ncols": 9, "nrows": 1}, "total_num_successes": 7, "total_num_episodes": 20, "total_success_rate": 0.35, "total_success_rate_lb_0.01": 0.13707314438925872, "total_success_rate_ub_0.01": 0.6159580349690265, "total_success_rate_lb_0.025": 0.17542183405692, "total_success_rate_ub_0.025": 0.5902580916701045, "total_success_rate_lb_0.05": 0.19973829394623704, "total_success_rate_ub_0.05": 0.5288278013410134, "total_success_rate_lb_0.1": 0.21333447849523368, "total_success_rate_ub_0.1": 0.5130670443151089, "eval/total_success_rate_ci": {"_type": "table-file", "sha256": "7f69fec0f5489086ad7f5bfc7da2cc7aee1b80e239a6fd4a88aa7f44b12d4166", "size": 506, "artifact_path": "wandb-client-artifact://wdarixyqdsfyttggpu0hltznaaebn0uo8htu4kvvm8iqoc7fk99y4vtbfmg3uibkxui15qz9i3oo3sy9fjrt0lkukt8xafqjm6vglv6da8g9c56yq1n9svap6iuzkwi3/eval/total_success_rate_ci.table.json", "_latest_artifact_path": "wandb-client-artifact://g4bzvv5a71k739cta8qwzq7eydzk40e9g2ogb0p5ylei3xd8tiexh1dtqvcpi31wm4dkntxd43zyrscy5v0hbk6ppbh56ivkax76ygf3nml9zb7b42znl8o37wfoxwsl:latest/eval/total_success_rate_ci.table.json", "path": "media/table/eval/total_success_rate_ci_6_7f69fec0f5489086ad7f.table.json", "ncols": 11, "nrows": 1}, "_wandb": {"runtime": 339}, "eval/total_success_rate": 0.3499999940395355, "eval/total_success_rate_lb_0.01": 0.13707314431667328, "eval/total_success_rate_ub_0.01": 0.615958034992218, "eval/total_success_rate_lb_0.025": 0.1754218339920044, "eval/total_success_rate_ub_0.025": 0.5902580618858337, "eval/total_success_rate_lb_0.05": 0.1997382938861847, "eval/total_success_rate_ub_0.05": 0.5288277864456177, "eval/total_success_rate_lb_0.1": 0.21333448588848114, "eval/total_success_rate_ub_0.1": 0.5130670666694641}
5z33ibf5/wandb/run-20250121_211842-5z33ibf5/logs/debug-internal.log ADDED
The diff for this file is too large to render. See raw diff
 
5z33ibf5/wandb/run-20250121_211842-5z33ibf5/logs/debug.log ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2025-01-21 21:18:42,331 INFO MainThread:2648747 [wandb_setup.py:_flush():76] Current SDK version is 0.17.5
2
+ 2025-01-21 21:18:42,331 INFO MainThread:2648747 [wandb_setup.py:_flush():76] Configure stats pid to 2648747
3
+ 2025-01-21 21:18:42,331 INFO MainThread:2648747 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/.config/wandb/settings
4
+ 2025-01-21 21:18:42,332 INFO MainThread:2648747 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/5z33ibf5/wandb/settings
5
+ 2025-01-21 21:18:42,332 INFO MainThread:2648747 [wandb_setup.py:_flush():76] Loading settings from environment variables: {}
6
+ 2025-01-21 21:18:42,332 INFO MainThread:2648747 [wandb_setup.py:_flush():76] Applying setup settings: {'_disable_service': False}
7
+ 2025-01-21 21:18:42,332 INFO MainThread:2648747 [wandb_setup.py:_flush():76] Inferring run settings from compute environment: {'program_relpath': 'FISH/eval_robot.py', 'program_abspath': '/home/leonmkim/fish_leon/FISH/eval_robot.py', 'program': '/home/leonmkim/fish_leon/FISH/eval_robot.py'}
8
+ 2025-01-21 21:18:42,332 INFO MainThread:2648747 [wandb_setup.py:_flush():76] Applying login settings: {}
9
+ 2025-01-21 21:18:42,332 INFO MainThread:2648747 [wandb_init.py:_log_setup():529] Logging user logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/5z33ibf5/wandb/run-20250121_211842-5z33ibf5/logs/debug.log
10
+ 2025-01-21 21:18:42,332 INFO MainThread:2648747 [wandb_init.py:_log_setup():530] Logging internal logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/5z33ibf5/wandb/run-20250121_211842-5z33ibf5/logs/debug-internal.log
11
+ 2025-01-21 21:18:42,332 INFO MainThread:2648747 [wandb_init.py:init():569] calling init triggers
12
+ 2025-01-21 21:18:42,333 INFO MainThread:2648747 [wandb_init.py:init():576] wandb.init called with sweep_config: {}
13
+ config: {'root_dir': '/home/leonmkim/fish_leon', 'replay_buffer_size': 150000, 'replay_buffer_num_workers': 2, 'nstep': 3, 'batch_size': 128, 'seed': 0, 'dataset_shuffle_seed': 0, 'device': 'cuda', 'save_video': True, 'save_train_video': True, 'use_tb': True, 'use_wandb': True, 'wandb_run_id': '4295_0', 'wandb_notes': '4295_0_restarted_1', 'eval': True, 'true_action_history': False, 'train_pad_after': 4, 'process_contact_features': True, 'obs_type': 'pixels', 'use_color': False, 'use_depth': True, 'use_masks': True, 'mask_list': ['EE_obj_mask'], 'mask_representation': 'channels', 'crop_hw': [144, 144], 'crop_down_offset': 48, 'color_crop_type': None, 'depth_crop_type': None, 'segmask_crop_type': None, 'add_crop_binary_mask': False, 'add_coord_conv_map': False, 'use_context_color': False, 'use_context_depth': False, 'use_context_segmask': False, 'context_color_crop_type': None, 'context_depth_crop_type': None, 'context_segmask_crop_type': None, 'context_add_crop_binary_mask': False, 'context_add_coord_conv_map': False, 'use_contact_map': True, 'use_sdf_maps': True, 'use_normals_maps': True, 'which_objects': 'both', 'max_contact_prob': 0.1, 'max_depth': 2.0, 'grasped_dtc_max_value': 0.2, 'env_dtc_max_value': 0.4, 'grasped_normals_mask_max_dtc_value': 0.2, 'env_normals_mask_max_dtc_value': 0.4, 'clamp_dtc': True, 'dtc_adaptive_normalization': False, 'mask_normals_within_sdf': True, 'adaptive_normals_mask': True, 'learnable_contact_preprocess_params': True, 'contact_model_name': 'local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9', 'contact_estimation_model_ckpt_path': '~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt', 'encoder_type': 'small', 'debug_timestamps': False, 'open_loop': False, 'action_trajectories': True, 'stop_after_action': False, 'interpolation_frequency': 25, 'policy_frequency': 5, 'wait_for_new_camera_frames': True, 'baseline': False, 'train_demo_idxs_list_or_num': -1, 'log_train_every_steps': 25, 'name_of_expert_demo': '120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'expert_dataset_dirpath': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'store_dataset_in_memory': False, 'expert_dataset': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'action_key': 'action_trajectory_25hz', 'semantic_demo_grouping_name': 'semantic_demo_grouping.yaml', 'semantic_demo_grouping': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml', 'include_groups_list': 'all', 'expert_dataset_config': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demo_config.yaml', 'name_of_valid_demo': '120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'valid_dataset_dir': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'valid_demo_idxs_list_or_num': None, 'val_num_groups': 7, 'load_bc': True, 'checkpoint_epoch_list': [99, 199, 299, 399, 499, 599, 699, 799, 899, 999, 1249, 1499, 1749, 1999, 2999, 3999, 4999, 5999, 6999, 7999, 8999, 9999], 'snapshot_root_dir': '/mnt/grasp_high_usage/leonmkim/contact_estimation/FISH', 'save_snapshot': True, 'save_last_snapshot': True, 'save_snapshot_when_done': True, 'top_k_checkpoints': 5, 'save_snapshot_link_to_weights_dir': 'deprecated', 'restore_missing_checkpoint': None, 'bc_regularize': False, 'bc_weight_type': 'qfilter', 'experiment_dir': './exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0', 'agent': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgent', 'name': 'diffusion_policy', 'load_checkpoint': True, 'device': 'cuda', 'n_obs_steps': 1, 'suite_name': 'frankagym', 'obs_type': 'pixels', 'enable_arm': True, 'enable_camera': True, 'use_tb': True, 'desired_image_shape': [13, 180, 240], 'orig_cam_shape': [3, 240, 320], 'config': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgentConfig', 'compile': False, 'device': 'cuda', 'cam_resize_shape': [13, 180, 240], 'orig_cam_shape': [3, 240, 320], 'policy_frequency': 5, 'interpolation_frequency': 25, 'policy_cfg': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig', 'n_obs_steps': 1, 'horizon': 36, 'n_action_steps': 36, 'output_shapes': {'action': [7]}, 'input_normalization_modes': {'observation.image': 'mean_std', 'observation.state': 'min_max', 'observation.action_history': 'min_max'}, 'output_normalization_modes': {'action': 'min_max'}, 'vision_backbone': 'resnet18', 'crop_distractors_tlhw': [32, 68, 174, 174], 'pretrained_backbone_weights': None, 'transforms': [{'_target_': 'torchaug.transforms.RandomAffine', 'degrees': [-5, 5], 'translate': [0.05, 0.05], 'batch_transform': True, 'num_chunks': -1, 'batch_inplace': True}, {'_target_': 'torchaug.transforms.RandomColorJitter', 'brightness': 0.3, 'contrast': 0.4, 'saturation': 0.5, 'hue': 0.08, 'batch_transform': True, 'num_chunks': -1, 'batch_inplace': True}], 'use_group_norm': True, 'spatial_softmax_num_keypoints': 32, 'action_history_encoder_config': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig', 'in_channels': 7, 'out_channels': 32, 'history_length': 6, 'kernel_size': 5, 'downsample_kernel_size': 3, 'downsample_stride': 2, 'downsample_padding': 1}, 'down_dims': [256, 512, 1024], 'kernel_size': 5, 'n_groups': 8, 'diffusion_step_embed_dim': 128, 'use_film_scale_modulation': True, 'noise_scheduler_type': 'DDIM', 'beta_schedule': 'squaredcos_cap_v2', 'beta_start': 0.0001, 'beta_end': 0.02, 'prediction_type': 'epsilon', 'clip_sample': True, 'clip_sample_range': 1.0, 'num_train_timesteps': 50, 'num_inference_steps': 10, 'do_mask_loss_for_padding': False, 'input_shapes': {'observation.image': [13, 180, 240], 'context_observation.image': [13, 180, 240], 'observation.state': [8], 'observation.action_history': [7]}}, 'train_cfg': {'_target_': 'utils.TrainConfig', 'lr': 0.0001, 'lr_scheduler': 'cosine', 'lr_warmup_steps': 500, 'adam_betas': [0.95, 0.999], 'adam_eps': 1e-08, 'adam_weight_decay': 1e-06, 'grad_clip_norm': 10, 'offline_steps': 1000000, 'use_amp': True}, 'observation_cfg': {'_target_': 'agent.encoder.VisualFeatureSet', 'use_depth': True, 'use_color': False, 'mask_input_dict': {'_target_': 'agent.encoder.MaskInputDict', 'enable': True, 'representation': 'channels', 'mask_list': ['EE_obj_mask']}, 'crop_input_config': {'_target_': 'agent.encoder.CropInputConfig', 'color_crop_type': None, 'depth_crop_type': None, 'segmask_crop_type': None, 'crop_hw': [144, 144], 'crop_down_offset': 48, 'add_crop_binary_mask': False, 'add_coord_conv_map': False}, 'context_input_config': {'_target_': 'agent.encoder.ContextInputConfig', 'use_color': False, 'use_depth': False, 'mask_input_dict': {'_target_': 'agent.encoder.MaskInputDict', 'enable': False, 'representation': 'channels', 'mask_list': ['EE_obj_mask']}, 'crop_input_config': {'_target_': 'agent.encoder.CropInputConfig', 'color_crop_type': None, 'depth_crop_type': None, 'segmask_crop_type': None, 'crop_hw': [144, 144], 'crop_down_offset': 48, 'add_crop_binary_mask': False, 'add_coord_conv_map': False}}, 'mask_soft_approx_scheduler_config': {'_target_': 'agent.encoder.MaskSoftApproxSchedulerConfig', 'num_steps': 40000, 'initial_value': 10.0, 'final_value': 1000.0, 'interpolation_scheme': 'cosine'}, 'use_contact_map': True, 'use_sdf_maps': True, 'use_normals_maps': True, 'which_objects': 'both', 'grasped_dtc_max_value': 0.2, 'env_dtc_max_value': 0.4, 'grasped_normals_mask_max_dtc_value': 0.2, 'env_normals_mask_max_dtc_value': 0.4, 'clamp_dtc': True, 'max_contact_prob': 0.1, 'mask_normals_within_sdf': True, 'dtc_adaptive_normalization': False, 'adaptive_normals_mask': True, 'max_depth': 2.0, 'image_shape': [13, 180, 240], 'learnable_contact_preprocess_params': True, 'learning_rate': 0.0001, 'weight_decay': 0.0, 'contact_model_name': 'local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9', 'zero_centered': False, 'crop_distractors_tlhw': [32, 68, 174, 174]}}}, 'suite': {'suite': 'frankagym', 'name': 'frankagym', 'frame_stack': 1, 'action_repeat': 1, 'discount': 0.99, 'hidden_dim': 1024, 'num_train_frames': 2010, 'num_seed_frames': 260, 'num_train_epochs': 5000, 'validate_every_epochs': 100, 'validate_diffusion_on_action_loss_every_epochs': 500, 'train_eval_diffusion_on_action_loss_every_epochs': 500, 'check_topk_every_epochs': 10, 'save_snapshot_every_epochs': 5000, 'eval_every_frames': 2000, 'num_eval_episodes': 5, 'save_snapshot': True, 'wait_for_user_to_start_episode': True, 'task_make_fn': {'_target_': 'suite.frankagym.make', 'name': 'FrankaInsertion-v1', 'height': 240, 'width': 320, 'frame_stack': 1, 'action_repeat': 1, 'seed': 0, 'enable_arm': True, 'enable_gripper': True, 'start_with_gripper_open': True, 'enable_camera': True, 'path_to_depth_extrinsics': '~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy', 'contact_estimation_model_ckpt_path': '~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt', 'x_limit': [0.2, 0.7], 'y_limit': [-0.4, 0.4], 'z_limit': [-0.05, 0.55], 'device': 'cuda', 'interpolation_frequency': 25, 'policy_frequency': 5, 'debug_timestamps': False, 'stop_after_action': False, 'open_loop': False, 'wait_for_new_camera_frames': True, 'action_key': 'action_trajectory_25hz', 'action_trajectory_horizon': 36, 'action_trajectories': True, 'path_to_zarr_dataset': '/home/leonmkim/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/120_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'agent_policy_cfg': {'_target_': 'agent.diffusion_policy.DiffusionPolicyAgentConfig', 'compile': False, 'device': 'cuda', 'cam_resize_shape': [13, 180, 240], 'orig_cam_shape': [3, 240, 320], 'policy_frequency': 5, 'interpolation_frequency': 25, 'policy_cfg': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig', 'n_obs_steps': 1, 'horizon': 36, 'n_action_steps': 36, 'output_shapes': {'action': [7]}, 'input_normalization_modes': {'observation.image': 'mean_std', 'observation.state': 'min_max', 'observation.action_history': 'min_max'}, 'output_normalization_modes': {'action': 'min_max'}, 'vision_backbone': 'resnet18', 'crop_distractors_tlhw': [32, 68, 174, 174], 'pretrained_backbone_weights': None, 'transforms': [{'_target_': 'torchaug.transforms.RandomAffine', 'degrees': [-5, 5], 'translate': [0.05, 0.05], 'batch_transform': True, 'num_chunks': -1, 'batch_inplace': True}, {'_target_': 'torchaug.transforms.RandomColorJitter', 'brightness': 0.3, 'contrast': 0.4, 'saturation': 0.5, 'hue': 0.08, 'batch_transform': True, 'num_chunks': -1, 'batch_inplace': True}], 'use_group_norm': True, 'spatial_softmax_num_keypoints': 32, 'action_history_encoder_config': {'_target_': 'lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig', 'in_channels': 7, 'out_channels': 32, 'history_length': 6, 'kernel_size': 5, 'downsample_kernel_size': 3, 'downsample_stride': 2, 'downsample_padding': 1}, 'down_dims': [256, 512, 1024], 'kernel_size': 5, 'n_groups': 8, 'diffusion_step_embed_dim': 128, 'use_film_scale_modulation': True, 'noise_scheduler_type': 'DDIM', 'beta_schedule': 'squaredcos_cap_v2', 'beta_start': 0.0001, 'beta_end': 0.02, 'prediction_type': 'epsilon', 'clip_sample': True, 'clip_sample_range': 1.0, 'num_train_timesteps': 50, 'num_inference_steps': 10, 'do_mask_loss_for_padding': False, 'input_shapes': {'observation.image': [13, 180, 240], 'context_observation.image': [13, 180, 240], 'observation.state': [8], 'observation.action_history': [7]}}, 'train_cfg': {'_target_': 'utils.TrainConfig', 'lr': 0.0001, 'lr_scheduler': 'cosine', 'lr_warmup_steps': 500, 'adam_betas': [0.95, 0.999], 'adam_eps': 1e-08, 'adam_weight_decay': 1e-06, 'grad_clip_norm': 10, 'offline_steps': 1000000, 'use_amp': True}, 'observation_cfg': {'_target_': 'agent.encoder.VisualFeatureSet', 'use_depth': True, 'use_color': False, 'mask_input_dict': {'_target_': 'agent.encoder.MaskInputDict', 'enable': True, 'representation': 'channels', 'mask_list': ['EE_obj_mask']}, 'crop_input_config': {'_target_': 'agent.encoder.CropInputConfig', 'color_crop_type': None, 'depth_crop_type': None, 'segmask_crop_type': None, 'crop_hw': [144, 144], 'crop_down_offset': 48, 'add_crop_binary_mask': False, 'add_coord_conv_map': False}, 'context_input_config': {'_target_': 'agent.encoder.ContextInputConfig', 'use_color': False, 'use_depth': False, 'mask_input_dict': {'_target_': 'agent.encoder.MaskInputDict', 'enable': False, 'representation': 'channels', 'mask_list': ['EE_obj_mask']}, 'crop_input_config': {'_target_': 'agent.encoder.CropInputConfig', 'color_crop_type': None, 'depth_crop_type': None, 'segmask_crop_type': None, 'crop_hw': [144, 144], 'crop_down_offset': 48, 'add_crop_binary_mask': False, 'add_coord_conv_map': False}}, 'mask_soft_approx_scheduler_config': {'_target_': 'agent.encoder.MaskSoftApproxSchedulerConfig', 'num_steps': 40000, 'initial_value': 10.0, 'final_value': 1000.0, 'interpolation_scheme': 'cosine'}, 'use_contact_map': True, 'use_sdf_maps': True, 'use_normals_maps': True, 'which_objects': 'both', 'grasped_dtc_max_value': 0.2, 'env_dtc_max_value': 0.4, 'grasped_normals_mask_max_dtc_value': 0.2, 'env_normals_mask_max_dtc_value': 0.4, 'clamp_dtc': True, 'max_contact_prob': 0.1, 'mask_normals_within_sdf': True, 'dtc_adaptive_normalization': False, 'adaptive_normals_mask': True, 'max_depth': 2.0, 'image_shape': [13, 180, 240], 'learnable_contact_preprocess_params': True, 'learning_rate': 0.0001, 'weight_decay': 0.0, 'contact_model_name': 'local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9', 'zero_centered': False, 'crop_distractors_tlhw': [32, 68, 174, 174]}}, 'true_action_history': False}}, 'num_train_frames_bc': 50000, 'num_train_frames_drq': 1100000, 'stddev_schedule_drq': 'linear(1.0,0.1,100000)', 'task_name': 'FrankaInsertion-v1', 'num_train_frames_vinn': 25000, 'num_train_frames_diffusion': 1000000, 'num_train_epochs_bc': 5000, 'num_train_epochs_diffusion': 15000, 'validate_every_epochs_bc': 5, 'validate_every_epochs_diffusion': 250, 'validate_diffusion_on_action_loss_every_epochs': 250, 'train_eval_diffusion_on_action_loss_every_epochs': 250, 'check_topk_every_epochs': 5, 'check_topk_every_epochs_diffusion': 250, 'save_snapshot_every_epochs_diffusion': 1500, 'x_limit': [0.2, 0.7], 'y_limit': [-0.4, 0.4], 'z_limit': [-0.05, 0.55], 'home_displacement': [0.55, 0.0, 0.55, 180.0, 0.0, 0.0], 'enable_gripper': True, 'start_with_gripper_open': True, 'offset_mask': [1, 1, 1, 1, 1, 1], 'path_to_depth_extrinsics': '~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy', 'test': {'username': 'leonmkim', 'hostname': 'grasp-login1', 'name_of_expert_demo': '112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'root_dir': '~/fish_leon', 'expert_dataset_dirpath': '~/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act', 'expert_dataset': '~/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/demos.zarr', 'semantic_demo_grouping_name': 'semantic_demo_grouping.yaml', 'semantic_demo_grouping': '~/fish_leon/FISH/expert_demos/frankagym/FrankaInsertion-v1/112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act/semantic_demo_grouping.yaml', 'include_groups_list': 'all', 'batch_size': 128, 'store_dataset_in_memory': False, 'use_tb': True, 'local_snapshot_root_dir': '/mnt/bighdd/fish_contact_backup', 'local_snapshot_dir': '/mnt/bighdd/fish_contact_backup/exp_local/frankagym_pixels/FrankaInsertion-v1', 'resume_wandb_run': False}, 'feature_type': '180x240_crpdstlhw24x51x130x130_1_D_2.0_msk_channels_EE_obj_mask_cntct_0.1_DTC_clmpd_lrnbl_nrmls_DTCmask_adpt_lrnbl_both_lr_0.0001_wd_0.0_local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9_acthist_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1', 'save_buffer': True, 'num_eval': 5, 'random_start': False, 'eval_starts': '/home/leonmkim/fish_leon/FISH/eval_starts/frankagym_pixels/FrankaInsertion-v1', 'num_valid_demos': None, 'load_checkpoint': True, 'checkpoint_epoch': 7500, 'load_residual_weight': False, 'checkpoint_root_dir': '/home/leonmkim/fish_leon/FISH', 'checkpoint_weight_dir': '/home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0', 'residual_weight': '/home/leonmkim/fish_leon/FISH/weights/frankagym_pixels/FrankaInsertion-v1/weight.pt', 'final_experiment_dir': './exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/5z33ibf5'}
14
+ 2025-01-21 21:18:42,333 INFO MainThread:2648747 [wandb_init.py:init():619] starting backend
15
+ 2025-01-21 21:18:42,333 INFO MainThread:2648747 [wandb_init.py:init():623] setting up manager
16
+ 2025-01-21 21:18:42,338 INFO MainThread:2648747 [backend.py:_multiprocessing_setup():105] multiprocessing start_methods=fork,spawn,forkserver, using: spawn
17
+ 2025-01-21 21:18:42,339 INFO MainThread:2648747 [wandb_init.py:init():631] backend started and connected
18
+ 2025-01-21 21:18:42,351 INFO MainThread:2648747 [wandb_init.py:init():720] updated telemetry
19
+ 2025-01-21 21:18:42,357 INFO MainThread:2648747 [wandb_init.py:init():753] communicating run to backend with 90.0 second timeout
20
+ 2025-01-21 21:18:42,678 INFO MainThread:2648747 [wandb_run.py:_on_init():2435] communicating current version
21
+ 2025-01-21 21:18:42,752 INFO MainThread:2648747 [wandb_run.py:_on_init():2444] got version response upgrade_message: "wandb version 0.19.4 is available! To upgrade, please run:\n $ pip install wandb --upgrade"
22
+
23
+ 2025-01-21 21:18:42,752 INFO MainThread:2648747 [wandb_init.py:init():804] starting run threads in backend
24
+ 2025-01-21 21:18:43,114 INFO MainThread:2648747 [wandb_run.py:_console_start():2413] atexit reg
25
+ 2025-01-21 21:18:43,115 INFO MainThread:2648747 [wandb_run.py:_redirect():2255] redirect: wrap_raw
26
+ 2025-01-21 21:18:43,115 INFO MainThread:2648747 [wandb_run.py:_redirect():2320] Wrapping output streams.
27
+ 2025-01-21 21:18:43,115 INFO MainThread:2648747 [wandb_run.py:_redirect():2345] Redirects installed.
28
+ 2025-01-21 21:18:43,118 INFO MainThread:2648747 [wandb_init.py:init():847] run started, returning control to user process
29
+ 2025-01-21 21:18:43,118 INFO MainThread:2648747 [wandb_run.py:_tensorboard_callback():1544] tensorboard callback: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/5z33ibf5/tb, True
30
+ 2025-01-21 21:19:04,065 INFO MainThread:2648747 [wandb_run.py:_config_callback():1382] config_cb None None {'grasped_obj_name': 'greece', 'left_book_slot': 'twodim'}
31
+ 2025-01-21 21:24:34,208 WARNING MsgRouterThr:2648747 [router.py:message_loop():77] message_loop has been closed
6yr9kinc/.hydra/config.yaml ADDED
@@ -0,0 +1,352 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ root_dir: /home/${oc.env:USER}/fish_leon
2
+ nstep: 3
3
+ seed: 41
4
+ dataset_shuffle_seed: ${seed}
5
+ device: cuda
6
+ save_video: true
7
+ save_buffer: true
8
+ use_tb: true
9
+ baseline: false
10
+ use_wandb: true
11
+ eval: true
12
+ process_contact_features: ${eval}
13
+ obs_type: pixels
14
+ use_color: true
15
+ use_depth: true
16
+ use_masks: false
17
+ mask_list:
18
+ - EE_obj_mask
19
+ mask_representation: channels
20
+ crop_hw:
21
+ - 144
22
+ - 144
23
+ crop_down_offset: 48
24
+ color_crop_type: null
25
+ depth_crop_type: null
26
+ segmask_crop_type: null
27
+ add_crop_binary_mask: false
28
+ add_coord_conv_map: false
29
+ use_context_color: false
30
+ use_context_depth: false
31
+ use_context_segmask: false
32
+ context_color_crop_type: null
33
+ context_depth_crop_type: null
34
+ context_segmask_crop_type: null
35
+ context_add_crop_binary_mask: false
36
+ context_add_coord_conv_map: false
37
+ use_contact_map: false
38
+ use_sdf_maps: false
39
+ use_normals_maps: false
40
+ which_objects: both
41
+ max_contact_prob: 0.1
42
+ max_depth: 2.0
43
+ grasped_dtc_max_value: 0.105
44
+ env_dtc_max_value: 0.425
45
+ grasped_normals_mask_max_dtc_value: 0.105
46
+ env_normals_mask_max_dtc_value: 0.425
47
+ clamp_dtc: true
48
+ dtc_adaptive_normalization: false
49
+ mask_normals_within_sdf: true
50
+ adaptive_normals_mask: true
51
+ learnable_contact_preprocess_params: false
52
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_ctxt_seed_183386_epoch_9
53
+ contact_estimation_model_ckpt_path: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
54
+ num_eval: 5
55
+ debug_timestamps: false
56
+ open_loop: false
57
+ action_trajectories: true
58
+ stop_after_action: false
59
+ interpolation_frequency: 25
60
+ policy_frequency: 5
61
+ wait_for_new_camera_frames: true
62
+ random_start: false
63
+ eval_starts: ${root_dir}/FISH/eval_starts/${suite.name}_${obs_type}/${task_name}
64
+ train_demo_idxs_list_or_num: null
65
+ num_valid_demos: null
66
+ val_num_groups: 3
67
+ name_of_expert_demo: 112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
68
+ expert_dataset_dirpath: ${root_dir}/FISH/expert_demos/${suite.name}/${task_name}/${name_of_expert_demo}
69
+ expert_dataset: ${expert_dataset_dirpath}/demos.zarr
70
+ action_key: ${oc.if_else:${action_trajectories}, 'action_trajectory_${interpolation_frequency}hz',
71
+ 'action'}
72
+ semantic_demo_grouping_name: semantic_demo_grouping.yaml
73
+ semantic_demo_grouping: ${expert_dataset_dirpath}/${semantic_demo_grouping_name}
74
+ expert_dataset_config: ${expert_dataset_dirpath}/demo_config.yaml
75
+ bc_regularize: false
76
+ bc_weight_type: qfilter
77
+ load_checkpoint: ${agent.load_checkpoint}
78
+ wandb_run_id: '4295_0'
79
+ true_action_history: false
80
+ wandb_notes: null
81
+ checkpoint_epoch: 7500
82
+ load_residual_weight: false
83
+ checkpoint_root_dir: /home/${oc.env:USER}/fish_leon/FISH
84
+ checkpoint_weight_dir: ${checkpoint_root_dir}/exp_local/${suite.name}_${obs_type}/${task_name}/${wandb_run_id}
85
+ residual_weight: ${root_dir}/FISH/weights/${suite.name}_${obs_type}/${task_name}/weight.pt
86
+ experiment_dir: ./exp_local/${suite.name}_${obs_type}/${task_name}/${wandb_run_id}
87
+ final_experiment_dir: ${experiment_dir}/${oc.generate_run_id:}
88
+ agent:
89
+ _target_: agent.diffusion_policy.DiffusionPolicyAgent
90
+ name: diffusion_policy
91
+ load_checkpoint: ${eval}
92
+ device: ${device}
93
+ n_obs_steps: ${.config.policy_cfg.n_obs_steps}
94
+ suite_name: ${suite.name}
95
+ obs_type: ${obs_type}
96
+ enable_arm: ${eval}
97
+ enable_camera: ${eval}
98
+ use_tb: ${use_tb}
99
+ desired_image_shape:
100
+ - 13
101
+ - 180
102
+ - 240
103
+ orig_cam_shape:
104
+ - 3
105
+ - 240
106
+ - 320
107
+ config:
108
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
109
+ compile: false
110
+ device: ${device}
111
+ cam_resize_shape: ${agent.desired_image_shape}
112
+ orig_cam_shape: ${agent.orig_cam_shape}
113
+ policy_frequency: ${policy_frequency}
114
+ interpolation_frequency: ${interpolation_frequency}
115
+ policy_cfg:
116
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
117
+ n_obs_steps: 1
118
+ horizon: 36
119
+ n_action_steps: ${agent.config.policy_cfg.horizon}
120
+ input_shapes:
121
+ observation.image: ${agent.config.cam_resize_shape}
122
+ context_observation.image: ${agent.config.cam_resize_shape}
123
+ observation.state:
124
+ - 8
125
+ observation.action_history:
126
+ - 7
127
+ output_shapes:
128
+ action:
129
+ - 7
130
+ input_normalization_modes:
131
+ observation.image: mean_std
132
+ observation.state: min_max
133
+ observation.action_history: min_max
134
+ output_normalization_modes:
135
+ action: min_max
136
+ vision_backbone: resnet18
137
+ crop_distractors_tlhw: null
138
+ pretrained_backbone_weights: null
139
+ transforms:
140
+ - _target_: torchaug.transforms.RandomAffine
141
+ degrees:
142
+ - -5
143
+ - 5
144
+ translate:
145
+ - 0.05
146
+ - 0.05
147
+ batch_transform: true
148
+ num_chunks: -1
149
+ batch_inplace: true
150
+ - _target_: torchaug.transforms.RandomColorJitter
151
+ brightness: 0.3
152
+ contrast: 0.4
153
+ saturation: 0.5
154
+ hue: 0.08
155
+ batch_transform: true
156
+ num_chunks: -1
157
+ batch_inplace: true
158
+ use_group_norm: true
159
+ spatial_softmax_num_keypoints: 32
160
+ action_history_encoder_config:
161
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
162
+ in_channels: 7
163
+ out_channels: 32
164
+ history_length: ${agent.config.policy_cfg.n_action_steps}
165
+ kernel_size: ${agent.config.policy_cfg.kernel_size}
166
+ downsample_kernel_size: 3
167
+ downsample_stride: 2
168
+ downsample_padding: 1
169
+ down_dims:
170
+ - 256
171
+ - 512
172
+ - 1024
173
+ kernel_size: 5
174
+ n_groups: 8
175
+ diffusion_step_embed_dim: 128
176
+ use_film_scale_modulation: true
177
+ noise_scheduler_type: DDIM
178
+ beta_schedule: squaredcos_cap_v2
179
+ beta_start: 0.0001
180
+ beta_end: 0.02
181
+ prediction_type: epsilon
182
+ clip_sample: true
183
+ clip_sample_range: 1.0
184
+ num_train_timesteps: 50
185
+ num_inference_steps: 10
186
+ do_mask_loss_for_padding: false
187
+ train_cfg:
188
+ _target_: utils.TrainConfig
189
+ lr: 0.0001
190
+ lr_scheduler: cosine
191
+ lr_warmup_steps: 500
192
+ adam_betas:
193
+ - 0.95
194
+ - 0.999
195
+ adam_eps: 1.0e-08
196
+ adam_weight_decay: 1.0e-06
197
+ grad_clip_norm: 10
198
+ offline_steps: ${num_train_frames_diffusion}
199
+ use_amp: true
200
+ observation_cfg:
201
+ _target_: agent.encoder.VisualFeatureSet
202
+ use_depth: ${use_depth}
203
+ use_color: ${use_color}
204
+ mask_input_dict:
205
+ _target_: agent.encoder.MaskInputDict
206
+ enable: ${use_masks}
207
+ representation: ${mask_representation}
208
+ mask_list: ${mask_list}
209
+ crop_input_config:
210
+ _target_: agent.encoder.CropInputConfig
211
+ color_crop_type: ${color_crop_type}
212
+ depth_crop_type: ${depth_crop_type}
213
+ segmask_crop_type: ${segmask_crop_type}
214
+ crop_hw: ${crop_hw}
215
+ crop_down_offset: ${crop_down_offset}
216
+ add_crop_binary_mask: ${add_crop_binary_mask}
217
+ add_coord_conv_map: ${add_coord_conv_map}
218
+ context_input_config:
219
+ _target_: agent.encoder.ContextInputConfig
220
+ use_color: ${use_context_color}
221
+ use_depth: ${use_context_depth}
222
+ mask_input_dict:
223
+ _target_: agent.encoder.MaskInputDict
224
+ enable: ${use_context_segmask}
225
+ representation: ${mask_representation}
226
+ mask_list: ${mask_list}
227
+ crop_input_config:
228
+ _target_: agent.encoder.CropInputConfig
229
+ color_crop_type: ${context_color_crop_type}
230
+ depth_crop_type: ${context_depth_crop_type}
231
+ segmask_crop_type: ${context_segmask_crop_type}
232
+ crop_hw: ${crop_hw}
233
+ crop_down_offset: ${crop_down_offset}
234
+ add_crop_binary_mask: ${context_add_crop_binary_mask}
235
+ add_coord_conv_map: ${context_add_coord_conv_map}
236
+ mask_soft_approx_scheduler_config:
237
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
238
+ num_steps: 40000
239
+ initial_value: 10.0
240
+ final_value: 1000.0
241
+ interpolation_scheme: constant
242
+ use_contact_map: ${use_contact_map}
243
+ use_sdf_maps: ${use_sdf_maps}
244
+ use_normals_maps: ${use_normals_maps}
245
+ which_objects: ${which_objects}
246
+ grasped_dtc_max_value: ${grasped_dtc_max_value}
247
+ env_dtc_max_value: ${env_dtc_max_value}
248
+ grasped_normals_mask_max_dtc_value: ${grasped_normals_mask_max_dtc_value}
249
+ env_normals_mask_max_dtc_value: ${env_normals_mask_max_dtc_value}
250
+ clamp_dtc: ${clamp_dtc}
251
+ max_contact_prob: ${max_contact_prob}
252
+ mask_normals_within_sdf: ${mask_normals_within_sdf}
253
+ dtc_adaptive_normalization: ${dtc_adaptive_normalization}
254
+ adaptive_normals_mask: ${adaptive_normals_mask}
255
+ max_depth: ${max_depth}
256
+ image_shape: ${agent.desired_image_shape}
257
+ learnable_contact_preprocess_params: ${learnable_contact_preprocess_params}
258
+ learning_rate: ${agent.config.train_cfg.lr}
259
+ weight_decay: 0.0
260
+ contact_model_name: ${contact_model_name}
261
+ zero_centered: false
262
+ crop_distractors_tlhw: ${agent.config.policy_cfg.crop_distractors_tlhw}
263
+ suite:
264
+ suite: frankagym
265
+ name: frankagym
266
+ frame_stack: ${agent.n_obs_steps}
267
+ action_repeat: 1
268
+ discount: 0.99
269
+ hidden_dim: 1024
270
+ num_train_frames: 2010
271
+ num_seed_frames: 260
272
+ num_train_epochs: 5000
273
+ validate_every_epochs: 100
274
+ validate_diffusion_on_action_loss_every_epochs: 500
275
+ train_eval_diffusion_on_action_loss_every_epochs: 500
276
+ check_topk_every_epochs: 10
277
+ save_snapshot_every_epochs: 5000
278
+ eval_every_frames: 2000
279
+ num_eval_episodes: 5
280
+ save_snapshot: true
281
+ wait_for_user_to_start_episode: true
282
+ task_make_fn:
283
+ _target_: suite.frankagym.make
284
+ name: ${task_name}
285
+ height: 240
286
+ width: 320
287
+ frame_stack: ${suite.frame_stack}
288
+ action_repeat: ${suite.action_repeat}
289
+ seed: ${seed}
290
+ enable_arm: ${agent.enable_arm}
291
+ enable_gripper: ${enable_gripper}
292
+ start_with_gripper_open: ${start_with_gripper_open}
293
+ enable_camera: ${agent.enable_camera}
294
+ path_to_depth_extrinsics: ${path_to_depth_extrinsics}
295
+ contact_estimation_model_ckpt_path: ${contact_estimation_model_ckpt_path}
296
+ x_limit: ${x_limit}
297
+ y_limit: ${y_limit}
298
+ z_limit: ${z_limit}
299
+ device: ${device}
300
+ interpolation_frequency: ${interpolation_frequency}
301
+ policy_frequency: ${policy_frequency}
302
+ debug_timestamps: ${debug_timestamps}
303
+ stop_after_action: ${stop_after_action}
304
+ open_loop: ${open_loop}
305
+ wait_for_new_camera_frames: ${wait_for_new_camera_frames}
306
+ action_key: ${action_key}
307
+ action_trajectory_horizon: ${agent.config.policy_cfg.horizon}
308
+ action_trajectories: ${action_trajectories}
309
+ path_to_zarr_dataset: ${expert_dataset}
310
+ agent_policy_cfg: ???
311
+ true_action_history: ${true_action_history}
312
+ num_train_frames_bc: 50000
313
+ num_train_frames_drq: 1100000
314
+ stddev_schedule_drq: linear(1.0,0.1,100000)
315
+ task_name: FrankaInsertion-v1
316
+ num_train_frames_vinn: 25000
317
+ num_train_frames_diffusion: 1000000
318
+ num_train_epochs_bc: 5000
319
+ num_train_epochs_diffusion: 5000
320
+ validate_every_epochs_bc: 5
321
+ validate_every_epochs_diffusion: 25
322
+ validate_diffusion_on_action_loss_every_epochs: 50
323
+ train_eval_diffusion_on_action_loss_every_epochs: 500
324
+ check_topk_every_epochs: 5
325
+ check_topk_every_epochs_diffusion: ${validate_diffusion_on_action_loss_every_epochs}
326
+ save_snapshot_every_epochs_diffusion: 5000
327
+ x_limit:
328
+ - 0.2
329
+ - 0.7
330
+ y_limit:
331
+ - -0.4
332
+ - 0.4
333
+ z_limit:
334
+ - -0.05
335
+ - 0.55
336
+ home_displacement:
337
+ - 0.55
338
+ - 0.0
339
+ - 0.55
340
+ - 180.0
341
+ - 0.0
342
+ - 0.0
343
+ enable_gripper: true
344
+ start_with_gripper_open: true
345
+ offset_mask:
346
+ - 1
347
+ - 1
348
+ - 1
349
+ - 1
350
+ - 1
351
+ - 1
352
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
6yr9kinc/.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/4295_0/6yr9kinc
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
6yr9kinc/.hydra/overrides.yaml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ - agent=diffusion
2
+ - suite=frankagym
3
+ - suite/frankagym_task@_global_=insertion
6yr9kinc/eval_policy.log ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [2025-01-21 21:18:33,733][py.warnings][WARNING] - /home/leonmkim/fish_leon/FISH/eval_policy.py:429: UserWarning:
2
+ The version_base parameter is not specified.
3
+ Please specify a compatability version level, or None.
4
+ Will assume defaults for version 1.1
5
+ @hydra.main(config_path='cfgs', config_name='config_eval')
6
+
7
+ [2025-01-21 21:18:33,737][py.warnings][WARNING] - /home/leonmkim/fish_leon/FISH/eval_policy.py:366: 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
+ [2025-01-21 21:18:36,249][py.warnings][WARNING] - /home/leonmkim/fish_leon/FISH/eval_policy.py:415: 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
+
8wyk5kwf/.hydra/config.yaml ADDED
@@ -0,0 +1,352 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ root_dir: /home/${oc.env:USER}/fish_leon
2
+ nstep: 3
3
+ seed: 41
4
+ dataset_shuffle_seed: ${seed}
5
+ device: cuda
6
+ save_video: true
7
+ save_buffer: true
8
+ use_tb: true
9
+ baseline: false
10
+ use_wandb: true
11
+ eval: true
12
+ process_contact_features: ${eval}
13
+ obs_type: pixels
14
+ use_color: true
15
+ use_depth: true
16
+ use_masks: false
17
+ mask_list:
18
+ - EE_obj_mask
19
+ mask_representation: channels
20
+ crop_hw:
21
+ - 144
22
+ - 144
23
+ crop_down_offset: 48
24
+ color_crop_type: null
25
+ depth_crop_type: null
26
+ segmask_crop_type: null
27
+ add_crop_binary_mask: false
28
+ add_coord_conv_map: false
29
+ use_context_color: false
30
+ use_context_depth: false
31
+ use_context_segmask: false
32
+ context_color_crop_type: null
33
+ context_depth_crop_type: null
34
+ context_segmask_crop_type: null
35
+ context_add_crop_binary_mask: false
36
+ context_add_coord_conv_map: false
37
+ use_contact_map: false
38
+ use_sdf_maps: false
39
+ use_normals_maps: false
40
+ which_objects: both
41
+ max_contact_prob: 0.1
42
+ max_depth: 2.0
43
+ grasped_dtc_max_value: 0.105
44
+ env_dtc_max_value: 0.425
45
+ grasped_normals_mask_max_dtc_value: 0.105
46
+ env_normals_mask_max_dtc_value: 0.425
47
+ clamp_dtc: true
48
+ dtc_adaptive_normalization: false
49
+ mask_normals_within_sdf: true
50
+ adaptive_normals_mask: true
51
+ learnable_contact_preprocess_params: false
52
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_ctxt_seed_183386_epoch_9
53
+ contact_estimation_model_ckpt_path: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
54
+ num_eval: 5
55
+ debug_timestamps: false
56
+ open_loop: false
57
+ action_trajectories: true
58
+ stop_after_action: false
59
+ interpolation_frequency: 25
60
+ policy_frequency: 5
61
+ wait_for_new_camera_frames: true
62
+ random_start: false
63
+ eval_starts: ${root_dir}/FISH/eval_starts/${suite.name}_${obs_type}/${task_name}
64
+ train_demo_idxs_list_or_num: null
65
+ num_valid_demos: null
66
+ val_num_groups: 3
67
+ name_of_expert_demo: 112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
68
+ expert_dataset_dirpath: ${root_dir}/FISH/expert_demos/${suite.name}/${task_name}/${name_of_expert_demo}
69
+ expert_dataset: ${expert_dataset_dirpath}/demos.zarr
70
+ action_key: ${oc.if_else:${action_trajectories}, 'action_trajectory_${interpolation_frequency}hz',
71
+ 'action'}
72
+ semantic_demo_grouping_name: semantic_demo_grouping.yaml
73
+ semantic_demo_grouping: ${expert_dataset_dirpath}/${semantic_demo_grouping_name}
74
+ expert_dataset_config: ${expert_dataset_dirpath}/demo_config.yaml
75
+ bc_regularize: false
76
+ bc_weight_type: qfilter
77
+ load_checkpoint: ${agent.load_checkpoint}
78
+ wandb_run_id: '4295_0'
79
+ true_action_history: false
80
+ wandb_notes: null
81
+ checkpoint_epoch: 7500
82
+ load_residual_weight: false
83
+ checkpoint_root_dir: /home/${oc.env:USER}/fish_leon/FISH
84
+ checkpoint_weight_dir: ${checkpoint_root_dir}/exp_local/${suite.name}_${obs_type}/${task_name}/${wandb_run_id}
85
+ residual_weight: ${root_dir}/FISH/weights/${suite.name}_${obs_type}/${task_name}/weight.pt
86
+ experiment_dir: ./exp_local/${suite.name}_${obs_type}/${task_name}/${wandb_run_id}
87
+ final_experiment_dir: ${experiment_dir}/${oc.generate_run_id:}
88
+ agent:
89
+ _target_: agent.diffusion_policy.DiffusionPolicyAgent
90
+ name: diffusion_policy
91
+ load_checkpoint: ${eval}
92
+ device: ${device}
93
+ n_obs_steps: ${.config.policy_cfg.n_obs_steps}
94
+ suite_name: ${suite.name}
95
+ obs_type: ${obs_type}
96
+ enable_arm: ${eval}
97
+ enable_camera: ${eval}
98
+ use_tb: ${use_tb}
99
+ desired_image_shape:
100
+ - 13
101
+ - 180
102
+ - 240
103
+ orig_cam_shape:
104
+ - 3
105
+ - 240
106
+ - 320
107
+ config:
108
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
109
+ compile: false
110
+ device: ${device}
111
+ cam_resize_shape: ${agent.desired_image_shape}
112
+ orig_cam_shape: ${agent.orig_cam_shape}
113
+ policy_frequency: ${policy_frequency}
114
+ interpolation_frequency: ${interpolation_frequency}
115
+ policy_cfg:
116
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
117
+ n_obs_steps: 1
118
+ horizon: 36
119
+ n_action_steps: ${agent.config.policy_cfg.horizon}
120
+ input_shapes:
121
+ observation.image: ${agent.config.cam_resize_shape}
122
+ context_observation.image: ${agent.config.cam_resize_shape}
123
+ observation.state:
124
+ - 8
125
+ observation.action_history:
126
+ - 7
127
+ output_shapes:
128
+ action:
129
+ - 7
130
+ input_normalization_modes:
131
+ observation.image: mean_std
132
+ observation.state: min_max
133
+ observation.action_history: min_max
134
+ output_normalization_modes:
135
+ action: min_max
136
+ vision_backbone: resnet18
137
+ crop_distractors_tlhw: null
138
+ pretrained_backbone_weights: null
139
+ transforms:
140
+ - _target_: torchaug.transforms.RandomAffine
141
+ degrees:
142
+ - -5
143
+ - 5
144
+ translate:
145
+ - 0.05
146
+ - 0.05
147
+ batch_transform: true
148
+ num_chunks: -1
149
+ batch_inplace: true
150
+ - _target_: torchaug.transforms.RandomColorJitter
151
+ brightness: 0.3
152
+ contrast: 0.4
153
+ saturation: 0.5
154
+ hue: 0.08
155
+ batch_transform: true
156
+ num_chunks: -1
157
+ batch_inplace: true
158
+ use_group_norm: true
159
+ spatial_softmax_num_keypoints: 32
160
+ action_history_encoder_config:
161
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
162
+ in_channels: 7
163
+ out_channels: 32
164
+ history_length: ${agent.config.policy_cfg.n_action_steps}
165
+ kernel_size: ${agent.config.policy_cfg.kernel_size}
166
+ downsample_kernel_size: 3
167
+ downsample_stride: 2
168
+ downsample_padding: 1
169
+ down_dims:
170
+ - 256
171
+ - 512
172
+ - 1024
173
+ kernel_size: 5
174
+ n_groups: 8
175
+ diffusion_step_embed_dim: 128
176
+ use_film_scale_modulation: true
177
+ noise_scheduler_type: DDIM
178
+ beta_schedule: squaredcos_cap_v2
179
+ beta_start: 0.0001
180
+ beta_end: 0.02
181
+ prediction_type: epsilon
182
+ clip_sample: true
183
+ clip_sample_range: 1.0
184
+ num_train_timesteps: 50
185
+ num_inference_steps: 10
186
+ do_mask_loss_for_padding: false
187
+ train_cfg:
188
+ _target_: utils.TrainConfig
189
+ lr: 0.0001
190
+ lr_scheduler: cosine
191
+ lr_warmup_steps: 500
192
+ adam_betas:
193
+ - 0.95
194
+ - 0.999
195
+ adam_eps: 1.0e-08
196
+ adam_weight_decay: 1.0e-06
197
+ grad_clip_norm: 10
198
+ offline_steps: ${num_train_frames_diffusion}
199
+ use_amp: true
200
+ observation_cfg:
201
+ _target_: agent.encoder.VisualFeatureSet
202
+ use_depth: ${use_depth}
203
+ use_color: ${use_color}
204
+ mask_input_dict:
205
+ _target_: agent.encoder.MaskInputDict
206
+ enable: ${use_masks}
207
+ representation: ${mask_representation}
208
+ mask_list: ${mask_list}
209
+ crop_input_config:
210
+ _target_: agent.encoder.CropInputConfig
211
+ color_crop_type: ${color_crop_type}
212
+ depth_crop_type: ${depth_crop_type}
213
+ segmask_crop_type: ${segmask_crop_type}
214
+ crop_hw: ${crop_hw}
215
+ crop_down_offset: ${crop_down_offset}
216
+ add_crop_binary_mask: ${add_crop_binary_mask}
217
+ add_coord_conv_map: ${add_coord_conv_map}
218
+ context_input_config:
219
+ _target_: agent.encoder.ContextInputConfig
220
+ use_color: ${use_context_color}
221
+ use_depth: ${use_context_depth}
222
+ mask_input_dict:
223
+ _target_: agent.encoder.MaskInputDict
224
+ enable: ${use_context_segmask}
225
+ representation: ${mask_representation}
226
+ mask_list: ${mask_list}
227
+ crop_input_config:
228
+ _target_: agent.encoder.CropInputConfig
229
+ color_crop_type: ${context_color_crop_type}
230
+ depth_crop_type: ${context_depth_crop_type}
231
+ segmask_crop_type: ${context_segmask_crop_type}
232
+ crop_hw: ${crop_hw}
233
+ crop_down_offset: ${crop_down_offset}
234
+ add_crop_binary_mask: ${context_add_crop_binary_mask}
235
+ add_coord_conv_map: ${context_add_coord_conv_map}
236
+ mask_soft_approx_scheduler_config:
237
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
238
+ num_steps: 40000
239
+ initial_value: 10.0
240
+ final_value: 1000.0
241
+ interpolation_scheme: constant
242
+ use_contact_map: ${use_contact_map}
243
+ use_sdf_maps: ${use_sdf_maps}
244
+ use_normals_maps: ${use_normals_maps}
245
+ which_objects: ${which_objects}
246
+ grasped_dtc_max_value: ${grasped_dtc_max_value}
247
+ env_dtc_max_value: ${env_dtc_max_value}
248
+ grasped_normals_mask_max_dtc_value: ${grasped_normals_mask_max_dtc_value}
249
+ env_normals_mask_max_dtc_value: ${env_normals_mask_max_dtc_value}
250
+ clamp_dtc: ${clamp_dtc}
251
+ max_contact_prob: ${max_contact_prob}
252
+ mask_normals_within_sdf: ${mask_normals_within_sdf}
253
+ dtc_adaptive_normalization: ${dtc_adaptive_normalization}
254
+ adaptive_normals_mask: ${adaptive_normals_mask}
255
+ max_depth: ${max_depth}
256
+ image_shape: ${agent.desired_image_shape}
257
+ learnable_contact_preprocess_params: ${learnable_contact_preprocess_params}
258
+ learning_rate: ${agent.config.train_cfg.lr}
259
+ weight_decay: 0.0
260
+ contact_model_name: ${contact_model_name}
261
+ zero_centered: false
262
+ crop_distractors_tlhw: ${agent.config.policy_cfg.crop_distractors_tlhw}
263
+ suite:
264
+ suite: frankagym
265
+ name: frankagym
266
+ frame_stack: ${agent.n_obs_steps}
267
+ action_repeat: 1
268
+ discount: 0.99
269
+ hidden_dim: 1024
270
+ num_train_frames: 2010
271
+ num_seed_frames: 260
272
+ num_train_epochs: 5000
273
+ validate_every_epochs: 100
274
+ validate_diffusion_on_action_loss_every_epochs: 500
275
+ train_eval_diffusion_on_action_loss_every_epochs: 500
276
+ check_topk_every_epochs: 10
277
+ save_snapshot_every_epochs: 5000
278
+ eval_every_frames: 2000
279
+ num_eval_episodes: 5
280
+ save_snapshot: true
281
+ wait_for_user_to_start_episode: true
282
+ task_make_fn:
283
+ _target_: suite.frankagym.make
284
+ name: ${task_name}
285
+ height: 240
286
+ width: 320
287
+ frame_stack: ${suite.frame_stack}
288
+ action_repeat: ${suite.action_repeat}
289
+ seed: ${seed}
290
+ enable_arm: ${agent.enable_arm}
291
+ enable_gripper: ${enable_gripper}
292
+ start_with_gripper_open: ${start_with_gripper_open}
293
+ enable_camera: ${agent.enable_camera}
294
+ path_to_depth_extrinsics: ${path_to_depth_extrinsics}
295
+ contact_estimation_model_ckpt_path: ${contact_estimation_model_ckpt_path}
296
+ x_limit: ${x_limit}
297
+ y_limit: ${y_limit}
298
+ z_limit: ${z_limit}
299
+ device: ${device}
300
+ interpolation_frequency: ${interpolation_frequency}
301
+ policy_frequency: ${policy_frequency}
302
+ debug_timestamps: ${debug_timestamps}
303
+ stop_after_action: ${stop_after_action}
304
+ open_loop: ${open_loop}
305
+ wait_for_new_camera_frames: ${wait_for_new_camera_frames}
306
+ action_key: ${action_key}
307
+ action_trajectory_horizon: ${agent.config.policy_cfg.horizon}
308
+ action_trajectories: ${action_trajectories}
309
+ path_to_zarr_dataset: ${expert_dataset}
310
+ agent_policy_cfg: ???
311
+ true_action_history: ${true_action_history}
312
+ num_train_frames_bc: 50000
313
+ num_train_frames_drq: 1100000
314
+ stddev_schedule_drq: linear(1.0,0.1,100000)
315
+ task_name: FrankaInsertion-v1
316
+ num_train_frames_vinn: 25000
317
+ num_train_frames_diffusion: 1000000
318
+ num_train_epochs_bc: 5000
319
+ num_train_epochs_diffusion: 5000
320
+ validate_every_epochs_bc: 5
321
+ validate_every_epochs_diffusion: 25
322
+ validate_diffusion_on_action_loss_every_epochs: 50
323
+ train_eval_diffusion_on_action_loss_every_epochs: 500
324
+ check_topk_every_epochs: 5
325
+ check_topk_every_epochs_diffusion: ${validate_diffusion_on_action_loss_every_epochs}
326
+ save_snapshot_every_epochs_diffusion: 5000
327
+ x_limit:
328
+ - 0.2
329
+ - 0.7
330
+ y_limit:
331
+ - -0.4
332
+ - 0.4
333
+ z_limit:
334
+ - -0.05
335
+ - 0.55
336
+ home_displacement:
337
+ - 0.55
338
+ - 0.0
339
+ - 0.55
340
+ - 180.0
341
+ - 0.0
342
+ - 0.0
343
+ enable_gripper: true
344
+ start_with_gripper_open: true
345
+ offset_mask:
346
+ - 1
347
+ - 1
348
+ - 1
349
+ - 1
350
+ - 1
351
+ - 1
352
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
8wyk5kwf/.hydra/hydra.yaml ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: ${final_experiment_dir}
4
+ sweep:
5
+ dir: ${final_experiment_dir}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ submitit_folder: ${final_experiment_dir}/.slurm
9
+ timeout_min: 60
10
+ cpus_per_task: null
11
+ gpus_per_node: null
12
+ tasks_per_node: 1
13
+ mem_gb: null
14
+ nodes: 1
15
+ name: ${hydra.job.name}
16
+ stderr_to_stdout: false
17
+ _target_: hydra_plugins.hydra_submitit_launcher.submitit_launcher.LocalLauncher
18
+ sweeper:
19
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
20
+ max_batch_size: null
21
+ params: null
22
+ help:
23
+ app_name: ${hydra.job.name}
24
+ header: '${hydra.help.app_name} is powered by Hydra.
25
+
26
+ '
27
+ footer: 'Powered by Hydra (https://hydra.cc)
28
+
29
+ Use --hydra-help to view Hydra specific help
30
+
31
+ '
32
+ template: '${hydra.help.header}
33
+
34
+ == Configuration groups ==
35
+
36
+ Compose your configuration from those groups (group=option)
37
+
38
+
39
+ $APP_CONFIG_GROUPS
40
+
41
+
42
+ == Config ==
43
+
44
+ Override anything in the config (foo.bar=value)
45
+
46
+
47
+ $CONFIG
48
+
49
+
50
+ ${hydra.help.footer}
51
+
52
+ '
53
+ hydra_help:
54
+ template: 'Hydra (${hydra.runtime.version})
55
+
56
+ See https://hydra.cc for more info.
57
+
58
+
59
+ == Flags ==
60
+
61
+ $FLAGS_HELP
62
+
63
+
64
+ == Configuration groups ==
65
+
66
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
67
+ to command line)
68
+
69
+
70
+ $HYDRA_CONFIG_GROUPS
71
+
72
+
73
+ Use ''--cfg hydra'' to Show the Hydra config.
74
+
75
+ '
76
+ hydra_help: ???
77
+ hydra_logging:
78
+ version: 1
79
+ formatters:
80
+ simple:
81
+ format: '[%(asctime)s][HYDRA] %(message)s'
82
+ handlers:
83
+ console:
84
+ class: logging.StreamHandler
85
+ formatter: simple
86
+ stream: ext://sys.stdout
87
+ root:
88
+ level: INFO
89
+ handlers:
90
+ - console
91
+ loggers:
92
+ logging_example:
93
+ level: DEBUG
94
+ disable_existing_loggers: false
95
+ job_logging:
96
+ version: 1
97
+ formatters:
98
+ simple:
99
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
100
+ handlers:
101
+ console:
102
+ class: logging.StreamHandler
103
+ formatter: simple
104
+ stream: ext://sys.stdout
105
+ file:
106
+ class: logging.FileHandler
107
+ formatter: simple
108
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
109
+ root:
110
+ level: INFO
111
+ handlers:
112
+ - console
113
+ - file
114
+ disable_existing_loggers: false
115
+ env: {}
116
+ mode: RUN
117
+ searchpath: []
118
+ callbacks: {}
119
+ output_subdir: .hydra
120
+ overrides:
121
+ hydra:
122
+ - hydra.mode=RUN
123
+ task:
124
+ - agent=diffusion
125
+ - suite=frankagym
126
+ - suite/frankagym_task@_global_=insertion
127
+ job:
128
+ name: eval_robot
129
+ chdir: true
130
+ override_dirname: agent=diffusion,suite/frankagym_task@_global_=insertion,suite=frankagym
131
+ id: ???
132
+ num: ???
133
+ config_name: config_eval
134
+ env_set: {}
135
+ env_copy: []
136
+ config:
137
+ override_dirname:
138
+ kv_sep: '='
139
+ item_sep: ','
140
+ exclude_keys: []
141
+ runtime:
142
+ version: 1.3.2
143
+ version_base: '1.1'
144
+ cwd: /home/leonmkim/fish_leon/FISH
145
+ config_sources:
146
+ - path: hydra.conf
147
+ schema: pkg
148
+ provider: hydra
149
+ - path: /home/leonmkim/fish_leon/FISH/cfgs
150
+ schema: file
151
+ provider: main
152
+ - path: ''
153
+ schema: structured
154
+ provider: schema
155
+ output_dir: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/4295_0/8wyk5kwf
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
8wyk5kwf/.hydra/overrides.yaml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ - agent=diffusion
2
+ - suite=frankagym
3
+ - suite/frankagym_task@_global_=insertion
8wyk5kwf/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
8wyk5kwf/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
8wyk5kwf/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
8wyk5kwf/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
8wyk5kwf/episode_rosbags/episode_0_2025-01-21-21-41-29.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:12fc6c7955fda91495ee3aada8f40ef61b3b93b00e6d410a236709f42932cf74
3
+ size 1257913700
8wyk5kwf/episode_rosbags/episode_1_2025-01-21-21-42-00.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:adf1016ab53f3d144b5c322473b9cd5ab29d6506bf8dab28879a44192b57aa6c
3
+ size 1343202659
8wyk5kwf/episode_rosbags/episode_2_2025-01-21-21-42-34.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e868df6152615de019ad76ec20754eac5aeab7f6d0f1e701221a789b5b397adf
3
+ size 1131697979
8wyk5kwf/eval_robot.log ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [2025-01-21 21:40:59,961][py.warnings][WARNING] - /home/leonmkim/fish_leon/FISH/eval_robot.py:597: UserWarning:
2
+ The version_base parameter is not specified.
3
+ Please specify a compatability version level, or None.
4
+ Will assume defaults for version 1.1
5
+ @hydra.main(config_path='cfgs', config_name='config_eval')
6
+
7
+ [2025-01-21 21:40:59,964][py.warnings][WARNING] - /home/leonmkim/fish_leon/FISH/eval_robot.py:533: UserWarning:
8
+ The version_base parameter is not specified.
9
+ Please specify a compatability version level, or None.
10
+ Will assume defaults for version 1.1
11
+ hydra.initialize(
12
+
8wyk5kwf/eval_video/0_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:42455952124d4dc1494a794ead57978b2c8afd8bbb95b5946273d6a77f3e4734
3
+ size 836964