diff --git a/iris/realtabformer/0/eval.csv b/iris/realtabformer/0/eval.csv new file mode 100644 index 0000000000000000000000000000000000000000..79ed9d6465f216daf67157ec26f55d9106f45ad9 --- /dev/null +++ b/iris/realtabformer/0/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 +realtabformer,1.5866514295339585e-05,0.03719833286711946,0.014214660227298736,0.10887551307678223,0.17931289970874786,1.5651562213897705,0.49317046999931335,0.00040935841389000416,0.22006988525390625,0.08447698503732681,0.19060228765010834,0.11922525614500046,0.21401745080947876,0.016936250030994415,0.3289453983306885 diff --git a/iris/realtabformer/0/history.csv b/iris/realtabformer/0/history.csv new file mode 100644 index 0000000000000000000000000000000000000000..cbd7e26a9fe02e9d342c305d881e722e02df64ef --- /dev/null +++ b/iris/realtabformer/0/history.csv @@ -0,0 +1,18 @@ +,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.05545322128704616,6.37872093734712,0.0058031086864344696,3.7638982488501886,0.0,0.0,0.0,0.0,0.056555797585419246,805,26,25.082869052886963,0.9647257328033447,0.03115884354395896,0.2302369034061065,0.05653296947479248,1.0082119447844369,0.0073388222698122264,0.0,0.0,0.0,0.0,0.0,0.05653296947479248,200,7,5.4033849239349365,0.7719121319907052,0.027016924619674684,0.4277626233441489 +1,0.09298929056580763,29.781426311112366,0.018756644218527026,2.0079383040437047,0.0,0.0,0.0,0.0,0.0945778066234559,805,26,25.07375144958496,0.9643750557532678,0.03114751732867697,0.2004415831134583,0.05188477247953415,8.267627050834042,0.0037753399834036827,0.0,0.0,0.0,0.0,0.0,0.05188477247953415,200,7,5.375553846359253,0.7679362637656075,0.026877769231796265,0.20930798032454082 +2,0.08072966089159805,41.261986145564784,0.012199858494496308,1.3262565808266586,0.0,0.0,0.0,0.0,0.08228209126069679,805,26,25.40018606185913,0.9769302331484281,0.031553026163800166,0.18730456514570576,0.12116833329200745,0.31429273954459597,0.014527524299919605,0.0,0.0,0.0,0.0,0.0,0.12116833329200745,200,7,5.609527111053467,0.8013610158647809,0.028047635555267333,0.2787415555545262 +3,0.12909120070453015,20.05665251989649,0.048288810947875245,0.8678272867054673,0.0,0.0,0.0,0.0,0.13337953994455545,805,26,25.630775690078735,0.9857990650030283,0.03183947290693011,0.22236485370936301,0.024622870720922948,4.645669119698661,0.0011761001090235367,0.0,0.0,0.0,0.0,0.0,0.024622870720922948,200,7,5.702103853225708,0.8145862647465297,0.02851051926612854,0.14845431063856399 +4,0.025600095569323866,1.946571768521188,0.0006723746913329315,0.5002591918344083,0.0,0.0,0.0,0.0,0.02600830172923226,805,26,26.075796127319336,1.0029152356661284,0.03239229332586253,0.21982560908565155,0.09085785388946534,23.405750955854142,0.007897327579557896,0.0,0.0,0.0,0.0,0.0,0.09085785388946534,200,7,5.686258792877197,0.8123226846967425,0.028431293964385988,0.08520811530096191 +5,0.023644074651858082,2.7149344823600794,0.0009012131397059239,0.40436799515108146,0.0,0.0,0.0,0.0,0.024535682787019644,805,26,26.249650955200195,1.009601959815392,0.03260826205614931,0.21432758753116316,0.010597299970686435,0.052947812381067445,0.000242134760665067,0.0,0.0,0.0,0.0,0.0,0.010597299970686435,200,7,5.658222198486328,0.8083174569266183,0.02829111099243164,0.25821420763220104 +6,0.01566562409749868,0.7781714178182972,0.0003516692290663204,0.32915719062645243,0.0,0.0,0.0,0.0,0.01592108525671296,805,26,26.055318593978882,1.002127638229957,0.032366855396247056,0.21611053152726248,0.017454545609652997,0.07818346966191062,0.0009739351289761089,0.0,0.0,0.0,0.0,0.0,0.017454545609652997,200,7,5.5151708126068115,0.7878815446581159,0.027575854063034057,0.2746164862598692 +7,0.019393095654082593,1.9498155292323924,0.0004879118645815352,0.31654649721169326,0.0,0.0,0.0,0.0,0.019744071850310203,805,26,25.598655700683594,0.9845636807955228,0.03179957229898583,0.22137853847100183,0.01732382271438837,5.062975108623505,0.00011896858856744075,0.0,0.0,0.0,0.0,0.0,0.01732382271438837,200,7,5.632629156112671,0.8046613080160958,0.028163145780563354,0.14509111429963792 +8,0.014582198289055262,1.2993242826213156,0.00031192184176248274,0.254362179922021,0.0,0.0,0.0,0.0,0.014828445077497766,805,26,25.601452827453613,0.9846712625943698,0.031803046990625604,0.21372094091314536,0.014793073721230031,0.1504713739933712,0.0002611487785780753,0.0,0.0,0.0,0.0,0.0,0.014793073721230031,200,7,5.738629102706909,0.8198041575295585,0.028693145513534545,0.23739989740507944 +9,0.011059814671008205,0.41367330023460736,0.00018777008003809039,0.2834473138038786,0.0,0.0,0.0,0.0,0.011257729706967609,805,26,25.254411935806274,0.9713235359925491,0.03137194029292705,0.22960687829897955,0.0155768071860075,2.2522460821700014,0.0004618389261941047,0.0,0.0,0.0,0.0,0.0,0.0155768071860075,200,7,5.728790521621704,0.8183986459459577,0.028643952608108522,0.20356714512620652 +10,0.011868218541642802,0.671250515151489,0.00019695858103093388,0.2472076629074464,0.0,0.0,0.0,0.0,0.012077011760058147,805,26,25.183809757232666,0.9686080675858718,0.031284235723270395,0.21406008990911338,0.01089858808554709,0.39993727586365174,0.00023039687255732133,0.0,0.0,0.0,0.0,0.0,0.01089858808554709,200,7,5.458767652511597,0.7798239503587995,0.027293838262557983,0.2166088329894202 +11,0.010728971021515982,0.9294392787420432,0.00016761753961919788,0.17734118301120605,0.0,0.0,0.0,0.0,0.010911444606988327,805,26,24.945944786071777,0.9594594148489145,0.030988751287045688,0.2104298698787506,0.01464691661298275,0.26762139683289987,0.0002482917004584806,0.0,0.0,0.0,0.0,0.0,0.01464691661298275,200,7,5.47876501083374,0.7826807158333915,0.0273938250541687,0.23086776265076228 +12,0.009718549553657772,0.3760666468319519,0.00010633945294696036,0.16899726468583812,0.0,0.0,0.0,0.0,0.009901283680958824,805,26,24.973416090011597,0.9605160034619845,0.031022877130449187,0.21900731325149536,0.011185272485017777,0.5537103562548639,0.0003862373838819622,0.0,0.0,0.0,0.0,0.0,0.011185272485017777,200,7,5.566257476806641,0.7951796395438058,0.027831287384033204,0.22738107187407358 +13,0.00937751111291025,0.36761897029898066,0.0001726570764572977,0.19955177871707064,0.0,0.0,0.0,0.0,0.009541873344630929,805,26,26.206302404403687,1.0079347078616803,0.03255441292472508,0.22536074083585006,0.009571458166465163,0.27349922174055663,0.00027529471986781573,0.0,0.0,0.0,0.0,0.0,0.009571458166465163,200,7,5.963040590286255,0.851862941469465,0.029815202951431273,0.23318991490772792 +14,0.010179014594195792,0.3470959917154127,0.00021436045003469625,0.15473558980485666,0.0,0.0,0.0,0.0,0.01035696392566521,805,26,25.450120210647583,0.9788507773325994,0.03161505616229513,0.21936667825166994,0.009403326213359833,0.7416889981666047,0.0002226516607333906,0.0,0.0,0.0,0.0,0.0,0.009403326213359833,200,7,5.6182777881622314,0.8026111125946045,0.028091388940811157,0.2015845285994666 +15,0.008587339533180553,0.3251583275309363,0.00012288650377401908,0.17342760592513942,0.0,0.0,0.0,0.0,0.008733580242958129,805,26,26.36291193962097,1.0139581515238836,0.032748958931206176,0.22641022961873275,0.010773870572447776,0.05581411087353315,0.0004966924425389152,0.0,0.0,0.0,0.0,0.0,0.010773870572447776,200,7,6.150816202163696,0.878688028880528,0.03075408101081848,0.25374425096171244 +16,0.00861285461274826,0.3616687789550409,0.0001955673897902659,0.17290803958540377,0.0,0.0,0.0,0.0,0.008759029352493723,805,26,26.303098440170288,1.0116576323142419,0.03267465644741651,0.22373252648573655,0.01276235720142722,1.0438688317579883,0.00032330815156456083,0.0,0.0,0.0,0.0,0.0,0.01276235720142722,200,7,5.648669242858887,0.8069527489798409,0.028243346214294432,0.19932425234998977 diff --git a/iris/realtabformer/0/logs/avg_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.17 b/iris/realtabformer/0/logs/avg_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.17 new file mode 100644 index 0000000000000000000000000000000000000000..9ee0b76ab8b71544a5efc9ce7c612af793a52320 --- /dev/null +++ b/iris/realtabformer/0/logs/avg_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.17 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c9bc841543a4cc9bd4f6d051a094adc60ae7827a31205f92e0e794ad32e8ca9 +size 868 diff --git a/iris/realtabformer/0/logs/avg_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.18 b/iris/realtabformer/0/logs/avg_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.18 new file mode 100644 index 0000000000000000000000000000000000000000..87721a6ad48eaf95167946ab475b161a383cf9fb --- /dev/null +++ b/iris/realtabformer/0/logs/avg_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.18 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2f92da87407c3cf70816990efa5a0288d2bef438ebea191a0b250aaf9b3a21a +size 868 diff --git a/iris/realtabformer/0/logs/avg_non_role_model_embed_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.15 b/iris/realtabformer/0/logs/avg_non_role_model_embed_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.15 new file mode 100644 index 0000000000000000000000000000000000000000..a361722d77e6cd66246f65833640a492d5f45a08 --- /dev/null +++ b/iris/realtabformer/0/logs/avg_non_role_model_embed_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.15 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e182512e9601ce4999d54ede781ba9f1379852d5731ed2b443f5e96d20c2c44c +size 1225 diff --git a/iris/realtabformer/0/logs/avg_non_role_model_embed_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.16 b/iris/realtabformer/0/logs/avg_non_role_model_embed_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.16 new file mode 100644 index 0000000000000000000000000000000000000000..6ee3281a126fd89f46ce3a5cfe23aaa0d70921e4 --- /dev/null +++ b/iris/realtabformer/0/logs/avg_non_role_model_embed_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.16 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:149002bb20a6e59eddaf4c28e0771a7189646ea65612a731ddee3834098a319a +size 1225 diff --git a/iris/realtabformer/0/logs/avg_non_role_model_g_cos_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.13 b/iris/realtabformer/0/logs/avg_non_role_model_g_cos_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.13 new file mode 100644 index 0000000000000000000000000000000000000000..5adeac8c98ee3931639e56b1c8cfb16a8c737407 --- /dev/null +++ b/iris/realtabformer/0/logs/avg_non_role_model_g_cos_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.13 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d77906346027be887dac5a94bc89a7ee7b474d75ca9d14bfd067c16f7060fa3f +size 1225 diff --git a/iris/realtabformer/0/logs/avg_non_role_model_g_cos_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.14 b/iris/realtabformer/0/logs/avg_non_role_model_g_cos_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.14 new file mode 100644 index 0000000000000000000000000000000000000000..20eb7dc9a6bdbb92fbca64cb40f0e3de9003effc --- /dev/null +++ b/iris/realtabformer/0/logs/avg_non_role_model_g_cos_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.14 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39e2fa55856f4c0043373b3ebaae69b9f74b8d12db0ee81f20953ad8d82bd6b1 +size 1225 diff --git a/iris/realtabformer/0/logs/avg_non_role_model_g_mag_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.11 b/iris/realtabformer/0/logs/avg_non_role_model_g_mag_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.11 new file mode 100644 index 0000000000000000000000000000000000000000..66629f686bb984710310a171a71b242082484aa4 --- /dev/null +++ b/iris/realtabformer/0/logs/avg_non_role_model_g_mag_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.11 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a906e0d1a513b89ec1d684a377c6475bfb1e949ec10f62af6e17742e92e840e +size 1225 diff --git a/iris/realtabformer/0/logs/avg_non_role_model_g_mag_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.12 b/iris/realtabformer/0/logs/avg_non_role_model_g_mag_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.12 new file mode 100644 index 0000000000000000000000000000000000000000..a70e886c0a0bdbf133c1832217bf2394cafa118c --- /dev/null +++ b/iris/realtabformer/0/logs/avg_non_role_model_g_mag_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.12 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33b2d4f35ddb0609d3813b41f5d23e9fa9c4b0504cde253138ba6305013a2bed +size 1225 diff --git a/iris/realtabformer/0/logs/avg_pred_std_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.29 b/iris/realtabformer/0/logs/avg_pred_std_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.29 new file mode 100644 index 0000000000000000000000000000000000000000..9dce6697f93141fd30932de165551d60c4e7c293 --- /dev/null +++ b/iris/realtabformer/0/logs/avg_pred_std_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.29 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4c477fc124b4d5e822b9b3f00efc9f640c80a59ccba27b63c2d687a57ed7682 +size 936 diff --git a/iris/realtabformer/0/logs/avg_pred_std_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.30 b/iris/realtabformer/0/logs/avg_pred_std_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.30 new file mode 100644 index 0000000000000000000000000000000000000000..bdf7d5515e77b3d18d585fb5146abb28e6109c5e --- /dev/null +++ b/iris/realtabformer/0/logs/avg_pred_std_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.30 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60a69409e6561eafd28b58ff9d6b2448cfcdfd2de9734800caa7324630b7cb5b +size 936 diff --git a/iris/realtabformer/0/logs/avg_role_model_g_cos_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.9 b/iris/realtabformer/0/logs/avg_role_model_g_cos_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.9 new file mode 100644 index 0000000000000000000000000000000000000000..44e438fa08886c41e49b0639ae2199193ad74fef --- /dev/null +++ b/iris/realtabformer/0/logs/avg_role_model_g_cos_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.9 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d41b599daa2cbbcb1eb26f362babab851970ca38418f66b7210dfe84b6066415 +size 1157 diff --git a/iris/realtabformer/0/logs/avg_role_model_g_cos_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.10 b/iris/realtabformer/0/logs/avg_role_model_g_cos_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.10 new file mode 100644 index 0000000000000000000000000000000000000000..8f6e5bb04ffdc603b58436f7cf944ff62ec3c3a1 --- /dev/null +++ b/iris/realtabformer/0/logs/avg_role_model_g_cos_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.10 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c651607ef0403401eb4bf167279d41995fe62e0d7095290ac78482fb13c520f +size 1157 diff --git a/iris/realtabformer/0/logs/avg_role_model_g_mag_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.7 b/iris/realtabformer/0/logs/avg_role_model_g_mag_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.7 new file mode 100644 index 0000000000000000000000000000000000000000..248658bd5e3650ad22fcbf51f41404993c5f12df --- /dev/null +++ b/iris/realtabformer/0/logs/avg_role_model_g_mag_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.7 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5767e71018c974fda1215d3272527971052eb67f8604e87f863a1469b58624d7 +size 1157 diff --git a/iris/realtabformer/0/logs/avg_role_model_g_mag_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.8 b/iris/realtabformer/0/logs/avg_role_model_g_mag_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.8 new file mode 100644 index 0000000000000000000000000000000000000000..858eb817bd63f2533d2c20a0e06f522a9373da32 --- /dev/null +++ b/iris/realtabformer/0/logs/avg_role_model_g_mag_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.8 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73fb9caf3c8a760d4ff8a6019c298642a7667a17f4ef15ef79c8319cd333025d +size 1157 diff --git a/iris/realtabformer/0/logs/avg_role_model_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.1 b/iris/realtabformer/0/logs/avg_role_model_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.1 new file mode 100644 index 0000000000000000000000000000000000000000..8bbc1463f50074da054f64be146c305b4e18caf1 --- /dev/null +++ b/iris/realtabformer/0/logs/avg_role_model_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.1 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d570c16258c0c4fc1f0908a937be2a2733be433d5f039328ac54ebcfa432657 +size 1055 diff --git a/iris/realtabformer/0/logs/avg_role_model_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.2 b/iris/realtabformer/0/logs/avg_role_model_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.2 new file mode 100644 index 0000000000000000000000000000000000000000..e020cf80e4e30421754eba4db3ba2ae7d45aeb3f --- /dev/null +++ b/iris/realtabformer/0/logs/avg_role_model_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0c605205b4da032cf7bdc9ea5128db3308a25b4a5aa4ed4fd0d4e14b01fb50b +size 1055 diff --git a/iris/realtabformer/0/logs/avg_role_model_mean_pred_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.5 b/iris/realtabformer/0/logs/avg_role_model_mean_pred_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.5 new file mode 100644 index 0000000000000000000000000000000000000000..0168e41c661ad8619f9a9e28a493ac8ae2be76ce --- /dev/null +++ b/iris/realtabformer/0/logs/avg_role_model_mean_pred_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25b986789d25811368b5f24c115f5ec01b794d41c78d6e1ad06bc4fd70863bc6 +size 1225 diff --git a/iris/realtabformer/0/logs/avg_role_model_mean_pred_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.6 b/iris/realtabformer/0/logs/avg_role_model_mean_pred_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.6 new file mode 100644 index 0000000000000000000000000000000000000000..1151c6a3badf1a6d51b9fa37aa1f78c6e87adb47 --- /dev/null +++ b/iris/realtabformer/0/logs/avg_role_model_mean_pred_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.6 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89ac14be0d44e72cbdd16943270b363131da6d49f5a6f75ac17109d53cc42265 +size 1225 diff --git a/iris/realtabformer/0/logs/avg_role_model_std_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.3 b/iris/realtabformer/0/logs/avg_role_model_std_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.3 new file mode 100644 index 0000000000000000000000000000000000000000..0867d770029f90258e6a499cd1b4679a107ec1f0 --- /dev/null +++ b/iris/realtabformer/0/logs/avg_role_model_std_loss_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.3 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db4323841b27948ec3d41eb6c83db115bffe0bb1913ad75182b65b09493abf0f +size 1123 diff --git a/iris/realtabformer/0/logs/avg_role_model_std_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.4 b/iris/realtabformer/0/logs/avg_role_model_std_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.4 new file mode 100644 index 0000000000000000000000000000000000000000..2f9617d3c7d69702734959d5db85d1df011ad501 --- /dev/null +++ b/iris/realtabformer/0/logs/avg_role_model_std_loss_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e624d2daf707d0677a3dcb140951c6ae996d105e8d796d3668ddba588e849b1f +size 1123 diff --git a/iris/realtabformer/0/logs/duration_batch_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.25 b/iris/realtabformer/0/logs/duration_batch_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.25 new file mode 100644 index 0000000000000000000000000000000000000000..40c5dfdb629b5a730a8be7064c87a10056e3c052 --- /dev/null +++ b/iris/realtabformer/0/logs/duration_batch_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.25 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1cbe0d0da2434d050cf431049cdfb0c1c4b42823b7767cac82440d28a252ee9 +size 970 diff --git a/iris/realtabformer/0/logs/duration_batch_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.26 b/iris/realtabformer/0/logs/duration_batch_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.26 new file mode 100644 index 0000000000000000000000000000000000000000..f49aea1bbd762719779aee3964ffd2061282a34b --- /dev/null +++ b/iris/realtabformer/0/logs/duration_batch_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.26 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04c3694a3be729512db216f0d88017879ac639701f05de8f999a8a40257b348f +size 970 diff --git a/iris/realtabformer/0/logs/duration_size_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.27 b/iris/realtabformer/0/logs/duration_size_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.27 new file mode 100644 index 0000000000000000000000000000000000000000..bfd3ed613e9b376c67561be062f371788579f054 --- /dev/null +++ b/iris/realtabformer/0/logs/duration_size_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.27 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a04ae67a9e620d1b95385d1379ce281b61a9a7707d9f25acb6a0d7267383c4d2 +size 953 diff --git a/iris/realtabformer/0/logs/duration_size_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.28 b/iris/realtabformer/0/logs/duration_size_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.28 new file mode 100644 index 0000000000000000000000000000000000000000..8dcafa58d11fa9961ab700b93f8669137b43d07f --- /dev/null +++ b/iris/realtabformer/0/logs/duration_size_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.28 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d98d2870affefb18308ba5e9e0d91a1a088026bd3bb179a08d4a68737f31b8df +size 953 diff --git a/iris/realtabformer/0/logs/duration_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.23 b/iris/realtabformer/0/logs/duration_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.23 new file mode 100644 index 0000000000000000000000000000000000000000..b675800ade346d978a9a3886ec06819c738d0edb --- /dev/null +++ b/iris/realtabformer/0/logs/duration_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.23 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5b1c75bb0d15842154bbef8047ef1fa647f42dede29967fbaa30bff461236c9 +size 868 diff --git a/iris/realtabformer/0/logs/duration_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.24 b/iris/realtabformer/0/logs/duration_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.24 new file mode 100644 index 0000000000000000000000000000000000000000..fab8dde3d008d12a4b28f06d8382e52cb171be43 --- /dev/null +++ b/iris/realtabformer/0/logs/duration_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.24 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a403b3cbbbf037356febf52511c00db636d3959b2c5d5e93719a7d4228decdb9 +size 868 diff --git a/iris/realtabformer/0/logs/events.out.tfevents.1721742024.0e0da8a72f77.2484.0 b/iris/realtabformer/0/logs/events.out.tfevents.1721742024.0e0da8a72f77.2484.0 new file mode 100644 index 0000000000000000000000000000000000000000..6cc50a9bb64089ad9813106324c8c4c5bc6eab0e --- /dev/null +++ b/iris/realtabformer/0/logs/events.out.tfevents.1721742024.0e0da8a72f77.2484.0 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe39db144290271eb62c803d43eb1eb06a145929edc69116cf8f4f8c27e00fe1 +size 88 diff --git a/iris/realtabformer/0/logs/n_batch_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.21 b/iris/realtabformer/0/logs/n_batch_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.21 new file mode 100644 index 0000000000000000000000000000000000000000..d479d6a084224cbb36445de97d81de23afcd91d6 --- /dev/null +++ b/iris/realtabformer/0/logs/n_batch_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.21 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aadc9a7e6091c2775e4188ce670acd7052f1f11276f24622403181ccbccb9cfb +size 851 diff --git a/iris/realtabformer/0/logs/n_batch_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.22 b/iris/realtabformer/0/logs/n_batch_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.22 new file mode 100644 index 0000000000000000000000000000000000000000..106d0ca9d63fc1dca3e696ab7b91c493db048a15 --- /dev/null +++ b/iris/realtabformer/0/logs/n_batch_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.22 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e26c9e25d59e37bb6e418577997ca6bde40d070fe0016c4bf06ee8b545796185 +size 851 diff --git a/iris/realtabformer/0/logs/n_size_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.19 b/iris/realtabformer/0/logs/n_size_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.19 new file mode 100644 index 0000000000000000000000000000000000000000..00d69a20188c57d7896a409d1be9ee2cf60599b7 --- /dev/null +++ b/iris/realtabformer/0/logs/n_size_train/events.out.tfevents.1721742056.0e0da8a72f77.2484.19 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c6b57dcc4321694d72454ec3f766df915bf9cc0679dbe00ca95417143898d31 +size 834 diff --git a/iris/realtabformer/0/logs/n_size_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.20 b/iris/realtabformer/0/logs/n_size_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.20 new file mode 100644 index 0000000000000000000000000000000000000000..c2feea7306bdcdaf77fedcc503ca4013cb4bbd11 --- /dev/null +++ b/iris/realtabformer/0/logs/n_size_val/events.out.tfevents.1721742056.0e0da8a72f77.2484.20 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eea3d32b0567faebfe45b40f77d0df7fce88c45f4e1db2a5ded6b28c60480e5b +size 834 diff --git a/iris/realtabformer/0/logs/train_avg_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.39 b/iris/realtabformer/0/logs/train_avg_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.39 new file mode 100644 index 0000000000000000000000000000000000000000..e528f893d4e426f6eda1f19f502114626cfd8b2a --- /dev/null +++ b/iris/realtabformer/0/logs/train_avg_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.39 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5672a473aef1e91558b5c46673e20988af784e2bf53252ee612adc78744d300 +size 817 diff --git a/iris/realtabformer/0/logs/train_avg_non_role_model_embed_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.38 b/iris/realtabformer/0/logs/train_avg_non_role_model_embed_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.38 new file mode 100644 index 0000000000000000000000000000000000000000..f7583996ae0b511760f134fa2fc75cf6bdab7f77 --- /dev/null +++ b/iris/realtabformer/0/logs/train_avg_non_role_model_embed_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.38 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05fb8067e31ce8946d9ddbf852ab5cdf40d4f33ef56d0b5afa34ecdab783ddfd +size 817 diff --git a/iris/realtabformer/0/logs/train_avg_non_role_model_g_cos_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.37 b/iris/realtabformer/0/logs/train_avg_non_role_model_g_cos_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.37 new file mode 100644 index 0000000000000000000000000000000000000000..757ff9f14e0fe3b5394dd7c5af9c82a79a0e5993 --- /dev/null +++ b/iris/realtabformer/0/logs/train_avg_non_role_model_g_cos_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.37 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:134bda2e37340d9879a8f6ca4334d03cf4d38f7532929dace19d66af4cfa0140 +size 817 diff --git a/iris/realtabformer/0/logs/train_avg_non_role_model_g_mag_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.36 b/iris/realtabformer/0/logs/train_avg_non_role_model_g_mag_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.36 new file mode 100644 index 0000000000000000000000000000000000000000..b94d700cc8907d9f816455a57a165fcb83bfe9a9 --- /dev/null +++ b/iris/realtabformer/0/logs/train_avg_non_role_model_g_mag_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.36 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc3e42d8fe5732b3872368ab9aa967c14e6a52b616d1f044f933822b13e6d4e6 +size 817 diff --git a/iris/realtabformer/0/logs/train_avg_pred_std/events.out.tfevents.1721742056.0e0da8a72f77.2484.45 b/iris/realtabformer/0/logs/train_avg_pred_std/events.out.tfevents.1721742056.0e0da8a72f77.2484.45 new file mode 100644 index 0000000000000000000000000000000000000000..1db29be063dbdb501bf3672ab1f814b92aa32404 --- /dev/null +++ b/iris/realtabformer/0/logs/train_avg_pred_std/events.out.tfevents.1721742056.0e0da8a72f77.2484.45 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cb061a7ead9579bbb6d38f42fffb3b5189fc1e5aa2174cfe68fcac893e68bb3 +size 817 diff --git a/iris/realtabformer/0/logs/train_avg_role_model_g_cos_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.35 b/iris/realtabformer/0/logs/train_avg_role_model_g_cos_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.35 new file mode 100644 index 0000000000000000000000000000000000000000..362433e2dbe0cebfd8885f5903a4033d238bf912 --- /dev/null +++ b/iris/realtabformer/0/logs/train_avg_role_model_g_cos_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.35 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f563fe0488d75ea08c555dbb5751ffd54e346b4bbb2d6dbdb058363472005725 +size 817 diff --git a/iris/realtabformer/0/logs/train_avg_role_model_g_mag_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.34 b/iris/realtabformer/0/logs/train_avg_role_model_g_mag_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.34 new file mode 100644 index 0000000000000000000000000000000000000000..78e935271791a861c6cdc431172a04162d0b04ea --- /dev/null +++ b/iris/realtabformer/0/logs/train_avg_role_model_g_mag_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.34 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5db9f7555070ac2f7059de11316ccbfa3bab8f6bb5f2ad8c2e2c4de52d6df17 +size 817 diff --git a/iris/realtabformer/0/logs/train_avg_role_model_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.31 b/iris/realtabformer/0/logs/train_avg_role_model_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.31 new file mode 100644 index 0000000000000000000000000000000000000000..74f253070c278949d6212148482e0d8ba511384d --- /dev/null +++ b/iris/realtabformer/0/logs/train_avg_role_model_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.31 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ef2aa69a94365f270efeb12c08e05cced97dd776264ec046df0afd6f3d2db77 +size 817 diff --git a/iris/realtabformer/0/logs/train_avg_role_model_mean_pred_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.33 b/iris/realtabformer/0/logs/train_avg_role_model_mean_pred_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.33 new file mode 100644 index 0000000000000000000000000000000000000000..66fceeff802ebc53cbc7f2535cb1177e96d0d724 --- /dev/null +++ b/iris/realtabformer/0/logs/train_avg_role_model_mean_pred_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.33 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac68aa19206ca6730ecd7682cb8ccf957c428c3f47963f052f32cf58081615cc +size 817 diff --git a/iris/realtabformer/0/logs/train_avg_role_model_std_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.32 b/iris/realtabformer/0/logs/train_avg_role_model_std_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.32 new file mode 100644 index 0000000000000000000000000000000000000000..23d30b1cc124b1bfb706f554db6c8a396c9c5ed2 --- /dev/null +++ b/iris/realtabformer/0/logs/train_avg_role_model_std_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.32 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3d5fcbaf4737614bd32a55f7c4e73bc6d2df54860814f8c1fb194e5b250555b +size 817 diff --git a/iris/realtabformer/0/logs/train_duration/events.out.tfevents.1721742056.0e0da8a72f77.2484.42 b/iris/realtabformer/0/logs/train_duration/events.out.tfevents.1721742056.0e0da8a72f77.2484.42 new file mode 100644 index 0000000000000000000000000000000000000000..f022cb16468250fa4b80c698ad9e427cd6ffd3d9 --- /dev/null +++ b/iris/realtabformer/0/logs/train_duration/events.out.tfevents.1721742056.0e0da8a72f77.2484.42 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f68d6b568ff798d4bb0f3769124aa27128439da609f1ef36ec8349771cb84a1 +size 817 diff --git a/iris/realtabformer/0/logs/train_duration_batch/events.out.tfevents.1721742056.0e0da8a72f77.2484.43 b/iris/realtabformer/0/logs/train_duration_batch/events.out.tfevents.1721742056.0e0da8a72f77.2484.43 new file mode 100644 index 0000000000000000000000000000000000000000..b07a4b938f9ebd359cedf2af628be5578189db07 --- /dev/null +++ b/iris/realtabformer/0/logs/train_duration_batch/events.out.tfevents.1721742056.0e0da8a72f77.2484.43 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b02e8541510dfa7793fbe72ec0281cf630b9be2ba29307f47cbbf3b9418f0969 +size 817 diff --git a/iris/realtabformer/0/logs/train_duration_size/events.out.tfevents.1721742056.0e0da8a72f77.2484.44 b/iris/realtabformer/0/logs/train_duration_size/events.out.tfevents.1721742056.0e0da8a72f77.2484.44 new file mode 100644 index 0000000000000000000000000000000000000000..4e57cef78d28f2b346a7b681d71d0aec2f6e5f5f --- /dev/null +++ b/iris/realtabformer/0/logs/train_duration_size/events.out.tfevents.1721742056.0e0da8a72f77.2484.44 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:937ec0a0bc9cfde0cbefc7cb72fff63607a160e3a338acee3c415634e472e577 +size 817 diff --git a/iris/realtabformer/0/logs/train_n_batch/events.out.tfevents.1721742056.0e0da8a72f77.2484.41 b/iris/realtabformer/0/logs/train_n_batch/events.out.tfevents.1721742056.0e0da8a72f77.2484.41 new file mode 100644 index 0000000000000000000000000000000000000000..195a35c43ac7b6c35386ced2be2b817403fe35e8 --- /dev/null +++ b/iris/realtabformer/0/logs/train_n_batch/events.out.tfevents.1721742056.0e0da8a72f77.2484.41 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd64b3955e8059d0690b2e9290cccf335055f29845e89c3c6746e44da089844b +size 817 diff --git a/iris/realtabformer/0/logs/train_n_size/events.out.tfevents.1721742056.0e0da8a72f77.2484.40 b/iris/realtabformer/0/logs/train_n_size/events.out.tfevents.1721742056.0e0da8a72f77.2484.40 new file mode 100644 index 0000000000000000000000000000000000000000..81e3106fc53e28791c616dc6ed900d5c79412002 --- /dev/null +++ b/iris/realtabformer/0/logs/train_n_size/events.out.tfevents.1721742056.0e0da8a72f77.2484.40 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1761b84aa978cd199e4da983baf6d5c26542871522d7f65f066343ac0d3f2e5b +size 817 diff --git a/iris/realtabformer/0/logs/val_avg_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.54 b/iris/realtabformer/0/logs/val_avg_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.54 new file mode 100644 index 0000000000000000000000000000000000000000..d63eb7c789ba852361aac70020d1956637c42426 --- /dev/null +++ b/iris/realtabformer/0/logs/val_avg_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.54 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67aca9b891f07d86f9edb03bebf172d9ded2e02a3cdf1feaac5303c953bafa6f +size 783 diff --git a/iris/realtabformer/0/logs/val_avg_non_role_model_embed_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.53 b/iris/realtabformer/0/logs/val_avg_non_role_model_embed_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.53 new file mode 100644 index 0000000000000000000000000000000000000000..2ab0d7986dea9b217ce9601f56c8ec6c2e8398ac --- /dev/null +++ b/iris/realtabformer/0/logs/val_avg_non_role_model_embed_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.53 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:099dedb37d79049fea8d1820c6f57e97698607ef8262bdcfca03fcd0a9f36836 +size 783 diff --git a/iris/realtabformer/0/logs/val_avg_non_role_model_g_cos_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.52 b/iris/realtabformer/0/logs/val_avg_non_role_model_g_cos_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.52 new file mode 100644 index 0000000000000000000000000000000000000000..d644afd229d6e9e541f5e12184d013dd155dc588 --- /dev/null +++ b/iris/realtabformer/0/logs/val_avg_non_role_model_g_cos_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.52 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b31cb1902f7c5927ce5ffaaccc4413c3b1f363f7f8782263eef0cd641acc4d0 +size 783 diff --git a/iris/realtabformer/0/logs/val_avg_non_role_model_g_mag_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.51 b/iris/realtabformer/0/logs/val_avg_non_role_model_g_mag_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.51 new file mode 100644 index 0000000000000000000000000000000000000000..607d59c8d9063c8211fde5996226c2b55dd3fdba --- /dev/null +++ b/iris/realtabformer/0/logs/val_avg_non_role_model_g_mag_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.51 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93e8477c0fc1fdbf4c8f7ce03de9350f8884f0fb0e7e90b1c19f0a758d3c6173 +size 783 diff --git a/iris/realtabformer/0/logs/val_avg_pred_std/events.out.tfevents.1721742056.0e0da8a72f77.2484.60 b/iris/realtabformer/0/logs/val_avg_pred_std/events.out.tfevents.1721742056.0e0da8a72f77.2484.60 new file mode 100644 index 0000000000000000000000000000000000000000..22a074a391ebb3f4475bb98a6c1543c367c60ceb --- /dev/null +++ b/iris/realtabformer/0/logs/val_avg_pred_std/events.out.tfevents.1721742056.0e0da8a72f77.2484.60 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c07d20899d810d04df1edbd43ea5654ec73dcba09a1f0ea34c167a0e44d4ba6 +size 783 diff --git a/iris/realtabformer/0/logs/val_avg_role_model_g_cos_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.50 b/iris/realtabformer/0/logs/val_avg_role_model_g_cos_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.50 new file mode 100644 index 0000000000000000000000000000000000000000..252e89fac83367e2a88e57bf5152ef6a28b5a7ce --- /dev/null +++ b/iris/realtabformer/0/logs/val_avg_role_model_g_cos_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.50 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52294bb2c606d47179cf18234be3d747f260091697588d036c74abf334c65cc3 +size 783 diff --git a/iris/realtabformer/0/logs/val_avg_role_model_g_mag_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.49 b/iris/realtabformer/0/logs/val_avg_role_model_g_mag_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.49 new file mode 100644 index 0000000000000000000000000000000000000000..da2acc9f2528de7397ec4e44432d8b58e0d755bb --- /dev/null +++ b/iris/realtabformer/0/logs/val_avg_role_model_g_mag_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.49 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7efb509028478e0c542625a6acb1e480560965ef0002310d58455c522b7556da +size 783 diff --git a/iris/realtabformer/0/logs/val_avg_role_model_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.46 b/iris/realtabformer/0/logs/val_avg_role_model_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.46 new file mode 100644 index 0000000000000000000000000000000000000000..9fa4b6fa0f8007c5da09ecfd6aa664380b779403 --- /dev/null +++ b/iris/realtabformer/0/logs/val_avg_role_model_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.46 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5eb54257ad92915c874216f85a76a882230b4ece3dbfaf2ee9dba410501d7fef +size 783 diff --git a/iris/realtabformer/0/logs/val_avg_role_model_mean_pred_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.48 b/iris/realtabformer/0/logs/val_avg_role_model_mean_pred_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.48 new file mode 100644 index 0000000000000000000000000000000000000000..4b94fa61dceb069e1305e4c8f3e92589abdd749b --- /dev/null +++ b/iris/realtabformer/0/logs/val_avg_role_model_mean_pred_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.48 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b1cc9131ac225158f7659e3a546292b20d481a1ee1ede9eff71b22b00c9f09a +size 783 diff --git a/iris/realtabformer/0/logs/val_avg_role_model_std_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.47 b/iris/realtabformer/0/logs/val_avg_role_model_std_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.47 new file mode 100644 index 0000000000000000000000000000000000000000..486d3a291112736866132ba14d2af76e399f5c24 --- /dev/null +++ b/iris/realtabformer/0/logs/val_avg_role_model_std_loss/events.out.tfevents.1721742056.0e0da8a72f77.2484.47 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d4d519d39e5d307ab37807b93bcb094f798752e532100fa617f6fabafc8b16a +size 783 diff --git a/iris/realtabformer/0/logs/val_duration/events.out.tfevents.1721742056.0e0da8a72f77.2484.57 b/iris/realtabformer/0/logs/val_duration/events.out.tfevents.1721742056.0e0da8a72f77.2484.57 new file mode 100644 index 0000000000000000000000000000000000000000..f5d70f85c60e99a7fec2b3a8da8c46f62203fc7f --- /dev/null +++ b/iris/realtabformer/0/logs/val_duration/events.out.tfevents.1721742056.0e0da8a72f77.2484.57 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:405c5330d4db85f63ef31dd17fb286702dea43779dd03f71448febe9f6d18131 +size 783 diff --git a/iris/realtabformer/0/logs/val_duration_batch/events.out.tfevents.1721742056.0e0da8a72f77.2484.58 b/iris/realtabformer/0/logs/val_duration_batch/events.out.tfevents.1721742056.0e0da8a72f77.2484.58 new file mode 100644 index 0000000000000000000000000000000000000000..6a0213c07c1983c214d5d7830b703e193bcb6e3b --- /dev/null +++ b/iris/realtabformer/0/logs/val_duration_batch/events.out.tfevents.1721742056.0e0da8a72f77.2484.58 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa249fcca9960a9254d0acb7e9b7e5ee57d42e81ad952c43130d2597e306d2b0 +size 783 diff --git a/iris/realtabformer/0/logs/val_duration_size/events.out.tfevents.1721742056.0e0da8a72f77.2484.59 b/iris/realtabformer/0/logs/val_duration_size/events.out.tfevents.1721742056.0e0da8a72f77.2484.59 new file mode 100644 index 0000000000000000000000000000000000000000..59a4526df53e87529c045f96b899206c8328d152 --- /dev/null +++ b/iris/realtabformer/0/logs/val_duration_size/events.out.tfevents.1721742056.0e0da8a72f77.2484.59 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db8c00c9f48a967ea1e580b883bfbf047f5507a0412f18cc0e276e274c7797f5 +size 783 diff --git a/iris/realtabformer/0/logs/val_n_batch/events.out.tfevents.1721742056.0e0da8a72f77.2484.56 b/iris/realtabformer/0/logs/val_n_batch/events.out.tfevents.1721742056.0e0da8a72f77.2484.56 new file mode 100644 index 0000000000000000000000000000000000000000..0852da214d3b0cbe323289bb298df11a3ee1f6ad --- /dev/null +++ b/iris/realtabformer/0/logs/val_n_batch/events.out.tfevents.1721742056.0e0da8a72f77.2484.56 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f00574ecb7084f6921bd0084022664cd9b7becdc0f76146d42e5e63da95c2cc +size 783 diff --git a/iris/realtabformer/0/logs/val_n_size/events.out.tfevents.1721742056.0e0da8a72f77.2484.55 b/iris/realtabformer/0/logs/val_n_size/events.out.tfevents.1721742056.0e0da8a72f77.2484.55 new file mode 100644 index 0000000000000000000000000000000000000000..c445576a665148719028edb6659cce41bd3a8056 --- /dev/null +++ b/iris/realtabformer/0/logs/val_n_size/events.out.tfevents.1721742056.0e0da8a72f77.2484.55 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56976c14f68f428e0a6ac5cff2d10707810758be27a61d70719c6c65ef316f9e +size 783 diff --git a/iris/realtabformer/0/mlu-eval.ipynb b/iris/realtabformer/0/mlu-eval.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..47d83bb0ea5e67c9abcc160ea7115725f2684bff --- /dev/null +++ b/iris/realtabformer/0/mlu-eval.ipynb @@ -0,0 +1,2472 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "982e76f5", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T13:40:13.427354Z", + "iopub.status.busy": "2024-07-23T13:40:13.426921Z", + "iopub.status.idle": "2024-07-23T13:40:13.461006Z", + "shell.execute_reply": "2024-07-23T13:40:13.460270Z" + }, + "papermill": { + "duration": 0.049547, + "end_time": "2024-07-23T13:40:13.463112", + "exception": false, + "start_time": "2024-07-23T13:40:13.413565", + "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-23T13:40:13.488446Z", + "iopub.status.busy": "2024-07-23T13:40:13.488135Z", + "iopub.status.idle": "2024-07-23T13:40:13.494865Z", + "shell.execute_reply": "2024-07-23T13:40:13.494052Z" + }, + "papermill": { + "duration": 0.021461, + "end_time": "2024-07-23T13:40:13.496731", + "exception": false, + "start_time": "2024-07-23T13:40:13.475270", + "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-23T13:40:13.520726Z", + "iopub.status.busy": "2024-07-23T13:40:13.520447Z", + "iopub.status.idle": "2024-07-23T13:40:13.524727Z", + "shell.execute_reply": "2024-07-23T13:40:13.523970Z" + }, + "papermill": { + "duration": 0.018742, + "end_time": "2024-07-23T13:40:13.526601", + "exception": false, + "start_time": "2024-07-23T13:40:13.507859", + "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-23T13:40:13.550188Z", + "iopub.status.busy": "2024-07-23T13:40:13.549927Z", + "iopub.status.idle": "2024-07-23T13:40:13.553985Z", + "shell.execute_reply": "2024-07-23T13:40:13.553116Z" + }, + "executionInfo": { + "elapsed": 678, + "status": "ok", + "timestamp": 1696841022168, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "ns5hFcVL2yvs", + "papermill": { + "duration": 0.018344, + "end_time": "2024-07-23T13:40:13.555906", + "exception": false, + "start_time": "2024-07-23T13:40:13.537562", + "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-23T13:40:13.579338Z", + "iopub.status.busy": "2024-07-23T13:40:13.579071Z", + "iopub.status.idle": "2024-07-23T13:40:13.584792Z", + "shell.execute_reply": "2024-07-23T13:40:13.583919Z" + }, + "papermill": { + "duration": 0.019973, + "end_time": "2024-07-23T13:40:13.586864", + "exception": false, + "start_time": "2024-07-23T13:40:13.566891", + "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": "75e60c1b", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T13:40:13.612034Z", + "iopub.status.busy": "2024-07-23T13:40:13.611732Z", + "iopub.status.idle": "2024-07-23T13:40:13.617176Z", + "shell.execute_reply": "2024-07-23T13:40:13.616311Z" + }, + "papermill": { + "duration": 0.0203, + "end_time": "2024-07-23T13:40:13.619049", + "exception": false, + "start_time": "2024-07-23T13:40:13.598749", + "status": "completed" + }, + "tags": [ + "injected-parameters" + ] + }, + "outputs": [], + "source": [ + "# Parameters\n", + "dataset = \"iris\"\n", + "dataset_name = \"iris\"\n", + "single_model = \"realtabformer\"\n", + "gp = True\n", + "gp_multiply = True\n", + "random_seed = 0\n", + "debug = False\n", + "folder = \"eval\"\n", + "path_prefix = \"../../../../\"\n", + "path = \"eval/iris/realtabformer/0\"\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.010909, + "end_time": "2024-07-23T13:40:13.641017", + "exception": false, + "start_time": "2024-07-23T13:40:13.630108", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "5f45b1d0", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T13:40:13.664415Z", + "iopub.status.busy": "2024-07-23T13:40:13.664124Z", + "iopub.status.idle": "2024-07-23T13:40:13.673574Z", + "shell.execute_reply": "2024-07-23T13:40:13.672698Z" + }, + "executionInfo": { + "elapsed": 7, + "status": "ok", + "timestamp": 1696841022169, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "UdvXYv3c3LXy", + "papermill": { + "duration": 0.023363, + "end_time": "2024-07-23T13:40:13.675479", + "exception": false, + "start_time": "2024-07-23T13:40:13.652116", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/kaggle/working\n", + "/kaggle/working/eval/iris/realtabformer/0\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-23T13:40:13.699483Z", + "iopub.status.busy": "2024-07-23T13:40:13.698816Z", + "iopub.status.idle": "2024-07-23T13:40:15.628598Z", + "shell.execute_reply": "2024-07-23T13:40:15.627501Z" + }, + "papermill": { + "duration": 1.944049, + "end_time": "2024-07-23T13:40:15.630730", + "exception": false, + "start_time": "2024-07-23T13:40:13.686681", + "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-23T13:40:15.656696Z", + "iopub.status.busy": "2024-07-23T13:40:15.656275Z", + "iopub.status.idle": "2024-07-23T13:40:15.666631Z", + "shell.execute_reply": "2024-07-23T13:40:15.665902Z" + }, + "papermill": { + "duration": 0.025378, + "end_time": "2024-07-23T13:40:15.668562", + "exception": false, + "start_time": "2024-07-23T13:40:15.643184", + "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-23T13:40:15.692376Z", + "iopub.status.busy": "2024-07-23T13:40:15.691844Z", + "iopub.status.idle": "2024-07-23T13:40:15.698473Z", + "shell.execute_reply": "2024-07-23T13:40:15.697647Z" + }, + "executionInfo": { + "elapsed": 6, + "status": "ok", + "timestamp": 1696841022169, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "Vrl2QkoV3o_8", + "papermill": { + "duration": 0.020676, + "end_time": "2024-07-23T13:40:15.700464", + "exception": false, + "start_time": "2024-07-23T13:40:15.679788", + "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-23T13:40:15.724252Z", + "iopub.status.busy": "2024-07-23T13:40:15.723983Z", + "iopub.status.idle": "2024-07-23T13:40:15.819620Z", + "shell.execute_reply": "2024-07-23T13:40:15.818895Z" + }, + "executionInfo": { + "elapsed": 6, + "status": "ok", + "timestamp": 1696841022169, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "TilUuFk9vqMb", + "papermill": { + "duration": 0.109887, + "end_time": "2024-07-23T13:40:15.821716", + "exception": false, + "start_time": "2024-07-23T13:40:15.711829", + "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-23T13:40:15.847960Z", + "iopub.status.busy": "2024-07-23T13:40:15.846920Z", + "iopub.status.idle": "2024-07-23T13:40:20.175074Z", + "shell.execute_reply": "2024-07-23T13:40:20.174220Z" + }, + "executionInfo": { + "elapsed": 3113, + "status": "ok", + "timestamp": 1696841025277, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "7Abt8nStvr9Z", + "papermill": { + "duration": 4.343507, + "end_time": "2024-07-23T13:40:20.177470", + "exception": false, + "start_time": "2024-07-23T13:40:15.833963", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-07-23 13:40:17.589880: 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 13:40:17.589942: 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 13:40:17.591631: 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-23T13:40:20.202954Z", + "iopub.status.busy": "2024-07-23T13:40:20.202032Z", + "iopub.status.idle": "2024-07-23T13:40:20.208299Z", + "shell.execute_reply": "2024-07-23T13:40:20.207556Z" + }, + "papermill": { + "duration": 0.020998, + "end_time": "2024-07-23T13:40:20.210224", + "exception": false, + "start_time": "2024-07-23T13:40:20.189226", + "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-23T13:40:20.236273Z", + "iopub.status.busy": "2024-07-23T13:40:20.235467Z", + "iopub.status.idle": "2024-07-23T13:40:22.778816Z", + "shell.execute_reply": "2024-07-23T13:40:22.778005Z" + }, + "executionInfo": { + "elapsed": 20137, + "status": "ok", + "timestamp": 1696841045408, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "tbaguWxAvtPi", + "papermill": { + "duration": 2.559098, + "end_time": "2024-07-23T13:40:22.781383", + "exception": false, + "start_time": "2024-07-23T13:40:20.222285", + "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-23T13:40:22.808586Z", + "iopub.status.busy": "2024-07-23T13:40:22.808280Z", + "iopub.status.idle": "2024-07-23T13:40:22.814276Z", + "shell.execute_reply": "2024-07-23T13:40:22.813365Z" + }, + "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.021837, + "end_time": "2024-07-23T13:40:22.816194", + "exception": false, + "start_time": "2024-07-23T13:40:22.794357", + "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-23T13:40:22.841057Z", + "iopub.status.busy": "2024-07-23T13:40:22.840389Z", + "iopub.status.idle": "2024-07-23T13:40:22.845344Z", + "shell.execute_reply": "2024-07-23T13:40:22.844442Z" + }, + "papermill": { + "duration": 0.019497, + "end_time": "2024-07-23T13:40:22.847210", + "exception": false, + "start_time": "2024-07-23T13:40:22.827713", + "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-23T13:40:22.871485Z", + "iopub.status.busy": "2024-07-23T13:40:22.871208Z", + "iopub.status.idle": "2024-07-23T13:40:22.930276Z", + "shell.execute_reply": "2024-07-23T13:40:22.929408Z" + }, + "papermill": { + "duration": 0.073558, + "end_time": "2024-07-23T13:40:22.932265", + "exception": false, + "start_time": "2024-07-23T13:40:22.858707", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "../../../../ml-utility-loss/ synthetics iris\n", + "Caching in ../../../../iris/_cache_aug_test/realtabformer/all inf False\n", + "../../../../ml-utility-loss/aug_test/iris 0\n", + "Caching in ../../../../iris/_cache_bs_test/realtabformer/all inf False\n", + "../../../../ml-utility-loss/bs_test/iris 0\n", + "Caching in ../../../../iris/_cache_synth_test/realtabformer/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-23T13:40:22.958258Z", + "iopub.status.busy": "2024-07-23T13:40:22.957962Z", + "iopub.status.idle": "2024-07-23T13:40:23.527882Z", + "shell.execute_reply": "2024-07-23T13:40:23.526908Z" + }, + "executionInfo": { + "elapsed": 588, + "status": "ok", + "timestamp": 1696841049215, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "NgahtU1q9uLO", + "papermill": { + "duration": 0.585265, + "end_time": "2024-07-23T13:40:23.529993", + "exception": false, + "start_time": "2024-07-23T13:40:22.944728", + "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': 4,\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': torch.nn.modules.activation.ReLU6,\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': 32,\n", + " 'epochs': 100,\n", + " 'lr_mul': 0.15,\n", + " 'n_warmup_steps': 80,\n", + " 'Optim': functools.partial(, amsgrad=True),\n", + " 'g_loss_mul': 0.2,\n", + " 'd_model': 128,\n", + " 'attn_activation': ml_utility_loss.activations.LeakyHardsigmoid,\n", + " 'tf_d_inner': 32,\n", + " 'tf_n_layers_enc': 5,\n", + " 'tf_n_head': 32,\n", + " 'tf_activation_final': ml_utility_loss.activations.LeakyHardtanh,\n", + " 'ada_d_hid': 64,\n", + " 'ada_n_layers': 6,\n", + " 'ada_activation': torch.nn.modules.activation.ReLU,\n", + " 'ada_activation_final': ml_utility_loss.activations.LeakyHardtanh,\n", + " 'head_d_hid': 256,\n", + " 'head_n_layers': 8,\n", + " 'head_n_head': 2,\n", + " 'head_activation_final': ml_utility_loss.activations.LeakyHardsigmoid,\n", + " 'models': ['realtabformer'],\n", + " 'fixed_role_model': 'realtabformer',\n", + " 'max_seconds': 3600,\n", + " 'tf_lora': False,\n", + " 'tf_num_inds': 32,\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-23T13:40:23.555513Z", + "iopub.status.busy": "2024-07-23T13:40:23.555226Z", + "iopub.status.idle": "2024-07-23T13:40:23.697001Z", + "shell.execute_reply": "2024-07-23T13:40:23.696110Z" + }, + "papermill": { + "duration": 0.156849, + "end_time": "2024-07-23T13:40:23.698924", + "exception": false, + "start_time": "2024-07-23T13:40:23.542075", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "../../../../ml-utility-loss/ synthetics iris\n", + "Caching in ../../../../iris/_cache_aug_train/realtabformer/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/realtabformer/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/realtabformer/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/realtabformer/all inf False\n", + "split df ratio is 1\n", + "../../../../ml-utility-loss/bs_val/iris [0, 0]\n", + "Caching in ../../../../iris/_cache_synth/realtabformer/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/realtabformer/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-23T13:40:23.726684Z", + "iopub.status.busy": "2024-07-23T13:40:23.726396Z", + "iopub.status.idle": "2024-07-23T13:40:24.029806Z", + "shell.execute_reply": "2024-07-23T13:40:24.028980Z" + }, + "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.319525, + "end_time": "2024-07-23T13:40:24.031852", + "exception": false, + "start_time": "2024-07-23T13:40:23.712327", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Creating model of type \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[*] Embedding True True\n", + "['realtabformer'] 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-23T13:40:24.059781Z", + "iopub.status.busy": "2024-07-23T13:40:24.059468Z", + "iopub.status.idle": "2024-07-23T13:40:24.064697Z", + "shell.execute_reply": "2024-07-23T13:40:24.063794Z" + }, + "papermill": { + "duration": 0.021323, + "end_time": "2024-07-23T13:40:24.066642", + "exception": false, + "start_time": "2024-07-23T13:40:24.045319", + "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-23T13:40:24.092700Z", + "iopub.status.busy": "2024-07-23T13:40:24.092432Z", + "iopub.status.idle": "2024-07-23T13:40:24.099624Z", + "shell.execute_reply": "2024-07-23T13:40:24.098740Z" + }, + "papermill": { + "duration": 0.022627, + "end_time": "2024-07-23T13:40:24.101569", + "exception": false, + "start_time": "2024-07-23T13:40:24.078942", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "1391744" + ] + }, + "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-23T13:40:24.128085Z", + "iopub.status.busy": "2024-07-23T13:40:24.127751Z", + "iopub.status.idle": "2024-07-23T13:40:24.232587Z", + "shell.execute_reply": "2024-07-23T13:40:24.231686Z" + }, + "papermill": { + "duration": 0.120683, + "end_time": "2024-07-23T13:40:24.234689", + "exception": false, + "start_time": "2024-07-23T13:40:24.114006", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "========================================================================================================================\n", + "Layer (type:depth-idx) Output Shape Param #\n", + "========================================================================================================================\n", + "MLUtilitySingle [2, 120, 26784] --\n", + "├─Adapter: 1-1 [2, 120, 26784] --\n", + "│ └─Embedding: 2-1 [2, 120, 31, 864] (76,896)\n", + "│ └─TensorInductionPoint: 2-2 [31, 1] 31\n", + "│ └─Sequential: 2-3 [2, 120, 128] --\n", + "│ │ └─FeedForward: 3-1 [2, 120, 64] --\n", + "│ │ │ └─Linear: 4-1 [2, 120, 64] 55,360\n", + "│ │ │ └─ReLU: 4-2 [2, 120, 64] --\n", + "│ │ └─FeedForward: 3-2 [2, 120, 64] --\n", + "│ │ │ └─Linear: 4-3 [2, 120, 64] 4,160\n", + "│ │ │ └─ReLU: 4-4 [2, 120, 64] --\n", + "│ │ └─FeedForward: 3-3 [2, 120, 64] --\n", + "│ │ │ └─Linear: 4-5 [2, 120, 64] 4,160\n", + "│ │ │ └─ReLU: 4-6 [2, 120, 64] --\n", + "│ │ └─FeedForward: 3-4 [2, 120, 64] --\n", + "│ │ │ └─Linear: 4-7 [2, 120, 64] 4,160\n", + "│ │ │ └─ReLU: 4-8 [2, 120, 64] --\n", + "│ │ └─FeedForward: 3-5 [2, 120, 64] --\n", + "│ │ │ └─Linear: 4-9 [2, 120, 64] 4,160\n", + "│ │ │ └─ReLU: 4-10 [2, 120, 64] --\n", + "│ │ └─FeedForward: 3-6 [2, 120, 128] --\n", + "│ │ │ └─Linear: 4-11 [2, 120, 128] 8,320\n", + "│ │ │ └─LeakyHardtanh: 4-12 [2, 120, 128] --\n", + "├─Adapter: 1-2 [2, 30, 26784] (recursive)\n", + "│ └─Embedding: 2-4 [2, 30, 31, 864] (recursive)\n", + "│ └─TensorInductionPoint: 2-5 [31, 1] (recursive)\n", + "│ └─Sequential: 2-6 [2, 30, 128] (recursive)\n", + "│ │ └─FeedForward: 3-7 [2, 30, 64] (recursive)\n", + "│ │ │ └─Linear: 4-13 [2, 30, 64] (recursive)\n", + "│ │ │ └─ReLU: 4-14 [2, 30, 64] --\n", + "│ │ └─FeedForward: 3-8 [2, 30, 64] (recursive)\n", + "│ │ │ └─Linear: 4-15 [2, 30, 64] (recursive)\n", + "│ │ │ └─ReLU: 4-16 [2, 30, 64] --\n", + "│ │ └─FeedForward: 3-9 [2, 30, 64] (recursive)\n", + "│ │ │ └─Linear: 4-17 [2, 30, 64] (recursive)\n", + "│ │ │ └─ReLU: 4-18 [2, 30, 64] --\n", + "│ │ └─FeedForward: 3-10 [2, 30, 64] (recursive)\n", + "│ │ │ └─Linear: 4-19 [2, 30, 64] (recursive)\n", + "│ │ │ └─ReLU: 4-20 [2, 30, 64] --\n", + "│ │ └─FeedForward: 3-11 [2, 30, 64] (recursive)\n", + "│ │ │ └─Linear: 4-21 [2, 30, 64] (recursive)\n", + "│ │ │ └─ReLU: 4-22 [2, 30, 64] --\n", + "│ │ └─FeedForward: 3-12 [2, 30, 128] (recursive)\n", + "│ │ │ └─Linear: 4-23 [2, 30, 128] (recursive)\n", + "│ │ │ └─LeakyHardtanh: 4-24 [2, 30, 128] --\n", + "├─TwinEncoder: 1-3 [2, 512] --\n", + "│ └─Encoder: 2-7 [2, 4, 128] --\n", + "│ │ └─ModuleList: 3-14 -- (recursive)\n", + "│ │ │ └─EncoderLayer: 4-25 [2, 120, 128] --\n", + "│ │ │ │ └─SimpleInducedSetAttention: 5-1 [2, 120, 128] --\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-1 [2, 32, 128] 4,096\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-2 [2, 32, 128] --\n", + "│ │ │ │ │ │ └─Linear: 7-1 [2, 32, 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, 32, 32, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-1 [2, 32, 32, 120] --\n", + "│ │ │ │ │ │ └─Linear: 7-5 [2, 32, 128] 16,512\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-6 [2, 32, 128] --\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-3 [2, 120, 128] --\n", + "│ │ │ │ │ │ └─Linear: 7-7 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-8 [2, 32, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-9 [2, 32, 128] 16,384\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-10 [2, 32, 120, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-2 [2, 32, 120, 32] --\n", + "│ │ │ │ │ │ └─Linear: 7-11 [2, 120, 128] 16,512\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-12 [2, 120, 128] --\n", + "│ │ │ │ └─DoubleFeedForward: 5-2 [2, 120, 128] --\n", + "│ │ │ │ │ └─Linear: 6-4 [2, 120, 32] 4,128\n", + "│ │ │ │ │ └─LeakyHardtanh: 6-5 [2, 120, 32] --\n", + "│ │ │ │ │ └─Linear: 6-6 [2, 120, 128] 4,224\n", + "│ │ │ └─EncoderLayer: 4-26 [2, 120, 128] --\n", + "│ │ │ │ └─SimpleInducedSetAttention: 5-3 [2, 120, 128] --\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-7 [2, 32, 128] 4,096\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-8 [2, 32, 128] --\n", + "│ │ │ │ │ │ └─Linear: 7-13 [2, 32, 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, 32, 32, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-3 [2, 32, 32, 120] --\n", + "│ │ │ │ │ │ └─Linear: 7-17 [2, 32, 128] 16,512\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-18 [2, 32, 128] --\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-9 [2, 120, 128] --\n", + "│ │ │ │ │ │ └─Linear: 7-19 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-20 [2, 32, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-21 [2, 32, 128] 16,384\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-22 [2, 32, 120, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-4 [2, 32, 120, 32] --\n", + "│ │ │ │ │ │ └─Linear: 7-23 [2, 120, 128] 16,512\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-24 [2, 120, 128] --\n", + "│ │ │ │ └─DoubleFeedForward: 5-4 [2, 120, 128] --\n", + "│ │ │ │ │ └─Linear: 6-10 [2, 120, 32] 4,128\n", + "│ │ │ │ │ └─LeakyHardtanh: 6-11 [2, 120, 32] --\n", + "│ │ │ │ │ └─Linear: 6-12 [2, 120, 128] 4,224\n", + "│ │ │ └─EncoderLayer: 4-27 [2, 120, 128] --\n", + "│ │ │ │ └─SimpleInducedSetAttention: 5-5 [2, 120, 128] --\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-13 [2, 32, 128] 4,096\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-14 [2, 32, 128] --\n", + "│ │ │ │ │ │ └─Linear: 7-25 [2, 32, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-26 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-27 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-28 [2, 32, 32, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-5 [2, 32, 32, 120] --\n", + "│ │ │ │ │ │ └─Linear: 7-29 [2, 32, 128] 16,512\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-30 [2, 32, 128] --\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-15 [2, 120, 128] --\n", + "│ │ │ │ │ │ └─Linear: 7-31 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-32 [2, 32, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-33 [2, 32, 128] 16,384\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-34 [2, 32, 120, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-6 [2, 32, 120, 32] --\n", + "│ │ │ │ │ │ └─Linear: 7-35 [2, 120, 128] 16,512\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-36 [2, 120, 128] --\n", + "│ │ │ │ └─DoubleFeedForward: 5-6 [2, 120, 128] --\n", + "│ │ │ │ │ └─Linear: 6-16 [2, 120, 32] 4,128\n", + "│ │ │ │ │ └─LeakyHardtanh: 6-17 [2, 120, 32] --\n", + "│ │ │ │ │ └─Linear: 6-18 [2, 120, 128] 4,224\n", + "│ │ │ └─EncoderLayer: 4-28 [2, 120, 128] --\n", + "│ │ │ │ └─SimpleInducedSetAttention: 5-7 [2, 120, 128] --\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-19 [2, 32, 128] 4,096\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-20 [2, 32, 128] --\n", + "│ │ │ │ │ │ └─Linear: 7-37 [2, 32, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-38 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-39 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-40 [2, 32, 32, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-7 [2, 32, 32, 120] --\n", + "│ │ │ │ │ │ └─Linear: 7-41 [2, 32, 128] 16,512\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-42 [2, 32, 128] --\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-21 [2, 120, 128] --\n", + "│ │ │ │ │ │ └─Linear: 7-43 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-44 [2, 32, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-45 [2, 32, 128] 16,384\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-46 [2, 32, 120, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-8 [2, 32, 120, 32] --\n", + "│ │ │ │ │ │ └─Linear: 7-47 [2, 120, 128] 16,512\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-48 [2, 120, 128] --\n", + "│ │ │ │ └─DoubleFeedForward: 5-8 [2, 120, 128] --\n", + "│ │ │ │ │ └─Linear: 6-22 [2, 120, 32] 4,128\n", + "│ │ │ │ │ └─LeakyHardtanh: 6-23 [2, 120, 32] --\n", + "│ │ │ │ │ └─Linear: 6-24 [2, 120, 128] 4,224\n", + "│ │ │ └─EncoderLayer: 4-29 [2, 4, 128] --\n", + "│ │ │ │ └─SimpleInducedSetAttention: 5-9 [2, 120, 128] --\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-25 [2, 32, 128] 4,096\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-26 [2, 32, 128] --\n", + "│ │ │ │ │ │ └─Linear: 7-49 [2, 32, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-50 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-51 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-52 [2, 32, 32, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-9 [2, 32, 32, 120] --\n", + "│ │ │ │ │ │ └─Linear: 7-53 [2, 32, 128] 16,512\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-54 [2, 32, 128] --\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-27 [2, 120, 128] --\n", + "│ │ │ │ │ │ └─Linear: 7-55 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-56 [2, 32, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-57 [2, 32, 128] 16,384\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-58 [2, 32, 120, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-10 [2, 32, 120, 32] --\n", + "│ │ │ │ │ │ └─Linear: 7-59 [2, 120, 128] 16,512\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-60 [2, 120, 128] --\n", + "│ │ │ │ └─DoubleFeedForward: 5-10 [2, 120, 128] --\n", + "│ │ │ │ │ └─Linear: 6-28 [2, 120, 32] 4,128\n", + "│ │ │ │ │ └─LeakyHardtanh: 6-29 [2, 120, 32] --\n", + "│ │ │ │ │ └─Linear: 6-30 [2, 120, 128] 4,224\n", + "│ │ │ │ └─PoolingByMultiheadAttention: 5-11 [2, 4, 128] --\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-31 [2, 4, 128] 512\n", + "│ │ │ │ │ └─SimpleMultiHeadAttention: 6-32 [2, 4, 128] --\n", + "│ │ │ │ │ │ └─Linear: 7-61 [2, 4, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-62 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─Linear: 7-63 [2, 120, 128] 16,384\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-64 [2, 32, 4, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-11 [2, 32, 4, 120] --\n", + "│ │ │ │ │ │ └─Linear: 7-65 [2, 4, 128] 16,512\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-66 [2, 4, 128] --\n", + "│ └─Encoder: 2-8 [2, 4, 128] (recursive)\n", + "│ │ └─ModuleList: 3-14 -- (recursive)\n", + "│ │ │ └─EncoderLayer: 4-30 [2, 30, 128] (recursive)\n", + "│ │ │ │ └─SimpleInducedSetAttention: 5-12 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-33 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-34 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-67 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-68 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-69 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-70 [2, 32, 32, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-12 [2, 32, 32, 30] --\n", + "│ │ │ │ │ │ └─Linear: 7-71 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-72 [2, 32, 128] --\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-35 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-73 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-74 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-75 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-76 [2, 32, 30, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-13 [2, 32, 30, 32] --\n", + "│ │ │ │ │ │ └─Linear: 7-77 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-78 [2, 30, 128] --\n", + "│ │ │ │ └─DoubleFeedForward: 5-13 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ └─Linear: 6-36 [2, 30, 32] (recursive)\n", + "│ │ │ │ │ └─LeakyHardtanh: 6-37 [2, 30, 32] --\n", + "│ │ │ │ │ └─Linear: 6-38 [2, 30, 128] (recursive)\n", + "│ │ │ └─EncoderLayer: 4-31 [2, 30, 128] (recursive)\n", + "│ │ │ │ └─SimpleInducedSetAttention: 5-14 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-39 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-40 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-79 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-80 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-81 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-82 [2, 32, 32, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-14 [2, 32, 32, 30] --\n", + "│ │ │ │ │ │ └─Linear: 7-83 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-84 [2, 32, 128] --\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-41 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-85 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-86 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-87 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-88 [2, 32, 30, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-15 [2, 32, 30, 32] --\n", + "│ │ │ │ │ │ └─Linear: 7-89 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-90 [2, 30, 128] --\n", + "│ │ │ │ └─DoubleFeedForward: 5-15 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ └─Linear: 6-42 [2, 30, 32] (recursive)\n", + "│ │ │ │ │ └─LeakyHardtanh: 6-43 [2, 30, 32] --\n", + "│ │ │ │ │ └─Linear: 6-44 [2, 30, 128] (recursive)\n", + "│ │ │ └─EncoderLayer: 4-32 [2, 30, 128] (recursive)\n", + "│ │ │ │ └─SimpleInducedSetAttention: 5-16 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-45 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-46 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-91 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-92 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-93 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-94 [2, 32, 32, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-16 [2, 32, 32, 30] --\n", + "│ │ │ │ │ │ └─Linear: 7-95 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-96 [2, 32, 128] --\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-47 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-97 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-98 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-99 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-100 [2, 32, 30, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-17 [2, 32, 30, 32] --\n", + "│ │ │ │ │ │ └─Linear: 7-101 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-102 [2, 30, 128] --\n", + "│ │ │ │ └─DoubleFeedForward: 5-17 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ └─Linear: 6-48 [2, 30, 32] (recursive)\n", + "│ │ │ │ │ └─LeakyHardtanh: 6-49 [2, 30, 32] --\n", + "│ │ │ │ │ └─Linear: 6-50 [2, 30, 128] (recursive)\n", + "│ │ │ └─EncoderLayer: 4-33 [2, 30, 128] (recursive)\n", + "│ │ │ │ └─SimpleInducedSetAttention: 5-18 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-51 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-52 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-103 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-104 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-105 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-106 [2, 32, 32, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-18 [2, 32, 32, 30] --\n", + "│ │ │ │ │ │ └─Linear: 7-107 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-108 [2, 32, 128] --\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-53 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-109 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-110 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-111 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-112 [2, 32, 30, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-19 [2, 32, 30, 32] --\n", + "│ │ │ │ │ │ └─Linear: 7-113 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-114 [2, 30, 128] --\n", + "│ │ │ │ └─DoubleFeedForward: 5-19 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ └─Linear: 6-54 [2, 30, 32] (recursive)\n", + "│ │ │ │ │ └─LeakyHardtanh: 6-55 [2, 30, 32] --\n", + "│ │ │ │ │ └─Linear: 6-56 [2, 30, 128] (recursive)\n", + "│ │ │ └─EncoderLayer: 4-34 [2, 4, 128] (recursive)\n", + "│ │ │ │ └─SimpleInducedSetAttention: 5-20 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-57 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-58 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-115 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-116 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-117 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-118 [2, 32, 32, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-20 [2, 32, 32, 30] --\n", + "│ │ │ │ │ │ └─Linear: 7-119 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-120 [2, 32, 128] --\n", + "│ │ │ │ │ └─MultiHeadAttention: 6-59 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-121 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-122 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-123 [2, 32, 128] (recursive)\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-124 [2, 32, 30, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-21 [2, 32, 30, 32] --\n", + "│ │ │ │ │ │ └─Linear: 7-125 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-126 [2, 30, 128] --\n", + "│ │ │ │ └─DoubleFeedForward: 5-21 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ └─Linear: 6-60 [2, 30, 32] (recursive)\n", + "│ │ │ │ │ └─LeakyHardtanh: 6-61 [2, 30, 32] --\n", + "│ │ │ │ │ └─Linear: 6-62 [2, 30, 128] (recursive)\n", + "│ │ │ │ └─PoolingByMultiheadAttention: 5-22 [2, 4, 128] (recursive)\n", + "│ │ │ │ │ └─TensorInductionPoint: 6-63 [2, 4, 128] (recursive)\n", + "│ │ │ │ │ └─SimpleMultiHeadAttention: 6-64 [2, 4, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-127 [2, 4, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-128 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─Linear: 7-129 [2, 30, 128] (recursive)\n", + "│ │ │ │ │ │ └─ScaledDotProductAttention: 7-130 [2, 32, 4, 4] --\n", + "│ │ │ │ │ │ │ └─Softmax: 8-22 [2, 32, 4, 30] --\n", + "│ │ │ │ │ │ └─Linear: 7-131 [2, 4, 128] (recursive)\n", + "│ │ │ │ │ │ └─LeakyHardsigmoid: 7-132 [2, 4, 128] --\n", + "├─Head: 1-4 [2] --\n", + "│ └─Sequential: 2-9 [2, 1] --\n", + "│ │ └─FeedForward: 3-15 [2, 256] --\n", + "│ │ │ └─Linear: 4-35 [2, 256] 131,328\n", + "│ │ │ └─ReLU6: 4-36 [2, 256] --\n", + "│ │ └─FeedForward: 3-16 [2, 256] --\n", + "│ │ │ └─Linear: 4-37 [2, 256] 65,792\n", + "│ │ │ └─ReLU6: 4-38 [2, 256] --\n", + "│ │ └─FeedForward: 3-17 [2, 256] --\n", + "│ │ │ └─Linear: 4-39 [2, 256] 65,792\n", + "│ │ │ └─ReLU6: 4-40 [2, 256] --\n", + "│ │ └─FeedForward: 3-18 [2, 256] --\n", + "│ │ │ └─Linear: 4-41 [2, 256] 65,792\n", + "│ │ │ └─ReLU6: 4-42 [2, 256] --\n", + "│ │ └─FeedForward: 3-19 [2, 256] --\n", + "│ │ │ └─Linear: 4-43 [2, 256] 65,792\n", + "│ │ │ └─ReLU6: 4-44 [2, 256] --\n", + "│ │ └─FeedForward: 3-20 [2, 256] --\n", + "│ │ │ └─Linear: 4-45 [2, 256] 65,792\n", + "│ │ │ └─ReLU6: 4-46 [2, 256] --\n", + "│ │ └─FeedForward: 3-21 [2, 256] --\n", + "│ │ │ └─Linear: 4-47 [2, 256] 65,792\n", + "│ │ │ └─ReLU6: 4-48 [2, 256] --\n", + "│ │ └─FeedForward: 3-22 [2, 1] --\n", + "│ │ │ └─Linear: 4-49 [2, 1] 257\n", + "│ │ │ └─LeakyHardsigmoid: 4-50 [2, 1] --\n", + "========================================================================================================================\n", + "Total params: 1,468,640\n", + "Trainable params: 1,391,744\n", + "Non-trainable params: 76,896\n", + "Total mult-adds (M): 4.74\n", + "========================================================================================================================\n", + "Input size (MB): 0.04\n", + "Forward/backward pass size (MB): 77.39\n", + "Params size (MB): 5.87\n", + "Estimated Total Size (MB): 83.30\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-23T13:40:24.264991Z", + "iopub.status.busy": "2024-07-23T13:40:24.264154Z", + "iopub.status.idle": "2024-07-23T13:49:40.556158Z", + "shell.execute_reply": "2024-07-23T13:49:40.555108Z" + }, + "papermill": { + "duration": 556.309557, + "end_time": "2024-07-23T13:49:40.558433", + "exception": false, + "start_time": "2024-07-23T13:40:24.248876", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 datasets [805, 200, 200]\n", + "Creating model of type \n", + "[*] Embedding True True\n", + "g_loss_mul 0.2\n", + "Epoch 0\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.05545322128704616, 'avg_role_model_std_loss': 6.37872093734712, 'avg_role_model_mean_pred_loss': 0.0058031086864344696, 'avg_role_model_g_mag_loss': 3.7638982488501886, '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.056555797585419246, 'n_size': 805, 'n_batch': 26, 'duration': 25.082869052886963, 'duration_batch': 0.9647257328033447, 'duration_size': 0.03115884354395896, 'avg_pred_std': 0.2302369034061065}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.05653296947479248, 'avg_role_model_std_loss': 1.0082119447844369, 'avg_role_model_mean_pred_loss': 0.0073388222698122264, '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.05653296947479248, 'n_size': 200, 'n_batch': 7, 'duration': 5.4033849239349365, 'duration_batch': 0.7719121319907052, 'duration_size': 0.027016924619674684, 'avg_pred_std': 0.4277626233441489}\n", + "Epoch 1\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.09298929056580763, 'avg_role_model_std_loss': 29.781426311112366, 'avg_role_model_mean_pred_loss': 0.018756644218527026, 'avg_role_model_g_mag_loss': 2.0079383040437047, '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.0945778066234559, 'n_size': 805, 'n_batch': 26, 'duration': 25.07375144958496, 'duration_batch': 0.9643750557532678, 'duration_size': 0.03114751732867697, 'avg_pred_std': 0.2004415831134583}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.05188477247953415, 'avg_role_model_std_loss': 8.267627050834042, 'avg_role_model_mean_pred_loss': 0.0037753399834036827, '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.05188477247953415, 'n_size': 200, 'n_batch': 7, 'duration': 5.375553846359253, 'duration_batch': 0.7679362637656075, 'duration_size': 0.026877769231796265, 'avg_pred_std': 0.20930798032454082}\n", + "Epoch 2\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.08072966089159805, 'avg_role_model_std_loss': 41.261986145564784, 'avg_role_model_mean_pred_loss': 0.012199858494496308, 'avg_role_model_g_mag_loss': 1.3262565808266586, '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.08228209126069679, 'n_size': 805, 'n_batch': 26, 'duration': 25.40018606185913, 'duration_batch': 0.9769302331484281, 'duration_size': 0.031553026163800166, 'avg_pred_std': 0.18730456514570576}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.12116833329200745, 'avg_role_model_std_loss': 0.31429273954459597, 'avg_role_model_mean_pred_loss': 0.014527524299919605, '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.12116833329200745, 'n_size': 200, 'n_batch': 7, 'duration': 5.609527111053467, 'duration_batch': 0.8013610158647809, 'duration_size': 0.028047635555267333, 'avg_pred_std': 0.2787415555545262}\n", + "Epoch 3\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.12909120070453015, 'avg_role_model_std_loss': 20.05665251989649, 'avg_role_model_mean_pred_loss': 0.048288810947875245, 'avg_role_model_g_mag_loss': 0.8678272867054673, '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.13337953994455545, 'n_size': 805, 'n_batch': 26, 'duration': 25.630775690078735, 'duration_batch': 0.9857990650030283, 'duration_size': 0.03183947290693011, 'avg_pred_std': 0.22236485370936301}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.024622870720922948, 'avg_role_model_std_loss': 4.645669119698661, 'avg_role_model_mean_pred_loss': 0.0011761001090235367, '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.024622870720922948, 'n_size': 200, 'n_batch': 7, 'duration': 5.702103853225708, 'duration_batch': 0.8145862647465297, 'duration_size': 0.02851051926612854, 'avg_pred_std': 0.14845431063856399}\n", + "Epoch 4\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.025600095569323866, 'avg_role_model_std_loss': 1.946571768521188, 'avg_role_model_mean_pred_loss': 0.0006723746913329315, 'avg_role_model_g_mag_loss': 0.5002591918344083, '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.02600830172923226, 'n_size': 805, 'n_batch': 26, 'duration': 26.075796127319336, 'duration_batch': 1.0029152356661284, 'duration_size': 0.03239229332586253, 'avg_pred_std': 0.21982560908565155}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.09085785388946534, 'avg_role_model_std_loss': 23.405750955854142, 'avg_role_model_mean_pred_loss': 0.007897327579557896, '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.09085785388946534, 'n_size': 200, 'n_batch': 7, 'duration': 5.686258792877197, 'duration_batch': 0.8123226846967425, 'duration_size': 0.028431293964385988, 'avg_pred_std': 0.08520811530096191}\n", + "Epoch 5\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.023644074651858082, 'avg_role_model_std_loss': 2.7149344823600794, 'avg_role_model_mean_pred_loss': 0.0009012131397059239, 'avg_role_model_g_mag_loss': 0.40436799515108146, '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.024535682787019644, 'n_size': 805, 'n_batch': 26, 'duration': 26.249650955200195, 'duration_batch': 1.009601959815392, 'duration_size': 0.03260826205614931, 'avg_pred_std': 0.21432758753116316}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.010597299970686435, 'avg_role_model_std_loss': 0.052947812381067445, 'avg_role_model_mean_pred_loss': 0.000242134760665067, '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.010597299970686435, 'n_size': 200, 'n_batch': 7, 'duration': 5.658222198486328, 'duration_batch': 0.8083174569266183, 'duration_size': 0.02829111099243164, 'avg_pred_std': 0.25821420763220104}\n", + "Epoch 6\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.01566562409749868, 'avg_role_model_std_loss': 0.7781714178182972, 'avg_role_model_mean_pred_loss': 0.0003516692290663204, 'avg_role_model_g_mag_loss': 0.32915719062645243, '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.01592108525671296, 'n_size': 805, 'n_batch': 26, 'duration': 26.055318593978882, 'duration_batch': 1.002127638229957, 'duration_size': 0.032366855396247056, 'avg_pred_std': 0.21611053152726248}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.017454545609652997, 'avg_role_model_std_loss': 0.07818346966191062, 'avg_role_model_mean_pred_loss': 0.0009739351289761089, '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.017454545609652997, 'n_size': 200, 'n_batch': 7, 'duration': 5.5151708126068115, 'duration_batch': 0.7878815446581159, 'duration_size': 0.027575854063034057, 'avg_pred_std': 0.2746164862598692}\n", + "Epoch 7\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.019393095654082593, 'avg_role_model_std_loss': 1.9498155292323924, 'avg_role_model_mean_pred_loss': 0.0004879118645815352, 'avg_role_model_g_mag_loss': 0.31654649721169326, '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.019744071850310203, 'n_size': 805, 'n_batch': 26, 'duration': 25.598655700683594, 'duration_batch': 0.9845636807955228, 'duration_size': 0.03179957229898583, 'avg_pred_std': 0.22137853847100183}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.01732382271438837, 'avg_role_model_std_loss': 5.062975108623505, 'avg_role_model_mean_pred_loss': 0.00011896858856744075, '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.01732382271438837, 'n_size': 200, 'n_batch': 7, 'duration': 5.632629156112671, 'duration_batch': 0.8046613080160958, 'duration_size': 0.028163145780563354, 'avg_pred_std': 0.14509111429963792}\n", + "Epoch 8\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.014582198289055262, 'avg_role_model_std_loss': 1.2993242826213156, 'avg_role_model_mean_pred_loss': 0.00031192184176248274, 'avg_role_model_g_mag_loss': 0.254362179922021, '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.014828445077497766, 'n_size': 805, 'n_batch': 26, 'duration': 25.601452827453613, 'duration_batch': 0.9846712625943698, 'duration_size': 0.031803046990625604, 'avg_pred_std': 0.21372094091314536}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.014793073721230031, 'avg_role_model_std_loss': 0.1504713739933712, 'avg_role_model_mean_pred_loss': 0.0002611487785780753, '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.014793073721230031, 'n_size': 200, 'n_batch': 7, 'duration': 5.738629102706909, 'duration_batch': 0.8198041575295585, 'duration_size': 0.028693145513534545, 'avg_pred_std': 0.23739989740507944}\n", + "Epoch 9\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.011059814671008205, 'avg_role_model_std_loss': 0.41367330023460736, 'avg_role_model_mean_pred_loss': 0.00018777008003809039, 'avg_role_model_g_mag_loss': 0.2834473138038786, '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.011257729706967609, 'n_size': 805, 'n_batch': 26, 'duration': 25.254411935806274, 'duration_batch': 0.9713235359925491, 'duration_size': 0.03137194029292705, 'avg_pred_std': 0.22960687829897955}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.0155768071860075, 'avg_role_model_std_loss': 2.2522460821700014, 'avg_role_model_mean_pred_loss': 0.0004618389261941047, '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.0155768071860075, 'n_size': 200, 'n_batch': 7, 'duration': 5.728790521621704, 'duration_batch': 0.8183986459459577, 'duration_size': 0.028643952608108522, 'avg_pred_std': 0.20356714512620652}\n", + "Epoch 10\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.011868218541642802, 'avg_role_model_std_loss': 0.671250515151489, 'avg_role_model_mean_pred_loss': 0.00019695858103093388, 'avg_role_model_g_mag_loss': 0.2472076629074464, '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.012077011760058147, 'n_size': 805, 'n_batch': 26, 'duration': 25.183809757232666, 'duration_batch': 0.9686080675858718, 'duration_size': 0.031284235723270395, 'avg_pred_std': 0.21406008990911338}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.01089858808554709, 'avg_role_model_std_loss': 0.39993727586365174, 'avg_role_model_mean_pred_loss': 0.00023039687255732133, '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.01089858808554709, 'n_size': 200, 'n_batch': 7, 'duration': 5.458767652511597, 'duration_batch': 0.7798239503587995, 'duration_size': 0.027293838262557983, 'avg_pred_std': 0.2166088329894202}\n", + "Epoch 11\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.010728971021515982, 'avg_role_model_std_loss': 0.9294392787420432, 'avg_role_model_mean_pred_loss': 0.00016761753961919788, 'avg_role_model_g_mag_loss': 0.17734118301120605, '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.010911444606988327, 'n_size': 805, 'n_batch': 26, 'duration': 24.945944786071777, 'duration_batch': 0.9594594148489145, 'duration_size': 0.030988751287045688, 'avg_pred_std': 0.2104298698787506}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.01464691661298275, 'avg_role_model_std_loss': 0.26762139683289987, 'avg_role_model_mean_pred_loss': 0.0002482917004584806, '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.01464691661298275, 'n_size': 200, 'n_batch': 7, 'duration': 5.47876501083374, 'duration_batch': 0.7826807158333915, 'duration_size': 0.0273938250541687, 'avg_pred_std': 0.23086776265076228}\n", + "Epoch 12\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.009718549553657772, 'avg_role_model_std_loss': 0.3760666468319519, 'avg_role_model_mean_pred_loss': 0.00010633945294696036, 'avg_role_model_g_mag_loss': 0.16899726468583812, '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.009901283680958824, 'n_size': 805, 'n_batch': 26, 'duration': 24.973416090011597, 'duration_batch': 0.9605160034619845, 'duration_size': 0.031022877130449187, 'avg_pred_std': 0.21900731325149536}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.011185272485017777, 'avg_role_model_std_loss': 0.5537103562548639, 'avg_role_model_mean_pred_loss': 0.0003862373838819622, '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.011185272485017777, 'n_size': 200, 'n_batch': 7, 'duration': 5.566257476806641, 'duration_batch': 0.7951796395438058, 'duration_size': 0.027831287384033204, 'avg_pred_std': 0.22738107187407358}\n", + "Epoch 13\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.00937751111291025, 'avg_role_model_std_loss': 0.36761897029898066, 'avg_role_model_mean_pred_loss': 0.0001726570764572977, 'avg_role_model_g_mag_loss': 0.19955177871707064, '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.009541873344630929, 'n_size': 805, 'n_batch': 26, 'duration': 26.206302404403687, 'duration_batch': 1.0079347078616803, 'duration_size': 0.03255441292472508, 'avg_pred_std': 0.22536074083585006}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.009571458166465163, 'avg_role_model_std_loss': 0.27349922174055663, 'avg_role_model_mean_pred_loss': 0.00027529471986781573, '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.009571458166465163, 'n_size': 200, 'n_batch': 7, 'duration': 5.963040590286255, 'duration_batch': 0.851862941469465, 'duration_size': 0.029815202951431273, 'avg_pred_std': 0.23318991490772792}\n", + "Epoch 14\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.010179014594195792, 'avg_role_model_std_loss': 0.3470959917154127, 'avg_role_model_mean_pred_loss': 0.00021436045003469625, 'avg_role_model_g_mag_loss': 0.15473558980485666, '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.01035696392566521, 'n_size': 805, 'n_batch': 26, 'duration': 25.450120210647583, 'duration_batch': 0.9788507773325994, 'duration_size': 0.03161505616229513, 'avg_pred_std': 0.21936667825166994}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.009403326213359833, 'avg_role_model_std_loss': 0.7416889981666047, 'avg_role_model_mean_pred_loss': 0.0002226516607333906, '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.009403326213359833, 'n_size': 200, 'n_batch': 7, 'duration': 5.6182777881622314, 'duration_batch': 0.8026111125946045, 'duration_size': 0.028091388940811157, 'avg_pred_std': 0.2015845285994666}\n", + "Epoch 15\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.008587339533180553, 'avg_role_model_std_loss': 0.3251583275309363, 'avg_role_model_mean_pred_loss': 0.00012288650377401908, 'avg_role_model_g_mag_loss': 0.17342760592513942, '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.008733580242958129, 'n_size': 805, 'n_batch': 26, 'duration': 26.36291193962097, 'duration_batch': 1.0139581515238836, 'duration_size': 0.032748958931206176, 'avg_pred_std': 0.22641022961873275}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.010773870572447776, 'avg_role_model_std_loss': 0.05581411087353315, 'avg_role_model_mean_pred_loss': 0.0004966924425389152, '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.010773870572447776, 'n_size': 200, 'n_batch': 7, 'duration': 6.150816202163696, 'duration_batch': 0.878688028880528, 'duration_size': 0.03075408101081848, 'avg_pred_std': 0.25374425096171244}\n", + "Epoch 16\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.00861285461274826, 'avg_role_model_std_loss': 0.3616687789550409, 'avg_role_model_mean_pred_loss': 0.0001955673897902659, 'avg_role_model_g_mag_loss': 0.17290803958540377, '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.008759029352493723, 'n_size': 805, 'n_batch': 26, 'duration': 26.303098440170288, 'duration_batch': 1.0116576323142419, 'duration_size': 0.03267465644741651, 'avg_pred_std': 0.22373252648573655}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.01276235720142722, 'avg_role_model_std_loss': 1.0438688317579883, 'avg_role_model_mean_pred_loss': 0.00032330815156456083, '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.01276235720142722, 'n_size': 200, 'n_batch': 7, 'duration': 5.648669242858887, 'duration_batch': 0.8069527489798409, 'duration_size': 0.028243346214294432, 'avg_pred_std': 0.19932425234998977}\n", + "Stopped False\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Eval loss {'role_model': 'realtabformer', 'n_size': 200, 'n_batch': 7, 'role_model_metrics': {'avg_loss': 0.01421466026455164, 'avg_g_mag_loss': 0.03472744574770331, 'avg_g_cos_loss': 0.00018597386777400972, 'pred_duration': 0.22537732124328613, 'grad_duration': 0.11101078987121582, 'total_duration': 0.33638811111450195, 'pred_std': 0.21401745080947876, 'std_loss': 0.016936250030994415, 'mean_pred_loss': 0.0004093584429938346, 'pred_rmse': 0.11922524869441986, 'pred_mae': 0.08447698503732681, 'pred_mape': 0.19060228765010834, 'grad_rmse': 0.49317049980163574, 'grad_mae': 0.17931289970874786, 'grad_mape': 1.565156102180481}, '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.01421466026455164, 'avg_g_mag_loss': 0.03472744574770331, 'avg_g_cos_loss': 0.00018597386777400972, 'avg_pred_duration': 0.22537732124328613, 'avg_grad_duration': 0.11101078987121582, 'avg_total_duration': 0.33638811111450195, 'avg_pred_std': 0.21401745080947876, 'avg_std_loss': 0.016936250030994415, 'avg_mean_pred_loss': 0.0004093584429938346}, 'min_metrics': {'avg_loss': 0.01421466026455164, 'avg_g_mag_loss': 0.03472744574770331, 'avg_g_cos_loss': 0.00018597386777400972, 'pred_duration': 0.22537732124328613, 'grad_duration': 0.11101078987121582, 'total_duration': 0.33638811111450195, 'pred_std': 0.21401745080947876, 'std_loss': 0.016936250030994415, 'mean_pred_loss': 0.0004093584429938346, 'pred_rmse': 0.11922524869441986, 'pred_mae': 0.08447698503732681, 'pred_mape': 0.19060228765010834, 'grad_rmse': 0.49317049980163574, 'grad_mae': 0.17931289970874786, 'grad_mape': 1.565156102180481}, 'model_metrics': {'realtabformer': {'avg_loss': 0.01421466026455164, 'avg_g_mag_loss': 0.03472744574770331, 'avg_g_cos_loss': 0.00018597386777400972, 'pred_duration': 0.22537732124328613, 'grad_duration': 0.11101078987121582, 'total_duration': 0.33638811111450195, 'pred_std': 0.21401745080947876, 'std_loss': 0.016936250030994415, 'mean_pred_loss': 0.0004093584429938346, 'pred_rmse': 0.11922524869441986, 'pred_mae': 0.08447698503732681, 'pred_mape': 0.19060228765010834, 'grad_rmse': 0.49317049980163574, 'grad_mae': 0.17931289970874786, 'grad_mape': 1.565156102180481}}}\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-23T13:49:40.596255Z", + "iopub.status.busy": "2024-07-23T13:49:40.595924Z", + "iopub.status.idle": "2024-07-23T13:49:40.600183Z", + "shell.execute_reply": "2024-07-23T13:49:40.599289Z" + }, + "papermill": { + "duration": 0.025914, + "end_time": "2024-07-23T13:49:40.602220", + "exception": false, + "start_time": "2024-07-23T13:49:40.576306", + "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-23T13:49:40.635754Z", + "iopub.status.busy": "2024-07-23T13:49:40.635460Z", + "iopub.status.idle": "2024-07-23T13:49:40.676655Z", + "shell.execute_reply": "2024-07-23T13:49:40.675953Z" + }, + "papermill": { + "duration": 0.060263, + "end_time": "2024-07-23T13:49:40.678562", + "exception": false, + "start_time": "2024-07-23T13:49:40.618299", + "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-23T13:49:40.715223Z", + "iopub.status.busy": "2024-07-23T13:49:40.714937Z", + "iopub.status.idle": "2024-07-23T13:49:40.920028Z", + "shell.execute_reply": "2024-07-23T13:49:40.919180Z" + }, + "papermill": { + "duration": 0.226287, + "end_time": "2024-07-23T13:49:40.922092", + "exception": false, + "start_time": "2024-07-23T13:49:40.695805", + "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-23T13:49:40.957185Z", + "iopub.status.busy": "2024-07-23T13:49:40.956873Z", + "iopub.status.idle": "2024-07-23T13:49:47.648543Z", + "shell.execute_reply": "2024-07-23T13:49:47.647690Z" + }, + "papermill": { + "duration": 6.711827, + "end_time": "2024-07-23T13:49:47.650903", + "exception": false, + "start_time": "2024-07-23T13:49:40.939076", + "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-23T13:49:47.687643Z", + "iopub.status.busy": "2024-07-23T13:49:47.687319Z", + "iopub.status.idle": "2024-07-23T13:49:47.707825Z", + "shell.execute_reply": "2024-07-23T13:49:47.706913Z" + }, + "papermill": { + "duration": 0.041158, + "end_time": "2024-07-23T13:49:47.709864", + "exception": false, + "start_time": "2024-07-23T13:49:47.668706", + "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
realtabformer0.0000160.0371980.0142150.1088760.1793131.5651560.493170.0004090.220070.0844770.1906020.1192250.2140170.0169360.328945
\n", + "
" + ], + "text/plain": [ + " avg_g_cos_loss avg_g_mag_loss avg_loss grad_duration \\\n", + "realtabformer 0.000016 0.037198 0.014215 0.108876 \n", + "\n", + " grad_mae grad_mape grad_rmse mean_pred_loss pred_duration \\\n", + "realtabformer 0.179313 1.565156 0.49317 0.000409 0.22007 \n", + "\n", + " pred_mae pred_mape pred_rmse pred_std std_loss \\\n", + "realtabformer 0.084477 0.190602 0.119225 0.214017 0.016936 \n", + "\n", + " total_duration \n", + "realtabformer 0.328945 " + ] + }, + "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-23T13:49:47.744606Z", + "iopub.status.busy": "2024-07-23T13:49:47.744327Z", + "iopub.status.idle": "2024-07-23T13:49:48.028034Z", + "shell.execute_reply": "2024-07-23T13:49:48.027049Z" + }, + "papermill": { + "duration": 0.303429, + "end_time": "2024-07-23T13:49:48.029961", + "exception": false, + "start_time": "2024-07-23T13:49:47.726532", + "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-23T13:49:48.067490Z", + "iopub.status.busy": "2024-07-23T13:49:48.067173Z", + "iopub.status.idle": "2024-07-23T13:49:54.536256Z", + "shell.execute_reply": "2024-07-23T13:49:54.535391Z" + }, + "papermill": { + "duration": 6.490546, + "end_time": "2024-07-23T13:49:54.538539", + "exception": false, + "start_time": "2024-07-23T13:49:48.047993", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Caching in ../../../../iris/_cache_aug_test/realtabformer/all inf False\n", + "Caching in ../../../../iris/_cache_bs_test/realtabformer/all inf False\n", + "Caching in ../../../../iris/_cache_synth_test/realtabformer/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-23T13:49:54.576134Z", + "iopub.status.busy": "2024-07-23T13:49:54.575801Z", + "iopub.status.idle": "2024-07-23T13:49:54.590511Z", + "shell.execute_reply": "2024-07-23T13:49:54.589615Z" + }, + "papermill": { + "duration": 0.035581, + "end_time": "2024-07-23T13:49:54.592478", + "exception": false, + "start_time": "2024-07-23T13:49:54.556897", + "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-23T13:49:54.628636Z", + "iopub.status.busy": "2024-07-23T13:49:54.627864Z", + "iopub.status.idle": "2024-07-23T13:49:54.633195Z", + "shell.execute_reply": "2024-07-23T13:49:54.632314Z" + }, + "papermill": { + "duration": 0.025505, + "end_time": "2024-07-23T13:49:54.635357", + "exception": false, + "start_time": "2024-07-23T13:49:54.609852", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'realtabformer': 0.7686409778892994}\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-23T13:49:54.671723Z", + "iopub.status.busy": "2024-07-23T13:49:54.671438Z", + "iopub.status.idle": "2024-07-23T13:49:55.067370Z", + "shell.execute_reply": "2024-07-23T13:49:55.065934Z" + }, + "papermill": { + "duration": 0.416824, + "end_time": "2024-07-23T13:49:55.069542", + "exception": false, + "start_time": "2024-07-23T13:49:54.652718", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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Xo9OgXOGaInuYIUDr0/WoQqXsCa61atXM2HCBP+409zcXN59990zvue1115jzJgxWCwWzj33XN55551eilaIsyusdAAwPDESRVFIibYQYdLj8vg4Xt0Y5ugGr7AmuqFDh/I///M/bN++nW3btnHZZZdxzTXXsHfv3g7Lb968mZtvvpnbb7+dnTt3kpeXR15eHnv27OnlyPs/l8sV7hAGHFVVKTqp9b/MTLAB2sD0YfHa74UnHGGLbbALa6K7+uqrmTNnDqNGjWL06NH89re/JTIyks8++6zD8o899hhXXnklv/zlLxk7diwPP/wwkydP5s9//nPIY3V5fJ0+PF5fl8u6u1g2UDNnzmTx4sUsXrwYu91OQkIC//Vf/0XLsr2ZmZk8/PDDzJs3j+joaO68804APvnkEy6++GKsVivp6encfffdOBynvpDl5eVcffXVWK1WsrKyeOmllwKObbCobnDT6PJi0Gk1uRbpcVYASqqbwhXaoNdn7rp6vV5ee+01HA4Hubm5HZbZsmULS5YsabNt9uzZrF27ttP9Op1OnE6n/3ltbW234nvi4wOdvpaVYCNv0hD/86c3HcTt7fh6zNBYK9efd2riz2c/PUyjq/1Qs59/Z3TAMT733HPcfvvtbN26lW3btnHnnXeSkZHBHXfcAcAf//hHli9f7l+d/uDBg1x55ZX893//N88++ywVFRX+ZLlmzRoAFixYwPHjx/n4448xGo3cfffdlJeXBxzbYFBSoyWypGgzet2pjuZDYqyMTY1maKw1XKENemFPdLt37yY3N5empiYiIyN58803GTduXIdlS0tLSU5ObrMtOTmZ0tLO+ymtWLGCBx98MKgx91Xp6ek88sgjKIpCdnY2u3fv5pFHHvEnussuu4xf/OIX/vILFy7kRz/6Effeey8Ao0aN4k9/+hMzZsxg9erVFBcX8+6777J161bOP/98AP76178yduzYXj+3/qC0VrsGl2Jvm9BiIkxcOT4lHCGJZmFPdNnZ2ezatYuamhpef/115s+fz8aNGztNdoFatmxZm1pgy+ylgVp06chOX9OdNkrszktGdFr29BFlt12YFXAsnbngggvaDFnLzc1l5cqV/skJzjvvvDblv/zyS7766qs2zVFVVf1D4fbt24fBYGDKlCn+18eMGUNMTEzQYh5ILEY9MRFGUu2DezRIXxT2RGcy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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-23T13:49:55.130170Z", + "iopub.status.busy": "2024-07-23T13:49:55.129725Z", + "iopub.status.idle": "2024-07-23T13:49:55.511906Z", + "shell.execute_reply": "2024-07-23T13:49:55.509824Z" + }, + "papermill": { + "duration": 0.412484, + "end_time": "2024-07-23T13:49:55.515124", + "exception": false, + "start_time": "2024-07-23T13:49:55.102640", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAToAAAEmCAYAAADyVly8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJEUlEQVR4nO3deXxU9b34/9eZPZNkJvuekLCFnQAKBhfQUlGoNdUqtb8KCNreW+wt5WKV3vvFqrdNe1tUWqloLURrKdYNb12gFAUqIMoSBIQAARKW7CSZzCSZ9fz+OJkhIQlkkplMls/z8ciDzJkzZ96HZN757B9JlmUZQRCEAUwV6gAEQRCCTSQ6QRAGPJHoBEEY8ESiEwRhwBOJThCEAU8kOkEQBjyR6ARBGPBEohMEYcDThDqA3ubxeLh48SKRkZFIkhTqcARBuIIsyzQ0NJCSkoJKFZiy2KBLdBcvXiQ9PT3UYQiCcA3nzp0jLS0tINcadIkuMjISUP4TTSZTiKMRBOFKFouF9PR032c1EAZdovNWV00mk0h0gtCHBbJpSXRGCIIw4IlEJwjCgCcSnSAIA96ga6PrClmWcblcuN3uUIci9ENarRa1Wh3qMIRWRKK7gsPhoKysjMbGxlCHIvRTkiSRlpZGREREqEMRWohE14rH4+HMmTOo1WpSUlLQ6XRiULHgF1mWqaqq4vz584wYMUKU7PoIkehacTgceDwe0tPTMRqNoQ5H6Kfi4+M5e/YsTqeTGpsTU5gWg1YkvFASnREdCNS0E2Fw8tYCZFnmk6JKthwtD3FEgijRCUKAefebana6qbDYcXtkztc2khYtagmhIooughBAHo9MbaMTu9ONTqNmTLIy++bIhfoQRza4hTTRvfjii0yYMME3HSs3N5ePPvroqq958803GTVqFAaDgfHjx/Phhx/2UrSDz9mzZ5EkicLCwl65zq5duxg/fjxarZa8vLwevWeo2F0ePLKM0yOjkmBsqpLoiqtsuD1iZ9FQCWmiS0tL41e/+hX79+9n37593Hbbbdx9990cPXq0w/N3797NAw88wOLFizl48CB5eXnk5eVx5MiRXo58cNq+fTuSJFFXVxeU6y9btoycnBzOnDlDQUFBUN4j2BwuZeylViUhSRJJJgNGnRqHy8PFuqYQRzd4hTTR3XXXXcyZM4cRI0YwcuRIfvGLXxAREcFnn33W4fmrV6/mjjvu4LHHHmP06NE888wzTJ48mRdeeKGXI+/7HA5HqEPwW3FxMbfddhtpaWlERUV16xq9ed/egeWtH9vdHgDUauWjJUkSQ2LDAThbY+u12IS2+kwbndvtZuPGjdhsNnJzczs8Z8+ePcyaNavNsdmzZ7Nnz56gx+dweTr9crX8cnflXGcXz/XXzJkzefTRR1m6dClxcXHMnj2bI0eOcOeddxIREUFiYiIPPvgg1dXVvtds3ryZm266iaioKGJjY/nGN75BcXFxh9c/e/Yst956KwDR0dFIksTChQv9us7x48eZPn06BoOBcePGsWPHDt+1JUmipqaGRYsWIUmSr0S3Y8cOpk6dil6vJzk5mSeeeKJNcunovr0lzy1btjBp0iTCwsK47bbbqKys5KOPPmL06NGYTCa++93vthkY7vF4yM/PJysri7CwMCZOnMhbb73le9573Y8++ogpU6ag1+v59NNPfc+7PTIt/RCoW42/TI8JA6CsrvmaP0chOELe63r48GFyc3Npbm4mIiKCd999lzFjxnR4bnl5OYmJiW2OJSYmUl7eefe93W7Hbrf7Hlsslm7FueaTU50+lxUXTt6kVN/jl3cW43R33B6TFh3GfdddXvhz3a4zNDnaTzX7yddH+h3jq6++yr//+7+za9cu6urquO2223j44Yd57rnnaGpq4vHHH+f+++/n448/BsBms7Fs2TImTJiA1Wpl5cqVfOtb36KwsLDdEJv09HTefvtt7r33XoqKijCZTISFhfl1nccee4znn3+eMWPG8Oyzz3LXXXdx5swZ0tPTKSsrIzs7m6effpp58+ZhNpu5cOECc+bMYeHChbz22mscP36cRx55BIPBwM9//vMO7xugrKwMgJ///Oe88MILGI1G7r//fu6//370ej0bNmzAarXyrW99i9///vc8/vjjAOTn5/P666+zdu1aRowYwc6dO/ne975HfHw8M2bM8L3fE088wW9/+1uGDh1KdHS077j3Z65RSbQeZ54aFcboZBNp0WF+/0yFwAh5osvOzqawsJD6+nreeustFixYwI4dOzpNdv7Kz8/nqaeeCsi1+roRI0bwv//7vwD8z//8D5MmTeKXv/yl7/l169aRnp7OiRMnGDlyJPfee2+b169bt474+Hi++uorxo0b1+Y5tVpNTEwMAAkJCW2qll29zqOP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", + "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-23T13:49:55.556244Z", + "iopub.status.busy": "2024-07-23T13:49:55.555539Z", + "iopub.status.idle": "2024-07-23T13:49:55.792227Z", + "shell.execute_reply": "2024-07-23T13:49:55.791189Z" + }, + "papermill": { + "duration": 0.259892, + "end_time": "2024-07-23T13:49:55.794528", + "exception": false, + "start_time": "2024-07-23T13:49:55.534636", + "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-23T13:49:55.835443Z", + "iopub.status.busy": "2024-07-23T13:49:55.834855Z", + "iopub.status.idle": "2024-07-23T13:49:56.147575Z", + "shell.execute_reply": "2024-07-23T13:49:56.146493Z" + }, + "papermill": { + "duration": 0.335572, + "end_time": "2024-07-23T13:49:56.149801", + "exception": false, + "start_time": "2024-07-23T13:49:55.814229", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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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.022083, + "end_time": "2024-07-23T13:49:56.191728", + "exception": false, + "start_time": "2024-07-23T13:49:56.169645", + "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": 586.014025, + "end_time": "2024-07-23T13:49:58.037005", + "environment_variables": {}, + "exception": null, + "input_path": "eval/iris/realtabformer/0/mlu-eval.ipynb", + "output_path": "eval/iris/realtabformer/0/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/realtabformer/0", + "path_prefix": "../../../../", + "random_seed": 0, + "single_model": "realtabformer" + }, + "start_time": "2024-07-23T13:40:12.022980", + "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/realtabformer/0/model.pt b/iris/realtabformer/0/model.pt new file mode 100644 index 0000000000000000000000000000000000000000..0a87c4e77ac0cb9fa077c38defc93805c383bfe3 --- /dev/null +++ b/iris/realtabformer/0/model.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e891368e422c214c00cf81a92320144cc6088bd8c9293c5dedd157893c8bb30 +size 5937089 diff --git a/iris/realtabformer/0/params.json b/iris/realtabformer/0/params.json new file mode 100644 index 0000000000000000000000000000000000000000..e2772763438c022a440e8056c3c96ab80af1e383 --- /dev/null +++ b/iris/realtabformer/0/params.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93f4067dc41f38d7dee1638127bed1a3069508a4d882394f1ec70bb6e1ec4d8c +size 1924 diff --git a/iris/realtabformer/0/pred/error.csv b/iris/realtabformer/0/pred/error.csv new file mode 100644 index 0000000000000000000000000000000000000000..30687c1d39d26e3d3ca1c290e0111e3bc8294d08 --- /dev/null +++ b/iris/realtabformer/0/pred/error.csv @@ -0,0 +1,201 @@ +,realtabformer +0,0.11082609 +1,0.45814484 +2,-0.007665515 +3,-0.035521448 +4,0.10163392 +5,0.4734442 +6,-0.063853264 +7,-0.06508976 +8,0.09358449 +9,0.030977428 +10,-0.02011609 +11,0.03625834 +12,0.1472124 +13,0.062549174 +14,0.078091264 +15,0.01942563 +16,0.12636824 +17,0.2657408 +18,-0.010205686 +19,-0.023616254 +20,0.11847152 +21,0.47832274 +22,-0.02289313 +23,0.0014424324 +24,0.11851339 +25,0.123268485 +26,-0.0582999 +27,-0.04719138 +28,0.091775134 +29,0.11513758 +30,-0.0024704933 +31,0.012694359 +32,0.1325932 +33,0.13613582 +34,-0.09589642 +35,-0.07395029 +36,0.12945606 +37,0.12332851 +38,0.008263946 +39,-0.084709704 +40,-0.08373162 +41,0.078435004 +42,-0.07120633 +43,0.14286953 +44,0.09123655 +45,0.106776476 +46,-0.075653136 +47,-0.066957235 +48,0.08707763 +49,0.08834612 +50,-0.053673744 +51,0.118852854 +52,0.1422518 +53,0.14258367 +54,-0.103123784 +55,-0.026498437 +56,0.065370485 +57,0.20850092 +58,-0.041480243 +59,0.067373276 +60,-0.04109946 +61,0.071563005 +62,-0.035020947 +63,-0.0145459175 +64,-0.041333795 +65,0.10523957 +66,-0.030784488 +67,-0.048824966 +68,-0.07081786 +69,0.0062918067 +70,0.0056144595 +71,0.12738311 +72,-0.24414885 +73,-0.056293488 +74,-0.037907958 +75,-0.13531321 +76,-0.061256707 +77,0.07044095 +78,-0.030462325 +79,-0.022295237 +80,-0.013427377 +81,0.052755713 +82,-0.06532097 +83,-0.0052031875 +84,0.18081048 +85,0.06737763 +86,-0.008045852 +87,-0.026439667 +88,0.09297286 +89,-0.028096735 +90,-0.009232521 +91,0.0031629205 +92,-0.24625903 +93,-0.058684766 +94,-0.08393532 +95,-0.123010635 +96,0.08873263 +97,0.08009392 +98,-0.00546211 +99,-0.06398511 +100,0.03895843 +101,0.060845613 +102,-0.07779008 +103,-0.055554986 +104,0.47297263 +105,0.10509616 +106,-0.07492578 +107,-0.037698627 +108,0.17889126 +109,0.062999904 +110,0.0043274164 +111,-0.003911972 +112,-0.18316904 +113,-0.015086591 +114,-0.10251737 +115,-0.09660399 +116,0.27190125 +117,0.093364954 +118,-0.015939832 +119,-0.080765605 +120,0.03310138 +121,0.030975103 +122,-0.055749416 +123,-0.018538535 +124,-0.019823015 +125,0.10530478 +126,-0.005641997 +127,0.003765285 +128,0.075372934 +129,-0.037608743 +130,-0.04468757 +131,-0.07007134 +132,-0.03850299 +133,-0.05946815 +134,-0.086034596 +135,-0.08771038 +136,-0.058590204 +137,0.07440251 +138,0.011293709 +139,0.15640414 +140,0.07600516 +141,0.15983087 +142,0.006709993 +143,-0.07674003 +144,-0.11078456 +145,0.047382712 +146,-0.049862564 +147,0.075297594 +148,0.30643564 +149,0.034133613 +150,-0.07708281 +151,-0.05755931 +152,0.00050634146 +153,-0.07320827 +154,-0.067496 +155,-0.12450248 +156,0.19362128 +157,0.09120542 +158,0.0024006367 +159,0.00069999695 +160,0.10435265 +161,0.20097488 +162,-0.07166445 +163,-0.045929432 +164,-0.11876258 +165,0.07211608 +166,-0.08542675 +167,-0.03915471 +168,0.2446023 +169,0.12770075 +170,-0.036053777 +171,-0.087397754 +172,0.003751874 +173,-0.06422913 +174,-0.103083014 +175,-0.10162872 +176,0.2526677 +177,-0.0075677037 +178,-0.03141588 +179,-0.013421893 +180,0.18557405 +181,0.27747923 +182,-0.07022154 +183,-0.038520575 +184,-0.05171019 +185,0.10527867 +186,-0.095540464 +187,0.016782165 +188,0.05218795 +189,-0.040474713 +190,-0.061906397 +191,-0.13811749 +192,-0.008578002 +193,-0.06418651 +194,0.022439599 +195,0.009653211 +196,-0.39791375 +197,0.015871644 +198,-0.034851372 +199,0.031587362 diff --git a/iris/realtabformer/0/pred/g.csv b/iris/realtabformer/0/pred/g.csv new file mode 100644 index 0000000000000000000000000000000000000000..f22d35d5aacb50d33103b5014039bb31d4a8f6b5 --- /dev/null +++ b/iris/realtabformer/0/pred/g.csv @@ -0,0 +1,201 @@ +,realtabformer +0,0.11082609 +1,0.45814484 +2,0.007665515 +3,0.035521448 +4,0.10163392 +5,0.4734442 +6,0.063853264 +7,0.06508976 +8,0.09358449 +9,0.030977428 +10,0.02011609 +11,0.03625834 +12,0.1472124 +13,0.062549174 +14,0.078091264 +15,0.01942563 +16,0.12636824 +17,0.2657408 +18,0.010205686 +19,0.023616254 +20,0.11847152 +21,0.47832274 +22,0.02289313 +23,0.0014424324 +24,0.11851339 +25,0.123268485 +26,0.0582999 +27,0.04719138 +28,0.091775134 +29,0.11513758 +30,0.0024704933 +31,0.012694359 +32,0.1325932 +33,0.13613582 +34,0.09589642 +35,0.07395029 +36,0.12945606 +37,0.12332851 +38,0.008263946 +39,0.084709704 +40,0.08373162 +41,0.078435004 +42,0.07120633 +43,0.14286953 +44,0.09123655 +45,0.106776476 +46,0.075653136 +47,0.066957235 +48,0.08707763 +49,0.08834612 +50,0.053673744 +51,0.118852854 +52,0.1422518 +53,0.14258367 +54,0.103123784 +55,0.026498437 +56,0.065370485 +57,0.20850092 +58,0.041480243 +59,0.067373276 +60,0.04109946 +61,0.071563005 +62,0.035020947 +63,0.0145459175 +64,0.041333795 +65,0.10523957 +66,0.030784488 +67,0.048824966 +68,0.07081786 +69,0.0062918067 +70,0.0056144595 +71,0.12738311 +72,0.24414885 +73,0.056293488 +74,0.037907958 +75,0.13531321 +76,0.061256707 +77,0.07044095 +78,0.030462325 +79,0.022295237 +80,0.013427377 +81,0.052755713 +82,0.06532097 +83,0.0052031875 +84,0.18081048 +85,0.06737763 +86,0.008045852 +87,0.026439667 +88,0.09297286 +89,0.028096735 +90,0.009232521 +91,0.0031629205 +92,0.24625903 +93,0.058684766 +94,0.08393532 +95,0.123010635 +96,0.08873263 +97,0.08009392 +98,0.00546211 +99,0.06398511 +100,0.03895843 +101,0.060845613 +102,0.07779008 +103,0.055554986 +104,0.47297263 +105,0.10509616 +106,0.07492578 +107,0.037698627 +108,0.17889126 +109,0.062999904 +110,0.0043274164 +111,0.003911972 +112,0.18316904 +113,0.015086591 +114,0.10251737 +115,0.09660399 +116,0.27190125 +117,0.093364954 +118,0.015939832 +119,0.080765605 +120,0.03310138 +121,0.030975103 +122,0.055749416 +123,0.018538535 +124,0.019823015 +125,0.10530478 +126,0.005641997 +127,0.003765285 +128,0.075372934 +129,0.037608743 +130,0.04468757 +131,0.07007134 +132,0.03850299 +133,0.05946815 +134,0.086034596 +135,0.08771038 +136,0.058590204 +137,0.07440251 +138,0.011293709 +139,0.15640414 +140,0.07600516 +141,0.15983087 +142,0.006709993 +143,0.07674003 +144,0.11078456 +145,0.047382712 +146,0.049862564 +147,0.075297594 +148,0.30643564 +149,0.034133613 +150,0.07708281 +151,0.05755931 +152,0.00050634146 +153,0.07320827 +154,0.067496 +155,0.12450248 +156,0.19362128 +157,0.09120542 +158,0.0024006367 +159,0.00069999695 +160,0.10435265 +161,0.20097488 +162,0.07166445 +163,0.045929432 +164,0.11876258 +165,0.07211608 +166,0.08542675 +167,0.03915471 +168,0.2446023 +169,0.12770075 +170,0.036053777 +171,0.087397754 +172,0.003751874 +173,0.06422913 +174,0.103083014 +175,0.10162872 +176,0.2526677 +177,0.0075677037 +178,0.03141588 +179,0.013421893 +180,0.18557405 +181,0.27747923 +182,0.07022154 +183,0.038520575 +184,0.05171019 +185,0.10527867 +186,0.095540464 +187,0.016782165 +188,0.05218795 +189,0.040474713 +190,0.061906397 +191,0.13811749 +192,0.008578002 +193,0.06418651 +194,0.022439599 +195,0.009653211 +196,0.39791375 +197,0.015871644 +198,0.034851372 +199,0.031587362 diff --git a/iris/realtabformer/0/pred/grad.csv b/iris/realtabformer/0/pred/grad.csv new file mode 100644 index 0000000000000000000000000000000000000000..59a87011d78ddd37258b45e4c14d513017939a96 --- /dev/null +++ b/iris/realtabformer/0/pred/grad.csv @@ -0,0 +1,201 @@ +,realtabformer +0,0.13966845 +1,3.727953 +2,0.0065257954 +3,0.015904984 +4,0.13436028 +5,4.295275 +6,0.17129318 +7,0.08779228 +8,0.13599557 +9,0.27116206 +10,0.025531754 +11,0.03129724 +12,0.14544947 +13,0.33402744 +14,0.086943634 +15,0.028429223 +16,0.13271289 +17,1.8263034 +18,0.01180155 +19,0.02889826 +20,0.13579415 +21,1.8917125 +22,0.030328713 +23,0.0014848104 +24,0.27048916 +25,0.4448689 +26,0.1050319 +27,0.059696004 +28,0.29625073 +29,0.73218304 +30,0.0051288866 +31,0.023670174 +32,0.1266724 +33,1.1266371 +34,0.07596771 +35,0.10311225 +36,0.20703967 +37,1.509388 +38,0.016827226 +39,0.17930004 +40,0.09996135 +41,0.22824274 +42,0.0795413 +43,0.14296545 +44,0.1681251 +45,0.003815381 +46,0.20128264 +47,0.081053495 +48,0.18018846 +49,0.6348598 +50,0.07339895 +51,0.15279251 +52,0.16936025 +53,0.77891815 +54,0.0616188 +55,0.04121688 +56,0.104631595 +57,1.7681994 +58,0.060029704 +59,0.10147135 +60,0.21817178 +61,0.27547622 +62,0.025005363 +63,0.016938403 +64,0.03319933 +65,0.004107401 +66,0.0410968 +67,0.052358624 +68,0.15417638 +69,0.030984852 +70,0.0078801345 +71,0.15533544 +72,0.19508563 +73,0.3231945 +74,0.045583375 +75,0.12519413 +76,0.18599124 +77,0.39405614 +78,0.0405722 +79,0.014860305 +80,0.0887605 +81,0.22102378 +82,0.03128887 +83,0.004843568 +84,0.16762511 +85,0.0030519017 +86,0.009173548 +87,0.028953815 +88,0.09275753 +89,0.13283288 +90,0.012721012 +91,0.004240849 +92,0.08094114 +93,0.3217632 +94,0.06541372 +95,0.1750281 +96,0.41620508 +97,0.49811015 +98,0.007880227 +99,0.07848804 +100,0.06507974 +101,0.23725449 +102,0.12347569 +103,0.1216312 +104,0.7102942 +105,0.0047478424 +106,0.17752881 +107,0.050636567 +108,0.7372115 +109,0.34038785 +110,0.008249217 +111,0.0034934217 +112,0.633265 +113,0.063749865 +114,0.07806287 +115,0.13674387 +116,1.0296131 +117,0.44540867 +118,0.022065934 +119,0.09163648 +120,0.05042024 +121,0.11866468 +122,0.057741296 +123,0.038476534 +124,0.013684826 +125,0.0037131077 +126,0.0108073205 +127,0.0049819043 +128,0.12281498 +129,0.17097817 +130,0.07486099 +131,0.10199536 +132,0.04156668 +133,0.47078943 +134,0.07439991 +135,0.10051364 +136,0.25023675 +137,0.36406544 +138,0.015182713 +139,0.20181786 +140,0.09051477 +141,0.64327884 +142,0.008579913 +143,0.2289537 +144,0.48050487 +145,0.21621118 +146,0.074100055 +147,0.13638574 +148,0.29277822 +149,0.22331603 +150,0.165541 +151,0.087568015 +152,0.00039372366 +153,0.49268413 +154,0.07159862 +155,0.14562234 +156,0.36462408 +157,0.004264557 +158,0.004854421 +159,0.0012125667 +160,0.15769291 +161,0.9441438 +162,0.061040398 +163,0.095277205 +164,0.4608221 +165,0.003046165 +166,0.22833075 +167,0.04933645 +168,0.29301378 +169,0.5769515 +170,0.049537785 +171,0.11797104 +172,0.002623006 +173,0.27645722 +174,0.10458678 +175,0.118839286 +176,0.44743705 +177,0.047782175 +178,0.03940865 +179,0.019010236 +180,0.24281523 +181,1.0920618 +182,0.094283536 +183,0.101510935 +184,0.14658733 +185,0.00396771 +186,0.17126529 +187,0.024136914 +188,0.039821263 +189,0.27674755 +190,0.119498566 +191,0.25731236 +192,0.0062702396 +193,0.410668 +194,0.025179762 +195,0.013742063 +196,3.0546525 +197,0.06861824 +198,0.038522407 +199,0.041301597 diff --git a/iris/realtabformer/0/pred/pred.csv b/iris/realtabformer/0/pred/pred.csv new file mode 100644 index 0000000000000000000000000000000000000000..8d1bd677f60608a5e62fe041bc52ea4906e2be9c --- /dev/null +++ b/iris/realtabformer/0/pred/pred.csv @@ -0,0 +1,201 @@ +,realtabformer +0,0.28968787 +1,0.80899024 +2,0.8947154 +3,0.8974605 +4,0.2804957 +5,0.882968 +6,0.90272987 +7,0.90080965 +8,0.26025116 +9,0.6896821 +10,0.8778018 +11,0.882598 +12,0.31387907 +13,0.6904458 +14,0.796642 +15,0.8051399 +16,0.2930349 +17,0.7094655 +18,0.8557876 +19,0.8788538 +20,0.2973333 +21,0.99145406 +22,0.8802098 +23,0.9038234 +24,0.29737517 +25,0.9527655 +26,0.9099541 +27,0.91732776 +28,0.2584418 +29,0.9210539 +30,0.8633317 +31,0.89339614 +32,0.29925987 +33,0.7312355 +34,0.78370225 +35,0.8260325 +36,0.29612273 +37,0.7899952 +38,0.84002936 +39,0.85261226 +40,0.33293504 +41,0.99081594 +42,0.8707129 +43,0.8901175 +44,0.27009833 +45,1.0001098 +46,0.92434686 +47,0.8996259 +48,0.2537443 +49,0.89426243 +50,0.8750062 +51,0.8927034 +52,0.30891848 +53,0.8616313 +54,0.79271483 +55,0.8094804 +56,0.2875927 +57,0.93271786 +58,0.8958417 +59,0.8727605 +60,0.3755672 +61,0.98394394 +62,0.90689826 +63,0.91843605 +64,0.5285587 +65,1.00024 +66,0.9024653 +67,0.91775817 +68,0.29969496 +69,0.92692673 +70,0.8714166 +71,0.86040735 +72,0.32727975 +73,0.8294208 +74,0.7980709 +75,0.7896868 +76,0.3803646 +77,0.9482187 +78,0.83553094 +79,0.88660747 +80,0.46805412 +81,0.96513665 +82,0.87659824 +83,0.936716 +84,0.62696433 +85,1.0000376 +86,0.92617023 +87,0.90622026 +88,0.31519508 +89,0.9303892 +90,0.88868535 +91,0.87538517 +92,0.32516956 +93,0.8209139 +94,0.78823173 +95,0.80810046 +96,0.46968502 +97,0.9889966 +98,0.8586773 +99,0.8754088 +100,0.5204399 +101,0.97322655 +102,0.8641291 +103,0.8863642 +104,0.6396393 +105,1.0000966 +106,0.9250742 +107,0.8935183 +108,0.40111348 +109,0.9055925 +110,0.8701296 +111,0.8667433 +112,0.38825956 +113,0.8706277 +114,0.79332125 +115,0.7992346 +116,0.42876402 +117,0.9636122 +118,0.8481996 +119,0.85862833 +120,0.5386086 +121,0.94335604 +122,0.8861698 +123,0.9233807 +124,0.55006945 +125,1.0003052 +126,0.89252007 +127,0.8987657 +128,0.58122087 +129,0.9208772 +130,0.8839924 +131,0.8884146 +132,0.5329256 +133,0.7938652 +134,0.78613245 +135,0.8030957 +136,0.41103214 +137,0.9833052 +138,0.88154095 +139,0.8549687 +140,0.55748665 +141,0.9773271 +142,0.86956936 +143,0.8942745 +144,0.4591079 +145,0.97859967 +146,0.9183914 +147,0.8904052 +148,0.52865785 +149,0.91648656 +150,0.85159713 +151,0.8731633 +152,0.57193494 +153,0.85271764 +154,0.80467105 +155,0.80049753 +156,0.5171507 +157,1.0001081 +158,0.8665401 +159,0.8670181 +160,0.58583415 +161,0.9980763 +162,0.87025476 +163,0.8959898 +164,0.45112988 +165,1.0001464 +166,0.91457325 +167,0.88881284 +168,0.5171169 +169,0.9475597 +170,0.89262617 +171,0.8710882 +172,0.5751805 +173,0.82148516 +174,0.78772306 +175,0.7983541 +176,0.538382 +177,0.901335 +178,0.8645117 +179,0.8528962 +180,0.5751393 +181,0.989512 +182,0.87169766 +183,0.90339863 +184,0.5181823 +185,1.0002791 +186,0.90445954 +187,0.91178256 +188,0.51357603 +189,0.85744315 +190,0.86677355 +191,0.8618825 +192,0.5628506 +193,0.8617394 +194,0.8042578 +195,0.80991673 +196,0.40102804 +197,0.9531936 +198,0.86107624 +199,0.8687047 diff --git a/iris/realtabformer/0/pred/y.csv b/iris/realtabformer/0/pred/y.csv new file mode 100644 index 0000000000000000000000000000000000000000..3f72bd3490b0bdb70028cf46af93594d7b81f18d --- /dev/null +++ b/iris/realtabformer/0/pred/y.csv @@ -0,0 +1,201 @@ +,realtabformer +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/realtabformer/0/pred/y_real.csv b/iris/realtabformer/0/pred/y_real.csv new file mode 100644 index 0000000000000000000000000000000000000000..69282ce96ed463b85e970d319dd0a33dac8483df --- /dev/null +++ b/iris/realtabformer/0/pred/y_real.csv @@ -0,0 +1,201 @@ +,realtabformer +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