serialexperimentsleon commited on
Commit
2a60e7f
·
verified ·
1 Parent(s): 3e46e90

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 +46 -0
  2. h3eacbh9/episode_rosbags/color_K.npy +3 -0
  3. h3eacbh9/episode_rosbags/episode_15_2025-01-18-20-25-57.bag +3 -0
  4. h3eacbh9/episode_rosbags/episode_3_2025-01-18-20-16-46.bag +3 -0
  5. h3eacbh9/episode_rosbags/episode_6_2025-01-18-20-18-58.bag +3 -0
  6. h3eacbh9/eval_video/0_eval.mp4 +3 -0
  7. h3eacbh9/eval_video/10_eval.mp4 +3 -0
  8. h3eacbh9/eval_video/11_eval.mp4 +3 -0
  9. h3eacbh9/eval_video/12_eval.mp4 +3 -0
  10. h3eacbh9/eval_video/13_eval.mp4 +3 -0
  11. h3eacbh9/eval_video/14_eval.mp4 +3 -0
  12. h3eacbh9/eval_video/15_eval.mp4 +3 -0
  13. h3eacbh9/eval_video/16_eval.mp4 +3 -0
  14. h3eacbh9/eval_video/17_eval.mp4 +3 -0
  15. h3eacbh9/eval_video/18_eval.mp4 +3 -0
  16. h3eacbh9/eval_video/19_eval.mp4 +3 -0
  17. h3eacbh9/eval_video/1_eval.mp4 +3 -0
  18. h3eacbh9/eval_video/2_eval.mp4 +3 -0
  19. h3eacbh9/eval_video/3_eval.mp4 +3 -0
  20. h3eacbh9/eval_video/4_eval.mp4 +3 -0
  21. h3eacbh9/eval_video/5_eval.mp4 +3 -0
  22. h3eacbh9/eval_video/6_eval.mp4 +3 -0
  23. h3eacbh9/eval_video/7_eval.mp4 +3 -0
  24. h3eacbh9/eval_video/8_eval.mp4 +3 -0
  25. h3eacbh9/eval_video/9_eval.mp4 +3 -0
  26. h3eacbh9/tb/events.out.tfevents.1737249243.leonmkim-ROG-Strix-G15CS-G15CS.2569579.0 +3 -0
  27. h3eacbh9/wandb/debug-internal.log +0 -0
  28. h3eacbh9/wandb/debug.log +31 -0
  29. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/code/FISH/eval_robot.py +606 -0
  30. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/config.yaml +927 -0
  31. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/diff.patch +102 -0
  32. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/table/eval/success_rate_ci_20_54e2754b6d7019322e44.table.json +1 -0
  33. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/table/eval/total_success_rate_ci_21_84d6d84980b416ef739f.table.json +1 -0
  34. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/0_eval_0_958873708057cb5c96d0.mp4 +3 -0
  35. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/10_eval_10_dbfaa8aaf0c838051064.mp4 +3 -0
  36. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/11_eval_11_359c87ada34d682bae45.mp4 +3 -0
  37. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/12_eval_12_50069bff80de5f046230.mp4 +3 -0
  38. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/13_eval_13_114ad2ddaaeca4cacdd5.mp4 +3 -0
  39. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/14_eval_14_d43b1e73114608f44587.mp4 +3 -0
  40. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/15_eval_15_a134ab49305f64bfef91.mp4 +3 -0
  41. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/16_eval_16_fba70f3485b0b97a5e73.mp4 +3 -0
  42. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/17_eval_17_70585fb0ca24437a0f9f.mp4 +3 -0
  43. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/18_eval_18_666566ff2e12fdecef30.mp4 +3 -0
  44. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/19_eval_19_d8301c722455e230f538.mp4 +3 -0
  45. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/1_eval_1_c93c245f94bccf988bf8.mp4 +3 -0
  46. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/2_eval_2_35d91a735aea17ce0770.mp4 +3 -0
  47. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/3_eval_3_c4ac9168429d53521dfd.mp4 +3 -0
  48. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/4_eval_4_73cfbcf4697dd02a1704.mp4 +3 -0
  49. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/5_eval_5_8eee7b4209c8cc001b29.mp4 +3 -0
  50. h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/6_eval_6_6f92e10ddc5700f95864.mp4 +3 -0
.gitattributes CHANGED
@@ -273,3 +273,49 @@ mo0b6mh9/episode_rosbags/episode_10_2025-01-18-20-03-04.bag filter=lfs diff=lfs
273
  h3eacbh9/episode_rosbags/episode_5_2025-01-18-20-18-13.bag filter=lfs diff=lfs merge=lfs -text
274
  bn7ul4i2/episode_rosbags/episode_4_2025-01-21-21-10-05.bag filter=lfs diff=lfs merge=lfs -text
275
  q1ti958r/episode_rosbags/episode_14_2025-01-18-19-00-54.bag filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
273
  h3eacbh9/episode_rosbags/episode_5_2025-01-18-20-18-13.bag filter=lfs diff=lfs merge=lfs -text
274
  bn7ul4i2/episode_rosbags/episode_4_2025-01-21-21-10-05.bag filter=lfs diff=lfs merge=lfs -text
275
  q1ti958r/episode_rosbags/episode_14_2025-01-18-19-00-54.bag filter=lfs diff=lfs merge=lfs -text
276
+ h3eacbh9/episode_rosbags/episode_6_2025-01-18-20-18-58.bag filter=lfs diff=lfs merge=lfs -text
277
+ q1ti958r/episode_rosbags/episode_17_2025-01-18-19-04-12.bag filter=lfs diff=lfs merge=lfs -text
278
+ q1ti958r/episode_rosbags/episode_1_2025-01-18-18-51-19.bag filter=lfs diff=lfs merge=lfs -text
279
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/run-h3eacbh9.wandb filter=lfs diff=lfs merge=lfs -text
280
+ h3eacbh9/episode_rosbags/episode_15_2025-01-18-20-25-57.bag filter=lfs diff=lfs merge=lfs -text
281
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/3_eval_3_c4ac9168429d53521dfd.mp4 filter=lfs diff=lfs merge=lfs -text
282
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/6_eval_6_6f92e10ddc5700f95864.mp4 filter=lfs diff=lfs merge=lfs -text
283
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/9_eval_9_45f46258144727274eca.mp4 filter=lfs diff=lfs merge=lfs -text
284
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/18_eval_18_666566ff2e12fdecef30.mp4 filter=lfs diff=lfs merge=lfs -text
285
+ h3eacbh9/episode_rosbags/episode_3_2025-01-18-20-16-46.bag filter=lfs diff=lfs merge=lfs -text
286
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/5_eval_5_8eee7b4209c8cc001b29.mp4 filter=lfs diff=lfs merge=lfs -text
287
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/7_eval_7_ec916f9f1cb86bb268d4.mp4 filter=lfs diff=lfs merge=lfs -text
288
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/15_eval_15_a134ab49305f64bfef91.mp4 filter=lfs diff=lfs merge=lfs -text
289
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/1_eval_1_c93c245f94bccf988bf8.mp4 filter=lfs diff=lfs merge=lfs -text
290
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/17_eval_17_70585fb0ca24437a0f9f.mp4 filter=lfs diff=lfs merge=lfs -text
291
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/2_eval_2_35d91a735aea17ce0770.mp4 filter=lfs diff=lfs merge=lfs -text
292
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/11_eval_11_359c87ada34d682bae45.mp4 filter=lfs diff=lfs merge=lfs -text
293
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/10_eval_10_dbfaa8aaf0c838051064.mp4 filter=lfs diff=lfs merge=lfs -text
294
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/4_eval_4_73cfbcf4697dd02a1704.mp4 filter=lfs diff=lfs merge=lfs -text
295
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/14_eval_14_d43b1e73114608f44587.mp4 filter=lfs diff=lfs merge=lfs -text
296
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/13_eval_13_114ad2ddaaeca4cacdd5.mp4 filter=lfs diff=lfs merge=lfs -text
297
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/8_eval_8_c1b631f94f507d0b8029.mp4 filter=lfs diff=lfs merge=lfs -text
298
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/12_eval_12_50069bff80de5f046230.mp4 filter=lfs diff=lfs merge=lfs -text
299
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/0_eval_0_958873708057cb5c96d0.mp4 filter=lfs diff=lfs merge=lfs -text
300
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/16_eval_16_fba70f3485b0b97a5e73.mp4 filter=lfs diff=lfs merge=lfs -text
301
+ h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/19_eval_19_d8301c722455e230f538.mp4 filter=lfs diff=lfs merge=lfs -text
302
+ h3eacbh9/eval_video/19_eval.mp4 filter=lfs diff=lfs merge=lfs -text
303
+ h3eacbh9/eval_video/3_eval.mp4 filter=lfs diff=lfs merge=lfs -text
304
+ h3eacbh9/eval_video/7_eval.mp4 filter=lfs diff=lfs merge=lfs -text
305
+ h3eacbh9/eval_video/12_eval.mp4 filter=lfs diff=lfs merge=lfs -text
306
+ h3eacbh9/eval_video/8_eval.mp4 filter=lfs diff=lfs merge=lfs -text
307
+ h3eacbh9/eval_video/4_eval.mp4 filter=lfs diff=lfs merge=lfs -text
308
+ h3eacbh9/eval_video/18_eval.mp4 filter=lfs diff=lfs merge=lfs -text
309
+ h3eacbh9/eval_video/6_eval.mp4 filter=lfs diff=lfs merge=lfs -text
310
+ h3eacbh9/eval_video/9_eval.mp4 filter=lfs diff=lfs merge=lfs -text
311
+ h3eacbh9/eval_video/5_eval.mp4 filter=lfs diff=lfs merge=lfs -text
312
+ h3eacbh9/eval_video/15_eval.mp4 filter=lfs diff=lfs merge=lfs -text
313
+ h3eacbh9/eval_video/11_eval.mp4 filter=lfs diff=lfs merge=lfs -text
314
+ h3eacbh9/eval_video/1_eval.mp4 filter=lfs diff=lfs merge=lfs -text
315
+ h3eacbh9/eval_video/16_eval.mp4 filter=lfs diff=lfs merge=lfs -text
316
+ h3eacbh9/eval_video/17_eval.mp4 filter=lfs diff=lfs merge=lfs -text
317
+ h3eacbh9/eval_video/2_eval.mp4 filter=lfs diff=lfs merge=lfs -text
318
+ h3eacbh9/eval_video/13_eval.mp4 filter=lfs diff=lfs merge=lfs -text
319
+ h3eacbh9/eval_video/0_eval.mp4 filter=lfs diff=lfs merge=lfs -text
320
+ h3eacbh9/eval_video/14_eval.mp4 filter=lfs diff=lfs merge=lfs -text
321
+ h3eacbh9/eval_video/10_eval.mp4 filter=lfs diff=lfs merge=lfs -text
h3eacbh9/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
h3eacbh9/episode_rosbags/episode_15_2025-01-18-20-25-57.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:587d7063581d7ebb218f538c1316e2b8898f5f36d398193d3ceca49793981448
3
+ size 1410806768
h3eacbh9/episode_rosbags/episode_3_2025-01-18-20-16-46.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:576f21622ad6423805c4a8200602ee779d10f45fe4a3caaee6e8d5ef0efdfdcd
3
+ size 1409388038
h3eacbh9/episode_rosbags/episode_6_2025-01-18-20-18-58.bag ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2819a02e187e7a3cb1118dd6b58823987e596e3ecbdf5deae333357c514e37f0
3
+ size 1410031567
h3eacbh9/eval_video/0_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:958873708057cb5c96d07eec36f6c0e68759bdf4c854f4fae4331f95dc510299
3
+ size 1142998
h3eacbh9/eval_video/10_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dbfaa8aaf0c838051064d1f52334d6d83d61935c556bc18851fb329b8e51a97b
3
+ size 1290176
h3eacbh9/eval_video/11_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:359c87ada34d682bae4526c67a0e1660ebc14229bbfea9ebda9878bc7cbe49e2
3
+ size 1165825
h3eacbh9/eval_video/12_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:50069bff80de5f04623040da25c9abba38c19c8c6f485f7ecb364ef9c652a551
3
+ size 1365675
h3eacbh9/eval_video/13_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:114ad2ddaaeca4cacdd5ae91c8134dd40a3d5b8d16f5c1538175afff73d03d34
3
+ size 1346252
h3eacbh9/eval_video/14_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d43b1e73114608f44587bfbbd894e999f6f34aa1b616cbab8d4f16ce3f271adc
3
+ size 1413320
h3eacbh9/eval_video/15_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a134ab49305f64bfef917aadcc5002acbf1b6c847787e9add516af98661440cb
3
+ size 1461649
h3eacbh9/eval_video/16_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fba70f3485b0b97a5e738e162bd29deed4662a79fc5279012753333773ee3b10
3
+ size 1472547
h3eacbh9/eval_video/17_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:70585fb0ca24437a0f9f8d8ce89db96ec7d90d0e2abf545ad2ba5f0a1b9d31c9
3
+ size 1504233
h3eacbh9/eval_video/18_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:666566ff2e12fdecef308d665951ca56d112b39565b2350089304d70dea6847b
3
+ size 1399960
h3eacbh9/eval_video/19_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d8301c722455e230f538b18357aed48ab0500a9465cfbf6fbf0edd142fcf14c5
3
+ size 1567147
h3eacbh9/eval_video/1_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c93c245f94bccf988bf81c13b34f2b4f94a31c61b0b700a37cd4e15dacb444df
3
+ size 1151340
h3eacbh9/eval_video/2_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:35d91a735aea17ce0770b204540d9606ca19ba47596be1fa84c03e8a76d48b12
3
+ size 1160864
h3eacbh9/eval_video/3_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c4ac9168429d53521dfd398dfdf30167e676a6d017c37e6719de8c077ae2d6c5
3
+ size 1157641
h3eacbh9/eval_video/4_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:73cfbcf4697dd02a170455072cbbb3a1ca0352372cb4a0797e92ead11895af34
3
+ size 1154605
h3eacbh9/eval_video/5_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8eee7b4209c8cc001b291cef3b235d9ad935ca7d79ef91da31d83f4b2565d510
3
+ size 1146010
h3eacbh9/eval_video/6_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6f92e10ddc5700f95864b3bd37bb543a48502145e8956f152881dac10ecc3e27
3
+ size 1142252
h3eacbh9/eval_video/7_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ec916f9f1cb86bb268d4b76b9be7a6f2b0e4f3512ce092e5d968e616457e41ba
3
+ size 1230184
h3eacbh9/eval_video/8_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c1b631f94f507d0b802907ef582d02c763dd6faa3b1b3b36bfa5e09e9ab836bc
3
+ size 1261905
h3eacbh9/eval_video/9_eval.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:45f46258144727274eca27c01c0f84d776e772cc618e870d73101f7b953894fb
3
+ size 1162867
h3eacbh9/tb/events.out.tfevents.1737249243.leonmkim-ROG-Strix-G15CS-G15CS.2569579.0 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8a3e001b5005b838120627dd736775409f4f91112a2e56381e30b3e2c1ab3212
3
+ size 22784
h3eacbh9/wandb/debug-internal.log ADDED
The diff for this file is too large to render. See raw diff
 
h3eacbh9/wandb/debug.log ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2025-01-18 20:14:03,259 INFO MainThread:2569579 [wandb_setup.py:_flush():76] Current SDK version is 0.17.5
2
+ 2025-01-18 20:14:03,259 INFO MainThread:2569579 [wandb_setup.py:_flush():76] Configure stats pid to 2569579
3
+ 2025-01-18 20:14:03,259 INFO MainThread:2569579 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/.config/wandb/settings
4
+ 2025-01-18 20:14:03,259 INFO MainThread:2569579 [wandb_setup.py:_flush():76] Loading settings from /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/3465_0/h3eacbh9/wandb/settings
5
+ 2025-01-18 20:14:03,260 INFO MainThread:2569579 [wandb_setup.py:_flush():76] Loading settings from environment variables: {}
6
+ 2025-01-18 20:14:03,260 INFO MainThread:2569579 [wandb_setup.py:_flush():76] Applying setup settings: {'_disable_service': False}
7
+ 2025-01-18 20:14:03,260 INFO MainThread:2569579 [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-18 20:14:03,260 INFO MainThread:2569579 [wandb_setup.py:_flush():76] Applying login settings: {}
9
+ 2025-01-18 20:14:03,260 INFO MainThread:2569579 [wandb_init.py:_log_setup():529] Logging user logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/3465_0/h3eacbh9/wandb/run-20250118_201403-h3eacbh9/logs/debug.log
10
+ 2025-01-18 20:14:03,260 INFO MainThread:2569579 [wandb_init.py:_log_setup():530] Logging internal logs to /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/3465_0/h3eacbh9/wandb/run-20250118_201403-h3eacbh9/logs/debug-internal.log
11
+ 2025-01-18 20:14:03,260 INFO MainThread:2569579 [wandb_init.py:init():569] calling init triggers
12
+ 2025-01-18 20:14:03,261 INFO MainThread:2569579 [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': '3465_0', 'wandb_notes': '3465_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': False, 'use_sdf_maps': False, 'use_normals_maps': False, 'which_objects': 'both', 'max_contact_prob': 0.1, 'max_depth': 2.0, 'grasped_dtc_max_value': 0.2, 'env_dtc_max_value': 0.4, 'grasped_normals_mask_max_dtc_value': 0.2, 'env_normals_mask_max_dtc_value': 0.4, 'clamp_dtc': True, 'dtc_adaptive_normalization': False, 'mask_normals_within_sdf': True, 'adaptive_normals_mask': True, 'learnable_contact_preprocess_params': True, 'contact_model_name': 'local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9', 'contact_estimation_model_ckpt_path': '~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt', 'encoder_type': 'small', 'debug_timestamps': False, 'open_loop': False, 'action_trajectories': True, 'stop_after_action': False, 'interpolation_frequency': 25, 'policy_frequency': 5, 'wait_for_new_camera_frames': True, 'baseline': False, 'train_demo_idxs_list_or_num': -1, 'log_train_every_steps': 25, 'name_of_expert_demo': '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/3465_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': False, 'use_sdf_maps': False, 'use_normals_maps': False, 'which_objects': 'both', 'grasped_dtc_max_value': 0.2, 'env_dtc_max_value': 0.4, 'grasped_normals_mask_max_dtc_value': 0.2, 'env_normals_mask_max_dtc_value': 0.4, 'clamp_dtc': True, 'max_contact_prob': 0.1, 'mask_normals_within_sdf': True, 'dtc_adaptive_normalization': False, 'adaptive_normals_mask': True, 'max_depth': 2.0, 'image_shape': [13, 180, 240], 'learnable_contact_preprocess_params': True, 'learning_rate': 0.0001, 'weight_decay': 0.0, 'contact_model_name': 'local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9', 'zero_centered': False, 'crop_distractors_tlhw': None}}}, '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': False, 'use_sdf_maps': False, 'use_normals_maps': False, 'which_objects': 'both', 'grasped_dtc_max_value': 0.2, 'env_dtc_max_value': 0.4, 'grasped_normals_mask_max_dtc_value': 0.2, 'env_normals_mask_max_dtc_value': 0.4, 'clamp_dtc': True, 'max_contact_prob': 0.1, 'mask_normals_within_sdf': True, 'dtc_adaptive_normalization': False, 'adaptive_normals_mask': True, 'max_depth': 2.0, 'image_shape': [13, 180, 240], 'learnable_contact_preprocess_params': True, 'learning_rate': 0.0001, 'weight_decay': 0.0, 'contact_model_name': 'local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9', 'zero_centered': False}}, 'true_action_history': False}}, 'num_train_frames_bc': 50000, 'num_train_frames_drq': 1100000, 'stddev_schedule_drq': 'linear(1.0,0.1,100000)', 'task_name': 'FrankaInsertion-v1', 'num_train_frames_vinn': 25000, 'num_train_frames_diffusion': 1000000, 'num_train_epochs_bc': 5000, 'num_train_epochs_diffusion': 15000, 'validate_every_epochs_bc': 5, 'validate_every_epochs_diffusion': 250, 'validate_diffusion_on_action_loss_every_epochs': 250, 'train_eval_diffusion_on_action_loss_every_epochs': 250, 'check_topk_every_epochs': 5, 'check_topk_every_epochs_diffusion': 250, 'save_snapshot_every_epochs_diffusion': 1500, 'x_limit': [0.2, 0.7], 'y_limit': [-0.4, 0.4], 'z_limit': [-0.05, 0.55], 'home_displacement': [0.55, 0.0, 0.55, 180.0, 0.0, 0.0], 'enable_gripper': True, 'start_with_gripper_open': True, 'offset_mask': [1, 1, 1, 1, 1, 1], 'path_to_depth_extrinsics': '~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy', '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_acthist_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1', 'save_buffer': True, 'num_eval': 20, '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/3465_0', 'residual_weight': '/home/leonmkim/fish_leon/FISH/weights/frankagym_pixels/FrankaInsertion-v1/weight.pt', 'final_experiment_dir': './exp_local/frankagym_pixels/FrankaInsertion-v1/3465_0/h3eacbh9'}
14
+ 2025-01-18 20:14:03,261 INFO MainThread:2569579 [wandb_init.py:init():619] starting backend
15
+ 2025-01-18 20:14:03,261 INFO MainThread:2569579 [wandb_init.py:init():623] setting up manager
16
+ 2025-01-18 20:14:03,265 INFO MainThread:2569579 [backend.py:_multiprocessing_setup():105] multiprocessing start_methods=fork,spawn,forkserver, using: spawn
17
+ 2025-01-18 20:14:03,266 INFO MainThread:2569579 [wandb_init.py:init():631] backend started and connected
18
+ 2025-01-18 20:14:03,278 INFO MainThread:2569579 [wandb_init.py:init():720] updated telemetry
19
+ 2025-01-18 20:14:03,284 INFO MainThread:2569579 [wandb_init.py:init():753] communicating run to backend with 90.0 second timeout
20
+ 2025-01-18 20:14:03,542 INFO MainThread:2569579 [wandb_run.py:_on_init():2435] communicating current version
21
+ 2025-01-18 20:14:03,616 INFO MainThread:2569579 [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-18 20:14:03,617 INFO MainThread:2569579 [wandb_init.py:init():804] starting run threads in backend
24
+ 2025-01-18 20:14:03,985 INFO MainThread:2569579 [wandb_run.py:_console_start():2413] atexit reg
25
+ 2025-01-18 20:14:03,985 INFO MainThread:2569579 [wandb_run.py:_redirect():2255] redirect: wrap_raw
26
+ 2025-01-18 20:14:03,985 INFO MainThread:2569579 [wandb_run.py:_redirect():2320] Wrapping output streams.
27
+ 2025-01-18 20:14:03,985 INFO MainThread:2569579 [wandb_run.py:_redirect():2345] Redirects installed.
28
+ 2025-01-18 20:14:03,987 INFO MainThread:2569579 [wandb_init.py:init():847] run started, returning control to user process
29
+ 2025-01-18 20:14:03,987 INFO MainThread:2569579 [wandb_run.py:_tensorboard_callback():1544] tensorboard callback: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/3465_0/h3eacbh9/tb, True
30
+ 2025-01-18 20:14:09,077 INFO MainThread:2569579 [wandb_run.py:_config_callback():1382] config_cb None None {'grasped_obj_name': 'greece', 'left_book_slot': 'twodim'}
31
+ 2025-01-18 20:31:25,647 WARNING MsgRouterThr:2569579 [router.py:message_loop():77] message_loop has been closed
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/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()
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/config.yaml ADDED
@@ -0,0 +1,927 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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: '3465_0'
42
+ wandb_notes:
43
+ desc: null
44
+ value: 3465_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: false
126
+ use_sdf_maps:
127
+ desc: null
128
+ value: false
129
+ use_normals_maps:
130
+ desc: null
131
+ value: false
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/3465_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: false
483
+ use_sdf_maps: false
484
+ use_normals_maps: false
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: null
506
+ suite:
507
+ desc: null
508
+ value:
509
+ suite: frankagym
510
+ name: frankagym
511
+ frame_stack: 1
512
+ action_repeat: 1
513
+ discount: 0.99
514
+ hidden_dim: 1024
515
+ num_train_frames: 2010
516
+ num_seed_frames: 260
517
+ num_train_epochs: 5000
518
+ validate_every_epochs: 100
519
+ validate_diffusion_on_action_loss_every_epochs: 500
520
+ train_eval_diffusion_on_action_loss_every_epochs: 500
521
+ check_topk_every_epochs: 10
522
+ save_snapshot_every_epochs: 5000
523
+ eval_every_frames: 2000
524
+ num_eval_episodes: 5
525
+ save_snapshot: true
526
+ wait_for_user_to_start_episode: true
527
+ task_make_fn:
528
+ _target_: suite.frankagym.make
529
+ name: FrankaInsertion-v1
530
+ height: 240
531
+ width: 320
532
+ frame_stack: 1
533
+ action_repeat: 1
534
+ seed: 0
535
+ enable_arm: true
536
+ enable_gripper: true
537
+ start_with_gripper_open: true
538
+ enable_camera: true
539
+ path_to_depth_extrinsics: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
540
+ contact_estimation_model_ckpt_path: ~/fish_leon/contact_estimation/artifacts/175604_2/checkpoints/epoch=09-val_loss=0.00.ckpt
541
+ x_limit:
542
+ - 0.2
543
+ - 0.7
544
+ y_limit:
545
+ - -0.4
546
+ - 0.4
547
+ z_limit:
548
+ - -0.05
549
+ - 0.55
550
+ device: cuda
551
+ interpolation_frequency: 25
552
+ policy_frequency: 5
553
+ debug_timestamps: false
554
+ stop_after_action: false
555
+ open_loop: false
556
+ wait_for_new_camera_frames: true
557
+ action_key: action_trajectory_25hz
558
+ action_trajectory_horizon: 36
559
+ action_trajectories: true
560
+ 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
561
+ agent_policy_cfg:
562
+ _target_: agent.diffusion_policy.DiffusionPolicyAgentConfig
563
+ compile: false
564
+ device: cuda
565
+ cam_resize_shape:
566
+ - 13
567
+ - 180
568
+ - 240
569
+ orig_cam_shape:
570
+ - 3
571
+ - 240
572
+ - 320
573
+ policy_frequency: 5
574
+ interpolation_frequency: 25
575
+ policy_cfg:
576
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.DiffusionConfig
577
+ n_obs_steps: 1
578
+ horizon: 36
579
+ n_action_steps: 36
580
+ output_shapes:
581
+ action:
582
+ - 7
583
+ input_normalization_modes:
584
+ observation.image: mean_std
585
+ observation.state: min_max
586
+ observation.action_history: min_max
587
+ output_normalization_modes:
588
+ action: min_max
589
+ vision_backbone: resnet18
590
+ crop_distractors_tlhw:
591
+ - 32
592
+ - 68
593
+ - 174
594
+ - 174
595
+ pretrained_backbone_weights: null
596
+ transforms:
597
+ - _target_: torchaug.transforms.RandomAffine
598
+ degrees:
599
+ - -5
600
+ - 5
601
+ translate:
602
+ - 0.05
603
+ - 0.05
604
+ batch_transform: true
605
+ num_chunks: -1
606
+ batch_inplace: true
607
+ - _target_: torchaug.transforms.RandomColorJitter
608
+ brightness: 0.3
609
+ contrast: 0.4
610
+ saturation: 0.5
611
+ hue: 0.08
612
+ batch_transform: true
613
+ num_chunks: -1
614
+ batch_inplace: true
615
+ use_group_norm: true
616
+ spatial_softmax_num_keypoints: 32
617
+ action_history_encoder_config:
618
+ _target_: lerobot.common.policies.diffusion.configuration_diffusion.Unet1dEncoderConfig
619
+ in_channels: 7
620
+ out_channels: 32
621
+ history_length: 6
622
+ kernel_size: 5
623
+ downsample_kernel_size: 3
624
+ downsample_stride: 2
625
+ downsample_padding: 1
626
+ down_dims:
627
+ - 256
628
+ - 512
629
+ - 1024
630
+ kernel_size: 5
631
+ n_groups: 8
632
+ diffusion_step_embed_dim: 128
633
+ use_film_scale_modulation: true
634
+ noise_scheduler_type: DDIM
635
+ beta_schedule: squaredcos_cap_v2
636
+ beta_start: 0.0001
637
+ beta_end: 0.02
638
+ prediction_type: epsilon
639
+ clip_sample: true
640
+ clip_sample_range: 1.0
641
+ num_train_timesteps: 50
642
+ num_inference_steps: 10
643
+ do_mask_loss_for_padding: false
644
+ input_shapes:
645
+ observation.image:
646
+ - 13
647
+ - 180
648
+ - 240
649
+ context_observation.image:
650
+ - 13
651
+ - 180
652
+ - 240
653
+ observation.state:
654
+ - 8
655
+ observation.action_history:
656
+ - 7
657
+ train_cfg:
658
+ _target_: utils.TrainConfig
659
+ lr: 0.0001
660
+ lr_scheduler: cosine
661
+ lr_warmup_steps: 500
662
+ adam_betas:
663
+ - 0.95
664
+ - 0.999
665
+ adam_eps: 1.0e-08
666
+ adam_weight_decay: 1.0e-06
667
+ grad_clip_norm: 10
668
+ offline_steps: 1000000
669
+ use_amp: true
670
+ observation_cfg:
671
+ _target_: agent.encoder.VisualFeatureSet
672
+ use_depth: true
673
+ use_color: false
674
+ mask_input_dict:
675
+ _target_: agent.encoder.MaskInputDict
676
+ enable: true
677
+ representation: channels
678
+ mask_list:
679
+ - EE_obj_mask
680
+ crop_input_config:
681
+ _target_: agent.encoder.CropInputConfig
682
+ color_crop_type: null
683
+ depth_crop_type: null
684
+ segmask_crop_type: null
685
+ crop_hw:
686
+ - 144
687
+ - 144
688
+ crop_down_offset: 48
689
+ add_crop_binary_mask: false
690
+ add_coord_conv_map: false
691
+ context_input_config:
692
+ _target_: agent.encoder.ContextInputConfig
693
+ use_color: false
694
+ use_depth: false
695
+ mask_input_dict:
696
+ _target_: agent.encoder.MaskInputDict
697
+ enable: false
698
+ representation: channels
699
+ mask_list:
700
+ - EE_obj_mask
701
+ crop_input_config:
702
+ _target_: agent.encoder.CropInputConfig
703
+ color_crop_type: null
704
+ depth_crop_type: null
705
+ segmask_crop_type: null
706
+ crop_hw:
707
+ - 144
708
+ - 144
709
+ crop_down_offset: 48
710
+ add_crop_binary_mask: false
711
+ add_coord_conv_map: false
712
+ mask_soft_approx_scheduler_config:
713
+ _target_: agent.encoder.MaskSoftApproxSchedulerConfig
714
+ num_steps: 40000
715
+ initial_value: 10.0
716
+ final_value: 1000.0
717
+ interpolation_scheme: cosine
718
+ use_contact_map: false
719
+ use_sdf_maps: false
720
+ use_normals_maps: false
721
+ which_objects: both
722
+ grasped_dtc_max_value: 0.2
723
+ env_dtc_max_value: 0.4
724
+ grasped_normals_mask_max_dtc_value: 0.2
725
+ env_normals_mask_max_dtc_value: 0.4
726
+ clamp_dtc: true
727
+ max_contact_prob: 0.1
728
+ mask_normals_within_sdf: true
729
+ dtc_adaptive_normalization: false
730
+ adaptive_normals_mask: true
731
+ max_depth: 2.0
732
+ image_shape:
733
+ - 13
734
+ - 180
735
+ - 240
736
+ learnable_contact_preprocess_params: true
737
+ learning_rate: 0.0001
738
+ weight_decay: 0.0
739
+ contact_model_name: local_multitask_outhd64all_home_crop_h144w144d48_mask_ctxtmask_seed_220979_epoch_9
740
+ zero_centered: false
741
+ true_action_history: false
742
+ num_train_frames_bc:
743
+ desc: null
744
+ value: 50000
745
+ num_train_frames_drq:
746
+ desc: null
747
+ value: 1100000
748
+ stddev_schedule_drq:
749
+ desc: null
750
+ value: linear(1.0,0.1,100000)
751
+ task_name:
752
+ desc: null
753
+ value: FrankaInsertion-v1
754
+ num_train_frames_vinn:
755
+ desc: null
756
+ value: 25000
757
+ num_train_frames_diffusion:
758
+ desc: null
759
+ value: 1000000
760
+ num_train_epochs_bc:
761
+ desc: null
762
+ value: 5000
763
+ num_train_epochs_diffusion:
764
+ desc: null
765
+ value: 15000
766
+ validate_every_epochs_bc:
767
+ desc: null
768
+ value: 5
769
+ validate_every_epochs_diffusion:
770
+ desc: null
771
+ value: 250
772
+ validate_diffusion_on_action_loss_every_epochs:
773
+ desc: null
774
+ value: 250
775
+ train_eval_diffusion_on_action_loss_every_epochs:
776
+ desc: null
777
+ value: 250
778
+ check_topk_every_epochs:
779
+ desc: null
780
+ value: 5
781
+ check_topk_every_epochs_diffusion:
782
+ desc: null
783
+ value: 250
784
+ save_snapshot_every_epochs_diffusion:
785
+ desc: null
786
+ value: 1500
787
+ x_limit:
788
+ desc: null
789
+ value:
790
+ - 0.2
791
+ - 0.7
792
+ y_limit:
793
+ desc: null
794
+ value:
795
+ - -0.4
796
+ - 0.4
797
+ z_limit:
798
+ desc: null
799
+ value:
800
+ - -0.05
801
+ - 0.55
802
+ home_displacement:
803
+ desc: null
804
+ value:
805
+ - 0.55
806
+ - 0.0
807
+ - 0.55
808
+ - 180.0
809
+ - 0.0
810
+ - 0.0
811
+ enable_gripper:
812
+ desc: null
813
+ value: true
814
+ start_with_gripper_open:
815
+ desc: null
816
+ value: true
817
+ offset_mask:
818
+ desc: null
819
+ value:
820
+ - 1
821
+ - 1
822
+ - 1
823
+ - 1
824
+ - 1
825
+ - 1
826
+ path_to_depth_extrinsics:
827
+ desc: null
828
+ value: ~/fish_leon/FISH/cfgs/camera_poses/camera_poses_L515/20240904-122305/color_tf_world.npy
829
+ test:
830
+ desc: null
831
+ value:
832
+ username: leonmkim
833
+ hostname: grasp-login1
834
+ name_of_expert_demo: 112_240x320_all_twodim_left_to_right_annotated_start_idx_5hz_zstd7_EE_pxl_coords_expert_demos_imp_act
835
+ root_dir: ~/fish_leon
836
+ 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
837
+ 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
838
+ semantic_demo_grouping_name: semantic_demo_grouping.yaml
839
+ 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
840
+ include_groups_list: all
841
+ batch_size: 128
842
+ store_dataset_in_memory: false
843
+ use_tb: true
844
+ local_snapshot_root_dir: /mnt/bighdd/fish_contact_backup
845
+ local_snapshot_dir: /mnt/bighdd/fish_contact_backup/exp_local/frankagym_pixels/FrankaInsertion-v1
846
+ resume_wandb_run: false
847
+ feature_type:
848
+ desc: null
849
+ value: 180x240_crpdstlhw24x51x130x130_1_D_2.0_msk_channels_EE_obj_mask_acthist_hst6_out32_dwnkrnl3_dwnstrd2_dwnpd1
850
+ save_buffer:
851
+ desc: null
852
+ value: true
853
+ num_eval:
854
+ desc: null
855
+ value: 20
856
+ random_start:
857
+ desc: null
858
+ value: false
859
+ eval_starts:
860
+ desc: null
861
+ value: /home/leonmkim/fish_leon/FISH/eval_starts/frankagym_pixels/FrankaInsertion-v1
862
+ num_valid_demos:
863
+ desc: null
864
+ value: null
865
+ load_checkpoint:
866
+ desc: null
867
+ value: true
868
+ checkpoint_epoch:
869
+ desc: null
870
+ value: 7500
871
+ load_residual_weight:
872
+ desc: null
873
+ value: false
874
+ checkpoint_root_dir:
875
+ desc: null
876
+ value: /home/leonmkim/fish_leon/FISH
877
+ checkpoint_weight_dir:
878
+ desc: null
879
+ value: /home/leonmkim/fish_leon/FISH/exp_local/frankagym_pixels/FrankaInsertion-v1/3465_0
880
+ residual_weight:
881
+ desc: null
882
+ value: /home/leonmkim/fish_leon/FISH/weights/frankagym_pixels/FrankaInsertion-v1/weight.pt
883
+ final_experiment_dir:
884
+ desc: null
885
+ value: ./exp_local/frankagym_pixels/FrankaInsertion-v1/3465_0/h3eacbh9
886
+ _wandb:
887
+ desc: null
888
+ value:
889
+ code_path: code/FISH/eval_robot.py
890
+ python_version: 3.10.14
891
+ cli_version: 0.17.5
892
+ framework: torch
893
+ is_jupyter_run: false
894
+ is_kaggle_kernel: false
895
+ start_time: 1737249243
896
+ t:
897
+ 1:
898
+ - 1
899
+ - 41
900
+ - 49
901
+ - 50
902
+ - 55
903
+ - 83
904
+ 2:
905
+ - 1
906
+ - 41
907
+ - 49
908
+ - 50
909
+ - 55
910
+ - 83
911
+ 3:
912
+ - 14
913
+ - 16
914
+ - 23
915
+ - 35
916
+ - 62
917
+ 4: 3.10.14
918
+ 5: 0.17.5
919
+ 8:
920
+ - 5
921
+ 13: linux-x86_64
922
+ grasped_obj_name:
923
+ desc: null
924
+ value: greece
925
+ left_book_slot:
926
+ desc: null
927
+ value: twodim
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/diff.patch ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ diff --git a/FISH/cfgs/config_eval.yaml b/FISH/cfgs/config_eval.yaml
2
+ index 0b377ae..03918f5 100644
3
+ --- a/FISH/cfgs/config_eval.yaml
4
+ +++ b/FISH/cfgs/config_eval.yaml
5
+ @@ -132,8 +132,18 @@ load_checkpoint: ${agent.load_checkpoint}
6
+ # wandb_run_id: '1000_0' # all
7
+
8
+ # all books, 10/20 demos per book
9
+ +# crp_D+act history
10
+ +# wandb_run_id: '3456_0'
11
+ +# wandb_run_id: '3456_1' # seed 1
12
+ +# wandb_run_id: '3456_2' # seed 2
13
+ +
14
+ +# all books, 06/20 demos per book
15
+ +# crp_D+act history
16
+ +wandb_run_id: '3465_0'
17
+ +# wandb_run_id: '3465_1' # seed 1
18
+ +# wandb_run_id: '3465_2' # seed 2
19
+ +
20
+ # RGBD+mask+act history
21
+ -wandb_run_id: '1002_0'
22
+ # wandb_run_id: '1009_1' # seed 1
23
+ # wandb_run_id: '1022_0' # dataset shuffle seed 1
24
+
25
+ @@ -191,7 +201,7 @@ wandb_run_id: '1002_0'
26
+ true_action_history: false
27
+ wandb_notes: null
28
+
29
+ -checkpoint_epoch: 12000 # for depth + all contact
30
+ +checkpoint_epoch: 7500 # for depth + all contact
31
+ load_residual_weight: false
32
+
33
+ checkpoint_root_dir: '/home/${oc.env:USER}/fish_leon/FISH'
34
+ diff --git a/FISH/download_model_checkpoints.py b/FISH/download_model_checkpoints.py
35
+ index e3c7dc1..9509617 100644
36
+ --- a/FISH/download_model_checkpoints.py
37
+ +++ b/FISH/download_model_checkpoints.py
38
+ @@ -167,15 +167,21 @@ run_id_list = [
39
+ # '1948_0',
40
+ # '1950_0',
41
+ # '1954_1',
42
+ - '1002_0',
43
+ - '1009_1',
44
+ - '1022_0',
45
+ - '1003_0',
46
+ - '1013_1',
47
+ - '1017_0',
48
+ + # '1002_0',
49
+ + # '1009_1',
50
+ + # '1022_0',
51
+ + # '1003_0',
52
+ + # '1013_1',
53
+ + # '1017_0',
54
+ + # '3456_0',
55
+ + # '3456_1',
56
+ + # '3456_2',
57
+ + '3465_0',
58
+ + '3465_1',
59
+ + '3465_2',
60
+ ]
61
+
62
+ -checkpoint_epoch = 12000
63
+ +checkpoint_epoch = 7500
64
+
65
+ # use subprocess to download the model checkpoints in parallel
66
+ process_list = []
67
+ diff --git a/FISH/eval_policy.py b/FISH/eval_policy.py
68
+ index 0ad179a..f5cfc13 100644
69
+ --- a/FISH/eval_policy.py
70
+ +++ b/FISH/eval_policy.py
71
+ @@ -89,9 +89,10 @@ class Workspace:
72
+ # Need to convert hydra config to primitive container for wandb https://docs.wandb.ai/guides/integrations/hydra
73
+ with open_dict(self.cfg):
74
+ self.cfg.feature_type = get_feature_dirname_from_configs(
75
+ - hydra.utils.instantiate(self.cfg.agent.config.observation_cfg),
76
+ - self.cfg.agent.config.policy_cfg.input_shapes,
77
+ - 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,
78
+ + hydra.utils.instantiate(self.cfg.agent.config),
79
+ + # hydra.utils.instantiate(self.cfg.agent.config.observation_cfg),
80
+ + # self.cfg.agent.config.policy_cfg.input_shapes,
81
+ + # 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,
82
+ )
83
+
84
+ if not self.loading_uncompiled_checkpoint_with_compile and self.cfg.agent.config.compile:
85
+ diff --git a/FISH/eval_robot.py b/FISH/eval_robot.py
86
+ index 50493fe..905b769 100644
87
+ --- a/FISH/eval_robot.py
88
+ +++ b/FISH/eval_robot.py
89
+ @@ -83,9 +83,10 @@ class Workspace:
90
+ # Need to convert hydra config to primitive container for wandb https://docs.wandb.ai/guides/integrations/hydra
91
+ with open_dict(self.cfg):
92
+ self.cfg.feature_type = get_feature_dirname_from_configs(
93
+ - hydra.utils.instantiate(self.cfg.agent.config.observation_cfg),
94
+ - self.cfg.agent.config.policy_cfg.input_shapes,
95
+ - 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,
96
+ + hydra.utils.instantiate(self.cfg.agent.config),
97
+ + # hydra.utils.instantiate(self.cfg.agent.config.observation_cfg),
98
+ + # self.cfg.agent.config.policy_cfg.input_shapes,
99
+ + # 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,
100
+ )
101
+
102
+ wandb_config = OmegaConf.to_container(
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/table/eval/success_rate_ci_20_54e2754b6d7019322e44.table.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"columns": ["success_rate", "success_rate_lb_0.01", "success_rate_ub_0.01", "success_rate_lb_0.025", "success_rate_ub_0.025", "success_rate_lb_0.05", "success_rate_ub_0.05", "success_rate_lb_0.1", "success_rate_ub_0.1"], "data": [[0.9, 0.6478986143770058, 0.9880935138977903, 0.6879685222726633, 0.9747144355420543, 0.7650595455831652, 0.9736677668041369, 0.7752392216966422, 0.9721130783656747]]}
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/table/eval/total_success_rate_ci_21_84d6d84980b416ef739f.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": [[39, 40, 0.975, 0.8683311640479618, 0.9995417957126389, 0.8927702902962017, 0.9965071956565379, 0.9260990469795616, 0.9941391329224076, 0.9064763336560784, 0.9959524566247081]]}
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/0_eval_0_958873708057cb5c96d0.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:958873708057cb5c96d07eec36f6c0e68759bdf4c854f4fae4331f95dc510299
3
+ size 1142998
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/10_eval_10_dbfaa8aaf0c838051064.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dbfaa8aaf0c838051064d1f52334d6d83d61935c556bc18851fb329b8e51a97b
3
+ size 1290176
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/11_eval_11_359c87ada34d682bae45.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:359c87ada34d682bae4526c67a0e1660ebc14229bbfea9ebda9878bc7cbe49e2
3
+ size 1165825
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/12_eval_12_50069bff80de5f046230.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:50069bff80de5f04623040da25c9abba38c19c8c6f485f7ecb364ef9c652a551
3
+ size 1365675
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/13_eval_13_114ad2ddaaeca4cacdd5.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:114ad2ddaaeca4cacdd5ae91c8134dd40a3d5b8d16f5c1538175afff73d03d34
3
+ size 1346252
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/14_eval_14_d43b1e73114608f44587.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d43b1e73114608f44587bfbbd894e999f6f34aa1b616cbab8d4f16ce3f271adc
3
+ size 1413320
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/15_eval_15_a134ab49305f64bfef91.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a134ab49305f64bfef917aadcc5002acbf1b6c847787e9add516af98661440cb
3
+ size 1461649
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/16_eval_16_fba70f3485b0b97a5e73.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fba70f3485b0b97a5e738e162bd29deed4662a79fc5279012753333773ee3b10
3
+ size 1472547
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/17_eval_17_70585fb0ca24437a0f9f.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:70585fb0ca24437a0f9f8d8ce89db96ec7d90d0e2abf545ad2ba5f0a1b9d31c9
3
+ size 1504233
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/18_eval_18_666566ff2e12fdecef30.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:666566ff2e12fdecef308d665951ca56d112b39565b2350089304d70dea6847b
3
+ size 1399960
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/19_eval_19_d8301c722455e230f538.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d8301c722455e230f538b18357aed48ab0500a9465cfbf6fbf0edd142fcf14c5
3
+ size 1567147
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/1_eval_1_c93c245f94bccf988bf8.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c93c245f94bccf988bf81c13b34f2b4f94a31c61b0b700a37cd4e15dacb444df
3
+ size 1151340
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/2_eval_2_35d91a735aea17ce0770.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:35d91a735aea17ce0770b204540d9606ca19ba47596be1fa84c03e8a76d48b12
3
+ size 1160864
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/3_eval_3_c4ac9168429d53521dfd.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c4ac9168429d53521dfd398dfdf30167e676a6d017c37e6719de8c077ae2d6c5
3
+ size 1157641
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/4_eval_4_73cfbcf4697dd02a1704.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:73cfbcf4697dd02a170455072cbbb3a1ca0352372cb4a0797e92ead11895af34
3
+ size 1154605
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/5_eval_5_8eee7b4209c8cc001b29.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8eee7b4209c8cc001b291cef3b235d9ad935ca7d79ef91da31d83f4b2565d510
3
+ size 1146010
h3eacbh9/wandb/run-20250118_201403-h3eacbh9/files/media/videos/eval/6_eval_6_6f92e10ddc5700f95864.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6f92e10ddc5700f95864b3bd37bb543a48502145e8956f152881dac10ecc3e27
3
+ size 1142252