diff --git a/iris/tab_ddpm_concat/1/eval.csv b/iris/tab_ddpm_concat/1/eval.csv new file mode 100644 index 0000000000000000000000000000000000000000..9b98ef98bee34eb0b105d57b81d21505bc4dc5cf --- /dev/null +++ b/iris/tab_ddpm_concat/1/eval.csv @@ -0,0 +1,2 @@ +,avg_g_cos_loss,avg_g_mag_loss,avg_loss,grad_duration,grad_mae,grad_mape,grad_rmse,mean_pred_loss,pred_duration,pred_mae,pred_mape,pred_rmse,pred_std,std_loss,total_duration +tab_ddpm_concat,0.0,0.0019610625085806532,0.005645968108437955,0.1256120204925537,0.03993377834558487,0.7658331394195557,0.05349892005324364,6.366355228237808e-05,0.18850183486938477,0.054807405918836594,0.09844970703125,0.07513965666294098,0.23794962465763092,0.0018280709628015757,0.3141138553619385 diff --git a/iris/tab_ddpm_concat/1/history.csv b/iris/tab_ddpm_concat/1/history.csv new file mode 100644 index 0000000000000000000000000000000000000000..976a2d87dbf23800f05374685c85c831a7ca017a --- /dev/null +++ b/iris/tab_ddpm_concat/1/history.csv @@ -0,0 +1,14 @@ +,avg_role_model_loss_train,avg_role_model_std_loss_train,avg_role_model_mean_pred_loss_train,avg_role_model_g_mag_loss_train,avg_role_model_g_cos_loss_train,avg_non_role_model_g_mag_loss_train,avg_non_role_model_g_cos_loss_train,avg_non_role_model_embed_loss_train,avg_loss_train,n_size_train,n_batch_train,duration_train,duration_batch_train,duration_size_train,avg_pred_std_train,avg_role_model_loss_test,avg_role_model_std_loss_test,avg_role_model_mean_pred_loss_test,avg_role_model_g_mag_loss_test,avg_role_model_g_cos_loss_test,avg_non_role_model_g_mag_loss_test,avg_non_role_model_g_cos_loss_test,avg_non_role_model_embed_loss_test,avg_loss_test,n_size_test,n_batch_test,duration_test,duration_batch_test,duration_size_test,avg_pred_std_test +0,0.10374135383121345,18.56443157664943,0.041449387701346006,0.005013866468060831,0.0,0.0,0.0,0.0,0.3076937157568169,805,101,83.41384696960449,0.8258796729663811,0.10361968567652732,0.12659179391731315,0.020555018503218888,0.16521065925597214,0.0002060407058695546,0.0,0.0,0.0,0.0,0.0,0.020555018503218888,200,25,19.78365445137024,0.7913461780548096,0.0989182722568512,0.2294709414243698 +1,0.011995926799588138,1.3963812089861298,0.0001844832836715117,0.0008071476902367304,0.0,0.0,0.0,0.0,0.2195186773627441,805,101,87.43939757347107,0.8657366096383274,0.1086203696564858,0.1981366380385243,0.020384186804294588,0.043190415258141004,0.0004554812114574247,0.0,0.0,0.0,0.0,0.0,0.020384186804294588,200,25,20.934728384017944,0.8373891353607178,0.10467364192008972,0.2790692663192749 +2,0.009546413141887011,0.6276924947291632,0.0001780896951083956,1.374974106409535e-05,0.0,0.0,0.0,0.0,0.012166322118701032,805,101,87.53957962989807,0.8667285111871096,0.10874481941602245,0.2102175628452903,0.01046254301443696,0.35095315683691297,8.02037085523466e-05,0.0,0.0,0.0,0.0,0.0,0.01046254301443696,200,25,20.789302110671997,0.8315720844268799,0.10394651055335999,0.2089584320783615 +3,0.00775040887420569,0.3930796057494625,9.462442866351954e-05,9.638140186297226e-07,0.0,0.0,0.0,0.0,0.05207718585875255,805,101,89.17767930030823,0.8829473198050319,0.1107797258388922,0.20862839439201472,0.006806266047060489,0.12917854965311562,0.00010612228106257504,0.0,0.0,0.0,0.0,0.0,0.006806266047060489,200,25,21.225907802581787,0.8490363121032715,0.10612953901290893,0.23318142533302308 +4,0.007799799659329912,0.353968750837593,0.00013123107838038643,0.00011849411190574214,0.0,0.0,0.0,0.0,0.015482958418936092,805,101,89.39358067512512,0.8850849571794567,0.11104792630450326,0.21932584804362884,0.0072910289000719785,0.1133414297692434,0.00010192535437196782,0.0,0.0,0.0,0.0,0.0,0.0072910289000719785,200,25,21.0573468208313,0.842293872833252,0.1052867341041565,0.23669262766838073 +5,0.009359678805672697,0.34049937310137274,0.0001683453133488849,5.669919831782394e-05,0.0,0.0,0.0,0.0,0.021952886235327547,805,101,88.56495070457458,0.876880700045293,0.11001857230381935,0.218978001450253,0.008276418182067573,0.472035359647125,6.86218675309136e-05,0.0,0.0,0.0,0.0,0.0,0.008276418182067573,200,25,21.161115407943726,0.846444616317749,0.10580557703971863,0.20096925884485245 +6,0.00910488729193801,0.40504945186955976,0.0001729677290768185,3.1930064747792595e-06,0.0,0.0,0.0,0.0,0.03338461874847543,805,101,88.40547037124634,0.8753016868440231,0.10982046008850477,0.21087616683896815,0.007504332256503403,0.07020567152358126,0.00014301656472108515,0.0,0.0,0.0,0.0,0.0,0.007504332256503403,200,25,21.012781858444214,0.8405112743377685,0.10506390929222106,0.24712208211421965 +7,0.007255263133726505,0.48221473387662617,9.991645637648577e-05,0.00011664609314862245,0.0,0.0,0.0,0.0,0.013314187871465771,805,101,89.47929382324219,0.8859336022103187,0.11115440226489713,0.2069804704204054,0.00737950156442821,0.1515807131492511,8.442724000587987e-05,0.0,0.0,0.0,0.0,0.0,0.00737950156442821,200,25,21.577229738235474,0.8630891895294189,0.10788614869117737,0.2270071518421173 +8,0.006318038231505208,0.11366159435901593,9.746208241647516e-05,5.222357556828361e-05,0.0,0.0,0.0,0.0,0.0507418700595826,805,101,85.3533103466034,0.8450822806594396,0.10602895695230236,0.2236930788079701,0.008763309838250279,0.5571852441411466,6.980181757171522e-05,0.0,0.0,0.0,0.0,0.0,0.008763309838250279,200,25,19.99067258834839,0.7996269035339355,0.09995336294174194,0.19529371201992035 +9,0.006670579946779224,0.4554477588911271,6.281561912752332e-05,9.228920344240177e-05,0.0,0.0,0.0,0.0,0.010839840444383322,805,101,83.35597491264343,0.8253066823034003,0.10354779492253842,0.21416519705833184,0.0077990411780774595,0.07070276029611705,8.948392660220073e-05,0.0,0.0,0.0,0.0,0.0,0.0077990411780774595,200,25,19.711331129074097,0.7884532451629639,0.09855665564537049,0.2448423045873642 +10,0.006656987856790099,0.16280765775425185,9.370507591543015e-05,3.453528346574825e-05,0.0,0.0,0.0,0.0,0.019061884462619375,805,101,82.98489308357239,0.8216326047878454,0.10308682370630111,0.22368800227004704,0.006363446805626154,0.18243387952075862,6.575422429676792e-05,0.0,0.0,0.0,0.0,0.0,0.006363446805626154,200,25,19.65209174156189,0.7860836696624756,0.09826045870780944,0.2239115846157074 +11,0.006061364774250929,0.13997760837474013,9.698075756333587e-05,5.462016007915047e-07,0.0,0.0,0.0,0.0,0.008107176718377272,805,101,83.94199562072754,0.8311088675319558,0.10427577095742552,0.21998016012482124,0.00821163147687912,0.16838535042741115,8.240880536467987e-05,0.0,0.0,0.0,0.0,0.0,0.00821163147687912,200,25,19.563430309295654,0.7825372123718262,0.09781715154647827,0.22507850110530853 +12,0.005865368096921477,0.14280182168567412,6.62991409777624e-05,0.0,0.0,0.0,0.0,0.0,0.005865368096921477,805,101,82.20387101173401,0.8138997129874654,0.1021166099524646,0.22394288703799248,0.007616846952587366,0.14218884628193337,9.796912930553958e-05,0.0,0.0,0.0,0.0,0.0,0.007616846952587366,200,25,19.366668462753296,0.7746667385101318,0.09683334231376647,0.23068991899490357 diff --git a/iris/tab_ddpm_concat/1/logs/avg_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.17 b/iris/tab_ddpm_concat/1/logs/avg_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.17 new file mode 100644 index 0000000000000000000000000000000000000000..0a1ce79fdb88e95c19852733e0ce21949ad71e9b --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.17 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:984c2a076ebff268d87d22866bb57d15c41ef004df1c0052a0183657ae24bce8 +size 684 diff --git a/iris/tab_ddpm_concat/1/logs/avg_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.18 b/iris/tab_ddpm_concat/1/logs/avg_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.18 new file mode 100644 index 0000000000000000000000000000000000000000..16c49771f322262d866900e2fcb2194123c7113e --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.18 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b044447a05e0605fe4c7cd000e40d3593c1be6afa2689952bef36bdc1507e0fe +size 684 diff --git a/iris/tab_ddpm_concat/1/logs/avg_non_role_model_embed_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.15 b/iris/tab_ddpm_concat/1/logs/avg_non_role_model_embed_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.15 new file mode 100644 index 0000000000000000000000000000000000000000..23e592be0348a72c246253db87ed903bdca21dd9 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_non_role_model_embed_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.15 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06f3298cbaa9cd058955494490ea2d935b8b07924b47b529d95b812850f4c026 +size 957 diff --git a/iris/tab_ddpm_concat/1/logs/avg_non_role_model_embed_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.16 b/iris/tab_ddpm_concat/1/logs/avg_non_role_model_embed_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.16 new file mode 100644 index 0000000000000000000000000000000000000000..ac3f445c0d7a3508ead9110ca541dec1a0bfe505 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_non_role_model_embed_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.16 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab9ea385a2627ef0d73aa8f27168747e6a6bc48d0829b5fa11c7741653247afd +size 957 diff --git a/iris/tab_ddpm_concat/1/logs/avg_non_role_model_g_cos_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.13 b/iris/tab_ddpm_concat/1/logs/avg_non_role_model_g_cos_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.13 new file mode 100644 index 0000000000000000000000000000000000000000..5481f9de321ec90f6fb045a3f9b66ccfa799001f --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_non_role_model_g_cos_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.13 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d64229d834ba192c88abd5dbd9f38c595b15d0f880a13b3ceb7efeeb090bf125 +size 957 diff --git a/iris/tab_ddpm_concat/1/logs/avg_non_role_model_g_cos_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.14 b/iris/tab_ddpm_concat/1/logs/avg_non_role_model_g_cos_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.14 new file mode 100644 index 0000000000000000000000000000000000000000..c4ab330a6838cc6904c46acac3f400eded56e84a --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_non_role_model_g_cos_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.14 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cff0b456d74dacb4a46d575471d3cfbc0202b11b81b76628f954d4b082c7365c +size 957 diff --git a/iris/tab_ddpm_concat/1/logs/avg_non_role_model_g_mag_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.11 b/iris/tab_ddpm_concat/1/logs/avg_non_role_model_g_mag_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.11 new file mode 100644 index 0000000000000000000000000000000000000000..50a4d7e2004946c25ded108d3185b48c000a6db2 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_non_role_model_g_mag_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.11 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45079d7ce3829d657f2a772d9e24471827a2f6bddd3207f64f0fb471dae0c650 +size 957 diff --git a/iris/tab_ddpm_concat/1/logs/avg_non_role_model_g_mag_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.12 b/iris/tab_ddpm_concat/1/logs/avg_non_role_model_g_mag_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.12 new file mode 100644 index 0000000000000000000000000000000000000000..46b53a6b4095f88b8d3005a885a0757612ce7390 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_non_role_model_g_mag_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.12 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70d76062b6a49e34016db1c1857867167e83ae121c79175ddc8df039de18a5d1 +size 957 diff --git a/iris/tab_ddpm_concat/1/logs/avg_pred_std_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.29 b/iris/tab_ddpm_concat/1/logs/avg_pred_std_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.29 new file mode 100644 index 0000000000000000000000000000000000000000..000b7db5d300e94a0e47ff4b25e5a1c49296242e --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_pred_std_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.29 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f84736dc7d8093f963e350124894677598af049c9bafe533f35c4dbe301d009 +size 736 diff --git a/iris/tab_ddpm_concat/1/logs/avg_pred_std_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.30 b/iris/tab_ddpm_concat/1/logs/avg_pred_std_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.30 new file mode 100644 index 0000000000000000000000000000000000000000..dc211432fa1155f18f19d7da4a15acb55dc82ac9 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_pred_std_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.30 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55b86418fc422acf68a57001f1b194fd3aab736922c6ebceef68d77986b53b84 +size 736 diff --git a/iris/tab_ddpm_concat/1/logs/avg_role_model_g_cos_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.9 b/iris/tab_ddpm_concat/1/logs/avg_role_model_g_cos_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.9 new file mode 100644 index 0000000000000000000000000000000000000000..ff57151117500761bcb3f6132b16ff68f2e1959e --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_role_model_g_cos_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.9 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:348e18bfb0409c9073bef81c12f479e41ec94c835d44bd6d48c995f8804236d1 +size 905 diff --git a/iris/tab_ddpm_concat/1/logs/avg_role_model_g_cos_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.10 b/iris/tab_ddpm_concat/1/logs/avg_role_model_g_cos_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.10 new file mode 100644 index 0000000000000000000000000000000000000000..68552f72c1c990d61a10b66dfa2a9d30edb1e8be --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_role_model_g_cos_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.10 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44a4325b56aced30d00981176571e571dbced5c49aa56a516629f12346b82840 +size 905 diff --git a/iris/tab_ddpm_concat/1/logs/avg_role_model_g_mag_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.7 b/iris/tab_ddpm_concat/1/logs/avg_role_model_g_mag_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.7 new file mode 100644 index 0000000000000000000000000000000000000000..73ad239524e1d5d39d5eca10ed84be69bfde0ae2 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_role_model_g_mag_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.7 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39e23f9c658f2b866f747ae944cb60a1e62bc823f598c47057fab14b3ea1768d +size 905 diff --git a/iris/tab_ddpm_concat/1/logs/avg_role_model_g_mag_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.8 b/iris/tab_ddpm_concat/1/logs/avg_role_model_g_mag_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.8 new file mode 100644 index 0000000000000000000000000000000000000000..12bc18bb82c99ec1e0057585a861d60e5c28635f --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_role_model_g_mag_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.8 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ed8797535c1ea67fd22e1a8aeb0eb5847cc3a0991fae3d0556f7ab34e4b56ab +size 905 diff --git a/iris/tab_ddpm_concat/1/logs/avg_role_model_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.1 b/iris/tab_ddpm_concat/1/logs/avg_role_model_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.1 new file mode 100644 index 0000000000000000000000000000000000000000..f561a558bc1d099af94531f91188d298f2f8889f --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_role_model_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.1 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d88aeb6f4dbbb3cd845070dfb119ab9d69054eb47db68bd63b541be078e8546 +size 827 diff --git a/iris/tab_ddpm_concat/1/logs/avg_role_model_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.2 b/iris/tab_ddpm_concat/1/logs/avg_role_model_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.2 new file mode 100644 index 0000000000000000000000000000000000000000..72c42d7dcc79877ce50ebc8ea2fd4d72179abd6c --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_role_model_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb41507a6e334407b3a8bc064cab2f3c90a868fd0513d9786faa331f8d9a38b7 +size 827 diff --git a/iris/tab_ddpm_concat/1/logs/avg_role_model_mean_pred_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.5 b/iris/tab_ddpm_concat/1/logs/avg_role_model_mean_pred_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.5 new file mode 100644 index 0000000000000000000000000000000000000000..34f21b2acf579cc0819865f4b2d76bf145a4da90 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_role_model_mean_pred_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4df6284d627e421704b5e256c7fcf9d0bc9b0c5b03742a3816a4926522529d7 +size 957 diff --git a/iris/tab_ddpm_concat/1/logs/avg_role_model_mean_pred_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.6 b/iris/tab_ddpm_concat/1/logs/avg_role_model_mean_pred_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.6 new file mode 100644 index 0000000000000000000000000000000000000000..829dd94779629539240d3ea2facb2629ac1f95b5 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_role_model_mean_pred_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.6 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25e9bacc207ab3a569ee9cff01ff021a13fd4d21c1c5b9bb55831aff187e23ef +size 957 diff --git a/iris/tab_ddpm_concat/1/logs/avg_role_model_std_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.3 b/iris/tab_ddpm_concat/1/logs/avg_role_model_std_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.3 new file mode 100644 index 0000000000000000000000000000000000000000..706aa4779f9c5d89befc61e7411c38c1a3668194 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_role_model_std_loss_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.3 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41cacb4f4ccd0edc3ed374ad446c19d37c2408ba95ceb338367bc24960454b27 +size 879 diff --git a/iris/tab_ddpm_concat/1/logs/avg_role_model_std_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.4 b/iris/tab_ddpm_concat/1/logs/avg_role_model_std_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.4 new file mode 100644 index 0000000000000000000000000000000000000000..72e7d5835674833ab1f542bbc1f3cdc55d8ac12a --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/avg_role_model_std_loss_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66894eb7768b1e4276e124f3460b5831cabfbf68674bb10c75a5a2004715ee57 +size 879 diff --git a/iris/tab_ddpm_concat/1/logs/duration_batch_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.25 b/iris/tab_ddpm_concat/1/logs/duration_batch_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.25 new file mode 100644 index 0000000000000000000000000000000000000000..37fed3b014a5b149a4a7d46ba775916a5d6f2e28 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/duration_batch_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.25 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ed80c0e01034234e79e83f8cc0d28c0f9ad0dab56294c73d1ccec102e26096a +size 762 diff --git a/iris/tab_ddpm_concat/1/logs/duration_batch_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.26 b/iris/tab_ddpm_concat/1/logs/duration_batch_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.26 new file mode 100644 index 0000000000000000000000000000000000000000..3fda176cd6c6a2eb5726c96d9be797587a361d21 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/duration_batch_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.26 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc7b5d68ebf44070dd7d7d654f88c6e4616f8d2640ed3b0b18ea90a3b76a47de +size 762 diff --git a/iris/tab_ddpm_concat/1/logs/duration_size_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.27 b/iris/tab_ddpm_concat/1/logs/duration_size_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.27 new file mode 100644 index 0000000000000000000000000000000000000000..bca6ee0a5ef12e8b45c1166aec46e82d165c9c88 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/duration_size_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.27 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39adb90ff37a30f7ee5ca940164108f72a74e1a533c684058a978ab38bf598f4 +size 749 diff --git a/iris/tab_ddpm_concat/1/logs/duration_size_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.28 b/iris/tab_ddpm_concat/1/logs/duration_size_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.28 new file mode 100644 index 0000000000000000000000000000000000000000..98c0b5f87d57aac4bb9020d28832331ca958a6a8 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/duration_size_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.28 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c01ff7081c5ed1216a3299c8eb848ca4f58239c184e6fc32e621abb48e65b364 +size 749 diff --git a/iris/tab_ddpm_concat/1/logs/duration_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.23 b/iris/tab_ddpm_concat/1/logs/duration_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.23 new file mode 100644 index 0000000000000000000000000000000000000000..f52298b98f43b7cf9db165ebc76cd7a1562a7ba9 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/duration_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.23 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a94dcb4a493b2e8a789b552670c2a3aa84f27a733b100ac8875be4c73be307f9 +size 684 diff --git a/iris/tab_ddpm_concat/1/logs/duration_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.24 b/iris/tab_ddpm_concat/1/logs/duration_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.24 new file mode 100644 index 0000000000000000000000000000000000000000..58f6137320ccd46ee0e8c3026d4e2351e27d2852 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/duration_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.24 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d3ff1b51e217b82008c8825fce7c5c5bdec9390a04e2914015bf9e4c6c676db +size 684 diff --git a/iris/tab_ddpm_concat/1/logs/events.out.tfevents.1721750331.0e0da8a72f77.3616.0 b/iris/tab_ddpm_concat/1/logs/events.out.tfevents.1721750331.0e0da8a72f77.3616.0 new file mode 100644 index 0000000000000000000000000000000000000000..98b25321b4a7179326574298e5081905b2954b5a --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/events.out.tfevents.1721750331.0e0da8a72f77.3616.0 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0779325827fbd504a9c4767e189340ae5a8952a6e89ba1117302ab4be91d211 +size 88 diff --git a/iris/tab_ddpm_concat/1/logs/n_batch_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.21 b/iris/tab_ddpm_concat/1/logs/n_batch_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.21 new file mode 100644 index 0000000000000000000000000000000000000000..62f8b9e19fd83df52f65c0dd3f219e3645c2e25a --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/n_batch_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.21 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72c37e611aa8bbc39d301f5f378e330de1e67f462ee5578f97037156d7b1dc80 +size 671 diff --git a/iris/tab_ddpm_concat/1/logs/n_batch_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.22 b/iris/tab_ddpm_concat/1/logs/n_batch_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.22 new file mode 100644 index 0000000000000000000000000000000000000000..5ff8132bd0214b6b113161686599ef7c50445035 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/n_batch_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.22 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24dc21d808625b2d9cb25f48a810f908792a9acb225fa805a94baad36ae40a9d +size 671 diff --git a/iris/tab_ddpm_concat/1/logs/n_size_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.19 b/iris/tab_ddpm_concat/1/logs/n_size_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.19 new file mode 100644 index 0000000000000000000000000000000000000000..d84aaa9e74ffcf74a3f4d0d24715569e6614ac30 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/n_size_train/events.out.tfevents.1721750435.0e0da8a72f77.3616.19 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:065fcde386a5c3ecaaa65a8dacf33cc77c13ae76f4216ab0f51351cf3c852d22 +size 658 diff --git a/iris/tab_ddpm_concat/1/logs/n_size_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.20 b/iris/tab_ddpm_concat/1/logs/n_size_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.20 new file mode 100644 index 0000000000000000000000000000000000000000..ba8338ad3c07473cae265489b9c149b7ed26448b --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/n_size_val/events.out.tfevents.1721750435.0e0da8a72f77.3616.20 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c7f026746a2ce4782f810ae30d7d671533cff17f33b325b3adc9d3a647a88cf +size 658 diff --git a/iris/tab_ddpm_concat/1/logs/train_avg_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.39 b/iris/tab_ddpm_concat/1/logs/train_avg_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.39 new file mode 100644 index 0000000000000000000000000000000000000000..5a7edcdb6610b2e953363d2cae4fc11c4fe6b25a --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/train_avg_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.39 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3d1fac918c3247e702fce65ca2888e8e893fdc0fcd7cbabdf2efef966a809c9 +size 645 diff --git a/iris/tab_ddpm_concat/1/logs/train_avg_non_role_model_embed_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.38 b/iris/tab_ddpm_concat/1/logs/train_avg_non_role_model_embed_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.38 new file mode 100644 index 0000000000000000000000000000000000000000..19ac7a0654b7307461a1b8e9b004475f9609a4db --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/train_avg_non_role_model_embed_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.38 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e110e7bfa863ab894541d6f31e14e2ffbca95b7443f00fa28e0c283fe5d2cbcf +size 645 diff --git a/iris/tab_ddpm_concat/1/logs/train_avg_non_role_model_g_cos_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.37 b/iris/tab_ddpm_concat/1/logs/train_avg_non_role_model_g_cos_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.37 new file mode 100644 index 0000000000000000000000000000000000000000..09fcf39f91c55cd35149b37080044169e5479e78 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/train_avg_non_role_model_g_cos_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.37 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd233dfe85186c184ea7ae748e9a0d9f9f8cc176c98931e3863f3635b148370a +size 645 diff --git a/iris/tab_ddpm_concat/1/logs/train_avg_non_role_model_g_mag_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.36 b/iris/tab_ddpm_concat/1/logs/train_avg_non_role_model_g_mag_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.36 new file mode 100644 index 0000000000000000000000000000000000000000..bfbf5f065fe8414e3615f9a2f9f5b4b44deba236 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/train_avg_non_role_model_g_mag_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.36 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e74f9e09c269e11ea9892f90f5a33b198f6ef51942ac84d15e18f4d87404424 +size 645 diff --git a/iris/tab_ddpm_concat/1/logs/train_avg_pred_std/events.out.tfevents.1721750435.0e0da8a72f77.3616.45 b/iris/tab_ddpm_concat/1/logs/train_avg_pred_std/events.out.tfevents.1721750435.0e0da8a72f77.3616.45 new file mode 100644 index 0000000000000000000000000000000000000000..19c4d2397258303b6700f22a4a13b2a26c5b824f --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/train_avg_pred_std/events.out.tfevents.1721750435.0e0da8a72f77.3616.45 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6dcd68c1ecfdc3be0678ff8067efc2c55fa356312eb9f272203f1b1e1449895c +size 645 diff --git a/iris/tab_ddpm_concat/1/logs/train_avg_role_model_g_cos_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.35 b/iris/tab_ddpm_concat/1/logs/train_avg_role_model_g_cos_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.35 new file mode 100644 index 0000000000000000000000000000000000000000..6a61fb2db222fb2608c8bff0822e1f59f7e16736 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/train_avg_role_model_g_cos_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.35 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91e9af16697c3b8595ade63c0ae4445059ee7ea2364c87d564e865ca971d2d97 +size 645 diff --git a/iris/tab_ddpm_concat/1/logs/train_avg_role_model_g_mag_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.34 b/iris/tab_ddpm_concat/1/logs/train_avg_role_model_g_mag_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.34 new file mode 100644 index 0000000000000000000000000000000000000000..ec08b537701a78206f616f119b434fcd9c390fc2 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/train_avg_role_model_g_mag_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.34 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6538a7e12f784755c5e70f0d3461ce957681e6dfb554ec025fa54f4e8b23ae93 +size 645 diff --git a/iris/tab_ddpm_concat/1/logs/train_avg_role_model_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.31 b/iris/tab_ddpm_concat/1/logs/train_avg_role_model_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.31 new file mode 100644 index 0000000000000000000000000000000000000000..b256cb4f795fcea4285da861936a518ad6af1aaf --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/train_avg_role_model_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.31 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b940918948834f6d07c0e2fbb61a04b5df107d75cc3d01b23fe9db9e50c8a14 +size 645 diff --git a/iris/tab_ddpm_concat/1/logs/train_avg_role_model_mean_pred_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.33 b/iris/tab_ddpm_concat/1/logs/train_avg_role_model_mean_pred_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.33 new file mode 100644 index 0000000000000000000000000000000000000000..e481934f0e7b4b4d42f78a287e5128a4c5f159b4 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/train_avg_role_model_mean_pred_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.33 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a45c72f1e55eaf75b501fdd1fabbad38741ef345fc36cebb3c362471f59ce9c6 +size 645 diff --git a/iris/tab_ddpm_concat/1/logs/train_avg_role_model_std_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.32 b/iris/tab_ddpm_concat/1/logs/train_avg_role_model_std_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.32 new file mode 100644 index 0000000000000000000000000000000000000000..853af7d27501d5f2d8e1531ede026403b78621a0 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/train_avg_role_model_std_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.32 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85622be949599846a86f027cf02192d9b93d578ba88ef39c9f721097d761d170 +size 645 diff --git a/iris/tab_ddpm_concat/1/logs/train_duration/events.out.tfevents.1721750435.0e0da8a72f77.3616.42 b/iris/tab_ddpm_concat/1/logs/train_duration/events.out.tfevents.1721750435.0e0da8a72f77.3616.42 new file mode 100644 index 0000000000000000000000000000000000000000..6cd667b40ca2809ef58eaf81622a1d5d75b3fda9 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/train_duration/events.out.tfevents.1721750435.0e0da8a72f77.3616.42 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21241bcd98416e2c6303ceab6f62139c4d278cef469f673374d88c93ad33cd85 +size 645 diff --git a/iris/tab_ddpm_concat/1/logs/train_duration_batch/events.out.tfevents.1721750435.0e0da8a72f77.3616.43 b/iris/tab_ddpm_concat/1/logs/train_duration_batch/events.out.tfevents.1721750435.0e0da8a72f77.3616.43 new file mode 100644 index 0000000000000000000000000000000000000000..b7097856d7c5a5db3669c6d436d83718554941d9 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/train_duration_batch/events.out.tfevents.1721750435.0e0da8a72f77.3616.43 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbc4ab59394931ef6b02735b9afec6206db130c8b45ad40d16f7651a279b290c +size 645 diff --git a/iris/tab_ddpm_concat/1/logs/train_duration_size/events.out.tfevents.1721750435.0e0da8a72f77.3616.44 b/iris/tab_ddpm_concat/1/logs/train_duration_size/events.out.tfevents.1721750435.0e0da8a72f77.3616.44 new file mode 100644 index 0000000000000000000000000000000000000000..9097bfcf914bbbbb85d157aa9835902f48c87681 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/train_duration_size/events.out.tfevents.1721750435.0e0da8a72f77.3616.44 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e96e3737a501df4a3729b51560bbfa9f171784389756b831ed4884b9b6b968b2 +size 645 diff --git a/iris/tab_ddpm_concat/1/logs/train_n_batch/events.out.tfevents.1721750435.0e0da8a72f77.3616.41 b/iris/tab_ddpm_concat/1/logs/train_n_batch/events.out.tfevents.1721750435.0e0da8a72f77.3616.41 new file mode 100644 index 0000000000000000000000000000000000000000..a1230b284bffa3635fda3e55254d864037e6a1f5 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/train_n_batch/events.out.tfevents.1721750435.0e0da8a72f77.3616.41 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8d469e68ac74764145cab3d68a2bb6e3547d5297501cd668391f578817814c3 +size 645 diff --git a/iris/tab_ddpm_concat/1/logs/train_n_size/events.out.tfevents.1721750435.0e0da8a72f77.3616.40 b/iris/tab_ddpm_concat/1/logs/train_n_size/events.out.tfevents.1721750435.0e0da8a72f77.3616.40 new file mode 100644 index 0000000000000000000000000000000000000000..22c7e476c449a74bd69326b11e6713e85129f5d3 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/train_n_size/events.out.tfevents.1721750435.0e0da8a72f77.3616.40 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd3aa7ac0e681357285ee1a42fd845a66c679544035c2c74281b2b87eb1d5a5a +size 645 diff --git a/iris/tab_ddpm_concat/1/logs/val_avg_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.54 b/iris/tab_ddpm_concat/1/logs/val_avg_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.54 new file mode 100644 index 0000000000000000000000000000000000000000..6f3989c9b22470580b8cecde4470e9a6808724bf --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/val_avg_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.54 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca44f85a563dc899b7e18ff82df906940170a03c438c49678c2755c7cf5e83ad +size 619 diff --git a/iris/tab_ddpm_concat/1/logs/val_avg_non_role_model_embed_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.53 b/iris/tab_ddpm_concat/1/logs/val_avg_non_role_model_embed_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.53 new file mode 100644 index 0000000000000000000000000000000000000000..f833c4fca5166df745a399a93cc462a5339da797 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/val_avg_non_role_model_embed_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.53 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a90031cae90a997d862810d777004f6488970b7811ba08cc872a3521b0ac49ee +size 619 diff --git a/iris/tab_ddpm_concat/1/logs/val_avg_non_role_model_g_cos_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.52 b/iris/tab_ddpm_concat/1/logs/val_avg_non_role_model_g_cos_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.52 new file mode 100644 index 0000000000000000000000000000000000000000..c823c2b27782110417c2412e212ffdc009f1e177 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/val_avg_non_role_model_g_cos_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.52 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8855760d49315e6b22636815076aa5f2e28d43aacf6920d6b5dcbf8d7ef9aac5 +size 619 diff --git a/iris/tab_ddpm_concat/1/logs/val_avg_non_role_model_g_mag_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.51 b/iris/tab_ddpm_concat/1/logs/val_avg_non_role_model_g_mag_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.51 new file mode 100644 index 0000000000000000000000000000000000000000..5efe71918fcdf40b32b471896cde0afb17621103 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/val_avg_non_role_model_g_mag_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.51 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2ff18f722b4ff3f6d30c87a9e042b9301f3bc7814456e99eb708951e826e5f7 +size 619 diff --git a/iris/tab_ddpm_concat/1/logs/val_avg_pred_std/events.out.tfevents.1721750435.0e0da8a72f77.3616.60 b/iris/tab_ddpm_concat/1/logs/val_avg_pred_std/events.out.tfevents.1721750435.0e0da8a72f77.3616.60 new file mode 100644 index 0000000000000000000000000000000000000000..d9cdb7bbf3bd3f6ffca771381d8a7f059154d202 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/val_avg_pred_std/events.out.tfevents.1721750435.0e0da8a72f77.3616.60 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:679d78242e079c3994415be02dc083fdc69c7c6f3f926b331362ef3f88dfa3ae +size 619 diff --git a/iris/tab_ddpm_concat/1/logs/val_avg_role_model_g_cos_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.50 b/iris/tab_ddpm_concat/1/logs/val_avg_role_model_g_cos_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.50 new file mode 100644 index 0000000000000000000000000000000000000000..a855f84f309a34490114ea034bdc7d3f0f3ee405 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/val_avg_role_model_g_cos_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.50 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a8f00f9be910d14d7170e41e79f49adac507ee22a85a4ee9e7189b6648cf971 +size 619 diff --git a/iris/tab_ddpm_concat/1/logs/val_avg_role_model_g_mag_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.49 b/iris/tab_ddpm_concat/1/logs/val_avg_role_model_g_mag_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.49 new file mode 100644 index 0000000000000000000000000000000000000000..bf31cb2348e4adbe169b43d65b95be0427f29fce --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/val_avg_role_model_g_mag_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.49 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dd6334b74c7becf7d10a0c41c1cc14ece87640330351a2c0e101e2012c618c8 +size 619 diff --git a/iris/tab_ddpm_concat/1/logs/val_avg_role_model_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.46 b/iris/tab_ddpm_concat/1/logs/val_avg_role_model_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.46 new file mode 100644 index 0000000000000000000000000000000000000000..c2f2121f142de9581fbbef67d27ec84c55b70ec2 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/val_avg_role_model_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.46 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1b24ab1b505c954002da52b3940f1a62b1800ef4a2948c29bd2111431a37c36 +size 619 diff --git a/iris/tab_ddpm_concat/1/logs/val_avg_role_model_mean_pred_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.48 b/iris/tab_ddpm_concat/1/logs/val_avg_role_model_mean_pred_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.48 new file mode 100644 index 0000000000000000000000000000000000000000..a2e8c49ee73e3742693de15540528c15e72de296 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/val_avg_role_model_mean_pred_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.48 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cab39a145835a0cd014f3c4ec08f74b39c71ebdf464aaea7460afe762c134d6 +size 619 diff --git a/iris/tab_ddpm_concat/1/logs/val_avg_role_model_std_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.47 b/iris/tab_ddpm_concat/1/logs/val_avg_role_model_std_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.47 new file mode 100644 index 0000000000000000000000000000000000000000..8669b2d254ca970abcad23791cc8e82a652a9f33 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/val_avg_role_model_std_loss/events.out.tfevents.1721750435.0e0da8a72f77.3616.47 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d512f3c490d53a7fde2e0089886d79ed96b9f634e177fc446576fa8538568873 +size 619 diff --git a/iris/tab_ddpm_concat/1/logs/val_duration/events.out.tfevents.1721750435.0e0da8a72f77.3616.57 b/iris/tab_ddpm_concat/1/logs/val_duration/events.out.tfevents.1721750435.0e0da8a72f77.3616.57 new file mode 100644 index 0000000000000000000000000000000000000000..fe5d36ce7c4c8fb60b5e2d8489a059475ded0d6f --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/val_duration/events.out.tfevents.1721750435.0e0da8a72f77.3616.57 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e0e96beaaeb012de75fc50a037877ee17b85aa442ad1191288c305bfe71ff2b +size 619 diff --git a/iris/tab_ddpm_concat/1/logs/val_duration_batch/events.out.tfevents.1721750435.0e0da8a72f77.3616.58 b/iris/tab_ddpm_concat/1/logs/val_duration_batch/events.out.tfevents.1721750435.0e0da8a72f77.3616.58 new file mode 100644 index 0000000000000000000000000000000000000000..d7595e30e959ba55b979a51b731d4f5444aa30c5 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/val_duration_batch/events.out.tfevents.1721750435.0e0da8a72f77.3616.58 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8f37a0e3355d9581486b8beb35f3fc1d90855c784d9cda2f14aa7d9ff2429ff +size 619 diff --git a/iris/tab_ddpm_concat/1/logs/val_duration_size/events.out.tfevents.1721750435.0e0da8a72f77.3616.59 b/iris/tab_ddpm_concat/1/logs/val_duration_size/events.out.tfevents.1721750435.0e0da8a72f77.3616.59 new file mode 100644 index 0000000000000000000000000000000000000000..9977f8bac8832bf7f811700f435e38e36ed45b74 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/val_duration_size/events.out.tfevents.1721750435.0e0da8a72f77.3616.59 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3aa94e0e3ec9a4de005597ccb5fdbe217a52f4f749158b3a26f39714b49d1413 +size 619 diff --git a/iris/tab_ddpm_concat/1/logs/val_n_batch/events.out.tfevents.1721750435.0e0da8a72f77.3616.56 b/iris/tab_ddpm_concat/1/logs/val_n_batch/events.out.tfevents.1721750435.0e0da8a72f77.3616.56 new file mode 100644 index 0000000000000000000000000000000000000000..bf3f76148fdebd855741becd011c148103fb42bd --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/val_n_batch/events.out.tfevents.1721750435.0e0da8a72f77.3616.56 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41b2487192ba17826ba665dac84d6094825798b1833c066b4571734681ba8a4a +size 619 diff --git a/iris/tab_ddpm_concat/1/logs/val_n_size/events.out.tfevents.1721750435.0e0da8a72f77.3616.55 b/iris/tab_ddpm_concat/1/logs/val_n_size/events.out.tfevents.1721750435.0e0da8a72f77.3616.55 new file mode 100644 index 0000000000000000000000000000000000000000..9891fbdbd33e2060440b692059eabf2243958134 --- /dev/null +++ b/iris/tab_ddpm_concat/1/logs/val_n_size/events.out.tfevents.1721750435.0e0da8a72f77.3616.55 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b374f185cbdb858ba752600af52d13bb4540e1981ad408bee25b6cecade815dd +size 619 diff --git a/iris/tab_ddpm_concat/1/mlu-eval.ipynb b/iris/tab_ddpm_concat/1/mlu-eval.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..0dafba75cdc12f59ab01f6b3efe0ffb93fd009ba --- /dev/null +++ b/iris/tab_ddpm_concat/1/mlu-eval.ipynb @@ -0,0 +1,2197 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "982e76f5", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:39.923517Z", + "iopub.status.busy": "2024-07-23T15:58:39.923111Z", + "iopub.status.idle": "2024-07-23T15:58:39.954695Z", + "shell.execute_reply": "2024-07-23T15:58:39.953990Z" + }, + "papermill": { + "duration": 0.046608, + "end_time": "2024-07-23T15:58:39.956687", + "exception": false, + "start_time": "2024-07-23T15:58:39.910079", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import joblib\n", + "\n", + "#joblib.parallel_backend(\"threading\")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "675f0b41", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:39.981733Z", + "iopub.status.busy": "2024-07-23T15:58:39.981460Z", + "iopub.status.idle": "2024-07-23T15:58:39.988102Z", + "shell.execute_reply": "2024-07-23T15:58:39.987252Z" + }, + "papermill": { + "duration": 0.021505, + "end_time": "2024-07-23T15:58:39.990081", + "exception": false, + "start_time": "2024-07-23T15:58:39.968576", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\n%cd /kaggle/working\\n#!git clone https://github.com/R-N/ml-utility-loss --depth=1 --single-branch --branch=main\\n%cd ml-utility-loss\\n!git pull\\n#!pip install .\\n!pip install . --no-deps --force-reinstall --upgrade\\n#'" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "%cd /kaggle/working\n", + "#!git clone https://github.com/R-N/ml-utility-loss --depth=1 --single-branch --branch=main\n", + "%cd ml-utility-loss\n", + "!git pull\n", + "#!pip install .\n", + "!pip install . --no-deps --force-reinstall --upgrade\n", + "#\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "5ae30f5c", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:40.013594Z", + "iopub.status.busy": "2024-07-23T15:58:40.013066Z", + "iopub.status.idle": "2024-07-23T15:58:40.017086Z", + "shell.execute_reply": "2024-07-23T15:58:40.016238Z" + }, + "papermill": { + "duration": 0.017854, + "end_time": "2024-07-23T15:58:40.018944", + "exception": false, + "start_time": "2024-07-23T15:58:40.001090", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "plt.rcParams['figure.figsize'] = [3,3]" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "9f42c810", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:40.043174Z", + "iopub.status.busy": "2024-07-23T15:58:40.042921Z", + "iopub.status.idle": "2024-07-23T15:58:40.047180Z", + "shell.execute_reply": "2024-07-23T15:58:40.046268Z" + }, + "executionInfo": { + "elapsed": 678, + "status": "ok", + "timestamp": 1696841022168, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "ns5hFcVL2yvs", + "papermill": { + "duration": 0.019164, + "end_time": "2024-07-23T15:58:40.049083", + "exception": false, + "start_time": "2024-07-23T15:58:40.029919", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "datasets = [\n", + " \"insurance\",\n", + " \"treatment\",\n", + " \"contraceptive\"\n", + "]\n", + "\n", + "study_dir = \"./\"" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "85d0c8ce", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:40.072369Z", + "iopub.status.busy": "2024-07-23T15:58:40.072108Z", + "iopub.status.idle": "2024-07-23T15:58:40.077854Z", + "shell.execute_reply": "2024-07-23T15:58:40.077068Z" + }, + "papermill": { + "duration": 0.019814, + "end_time": "2024-07-23T15:58:40.079821", + "exception": false, + "start_time": "2024-07-23T15:58:40.060007", + "status": "completed" + }, + "tags": [ + "parameters" + ] + }, + "outputs": [], + "source": [ + "#Parameters\n", + "import os\n", + "\n", + "path_prefix = \"../../../../\"\n", + "\n", + "dataset_dir = os.path.join(path_prefix, \"ml-utility-loss/datasets\")\n", + "dataset_name = \"treatment\"\n", + "model_name=\"ml_utility_2\"\n", + "models = [\"tvae\", \"realtabformer\", \"lct_gan\", \"tab_ddpm_concat\"]\n", + "single_model = \"lct_gan\"\n", + "random_seed = 42\n", + "gp = True\n", + "gp_multiply = True\n", + "folder = \"eval\"\n", + "debug = False\n", + "path = None\n", + "param_index = 0\n", + "allow_same_prediction = True\n", + "log_wandb = False" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "362be8da", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:40.105169Z", + "iopub.status.busy": "2024-07-23T15:58:40.104475Z", + "iopub.status.idle": "2024-07-23T15:58:40.110057Z", + "shell.execute_reply": "2024-07-23T15:58:40.109350Z" + }, + "papermill": { + "duration": 0.020441, + "end_time": "2024-07-23T15:58:40.112028", + "exception": false, + "start_time": "2024-07-23T15:58:40.091587", + "status": "completed" + }, + "tags": [ + "injected-parameters" + ] + }, + "outputs": [], + "source": [ + "# Parameters\n", + "dataset = \"iris\"\n", + "dataset_name = \"iris\"\n", + "single_model = \"tab_ddpm_concat\"\n", + "gp = True\n", + "gp_multiply = True\n", + "random_seed = 1\n", + "debug = False\n", + "folder = \"eval\"\n", + "path_prefix = \"../../../../\"\n", + "path = \"eval/iris/tab_ddpm_concat/1\"\n", + "param_index = 0\n", + "allow_same_prediction = True\n", + "log_wandb = False\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bd7c02d6", + "metadata": { + "papermill": { + "duration": 0.010914, + "end_time": "2024-07-23T15:58:40.134022", + "exception": false, + "start_time": "2024-07-23T15:58:40.123108", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "5f45b1d0", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:40.157480Z", + "iopub.status.busy": "2024-07-23T15:58:40.157209Z", + "iopub.status.idle": "2024-07-23T15:58:40.166026Z", + "shell.execute_reply": "2024-07-23T15:58:40.165256Z" + }, + "executionInfo": { + "elapsed": 7, + "status": "ok", + "timestamp": 1696841022169, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "UdvXYv3c3LXy", + "papermill": { + "duration": 0.0228, + "end_time": "2024-07-23T15:58:40.167982", + "exception": false, + "start_time": "2024-07-23T15:58:40.145182", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/kaggle/working\n", + "/kaggle/working/eval/iris/tab_ddpm_concat/1\n" + ] + } + ], + "source": [ + "from pathlib import Path\n", + "import os\n", + "\n", + "%cd /kaggle/working/\n", + "\n", + "if path is None:\n", + " path = os.path.join(folder, dataset_name, single_model, random_seed)\n", + "Path(path).mkdir(parents=True, exist_ok=True)\n", + "\n", + "%cd {path}" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f85bf540", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:40.191516Z", + "iopub.status.busy": "2024-07-23T15:58:40.191239Z", + "iopub.status.idle": "2024-07-23T15:58:42.192673Z", + "shell.execute_reply": "2024-07-23T15:58:42.191677Z" + }, + "papermill": { + "duration": 2.01592, + "end_time": "2024-07-23T15:58:42.195085", + "exception": false, + "start_time": "2024-07-23T15:58:40.179165", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Set seed to \n" + ] + } + ], + "source": [ + "from ml_utility_loss.util import seed\n", + "if single_model:\n", + " model_name=f\"{model_name}_{single_model}\"\n", + "if random_seed is not None:\n", + " seed(random_seed)\n", + " print(\"Set seed to\", seed)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "8489feae", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:42.223078Z", + "iopub.status.busy": "2024-07-23T15:58:42.222089Z", + "iopub.status.idle": "2024-07-23T15:58:42.232590Z", + "shell.execute_reply": "2024-07-23T15:58:42.231931Z" + }, + "papermill": { + "duration": 0.026416, + "end_time": "2024-07-23T15:58:42.234737", + "exception": false, + "start_time": "2024-07-23T15:58:42.208321", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import json\n", + "import os\n", + "\n", + "df = pd.read_csv(os.path.join(dataset_dir, f\"{dataset_name}.csv\"))\n", + "with open(os.path.join(dataset_dir, f\"{dataset_name}.json\")) as f:\n", + " info = json.load(f)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "debcc684", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:42.259316Z", + "iopub.status.busy": "2024-07-23T15:58:42.259033Z", + "iopub.status.idle": "2024-07-23T15:58:42.265859Z", + "shell.execute_reply": "2024-07-23T15:58:42.265014Z" + }, + "executionInfo": { + "elapsed": 6, + "status": "ok", + "timestamp": 1696841022169, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "Vrl2QkoV3o_8", + "papermill": { + "duration": 0.021483, + "end_time": "2024-07-23T15:58:42.267789", + "exception": false, + "start_time": "2024-07-23T15:58:42.246306", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "task = info[\"task\"]\n", + "target = info[\"target\"]\n", + "cat_features = info[\"cat_features\"]\n", + "mixed_features = info[\"mixed_features\"]\n", + "longtail_features = info[\"longtail_features\"]\n", + "integer_features = info[\"integer_features\"]\n", + "\n", + "test = df.sample(frac=0.2, random_state=42)\n", + "train = df[~df.index.isin(test.index)]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "7538184a", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:42.291795Z", + "iopub.status.busy": "2024-07-23T15:58:42.291522Z", + "iopub.status.idle": "2024-07-23T15:58:42.389142Z", + "shell.execute_reply": "2024-07-23T15:58:42.388380Z" + }, + "executionInfo": { + "elapsed": 6, + "status": "ok", + "timestamp": 1696841022169, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "TilUuFk9vqMb", + "papermill": { + "duration": 0.112151, + "end_time": "2024-07-23T15:58:42.391246", + "exception": false, + "start_time": "2024-07-23T15:58:42.279095", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import ml_utility_loss.synthesizers.tab_ddpm.params as TAB_DDPM_PARAMS\n", + "import ml_utility_loss.synthesizers.lct_gan.params as LCT_GAN_PARAMS\n", + "import ml_utility_loss.synthesizers.realtabformer.params as RTF_PARAMS\n", + "from ml_utility_loss.synthesizers.realtabformer.params.default import GPT2_PARAMS, REALTABFORMER_PARAMS\n", + "from ml_utility_loss.util import filter_dict_2, filter_dict\n", + "\n", + "tab_ddpm_params = getattr(TAB_DDPM_PARAMS, dataset_name).BEST\n", + "lct_gan_params = getattr(LCT_GAN_PARAMS, dataset_name).BEST\n", + "lct_ae_params = filter_dict_2(lct_gan_params, LCT_GAN_PARAMS.default.AE_PARAMS)\n", + "rtf_params = getattr(RTF_PARAMS, dataset_name).BEST\n", + "rtf_params = filter_dict(rtf_params, REALTABFORMER_PARAMS)\n", + "\n", + "lct_ae_embedding_size=lct_gan_params[\"embedding_size\"]\n", + "tab_ddpm_normalization=\"quantile\"\n", + "tab_ddpm_cat_encoding=tab_ddpm_params[\"cat_encoding\"]\n", + "#tab_ddpm_cat_encoding=\"one-hot\"\n", + "tab_ddpm_y_policy=\"default\"\n", + "tab_ddpm_is_y_cond=True" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "cca61838", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:42.416780Z", + "iopub.status.busy": "2024-07-23T15:58:42.416474Z", + "iopub.status.idle": "2024-07-23T15:58:46.769906Z", + "shell.execute_reply": "2024-07-23T15:58:46.768918Z" + }, + "executionInfo": { + "elapsed": 3113, + "status": "ok", + "timestamp": 1696841025277, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "7Abt8nStvr9Z", + "papermill": { + "duration": 4.368798, + "end_time": "2024-07-23T15:58:46.772246", + "exception": false, + "start_time": "2024-07-23T15:58:42.403448", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-07-23 15:58:44.185356: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", + "2024-07-23 15:58:44.185415: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", + "2024-07-23 15:58:44.187111: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n" + ] + } + ], + "source": [ + "from ml_utility_loss.loss_learning.estimator.pipeline import load_lct_ae\n", + "\n", + "# lct_ae = load_lct_ae(\n", + "# dataset_name=dataset_name,\n", + "# model_dir=os.path.join(path_prefix, \"ml-utility-loss/models\"),\n", + "# model_name=\"lct_ae\",\n", + "# df_name=\"df\",\n", + "# )\n", + "lct_ae = None" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "6f83b7b6", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:46.797097Z", + "iopub.status.busy": "2024-07-23T15:58:46.796513Z", + "iopub.status.idle": "2024-07-23T15:58:46.802838Z", + "shell.execute_reply": "2024-07-23T15:58:46.802113Z" + }, + "papermill": { + "duration": 0.020805, + "end_time": "2024-07-23T15:58:46.804813", + "exception": false, + "start_time": "2024-07-23T15:58:46.784008", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "from ml_utility_loss.loss_learning.estimator.pipeline import load_rtf_embed\n", + "\n", + "rtf_embed = load_rtf_embed(\n", + " dataset_name=dataset_name,\n", + " model_dir=os.path.join(path_prefix, \"ml-utility-loss/models\"),\n", + " model_name=\"realtabformer\",\n", + " df_name=\"df\",\n", + " ckpt_type=\"best-disc-model\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "0026de74", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:46.830888Z", + "iopub.status.busy": "2024-07-23T15:58:46.830578Z", + "iopub.status.idle": "2024-07-23T15:58:49.483735Z", + "shell.execute_reply": "2024-07-23T15:58:49.482911Z" + }, + "executionInfo": { + "elapsed": 20137, + "status": "ok", + "timestamp": 1696841045408, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "tbaguWxAvtPi", + "papermill": { + "duration": 2.669314, + "end_time": "2024-07-23T15:58:49.486320", + "exception": false, + "start_time": "2024-07-23T15:58:46.817006", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/conda/lib/python3.10/site-packages/sklearn/mixture/_base.py:274: ConvergenceWarning: Initialization 1 did not converge. Try different init parameters, or increase max_iter, tol or check for degenerate data.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/conda/lib/python3.10/site-packages/sklearn/mixture/_base.py:274: ConvergenceWarning: Initialization 1 did not converge. Try different init parameters, or increase max_iter, tol or check for degenerate data.\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "from ml_utility_loss.loss_learning.estimator.preprocessing import DataPreprocessor\n", + "\n", + "preprocessor = DataPreprocessor(\n", + " task,\n", + " target=target,\n", + " cat_features=cat_features,\n", + " mixed_features=mixed_features,\n", + " longtail_features=longtail_features,\n", + " integer_features=integer_features,\n", + " lct_ae_embedding_size=lct_ae_embedding_size,\n", + " lct_ae_params=lct_ae_params,\n", + " lct_ae=lct_ae,\n", + " tab_ddpm_normalization=tab_ddpm_normalization,\n", + " tab_ddpm_cat_encoding=tab_ddpm_cat_encoding,\n", + " tab_ddpm_y_policy=tab_ddpm_y_policy,\n", + " tab_ddpm_is_y_cond=tab_ddpm_is_y_cond,\n", + " realtabformer_embedding=rtf_embed,\n", + " realtabformer_params=rtf_params,\n", + ")\n", + "preprocessor.fit(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "a9c9b110", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "execution": { + "iopub.execute_input": "2024-07-23T15:58:49.513837Z", + "iopub.status.busy": "2024-07-23T15:58:49.513461Z", + "iopub.status.idle": "2024-07-23T15:58:49.520014Z", + "shell.execute_reply": "2024-07-23T15:58:49.519074Z" + }, + "executionInfo": { + "elapsed": 13, + "status": "ok", + "timestamp": 1696841045411, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "OxUH_GBEv2qK", + "outputId": "76464c90-3baf-4bdc-a955-6f4fddc16b9c", + "papermill": { + "duration": 0.022544, + "end_time": "2024-07-23T15:58:49.521832", + "exception": false, + "start_time": "2024-07-23T15:58:49.499288", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'tvae': 24,\n", + " 'realtabformer': (31, 89, Embedding(89, 864), True),\n", + " 'lct_gan': 14,\n", + " 'tab_ddpm_concat': 5}" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "preprocessor.adapter_sizes" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "3cb9ed90", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:49.547113Z", + "iopub.status.busy": "2024-07-23T15:58:49.546394Z", + "iopub.status.idle": "2024-07-23T15:58:49.551534Z", + "shell.execute_reply": "2024-07-23T15:58:49.550675Z" + }, + "papermill": { + "duration": 0.020017, + "end_time": "2024-07-23T15:58:49.553624", + "exception": false, + "start_time": "2024-07-23T15:58:49.533607", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "from ml_utility_loss.loss_learning.estimator.pipeline import load_dataset_3_factory\n", + "\n", + "datasetsn = load_dataset_3_factory(\n", + " dataset_dir=os.path.join(path_prefix, \"ml-utility-loss/\"),\n", + " dataset_name=dataset_name,\n", + " preprocessor=preprocessor,\n", + " cache_dir=path_prefix,\n", + " #synth_dir=f\"synthetics2/{single_model}\",\n", + " synth_dir=\"synthetics\",\n", + " real_step=1,\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "ad1eb833", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:49.578432Z", + "iopub.status.busy": "2024-07-23T15:58:49.577750Z", + "iopub.status.idle": "2024-07-23T15:58:49.636914Z", + "shell.execute_reply": "2024-07-23T15:58:49.636150Z" + }, + "papermill": { + "duration": 0.073614, + "end_time": "2024-07-23T15:58:49.638833", + "exception": false, + "start_time": "2024-07-23T15:58:49.565219", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "../../../../ml-utility-loss/ synthetics iris\n", + "Caching in ../../../../iris/_cache_aug_test/tab_ddpm_concat/all inf False\n", + "../../../../ml-utility-loss/aug_test/iris 0\n", + "Caching in ../../../../iris/_cache_bs_test/tab_ddpm_concat/all inf False\n", + "../../../../ml-utility-loss/bs_test/iris 0\n", + "Caching in ../../../../iris/_cache_synth_test/tab_ddpm_concat/all inf False\n", + "../../../../ml-utility-loss/synthetics/iris 200\n", + "200\n" + ] + } + ], + "source": [ + "from ml_utility_loss.loss_learning.estimator.pipeline import load_dataset_4\n", + "\n", + "test_set = load_dataset_4(\n", + " dataset_dir=os.path.join(path_prefix, \"ml-utility-loss/\"),\n", + " dataset_name=dataset_name,\n", + " preprocessor=preprocessor,\n", + " model=single_model,\n", + " cache_dir=path_prefix,\n", + " #synth_dir=f\"synthetics2/{single_model}\",\n", + " synth_dir=\"synthetics\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "14ff8b40", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:49.666134Z", + "iopub.status.busy": "2024-07-23T15:58:49.665439Z", + "iopub.status.idle": "2024-07-23T15:58:50.236933Z", + "shell.execute_reply": "2024-07-23T15:58:50.235959Z" + }, + "executionInfo": { + "elapsed": 588, + "status": "ok", + "timestamp": 1696841049215, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "NgahtU1q9uLO", + "papermill": { + "duration": 0.587493, + "end_time": "2024-07-23T15:58:50.238979", + "exception": false, + "start_time": "2024-07-23T15:58:49.651486", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'bias_weight_decay': 0.05,\n", + " 'Body': 'twin_encoder',\n", + " 'loss_balancer_meta': True,\n", + " 'loss_balancer_log': False,\n", + " 'loss_balancer_lbtw': False,\n", + " 'pma_skip_small': False,\n", + " 'isab_skip_small': False,\n", + " 'layer_norm': False,\n", + " 'pma_layer_norm': False,\n", + " 'attn_residual': True,\n", + " 'tf_n_layers_dec': False,\n", + " 'tf_isab_rank': 0,\n", + " 'tf_layer_norm': False,\n", + " 'tf_pma_start': -1,\n", + " 'head_n_seeds': 0,\n", + " 'dropout': 0,\n", + " 'combine_mode': 'diff_left',\n", + " 'tf_isab_mode': 'separate',\n", + " 'grad_loss_fn': torch.Tensor>,\n", + " 'bias': True,\n", + " 'bias_final': True,\n", + " 'pma_ffn_mode': 'none',\n", + " 'gradient_penalty_mode': {'gradient_penalty': True,\n", + " 'forward_once': False,\n", + " 'calc_grad_m': False,\n", + " 'avg_non_role_model_m': False,\n", + " 'inverse_avg_non_role_model_m': False},\n", + " 'single_model': True,\n", + " 'tf_pma_low': 8,\n", + " 'patience': 10,\n", + " 'grad_clip': 0.7999999999999999,\n", + " 'bias_lr_mul': 1.0,\n", + " 'synth_data': 2,\n", + " 'inds_init_mode': 'fixnorm',\n", + " 'head_activation': ml_utility_loss.activations.LeakyHardsigmoid,\n", + " 'tf_activation': ml_utility_loss.activations.LeakyHardtanh,\n", + " 'loss_balancer_beta': 0.7,\n", + " 'loss_balancer_r': 0.96,\n", + " 'aug_train': 0,\n", + " 'bs_train': 0,\n", + " 'real_train': 5,\n", + " 'dataset_size': 256,\n", + " 'batch_size': 8,\n", + " 'epochs': 100,\n", + " 'lr_mul': 0.09999999999999999,\n", + " 'n_warmup_steps': 60,\n", + " 'Optim': functools.partial(, amsgrad=True),\n", + " 'g_loss_mul': 0.2,\n", + " 'd_model': 128,\n", + " 'attn_activation': torch.nn.modules.activation.LeakyReLU,\n", + " 'tf_d_inner': 4,\n", + " 'tf_n_layers_enc': 1,\n", + " 'tf_n_head': 8,\n", + " 'tf_activation_final': ml_utility_loss.activations.LeakyHardtanh,\n", + " 'ada_d_hid': 256,\n", + " 'ada_n_layers': 2,\n", + " 'ada_activation': torch.nn.modules.activation.SELU,\n", + " 'ada_activation_final': ml_utility_loss.activations.LeakyHardtanh,\n", + " 'head_d_hid': 128,\n", + " 'head_n_layers': 7,\n", + " 'head_n_head': 16,\n", + " 'head_activation_final': torch.nn.modules.activation.Sigmoid,\n", + " 'models': ['tab_ddpm_concat'],\n", + " 'fixed_role_model': 'tab_ddpm_concat',\n", + " 'max_seconds': 3600,\n", + " 'tf_lora': False,\n", + " 'tf_num_inds': 4,\n", + " 'ada_n_seeds': 0,\n", + " 'gradient_penalty_kwargs': {'mag_loss': True,\n", + " 'mse_mag': True,\n", + " 'mag_corr': False,\n", + " 'seq_mag': False,\n", + " 'cos_loss': False,\n", + " 'mag_corr_kwargs': {'only_sign': False},\n", + " 'cos_loss_kwargs': {'only_sign': True, 'cos_matrix': False},\n", + " 'mse_mag_kwargs': {'target': 0.5, 'multiply': True, 'forgive_over': True}}}" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import ml_utility_loss.loss_learning.estimator.params2 as PARAMS\n", + "from ml_utility_loss.tuning import map_parameters\n", + "from ml_utility_loss.loss_learning.estimator.params.default import update_param_space, update_param_space_2\n", + "import wandb\n", + "\n", + "#\"\"\"\n", + "param_space = {\n", + " **getattr(PARAMS, dataset_name).PARAM_SPACE,\n", + "}\n", + "# params = {\n", + "# **getattr(PARAMS, dataset_name).BESTS[param_index],\n", + "# }\n", + "params = getattr(PARAMS, dataset_name).BEST_DICT[gp][gp_multiply][single_model]\n", + "if isinstance(params, (list, tuple)):\n", + " params = params[param_index]\n", + "params = {\n", + " **getattr(PARAMS, dataset_name).DEFAULTS,\n", + " **params,\n", + "}\n", + "if gp:\n", + " params[\"gradient_penalty_mode\"] = \"ALL\"\n", + " params[\"mse_mag\"] = True\n", + " if gp_multiply:\n", + " params[\"mse_mag_multiply\"] = True\n", + " #params[\"mse_mag_target\"] = 1.0\n", + " else:\n", + " params[\"mse_mag_multiply\"] = False\n", + " #params[\"mse_mag_target\"] = 0.1\n", + "else:\n", + " params[\"gradient_penalty_mode\"] = \"NONE\"\n", + " params[\"mse_mag\"] = False\n", + "params[\"single_model\"] = False\n", + "if models:\n", + " params[\"models\"] = models\n", + "if single_model:\n", + " params[\"fixed_role_model\"] = single_model\n", + " params[\"single_model\"] = True\n", + " params[\"models\"] = [single_model]\n", + "# if params[\"fixed_role_model\"] == \"realtabformer\" and dataset_name == \"treatment\":\n", + "# params[\"batch_size\"] = 2\n", + "params[\"max_seconds\"] = 3600\n", + "params[\"patience\"] = 10\n", + "params[\"epochs\"] = 100\n", + "if debug:\n", + " params[\"epochs\"] = 2\n", + "with open(\"params.json\", \"w\") as f:\n", + " json.dump(params, f)\n", + "params = map_parameters(params, param_space=param_space)\n", + "params" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "a48bd9e9", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:50.265719Z", + "iopub.status.busy": "2024-07-23T15:58:50.265048Z", + "iopub.status.idle": "2024-07-23T15:58:50.410542Z", + "shell.execute_reply": "2024-07-23T15:58:50.409555Z" + }, + "papermill": { + "duration": 0.161029, + "end_time": "2024-07-23T15:58:50.412831", + "exception": false, + "start_time": "2024-07-23T15:58:50.251802", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "../../../../ml-utility-loss/ synthetics iris\n", + "Caching in ../../../../iris/_cache_aug_train/tab_ddpm_concat/all inf False\n", + "split df ratio is 0\n", + "../../../../ml-utility-loss/aug_train/iris [0, 0]\n", + "Caching in ../../../../iris/_cache_aug_val/tab_ddpm_concat/all inf False\n", + "split df ratio is 1\n", + "../../../../ml-utility-loss/aug_val/iris [0, 0]\n", + "Caching in ../../../../iris/_cache_bs_train/tab_ddpm_concat/all inf False\n", + "split df ratio is 0\n", + "../../../../ml-utility-loss/bs_train/iris [0, 0]\n", + "Caching in ../../../../iris/_cache_bs_val/tab_ddpm_concat/all inf False\n", + "split df ratio is 1\n", + "../../../../ml-utility-loss/bs_val/iris [0, 0]\n", + "Caching in ../../../../iris/_cache_synth/tab_ddpm_concat/all inf False\n", + "Splitting without random!\n", + "Split with reverse index!\n", + "../../../../ml-utility-loss/synthetics/iris [800, 200]\n", + "Caching in ../../../../iris/_cache_real/tab_ddpm_concat/all inf False\n", + "split df ratio is 0\n", + "../../../../ml-utility-loss/synthetics/iris [5, 0]\n", + "[805, 200]\n", + "[805, 200]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/conda/lib/python3.10/site-packages/ml_utility_loss/loss_learning/estimator/data.py:174: FutureWarning: The default dtype for empty Series will be 'object' instead of 'float64' in a future version. Specify a dtype explicitly to silence this warning.\n", + " index = pd.Series(self.index)\n", + "/opt/conda/lib/python3.10/site-packages/ml_utility_loss/loss_learning/estimator/data.py:174: FutureWarning: The default dtype for empty Series will be 'object' instead of 'float64' in a future version. Specify a dtype explicitly to silence this warning.\n", + " index = pd.Series(self.index)\n", + "/opt/conda/lib/python3.10/site-packages/ml_utility_loss/loss_learning/estimator/data.py:174: FutureWarning: The default dtype for empty Series will be 'object' instead of 'float64' in a future version. Specify a dtype explicitly to silence this warning.\n", + " index = pd.Series(self.index)\n", + "/opt/conda/lib/python3.10/site-packages/ml_utility_loss/loss_learning/estimator/data.py:174: FutureWarning: The default dtype for empty Series will be 'object' instead of 'float64' in a future version. Specify a dtype explicitly to silence this warning.\n", + " index = pd.Series(self.index)\n" + ] + } + ], + "source": [ + "train_set, val_set = datasetsn(model=params[\"fixed_role_model\"], synth_data=params[\"synth_data\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "2fcb1418", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "execution": { + "iopub.execute_input": "2024-07-23T15:58:50.440509Z", + "iopub.status.busy": "2024-07-23T15:58:50.440209Z", + "iopub.status.idle": "2024-07-23T15:58:50.725279Z", + "shell.execute_reply": "2024-07-23T15:58:50.724319Z" + }, + "executionInfo": { + "elapsed": 396850, + "status": "error", + "timestamp": 1696841446059, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "_bt1MQc5kpSk", + "outputId": "01c1d3e5-ac64-461d-835a-b76f4a66e6d6", + "papermill": { + "duration": 0.301165, + "end_time": "2024-07-23T15:58:50.727220", + "exception": false, + "start_time": "2024-07-23T15:58:50.426055", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Creating model of type \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[*] Embedding False True\n", + "['tab_ddpm_concat'] 1\n" + ] + } + ], + "source": [ + "from ml_utility_loss.loss_learning.estimator.model.pipeline import remove_non_model_params\n", + "from ml_utility_loss.loss_learning.estimator.pipeline import create_model\n", + "from ml_utility_loss.util import filter_dict, clear_memory\n", + "\n", + "clear_memory()\n", + "\n", + "params2 = remove_non_model_params(params)\n", + "adapters = filter_dict(preprocessor.adapter_sizes, params[\"models\"])\n", + "\n", + "model = create_model(\n", + " adapters=adapters,\n", + " #Body=\"twin_encoder\",\n", + " **params2,\n", + ")\n", + "#cf.apply_weight_standardization(model, n_last_layers_ignore=0)\n", + "print(model.models, len(model.adapters))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "938f94fc", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:50.756078Z", + "iopub.status.busy": "2024-07-23T15:58:50.755276Z", + "iopub.status.idle": "2024-07-23T15:58:50.759552Z", + "shell.execute_reply": "2024-07-23T15:58:50.758801Z" + }, + "papermill": { + "duration": 0.020679, + "end_time": "2024-07-23T15:58:50.761366", + "exception": false, + "start_time": "2024-07-23T15:58:50.740687", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "study_name=f\"{model_name}_{dataset_name}\"" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "12fb613e", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:50.787862Z", + "iopub.status.busy": "2024-07-23T15:58:50.787020Z", + "iopub.status.idle": "2024-07-23T15:58:50.794386Z", + "shell.execute_reply": "2024-07-23T15:58:50.793423Z" + }, + "papermill": { + "duration": 0.022661, + "end_time": "2024-07-23T15:58:50.796365", + "exception": false, + "start_time": "2024-07-23T15:58:50.773704", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "448005" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def count_parameters(model):\n", + " return sum(p.numel() for p in model.parameters() if p.requires_grad)\n", + "\n", + "count_parameters(model)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "bd386e57", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:50.824863Z", + "iopub.status.busy": "2024-07-23T15:58:50.824528Z", + "iopub.status.idle": "2024-07-23T15:58:50.871932Z", + "shell.execute_reply": "2024-07-23T15:58:50.870970Z" + }, + "papermill": { + "duration": 0.064423, + "end_time": "2024-07-23T15:58:50.874169", + "exception": false, + "start_time": "2024-07-23T15:58:50.809746", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "========================================================================================================================\n", + "Layer (type:depth-idx) Output Shape Param #\n", + "========================================================================================================================\n", + "MLUtilitySingle [2, 120, 5] --\n", + "├─Adapter: 1-1 [2, 120, 5] --\n", + "│ └─Sequential: 2-1 [2, 120, 128] --\n", + "│ │ └─FeedForward: 3-1 [2, 120, 256] --\n", + "│ │ │ └─Linear: 4-1 [2, 120, 256] 1,536\n", + "│ │ │ └─SELU: 4-2 [2, 120, 256] --\n", + "│ │ └─FeedForward: 3-2 [2, 120, 128] --\n", + "│ │ │ └─Linear: 4-3 [2, 120, 128] 32,896\n", + "│ │ │ └─LeakyHardtanh: 4-4 [2, 120, 128] --\n", + "├─Adapter: 1-2 [2, 30, 5] (recursive)\n", + "│ └─Sequential: 2-2 [2, 30, 128] (recursive)\n", + "│ │ └─FeedForward: 3-3 [2, 30, 256] (recursive)\n", + "│ │ │ └─Linear: 4-5 [2, 30, 256] (recursive)\n", + "│ │ │ └─SELU: 4-6 [2, 30, 256] --\n", + "│ │ └─FeedForward: 3-4 [2, 30, 128] (recursive)\n", + "│ │ │ └─Linear: 4-7 [2, 30, 128] (recursive)\n", + "│ │ │ └─LeakyHardtanh: 4-8 [2, 30, 128] --\n", + "├─TwinEncoder: 1-3 [2, 1024] --\n", + "│ └─Encoder: 2-3 [2, 8, 128] --\n", + "│ │ └─ModuleList: 3-6 -- (recursive)\n", + "│ │ │ └─EncoderLayer: 4-9 [2, 8, 128] --\n", + "│ │ │ │ └─SimpleInducedSetAttention: 5-1 [2, 120, 128] --\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-1 [2, 4, 128] 512\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-2 [2, 4, 128] --\n", + "│ │ │ │ │ │ └─Linear: 7-1 [2, 4, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-2 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-3 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-4 [2, 8, 4, 16] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-1 [2, 8, 4, 120] --\n", + "│ │ │ │ │ │ └─Linear: 7-5 [2, 4, 128] 16,512\n", + "│ │ │ │ │ │ └─LeakyReLU: 7-6 [2, 4, 128] --\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-3 [2, 120, 128] --\n", + "│ │ │ │ │ │ └─Linear: 7-7 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-8 [2, 4, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-9 [2, 4, 128] 16,384\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-10 [2, 8, 120, 16] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-2 [2, 8, 120, 4] --\n", + "│ │ │ │ │ │ └─Linear: 7-11 [2, 120, 128] 16,512\n", + "│ │ │ │ │ │ └─LeakyReLU: 7-12 [2, 120, 128] --\n", + "│ │ │ │ └─DoubleFeedForward: 5-2 [2, 120, 128] --\n", + "│ │ │ │ │ └─Linear: 6-4 [2, 120, 4] 516\n", + "│ │ │ │ │ └─LeakyHardtanh: 6-5 [2, 120, 4] --\n", + "│ │ │ │ │ └─Linear: 6-6 [2, 120, 128] 640\n", + "│ │ │ │ └─PoolingByMultiheadAttention: 5-3 [2, 8, 128] --\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-7 [2, 8, 128] 1,024\n", + "│ │ │ │ │ └─SimpleMultiHeadAttention: 6-8 [2, 8, 128] --\n", + "│ │ │ │ │ │ └─Linear: 7-13 [2, 8, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-14 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-15 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-16 [2, 8, 8, 16] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-3 [2, 8, 8, 120] --\n", + "│ │ │ │ │ │ └─Linear: 7-17 [2, 8, 128] 16,512\n", + "│ │ │ │ │ │ └─LeakyReLU: 7-18 [2, 8, 128] --\n", + "│ └─Encoder: 2-4 [2, 8, 128] (recursive)\n", + "│ │ └─ModuleList: 3-6 -- (recursive)\n", + "│ │ │ └─EncoderLayer: 4-10 [2, 8, 128] (recursive)\n", + "│ │ │ │ └─SimpleInducedSetAttention: 5-4 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-9 [2, 4, 128] (recursive)\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-10 [2, 4, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-19 [2, 4, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-20 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-21 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-22 [2, 8, 4, 16] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-4 [2, 8, 4, 30] --\n", + "│ │ │ │ │ │ └─Linear: 7-23 [2, 4, 128] (recursive)\n", + "│ │ │ │ │ │ └─LeakyReLU: 7-24 [2, 4, 128] --\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-11 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-25 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-26 [2, 4, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-27 [2, 4, 128] (recursive)\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-28 [2, 8, 30, 16] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-5 [2, 8, 30, 4] --\n", + "│ │ │ │ │ │ └─Linear: 7-29 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─LeakyReLU: 7-30 [2, 30, 128] --\n", + "│ │ │ │ └─DoubleFeedForward: 5-5 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ └─Linear: 6-12 [2, 30, 4] (recursive)\n", + "│ │ │ │ │ └─LeakyHardtanh: 6-13 [2, 30, 4] --\n", + "│ │ │ │ │ └─Linear: 6-14 [2, 30, 128] (recursive)\n", + "│ │ │ │ └─PoolingByMultiheadAttention: 5-6 [2, 8, 128] (recursive)\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-15 [2, 8, 128] (recursive)\n", + "│ │ │ │ │ └─SimpleMultiHeadAttention: 6-16 [2, 8, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-31 [2, 8, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-32 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-33 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-34 [2, 8, 8, 16] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-6 [2, 8, 8, 30] --\n", + "│ │ │ │ │ │ └─Linear: 7-35 [2, 8, 128] (recursive)\n", + "│ │ │ │ │ │ └─LeakyReLU: 7-36 [2, 8, 128] --\n", + "├─Head: 1-4 [2] --\n", + "│ └─Sequential: 2-5 [2, 1] --\n", + "│ │ └─FeedForward: 3-7 [2, 128] --\n", + "│ │ │ └─Linear: 4-11 [2, 128] 131,200\n", + "│ │ │ └─LeakyHardsigmoid: 4-12 [2, 128] --\n", + "│ │ └─FeedForward: 3-8 [2, 128] --\n", + "│ │ │ └─Linear: 4-13 [2, 128] 16,512\n", + "│ │ │ └─LeakyHardsigmoid: 4-14 [2, 128] --\n", + "│ │ └─FeedForward: 3-9 [2, 128] --\n", + "│ │ │ └─Linear: 4-15 [2, 128] 16,512\n", + "│ │ │ └─LeakyHardsigmoid: 4-16 [2, 128] --\n", + "│ │ └─FeedForward: 3-10 [2, 128] --\n", + "│ │ │ └─Linear: 4-17 [2, 128] 16,512\n", + "│ │ │ └─LeakyHardsigmoid: 4-18 [2, 128] --\n", + "│ │ └─FeedForward: 3-11 [2, 128] --\n", + "│ │ │ └─Linear: 4-19 [2, 128] 16,512\n", + "│ │ │ └─LeakyHardsigmoid: 4-20 [2, 128] --\n", + "│ │ └─FeedForward: 3-12 [2, 128] --\n", + "│ │ │ └─Linear: 4-21 [2, 128] 16,512\n", + "│ │ │ └─LeakyHardsigmoid: 4-22 [2, 128] --\n", + "│ │ └─FeedForward: 3-13 [2, 1] --\n", + "│ │ │ └─Linear: 4-23 [2, 1] 129\n", + "│ │ │ └─Sigmoid: 4-24 [2, 1] --\n", + "========================================================================================================================\n", + "Total params: 448,005\n", + "Trainable params: 448,005\n", + "Non-trainable params: 0\n", + "Total mult-adds (M): 1.36\n", + "========================================================================================================================\n", + "Input size (MB): 0.01\n", + "Forward/backward pass size (MB): 3.27\n", + "Params size (MB): 1.79\n", + "Estimated Total Size (MB): 5.07\n", + "========================================================================================================================" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from torchinfo import summary\n", + "\n", + "role_model = params[\"fixed_role_model\"]\n", + "s = train_set[0][role_model]\n", + "summary(model[role_model], input_size=((2, *s[0].shape), (2, *s[1].shape)), depth=9) # 8 max" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "0f42c4d1", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T15:58:50.907629Z", + "iopub.status.busy": "2024-07-23T15:58:50.907316Z", + "iopub.status.idle": "2024-07-23T16:22:32.778042Z", + "shell.execute_reply": "2024-07-23T16:22:32.776960Z" + }, + "papermill": { + "duration": 1421.904811, + "end_time": "2024-07-23T16:22:32.794936", + "exception": false, + "start_time": "2024-07-23T15:58:50.890125", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 datasets [805, 200, 200]\n", + "Creating model of type \n", + "[*] Embedding False True\n", + "g_loss_mul 0.2\n", + "Epoch 0\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.10374135383121345, 'avg_role_model_std_loss': 18.56443157664943, 'avg_role_model_mean_pred_loss': 0.041449387701346006, 'avg_role_model_g_mag_loss': 0.005013866468060831, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.3076937157568169, 'n_size': 805, 'n_batch': 101, 'duration': 83.41384696960449, 'duration_batch': 0.8258796729663811, 'duration_size': 0.10361968567652732, 'avg_pred_std': 0.12659179391731315}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.020555018503218888, 'avg_role_model_std_loss': 0.16521065925597214, 'avg_role_model_mean_pred_loss': 0.0002060407058695546, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.020555018503218888, 'n_size': 200, 'n_batch': 25, 'duration': 19.78365445137024, 'duration_batch': 0.7913461780548096, 'duration_size': 0.0989182722568512, 'avg_pred_std': 0.2294709414243698}\n", + "Epoch 1\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.011995926799588138, 'avg_role_model_std_loss': 1.3963812089861298, 'avg_role_model_mean_pred_loss': 0.0001844832836715117, 'avg_role_model_g_mag_loss': 0.0008071476902367304, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.2195186773627441, 'n_size': 805, 'n_batch': 101, 'duration': 87.43939757347107, 'duration_batch': 0.8657366096383274, 'duration_size': 0.1086203696564858, 'avg_pred_std': 0.1981366380385243}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.020384186804294588, 'avg_role_model_std_loss': 0.043190415258141004, 'avg_role_model_mean_pred_loss': 0.0004554812114574247, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.020384186804294588, 'n_size': 200, 'n_batch': 25, 'duration': 20.934728384017944, 'duration_batch': 0.8373891353607178, 'duration_size': 0.10467364192008972, 'avg_pred_std': 0.2790692663192749}\n", + "Epoch 2\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.009546413141887011, 'avg_role_model_std_loss': 0.6276924947291632, 'avg_role_model_mean_pred_loss': 0.0001780896951083956, 'avg_role_model_g_mag_loss': 1.374974106409535e-05, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.012166322118701032, 'n_size': 805, 'n_batch': 101, 'duration': 87.53957962989807, 'duration_batch': 0.8667285111871096, 'duration_size': 0.10874481941602245, 'avg_pred_std': 0.2102175628452903}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.01046254301443696, 'avg_role_model_std_loss': 0.35095315683691297, 'avg_role_model_mean_pred_loss': 8.02037085523466e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.01046254301443696, 'n_size': 200, 'n_batch': 25, 'duration': 20.789302110671997, 'duration_batch': 0.8315720844268799, 'duration_size': 0.10394651055335999, 'avg_pred_std': 0.2089584320783615}\n", + "Epoch 3\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.00775040887420569, 'avg_role_model_std_loss': 0.3930796057494625, 'avg_role_model_mean_pred_loss': 9.462442866351954e-05, 'avg_role_model_g_mag_loss': 9.638140186297226e-07, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.05207718585875255, 'n_size': 805, 'n_batch': 101, 'duration': 89.17767930030823, 'duration_batch': 0.8829473198050319, 'duration_size': 0.1107797258388922, 'avg_pred_std': 0.20862839439201472}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.006806266047060489, 'avg_role_model_std_loss': 0.12917854965311562, 'avg_role_model_mean_pred_loss': 0.00010612228106257504, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.006806266047060489, 'n_size': 200, 'n_batch': 25, 'duration': 21.225907802581787, 'duration_batch': 0.8490363121032715, 'duration_size': 0.10612953901290893, 'avg_pred_std': 0.23318142533302308}\n", + "Epoch 4\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.007799799659329912, 'avg_role_model_std_loss': 0.353968750837593, 'avg_role_model_mean_pred_loss': 0.00013123107838038643, 'avg_role_model_g_mag_loss': 0.00011849411190574214, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.015482958418936092, 'n_size': 805, 'n_batch': 101, 'duration': 89.39358067512512, 'duration_batch': 0.8850849571794567, 'duration_size': 0.11104792630450326, 'avg_pred_std': 0.21932584804362884}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.0072910289000719785, 'avg_role_model_std_loss': 0.1133414297692434, 'avg_role_model_mean_pred_loss': 0.00010192535437196782, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0072910289000719785, 'n_size': 200, 'n_batch': 25, 'duration': 21.0573468208313, 'duration_batch': 0.842293872833252, 'duration_size': 0.1052867341041565, 'avg_pred_std': 0.23669262766838073}\n", + "Epoch 5\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.009359678805672697, 'avg_role_model_std_loss': 0.34049937310137274, 'avg_role_model_mean_pred_loss': 0.0001683453133488849, 'avg_role_model_g_mag_loss': 5.669919831782394e-05, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.021952886235327547, 'n_size': 805, 'n_batch': 101, 'duration': 88.56495070457458, 'duration_batch': 0.876880700045293, 'duration_size': 0.11001857230381935, 'avg_pred_std': 0.218978001450253}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.008276418182067573, 'avg_role_model_std_loss': 0.472035359647125, 'avg_role_model_mean_pred_loss': 6.86218675309136e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.008276418182067573, 'n_size': 200, 'n_batch': 25, 'duration': 21.161115407943726, 'duration_batch': 0.846444616317749, 'duration_size': 0.10580557703971863, 'avg_pred_std': 0.20096925884485245}\n", + "Epoch 6\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.00910488729193801, 'avg_role_model_std_loss': 0.40504945186955976, 'avg_role_model_mean_pred_loss': 0.0001729677290768185, 'avg_role_model_g_mag_loss': 3.1930064747792595e-06, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.03338461874847543, 'n_size': 805, 'n_batch': 101, 'duration': 88.40547037124634, 'duration_batch': 0.8753016868440231, 'duration_size': 0.10982046008850477, 'avg_pred_std': 0.21087616683896815}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.007504332256503403, 'avg_role_model_std_loss': 0.07020567152358126, 'avg_role_model_mean_pred_loss': 0.00014301656472108515, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007504332256503403, 'n_size': 200, 'n_batch': 25, 'duration': 21.012781858444214, 'duration_batch': 0.8405112743377685, 'duration_size': 0.10506390929222106, 'avg_pred_std': 0.24712208211421965}\n", + "Epoch 7\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.007255263133726505, 'avg_role_model_std_loss': 0.48221473387662617, 'avg_role_model_mean_pred_loss': 9.991645637648577e-05, 'avg_role_model_g_mag_loss': 0.00011664609314862245, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.013314187871465771, 'n_size': 805, 'n_batch': 101, 'duration': 89.47929382324219, 'duration_batch': 0.8859336022103187, 'duration_size': 0.11115440226489713, 'avg_pred_std': 0.2069804704204054}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.00737950156442821, 'avg_role_model_std_loss': 0.1515807131492511, 'avg_role_model_mean_pred_loss': 8.442724000587987e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.00737950156442821, 'n_size': 200, 'n_batch': 25, 'duration': 21.577229738235474, 'duration_batch': 0.8630891895294189, 'duration_size': 0.10788614869117737, 'avg_pred_std': 0.2270071518421173}\n", + "Epoch 8\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.006318038231505208, 'avg_role_model_std_loss': 0.11366159435901593, 'avg_role_model_mean_pred_loss': 9.746208241647516e-05, 'avg_role_model_g_mag_loss': 5.222357556828361e-05, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0507418700595826, 'n_size': 805, 'n_batch': 101, 'duration': 85.3533103466034, 'duration_batch': 0.8450822806594396, 'duration_size': 0.10602895695230236, 'avg_pred_std': 0.2236930788079701}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.008763309838250279, 'avg_role_model_std_loss': 0.5571852441411466, 'avg_role_model_mean_pred_loss': 6.980181757171522e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.008763309838250279, 'n_size': 200, 'n_batch': 25, 'duration': 19.99067258834839, 'duration_batch': 0.7996269035339355, 'duration_size': 0.09995336294174194, 'avg_pred_std': 0.19529371201992035}\n", + "Epoch 9\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.006670579946779224, 'avg_role_model_std_loss': 0.4554477588911271, 'avg_role_model_mean_pred_loss': 6.281561912752332e-05, 'avg_role_model_g_mag_loss': 9.228920344240177e-05, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.010839840444383322, 'n_size': 805, 'n_batch': 101, 'duration': 83.35597491264343, 'duration_batch': 0.8253066823034003, 'duration_size': 0.10354779492253842, 'avg_pred_std': 0.21416519705833184}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.0077990411780774595, 'avg_role_model_std_loss': 0.07070276029611705, 'avg_role_model_mean_pred_loss': 8.948392660220073e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.0077990411780774595, 'n_size': 200, 'n_batch': 25, 'duration': 19.711331129074097, 'duration_batch': 0.7884532451629639, 'duration_size': 0.09855665564537049, 'avg_pred_std': 0.2448423045873642}\n", + "Epoch 10\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.006656987856790099, 'avg_role_model_std_loss': 0.16280765775425185, 'avg_role_model_mean_pred_loss': 9.370507591543015e-05, 'avg_role_model_g_mag_loss': 3.453528346574825e-05, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.019061884462619375, 'n_size': 805, 'n_batch': 101, 'duration': 82.98489308357239, 'duration_batch': 0.8216326047878454, 'duration_size': 0.10308682370630111, 'avg_pred_std': 0.22368800227004704}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.006363446805626154, 'avg_role_model_std_loss': 0.18243387952075862, 'avg_role_model_mean_pred_loss': 6.575422429676792e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.006363446805626154, 'n_size': 200, 'n_batch': 25, 'duration': 19.65209174156189, 'duration_batch': 0.7860836696624756, 'duration_size': 0.09826045870780944, 'avg_pred_std': 0.2239115846157074}\n", + "Epoch 11\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.006061364774250929, 'avg_role_model_std_loss': 0.13997760837474013, 'avg_role_model_mean_pred_loss': 9.698075756333587e-05, 'avg_role_model_g_mag_loss': 5.462016007915047e-07, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.008107176718377272, 'n_size': 805, 'n_batch': 101, 'duration': 83.94199562072754, 'duration_batch': 0.8311088675319558, 'duration_size': 0.10427577095742552, 'avg_pred_std': 0.21998016012482124}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.00821163147687912, 'avg_role_model_std_loss': 0.16838535042741115, 'avg_role_model_mean_pred_loss': 8.240880536467987e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.00821163147687912, 'n_size': 200, 'n_batch': 25, 'duration': 19.563430309295654, 'duration_batch': 0.7825372123718262, 'duration_size': 0.09781715154647827, 'avg_pred_std': 0.22507850110530853}\n", + "Epoch 12\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.005865368096921477, 'avg_role_model_std_loss': 0.14280182168567412, 'avg_role_model_mean_pred_loss': 6.62991409777624e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.005865368096921477, 'n_size': 805, 'n_batch': 101, 'duration': 82.20387101173401, 'duration_batch': 0.8138997129874654, 'duration_size': 0.1021166099524646, 'avg_pred_std': 0.22394288703799248}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.007616846952587366, 'avg_role_model_std_loss': 0.14218884628193337, 'avg_role_model_mean_pred_loss': 9.796912930553958e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007616846952587366, 'n_size': 200, 'n_batch': 25, 'duration': 19.366668462753296, 'duration_batch': 0.7746667385101318, 'duration_size': 0.09683334231376647, 'avg_pred_std': 0.23068991899490357}\n", + "Stopped False\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Eval loss {'role_model': 'tab_ddpm_concat', 'n_size': 200, 'n_batch': 25, 'role_model_metrics': {'avg_loss': 0.005645968148019165, 'avg_g_mag_loss': 0.0041800205188337715, 'avg_g_cos_loss': 0.0, 'pred_duration': 0.18954086303710938, 'grad_duration': 0.12818264961242676, 'total_duration': 0.31772351264953613, 'pred_std': 0.23794962465763092, 'std_loss': 0.0018280709628015757, 'mean_pred_loss': 6.366354500642046e-05, 'pred_rmse': 0.07513965666294098, 'pred_mae': 0.05480741336941719, 'pred_mape': 0.09844970703125, 'grad_rmse': 0.05349891632795334, 'grad_mae': 0.03993377462029457, 'grad_mape': 0.7658331394195557}, 'non_role_model_metrics': {'avg_loss': 0, 'avg_g_mag_loss': 0, 'avg_g_cos_loss': 0, 'avg_pred_duration': 0, 'avg_grad_duration': 0, 'avg_total_duration': 0, 'avg_pred_std': 0, 'avg_std_loss': 0, 'avg_mean_pred_loss': 0}, 'avg_metrics': {'avg_loss': 0.005645968148019165, 'avg_g_mag_loss': 0.0041800205188337715, 'avg_g_cos_loss': 0.0, 'avg_pred_duration': 0.18954086303710938, 'avg_grad_duration': 0.12818264961242676, 'avg_total_duration': 0.31772351264953613, 'avg_pred_std': 0.23794962465763092, 'avg_std_loss': 0.0018280709628015757, 'avg_mean_pred_loss': 6.366354500642046e-05}, 'min_metrics': {'avg_loss': 0.005645968148019165, 'avg_g_mag_loss': 0.0041800205188337715, 'avg_g_cos_loss': 0.0, 'pred_duration': 0.18954086303710938, 'grad_duration': 0.12818264961242676, 'total_duration': 0.31772351264953613, 'pred_std': 0.23794962465763092, 'std_loss': 0.0018280709628015757, 'mean_pred_loss': 6.366354500642046e-05, 'pred_rmse': 0.07513965666294098, 'pred_mae': 0.05480741336941719, 'pred_mape': 0.09844970703125, 'grad_rmse': 0.05349891632795334, 'grad_mae': 0.03993377462029457, 'grad_mape': 0.7658331394195557}, 'model_metrics': {'tab_ddpm_concat': {'avg_loss': 0.005645968148019165, 'avg_g_mag_loss': 0.0041800205188337715, 'avg_g_cos_loss': 0.0, 'pred_duration': 0.18954086303710938, 'grad_duration': 0.12818264961242676, 'total_duration': 0.31772351264953613, 'pred_std': 0.23794962465763092, 'std_loss': 0.0018280709628015757, 'mean_pred_loss': 6.366354500642046e-05, 'pred_rmse': 0.07513965666294098, 'pred_mae': 0.05480741336941719, 'pred_mape': 0.09844970703125, 'grad_rmse': 0.05349891632795334, 'grad_mae': 0.03993377462029457, 'grad_mape': 0.7658331394195557}}}\n" + ] + } + ], + "source": [ + "import torch\n", + "from ml_utility_loss.loss_learning.estimator.pipeline import train, train_2\n", + "from ml_utility_loss.loss_learning.estimator.process_simple import train_epoch, eval as _eval\n", + "from ml_utility_loss.params import GradientPenaltyMode\n", + "from ml_utility_loss.util import clear_memory\n", + "import time\n", + "#torch.autograd.set_detect_anomaly(True)\n", + "\n", + "del model\n", + "clear_memory()\n", + "\n", + "#opt = params[\"Optim\"](model.parameters())\n", + "loss = train_2(\n", + " [train_set, val_set, test_set],\n", + " preprocessor=preprocessor,\n", + " #whole_model=model,\n", + " #optim=opt,\n", + " log_dir=\"logs\",\n", + " checkpoint_dir=None,\n", + " verbose=True,\n", + " allow_same_prediction=allow_same_prediction,\n", + " wandb=wandb if log_wandb else None,\n", + " study_name=study_name,\n", + " **params\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "9b514a07", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T16:22:32.828040Z", + "iopub.status.busy": "2024-07-23T16:22:32.827685Z", + "iopub.status.idle": "2024-07-23T16:22:32.832216Z", + "shell.execute_reply": "2024-07-23T16:22:32.831305Z" + }, + "papermill": { + "duration": 0.023238, + "end_time": "2024-07-23T16:22:32.834090", + "exception": false, + "start_time": "2024-07-23T16:22:32.810852", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "model = loss[\"whole_model\"]\n", + "opt = loss[\"optim\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "331a49e1", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T16:22:32.865399Z", + "iopub.status.busy": "2024-07-23T16:22:32.865107Z", + "iopub.status.idle": "2024-07-23T16:22:32.883479Z", + "shell.execute_reply": "2024-07-23T16:22:32.882792Z" + }, + "papermill": { + "duration": 0.036248, + "end_time": "2024-07-23T16:22:32.885304", + "exception": false, + "start_time": "2024-07-23T16:22:32.849056", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import torch\n", + "from copy import deepcopy\n", + "\n", + "torch.save(deepcopy(model.state_dict()), \"model.pt\")\n", + "#torch.save(deepcopy(opt.state_dict()), \"optim.pt\")" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "123b4b17", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T16:22:32.917098Z", + "iopub.status.busy": "2024-07-23T16:22:32.916839Z", + "iopub.status.idle": "2024-07-23T16:22:33.185161Z", + "shell.execute_reply": "2024-07-23T16:22:33.184210Z" + }, + "papermill": { + "duration": 0.286905, + "end_time": "2024-07-23T16:22:33.187632", + "exception": false, + "start_time": "2024-07-23T16:22:32.900727", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "history = loss[\"history\"]\n", + "history.to_csv(\"history.csv\")\n", + "history[[\"avg_loss_train\", \"avg_loss_test\"]].plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "2586ba0a", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T16:22:33.223005Z", + "iopub.status.busy": "2024-07-23T16:22:33.222695Z", + "iopub.status.idle": "2024-07-23T16:22:53.466164Z", + "shell.execute_reply": "2024-07-23T16:22:53.465338Z" + }, + "papermill": { + "duration": 20.263905, + "end_time": "2024-07-23T16:22:53.468626", + "exception": false, + "start_time": "2024-07-23T16:22:33.204721", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "\n", + "from ml_utility_loss.loss_learning.estimator.pipeline import eval\n", + "#eval_loss = loss[\"eval_loss\"]\n", + "\n", + "batch_size = params[\"batch_size_low\"] if \"batch_size_low\" in params else params[\"batch_size\"]\n", + "\n", + "eval_loss = eval(\n", + " test_set, model,\n", + " batch_size=batch_size,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "187137f6", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T16:22:53.504285Z", + "iopub.status.busy": "2024-07-23T16:22:53.503970Z", + "iopub.status.idle": "2024-07-23T16:22:53.524024Z", + "shell.execute_reply": "2024-07-23T16:22:53.523188Z" + }, + "papermill": { + "duration": 0.040482, + "end_time": "2024-07-23T16:22:53.525937", + "exception": false, + "start_time": "2024-07-23T16:22:53.485455", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
avg_g_cos_lossavg_g_mag_lossavg_lossgrad_durationgrad_maegrad_mapegrad_rmsemean_pred_losspred_durationpred_maepred_mapepred_rmsepred_stdstd_losstotal_duration
tab_ddpm_concat0.00.0019610.0056460.1256120.0399340.7658330.0534990.0000640.1885020.0548070.098450.075140.237950.0018280.314114
\n", + "
" + ], + "text/plain": [ + " avg_g_cos_loss avg_g_mag_loss avg_loss grad_duration \\\n", + "tab_ddpm_concat 0.0 0.001961 0.005646 0.125612 \n", + "\n", + " grad_mae grad_mape grad_rmse mean_pred_loss \\\n", + "tab_ddpm_concat 0.039934 0.765833 0.053499 0.000064 \n", + "\n", + " pred_duration pred_mae pred_mape pred_rmse pred_std \\\n", + "tab_ddpm_concat 0.188502 0.054807 0.09845 0.07514 0.23795 \n", + "\n", + " std_loss total_duration \n", + "tab_ddpm_concat 0.001828 0.314114 " + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "metrics = pd.DataFrame(eval_loss[\"model_metrics\"]).T\n", + "metrics.to_csv(\"eval.csv\")\n", + "metrics" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "123d305b", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T16:22:53.558603Z", + "iopub.status.busy": "2024-07-23T16:22:53.558317Z", + "iopub.status.idle": "2024-07-23T16:22:53.827248Z", + "shell.execute_reply": "2024-07-23T16:22:53.826196Z" + }, + "papermill": { + "duration": 0.287478, + "end_time": "2024-07-23T16:22:53.829200", + "exception": false, + "start_time": "2024-07-23T16:22:53.541722", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "from ml_utility_loss.util import clear_memory\n", + "clear_memory()" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "a3eecc2a", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T16:22:53.864049Z", + "iopub.status.busy": "2024-07-23T16:22:53.863717Z", + "iopub.status.idle": "2024-07-23T16:23:14.045304Z", + "shell.execute_reply": "2024-07-23T16:23:14.044488Z" + }, + "papermill": { + "duration": 20.201647, + "end_time": "2024-07-23T16:23:14.047619", + "exception": false, + "start_time": "2024-07-23T16:22:53.845972", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Caching in ../../../../iris/_cache_aug_test/tab_ddpm_concat/all inf False\n", + "Caching in ../../../../iris/_cache_bs_test/tab_ddpm_concat/all inf False\n", + "Caching in ../../../../iris/_cache_synth_test/tab_ddpm_concat/all inf False\n" + ] + } + ], + "source": [ + "#\"\"\"\n", + "from ml_utility_loss.loss_learning.estimator.process import pred, pred_2\n", + "from ml_utility_loss.util import stack_samples\n", + "\n", + "#samples = test_set[list(range(len(test_set)))]\n", + "#y = {m: pred(model[m], s) for m, s in samples.items()}\n", + "y = pred_2(model, test_set, batch_size=batch_size)\n", + "#\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "6ab51db8", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T16:23:14.084571Z", + "iopub.status.busy": "2024-07-23T16:23:14.084238Z", + "iopub.status.idle": "2024-07-23T16:23:14.098076Z", + "shell.execute_reply": "2024-07-23T16:23:14.097305Z" + }, + "papermill": { + "duration": 0.034342, + "end_time": "2024-07-23T16:23:14.099934", + "exception": false, + "start_time": "2024-07-23T16:23:14.065592", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import os\n", + "import pandas as pd\n", + "from ml_utility_loss.util import transpose_dict\n", + "\n", + "os.makedirs(\"pred\", exist_ok=True)\n", + "y2 = transpose_dict(y)\n", + "for k, v in y2.items():\n", + " df = pd.DataFrame(v)\n", + " df.to_csv(f\"pred/{k}.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "d81a30f1", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T16:23:14.133337Z", + "iopub.status.busy": "2024-07-23T16:23:14.132534Z", + "iopub.status.idle": "2024-07-23T16:23:14.137966Z", + "shell.execute_reply": "2024-07-23T16:23:14.137057Z" + }, + "papermill": { + "duration": 0.023983, + "end_time": "2024-07-23T16:23:14.139777", + "exception": false, + "start_time": "2024-07-23T16:23:14.115794", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'tab_ddpm_concat': 0.7352157247811556}\n" + ] + } + ], + "source": [ + "print({k: sum(v[\"pred\"])/len(v[\"pred\"]) for k, v in y.items()})" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "3b3ff322", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T16:23:14.172705Z", + "iopub.status.busy": "2024-07-23T16:23:14.172422Z", + "iopub.status.idle": "2024-07-23T16:23:14.502177Z", + "shell.execute_reply": "2024-07-23T16:23:14.501290Z" + }, + "papermill": { + "duration": 0.348778, + "end_time": "2024-07-23T16:23:14.504216", + "exception": false, + "start_time": "2024-07-23T16:23:14.155438", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from ml_utility_loss.loss_learning.visualization import plot_pred_density_2\n", + "\n", + "_ = plot_pred_density_2(y)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "e79e4b0f", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T16:23:14.540329Z", + "iopub.status.busy": "2024-07-23T16:23:14.540018Z", + "iopub.status.idle": "2024-07-23T16:23:14.846560Z", + "shell.execute_reply": "2024-07-23T16:23:14.845626Z" + }, + "papermill": { + "duration": 0.327174, + "end_time": "2024-07-23T16:23:14.848797", + "exception": false, + "start_time": "2024-07-23T16:23:14.521623", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAToAAAEmCAYAAADyVly8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABMN0lEQVR4nO3deXxU1d0/8M+dfSazJCH7RgKBsIWEncQlqFRERHi0irYKKFgX6E/AFRcQfdrUWgTaUqj1gTwuiKKIrfqIiAIKAdmCIBggkAWyr5OZzH7P74+bmWRIAplklizf9+s1L5g75957LmG+OfvhGGMMhBDSh4kCnQFCCPE1CnSEkD6PAh0hpM+jQEcI6fMo0BFC+jwKdISQPo8CHSGkz6NARwjp8ySBzoC/8TyP0tJSaDQacBwX6OwQQq7AGENjYyNiYmIgEnmnLNbvAl1paSni4+MDnQ1CyDWUlJQgLi7OK9fqd4FOo9EAEP4RtVptgHNDCLmSXq9HfHy867vqDf0u0Dmrq1qtlgIdIT2YN5uWqDOCENLnBTTQbdiwAaNHj3aVrjIyMvB///d/Vz1n27ZtGDZsGBQKBVJTU/Hll1/6KbeEkN4qoIEuLi4Of/rTn3D06FEcOXIEN998M2bNmoWff/653fQHDhzA/fffjwULFuD48eOYPXs2Zs+ejVOnTvk554SQ3oTraevRhYaG4o033sCCBQvafDZnzhwYjUZ8/vnnrmOTJ09Geno6Nm7c2Knr6/V66HQ6NDQ0UBsdIT2QL76jPaaNzuFwYOvWrTAajcjIyGg3TW5uLqZOnep2bNq0acjNzfVHFgkhvVTAe11PnjyJjIwMmM1mqNVqfPrppxgxYkS7acvLyxEZGel2LDIyEuXl5R1e32KxwGKxuN7r9XrvZJwQ0msEvESXkpKCvLw8HDp0CI8//jjmzZuH06dPe+362dnZ0Ol0rhcNFib+cKy4Dh8eLsahCzXoYa1D/VLAA51MJkNycjLGjRuH7OxspKWlYd26de2mjYqKQkVFhduxiooKREVFdXj95cuXo6GhwfUqKSnxav4JudKpyw3Ym1+F0nozDhTU4HhJfaCz1O8FPNBdied5t6pmaxkZGdi9e7fbsV27dnXYpgcAcrncNXyFBgkTX7M7eOQW1AAAwjRyDI3UIC5EGeBckYC20S1fvhzTp09HQkICGhsbsWXLFuzZswc7d+4EAMydOxexsbHIzs4GADz55JPIysrC6tWrMWPGDGzduhVHjhzBW2+9FcjHIMTlYrURBosdGoUE90+Ih0Tc48oS/VJAA11lZSXmzp2LsrIy6HQ6jB49Gjt37sSvfvUrAEBxcbHb6gWZmZnYsmULXnrpJbzwwgsYMmQIduzYgVGjRgXqEQhxc67SAABIidJQkOtBetw4Ol+jcXTEV3ieYcPeAljtPO6fmIAonQKMMVyqM+FSnQkTk0IhFtHSYNfii+9owIeXENJXiEQcFlyfhNJ6EyK1ctfxL06WwWR1IGGACrHB1F4XCFS2JsSLFFIxBoWrXStvcBzn6oy4VNsUyKz1axToCPGxuBAVAKCswRzgnPRfFOgI8QLGGD7Lu4wD56thsTvcPnNWYysbKdAFCgU6QrxAb7bjQpURR4rqILlin4MwtRwijoPR4oDBYg9QDvs3CnSEeEG1QRjkHhoka9OzKhWLEBokBQBU6qlUFwgU6AjxgupGIdCFqeXtfh6uUQAAqhrbn/VDfIuGlxDiBVXNJbpwjazdzyckhmDswGCEqNr/nPgWBTpCvOBaJboBHRwn/kFVV0K6yebgUW+yAeg40JHAohIdId2kN9kgFYsgFnFQycTuH9pMwMXvAYsep0VDUcpFYvLgAVDL6avnT/SvTUg3DVDL8cSUwbDYefe9SHkeOPUJUC+sgWi9dAQXQu5AcoSaAp2fUdWVEC/gOA4K6RWluYqTQpCTyABdLJRSEQbV/YBaI/W8+hsFOkJ8gTGg+JDw94HXAaPuhlwuR5C1GuaaosDmrR+iQEdIN/3fyTL8+0Spa9AwAKCxHGiqAcQSIGYMIAsCIoRNn0QV7e9bTHyHAh0h3VRY04SCSgPcVnasbN7gaUAyIBF6YqXRQqCT1p0X2u+I31CgI6QbTFYHzDZhEn+wStryQU2B8Gf4cNehoIhBsIvkcJgNYPpL/sxmv0eBjpBuqDdZAQAahQRS59Lplkah2spxQEiiK61GpYBeGQsHA8xVhf7PbD9GfdyEdEOdURgorFO2Ks3VNXc2qCMBqcJ1WCzicN24MVAX10FivOzPbPZ7VKIjpBucJTq3Oaz1zYEuZGCb9MHRycIyTvpLAO9o8znxDQp0hHRDQ5NQonNrn2tobn8LbhvoEBQmlPIcdsBY5YccEoACHSHdwnGAVMxB66y62sxAU63wd21Mm/RlejNONypR2mACGsv8mNP+jdroCOmG20ZFgzHWMrTEGbyUwYC07Y5fdUYbzhiCMNxmQ0xjhd/y2d9RiY6QbuI4DiLnqsKN5cKfmqh202oUEhhlYbDaHYCh3E85JBToCPEmZ4lOE93uxxqFBAZpGKx2HsxQSR0SfhLQQJednY0JEyZAo9EgIiICs2fPRn5+/lXPycnJAcdxbi+FQnHVcwjxhcv1Jrx3sAjf/VLZcvAaJTq1XAKLRAsrJ4XDbhPG2xGfC2ig27t3LxYtWoSDBw9i165dsNlsuPXWW2E0Gq96nlarRVlZmetVVESTpIn/1TdZUdVoQV2TMMQEditgbhD+HhTR7jkSsQhKuQQmSQgsdp4CnZ8EtDPiq6++cnufk5ODiIgIHD16FDfeeGOH53Ech6io9n9jEuIvepOwdaFG0dzj2lQt/CkLAmSqDs/TKCRokobAai9FkLHa19kk6GFtdA0Nwm/D0NDQq6YzGAwYOHAg4uPjMWvWLPz8c8erQVgsFuj1ercXId7QaBbG0GkVzeUF57i4oPCrnqeWS2CWBsNKJTq/6TGBjud5LFmyBNdddx1GjRrVYbqUlBRs2rQJn332Gd577z3wPI/MzExcutT+JOns7GzodDrXKz4+3lePQPoZvfmKEl0nA93U4ZGYfd1oRGjlLaVA4lM9JtAtWrQIp06dwtatW6+aLiMjA3PnzkV6ejqysrKwfft2hIeH45///Ge76ZcvX46GhgbXq6SkxBfZJ/2QvnlDHK3SWaJrDlpBA656XpBcArk2HBw4oKmOlmzygx4xYHjx4sX4/PPPsW/fPsTFxXl0rlQqxZgxY3D+/Pl2P5fL5ZDLaWcm4l2MMRgsV5bonIHu6iU6AIAiGBBJAN4OmOsB1dWba0j3BLRExxjD4sWL8emnn+Lbb79FUlKSx9dwOBw4efIkoqPbH7dEiC9Y7DyCVVLIJCJo5BJh6pelUfhQFXbVc/VmG3bnV+FMQ3M5wzlljPhMQEt0ixYtwpYtW/DZZ59Bo9GgvFwYg6TT6aBUCtNn5s6di9jYWGRnZwMAXn31VUyePBnJycmor6/HG2+8gaKiIixcuDBgz0H6H4VUjLkZiWCMCTt/NTZ3KsjVbksztYfxwE+XGmBpUmCYxgSuqQZAsu8z3Y8FNNBt2LABADBlyhS345s3b8b8+fMBAMXFxRCJWgqedXV1eOSRR1BeXo6QkBCMGzcOBw4cwIgRI/yVbUJcXNsbmppLZcprV0GD5MJuYU1iDeyOWkjN9T7KHXEKaKBjbovst2/Pnj1u79esWYM1a9b4KEeEdJGpTvizE21tErEISpkYZokOVgcPqfNc4jM9ojOCkN7mQEE1LlQZMSYhGCNjdC3tbMqQTp0fJBPDItHA5uABU73vMkoA9KDhJYT0JrVGYfqXzdFcK3GWyjpRdQWEISZmiVYYNGxuoCEmPkaBjpAuMDQPFlbLxcJm1SYPS3RyCaziIFgZJ/ROWBp8lVUCCnSEdIlzDJ1aLgWsRmFCP8d5UHWVABwHk0gjHKDqq09RGx0hHuJ5BqNFWEcuSC4GTM1Tv+RaQNy5r9T4xBCMTwyB/HQcUHtBGDRMfIZKdIR4qMnmAM8YRBwnlMw8rLYCwjg8hVQMztlLSyU6n6JAR4iHnO1zQXKxsIS6B0NL2lAEC3/SEBOfoqorIR5yMIbQIBnU8iumcHlQojPbHPjhXDXEdVZMAQNHVVefokBHiIdig5WYl5nYcsDDoSUAIBZxOHm5AUqrGDcoGCRUdfUpqroS0l3O5dOVwZ0+RSoWQS4VwSpRC2Px7BbhRXyCAh0h3WEztwQoudajU4NkEjhEMlggEw6YafVrX6FAR4iHPv+pFO8dLEJJbVNLaU6mAiQyj64T1NzGZxIHCQcsFOh8hQIdIR6qMQjTvwC0BDqFzuPrqJtXMTGJgtyvRbyOAh0hHmqZFSHpVqBTyYQSnRFUovM1CnSEeMBidwgT8QGoFd0LdM6qq5Fr3hqRSnQ+Q8NLCPGAc7CwXCqCVCxqmbrVhUA3KlaLUbFayGrswOmfqDPChyjQEeIB14Y4zsHCrhJdsMfXkkvEzec2B0mquvoMVV0J8YCrfU5xZaDzvETnomgelmIx0Lp0PkIlOkI8IOI4DFDLEKySdWsMHQDYHTz25FfBaLHhDoggZjxgbexe0CTtokBHiAeGR2sxPLo5qDVWCH92YQwdIEwDO12mh4NnsCqCoLQ3Cu10FOi8jqquhHRVN6utHMdBJRPa6axitXCQ2ul8ggIdIV3lhfY551g61+wIGmLiE1R1JcQD7+YWguM4zBwdA51XAp1zdkRziY6GmPgEBTpCOsnBM9QYrWAMkEq4bo2hc3IGOgOUwgFLYzdzSdoT0KprdnY2JkyYAI1Gg4iICMyePRv5+fnXPG/btm0YNmwYFAoFUlNT8eWXX/oht6S/M1jsYEzoRFBKxd0aQ+fUMg2sOdBZKdD5QkAD3d69e7Fo0SIcPHgQu3btgs1mw6233gqj0djhOQcOHMD999+PBQsW4Pjx45g9ezZmz56NU6dO+THnpD8yWpxLqEvAcZx32uiaJ/YbqUTnUxxjjAU6E05VVVWIiIjA3r17ceONN7abZs6cOTAajfj8889dxyZPnoz09HRs3LjxmvfQ6/XQ6XRoaGiAVuv52CfSf52taMQXP5UhNliJe9PDgR/WCB/c8FSXhpcAgNXOg4FBxpvB7f+rcPDGZzq9m1hf5IvvaI/qdW1oEH5DhoZ2vCR1bm4upk6d6nZs2rRpyM3NbTe9xWKBXq93exHSFY3mVrMiurEOXWsyiQhyiRicVAWImoMbVV+9rscEOp7nsWTJElx33XUYNWpUh+nKy8sRGRnpdiwyMhLl5eXtps/OzoZOp3O94uPjvZpv0n+0rrp6ZepXaxwHyJs3s7YYvHNN4tJjAt2iRYtw6tQpbN261avXXb58ORoaGlyvkpISr16f9B8KqViY/qWUei3Q2R08dp2uwGd5l+GQOteloxKdt/WIhoDFixfj888/x759+xAXF3fVtFFRUaioqHA7VlFRgaioqHbTy+VyyOVyr+WV9F8Tk0IxMam5WeWcdwKdWMThdKkePGOwhAdBBVCg84GAlugYY1i8eDE+/fRTfPvtt0hKSrrmORkZGdi9e7fbsV27diEjI8NX2SSkLS+MoQOEaWBBzT2vFjGV6HwloCW6RYsWYcuWLfjss8+g0Whc7Ww6nQ5KpdDdPnfuXMTGxiI7OxsA8OSTTyIrKwurV6/GjBkzsHXrVhw5cgRvvfVWwJ6D9ENeGEPnpJSJ0Wi2owlKhADUGeEDAS3RbdiwAQ0NDZgyZQqio6Ndrw8//NCVpri4GGVlZa73mZmZ2LJlC9566y2kpaXh448/xo4dO67agUFId5ltDmzcW4D3DhaB55lXOyOCmgcNN3E0ls5XAlqi68wQvj179rQ5ds899+Cee+7xQY4IaV+j2Q6T1QEAEDks3VqH7kpK1zSw5r0jKNB5XY/pdSWkJ2t3569ujqFzcpboGqEQDlgMQM8Zx98nUKAjpBOMXtrisD3OaWBNTCGMp2M8YO14GiTxXI8YXkJIT+ecFeGLwcKjYnQYFaODTCICDgQJJTpLIyBXe+X6hEp0hHSKL0t0MolICHJAq9kR1E7nTRToCOkE9za6euGgL/Z2oEDnE1R17UMcDgdsNlugs9EnBcsZotViBIl5mM1mQKQCRBrAbO72te0OHocu1sJsc2CKQgexSAWYjF65dk8klUohFov9es8uLdN04cIFDBo0yBf58bm+uEwTYwzl5eWor68PdFb6B7MeAANkakDknS+s3mwDGKCWOIThK2IpIFV55do9UXBwMKKiooR1/a7gi+9ol0p0ycnJyMrKwoIFC/DrX/8aCoXCK5khXeMMchEREVCpVO3+5yFewvNAU7Xw96AwgPNO60+t0QqeMQRLHZDYDEKgU4Z45do9CWMMTU1NqKysBABER0f75b5dCnTHjh3D5s2bsWzZMixevBhz5szBggULMHHiRG/nj1yDw+FwBbkBAwYEOjt9n8MG2KWASAQovVfikts52HkGmZxBxlmEten6aAHCOb2zsrISERERfqnGdunXUXp6OtatW4fS0lJs2rQJZWVluP766zFq1Ci8+eabqKqq8nY+SQecbXIqVd+t5gSa1c6jstGMuiYrwAuzI8B598spEgmlcAdr/koyR58eNOz8/+qvNuVulbslEgnuuusubNu2Da+//jrOnz+Pp59+GvHx8Zg7d67bHFXiW1Rd9R2eMTDWHHdYc6DzUtuck6j558c7q8KuG/ZN/v7/2q1Ad+TIETzxxBOIjo7Gm2++iaeffhoFBQXYtWsXSktLMWvWLG/lk5CAcfBCwBFx8F2Jrvl7zzO0tPs5gyrpti4FujfffBOpqanIzMxEaWkp3nnnHRQVFeG///u/kZSUhBtuuAE5OTk4duyYt/NL+rn58+dj9uzZXr3mlClTsGTJkg4/5xnD+NQUbFz/N4AXxtP5rETHILT/ARTovKhLgW7Dhg34zW9+g6KiIuzYsQN33HEHRCL3S0VEROB//ud/vJJJ0jddK8D0FHzrEp2Pqq5KmRjhGjl0SmlLaZHnvXoPf3jllVeQnp4e6Gy00aVe1127diEhIaFNcGOMoaSkBAkJCZDJZJg3b55XMklIIDmam8o4jvNh1bVVm5Xz2lSi85oulegGDx6M6urqNsdra2s7tRw6IfPnz8fevXuxbt06cBwHjuNQUFCABQsWICkpCUqlEikpKVi3bl27569atQrh4eHQarV47LHHYLVaO3Vfo9GIuXPnQq1WIzo6GqtXr26TprKyEjNnzoRSqURSUhI+2roFAMChpYOAk8iwYcMGTJ8+HUqlEoMGDcLHH3/sukZhYSE4jsNHH32EG264AUqlEhMmTMDZs2dx+PBhjB8/Hmq1GtOnT287SsFVdW1botu0aRNGjhwJuVyO6OhoLF682PVZcXExZs2aBbVaDa1Wi3vvvddtfxVnaevdd99FYmIidDod7rvvPjQ2tkw343kef/7zn5GcnAy5XI6EhAT84Q9/cH3+3HPPYejQoVCpVBg0aBBefvllV89pTk4OVq1ahRMnTrh+pjk5OZ36ufgc6wKO41hFRUWb44WFhUylUnXlkn7T0NDAALCGhoZAZ8UrTCYTO336NDOZTG0+s9gcHb5sdken01o7kdZT9fX1LCMjgz3yyCOsrKyMlZWVMbPZzFasWMEOHz7MLly4wN577z2mUqnYhx9+6Dpv3rx5TK1Wszlz5rBTp06xzz//nIWHh7MXXnihU/d9/PHHWUJCAvvmm2/YTz/9xO644w6m0WjYk08+6Uozffp0lpaWxnJzc9mRI0fYxMkZTKlUstV/eYOxhlLGGssZADZgwAD2r3/9i+Xn57OXXnqJicVidvr0acYYYxcvXmQA2LBhw9hXX33FTp8+zSZPnszGjRvHpkyZwn744Qd27NgxlpyczB577DHm4HlW32RldUYL4y1G4T7GGre8/+Mf/2AKhYKtXbuW5efnsx9//JGtWbOGMcaYw+Fg6enp7Prrr2dHjhxhBw8eZOPGjWNZWVmu81euXMnUajW766672MmTJ9m+fftYVFSU27/ds88+y0JCQlhOTg47f/48+/7779m//vUv1+evvfYa279/P7t48SL797//zSIjI9nrr7/OGGOsqamJPfXUU2zkyJGun2lTU1O7P4er/b/1xXfUo0C3dOlStnTpUiYSidijjz7qer906VL2//7f/2OTJk1imZmZXsucL/SnQPfm1/kdvj49dskt7d92n+0w7UeHi93Sbthzvk2arsjKynILMO1ZtGgRu/vuu13v582bx0JDQ5nRaGzJz4YNTK1WM4fj6gG3sbGRyWQy9tFHH7mO1dTUMKVS6cpHfn4+A8B+/PFHV5ozZ84wAGzNX/4sBCBDFQPAHnvsMbfrT5o0iT3++OOMsZZA9/bbb7s+/+CDDxgAtnv3btex7OxslpKSwnieZ+UNJlbeYGJ2i6n5PpVu14+JiWEvvvhiu8/29ddfM7FYzIqLW35WP//8s9uzrFy5kqlUKqbX611pnnnmGTZp0iTGGGN6vZ7J5XK3wHYtb7zxBhs3bpzr/cqVK1laWto1z/N3oPOoje748ePOUiBOnjwJmaxldVWZTIa0tDQ8/fTT3S9mkn5r/fr12LRpE4qLi2EymWC1Wts0bqelpbkNkM7IyIDBYEBJSQkGDhzY4bULCgpgtVoxadIk17HQ0FCkpKS43p85cwYSiQTjxo1zHRs2bBiCg4NbxrU1d0RcufNcRkYG8vLy3I6NHj3a9XfnxuupqaluxyorK8FxHEQcB54x8OAgBtw6IyorK1FaWopbbrml3Wc7c+YM4uPj3TZoHzFiBIKDg3HmzBlMmDABAJCYmAiNRuNKEx0d7ZqOdebMGVgslg7vAQAffvgh/vrXv6KgoAAGgwF2u71XzBn3KNB99913AICHHnoI69at6xUP2J8tuim5w89EV4zX/N2NgztMe+XYzoev80077NatW/H0009j9erVyMjIgEajwRtvvIFDhw755H6dwRhrGdzqbDPzoCNCKpW6/u68zpXH+OaAJuKE4SU8WrXRMQZwnGvaVHe1vveV97/WPXJzc/Hb3/4Wq1atwrRp06DT6bB169Z22zl7mi51RmzevJmCXC/gXNCxvZdELOp0Wmkn0nYpfzIZHI6WnsX9+/cjMzMTTzzxBMaMGYPk5GQUFBS0Oe/EiRMwmUyu9wcPHoRarXYrzbRn8ODBkEqlboGzrq4OZ8+edb0fNmwY7HY7jh49CkDY/evAsZ+ElWGcga65RHfw4EG36x88eBDDhw/v3MO3wzkNjAfX8tuluedVo9EgMTGxzZ7GTsOHD0dJSQlKSkpcx06fPo36+nqMGDGiU/cfMmQIlEplh/c4cOAABg4ciBdffBHjx4/HkCFDUFRU5Jbmyp9pT9HpEt1dd92FnJwcaLVa3HXXXVdNu3379m5njPR9iYmJOHToEAoLC6FWqzFkyBC888472LlzJ5KSkvDuu+/i8OHDbXryrVYrFixYgJdeegmFhYVYuXIlFi9e3Ga405XUajUWLFiAZ555BgMGDEBERARefPFFt/NSUlJw22234dFHH8WGDRtg5YFnnlrWXNpxD3Tbtm3D+PHjcf311+P999/Hjz/+2K2xo26DhjmREOR4hzDBH0Kv6WOPPYaIiAhMnz4djY2N2L9/P37/+99j6tSpSE1NxW9/+1usXbsWdrsdTzzxBLKysjB+/PhO3V+hUOC5557Ds88+C5lMhuuuuw5VVVX4+eefsWDBAgwZMgTFxcXYunUrJkyYgC+++AKffvqp2zUSExNx8eJF5OXlIS4uDhqNBnK5vMv/Jt7S6V/FOp3OVfTW6XRXfRHSGU8//TTEYjFGjBiB8PBwTJs2DXfddRfmzJmDSZMmoaamBk888USb82655RYMGTIEN954I+bMmYM777wTr7zySqfu+cYbb+CGG27AzJkzMXXqVFx//fVu7XGAUGOJiYlBVlYWfjvnXjwwfwHCwyNa2sw4IfCsWrUKW7duxejRo/HOO+/ggw8+6HTpqT3O5gQHYy0DklsNMZk3bx7Wrl2Lf/zjHxg5ciTuuOMOnDt3TsgSx+Gzzz5DSEgIbrzxRkydOhWDBg1y2yO5M15++WU89dRTWLFiBYYPH445c+a42vDuvPNOLF26FIsXL0Z6ejoOHDiAl19+2e38u+++G7fddhtuuukmhIeH44MPPujiv4Z3dWnhzd6sry28aTabcfHiRSQlJdG6gD5Q32SFxc5DKxdDaWkeO6qJAicS4dNPP/XqdDSjxQ6DxQ6FVAwdjIDNJCyt3gc3ybna/1tffEe71LhiMpnQ1NTkel9UVIS1a9fi66+/9ug6+/btw8yZMxETEwOO47Bjx46rpt+zZ49rIGLrV3l5eVceg5Brck3oh3Pql6ht74yXuE8D63jQMPFclwLdrFmz8M477wAA6uvrMXHiRKxevRqzZs3Chg0bOn0do9GItLQ0rF+/3qP75+fno6yszPWKiIjw6HzSNxUXF0OtVnf4Ki4u9viajuYKjxie97h6SqvRQKvRCPkNi4E6Jln4U63G999/77P79gddXmF4zZo1AICPP/4YUVFROH78OD755BOsWLECjz/+eKeuM336dEyfPt3j+0dERAjjmghpJSYmps04tis/94RzHToAELk6IoSvjC9afNzybjMLe1OIJYAqFLGxsV6/X3/SpUDX1NTkGnT49ddf46677oJIJMLkyZPbdDf7Qnp6OiwWC0aNGoVXXnkF1113XYdpLRYLLBaL671er/d5/khgSCQSJCd3PHbQU4wJQ2l4noHz0aolrQ0ePBh6s13YO0IGcE01wv3UVGPpri5VXZOTk7Fjxw6UlJRg586duPXWWwEIo7d92cAfHR2NjRs34pNPPsEnn3yC+Ph4TJky5arr3mVnZ7v1CF9rrBUhTmIRhxCVDAPUcnA+WrXkSmabA1Y7DwdarUnXv/oLfaJLgW7FihV4+umnkZiYiEmTJrmmwnz99dcYM2aMVzPYWkpKCh599FGMGzcOmZmZ2LRpEzIzM13V6PYsX74cDQ0NrlfrAZWEdBrv+xKdcxoY4Bw0DICBOiS8oEtV11//+te4/vrrUVZWhrS0NNfxW265Bf/1X//ltcx1xsSJE/HDDz90+LlcLu8RAxZJ7+Oa/sVYy9pwPi7RiURCTG0ZNMw339u/Gz73NV0KdAAQFRWFqKgot2OB2O4wLy/Pb3tDkv6l0WyH2e6AWiaCijGhhOXDEh0AiDkOdjDwjDUHVV4YqExxrlu6FOiMRiP+9Kc/Yffu3aisrHRNCna6cOFCp65jMBhw/vx513vn1JHQ0FAkJCRg+fLluHz5smsoy9q1a5GUlISRI0fCbDbj7bffxrfffuvx+D1COsPR3Osqal2a8/HuVa6qKw/aJMeLuhToFi5ciL179+LBBx9EdHR0l7cuO3LkCG666SbX+2XLlgEQprrk5OSgrKzMbeyT1WrFU089hcuXL0OlUmH06NH45ptv3K5BiLe49oq4Yo6rL7XsBtb+NDDSNV2aAhYcHIwvvvjiqsM6eiqaAtZzTJkyBenp6Vi7dm2gswKgbX4q9WYwAGFSG8Q2AyBVAspgn+ahyWpHo9kOhUQEndgKWBr9cl9/8/cUsC6V6EJCQhAaGuqVDBDSHVar1W0BWG/heQZnCYCD73tcnRRSMRRSsVCFtTVvrUhV127r0vCS1157DStWrHCb70qIJ7q6OY5zX9c//OEPiImJca0OfODAAaSnp0OhUGD8+PHYsWMHOI5zm21w6tQpTJ8+HWq1GpGRkXjwwQddmzxdmR+xWITioiJwXKs2OlGX++46TdRqiElv3vawp+nST2716tUoKChAZGQkEhMT26xaShtXBxhjgMPm//uKpZ1urF+3bh3Onj2LUaNG4dVXXwUg1BTi4uKwbds2DBgwAAcOHMDvfvc7REdH495773Wdu3v3bmi1WuzatQuAUNWZOXMmbr/9dmzZsgVFRUVt9outr6/HzTffjIULF2LNmjUwmUx47rnncO+99+Lbb79tkx+LzQGpOhhijvPZptXXRNseek2XAp23d0onXuawAd8HYHnrG54CJJ2rRup0OshkMqhUKrdhSqtWrXL9PSkpCbm5ufjoo4/cAl1QUBDefvttV5V148aN4DgO//rXv6BQKDBixAhcvnwZjzzyiOucv//97xgzZgz++Mc/uo5t2rQJ8fHxOHv2LIYOHeqWH6vdAaPVAQkHwOa+Dp0vMcZc08B0ColQ5WJM6JDguraSM+lioFu5cqW380EIgM5tjpOamurWLpefn4/Ro0e7NWpfOabzxIkT+O6776BWt13braCgAEOHDnU7JpOIIZOIhV8aNghB5horGHsDx3Gw2BxgEAYNi5wDlnkHIKZA11Vd/hVVX1+Pjz/+GAUFBXjmmWcQGhqKY8eOITIyklZaCDSxVChdBeK+3dDZzXGCgoI8vrbBYMDMmTPx+uuvt/nsqgPO/TD160oiEQcHz1qGmDjsNMSkm7oU6H766SdMnToVOp0OhYWFeOSRRxAaGort27ejuLjYNcCXBAjHdboKGUhX2xzHqb3Nca6UkpKC9957DxaLxTXd7/Dhw25pxo4di08++QSJiYmQSNr/b986P67pX672Od9XW51EHAcHWPM0MDEAe0vAJV3SpbLwsmXLMH/+fJw7d86tunD77bdj3759Xssc6dtab45TXV2NIUOG4MiRI9i5cyfOnj2Ll19+uU3Aas9vfvMb8DyP3/3udzhz5gx27tyJv/zlLwBathhctGgRamtrcf/99+Pw4cMoKCjAzp078dBDD7mCW+v8nC0qRXlDE+wO/3dEuAYN84xWGvaSLgW6w4cP49FHH21zPDY2lpY1J53W1c1xrqTVavGf//wHeXl5SE9Px4svvogVK1YAgOsXcUxMDPbv3w+Hw4Fbb70VqampWLJkCYKDg127gLXOz7CkOJQUl7QaWuLPQOfcDaz17Agq0XVHl2ZGREREYOfOnRgzZgw0Gg1OnDiBQYMGYdeuXXj44Yd79FJINDOif3j//ffx0EMPoaGhwePNnx08j2qDFQAQIdILa9GpBvitOcBgscPo3CRHbBVWGpbIAVXfGaTfKzbHufPOO/Hqq6/CZhPGanEch+LiYjz33HO4++67vZIxQjzxzjvv4IcffsDFixexY8cO1xi5ruxw79wQR8zBLysLX0ns3LvatYIJqOraTV0KdKtXr4bBYEB4eDhMJhOysrKQnJwMjUaDP/zhD97OIyHXVF5ejgceeADDhw/H0qVLcc899+Ctt97q0rUczTFFwvHCwpcc59cxbHKpsBtYsEpGVVcv6VJXkk6nw65du7B//36cOHECBoMBY8eOxdSpU72dP0I65dlnn8Wzzz7rlWs5S3SS1quW+Hh5ptZEre/lDLA8L4yn82M++hKPAx3P88jJycH27dtRWFgIjuOQlJSEqKioli55Qnqxli0O/TfHtUNc8z6yzlWO/TA7oy/yqDzOGMOdd96JhQsX4vLly0hNTcXIkSNRVFSE+fPn+30ZdUJ8QSLiIJOIhKor4PdAxxiD3mRDndHasqQ6QJP7u8Gjn2BOTg727duH3bt3t1ns8ttvv8Xs2bPxzjvvYO7cuV7NJLm2K1d5Jl0XJJcgCACMjcIBPwc6juNgsTvAM6F0KeLEABx9qp3O3/9fPfoJfvDBB3jhhRfaXdH35ptvxvPPP4/333+fAp0fyWQyiEQilJaWIjw8HDKZjJoPvMVsEno7xXbAYfbrre1WKxyMwcQ54HDYAbsNgAlw9O6fLWMMVqsVVVVVEIlEPllLsD0eBbqffvoJf/7znzv8fPr06fjrX//a7UyRzhOJREhKSkJZWRlKS0sDnZ1eT2ieY+DAhNV9AUBu8HsnQJPVDruDoUYqhoxZAYcFEMsBad8YK6lSqZCQkOAarO1rHgW62tpaREZGdvh5ZGQk6urqup0p4hmZTIaEhATY7Xa3uaPEc2X1Juz8uRwJ0kbczA4BMg0w/Dd+z0duQTXyqxuRFh+MFOkloPgQEDoISPqV3/PibWKxGBKJxK81D48CncPh6HBCNCA8gN1u73amiOc4joNUKm2zCCrxjNFhgYkXQ+FogAJNgCoKCMCME6VSCRPfBINdBEWIFuCbAGtNQPLSF3gU6BhjmD9/focbQlssFq9kipBA0ZuE2T4hTC/s46oaEJB8qOXCV9NosQMKnXDQrA9IXvoCjwLdvHnzrpmGOiJIb9bQHOi0rkAXmPmlzkBndfCAPEQ4aDUKa9OJaSydpzz6F9u8ebOv8kFIj1DvDHR8gzDKNEAluvhQFRbfnAypWCT0kIglQpCz6PvU5H5/obWZCWnGGENdkxUi3g4VbxQOBijQiUWcEOQAocdXESz83dwQkPz0dgENdPv27cPMmTMRExMDjuOwY8eOa56zZ88ejB07FnK5HMnJycjJyfF5Pkn/YLbxsNh4KG11UEhFwsbRMs+XbfcJefNyRRTouiSggc5oNCItLQ3r16/vVPqLFy9ixowZuOmmm5CXl4clS5Zg4cKF2Llzp49zSvoDnjGMjtNhhM4sbHOojgjoJPofzlVj+7FLqNSbAUVzoLNQh0RXBLRVc/r06Zg+fXqn02/cuBFJSUlYvVrYym/48OH44YcfsGbNGkybNs1X2ST9RJBcgluGRwLnTgKXAARFBDQ/pfUmXK43YWSMDRHU89otvaqNLjc3t81SUNOmTUNubm6AckT6JGOl8Kc6PKDZUCuEcojBYqeqazf1qn7q8vLyNjMzIiMjodfrYTKZ2l1N1mKxuI3v0+vpNyJpX4PJBoWEg9zQHOgCXKILaj2WTtdcoqOqa5f0qhJdV2RnZ0On07le8fHxgc4S6aG++KkM//rmJOoaGoS2uaCwgOZHLRdWFzZY7K3a6BppuaYu6FWBLioqChUVFW7HKioqoNVqO9wbYPny5WhoaHC9evLGPSRwnENLVLZayCUiQBna7Q25u0stF+5vsNiFObecSNjf1WoIaL56o15Vdc3IyMCXX37pdmzXrl3IyMjo8By5XN7hlDVCnEw2B6x2HmH2WijU4oC3zwFAUHOJzmixAyIRINcIbXQWfUsJj3RKQEt0BoMBeXl5yMvLAyAMH8nLy0NxcTEAoTTWekrZY489hgsXLuDZZ5/FL7/8gn/84x/46KOPsHTp0kBkn/QhdU3CjIgwVifs2aDueJUef3FOA3PwTNgRzBncqOfVYwEt0R05csRtEc9ly5YBEObU5uTkoKyszBX0ACApKQlffPEFli5dinXr1iEuLg5vv/02DS0h3VZjEDqswlmtcEATHcDcCHRKKX5/czIkzhkS1PPaZQENdFOmTMHV9s9ub9bDlClTcPz4cR/mivRHNUYrJA4zdDAACOoRgY7jOEjErQYsK6jntat6VWcEIb5Sa7AiyFoFpUwsTJrviSv5KqhE11W9qjOCEF9JidLA3NgEtUXSI0pzTj9dqse5CgNGxGgx3Dmx31QfyCz1SlSiIwTAqFgdxoeaoZL1rEBX12RDcW0TKhstgLJ5XTpzPY2l8xAFOkIAYc23xjLh79qeE+i0zdPAGs02oTPCNZauMcA5610o0JF+r77JiqqqcvAWAyAS94ihJU4ahTBouNHcPJbO2SFB1VePUKAj/V5eST127j+C4tomodoa4BkRrbmV6ICW6quJdtvzBAU60u9VNVqgtZRBJRMDwT1rLrSzRGe0OGB38IAyWPjAXB+wPPVGFOhIv8YYQ5VBCHRBcgmg61mBTiEVQSYRvqaNZjuV6LqIAh3p1/QmO5hJD6WjEUqZFNDFBTpLbjiOg0YhgUomhtnuaNk7gtroPELj6Ei/Vtlohs58GSqZBCJtFCDpeQtA/HbSQIhFzTMkDMHCn1R19QiV6Ei/VtloQYi5WGifCx0c6Oy0yxXkgJYSnc0M2EwByU9vRIGO9GtV+ibozJeE9rkBPTPQuZHIWnYmo+prp1HVlfRrE0NNYMFSaDXaHjUjorUKvRn7z1dDIRXj9tRooUPCahQ6JHrQ4OaejAId8TuzzQGFVOx6zxgDF6BtBWPsl4BgJRA5JKBbG14NY0BRTZNrfTooQ4CGS4CpNrAZ60Wo6kr8ptZoxb9PlOLt7y/A5miZq3noYi0+PFyMohqjfzPEGFB5Rvh7eIp/7+2BYFXLkupWOw+oBggfNNUEMFe9CwU64hdnyvTYcqgIBZUG2HmGakPLzmxnKxpRWm/G9mOX8Z8TpTDbHH7JU+GFX1BTWw0bJ+uxHREAoJCKXSXgBpONAl0XUKAjPnfyUgO+OlUOm4MhIVSFBycPRLSuZTOju8bGYUxCMMQiDucrDXjvYJGwO72PFZ4+grMVBlTKBwLint2Ko1MKpboGk9U90F1l4VrSggId8alzFY345oywc9uYhGDcNTYWA9TuY9XUcgmmpETgvgnxCFFJ0Wi2Y9vRSyiuafJZvqwWM6TVQrVVm5Tms/t4i7P62mCyCdPAOBHgsNNqw51EgY74TI3Bgq9PC0EuPT4YWUPDr9rpEKFV4L6JCYgLUcJq57Ej77LwxfaB2oJjEPFWMGUI1BE9t9rqFNxcoqtvsgkrrDinglH1tVMo0BGfYRBKIvGhqmsGOSeFVIz/GhOLIZFqZA0Nd1XZvIrnYbyQCwAQxY0HJ+r5XwOtUgqlTCzsUAYIy70DQBPNee2Mnt0wQXq1MLUc909IgNXBQyTq/NANiViEGanRvhtyUv4TjPWVsIsUCB801jf38LKRMVqMitW1HFANAHCOSnSd1PN/lZFep/XObiIR5zZmrrNaBzmT1YGvTpWhyWrvfuZsZlgL9sJoceCyNh3x4SHdv6YftAn61PPqESrREa9ijOGzvFJEaOQYlxgCucTzIOdiMwN1hTh2/ATstTX46RzDhMGRECt1gDoCCE5oaavqrPPfwKivh1mihT16jDD1qzeiQOeRXvpTJj3VhWojLlYbUVLbhJGxuq4FOkMlUHwQqMoHeDvGcg6cMjfA3sRw0XoZgyPU4NBcwlGHA2EpQMRwICjs6tct+REoP4mQIDnGjbsXQxW9a/rUd79UorDGiJtSIpCoa26jszQCdkuPXHWlJ6FAR7zGwTN8f7YKADAmIcTzjgSrETi/G6g83TI+TBUKZUgi4mODsPtcPS7yNvByDkOVBqDhMmCoEl6FPwhBL3y4EPScjfWAUDIs/B64dER4P+gmaKMGQeuFZ/Ynk82B+iYbqg0WJIaFAnI1YDEIvxh62MrIPU2PCHTr16/HG2+8gfLycqSlpeFvf/sbJk6c2G7anJwcPPTQQ27H5HI5zGbfDzAlV3fycgPqmmxQycSYkORhlbLyDHB2Z8vSQxHDgPhJwkR7jkMUgJHaenz3SyW+bAKkQ2ORNJIDaguAyl+AuostQe/iPqF0pwwBHFZAf1kYcwaAJV4HLr79/1s9XWiQDIAwlQ6AsImPxQAYKdBdS8AD3Ycffohly5Zh48aNmDRpEtauXYtp06YhPz8fERER7Z6j1WqRn5/veh+oCeGkhdnmwMELQnvR5EEDOl9lZQy48B1QfEh4rw4HUm4HtDFtkqbF6VDdaMHJyw348mQZ7p+YgNCoVCAqVQiQVflA1S9AXRFgrBZeTkFhwKCb8FVZECx5pZg8aACidIruPrZfDbgy0AWFAzUFQnAnVxXwQPfmm2/ikUcecZXSNm7ciC+++AKbNm3C888/3+45HMchKirKn9kk13C4sBYmqwMD1DKkth4GcTUOG3DmP0KAAoCBGUDiDcKA2HZwHIebhkWg1miFwWJ3692FVAnEpAsvq1Go1lobAbFMCAjqSBisDpzNuwieMVw/5BrteT2Qs0RXY7QKK744t2U0VAQwV71DQAOd1WrF0aNHsXz5ctcxkUiEqVOnIjc3t8PzDAYDBg4cCJ7nMXbsWPzxj3/EyJEj201rsVhgsbRMINfracqMt1nsDpy83AAAuD45rHNj5iwG4NTHgL5MCGwptwNRo655mljE4Y60aHDgoJR1UGqUBQHhQ9scPnW5ATxjiA1WIkzd+xrvg1UyiDgOVjsPg8UOjbq5xmOsEkrGVLPpUEDH0VVXV8PhcCAy0n3D4MjISJSXl7d7TkpKCjZt2oTPPvsM7733HnieR2ZmJi5dutRu+uzsbOh0OtcrPp7aMrxNLhHjt5MG4rrkMCSFBV37BGM1cOwdIchJFUDafZ0Kck4qmcQtyDU0XXuamNnmwPHiegBAWnxwp+/Vk4hFnGvOa63RCihDAZFEKBnTrmBXFfCqq6cyMjKQkZHhep+ZmYnhw4fjn//8J1577bU26ZcvX45ly5a53uv1egp2ANBUK/RC1l4QJoaLxEIVb8AQIDoNkKk8upxOKcXEpNBrJ6y9CPz8qTAkQhkCjL7XvYfUQycvNeDbXypx87AIpMZ1XGU+WlQHs02oWg+JUHf5foEWpVO4tj+ESCS0PTaWCz2v3fh37OsCGujCwsIgFotRUeHexlBRUdHpNjipVIoxY8bg/Pnz7X4ul8shl/e+aorP8DxQfAAo3A8wvtVxh9Cu1XAZKPpB6PFMyLjqrvXOPVEjNJ1s1C/NE3pWGS9sKzjqbo8D6pUMFjt4xvDNmQowMIyOC26TplJvxpFCocSTObiTVeseatrIK74X6ojmQFch9FSTdgW06iqTyTBu3Djs3r3bdYzneezevdut1HY1DocDJ0+eRHR07xr8GRAOO3DqE+Di90KwCR0EpP4amPw4MPERIOU2QBMppCvcDxz+H6EE1oGzFQa8f7AYu05fozGcMaDgOyD//4T7Ro4A0u7vdpADgMmDQpGeEAwA2H2mEnvyK91WLwaAU6VC29yQSDWSe3Fprl3q5sDX2H5TDxEEvOq6bNkyzJs3D+PHj8fEiROxdu1aGI1GVy/s3LlzERsbi+zsbADAq6++ismTJyM5ORn19fV44403UFRUhIULFwbyMXo+3iEEudoLQrtOym3CsIzWgsKA6HSg+ixwbpfQ7nNiKxAzBhh8k9voe4vdgX3Ng4M1iqv8N7JbhJ7V6nPC+8TrhJ5VLzWccxyHKUPDIReLcOhiLY4X1+NchQHJEWrcMCQMErEIU4ZGIEgm6bVtc+2xOXiIOQ4i5zCcxlLqkLiKgAe6OXPmoKqqCitWrEB5eTnS09Px1VdfuTooiouLIWq1jE5dXR0eeeQRlJeXIyQkBOPGjcOBAwcwYsSIQD1Cz8eYELhqLwhV0dR7gJCB7aflOGH/hJBE4MJe4PJRoPS4MDA3ZbpQCgRw4HwNDBY7glVSjBvYweBgQyVw+jOh80EkEc73oNOhsziOQ2ZyGKJ0Cnz7SyUazXbkldTjhuYhJCIRh0mDBnj9voHy0eESlDWY8ZtJCQhXRwj/tjaz8IuJ2unaxTHWv9Zi1uv10Ol0aGhogFbb2yYBdVFpnlBt5DihXSxsSOfPrSsC8r9s2UM0Og2XBkzGxyeqwRjw63FxiA+9ogrqsAOXDgvTrniHMFVp1N3tDgL2NruDx8VqI8oazLhhSFifHEy+7UgJLtWZcOvISIyM0Qk92A2XgeEzffKLxN988R0NeImO+FhTLXB+l/D3pCzPghwglPzGLwAu7gUuHYHt0nFcPnwIscphGDB4rHuQsxqBitNCkDML4+oQNgQYepsQ7PxAIhZhSKQGQyI1frlfIERoFbhUZ0JlowUjAUATIwQ6fWmfCHS+QIGuL+MdwJl/CyWskIFAwuSuXUciA4b8CixsKE5/uxW8tQ5DWB5Say8C+9VCp4Ld2hLcACGwJWUJ7YB9sFQVSBEaoa20St88EN5ZUtZfDlCOej4KdH3ZpSPCoFyJHBg2A+A4mKwOVDVaYLE7EKySIVzT+aE3XMhAhNz4BM4dzsWtIWUQW8qFUpy11X6smiggejQQmSoESOJ1rkBnsIDnWUuHhLFKGDx8lSFB/RUFur7KrBfayAAg+RYUGSU4/PMllNS27KyVGqvD1BFCpw9jDAVVBsSFqNqsCGy02F0LVCaEaxAzbSokYpFQimuqFibUS+TCYpBSJYhvhahkkElEsNp51BitCFfrALlGWJtOf1noSCJuKND1VQW7AYcNNnU0dleH40x5S7UmRCVstBLWqjRXY7TiPyfKwHFApFaBKK0C4ITqkauHrzm9RNzcCy6R+aWDgbgTiThE6xQoqmlCab1J+LkEJwAVPwudRxTo2qBA1xfVXgAqfwED8IV5NC7WG8BxwhzPcQNDoFW0rdqYrA6EqWWoNlhR3mBGeUPL+n4cB1yoMnhUzSW+NShcDZVMjBBVc/NAyEAh0NUXBTZjPRQFur7GYRfGzAHg4iYgNXgoqn+pxO2p0YgJ7rhaGR+qwoMZiWg021Bc24T6JhsYE+awDgxTtRscSeCkxwcDrQdABzePi9SX0dLq7aBA19eUHBKGlMiCgMTrMViqQEKoClJx52b7aRRSYWwW6V2UwcLLVA/UlwBhyQHOUM9C2x32JaZ68EUHUFhjRGN8lrAEEtDpIEd6F8YYqg0WVBuah5mEJAl/1rS/wEV/Rt+AvqRgNy7X6JFvDsGHhWrYr5jcTvqWw4V1eDe3CD9erBUOOAeD15xv2VyIAKBA13fUFKCh+GdcqjfjYsh1yEwOb+kdJX1SbIjQ5lpU0wSeZ0I7nVgiDDOh5dXd0DehL3DYYfllJ85VNqJMPQqDk5IwIqafzOPtx6K1CsilIphtDlQ0moUg17zoAqrPBjZzPQwFuj6AL/kR5wuL0QQFTHGZmJISHugsET8QiTgkNM81vlDVPDslLEX4s+I0VV9boUDX25nqUHJ8F/RmO0oHZGB62kDqfOhHnAuJnq1oFHZFCxsqlOxMdTT3tRX6RvRmjIH/5f+gN5qgl0dhzPjrXVvikf5hUJgaUjGH+iYbKhstwmyV8OYl1ctPBTZzPQgFut6s7ARE9UUYEReKQdffi5Roapfrb2QSERKbd15zVV8jm5dqqvxZGDxMaMBwb8VMdeAKhL02xIOnYEh8QoBzRAJlbEIIRkRrkTigeavJkERhgYWmGqDsJyB+QkDz1xNQia434h04+937KKmsB6+JAWLHBzpHJIBigpUYFK5u2d2M41qC26XDws5v/RwFul6o8PCXqC0rRJHegbK4W4X9PQmBsFE3Y0yovspUwmKoZXmBzlbA0Teklyn95RDKT+0FAASlzUJsFG3zSAR5JfXYvL8Q5yoNwuKbA68TPij8od+31VGg60Uqin5BSe4nYAAkiRlIHzMx0FkiPYjZ5oDZ5sCB89XC9L+YMYAyRFgB+sLeQGcvoCjQ9RIVhWdw8bv/Bc/zYBEjMCZrdp/c4Yp03ZiEYATJxahrsuHghVpAJAaG3ip8ePkoUFMQ2AwGEAW6XsBy+SQK9+SAOWwQhSVj/LQHIJGIr30i6VfkEjFuHiYsjX+kqBZFNUZhSljsOCGBc4/dfogCXU9mtwJnv4b87OdIClVAEjkMY29fAJmMBgWT9iVHqDEyRgvGgM9/KkOF3gwMvhnQxQntdCc+ABr734T/HhHo1q9fj8TERCgUCkyaNAk//vjjVdNv27YNw4YNg0KhQGpqKr788ks/5dQ/GO9A4enDqNu7XqhyAIgYdTPG3/4QpFJa6Zdc3c3DIhAbooTVzuPjo5dgYc0blweFARYDcPxdoPR4v5oLG/BA9+GHH2LZsmVYuXIljh07hrS0NEybNg2VlZXtpj9w4ADuv/9+LFiwAMePH8fs2bMxe/ZsnDrV+6e7NNZX4ZdDO/HjR6+jLPdDXLxUBrtMC4y+FxiUBU5E1VVybRKxCLPSY5AQqkJqrA5yiRiQqcDGPAAWnCBsiZj/FXDsf4HKX4Tl9/s4jrHAhvVJkyZhwoQJ+Pvf/w4A4Hke8fHx+P3vf4/nn3++Tfo5c+bAaDTi888/dx2bPHky0tPTsXHjxmveT6/XQ6fToaGhAVqtf6dMMd4Bm9UCKbOAs1sAUz0ulZWhpqIElpoSOJrqWhJLFdAmZ2LIuFsgk9P6/8RzDp6BMeZal7CgyoDv8yuQivOIqz8MlYSHVCyCVKaAODQR0EQDQeHC1olyDSBRCB0afu708sV3NKBTwKxWK44ePYrly5e7jolEIkydOhW5ubntnpObm4tly5a5HZs2bRp27NjRbnqLxQKLpWUMkV6v71zmjNXA6R2u4v2FagOq9GZwEP7zCJr/zhjGJIRALuYAMBRWG1CuNwvnMgYGgGMOwG4FAzA2IVj4LQvAXmNEk3PHLY6DKGQgQpPSED9sPBQK2iOVdJ1YxAFoCVIFlQbUmRzYhyRIJFGIbjyFcONZyBz1EHHlSI3VQSUTQkJpgwkVejMYRGAiKXiRRLgWJwLjOIyM0SFILgU4Ecr1ZmF7zM4YNiMgW2QGNNBVV1fD4XAgMjLS7XhkZCR++eWXds8pLy9vN315eXm76bOzs7Fq1SrPM+ewAYaqlvcGA3jjVQZdmkWAsyfUagSzmN0+bl1stkEEuSwIUOgQpFJCHaWCNioRkbGDoFCqPM8rIZ2QlRKOxLAglDWYUalXokGdiVLzBCjMldBYKzAqggN4PWBphN3RBLONB8ADaKdqa+IBhxA+mMEEiDv5S9lh89rzeKLPT+pfvny5WwlQr9cjPj7+2ieqQoG0+1zF9lCTHQqrA+A4cAA4kQjCbzgOHAeIg+SAWAyAQ5jFBrWdCePcXOnFkMgUkCtUQodC83XDm1+E+JpcIsbQSA2GRmpcxxhjsNgHw+bgoZRJgOb5sromCyRNJoC3gXNYwRw2MJ4HB6GWIlXLADEAxqC22AD5FaGkoxYxdYSPnu7qAhrowsLCIBaLUVHh3t1dUVGBqKiods+JioryKL1cLoe8K21cEjkQmuR6GxwCBHfyVLUGUHt+R0L8juM4KKRiKKTuHV06lRw6Vee+N5prJwm4gPa6ymQyjBs3Drt373Yd43keu3fvRkZGRrvnZGRkuKUHgF27dnWYnhBCAl51XbZsGebNm4fx48dj4sSJWLt2LYxGIx566CEAwNy5cxEbG4vs7GwAwJNPPomsrCysXr0aM2bMwNatW3HkyBG89dZbgXwMQkgPFvBAN2fOHFRVVWHFihUoLy9Heno6vvrqK1eHQ3FxMUStliHKzMzEli1b8NJLL+GFF17AkCFDsGPHDowaNSpQj0AI6eECPo7O3wI5jo4Qcm2++I4GfGYEIYT4GgU6QkifR4GOENLnBbwzwt+cTZKdngpGCPEr53fTm90H/S7QNTY2AkDnZkcQQgKmsbEROp3OK9fqd72uPM+jtLQUGo2mVyxF7pyyVlJS0u96ifvrs/fX5wZanv306dNISUlxG1rWHf2uRCcSiRAXFxfobHhMq9X2u//0Tv312fvrcwNAbGys14IcQJ0RhJB+gAIdIaTPo0DXw8nlcqxcubJrK7D0cv312fvrcwO+e/Z+1xlBCOl/qERHCOnzKNARQvo8CnSEkD6PAh0hpM+jQNcDrF+/HomJiVAoFJg0aRJ+/PHHq6bftm0bhg0bBoVCgdTUVHz55Zd+yqn3efLsOTk54DjO7aVQdHKbvR5k3759mDlzJmJiYsBxXIdbdba2Z88ejB07FnK5HMnJycjJyfF5Pn3B02ffs2dPm585x3Ed7vrXEQp0Afbhhx9i2bJlWLlyJY4dO4a0tDRMmzYNlZWV7aY/cOAA7r//fixYsADHjx/H7NmzMXv2bJw6dcrPOe8+T58dEGYLlJWVuV5FRUV+zLF3GI1GpKWlYf369Z1Kf/HiRcyYMQM33XQT8vLysGTJEixcuBA7d+70cU69z9Nnd8rPz3f7uUdEeLibGCMBNXHiRLZo0SLXe4fDwWJiYlh2dna76e+99142Y8YMt2OTJk1ijz76qE/z6QuePvvmzZuZTqfzU+78AwD79NNPr5rm2WefZSNHjnQ7NmfOHDZt2jQf5sz3OvPs3333HQPA6urqunUvKtEFkNVqxdGjRzF16lTXMZFIhKlTpyI3N7fdc3Jzc93SA8C0adM6TN9TdeXZAcBgMGDgwIGIj4/HrFmz8PPPP/sjuwHVV37m3ZGeno7o6Gj86le/wv79+z0+nwJdAFVXV8PhcLg2AnKKjIzssA2ivLzco/Q9VVeePSUlBZs2bcJnn32G9957DzzPIzMzE5cuXfJHlgOmo5+5Xq+HyWQKUK78Izo6Ghs3bsQnn3yCTz75BPHx8ZgyZQqOHTvm0XX63eolpPfKyMhw2783MzMTw4cPxz//+U+89tprAcwZ8ZWUlBSkpKS43mdmZqKgoABr1qzBu+++2+nrUIkugMLCwiAWi1FRUeF2vKKiAlFRUe2eExUV5VH6nqorz34lqVSKMWPG4Pz5877IYo/R0c9cq9VCqVQGKFeBM3HiRI9/5hToAkgmk2HcuHHYvXu36xjP89i9e7dbyaW1jIwMt/QAsGvXrg7T91RdefYrORwOnDx5EtHR0b7KZo/QV37m3pKXl+f5z7xbXRmk27Zu3crkcjnLyclhp0+fZr/73e9YcHAwKy8vZ4wx9uCDD7Lnn3/elX7//v1MIpGwv/zlL+zMmTNs5cqVTCqVspMnTwbqEbrM02dftWoV27lzJysoKGBHjx5l9913H1MoFOznn38O1CN0SWNjIzt+/Dg7fvw4A8DefPNNdvz4cVZUVMQYY+z5559nDz74oCv9hQsXmEqlYs888ww7c+YMW79+PROLxeyrr74K1CN0mafPvmbNGrZjxw527tw5dvLkSfbkk08ykUjEvvnmG4/uS4GuB/jb3/7GEhISmEwmYxMnTmQHDx50fZaVlcXmzZvnlv6jjz5iQ4cOZTKZjI0cOZJ98cUXfs6x93jy7EuWLHGljYyMZLfffjs7duxYAHLdPc4hE1e+nM86b948lpWV1eac9PR0JpPJ2KBBg9jmzZv9nm9v8PTZX3/9dTZ48GCmUChYaGgomzJlCvv22289vi8t00QI6fOojY4Q0udRoCOE9HkU6AghfR4FOkJIn0eBjhDS51GgI4T0eRToCCF9HgU60ufl5OQgODjY9f6VV15Benq66/38+fMxe/Zsv+eL+A8FOuI18+fPB8dxeOyxx9p8tmjRInAch/nz57ul93aASUxMxNq1a92OzZkzB2fPnu3wnHXr1rktTT5lyhQsWbLEq/kigUWBjnhVfHw8tm7d6rZOmtlsxpYtW5CQkBCQPCmVyqsuva3T6dxKfKTvoUBHvGrs2LGIj4/H9u3bXce2b9+OhIQEjBkzplvXbq+kNXv2bFcpccqUKSgqKsLSpUtdm6gAbauuV2pdspw/fz727t2LdevWua5x8eJFJCcn4y9/+YvbeXl5eeA4rs8vE9UXUKAjXvfwww9j8+bNrvebNm3CQw895PP7bt++HXFxcXj11Vddm6h4at26dcjIyMAjjzziukZCQkKbZwKAzZs348Ybb0RycrK3HoH4CAU64nUPPPAAfvjhBxQVFaGoqAj79+/HAw884PP7hoaGQiwWQ6PRICoqqkuLkep0OshkMqhUKtc1xGIx5s+fj/z8fNd2jDabDVu2bMHDDz/s7ccgPkBLqROvCw8Px4wZM5CTkwPGGGbMmIGwsLBAZ6tbYmJiMGPGDGzatAkTJ07Ef/7zH1gsFtxzzz2BzhrpBCrREZ94+OGHkZOTg//93//1WqlHJBLhylXFbDabV67dGQsXLnR1tGzevBlz5syBSqXy2/1J11GgIz5x2223wWq1wmazYdq0aV65Znh4uFu7m8PhaLNxt0wmg8Ph6NZ9OrrG7bffjqCgIGzYsAFfffUVVVt7Eaq6Ep8Qi8U4c+aM6+8daWhoQF5entuxAQMGID4+vk3am2++GcuWLcMXX3yBwYMH480330R9fb1bmsTEROzbtw/33Xcf5HJ5l6rMiYmJOHToEAoLC6FWqxEaGgqRSORqq1u+fDmGDBnSb/ds6I2oREd8RqvVQqvVXjXNnj17MGbMGLfXqlWr2k378MMPY968eZg7dy6ysrIwaNAg3HTTTW5pXn31VRQWFmLw4MEIDw/vUr6ffvppiMVijBgxAuHh4SguLnZ9tmDBAlitVr/0IhPvoaXUCfHA999/j1tuuQUlJSVtNpUmPRcFOkI6wWKxoKqqCvPmzUNUVBTef//9QGeJeICqroR0wgcffICBAweivr4ef/7znwOdHeIhKtERQvo8KtERQvo8CnSEkD6PAh0hpM+jQEcI6fMo0BFC+jwKdISQPo8CHSGkz6NARwjp8yjQEUL6vP8Pt5YRZm9mxO8AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from ml_utility_loss.loss_learning.visualization import plot_density_3\n", + "\n", + "_ = plot_density_3(y2[\"pred\"], next(iter(y2[\"y\"].values())))" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "745adde1", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T16:23:14.886112Z", + "iopub.status.busy": "2024-07-23T16:23:14.885679Z", + "iopub.status.idle": "2024-07-23T16:23:15.059028Z", + "shell.execute_reply": "2024-07-23T16:23:15.057820Z" + }, + "papermill": { + "duration": 0.195535, + "end_time": "2024-07-23T16:23:15.062393", + "exception": false, + "start_time": "2024-07-23T16:23:14.866858", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from ml_utility_loss.loss_learning.visualization import plot_box_3\n", + "\n", + "_ = plot_box_3(y2[\"pred\"], next(iter(y2[\"y\"].values())))" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "eabe1bab", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T16:23:15.110519Z", + "iopub.status.busy": "2024-07-23T16:23:15.109657Z", + "iopub.status.idle": "2024-07-23T16:23:15.371002Z", + "shell.execute_reply": "2024-07-23T16:23:15.369821Z" + }, + "papermill": { + "duration": 0.282835, + "end_time": "2024-07-23T16:23:15.373246", + "exception": false, + "start_time": "2024-07-23T16:23:15.090411", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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v38/w4cP9ziuWbNm9OnTh6eeeoqtW7eyc+dOnnjiiXytm++//54FCxZw5MgRpk2bxrZt2zy8mr7m9ddf59133+XDDz/k6NGj7Nq1i48++giAXr160bp1ax599FF27drFtm3bGDp0KN26dcsztSsIi8XCK6+8wssvv8yXX37J8ePH2bJlC//9738BVQHGx8ezePFijh8/zocffsiyZcs8zhEVFcXJkyfZs2cPly5dwmq1FnrNu+66i8aNGzNs2DD+/PNPNm3axJQpU4Ci86ubNm3K6tWr2bx5MwcPHuSpp57yUJTFeb/LjCJXC8uQxYsXC5PJJBYsWCD++usv8eSTT4rQ0FCRmJiY7/ht27aJl156SXz77bciPDzcY7G5pOfMD2+dDEIIkZ6eIfb8uV9cTk4VTqer2MdVBg4fPiw6duwo/Pz8BCAOHTokhg8fLkJCQkRoaKh45plnxMSJEz0WrYcNGyYGDBggpk6dKmrUqCECAwPFk08+KbKysop1zdTUVPHYY48Jf39/ERYWJt555508zo4LFy6Ivn37CrPZLOrXry++/PJL0aBBgzxOhjlz5oi77rpLmM1mERUV5eHtdS+M7969W9u2du1aAYgrV65o2z7//HMREhJS7Hs2b9480axZM2E0GkVERIQYO3astu/06dOif//+IiAgQAQFBYn/9//+n0hISND25+cAeP/990WDBg20506nU/zrX/8SDRo0EEajUdSvX1+8/fbb2v4JEyZo933QoEHi/fff95A/KytLPPDAAyI0NFQA4vPPPy/yNR08eFDcfvvtwmQyiebNm4v/+7//E4BYtWqVECL/eymE6jAYMGCACAwMFLVr1xZTpkwRQ4cOFQMGDNDGFOf9zs1170Xt0KGDePbZZ7XnTqdTREZGiunTpxd5bO4Pui/O6aYkCi4zM1P8uU9VcDZH4V5Eie8gh5dP4ls2btwoAHHs2LEKuf517UW12Wzs3LmTXr16adt0Oh29evUiLi6u0pzTG9ymvC/W4SSS8mbZsmWsXr2aU6dOsWbNGkaNGsXtt99O48blsxZcFlSYgrt06RJOp1Nz2bsJCwsjISGhXM9ptVpJSUnxeJQE91KFyyVu6LSt+Ph4AgMDC3yUJpyhPChM9j/++KOixSsR33zzTYGv6eabbwYgNTWVZ599lubNmzN8+HCio6P56aefKljy0iHLJQHTp0/njTfeKPV5dIqCgpqy5RKgv0FrX0ZGRrJnz55C9/uKsvghKUz2OnXq+Px65UH//v094tBy4g5ZGTp0KEOHDi1PscqcClNwNWvWRK/Xe3hbABITEz2CDcvjnJMmTWL8+PHa85SUlCJDHQpCp7s2TdVzY2o4g8FAkyZNKlqMEnM9y14QQUFBHoHFNwoVNkU1mUy0a9fOI9bH5XIRGxubJzK9rM9pNpsJDg72eJQUbR3OBwG/EomkdFToFHX8+PEMGzaM9u3b06FDB2bPnk16ejojRowAVJO5Tp06TJ8+HVCdCAcOHND+P3fuHHv27CEwMFD71S3qnGWNPoejQQghezRIJBVIhSq4QYMGkZSUxNSpU0lISKBt27asWrVKcxLEx8d7BAOeP3+eW2+9VXs+a9YsZs2aRbdu3Vi3bl2xzlnW6HQKAgWBuKHX4SSSyoAibmR3XwGkpKQQEhJCcnJysaerWVlZnDx5koYNG6IzGHG4BEadDqOhwpNFJJLrkpzfqdxtA4v7HZXfvjJAlz0tdcrfDomkQpEKrgzI6UmtqgaybDojKS2y6cx1ik5RrisrTjadqXrIpjMqUsGVETotXKSCBZFIyhDZdOYGRaeosXAOpwuXS5Trwxtk0xnZdMZNVWw6I1O1yggFOJig5rSaDHp05ZjVcHNksLYOWBQffPABR44coVWrVvzzn/8EoFq1atStW5fvv/+eGjVqsHnzZkaNGkVERAQPPfSQdmxsbCwWi4V169Zx6tQpRowYQY0aNTy+iAUxYcIE1q9fz08//UTt2rWZPHkyu3bt8phWDR8+nPPnz7N27VqMRiPjxo3Lt6z4a6+9xowZM/jggw/46quvePjhh9m3b59H0ctp06Yxe/Zs6tevz+OPP84jjzxCUFAQH3zwAf7+/jz00ENMnTqVuXPnFin73LlzGT9+PDNmzODuu+8mOTmZTZs2Aapiciu39evX43A4ePbZZxk0aJAWygRqGe/ly5ezYsUKrly5wkMPPcSMGTO0ezdp0iTmz5/P+++/T5cuXbhw4QKHDh3Sjg8KCmLhwoVERkayb98+nnzySYKCgnj55ZcZNGgQ+/fvZ9WqVaxZswaAkJCQQl+T0+lk4MCB1K9fn61bt5KamsqLL76Y79iJEyfy7rvvcuutt2KxWMjKyqJdu3a88sorBAcH88svvzBkyBAaN26slT0vzvtdJvi+yMn1T0nLJeUs7eJ0usT2k3+LbScvid2nL4s/z1wtt4e39ehk0xnZdKaqNp2RFlwZodMptI4Mwe5yYdApmAz6cr12aZkzZw4LFiwgPj6ezMxMbDZbnl/bwprONGhQcDXi8mg6kzthvrI0nYmOjgZ803Tmww8/5Pjx46SlpeFwOEqVYljapjNvv/023333HefOncNms2G1WrXPhmw6U0UxGBQ1s0FR/5bXo7TIpjMFI5vOyKYzkmy08knC+8X/8kQ2nSk+sulMXipz0xk5RS1DlOx4OKcQuIQoV0eDN+RsOhMYGEjTpk358ssv+e2332jYsCFfffUV27dvp2HDhh7HuZvOTJkyhVOnTpWo6UyNGjWoXbs2r776aoFNZ+bOnYvBYOD5558vsOlM+/bt6dKlC9988w3btm3TGrSUBa+//jpPP/00tWvX5u677yY1NZVNmzYxduxYj6Yzs2fPxuFwMHr06BI3nTGZTNx+++0kJSXx119/MXLkSI+mM9HR0fzyyy+FNp2pW7cuQUFBmM3mAq+Zs+nMO++8Q2pqqldNZ5YuXcrmzZupVq0a7733HomJiZpCL877XVZIC66McU8ZK3PA70svvYRer6dly5bUqlWL3r17c//99zNo0CBiYmL4+++/GT16dJ7jevbsSdOmTenatSuDBg2if//+vP7668W65syZM7njjju499576dWrF126dPFYbwP4/PPPiYyMpFu3btx///2MGjWK2rVr5znXG2+8weLFi7nlllv48ssv+fbbb4ttLZWEYcOGMXv2bD755BNuvvlm+vXrx9GjRwFVGfz0009Uq1aNrl270qtXLxo1asSSJUu8usZrr73Giy++yNSpU2nRogWDBg3S1uj69+/PCy+8wJgxY2jbti2bN2/mtdde8zj+gQceoE+fPvTo0YNatWrlCdvIjV6vZ/ny5aSlpREdHc0TTzzBq6++CpAnDzQ3U6ZM4bbbbqN37950796d8PDwPFkuxXm/ywKZbJ8PpU22z/mBcLoEVocTBbAY9bJ8ko9RFIVly5b5PG1Mok49u3TpwrFjxyqkL4Mvku3lFLWM0SloZcyFuNa3QSKpbCxbtkxbojh27BjPPfecbDojKRzlOstL9QWy6UzlQzadkZQZOp2C05ntSS2/cLgKQzadqXzIpjMS77Fnwbq3IfoJsORd/Haj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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#\"\"\"\n", + "from ml_utility_loss.loss_learning.visualization import plot_grad, plot_grad_2, plot_grad_3\n", + "import matplotlib.pyplot as plt\n", + "\n", + "#plot_grad_2(y, model.models)\n", + "for m in model.models:\n", + " ym = y[m]\n", + " fig, ax = plt.subplots()\n", + " plot_grad_3(ym[\"error\"], ym[\"grad\"], name=f\"{m}_grad\", fig=fig, ax=ax)\n", + "#\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "54c0e9f3", + "metadata": { + "papermill": { + "duration": 0.018348, + "end_time": "2024-07-23T16:23:15.410624", + "exception": false, + "start_time": "2024-07-23T16:23:15.392276", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "accelerator": "GPU", + "celltoolbar": "Tags", + "colab": { + "authorship_tag": "ABX9TyOOVfelovKP9fLGU7SvvRie", + "gpuType": "T4", + "mount_file_id": "17POSGAvge8y9DW9WGs2jLkibaRjToayg", + "provenance": [] + }, + "kaggle": { + "accelerator": "gpu", + "dataSources": [], + "dockerImageVersionId": 30648, + "isGpuEnabled": true, + "isInternetEnabled": true, + "language": "python", + "sourceType": "notebook" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + }, + "papermill": { + "default_parameters": {}, + "duration": 1479.731674, + "end_time": "2024-07-23T16:23:18.208479", + "environment_variables": {}, + "exception": null, + "input_path": "eval/iris/tab_ddpm_concat/1/mlu-eval.ipynb", + "output_path": "eval/iris/tab_ddpm_concat/1/mlu-eval.ipynb", + "parameters": { + "allow_same_prediction": true, + "dataset": "iris", + "dataset_name": "iris", + "debug": false, + "folder": "eval", + "gp": true, + "gp_multiply": true, + "log_wandb": false, + "param_index": 0, + "path": "eval/iris/tab_ddpm_concat/1", + "path_prefix": "../../../../", + "random_seed": 1, + "single_model": "tab_ddpm_concat" + }, + "start_time": "2024-07-23T15:58:38.476805", + "version": "2.5.0" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/iris/tab_ddpm_concat/1/model.pt b/iris/tab_ddpm_concat/1/model.pt new file mode 100644 index 0000000000000000000000000000000000000000..2e8272da81061ae3e639725f99e96da941612148 --- /dev/null +++ b/iris/tab_ddpm_concat/1/model.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b00d1449e3c7b38b1ed93ffa1adce3950c0a7b88d9be7a6d3c5e665a111f4ff4 +size 1811678 diff --git a/iris/tab_ddpm_concat/1/params.json b/iris/tab_ddpm_concat/1/params.json new file mode 100644 index 0000000000000000000000000000000000000000..f7d9d222aa88f08a148fe83399adc6f657cab573 --- /dev/null +++ b/iris/tab_ddpm_concat/1/params.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3f4c9fb8a783ba2afd862721012e99b0875b9e45c40935f3eecf2f741aba8ad +size 1938 diff --git a/iris/tab_ddpm_concat/1/pred/error.csv b/iris/tab_ddpm_concat/1/pred/error.csv new file mode 100644 index 0000000000000000000000000000000000000000..22ff2a11a6fd3ddc942f8b36226e357619486e86 --- /dev/null +++ b/iris/tab_ddpm_concat/1/pred/error.csv @@ -0,0 +1,201 @@ +,tab_ddpm_concat +0,-0.025151208 +1,0.08402753 +2,0.0020192266 +3,-0.09499478 +4,-0.021664426 +5,0.09863266 +6,-0.029855132 +7,-0.09322536 +8,-0.012412831 +9,-0.21375245 +10,-0.013117075 +11,-0.013055325 +12,-0.012957603 +13,-0.12948981 +14,0.009472072 +15,0.06934965 +16,-0.012779221 +17,-0.02341488 +18,-0.017143965 +19,-0.06560391 +20,-0.025151253 +21,0.22075355 +22,-0.0050598383 +23,-0.037721932 +24,-0.021583632 +25,0.033727586 +26,-0.02899915 +27,-0.08266801 +28,-0.012401417 +29,-0.007123947 +30,0.025736332 +31,-0.012452304 +32,-0.012977377 +33,0.036462486 +34,-0.1578719 +35,-0.06251788 +36,-0.012779117 +37,0.07975155 +38,0.004424274 +39,-0.06966251 +40,0.017612845 +41,0.023266852 +42,-0.040749848 +43,0.12553692 +44,-0.019746542 +45,0.02335918 +46,-0.06185192 +47,-0.087436676 +48,-0.012829274 +49,0.044102788 +50,-0.03270811 +51,0.07885826 +52,-0.012977332 +53,0.086625576 +54,-0.14750737 +55,-0.021511316 +56,0.1684329 +57,0.12605613 +58,-0.06545907 +59,0.040613353 +60,-0.021112174 +61,-0.024552226 +62,-0.03979206 +63,-0.059625506 +64,-0.041879117 +65,0.023034394 +66,0.0057066083 +67,-0.06526369 +68,-0.0057417452 +69,-0.015447736 +70,0.028568625 +71,0.11110562 +72,-0.0072179437 +73,-0.045500576 +74,-0.098611295 +75,-0.115777075 +76,-0.08001745 +77,0.02682048 +78,0.006806791 +79,-0.056551516 +80,-0.058875978 +81,-0.023736 +82,-0.045610964 +83,-0.049620807 +84,0.018131316 +85,0.0057379603 +86,0.015449643 +87,-0.032814324 +88,0.14950942 +89,-0.078780234 +90,-0.005230725 +91,-0.007696688 +92,-0.009287119 +93,-0.06052059 +94,-0.10953903 +95,-0.1329493 +96,-0.023317695 +97,-0.0038463473 +98,-0.013268709 +99,-0.07374209 +100,-0.0727894 +101,-0.008526325 +102,-0.043916285 +103,-0.043091238 +104,0.05631256 +105,0.04456687 +106,-0.053412974 +107,-0.02821505 +108,0.1648315 +109,0.046548486 +110,0.026997745 +111,0.013814449 +112,-0.04905677 +113,0.030449092 +114,-0.16068703 +115,-0.10854113 +116,0.2241113 +117,0.047638476 +118,0.0069133043 +119,-0.0627256 +120,-0.02095297 +121,-0.0023570657 +122,-0.032120883 +123,-0.036732495 +124,-0.049354017 +125,0.041145742 +126,0.048760474 +127,0.017163754 +128,-0.13031965 +129,-0.068059206 +130,-0.035722136 +131,-0.08359343 +132,-0.050236285 +133,-0.030219376 +134,-0.08723521 +135,-0.0112046 +136,-0.09177357 +137,0.013326526 +138,-0.030837476 +139,0.18294656 +140,-0.093507886 +141,0.09990114 +142,0.04006064 +143,-0.07684934 +144,0.0075622797 +145,-0.009547293 +146,-0.025272787 +147,0.109396815 +148,0.13481833 +149,0.0014627576 +150,-0.03289312 +151,-0.06742412 +152,-0.030122578 +153,-0.075393915 +154,-0.12649667 +155,-0.1195637 +156,0.079155564 +157,0.011978686 +158,-0.0014190674 +159,0.007213533 +160,-0.09417522 +161,0.12305498 +162,-0.034420192 +163,-0.03710848 +164,0.005220115 +165,-0.00220865 +166,-0.056201756 +167,-0.0076782703 +168,0.21091962 +169,0.05137092 +170,-0.03991586 +171,-0.091624856 +172,-0.028903663 +173,-0.04638475 +174,-0.1370756 +175,-0.09860194 +176,0.11709955 +177,0.007869899 +178,-0.026340485 +179,-0.008334279 +180,0.0013420582 +181,0.21348995 +182,-0.037362933 +183,-0.0428769 +184,3.516674e-05 +185,0.027143061 +186,-0.055749595 +187,0.031190574 +188,-0.09497738 +189,-0.0037189126 +190,-0.034419835 +191,-0.11972076 +192,-0.012311161 +193,-0.068074346 +194,-0.03236687 +195,-0.016342819 +196,-0.29710126 +197,-0.021424294 +198,-0.056079924 +199,0.038012564 diff --git a/iris/tab_ddpm_concat/1/pred/g.csv b/iris/tab_ddpm_concat/1/pred/g.csv new file mode 100644 index 0000000000000000000000000000000000000000..950610cd9448f48193c80d020707c8d3728eb5e5 --- /dev/null +++ b/iris/tab_ddpm_concat/1/pred/g.csv @@ -0,0 +1,201 @@ +,tab_ddpm_concat +0,0.025151208 +1,0.08402753 +2,0.0020192266 +3,0.09499478 +4,0.021664426 +5,0.09863266 +6,0.029855132 +7,0.09322536 +8,0.012412831 +9,0.21375245 +10,0.013117075 +11,0.013055325 +12,0.012957603 +13,0.12948981 +14,0.009472072 +15,0.06934965 +16,0.012779221 +17,0.02341488 +18,0.017143965 +19,0.06560391 +20,0.025151253 +21,0.22075355 +22,0.0050598383 +23,0.037721932 +24,0.021583632 +25,0.033727586 +26,0.02899915 +27,0.08266801 +28,0.012401417 +29,0.007123947 +30,0.025736332 +31,0.012452304 +32,0.012977377 +33,0.036462486 +34,0.1578719 +35,0.06251788 +36,0.012779117 +37,0.07975155 +38,0.004424274 +39,0.06966251 +40,0.017612845 +41,0.023266852 +42,0.040749848 +43,0.12553692 +44,0.019746542 +45,0.02335918 +46,0.06185192 +47,0.087436676 +48,0.012829274 +49,0.044102788 +50,0.03270811 +51,0.07885826 +52,0.012977332 +53,0.086625576 +54,0.14750737 +55,0.021511316 +56,0.1684329 +57,0.12605613 +58,0.06545907 +59,0.040613353 +60,0.021112174 +61,0.024552226 +62,0.03979206 +63,0.059625506 +64,0.041879117 +65,0.023034394 +66,0.0057066083 +67,0.06526369 +68,0.0057417452 +69,0.015447736 +70,0.028568625 +71,0.11110562 +72,0.0072179437 +73,0.045500576 +74,0.098611295 +75,0.115777075 +76,0.08001745 +77,0.02682048 +78,0.006806791 +79,0.056551516 +80,0.058875978 +81,0.023736 +82,0.045610964 +83,0.049620807 +84,0.018131316 +85,0.0057379603 +86,0.015449643 +87,0.032814324 +88,0.14950942 +89,0.078780234 +90,0.005230725 +91,0.007696688 +92,0.009287119 +93,0.06052059 +94,0.10953903 +95,0.1329493 +96,0.023317695 +97,0.0038463473 +98,0.013268709 +99,0.07374209 +100,0.0727894 +101,0.008526325 +102,0.043916285 +103,0.043091238 +104,0.05631256 +105,0.04456687 +106,0.053412974 +107,0.02821505 +108,0.1648315 +109,0.046548486 +110,0.026997745 +111,0.013814449 +112,0.04905677 +113,0.030449092 +114,0.16068703 +115,0.10854113 +116,0.2241113 +117,0.047638476 +118,0.0069133043 +119,0.0627256 +120,0.02095297 +121,0.0023570657 +122,0.032120883 +123,0.036732495 +124,0.049354017 +125,0.041145742 +126,0.048760474 +127,0.017163754 +128,0.13031965 +129,0.068059206 +130,0.035722136 +131,0.08359343 +132,0.050236285 +133,0.030219376 +134,0.08723521 +135,0.0112046 +136,0.09177357 +137,0.013326526 +138,0.030837476 +139,0.18294656 +140,0.093507886 +141,0.09990114 +142,0.04006064 +143,0.07684934 +144,0.0075622797 +145,0.009547293 +146,0.025272787 +147,0.109396815 +148,0.13481833 +149,0.0014627576 +150,0.03289312 +151,0.06742412 +152,0.030122578 +153,0.075393915 +154,0.12649667 +155,0.1195637 +156,0.079155564 +157,0.011978686 +158,0.0014190674 +159,0.007213533 +160,0.09417522 +161,0.12305498 +162,0.034420192 +163,0.03710848 +164,0.005220115 +165,0.00220865 +166,0.056201756 +167,0.0076782703 +168,0.21091962 +169,0.05137092 +170,0.03991586 +171,0.091624856 +172,0.028903663 +173,0.04638475 +174,0.1370756 +175,0.09860194 +176,0.11709955 +177,0.007869899 +178,0.026340485 +179,0.008334279 +180,0.0013420582 +181,0.21348995 +182,0.037362933 +183,0.0428769 +184,3.516674e-05 +185,0.027143061 +186,0.055749595 +187,0.031190574 +188,0.09497738 +189,0.0037189126 +190,0.034419835 +191,0.11972076 +192,0.012311161 +193,0.068074346 +194,0.03236687 +195,0.016342819 +196,0.29710126 +197,0.021424294 +198,0.056079924 +199,0.038012564 diff --git a/iris/tab_ddpm_concat/1/pred/grad.csv b/iris/tab_ddpm_concat/1/pred/grad.csv new file mode 100644 index 0000000000000000000000000000000000000000..3af620674b243890b6579651db23570b0532392c --- /dev/null +++ b/iris/tab_ddpm_concat/1/pred/grad.csv @@ -0,0 +1,201 @@ +,tab_ddpm_concat +0,0.00011409841 +1,0.019362794 +2,0.00036611766 +3,0.031702545 +4,0.00065119675 +5,0.03709255 +6,0.0046476633 +7,0.019598985 +8,0.00016250365 +9,0.041986275 +10,0.0035358628 +11,0.0038103287 +12,7.3763156e-05 +13,0.02016269 +14,0.003935065 +15,0.014461829 +16,5.3120144e-05 +17,0.0046622506 +18,0.0046209004 +19,0.02338653 +20,0.000114099 +21,0.086460225 +22,0.0009820005 +23,0.012687862 +24,0.0006460007 +25,0.0071887295 +26,0.0041816765 +27,0.018331304 +28,0.0001624929 +29,0.0019433228 +30,0.0070446506 +31,0.0031324185 +32,7.2382936e-05 +33,0.01506656 +34,0.075596005 +35,0.018494733 +36,5.3120606e-05 +37,0.03294991 +38,0.0012384956 +39,0.019039908 +40,0.0052355626 +41,0.0030523587 +42,0.008396951 +43,0.032971535 +44,0.0005287074 +45,0.0034931123 +46,0.008766867 +47,0.020675158 +48,5.0818187e-05 +49,0.011282218 +50,0.008976231 +51,0.022497386 +52,7.238279e-05 +53,0.028452717 +54,0.06513142 +55,0.0072386046 +56,0.063262515 +57,0.03628303 +58,0.016706238 +59,0.014559136 +60,0.0063344357 +61,0.0050792205 +62,0.008097635 +63,0.015243642 +64,0.017057085 +65,0.003755698 +66,0.0008040091 +67,0.010260931 +68,0.0011681238 +69,0.0029629318 +70,0.0075895605 +71,0.03720452 +72,0.0026005688 +73,0.013468639 +74,0.043983106 +75,0.040518675 +76,0.022624409 +77,0.004761552 +78,0.0016378405 +79,0.013824324 +80,0.014709672 +81,0.004903518 +82,0.009791798 +83,0.010882463 +84,0.0069366824 +85,0.00063980283 +86,0.0017862424 +87,0.004900433 +88,0.036733985 +89,0.016110996 +90,0.0013648452 +91,0.0017702274 +92,0.0033339863 +93,0.018603863 +94,0.04753797 +95,0.04113052 +96,0.0059380275 +97,0.0006172671 +98,0.003386042 +99,0.01890623 +100,0.018529953 +101,0.0015715151 +102,0.008702539 +103,0.0075701545 +104,0.010113795 +105,0.0049307286 +106,0.006634293 +107,0.0043746876 +108,0.04931754 +109,0.006614884 +110,0.0071274335 +111,0.0031818333 +112,0.017000811 +113,0.0043322984 +114,0.07703068 +115,0.04553194 +116,0.06024996 +117,0.0059631877 +118,0.0016109596 +119,0.010299906 +120,0.007378376 +121,0.00045577183 +122,0.0057241535 +123,0.0065865726 +124,0.019201215 +125,0.0054482156 +126,0.005676333 +127,0.002269772 +128,0.044206917 +129,0.010313752 +130,0.009403607 +131,0.018684523 +132,0.016223826 +133,0.009339735 +134,0.03739815 +135,0.0019455857 +136,0.022709966 +137,0.0016117478 +138,0.008312136 +139,0.03171787 +140,0.023929097 +141,0.017819203 +142,0.007797573 +143,0.015385196 +144,0.002709801 +145,0.0013418013 +146,0.003090833 +147,0.0137718795 +148,0.05067558 +149,0.00024769493 +150,0.008026389 +151,0.0185254 +152,0.010085684 +153,0.018713718 +154,0.05539803 +155,0.04440853 +156,0.019147905 +157,0.0014472564 +158,0.00037242504 +159,0.0014006414 +160,0.023729276 +161,0.020773703 +162,0.006556554 +163,0.0076892935 +164,0.0017738265 +165,0.00024848845 +166,0.0069769975 +167,0.00096581376 +168,0.07308171 +169,0.011071479 +170,0.010759685 +171,0.022474278 +172,0.0096080545 +173,0.011654612 +174,0.05798227 +175,0.034771442 +176,0.02890033 +177,0.0012347035 +178,0.0062266225 +179,0.0020215688 +180,0.00033194365 +181,0.030610086 +182,0.0073170457 +183,0.008827708 +184,1.110685e-05 +185,0.0030891467 +186,0.006944771 +187,0.0038631982 +188,0.026583837 +189,0.00054218026 +190,0.009061046 +191,0.027904978 +192,0.0038374218 +193,0.0160636 +194,0.014894366 +195,0.0049777734 +196,0.10848371 +197,0.0034838212 +198,0.015852615 +199,0.0075860014 diff --git a/iris/tab_ddpm_concat/1/pred/pred.csv b/iris/tab_ddpm_concat/1/pred/pred.csv new file mode 100644 index 0000000000000000000000000000000000000000..ba42508e403471f7263024bc8ce3d9caefd65b0f --- /dev/null +++ b/iris/tab_ddpm_concat/1/pred/pred.csv @@ -0,0 +1,201 @@ +,tab_ddpm_concat +0,0.15371057 +1,0.43487293 +2,0.90440017 +3,0.8379872 +4,0.15719736 +5,0.5081565 +6,0.936728 +7,0.87267405 +8,0.15425384 +9,0.44495225 +10,0.8848008 +11,0.8332843 +12,0.15370907 +13,0.4984068 +14,0.7280228 +15,0.8550639 +16,0.15388745 +17,0.4203098 +18,0.8488493 +19,0.83686614 +20,0.15371053 +21,0.7338849 +22,0.8980431 +23,0.864659 +24,0.15727815 +25,0.8632246 +26,0.9392548 +27,0.88185114 +28,0.15426525 +29,0.79879236 +30,0.8915385 +31,0.8682495 +32,0.1536893 +33,0.6315622 +34,0.7217268 +35,0.8374649 +36,0.15388756 +37,0.74641824 +38,0.8361897 +39,0.86765945 +40,0.4342795 +41,0.9356478 +42,0.90116936 +43,0.8727849 +44,0.15911524 +45,0.9166925 +46,0.9381481 +47,0.87914646 +48,0.1538374 +49,0.8500191 +50,0.89597183 +51,0.8527088 +52,0.15368934 +53,0.8056732 +54,0.74833125 +55,0.81446755 +56,0.39065513 +57,0.8502731 +58,0.8718629 +59,0.84600055 +60,0.39555448 +61,0.8878287 +62,0.90212715 +63,0.87335646 +64,0.52801335 +65,0.9180348 +66,0.9389564 +67,0.90131944 +68,0.36477107 +69,0.9051872 +70,0.8943708 +71,0.84412986 +72,0.56421065 +73,0.8402137 +74,0.7373676 +75,0.80922294 +76,0.36160386 +77,0.90459824 +78,0.87280005 +79,0.8523512 +80,0.4226055 +81,0.88864493 +82,0.89630824 +83,0.8922984 +84,0.46428517 +85,0.9383979 +86,0.9496657 +87,0.8998456 +88,0.37173164 +89,0.8797057 +90,0.89268714 +91,0.86452556 +92,0.5621415 +93,0.8190781 +94,0.762628 +95,0.7981618 +96,0.3576347 +97,0.90505636 +98,0.8508707 +99,0.86565185 +100,0.4086921 +101,0.9038546 +102,0.8980029 +103,0.89882797 +104,0.22297923 +105,0.93956727 +106,0.946587 +107,0.9030019 +108,0.38705373 +109,0.8891411 +110,0.8927999 +111,0.88446975 +112,0.5223718 +113,0.9161634 +114,0.7351516 +115,0.7872975 +116,0.38097405 +117,0.9178857 +118,0.87105274 +119,0.87666833 +120,0.48455426 +121,0.91002387 +122,0.9097983 +123,0.9051867 +124,0.52053845 +125,0.93614614 +126,0.94692254 +127,0.91216415 +128,0.37552828 +129,0.89042675 +130,0.8929578 +131,0.87489253 +132,0.5211923 +133,0.823114 +134,0.78493184 +135,0.8796015 +136,0.37784877 +137,0.92222923 +138,0.83940977 +139,0.88151115 +140,0.3879736 +141,0.9173974 +142,0.90292 +143,0.89416516 +144,0.57745475 +145,0.92166966 +146,0.9429812 +147,0.9245044 +148,0.35704055 +149,0.8838157 +150,0.8957868 +151,0.8632985 +152,0.541306 +153,0.850532 +154,0.7456704 +155,0.8054363 +156,0.402685 +157,0.9208814 +158,0.8627204 +159,0.87353164 +160,0.38730627 +161,0.9201564 +162,0.907499 +163,0.9048107 +164,0.5751126 +165,0.92582166 +166,0.94379824 +167,0.9202893 +168,0.48343423 +169,0.8712299 +170,0.8887641 +171,0.8668611 +172,0.54252493 +173,0.83932954 +174,0.7537305 +175,0.8013809 +176,0.40281385 +177,0.9167726 +178,0.8695871 +179,0.8579838 +180,0.3909073 +181,0.92552274 +182,0.9045563 +183,0.8990423 +184,0.56992763 +185,0.92214346 +186,0.9442504 +187,0.926191 +188,0.3664107 +189,0.89419895 +190,0.8942601 +191,0.88027924 +192,0.55911744 +193,0.85785156 +194,0.74945134 +195,0.7839207 +196,0.50184053 +197,0.91589767 +198,0.8398477 +199,0.8751299 diff --git a/iris/tab_ddpm_concat/1/pred/y.csv b/iris/tab_ddpm_concat/1/pred/y.csv new file mode 100644 index 0000000000000000000000000000000000000000..a4860b935caf8f38b1c0c7f88a821071be8182e5 --- /dev/null +++ b/iris/tab_ddpm_concat/1/pred/y.csv @@ -0,0 +1,201 @@ +,tab_ddpm_concat +0,0.17886178 +1,0.3508454 +2,0.90238094 +3,0.93298197 +4,0.17886178 +5,0.40952381 +6,0.96658313 +7,0.9658994 +8,0.16666667 +9,0.6587047 +10,0.89791787 +11,0.84633964 +12,0.16666667 +13,0.6278966 +14,0.71855074 +15,0.78571427 +16,0.16666667 +17,0.4437247 +18,0.86599326 +19,0.90247005 +20,0.17886178 +21,0.5131313 +22,0.90310293 +23,0.90238094 +24,0.17886178 +25,0.82949704 +26,0.96825397 +27,0.96451914 +28,0.16666667 +29,0.8059163 +30,0.86580217 +31,0.8807018 +32,0.16666667 +33,0.5950997 +34,0.8795987 +35,0.8999828 +36,0.16666667 +37,0.6666667 +38,0.8317654 +39,0.93732196 +40,0.41666666 +41,0.91238093 +42,0.9419192 +43,0.747248 +44,0.17886178 +45,0.8933333 +46,1.0 +47,0.96658313 +48,0.16666667 +49,0.8059163 +50,0.92867994 +51,0.77385056 +52,0.16666667 +53,0.7190476 +54,0.8958386 +55,0.83597887 +56,0.22222222 +57,0.72421694 +58,0.93732196 +59,0.8053872 +60,0.41666666 +61,0.91238093 +62,0.9419192 +63,0.93298197 +64,0.56989247 +65,0.8950004 +66,0.9332498 +67,0.96658313 +68,0.3705128 +69,0.9206349 +70,0.86580217 +71,0.73302424 +72,0.5714286 +73,0.8857143 +74,0.83597887 +75,0.925 +76,0.4416213 +77,0.87777776 +78,0.86599326 +79,0.9089027 +80,0.4814815 +81,0.91238093 +82,0.9419192 +83,0.9419192 +84,0.44615385 +85,0.9326599 +86,0.9342161 +87,0.9326599 +88,0.22222222 +89,0.95848596 +90,0.89791787 +91,0.87222224 +92,0.5714286 +93,0.8795987 +94,0.87216705 +95,0.9311111 +96,0.3809524 +97,0.9089027 +98,0.86413944 +99,0.93939394 +100,0.4814815 +101,0.91238093 +102,0.9419192 +103,0.9419192 +104,0.16666667 +105,0.8950004 +106,1.0 +107,0.93121696 +108,0.22222222 +109,0.8425926 +110,0.86580217 +111,0.8706553 +112,0.5714286 +113,0.8857143 +114,0.8958386 +115,0.8958386 +116,0.15686275 +117,0.87024724 +118,0.86413944 +119,0.93939394 +120,0.50550723 +121,0.91238093 +122,0.9419192 +123,0.9419192 +124,0.56989247 +125,0.8950004 +126,0.89816207 +127,0.8950004 +128,0.50584793 +129,0.95848596 +130,0.92867994 +131,0.95848596 +132,0.5714286 +133,0.85333335 +134,0.87216705 +135,0.8908061 +136,0.46962234 +137,0.9089027 +138,0.87024724 +139,0.6985646 +140,0.4814815 +141,0.81749624 +142,0.86285937 +143,0.9710145 +144,0.56989247 +145,0.93121696 +146,0.96825397 +147,0.8151076 +148,0.22222222 +149,0.88235295 +150,0.92867994 +151,0.9307226 +152,0.5714286 +153,0.9259259 +154,0.87216705 +155,0.925 +156,0.32352942 +157,0.9089027 +158,0.86413944 +159,0.8663181 +160,0.4814815 +161,0.79710144 +162,0.9419192 +163,0.9419192 +164,0.56989247 +165,0.9280303 +166,1.0 +167,0.92796755 +168,0.2725146 +169,0.81985897 +170,0.92867994 +171,0.95848596 +172,0.5714286 +173,0.8857143 +174,0.8908061 +175,0.8999828 +176,0.2857143 +177,0.9089027 +178,0.8959276 +179,0.8663181 +180,0.38956523 +181,0.7120328 +182,0.9419192 +183,0.9419192 +184,0.56989247 +185,0.8950004 +186,1.0 +187,0.8950004 +188,0.46138808 +189,0.89791787 +190,0.92867994 +191,1.0 +192,0.5714286 +193,0.9259259 +194,0.7818182 +195,0.8002635 +196,0.7989418 +197,0.93732196 +198,0.8959276 +199,0.8371173 diff --git a/iris/tab_ddpm_concat/1/pred/y_real.csv b/iris/tab_ddpm_concat/1/pred/y_real.csv new file mode 100644 index 0000000000000000000000000000000000000000..801e9d3b6ff5f40b4dd0446f34f75e97566c0832 --- /dev/null +++ b/iris/tab_ddpm_concat/1/pred/y_real.csv @@ -0,0 +1,201 @@ +,tab_ddpm_concat +0,0.9419192 +1,0.9419192 +2,0.9419192 +3,0.9419192 +4,0.9658994 +5,0.9658994 +6,0.9658994 +7,0.9658994 +8,1.0 +9,1.0 +10,1.0 +11,1.0 +12,0.9259259 +13,0.9259259 +14,0.9259259 +15,0.9259259 +16,0.9073684 +17,0.9073684 +18,0.9073684 +19,0.9073684 +20,0.9419192 +21,0.9419192 +22,0.9419192 +23,0.9419192 +24,0.9658994 +25,0.9658994 +26,0.9658994 +27,0.9658994 +28,1.0 +29,1.0 +30,1.0 +31,1.0 +32,0.9259259 +33,0.9259259 +34,0.9259259 +35,0.9259259 +36,0.9073684 +37,0.9073684 +38,0.9073684 +39,0.9073684 +40,0.9419192 +41,0.9419192 +42,0.9419192 +43,0.9419192 +44,0.9658994 +45,0.9658994 +46,0.9658994 +47,0.9658994 +48,1.0 +49,1.0 +50,1.0 +51,1.0 +52,0.9259259 +53,0.9259259 +54,0.9259259 +55,0.9259259 +56,0.9073684 +57,0.9073684 +58,0.9073684 +59,0.9073684 +60,0.9419192 +61,0.9419192 +62,0.9419192 +63,0.9419192 +64,0.9658994 +65,0.9658994 +66,0.9658994 +67,0.9658994 +68,1.0 +69,1.0 +70,1.0 +71,1.0 +72,0.9259259 +73,0.9259259 +74,0.9259259 +75,0.9259259 +76,0.9073684 +77,0.9073684 +78,0.9073684 +79,0.9073684 +80,0.9419192 +81,0.9419192 +82,0.9419192 +83,0.9419192 +84,0.9658994 +85,0.9658994 +86,0.9658994 +87,0.9658994 +88,1.0 +89,1.0 +90,1.0 +91,1.0 +92,0.9259259 +93,0.9259259 +94,0.9259259 +95,0.9259259 +96,0.9073684 +97,0.9073684 +98,0.9073684 +99,0.9073684 +100,0.9419192 +101,0.9419192 +102,0.9419192 +103,0.9419192 +104,0.9658994 +105,0.9658994 +106,0.9658994 +107,0.9658994 +108,1.0 +109,1.0 +110,1.0 +111,1.0 +112,0.9259259 +113,0.9259259 +114,0.9259259 +115,0.9259259 +116,0.9073684 +117,0.9073684 +118,0.9073684 +119,0.9073684 +120,0.9419192 +121,0.9419192 +122,0.9419192 +123,0.9419192 +124,0.9658994 +125,0.9658994 +126,0.9658994 +127,0.9658994 +128,1.0 +129,1.0 +130,1.0 +131,1.0 +132,0.9259259 +133,0.9259259 +134,0.9259259 +135,0.9259259 +136,0.9073684 +137,0.9073684 +138,0.9073684 +139,0.9073684 +140,0.9419192 +141,0.9419192 +142,0.9419192 +143,0.9419192 +144,0.9658994 +145,0.9658994 +146,0.9658994 +147,0.9658994 +148,1.0 +149,1.0 +150,1.0 +151,1.0 +152,0.9259259 +153,0.9259259 +154,0.9259259 +155,0.9259259 +156,0.9073684 +157,0.9073684 +158,0.9073684 +159,0.9073684 +160,0.9419192 +161,0.9419192 +162,0.9419192 +163,0.9419192 +164,0.9658994 +165,0.9658994 +166,0.9658994 +167,0.9658994 +168,1.0 +169,1.0 +170,1.0 +171,1.0 +172,0.9259259 +173,0.9259259 +174,0.9259259 +175,0.9259259 +176,0.9073684 +177,0.9073684 +178,0.9073684 +179,0.9073684 +180,0.9419192 +181,0.9419192 +182,0.9419192 +183,0.9419192 +184,0.9658994 +185,0.9658994 +186,0.9658994 +187,0.9658994 +188,1.0 +189,1.0 +190,1.0 +191,1.0 +192,0.9259259 +193,0.9259259 +194,0.9259259 +195,0.9259259 +196,0.9073684 +197,0.9073684 +198,0.9073684 +199,0.9073684