diff --git a/iris/realtabformer/1/eval.csv b/iris/realtabformer/1/eval.csv new file mode 100644 index 0000000000000000000000000000000000000000..d367b14f41aab542f25eab5cf17897f50c08f653 --- /dev/null +++ b/iris/realtabformer/1/eval.csv @@ -0,0 +1,2 @@ +,avg_g_cos_loss,avg_g_mag_loss,avg_loss,grad_duration,grad_mae,grad_mape,grad_rmse,mean_pred_loss,pred_duration,pred_mae,pred_mape,pred_rmse,pred_std,std_loss,total_duration +realtabformer,0.0,0.021914598569273948,0.008057898432016373,0.10995793342590332,0.11519456654787064,1.6112604141235352,0.2859276831150055,0.00011251240357523784,0.21864533424377441,0.06098306179046631,0.13814952969551086,0.08976579457521439,0.2213732898235321,0.010461580939590931,0.32860326766967773 diff --git a/iris/realtabformer/1/history.csv b/iris/realtabformer/1/history.csv new file mode 100644 index 0000000000000000000000000000000000000000..122119cf941b0471329c125671a0445ab29291e4 --- /dev/null +++ b/iris/realtabformer/1/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.04035223267093208,1.5106512021196137,0.0025775292891176034,3.584861627720898,0.0,0.0,0.0,0.0,0.041278856180562,805,26,26.71958327293396,1.0276762797282293,0.03319202891047697,0.22644928842782974,0.04128301426768303,0.5929602065256664,0.0049905984569340945,0.0,0.0,0.0,0.0,0.0,0.04128301426768303,200,7,6.170211315155029,0.8814587593078613,0.030851056575775148,0.3803991121905191 +1,0.06649365921082519,10.036352791393606,0.00863176799622966,2.178119392868895,0.0,0.0,0.0,0.0,0.06761162099515244,805,26,27.09584665298462,1.0421479481917162,0.03365943683600574,0.18946315478891707,0.1167106756567955,14.731133724961962,0.02034130699932575,0.0,0.0,0.0,0.0,0.0,0.1167106756567955,200,7,6.496413946151733,0.9280591351645333,0.032482069730758664,0.10499821071113859 +2,0.0709905679088942,11.26746873380258,0.01148433793070061,1.4645538395235997,0.0,0.0,0.0,0.0,0.07357932938181835,805,26,28.517270803451538,1.0968181078250592,0.035425181122300045,0.2417534221536838,0.0574333530664444,0.9503730237483978,0.0074256163975223895,0.0,0.0,0.0,0.0,0.0,0.0574333530664444,200,7,5.761106491088867,0.8230152130126953,0.028805532455444337,0.4222025956426348 +3,0.056450563707961615,4.041280413881536,0.007213124340025546,0.9532235306982668,0.0,0.0,0.0,0.0,0.057691644914216876,805,26,25.189605474472046,0.9688309797873864,0.03129143537201497,0.3005542123260406,0.028426543846726417,0.9097847834761653,0.001645809921901673,0.0,0.0,0.0,0.0,0.0,0.028426543846726417,200,7,5.42231559753418,0.7746165139334542,0.027111577987670898,0.24728935531207494 +4,0.02162007026328063,1.4260286737659884,0.000667593625698489,0.5932542630604335,0.0,0.0,0.0,0.0,0.021986433862482908,805,26,24.984068393707275,0.9609257074502798,0.031036109805847548,0.2128926943271206,0.052243115454912184,16.18787387439183,0.0006995670188916847,0.0,0.0,0.0,0.0,0.0,0.052243115454912184,200,7,5.421942710876465,0.7745632444109235,0.027109713554382325,0.10095634417874473 +5,0.018971985156838754,2.0858888434382745,0.0004714754605047573,0.37194455734783816,0.0,0.0,0.0,0.0,0.019386234708847653,805,26,24.90958333015442,0.9580608973136315,0.03094358177658934,0.20448845295378795,0.013963545672595501,0.05566889598100845,0.0008415618928847835,0.0,0.0,0.0,0.0,0.0,0.013963545672595501,200,7,5.387285470962524,0.7696122101375035,0.026936427354812623,0.2710392751864025 +6,0.01433288793409278,0.9602983596736382,0.0003669036918548254,0.230285990293722,0.0,0.0,0.0,0.0,0.01457834640425277,805,26,24.96616268157959,0.9602370262145996,0.031013866685192036,0.22227166191889688,0.009185763876885175,0.6514512340779349,0.00013878739689516807,0.0,0.0,0.0,0.0,0.0,0.009185763876885175,200,7,5.410122871398926,0.7728746959141323,0.02705061435699463,0.21119434918676103 +7,0.010580150507135976,0.6918364966785213,0.00015421347824717176,0.1186491676739284,0.0,0.0,0.0,0.0,0.010780461909978285,805,26,25.996599912643433,0.9998692274093628,0.03229391293496078,0.20917126736961877,0.022618245556950568,0.06021921507194098,0.0014557045306719373,0.0,0.0,0.0,0.0,0.0,0.022618245556950568,200,7,6.368146657943726,0.9097352368491036,0.03184073328971863,0.2719848837171282 +8,0.011298767070615699,0.4760169315850362,0.00041544349924547334,0.14060623821634682,0.0,0.0,0.0,0.0,0.011522014411339848,805,26,25.052652835845947,0.9635635706094595,0.031121307870616084,0.2236966760112689,0.008584406338632106,0.14252029143140785,0.00030257709815487035,0.0,0.0,0.0,0.0,0.0,0.008584406338632106,200,7,5.469590187072754,0.7813700267246791,0.02734795093536377,0.2353833828653608 +9,0.008389739518962014,0.3470528296297394,0.0001161681552329361,0.13376394836984065,0.0,0.0,0.0,0.0,0.008534462298613666,805,26,25.427392959594727,0.9779766522921048,0.03158682355229159,0.21983599032347018,0.011391716189682483,0.08455950287835938,0.0006422647068393416,0.0,0.0,0.0,0.0,0.0,0.011391716189682483,200,7,5.549124002456665,0.7927320003509521,0.027745620012283326,0.2585423652614866 +10,0.008301556261938922,0.3617186441316825,0.00017248948551699055,0.10802898126544419,0.0,0.0,0.0,0.0,0.008456925581562223,805,26,25.1789333820343,0.968420514693627,0.03127817811432833,0.2184981590566727,0.008516917899250985,0.1037150240912784,0.0003056966117583215,0.0,0.0,0.0,0.0,0.0,0.008516917899250985,200,7,5.530883312225342,0.7901261874607631,0.02765441656112671,0.23361824240003312 +11,0.007527085308054959,0.2670242926967778,0.00014067767066161557,0.1137454834691486,0.0,0.0,0.0,0.0,0.007661224381928766,805,26,26.240521907806396,1.0092508426079383,0.032596921624604216,0.22276158014742228,0.01129237875342369,1.2686012802379472,0.00013952558357004818,0.0,0.0,0.0,0.0,0.0,0.01129237875342369,200,7,5.760839462280273,0.8229770660400391,0.028804197311401367,0.18647725028651102 +12,0.007884731806051102,0.25581401437420936,0.00015932995629329118,0.1286248725023329,0.0,0.0,0.0,0.0,0.008028647243710501,805,26,25.044294595718384,0.9632420998353225,0.03111092496362532,0.22597603557201532,0.010219628997147083,0.08310020458260883,0.0002812759166998069,0.0,0.0,0.0,0.0,0.0,0.010219628997147083,200,7,6.131714820861816,0.8759592601231166,0.030658574104309083,0.23571028241089412 +13,0.007819494660596669,0.37005374629874355,0.00011210728438250637,0.14398229238779647,0.0,0.0,0.0,0.0,0.007955009360676226,805,26,25.99160122871399,0.9996769703351535,0.032287703389706816,0.22374733766684166,0.008346367888152599,0.3537601569135274,0.0001958947411912959,0.0,0.0,0.0,0.0,0.0,0.008346367888152599,200,7,5.5152013301849365,0.7878859043121338,0.027576006650924682,0.21150318000997817 +14,0.008513097690348947,0.4737979023394963,0.00012372815984218837,0.12297226058677857,0.0,0.0,0.0,0.0,0.008661478007594066,805,26,25.44249391555786,0.978557458290687,0.031605582503798586,0.22062810109211847,0.007794224517419934,0.5712006194932785,0.00013515979429939762,0.0,0.0,0.0,0.0,0.0,0.007794224517419934,200,7,5.686357736587524,0.8123368195125035,0.028431788682937623,0.20636332673685892 +15,0.007061334028955757,0.4000626574881275,8.407065683318901e-05,0.12316323696456341,0.0,0.0,0.0,0.0,0.007187281181654019,805,26,26.218294382095337,1.0083959377728975,0.03256930979142278,0.21673449465575126,0.007704954277724028,0.7454492084725644,9.874404175207019e-05,0.0,0.0,0.0,0.0,0.0,0.007704954277724028,200,7,5.824077367782593,0.8320110525403704,0.029120386838912965,0.20071943317140853 +16,0.006824540904931354,0.25965408854776445,6.937324523487765e-05,0.14068481183107595,0.0,0.0,0.0,0.0,0.006950521754876057,805,26,24.999322414398193,0.9615124005537766,0.031055058899873533,0.22709995221633178,0.008216234035789966,0.6674761859966176,0.0001883590142824687,0.0,0.0,0.0,0.0,0.0,0.008216234035789966,200,7,5.385258436203003,0.7693226337432861,0.026926292181015013,0.20701564422675542 diff --git a/iris/realtabformer/1/logs/avg_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.17 b/iris/realtabformer/1/logs/avg_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.17 new file mode 100644 index 0000000000000000000000000000000000000000..1b39992da20eac0970b7999ab36f55512d5ed515 --- /dev/null +++ b/iris/realtabformer/1/logs/avg_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.17 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc1ceaebec28620212b098ac70eddb08d2a4be8ac8637833ac487b283e660a75 +size 868 diff --git a/iris/realtabformer/1/logs/avg_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.18 b/iris/realtabformer/1/logs/avg_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.18 new file mode 100644 index 0000000000000000000000000000000000000000..75ab893ff1cb490ef52fbf7ac694d6a9526f6ac6 --- /dev/null +++ b/iris/realtabformer/1/logs/avg_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.18 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3e27e6eed64a18ed7d271af9c743f94e5b4f54281ddd1aff1f774d16a5b14d3 +size 868 diff --git a/iris/realtabformer/1/logs/avg_non_role_model_embed_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.15 b/iris/realtabformer/1/logs/avg_non_role_model_embed_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.15 new file mode 100644 index 0000000000000000000000000000000000000000..19b1782e9b0e6fece60d431c1710b5385863a10f --- /dev/null +++ b/iris/realtabformer/1/logs/avg_non_role_model_embed_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.15 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d106e367d3cbe88a3967b3122363f7b0bf89de1ab746a8d31e2a86dcd51fa46 +size 1225 diff --git a/iris/realtabformer/1/logs/avg_non_role_model_embed_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.16 b/iris/realtabformer/1/logs/avg_non_role_model_embed_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.16 new file mode 100644 index 0000000000000000000000000000000000000000..791f1cfc9262458c762914b4aaa0cde2890bd1ff --- /dev/null +++ b/iris/realtabformer/1/logs/avg_non_role_model_embed_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.16 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:984778ff39544a8e50047dd8efe083eb0db5efa4e9ecd63d7d43dc3e11013ed3 +size 1225 diff --git a/iris/realtabformer/1/logs/avg_non_role_model_g_cos_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.13 b/iris/realtabformer/1/logs/avg_non_role_model_g_cos_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.13 new file mode 100644 index 0000000000000000000000000000000000000000..4fa920f4af8bec40b37ed2078879d99fc5c8564d --- /dev/null +++ b/iris/realtabformer/1/logs/avg_non_role_model_g_cos_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.13 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f809badbf8b9103740a861d398b2eb01534ce466b111dc65cb776f7945ee446 +size 1225 diff --git a/iris/realtabformer/1/logs/avg_non_role_model_g_cos_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.14 b/iris/realtabformer/1/logs/avg_non_role_model_g_cos_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.14 new file mode 100644 index 0000000000000000000000000000000000000000..06e9ebe22e6ff23993e8081f4f12aaea3e7e79ea --- /dev/null +++ b/iris/realtabformer/1/logs/avg_non_role_model_g_cos_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.14 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce2a11fb53bf8e17c84cf72e1e6f1e7c407be1082de8d1965c19ca2668b80cc8 +size 1225 diff --git a/iris/realtabformer/1/logs/avg_non_role_model_g_mag_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.11 b/iris/realtabformer/1/logs/avg_non_role_model_g_mag_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.11 new file mode 100644 index 0000000000000000000000000000000000000000..a04f806e1b05e3073125eeade20bd97ad00098c0 --- /dev/null +++ b/iris/realtabformer/1/logs/avg_non_role_model_g_mag_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.11 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6501d87f0c409ca43fed5e8eaffebdfe1b9a0cf952d6d054b10224c397154189 +size 1225 diff --git a/iris/realtabformer/1/logs/avg_non_role_model_g_mag_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.12 b/iris/realtabformer/1/logs/avg_non_role_model_g_mag_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.12 new file mode 100644 index 0000000000000000000000000000000000000000..d186e93c4b6ef3116ac4cbe96e4bb80931ce38d7 --- /dev/null +++ b/iris/realtabformer/1/logs/avg_non_role_model_g_mag_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.12 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c92bbb8d7aff1a54b0fe214429c8d6480184f496b25870da1f583139664baab +size 1225 diff --git a/iris/realtabformer/1/logs/avg_pred_std_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.29 b/iris/realtabformer/1/logs/avg_pred_std_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.29 new file mode 100644 index 0000000000000000000000000000000000000000..cb7bd12a4c075b88c1db8306d9fa01c2df4d16bf --- /dev/null +++ b/iris/realtabformer/1/logs/avg_pred_std_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.29 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6358bfd83de37c80a816c382c01a85363f72210049753244a0306daf59233d14 +size 936 diff --git a/iris/realtabformer/1/logs/avg_pred_std_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.30 b/iris/realtabformer/1/logs/avg_pred_std_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.30 new file mode 100644 index 0000000000000000000000000000000000000000..f1ee871eb413973aa5b0a3fda87dbcb9d63d80da --- /dev/null +++ b/iris/realtabformer/1/logs/avg_pred_std_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.30 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7f282b93b5b04e94b95b8b71fcce1faf38ecf624aef48cf83830f302edbf015 +size 936 diff --git a/iris/realtabformer/1/logs/avg_role_model_g_cos_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.9 b/iris/realtabformer/1/logs/avg_role_model_g_cos_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.9 new file mode 100644 index 0000000000000000000000000000000000000000..b6a1569edcbdbba31dde94bb50b0f1c921689f58 --- /dev/null +++ b/iris/realtabformer/1/logs/avg_role_model_g_cos_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.9 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:529b858a9e1b250faa386b59e0cae6ed6138b793bd6540e305a0512324f035ae +size 1157 diff --git a/iris/realtabformer/1/logs/avg_role_model_g_cos_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.10 b/iris/realtabformer/1/logs/avg_role_model_g_cos_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.10 new file mode 100644 index 0000000000000000000000000000000000000000..07f758707a53d1e86fcf5a41371c7dae5d584b5f --- /dev/null +++ b/iris/realtabformer/1/logs/avg_role_model_g_cos_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.10 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edb0bbd47101465fb4035d9feec5f24e75e2f90d08de1d82c2d58db75229275e +size 1157 diff --git a/iris/realtabformer/1/logs/avg_role_model_g_mag_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.7 b/iris/realtabformer/1/logs/avg_role_model_g_mag_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.7 new file mode 100644 index 0000000000000000000000000000000000000000..1c0b0748fb20ffd62702a339824200a03ccd82ff --- /dev/null +++ b/iris/realtabformer/1/logs/avg_role_model_g_mag_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.7 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b06cc137ae309e4cb7cfe9c69fc782ac9867fb1f8d30aa5c693d42589a539be +size 1157 diff --git a/iris/realtabformer/1/logs/avg_role_model_g_mag_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.8 b/iris/realtabformer/1/logs/avg_role_model_g_mag_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.8 new file mode 100644 index 0000000000000000000000000000000000000000..4998f7260c2bdc8079d4c8e1a9ed030328670487 --- /dev/null +++ b/iris/realtabformer/1/logs/avg_role_model_g_mag_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.8 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee6f11221663cbb1ef42e84d62d88d7ab846f27594fab93eb43639ca581f1d05 +size 1157 diff --git a/iris/realtabformer/1/logs/avg_role_model_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.1 b/iris/realtabformer/1/logs/avg_role_model_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.1 new file mode 100644 index 0000000000000000000000000000000000000000..4c7cf4e8b5bf3a3f9814c2a8b14ccbd1c3fd0f09 --- /dev/null +++ b/iris/realtabformer/1/logs/avg_role_model_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.1 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdda90c48e65a5abad4809f6f493fe35ed7ff3a851679b63bc570a505c61c986 +size 1055 diff --git a/iris/realtabformer/1/logs/avg_role_model_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.2 b/iris/realtabformer/1/logs/avg_role_model_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.2 new file mode 100644 index 0000000000000000000000000000000000000000..748fbd87816d45c5b2d06972987e05eba771e633 --- /dev/null +++ b/iris/realtabformer/1/logs/avg_role_model_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8e32c98fee56401c9dce9d91c37423a2b0de096387c19ff5b17d8fc1bf22616 +size 1055 diff --git a/iris/realtabformer/1/logs/avg_role_model_mean_pred_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.5 b/iris/realtabformer/1/logs/avg_role_model_mean_pred_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.5 new file mode 100644 index 0000000000000000000000000000000000000000..69ea7e303a885d081ff2e984e062e3e511b1d761 --- /dev/null +++ b/iris/realtabformer/1/logs/avg_role_model_mean_pred_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21d189165c4427b75d9aac958797e8dba4ea553769f647c7c30097964c59d2a5 +size 1225 diff --git a/iris/realtabformer/1/logs/avg_role_model_mean_pred_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.6 b/iris/realtabformer/1/logs/avg_role_model_mean_pred_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.6 new file mode 100644 index 0000000000000000000000000000000000000000..a59d5254036f39b9e2c12f9ab2a151e04183f135 --- /dev/null +++ b/iris/realtabformer/1/logs/avg_role_model_mean_pred_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.6 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56e5f2f45f15980e1c02d9fa69685215e200bd52159f3aecb7d69fc7c56cfc21 +size 1225 diff --git a/iris/realtabformer/1/logs/avg_role_model_std_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.3 b/iris/realtabformer/1/logs/avg_role_model_std_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.3 new file mode 100644 index 0000000000000000000000000000000000000000..f2f4da21911063c248a05d956506e50053c58d7a --- /dev/null +++ b/iris/realtabformer/1/logs/avg_role_model_std_loss_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.3 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f0f33f5b4d3a76bd9e1da165b5074ce03f2409605398f40b148d646e42e17fb +size 1123 diff --git a/iris/realtabformer/1/logs/avg_role_model_std_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.4 b/iris/realtabformer/1/logs/avg_role_model_std_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.4 new file mode 100644 index 0000000000000000000000000000000000000000..32dd443d492fc9122db7adb8c96df9eb3f70a84b --- /dev/null +++ b/iris/realtabformer/1/logs/avg_role_model_std_loss_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90e0654df4fc76ff8303a2a44d8d105e9385bbd74ea6f12250500dbd01a661e2 +size 1123 diff --git a/iris/realtabformer/1/logs/duration_batch_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.25 b/iris/realtabformer/1/logs/duration_batch_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.25 new file mode 100644 index 0000000000000000000000000000000000000000..39fece7923168fe779fa97a9bebcd68d38261a06 --- /dev/null +++ b/iris/realtabformer/1/logs/duration_batch_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.25 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:004bf5b20b9eb4b40e6276a4e9f7f0c40a21243762b946bd9321a4b2541e4c65 +size 970 diff --git a/iris/realtabformer/1/logs/duration_batch_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.26 b/iris/realtabformer/1/logs/duration_batch_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.26 new file mode 100644 index 0000000000000000000000000000000000000000..b40ed8b4888e88fb2fe9fdf1028ed1ad4cb45c6a --- /dev/null +++ b/iris/realtabformer/1/logs/duration_batch_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.26 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bb0e3d7eeecf58016303a89c82b9cd67c120b84b93b1c3bd9af25f3ae737bb1 +size 970 diff --git a/iris/realtabformer/1/logs/duration_size_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.27 b/iris/realtabformer/1/logs/duration_size_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.27 new file mode 100644 index 0000000000000000000000000000000000000000..7187437f5b449cb0009505ac4571117148f1fb75 --- /dev/null +++ b/iris/realtabformer/1/logs/duration_size_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.27 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6e9ec1e1d3969b80e7f503d2067eb9d9d6fd29c1e0ee0352ab4ab616d13283b +size 953 diff --git a/iris/realtabformer/1/logs/duration_size_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.28 b/iris/realtabformer/1/logs/duration_size_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.28 new file mode 100644 index 0000000000000000000000000000000000000000..9125cd19af36660b2d612531b94a9ae2da161289 --- /dev/null +++ b/iris/realtabformer/1/logs/duration_size_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.28 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6471838765b820420ecbf352fde1ad95137ad876cbb0f4131e3df960ec5e5982 +size 953 diff --git a/iris/realtabformer/1/logs/duration_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.23 b/iris/realtabformer/1/logs/duration_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.23 new file mode 100644 index 0000000000000000000000000000000000000000..e4835c3a9fe85ccfb871e290bf4441b90a5f2b95 --- /dev/null +++ b/iris/realtabformer/1/logs/duration_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.23 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3031d176ba058b08d27791d82ff94ce8b6cdd91d251d9035cd5d3c84010c57e1 +size 868 diff --git a/iris/realtabformer/1/logs/duration_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.24 b/iris/realtabformer/1/logs/duration_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.24 new file mode 100644 index 0000000000000000000000000000000000000000..bc0987d676bd8d78f87820bb2338020c7172df66 --- /dev/null +++ b/iris/realtabformer/1/logs/duration_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.24 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92918836c8d6bb78ef9a9d8fe9129c8a3ae56e575d7927be061aded591f556ae +size 868 diff --git a/iris/realtabformer/1/logs/events.out.tfevents.1721741423.0e0da8a72f77.2230.0 b/iris/realtabformer/1/logs/events.out.tfevents.1721741423.0e0da8a72f77.2230.0 new file mode 100644 index 0000000000000000000000000000000000000000..55d634cf8dd7b60cfcebb685d38811d30914a6bb --- /dev/null +++ b/iris/realtabformer/1/logs/events.out.tfevents.1721741423.0e0da8a72f77.2230.0 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:980b1469739fbafc8d28855ad97291ccfa7b11c7beb086498ed554eda9aaef8f +size 88 diff --git a/iris/realtabformer/1/logs/n_batch_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.21 b/iris/realtabformer/1/logs/n_batch_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.21 new file mode 100644 index 0000000000000000000000000000000000000000..4ac587f9eb557103f80485236474b8fd63212e5b --- /dev/null +++ b/iris/realtabformer/1/logs/n_batch_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.21 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f50483f407cd0ba602332e71b7d115fbe850613422b20b7d30fc9b7e7646f2a +size 851 diff --git a/iris/realtabformer/1/logs/n_batch_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.22 b/iris/realtabformer/1/logs/n_batch_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.22 new file mode 100644 index 0000000000000000000000000000000000000000..5008484a213f152bfb701df0d44ed57e0bbfae5e --- /dev/null +++ b/iris/realtabformer/1/logs/n_batch_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.22 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ee1d6a9604e8ebc9276a57ef734f6c4802f692d5d1916c66a8bdaea4672cda7 +size 851 diff --git a/iris/realtabformer/1/logs/n_size_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.19 b/iris/realtabformer/1/logs/n_size_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.19 new file mode 100644 index 0000000000000000000000000000000000000000..a3320569f031933a514b8e01b3eb04b5b21d8750 --- /dev/null +++ b/iris/realtabformer/1/logs/n_size_train/events.out.tfevents.1721741457.0e0da8a72f77.2230.19 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de22a003ee173d3ec527c1e8ce82a1c8c51e7bb98ebb9237d3636c1a22f8a60a +size 834 diff --git a/iris/realtabformer/1/logs/n_size_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.20 b/iris/realtabformer/1/logs/n_size_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.20 new file mode 100644 index 0000000000000000000000000000000000000000..efb6fef07b048c29351ee4836860d2989746f046 --- /dev/null +++ b/iris/realtabformer/1/logs/n_size_val/events.out.tfevents.1721741457.0e0da8a72f77.2230.20 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b46aab3249bc4c3d4d514fd8b450b3d2cd9ab5d9a84ca6200a3233d9c5cad40 +size 834 diff --git a/iris/realtabformer/1/logs/train_avg_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.39 b/iris/realtabformer/1/logs/train_avg_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.39 new file mode 100644 index 0000000000000000000000000000000000000000..a5cc554fec22cdbf0dd668bc94a8c06314ff6e21 --- /dev/null +++ b/iris/realtabformer/1/logs/train_avg_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.39 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f173c746eee47849fefcf99002625edc9d434fb01a40c1db55dfc0c535628f1 +size 817 diff --git a/iris/realtabformer/1/logs/train_avg_non_role_model_embed_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.38 b/iris/realtabformer/1/logs/train_avg_non_role_model_embed_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.38 new file mode 100644 index 0000000000000000000000000000000000000000..64daf3e46925c7ddff00a71849caa6549b4e5610 --- /dev/null +++ b/iris/realtabformer/1/logs/train_avg_non_role_model_embed_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.38 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5407468e2f31c54ff634dfda87211a70376ceb873cd6d425dc7355bdef1bdd6 +size 817 diff --git a/iris/realtabformer/1/logs/train_avg_non_role_model_g_cos_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.37 b/iris/realtabformer/1/logs/train_avg_non_role_model_g_cos_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.37 new file mode 100644 index 0000000000000000000000000000000000000000..026c528b452bf1f81bf6ff616c457d91f1358208 --- /dev/null +++ b/iris/realtabformer/1/logs/train_avg_non_role_model_g_cos_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.37 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bedfef3c564f57208bdbe0a4af4dfef2d4c5aa1eb04bd96b7daeeeb9ce67fd36 +size 817 diff --git a/iris/realtabformer/1/logs/train_avg_non_role_model_g_mag_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.36 b/iris/realtabformer/1/logs/train_avg_non_role_model_g_mag_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.36 new file mode 100644 index 0000000000000000000000000000000000000000..b9662cfece8958db434d33cf9b747d777316592e --- /dev/null +++ b/iris/realtabformer/1/logs/train_avg_non_role_model_g_mag_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.36 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7765f973ce3b3088bcab1ad249562c3ee2bbef9bec1dc6893fbc91fbb8643372 +size 817 diff --git a/iris/realtabformer/1/logs/train_avg_pred_std/events.out.tfevents.1721741457.0e0da8a72f77.2230.45 b/iris/realtabformer/1/logs/train_avg_pred_std/events.out.tfevents.1721741457.0e0da8a72f77.2230.45 new file mode 100644 index 0000000000000000000000000000000000000000..664ef0a43606bf222951392ad5e8a8955749d6d2 --- /dev/null +++ b/iris/realtabformer/1/logs/train_avg_pred_std/events.out.tfevents.1721741457.0e0da8a72f77.2230.45 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6744471e63ca92b549c15390ef59968873d0c2ff8330cae168f94c0d1ba1a1ac +size 817 diff --git a/iris/realtabformer/1/logs/train_avg_role_model_g_cos_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.35 b/iris/realtabformer/1/logs/train_avg_role_model_g_cos_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.35 new file mode 100644 index 0000000000000000000000000000000000000000..f5fd02386fcad48a5ade2c195029eb80cb4d810e --- /dev/null +++ b/iris/realtabformer/1/logs/train_avg_role_model_g_cos_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.35 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c190590c8904b5c5f84205decf5d11d275a930230b3dd16873360ffc21ebc77 +size 817 diff --git a/iris/realtabformer/1/logs/train_avg_role_model_g_mag_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.34 b/iris/realtabformer/1/logs/train_avg_role_model_g_mag_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.34 new file mode 100644 index 0000000000000000000000000000000000000000..8610817cf89dccfd66369ebaf556c179cf45b8ad --- /dev/null +++ b/iris/realtabformer/1/logs/train_avg_role_model_g_mag_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.34 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a779ac8388db7ecfc7cb8c901dfd4aaa842f969037b72a5061e079aac4546446 +size 817 diff --git a/iris/realtabformer/1/logs/train_avg_role_model_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.31 b/iris/realtabformer/1/logs/train_avg_role_model_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.31 new file mode 100644 index 0000000000000000000000000000000000000000..706b916c72a14a26c8dbd145484214f23d618730 --- /dev/null +++ b/iris/realtabformer/1/logs/train_avg_role_model_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.31 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32c59c3fde25b7de8ac8fba2339c43f4ed7333ecc746409e951e2ff68498225e +size 817 diff --git a/iris/realtabformer/1/logs/train_avg_role_model_mean_pred_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.33 b/iris/realtabformer/1/logs/train_avg_role_model_mean_pred_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.33 new file mode 100644 index 0000000000000000000000000000000000000000..c2f115f881eef1b69bbc34b733487654aaffdd32 --- /dev/null +++ b/iris/realtabformer/1/logs/train_avg_role_model_mean_pred_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.33 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab43e210518d9cbbcede522a252dc4f7c04b191e35d94aef0f7bd91243de199b +size 817 diff --git a/iris/realtabformer/1/logs/train_avg_role_model_std_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.32 b/iris/realtabformer/1/logs/train_avg_role_model_std_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.32 new file mode 100644 index 0000000000000000000000000000000000000000..b8e00b10ef6d16f2be64c4f8143f2e733696f360 --- /dev/null +++ b/iris/realtabformer/1/logs/train_avg_role_model_std_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.32 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82d3ac0c93a23d3ff4c45fb457f94a7dfc71511c4a97d1458b8c725363059159 +size 817 diff --git a/iris/realtabformer/1/logs/train_duration/events.out.tfevents.1721741457.0e0da8a72f77.2230.42 b/iris/realtabformer/1/logs/train_duration/events.out.tfevents.1721741457.0e0da8a72f77.2230.42 new file mode 100644 index 0000000000000000000000000000000000000000..3c11ec0fa0c70f95e00b8d7d4396702bc4c31035 --- /dev/null +++ b/iris/realtabformer/1/logs/train_duration/events.out.tfevents.1721741457.0e0da8a72f77.2230.42 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31fb7d7829d64e3763d22c8f031f70bd58ac4c08e058b34143cbba5e2952fd03 +size 817 diff --git a/iris/realtabformer/1/logs/train_duration_batch/events.out.tfevents.1721741457.0e0da8a72f77.2230.43 b/iris/realtabformer/1/logs/train_duration_batch/events.out.tfevents.1721741457.0e0da8a72f77.2230.43 new file mode 100644 index 0000000000000000000000000000000000000000..0a2f7fcc8d467a0150e9114653b042d9fc70053c --- /dev/null +++ b/iris/realtabformer/1/logs/train_duration_batch/events.out.tfevents.1721741457.0e0da8a72f77.2230.43 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5673e3c0fc797e633bfbf8034b4911fdba4a27db37636b87f6f6e796623bf869 +size 817 diff --git a/iris/realtabformer/1/logs/train_duration_size/events.out.tfevents.1721741457.0e0da8a72f77.2230.44 b/iris/realtabformer/1/logs/train_duration_size/events.out.tfevents.1721741457.0e0da8a72f77.2230.44 new file mode 100644 index 0000000000000000000000000000000000000000..246a6c6c28357b247bccb19ec5ad613e5efbecd7 --- /dev/null +++ b/iris/realtabformer/1/logs/train_duration_size/events.out.tfevents.1721741457.0e0da8a72f77.2230.44 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9841c4b585dcb1efd1722c5266d57bb8d719eaa0a1062d36e38711d9095d983f +size 817 diff --git a/iris/realtabformer/1/logs/train_n_batch/events.out.tfevents.1721741457.0e0da8a72f77.2230.41 b/iris/realtabformer/1/logs/train_n_batch/events.out.tfevents.1721741457.0e0da8a72f77.2230.41 new file mode 100644 index 0000000000000000000000000000000000000000..603f74081fce5dc32e52b78f60893acbda447cb7 --- /dev/null +++ b/iris/realtabformer/1/logs/train_n_batch/events.out.tfevents.1721741457.0e0da8a72f77.2230.41 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a201f3a5dd36b02f9fbfaa8df97c0dfe6c0650d0d9b6878d441edec4307f2f98 +size 817 diff --git a/iris/realtabformer/1/logs/train_n_size/events.out.tfevents.1721741457.0e0da8a72f77.2230.40 b/iris/realtabformer/1/logs/train_n_size/events.out.tfevents.1721741457.0e0da8a72f77.2230.40 new file mode 100644 index 0000000000000000000000000000000000000000..5ed10793959e01fb490343c7d8f3490d05717a13 --- /dev/null +++ b/iris/realtabformer/1/logs/train_n_size/events.out.tfevents.1721741457.0e0da8a72f77.2230.40 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:340921294d660de83ce92a9e2deda92b7dbe67e883210cce1b7ad65d4958db05 +size 817 diff --git a/iris/realtabformer/1/logs/val_avg_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.54 b/iris/realtabformer/1/logs/val_avg_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.54 new file mode 100644 index 0000000000000000000000000000000000000000..4f231a670909e9e6e7933be6969414152ff8bd01 --- /dev/null +++ b/iris/realtabformer/1/logs/val_avg_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.54 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f688958e04b979fa9453e77a4a10b19db0d2736c68ddf6c2665d5006857d8f1 +size 783 diff --git a/iris/realtabformer/1/logs/val_avg_non_role_model_embed_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.53 b/iris/realtabformer/1/logs/val_avg_non_role_model_embed_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.53 new file mode 100644 index 0000000000000000000000000000000000000000..c9427e381f902377cdc612af92365eb86563426c --- /dev/null +++ b/iris/realtabformer/1/logs/val_avg_non_role_model_embed_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.53 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f3bb9e46e637ad92d750429d71e7688093491aad92477949bcd107ada52ee44 +size 783 diff --git a/iris/realtabformer/1/logs/val_avg_non_role_model_g_cos_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.52 b/iris/realtabformer/1/logs/val_avg_non_role_model_g_cos_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.52 new file mode 100644 index 0000000000000000000000000000000000000000..e2ec0171271eb1a7963d255c756da3ce4158cfee --- /dev/null +++ b/iris/realtabformer/1/logs/val_avg_non_role_model_g_cos_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.52 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:947f4e8b1e577067f7df179df9ffd2d9361e3cd317abe365188d6322aadc8e01 +size 783 diff --git a/iris/realtabformer/1/logs/val_avg_non_role_model_g_mag_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.51 b/iris/realtabformer/1/logs/val_avg_non_role_model_g_mag_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.51 new file mode 100644 index 0000000000000000000000000000000000000000..3c51bbb33b205fe939337ebe32d61d37f1a3c3dc --- /dev/null +++ b/iris/realtabformer/1/logs/val_avg_non_role_model_g_mag_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.51 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8f6a9479e61351627bff1fc68f65c50b4867bb0629ef3593e274c249330b6e9 +size 783 diff --git a/iris/realtabformer/1/logs/val_avg_pred_std/events.out.tfevents.1721741457.0e0da8a72f77.2230.60 b/iris/realtabformer/1/logs/val_avg_pred_std/events.out.tfevents.1721741457.0e0da8a72f77.2230.60 new file mode 100644 index 0000000000000000000000000000000000000000..c285afe0193c9eb233a25477e60a28d6094a4405 --- /dev/null +++ b/iris/realtabformer/1/logs/val_avg_pred_std/events.out.tfevents.1721741457.0e0da8a72f77.2230.60 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a98d7e87d69f6c9c29fa13fdc1e9947bfc85a559ff636543ac60c92d294d0fe6 +size 783 diff --git a/iris/realtabformer/1/logs/val_avg_role_model_g_cos_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.50 b/iris/realtabformer/1/logs/val_avg_role_model_g_cos_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.50 new file mode 100644 index 0000000000000000000000000000000000000000..8cd84400389aece106ded727a854cd3c7120abe3 --- /dev/null +++ b/iris/realtabformer/1/logs/val_avg_role_model_g_cos_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.50 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:348e49360280b7331eec2ec88bfa37c34dcf687174987639db1559a7624ed1b5 +size 783 diff --git a/iris/realtabformer/1/logs/val_avg_role_model_g_mag_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.49 b/iris/realtabformer/1/logs/val_avg_role_model_g_mag_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.49 new file mode 100644 index 0000000000000000000000000000000000000000..6959041551ff9333f14108c69886820353a4bb2d --- /dev/null +++ b/iris/realtabformer/1/logs/val_avg_role_model_g_mag_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.49 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:502125982f4f50a171bbcf150410b487252dead7aefd31d9a8fb7a8a0611e768 +size 783 diff --git a/iris/realtabformer/1/logs/val_avg_role_model_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.46 b/iris/realtabformer/1/logs/val_avg_role_model_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.46 new file mode 100644 index 0000000000000000000000000000000000000000..7b61e575baaf524ed18dd064be14d4f533829538 --- /dev/null +++ b/iris/realtabformer/1/logs/val_avg_role_model_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.46 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c40a844d0c7ddb3ff2dbc388ed6a1a065dc96d28dee518c0759eb651f26ebe5e +size 783 diff --git a/iris/realtabformer/1/logs/val_avg_role_model_mean_pred_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.48 b/iris/realtabformer/1/logs/val_avg_role_model_mean_pred_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.48 new file mode 100644 index 0000000000000000000000000000000000000000..a977414a4f581e433414df59625d51b3e4e7d3c6 --- /dev/null +++ b/iris/realtabformer/1/logs/val_avg_role_model_mean_pred_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.48 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5744302e1c678a2b84592ec68f847c13bc3a8def99ae2bdb9e5ed25e203b1ff6 +size 783 diff --git a/iris/realtabformer/1/logs/val_avg_role_model_std_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.47 b/iris/realtabformer/1/logs/val_avg_role_model_std_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.47 new file mode 100644 index 0000000000000000000000000000000000000000..65468157ef294b01f804b8aaf9dec678e82b7c08 --- /dev/null +++ b/iris/realtabformer/1/logs/val_avg_role_model_std_loss/events.out.tfevents.1721741457.0e0da8a72f77.2230.47 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51288ac3fcd03b8cfe0c106080bcd4fbb11d4bca36d1e9cc6fd9fe0414f84b4d +size 783 diff --git a/iris/realtabformer/1/logs/val_duration/events.out.tfevents.1721741457.0e0da8a72f77.2230.57 b/iris/realtabformer/1/logs/val_duration/events.out.tfevents.1721741457.0e0da8a72f77.2230.57 new file mode 100644 index 0000000000000000000000000000000000000000..01cd2b952855e0045453de7607f329b62436646d --- /dev/null +++ b/iris/realtabformer/1/logs/val_duration/events.out.tfevents.1721741457.0e0da8a72f77.2230.57 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98aba9cb90ecd045377eea4afa7abb0e2dc624f057c19d5125d6ec2d5eaf5be8 +size 783 diff --git a/iris/realtabformer/1/logs/val_duration_batch/events.out.tfevents.1721741457.0e0da8a72f77.2230.58 b/iris/realtabformer/1/logs/val_duration_batch/events.out.tfevents.1721741457.0e0da8a72f77.2230.58 new file mode 100644 index 0000000000000000000000000000000000000000..ca1463a532ee390dc7119c8702815bf5fe2ccea5 --- /dev/null +++ b/iris/realtabformer/1/logs/val_duration_batch/events.out.tfevents.1721741457.0e0da8a72f77.2230.58 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99cd1c43498bde5d72a4f70631b09bb8201232c57744f08005468d65906fa571 +size 783 diff --git a/iris/realtabformer/1/logs/val_duration_size/events.out.tfevents.1721741457.0e0da8a72f77.2230.59 b/iris/realtabformer/1/logs/val_duration_size/events.out.tfevents.1721741457.0e0da8a72f77.2230.59 new file mode 100644 index 0000000000000000000000000000000000000000..0112f4b662d753490ded30dd08b64767523b6e8b --- /dev/null +++ b/iris/realtabformer/1/logs/val_duration_size/events.out.tfevents.1721741457.0e0da8a72f77.2230.59 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a886ef775564ea5f0f80ed1a96734b05623cff4736b8ac131c0210df660187c +size 783 diff --git a/iris/realtabformer/1/logs/val_n_batch/events.out.tfevents.1721741457.0e0da8a72f77.2230.56 b/iris/realtabformer/1/logs/val_n_batch/events.out.tfevents.1721741457.0e0da8a72f77.2230.56 new file mode 100644 index 0000000000000000000000000000000000000000..bf7de32b8e9948f8c23239e31728dffe52fb30d5 --- /dev/null +++ b/iris/realtabformer/1/logs/val_n_batch/events.out.tfevents.1721741457.0e0da8a72f77.2230.56 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba78db4507ae92a3f44d226370d9a9d673f647e0bf18e7a13eb50ed7488fd18b +size 783 diff --git a/iris/realtabformer/1/logs/val_n_size/events.out.tfevents.1721741457.0e0da8a72f77.2230.55 b/iris/realtabformer/1/logs/val_n_size/events.out.tfevents.1721741457.0e0da8a72f77.2230.55 new file mode 100644 index 0000000000000000000000000000000000000000..464acdd93727444e3849f1bac2685ddf1842685d --- /dev/null +++ b/iris/realtabformer/1/logs/val_n_size/events.out.tfevents.1721741457.0e0da8a72f77.2230.55 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b67afca971a2d0416335aa93568fcd72d38c162c2ea9c163d9019d97c9d5a69b +size 783 diff --git a/iris/realtabformer/1/mlu-eval.ipynb b/iris/realtabformer/1/mlu-eval.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..014eb3a4769a97e5a792d8c24e681908fbc049d8 --- /dev/null +++ b/iris/realtabformer/1/mlu-eval.ipynb @@ -0,0 +1,2472 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "982e76f5", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T13:30:12.271681Z", + "iopub.status.busy": "2024-07-23T13:30:12.270561Z", + "iopub.status.idle": "2024-07-23T13:30:12.303860Z", + "shell.execute_reply": "2024-07-23T13:30:12.303082Z" + }, + "papermill": { + "duration": 0.048369, + "end_time": "2024-07-23T13:30:12.305867", + "exception": false, + "start_time": "2024-07-23T13:30:12.257498", + "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:30:12.331690Z", + "iopub.status.busy": "2024-07-23T13:30:12.331363Z", + "iopub.status.idle": "2024-07-23T13:30:12.338132Z", + "shell.execute_reply": "2024-07-23T13:30:12.337261Z" + }, + "papermill": { + "duration": 0.022266, + "end_time": "2024-07-23T13:30:12.340201", + "exception": false, + "start_time": "2024-07-23T13:30:12.317935", + "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:30:12.363731Z", + "iopub.status.busy": "2024-07-23T13:30:12.363469Z", + "iopub.status.idle": "2024-07-23T13:30:12.367803Z", + "shell.execute_reply": "2024-07-23T13:30:12.366836Z" + }, + "papermill": { + "duration": 0.018471, + "end_time": "2024-07-23T13:30:12.369827", + "exception": false, + "start_time": "2024-07-23T13:30:12.351356", + "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:30:12.393397Z", + "iopub.status.busy": "2024-07-23T13:30:12.393126Z", + "iopub.status.idle": "2024-07-23T13:30:12.397103Z", + "shell.execute_reply": "2024-07-23T13:30:12.396243Z" + }, + "executionInfo": { + "elapsed": 678, + "status": "ok", + "timestamp": 1696841022168, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "ns5hFcVL2yvs", + "papermill": { + "duration": 0.018179, + "end_time": "2024-07-23T13:30:12.399102", + "exception": false, + "start_time": "2024-07-23T13:30:12.380923", + "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:30:12.422492Z", + "iopub.status.busy": "2024-07-23T13:30:12.422191Z", + "iopub.status.idle": "2024-07-23T13:30:12.428278Z", + "shell.execute_reply": "2024-07-23T13:30:12.427380Z" + }, + "papermill": { + "duration": 0.020151, + "end_time": "2024-07-23T13:30:12.430262", + "exception": false, + "start_time": "2024-07-23T13:30:12.410111", + "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": "f6cb0282", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T13:30:12.455950Z", + "iopub.status.busy": "2024-07-23T13:30:12.455662Z", + "iopub.status.idle": "2024-07-23T13:30:12.460516Z", + "shell.execute_reply": "2024-07-23T13:30:12.459652Z" + }, + "papermill": { + "duration": 0.019786, + "end_time": "2024-07-23T13:30:12.462386", + "exception": false, + "start_time": "2024-07-23T13:30:12.442600", + "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 = 1\n", + "debug = False\n", + "folder = \"eval\"\n", + "path_prefix = \"../../../../\"\n", + "path = \"eval/iris/realtabformer/1\"\n", + "param_index = 0\n", + "allow_same_prediction = True\n", + "log_wandb = False\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bd7c02d6", + "metadata": { + "papermill": { + "duration": 0.01103, + "end_time": "2024-07-23T13:30:12.485001", + "exception": false, + "start_time": "2024-07-23T13:30:12.473971", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "5f45b1d0", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T13:30:12.508251Z", + "iopub.status.busy": "2024-07-23T13:30:12.507981Z", + "iopub.status.idle": "2024-07-23T13:30:12.516907Z", + "shell.execute_reply": "2024-07-23T13:30:12.516147Z" + }, + "executionInfo": { + "elapsed": 7, + "status": "ok", + "timestamp": 1696841022169, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "UdvXYv3c3LXy", + "papermill": { + "duration": 0.022685, + "end_time": "2024-07-23T13:30:12.518712", + "exception": false, + "start_time": "2024-07-23T13:30:12.496027", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/kaggle/working\n", + "/kaggle/working/eval/iris/realtabformer/1\n" + ] + } + ], + "source": [ + "from pathlib import Path\n", + "import os\n", + "\n", + "%cd /kaggle/working/\n", + "\n", + "if path is None:\n", + " path = os.path.join(folder, dataset_name, single_model, random_seed)\n", + "Path(path).mkdir(parents=True, exist_ok=True)\n", + "\n", + "%cd {path}" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f85bf540", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T13:30:12.542518Z", + "iopub.status.busy": "2024-07-23T13:30:12.541890Z", + "iopub.status.idle": "2024-07-23T13:30:14.534137Z", + "shell.execute_reply": "2024-07-23T13:30:14.533195Z" + }, + "papermill": { + "duration": 2.006518, + "end_time": "2024-07-23T13:30:14.536319", + "exception": false, + "start_time": "2024-07-23T13:30:12.529801", + "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:30:14.563213Z", + "iopub.status.busy": "2024-07-23T13:30:14.562539Z", + "iopub.status.idle": "2024-07-23T13:30:14.574077Z", + "shell.execute_reply": "2024-07-23T13:30:14.573238Z" + }, + "papermill": { + "duration": 0.027146, + "end_time": "2024-07-23T13:30:14.576056", + "exception": false, + "start_time": "2024-07-23T13:30:14.548910", + "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:30:14.600387Z", + "iopub.status.busy": "2024-07-23T13:30:14.599883Z", + "iopub.status.idle": "2024-07-23T13:30:14.606805Z", + "shell.execute_reply": "2024-07-23T13:30:14.605916Z" + }, + "executionInfo": { + "elapsed": 6, + "status": "ok", + "timestamp": 1696841022169, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "Vrl2QkoV3o_8", + "papermill": { + "duration": 0.021418, + "end_time": "2024-07-23T13:30:14.608887", + "exception": false, + "start_time": "2024-07-23T13:30:14.587469", + "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:30:14.632709Z", + "iopub.status.busy": "2024-07-23T13:30:14.632449Z", + "iopub.status.idle": "2024-07-23T13:30:14.730376Z", + "shell.execute_reply": "2024-07-23T13:30:14.729586Z" + }, + "executionInfo": { + "elapsed": 6, + "status": "ok", + "timestamp": 1696841022169, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "TilUuFk9vqMb", + "papermill": { + "duration": 0.112525, + "end_time": "2024-07-23T13:30:14.732612", + "exception": false, + "start_time": "2024-07-23T13:30:14.620087", + "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:30:14.758676Z", + "iopub.status.busy": "2024-07-23T13:30:14.758373Z", + "iopub.status.idle": "2024-07-23T13:30:19.156544Z", + "shell.execute_reply": "2024-07-23T13:30:19.155733Z" + }, + "executionInfo": { + "elapsed": 3113, + "status": "ok", + "timestamp": 1696841025277, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "7Abt8nStvr9Z", + "papermill": { + "duration": 4.413853, + "end_time": "2024-07-23T13:30:19.158904", + "exception": false, + "start_time": "2024-07-23T13:30:14.745051", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-07-23 13:30:16.505583: 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:30:16.505641: 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:30:16.507194: 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:30:19.184798Z", + "iopub.status.busy": "2024-07-23T13:30:19.183650Z", + "iopub.status.idle": "2024-07-23T13:30:19.190507Z", + "shell.execute_reply": "2024-07-23T13:30:19.189800Z" + }, + "papermill": { + "duration": 0.021659, + "end_time": "2024-07-23T13:30:19.192450", + "exception": false, + "start_time": "2024-07-23T13:30:19.170791", + "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:30:19.218074Z", + "iopub.status.busy": "2024-07-23T13:30:19.217700Z", + "iopub.status.idle": "2024-07-23T13:30:21.866550Z", + "shell.execute_reply": "2024-07-23T13:30:21.865774Z" + }, + "executionInfo": { + "elapsed": 20137, + "status": "ok", + "timestamp": 1696841045408, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "tbaguWxAvtPi", + "papermill": { + "duration": 2.664335, + "end_time": "2024-07-23T13:30:21.868901", + "exception": false, + "start_time": "2024-07-23T13:30:19.204566", + "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:30:21.897238Z", + "iopub.status.busy": "2024-07-23T13:30:21.896941Z", + "iopub.status.idle": "2024-07-23T13:30:21.902921Z", + "shell.execute_reply": "2024-07-23T13:30:21.902082Z" + }, + "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.023124, + "end_time": "2024-07-23T13:30:21.904818", + "exception": false, + "start_time": "2024-07-23T13:30:21.881694", + "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:30:21.930518Z", + "iopub.status.busy": "2024-07-23T13:30:21.929845Z", + "iopub.status.idle": "2024-07-23T13:30:21.934697Z", + "shell.execute_reply": "2024-07-23T13:30:21.933952Z" + }, + "papermill": { + "duration": 0.019361, + "end_time": "2024-07-23T13:30:21.936609", + "exception": false, + "start_time": "2024-07-23T13:30:21.917248", + "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:30:21.961296Z", + "iopub.status.busy": "2024-07-23T13:30:21.961001Z", + "iopub.status.idle": "2024-07-23T13:30:22.019882Z", + "shell.execute_reply": "2024-07-23T13:30:22.019074Z" + }, + "papermill": { + "duration": 0.07365, + "end_time": "2024-07-23T13:30:22.021978", + "exception": false, + "start_time": "2024-07-23T13:30:21.948328", + "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:30:22.048709Z", + "iopub.status.busy": "2024-07-23T13:30:22.048433Z", + "iopub.status.idle": "2024-07-23T13:30:22.616141Z", + "shell.execute_reply": "2024-07-23T13:30:22.615285Z" + }, + "executionInfo": { + "elapsed": 588, + "status": "ok", + "timestamp": 1696841049215, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "NgahtU1q9uLO", + "papermill": { + "duration": 0.583417, + "end_time": "2024-07-23T13:30:22.618161", + "exception": false, + "start_time": "2024-07-23T13:30:22.034744", + "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:30:22.643989Z", + "iopub.status.busy": "2024-07-23T13:30:22.643365Z", + "iopub.status.idle": "2024-07-23T13:30:22.785028Z", + "shell.execute_reply": "2024-07-23T13:30:22.784164Z" + }, + "papermill": { + "duration": 0.156839, + "end_time": "2024-07-23T13:30:22.787216", + "exception": false, + "start_time": "2024-07-23T13:30:22.630377", + "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:30:22.815235Z", + "iopub.status.busy": "2024-07-23T13:30:22.814564Z", + "iopub.status.idle": "2024-07-23T13:30:23.113373Z", + "shell.execute_reply": "2024-07-23T13:30:23.112465Z" + }, + "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.315171, + "end_time": "2024-07-23T13:30:23.115436", + "exception": false, + "start_time": "2024-07-23T13:30:22.800265", + "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:30:23.143542Z", + "iopub.status.busy": "2024-07-23T13:30:23.143248Z", + "iopub.status.idle": "2024-07-23T13:30:23.147440Z", + "shell.execute_reply": "2024-07-23T13:30:23.146592Z" + }, + "papermill": { + "duration": 0.020286, + "end_time": "2024-07-23T13:30:23.149330", + "exception": false, + "start_time": "2024-07-23T13:30:23.129044", + "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:30:23.175164Z", + "iopub.status.busy": "2024-07-23T13:30:23.174670Z", + "iopub.status.idle": "2024-07-23T13:30:23.181742Z", + "shell.execute_reply": "2024-07-23T13:30:23.180910Z" + }, + "papermill": { + "duration": 0.022249, + "end_time": "2024-07-23T13:30:23.183756", + "exception": false, + "start_time": "2024-07-23T13:30:23.161507", + "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:30:23.210216Z", + "iopub.status.busy": "2024-07-23T13:30:23.209432Z", + "iopub.status.idle": "2024-07-23T13:30:23.314620Z", + "shell.execute_reply": "2024-07-23T13:30:23.313751Z" + }, + "papermill": { + "duration": 0.120527, + "end_time": "2024-07-23T13:30:23.316603", + "exception": false, + "start_time": "2024-07-23T13:30:23.196076", + "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:30:23.347266Z", + "iopub.status.busy": "2024-07-23T13:30:23.346969Z", + "iopub.status.idle": "2024-07-23T13:39:43.421547Z", + "shell.execute_reply": "2024-07-23T13:39:43.420587Z" + }, + "papermill": { + "duration": 560.093005, + "end_time": "2024-07-23T13:39:43.423864", + "exception": false, + "start_time": "2024-07-23T13:30:23.330859", + "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.04035223267093208, 'avg_role_model_std_loss': 1.5106512021196137, 'avg_role_model_mean_pred_loss': 0.0025775292891176034, 'avg_role_model_g_mag_loss': 3.584861627720898, '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.041278856180562, 'n_size': 805, 'n_batch': 26, 'duration': 26.71958327293396, 'duration_batch': 1.0276762797282293, 'duration_size': 0.03319202891047697, 'avg_pred_std': 0.22644928842782974}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.04128301426768303, 'avg_role_model_std_loss': 0.5929602065256664, 'avg_role_model_mean_pred_loss': 0.0049905984569340945, '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.04128301426768303, 'n_size': 200, 'n_batch': 7, 'duration': 6.170211315155029, 'duration_batch': 0.8814587593078613, 'duration_size': 0.030851056575775148, 'avg_pred_std': 0.3803991121905191}\n", + "Epoch 1\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.06649365921082519, 'avg_role_model_std_loss': 10.036352791393606, 'avg_role_model_mean_pred_loss': 0.00863176799622966, 'avg_role_model_g_mag_loss': 2.178119392868895, '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.06761162099515244, 'n_size': 805, 'n_batch': 26, 'duration': 27.09584665298462, 'duration_batch': 1.0421479481917162, 'duration_size': 0.03365943683600574, 'avg_pred_std': 0.18946315478891707}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.1167106756567955, 'avg_role_model_std_loss': 14.731133724961962, 'avg_role_model_mean_pred_loss': 0.02034130699932575, '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.1167106756567955, 'n_size': 200, 'n_batch': 7, 'duration': 6.496413946151733, 'duration_batch': 0.9280591351645333, 'duration_size': 0.032482069730758664, 'avg_pred_std': 0.10499821071113859}\n", + "Epoch 2\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.0709905679088942, 'avg_role_model_std_loss': 11.26746873380258, 'avg_role_model_mean_pred_loss': 0.01148433793070061, 'avg_role_model_g_mag_loss': 1.4645538395235997, '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.07357932938181835, 'n_size': 805, 'n_batch': 26, 'duration': 28.517270803451538, 'duration_batch': 1.0968181078250592, 'duration_size': 0.035425181122300045, 'avg_pred_std': 0.2417534221536838}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.0574333530664444, 'avg_role_model_std_loss': 0.9503730237483978, 'avg_role_model_mean_pred_loss': 0.0074256163975223895, '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.0574333530664444, 'n_size': 200, 'n_batch': 7, 'duration': 5.761106491088867, 'duration_batch': 0.8230152130126953, 'duration_size': 0.028805532455444337, 'avg_pred_std': 0.4222025956426348}\n", + "Epoch 3\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.056450563707961615, 'avg_role_model_std_loss': 4.041280413881536, 'avg_role_model_mean_pred_loss': 0.007213124340025546, 'avg_role_model_g_mag_loss': 0.9532235306982668, '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.057691644914216876, 'n_size': 805, 'n_batch': 26, 'duration': 25.189605474472046, 'duration_batch': 0.9688309797873864, 'duration_size': 0.03129143537201497, 'avg_pred_std': 0.3005542123260406}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.028426543846726417, 'avg_role_model_std_loss': 0.9097847834761653, 'avg_role_model_mean_pred_loss': 0.001645809921901673, '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.028426543846726417, 'n_size': 200, 'n_batch': 7, 'duration': 5.42231559753418, 'duration_batch': 0.7746165139334542, 'duration_size': 0.027111577987670898, 'avg_pred_std': 0.24728935531207494}\n", + "Epoch 4\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.02162007026328063, 'avg_role_model_std_loss': 1.4260286737659884, 'avg_role_model_mean_pred_loss': 0.000667593625698489, 'avg_role_model_g_mag_loss': 0.5932542630604335, '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.021986433862482908, 'n_size': 805, 'n_batch': 26, 'duration': 24.984068393707275, 'duration_batch': 0.9609257074502798, 'duration_size': 0.031036109805847548, 'avg_pred_std': 0.2128926943271206}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.052243115454912184, 'avg_role_model_std_loss': 16.18787387439183, 'avg_role_model_mean_pred_loss': 0.0006995670188916847, '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.052243115454912184, 'n_size': 200, 'n_batch': 7, 'duration': 5.421942710876465, 'duration_batch': 0.7745632444109235, 'duration_size': 0.027109713554382325, 'avg_pred_std': 0.10095634417874473}\n", + "Epoch 5\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.018971985156838754, 'avg_role_model_std_loss': 2.0858888434382745, 'avg_role_model_mean_pred_loss': 0.0004714754605047573, 'avg_role_model_g_mag_loss': 0.37194455734783816, '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.019386234708847653, 'n_size': 805, 'n_batch': 26, 'duration': 24.90958333015442, 'duration_batch': 0.9580608973136315, 'duration_size': 0.03094358177658934, 'avg_pred_std': 0.20448845295378795}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.013963545672595501, 'avg_role_model_std_loss': 0.05566889598100845, 'avg_role_model_mean_pred_loss': 0.0008415618928847835, '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.013963545672595501, 'n_size': 200, 'n_batch': 7, 'duration': 5.387285470962524, 'duration_batch': 0.7696122101375035, 'duration_size': 0.026936427354812623, 'avg_pred_std': 0.2710392751864025}\n", + "Epoch 6\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.01433288793409278, 'avg_role_model_std_loss': 0.9602983596736382, 'avg_role_model_mean_pred_loss': 0.0003669036918548254, 'avg_role_model_g_mag_loss': 0.230285990293722, '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.01457834640425277, 'n_size': 805, 'n_batch': 26, 'duration': 24.96616268157959, 'duration_batch': 0.9602370262145996, 'duration_size': 0.031013866685192036, 'avg_pred_std': 0.22227166191889688}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.009185763876885175, 'avg_role_model_std_loss': 0.6514512340779349, 'avg_role_model_mean_pred_loss': 0.00013878739689516807, '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.009185763876885175, 'n_size': 200, 'n_batch': 7, 'duration': 5.410122871398926, 'duration_batch': 0.7728746959141323, 'duration_size': 0.02705061435699463, 'avg_pred_std': 0.21119434918676103}\n", + "Epoch 7\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.010580150507135976, 'avg_role_model_std_loss': 0.6918364966785213, 'avg_role_model_mean_pred_loss': 0.00015421347824717176, 'avg_role_model_g_mag_loss': 0.1186491676739284, '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.010780461909978285, 'n_size': 805, 'n_batch': 26, 'duration': 25.996599912643433, 'duration_batch': 0.9998692274093628, 'duration_size': 0.03229391293496078, 'avg_pred_std': 0.20917126736961877}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.022618245556950568, 'avg_role_model_std_loss': 0.06021921507194098, 'avg_role_model_mean_pred_loss': 0.0014557045306719373, '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.022618245556950568, 'n_size': 200, 'n_batch': 7, 'duration': 6.368146657943726, 'duration_batch': 0.9097352368491036, 'duration_size': 0.03184073328971863, 'avg_pred_std': 0.2719848837171282}\n", + "Epoch 8\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.011298767070615699, 'avg_role_model_std_loss': 0.4760169315850362, 'avg_role_model_mean_pred_loss': 0.00041544349924547334, 'avg_role_model_g_mag_loss': 0.14060623821634682, '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.011522014411339848, 'n_size': 805, 'n_batch': 26, 'duration': 25.052652835845947, 'duration_batch': 0.9635635706094595, 'duration_size': 0.031121307870616084, 'avg_pred_std': 0.2236966760112689}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.008584406338632106, 'avg_role_model_std_loss': 0.14252029143140785, 'avg_role_model_mean_pred_loss': 0.00030257709815487035, '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.008584406338632106, 'n_size': 200, 'n_batch': 7, 'duration': 5.469590187072754, 'duration_batch': 0.7813700267246791, 'duration_size': 0.02734795093536377, 'avg_pred_std': 0.2353833828653608}\n", + "Epoch 9\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.008389739518962014, 'avg_role_model_std_loss': 0.3470528296297394, 'avg_role_model_mean_pred_loss': 0.0001161681552329361, 'avg_role_model_g_mag_loss': 0.13376394836984065, '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.008534462298613666, 'n_size': 805, 'n_batch': 26, 'duration': 25.427392959594727, 'duration_batch': 0.9779766522921048, 'duration_size': 0.03158682355229159, 'avg_pred_std': 0.21983599032347018}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.011391716189682483, 'avg_role_model_std_loss': 0.08455950287835938, 'avg_role_model_mean_pred_loss': 0.0006422647068393416, '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.011391716189682483, 'n_size': 200, 'n_batch': 7, 'duration': 5.549124002456665, 'duration_batch': 0.7927320003509521, 'duration_size': 0.027745620012283326, 'avg_pred_std': 0.2585423652614866}\n", + "Epoch 10\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.008301556261938922, 'avg_role_model_std_loss': 0.3617186441316825, 'avg_role_model_mean_pred_loss': 0.00017248948551699055, 'avg_role_model_g_mag_loss': 0.10802898126544419, '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.008456925581562223, 'n_size': 805, 'n_batch': 26, 'duration': 25.1789333820343, 'duration_batch': 0.968420514693627, 'duration_size': 0.03127817811432833, 'avg_pred_std': 0.2184981590566727}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.008516917899250985, 'avg_role_model_std_loss': 0.1037150240912784, 'avg_role_model_mean_pred_loss': 0.0003056966117583215, '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.008516917899250985, 'n_size': 200, 'n_batch': 7, 'duration': 5.530883312225342, 'duration_batch': 0.7901261874607631, 'duration_size': 0.02765441656112671, 'avg_pred_std': 0.23361824240003312}\n", + "Epoch 11\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.007527085308054959, 'avg_role_model_std_loss': 0.2670242926967778, 'avg_role_model_mean_pred_loss': 0.00014067767066161557, 'avg_role_model_g_mag_loss': 0.1137454834691486, '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.007661224381928766, 'n_size': 805, 'n_batch': 26, 'duration': 26.240521907806396, 'duration_batch': 1.0092508426079383, 'duration_size': 0.032596921624604216, 'avg_pred_std': 0.22276158014742228}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.01129237875342369, 'avg_role_model_std_loss': 1.2686012802379472, 'avg_role_model_mean_pred_loss': 0.00013952558357004818, '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.01129237875342369, 'n_size': 200, 'n_batch': 7, 'duration': 5.760839462280273, 'duration_batch': 0.8229770660400391, 'duration_size': 0.028804197311401367, 'avg_pred_std': 0.18647725028651102}\n", + "Epoch 12\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.007884731806051102, 'avg_role_model_std_loss': 0.25581401437420936, 'avg_role_model_mean_pred_loss': 0.00015932995629329118, 'avg_role_model_g_mag_loss': 0.1286248725023329, '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.008028647243710501, 'n_size': 805, 'n_batch': 26, 'duration': 25.044294595718384, 'duration_batch': 0.9632420998353225, 'duration_size': 0.03111092496362532, 'avg_pred_std': 0.22597603557201532}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.010219628997147083, 'avg_role_model_std_loss': 0.08310020458260883, 'avg_role_model_mean_pred_loss': 0.0002812759166998069, '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.010219628997147083, 'n_size': 200, 'n_batch': 7, 'duration': 6.131714820861816, 'duration_batch': 0.8759592601231166, 'duration_size': 0.030658574104309083, 'avg_pred_std': 0.23571028241089412}\n", + "Epoch 13\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.007819494660596669, 'avg_role_model_std_loss': 0.37005374629874355, 'avg_role_model_mean_pred_loss': 0.00011210728438250637, 'avg_role_model_g_mag_loss': 0.14398229238779647, '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.007955009360676226, 'n_size': 805, 'n_batch': 26, 'duration': 25.99160122871399, 'duration_batch': 0.9996769703351535, 'duration_size': 0.032287703389706816, 'avg_pred_std': 0.22374733766684166}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.008346367888152599, 'avg_role_model_std_loss': 0.3537601569135274, 'avg_role_model_mean_pred_loss': 0.0001958947411912959, '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.008346367888152599, 'n_size': 200, 'n_batch': 7, 'duration': 5.5152013301849365, 'duration_batch': 0.7878859043121338, 'duration_size': 0.027576006650924682, 'avg_pred_std': 0.21150318000997817}\n", + "Epoch 14\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.008513097690348947, 'avg_role_model_std_loss': 0.4737979023394963, 'avg_role_model_mean_pred_loss': 0.00012372815984218837, 'avg_role_model_g_mag_loss': 0.12297226058677857, '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.008661478007594066, 'n_size': 805, 'n_batch': 26, 'duration': 25.44249391555786, 'duration_batch': 0.978557458290687, 'duration_size': 0.031605582503798586, 'avg_pred_std': 0.22062810109211847}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.007794224517419934, 'avg_role_model_std_loss': 0.5712006194932785, 'avg_role_model_mean_pred_loss': 0.00013515979429939762, '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.007794224517419934, 'n_size': 200, 'n_batch': 7, 'duration': 5.686357736587524, 'duration_batch': 0.8123368195125035, 'duration_size': 0.028431788682937623, 'avg_pred_std': 0.20636332673685892}\n", + "Epoch 15\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.007061334028955757, 'avg_role_model_std_loss': 0.4000626574881275, 'avg_role_model_mean_pred_loss': 8.407065683318901e-05, 'avg_role_model_g_mag_loss': 0.12316323696456341, '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.007187281181654019, 'n_size': 805, 'n_batch': 26, 'duration': 26.218294382095337, 'duration_batch': 1.0083959377728975, 'duration_size': 0.03256930979142278, 'avg_pred_std': 0.21673449465575126}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.007704954277724028, 'avg_role_model_std_loss': 0.7454492084725644, 'avg_role_model_mean_pred_loss': 9.874404175207019e-05, 'avg_role_model_g_mag_loss': 0.0, 'avg_role_model_g_cos_loss': 0.0, 'avg_non_role_model_g_mag_loss': 0.0, 'avg_non_role_model_g_cos_loss': 0.0, 'avg_non_role_model_embed_loss': 0.0, 'avg_loss': 0.007704954277724028, 'n_size': 200, 'n_batch': 7, 'duration': 5.824077367782593, 'duration_batch': 0.8320110525403704, 'duration_size': 0.029120386838912965, 'avg_pred_std': 0.20071943317140853}\n", + "Epoch 16\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.006824540904931354, 'avg_role_model_std_loss': 0.25965408854776445, 'avg_role_model_mean_pred_loss': 6.937324523487765e-05, 'avg_role_model_g_mag_loss': 0.14068481183107595, '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.006950521754876057, 'n_size': 805, 'n_batch': 26, 'duration': 24.999322414398193, 'duration_batch': 0.9615124005537766, 'duration_size': 0.031055058899873533, 'avg_pred_std': 0.22709995221633178}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.008216234035789966, 'avg_role_model_std_loss': 0.6674761859966176, 'avg_role_model_mean_pred_loss': 0.0001883590142824687, '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.008216234035789966, 'n_size': 200, 'n_batch': 7, 'duration': 5.385258436203003, 'duration_batch': 0.7693226337432861, 'duration_size': 0.026926292181015013, 'avg_pred_std': 0.20701564422675542}\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.008057898143306375, 'avg_g_mag_loss': 0.029367346931248903, 'avg_g_cos_loss': 0.0, 'pred_duration': 0.22088861465454102, 'grad_duration': 0.1100301742553711, 'total_duration': 0.3309187889099121, 'pred_std': 0.2213732898235321, 'std_loss': 0.010461580939590931, 'mean_pred_loss': 0.000112512381747365, 'pred_rmse': 0.08976580202579498, 'pred_mae': 0.06098306179046631, 'pred_mape': 0.13814954459667206, 'grad_rmse': 0.2859276831150055, 'grad_mae': 0.11519456654787064, 'grad_mape': 1.6112604141235352}, '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.008057898143306375, 'avg_g_mag_loss': 0.029367346931248903, 'avg_g_cos_loss': 0.0, 'avg_pred_duration': 0.22088861465454102, 'avg_grad_duration': 0.1100301742553711, 'avg_total_duration': 0.3309187889099121, 'avg_pred_std': 0.2213732898235321, 'avg_std_loss': 0.010461580939590931, 'avg_mean_pred_loss': 0.000112512381747365}, 'min_metrics': {'avg_loss': 0.008057898143306375, 'avg_g_mag_loss': 0.029367346931248903, 'avg_g_cos_loss': 0.0, 'pred_duration': 0.22088861465454102, 'grad_duration': 0.1100301742553711, 'total_duration': 0.3309187889099121, 'pred_std': 0.2213732898235321, 'std_loss': 0.010461580939590931, 'mean_pred_loss': 0.000112512381747365, 'pred_rmse': 0.08976580202579498, 'pred_mae': 0.06098306179046631, 'pred_mape': 0.13814954459667206, 'grad_rmse': 0.2859276831150055, 'grad_mae': 0.11519456654787064, 'grad_mape': 1.6112604141235352}, 'model_metrics': {'realtabformer': {'avg_loss': 0.008057898143306375, 'avg_g_mag_loss': 0.029367346931248903, 'avg_g_cos_loss': 0.0, 'pred_duration': 0.22088861465454102, 'grad_duration': 0.1100301742553711, 'total_duration': 0.3309187889099121, 'pred_std': 0.2213732898235321, 'std_loss': 0.010461580939590931, 'mean_pred_loss': 0.000112512381747365, 'pred_rmse': 0.08976580202579498, 'pred_mae': 0.06098306179046631, 'pred_mape': 0.13814954459667206, 'grad_rmse': 0.2859276831150055, 'grad_mae': 0.11519456654787064, 'grad_mape': 1.6112604141235352}}}\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:39:43.460498Z", + "iopub.status.busy": "2024-07-23T13:39:43.459742Z", + "iopub.status.idle": "2024-07-23T13:39:43.464585Z", + "shell.execute_reply": "2024-07-23T13:39:43.463811Z" + }, + "papermill": { + "duration": 0.024989, + "end_time": "2024-07-23T13:39:43.466444", + "exception": false, + "start_time": "2024-07-23T13:39:43.441455", + "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:39:43.500039Z", + "iopub.status.busy": "2024-07-23T13:39:43.499353Z", + "iopub.status.idle": "2024-07-23T13:39:43.541030Z", + "shell.execute_reply": "2024-07-23T13:39:43.540302Z" + }, + "papermill": { + "duration": 0.060599, + "end_time": "2024-07-23T13:39:43.542928", + "exception": false, + "start_time": "2024-07-23T13:39:43.482329", + "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:39:43.578948Z", + "iopub.status.busy": "2024-07-23T13:39:43.578104Z", + "iopub.status.idle": "2024-07-23T13:39:43.789537Z", + "shell.execute_reply": "2024-07-23T13:39:43.788620Z" + }, + "papermill": { + "duration": 0.231774, + "end_time": "2024-07-23T13:39:43.791427", + "exception": false, + "start_time": "2024-07-23T13:39:43.559653", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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2LFjTJs2jVGjRjFnzpxmfVbOIILUFCXn7N+bTndZQSqrMjN00Vftft+Df0jCT+/8V/H222+3e//222/To0cPDh48yJ133smjjz7Kd999ZxOgVatWMX36dDQaDYcPH2bjxo3s2LGDsWPHAvD3v/+dAQMGNMv2VatWUV5eznvvvWdLJrh8+XJuvvlmXnrpJby9vTGZTNx0003069cPgCFDhtiuz87OZv78+QwePBjAKTv0ej1GoxGNRuNwDum1117L448/bnfs2Wefte3HxsYyb948Vq9e3aggdevWjeXLl6PT6Rg8eDA33ngj6enpbSpI0mVriuJ6/znFj+R2jh49yvTp0+nbty9BQUHExsYC6o+7R48eXH/99XzwwQcAZGVlkZmZyYwZMwA4cuQIXl5ejB492lZf//796datW7NsOXToECNHjrTLbDpx4kQsFgtHjhyhe/fu3HPPPSQlJXHzzTfz+uuvk5OTYyubmprKfffdR2JiIn/+859tXc+WYBXauqxZs4aJEycSERFBQEAAzz77LNnZ2Y3WExcXZzdhNjIystktSWeRFlJTeJAg+XrrOPiHJLfc1xVuvvlmYmJieOutt4iKisJisTBs2DAqKysBtRv08MMPs2zZMlatWsXw4cMZPtx9EfbvvPMODz/8MOvXr2fNmjU8++yzbNiwgSuvvJLnnnuOX//613z55Zf85z//YfHixaxevZqpU6c2+3710z5bBfn5558nKSkJo9HI6tWrWbJkSaP11O86ajQaLBZLs+1yBmkhNYV12L9brPpq6rq5lzQaDX56r3bfXPEfnT9/niNHjvDss89y3XXXMWTIEC5evGhX5tZbb6W8vJz169ezatUqW+sIYNCgQVRXV7Nnzx7bsWPHjl1Wh7MMGTKEH374gZKSEtuxLVu2oNVqGTRokO3YFVdcwYIFC9i6dSvDhg1j1apVtnMDBw7kscce4+uvv+a2227jnXfeafK+er0es9k5f9/WrVuJiYnhmWeeYezYsQwYMMDmVO9oiCA1hdWpHVXTxO/CLaTOQLdu3QgJCeHNN9/k2LFj/Pe//yU1NdWujL+/P8nJySxcuJBDhw4xffp027nBgweTmJjI/fffz/bt29mzZw/3338/vr6+zZr6MGPGDHx8fJg1axYHDhxg06ZNPPTQQ9x9992Eh4eTlZXFggULyMzM5OTJk3z9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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:39:43.826333Z", + "iopub.status.busy": "2024-07-23T13:39:43.825684Z", + "iopub.status.idle": "2024-07-23T13:39:50.253529Z", + "shell.execute_reply": "2024-07-23T13:39:50.252697Z" + }, + "papermill": { + "duration": 6.447566, + "end_time": "2024-07-23T13:39:50.255757", + "exception": false, + "start_time": "2024-07-23T13:39:43.808191", + "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:39:50.294010Z", + "iopub.status.busy": "2024-07-23T13:39:50.293670Z", + "iopub.status.idle": "2024-07-23T13:39:50.313656Z", + "shell.execute_reply": "2024-07-23T13:39:50.312804Z" + }, + "papermill": { + "duration": 0.040873, + "end_time": "2024-07-23T13:39:50.315726", + "exception": false, + "start_time": "2024-07-23T13:39:50.274853", + "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.00.0219150.0080580.1099580.1151951.611260.2859280.0001130.2186450.0609830.138150.0897660.2213730.0104620.328603
\n", + "
" + ], + "text/plain": [ + " avg_g_cos_loss avg_g_mag_loss avg_loss grad_duration \\\n", + "realtabformer 0.0 0.021915 0.008058 0.109958 \n", + "\n", + " grad_mae grad_mape grad_rmse mean_pred_loss pred_duration \\\n", + "realtabformer 0.115195 1.61126 0.285928 0.000113 0.218645 \n", + "\n", + " pred_mae pred_mape pred_rmse pred_std std_loss \\\n", + "realtabformer 0.060983 0.13815 0.089766 0.221373 0.010462 \n", + "\n", + " total_duration \n", + "realtabformer 0.328603 " + ] + }, + "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:39:50.351434Z", + "iopub.status.busy": "2024-07-23T13:39:50.350957Z", + "iopub.status.idle": "2024-07-23T13:39:50.627746Z", + "shell.execute_reply": "2024-07-23T13:39:50.626793Z" + }, + "papermill": { + "duration": 0.296903, + "end_time": "2024-07-23T13:39:50.629821", + "exception": false, + "start_time": "2024-07-23T13:39:50.332918", + "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:39:50.667508Z", + "iopub.status.busy": "2024-07-23T13:39:50.666680Z", + "iopub.status.idle": "2024-07-23T13:39:56.773508Z", + "shell.execute_reply": "2024-07-23T13:39:56.772654Z" + }, + "papermill": { + "duration": 6.127902, + "end_time": "2024-07-23T13:39:56.775953", + "exception": false, + "start_time": "2024-07-23T13:39:50.648051", + "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:39:56.813991Z", + "iopub.status.busy": "2024-07-23T13:39:56.813259Z", + "iopub.status.idle": "2024-07-23T13:39:56.827245Z", + "shell.execute_reply": "2024-07-23T13:39:56.826542Z" + }, + "papermill": { + "duration": 0.034979, + "end_time": "2024-07-23T13:39:56.829130", + "exception": false, + "start_time": "2024-07-23T13:39:56.794151", + "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:39:56.864065Z", + "iopub.status.busy": "2024-07-23T13:39:56.863802Z", + "iopub.status.idle": "2024-07-23T13:39:56.868695Z", + "shell.execute_reply": "2024-07-23T13:39:56.867839Z" + }, + "papermill": { + "duration": 0.024641, + "end_time": "2024-07-23T13:39:56.870702", + "exception": false, + "start_time": "2024-07-23T13:39:56.846061", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'realtabformer': 0.7694472013413907}\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:39:56.905672Z", + "iopub.status.busy": "2024-07-23T13:39:56.905403Z", + "iopub.status.idle": "2024-07-23T13:39:57.230583Z", + "shell.execute_reply": "2024-07-23T13:39:57.229635Z" + }, + "papermill": { + "duration": 0.344994, + "end_time": "2024-07-23T13:39:57.232584", + "exception": false, + "start_time": "2024-07-23T13:39:56.887590", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from ml_utility_loss.loss_learning.visualization import plot_pred_density_2\n", + "\n", + "_ = plot_pred_density_2(y)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "e79e4b0f", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T13:39:57.270786Z", + "iopub.status.busy": "2024-07-23T13:39:57.270487Z", + "iopub.status.idle": "2024-07-23T13:39:57.617721Z", + "shell.execute_reply": "2024-07-23T13:39:57.616788Z" + }, + "papermill": { + "duration": 0.368642, + "end_time": "2024-07-23T13:39:57.619805", + "exception": false, + "start_time": "2024-07-23T13:39:57.251163", + "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_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:39:57.659493Z", + "iopub.status.busy": "2024-07-23T13:39:57.658653Z", + "iopub.status.idle": "2024-07-23T13:39:57.888503Z", + "shell.execute_reply": "2024-07-23T13:39:57.887579Z" + }, + "papermill": { + "duration": 0.251469, + "end_time": "2024-07-23T13:39:57.890404", + "exception": false, + "start_time": "2024-07-23T13:39:57.638935", + "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:39:57.930109Z", + "iopub.status.busy": "2024-07-23T13:39:57.929825Z", + "iopub.status.idle": "2024-07-23T13:39:58.216944Z", + "shell.execute_reply": "2024-07-23T13:39:58.215929Z" + }, + "papermill": { + "duration": 0.309553, + "end_time": "2024-07-23T13:39:58.219086", + "exception": false, + "start_time": "2024-07-23T13:39:57.909533", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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dg/Dtm3biIiIcDukpjiaNWuGVqvlzJkzhX5epQlsbty4Mbt27bI7VvC9I44cOcKVK1eYNWsWN998M02aNCnkrG/atCl//vmn3THbn7GvMBSwtHxkeEnl5U3u71yHbdN6+yzi2JZJkyZx9epVRowYwa5du0hMTOSXX35h3LhxGI1GKleuTNWqVZkzZw7Hjx/nt99+Y+rUqUVes06dOiiKwurVq7l06RIZGRluXefjjz9m+fLlHDlyhEmTJnHt2jXGjx/vdL5HH32Us2fPMmXKFI4cOcLKlSuZMWMGU6dO9Xh+XkREBE899RRPPvkkCxYsIDExkb179/Lhhx+yYMGCEl93ypQpfPnllyxYsIBjx47x2muv8ffffxdbTKB27doEBwfz4YcfcuLECVatWsWrr75qN+bhhx/m2LFjPP300xw9epRFixZZd2l9iaGA5VUhQiUk3qNGjRps27YNo9FI//79admyJU888QTR0dGoVCpUKhWLFy9mz549tGjRgieffJL//e9/RV6zZs2avPzyy0ybNo3Y2FgmT57s1nVmzZrFrFmzaN26NVu3bmXVqlVUq1atyPnWrFnDn3/+SevWrXn44YeZMGECzz//fKl+Ns549dVXeeGFF5g5cyZNmzbllltu4aeffipR/KGF++67j+nTp/PUU09x4403cvLkScaOHVtsNYeYmBjmz5/PDz/8QLNmzZg1axZvv/223ZjatWuzdOlSVqxYQevWrZk9ezZvvPFGiWUtKbZhEuC7CHtF+GqBGiCkpaURFRVFampqoe5BOTk5nDx5knr16nmsVIhEUpB+/foRFxfH119/7Zf5Pf13npSazeX0fD9cTISWuKiSX7eoZ9QW6bCXSLxIVlYWs2fPZsCAAajVar799lvWr1/PunXr/C2axzDkWV6KYg5QlctGiaQM0Lx5c7vQCtvXN998g6IorFmzhu7du9OuXTt+/PFHli5dSt++ff0tusewOOyDNWZ14ivlJS0viaQUrFmzBr1e7/Cz2NhYQkNDWb9+vY+l8i0Wh32wWoVOb/JZepBUXhJJKahTx/c7yYGGxWFvsbx8FaQql40SiaTECCGsysrXy0apvCQSSYmx+LsUBYLUFuXlm7ml8pJIJCXGstOoVimoVebAW5keJJFIAh59Xm5okFohT3dhlMpLIpEEOhbLS6NSocpLeTKZijrDc0jl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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.019303, + "end_time": "2024-07-23T13:39:58.258582", + "exception": false, + "start_time": "2024-07-23T13:39:58.239279", + "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": 589.250962, + "end_time": "2024-07-23T13:40:00.102152", + "environment_variables": {}, + "exception": null, + "input_path": "eval/iris/realtabformer/1/mlu-eval.ipynb", + "output_path": "eval/iris/realtabformer/1/mlu-eval.ipynb", + "parameters": { + "allow_same_prediction": true, + "dataset": "iris", + "dataset_name": "iris", + "debug": false, + "folder": "eval", + "gp": true, + "gp_multiply": true, + "log_wandb": false, + "param_index": 0, + "path": "eval/iris/realtabformer/1", + "path_prefix": "../../../../", + "random_seed": 1, + "single_model": "realtabformer" + }, + "start_time": "2024-07-23T13:30:10.851190", + "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/1/model.pt b/iris/realtabformer/1/model.pt new file mode 100644 index 0000000000000000000000000000000000000000..de054ae25163907f0fcd1e90558a553016833cc0 --- /dev/null +++ b/iris/realtabformer/1/model.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:540195ef7f653b36abcefb021c290097574f7aa93b5d45ebc68b46ed14e5c2c9 +size 5937089 diff --git a/iris/realtabformer/1/params.json b/iris/realtabformer/1/params.json new file mode 100644 index 0000000000000000000000000000000000000000..e2772763438c022a440e8056c3c96ab80af1e383 --- /dev/null +++ b/iris/realtabformer/1/params.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93f4067dc41f38d7dee1638127bed1a3069508a4d882394f1ec70bb6e1ec4d8c +size 1924 diff --git a/iris/realtabformer/1/pred/error.csv b/iris/realtabformer/1/pred/error.csv new file mode 100644 index 0000000000000000000000000000000000000000..7b5ae3320381e3db57d02a6737c30f7a49a74a46 --- /dev/null +++ b/iris/realtabformer/1/pred/error.csv @@ -0,0 +1,201 @@ +,realtabformer +0,0.053990796 +1,0.1275242 +2,0.011881828 +3,-0.027305424 +4,0.05600293 +5,0.27090195 +6,-0.0041321516 +7,-0.0181306 +8,0.043969944 +9,-0.042957485 +10,-0.002757907 +11,0.070994675 +12,0.10065843 +13,-0.033478737 +14,0.074433565 +15,0.03500998 +16,0.06372477 +17,0.10282695 +18,0.013873279 +19,-0.034039557 +20,0.07033084 +21,0.31796485 +22,-0.015149415 +23,-0.021268487 +24,0.040036514 +25,0.14076018 +26,-0.015131712 +27,-0.01831013 +28,0.02561836 +29,0.091316104 +30,0.054299712 +31,0.02003491 +32,0.09506376 +33,0.19025147 +34,-0.033416927 +35,-0.03729558 +36,0.05796291 +37,0.15411168 +38,0.07238281 +39,-0.09045893 +40,-0.14287227 +41,-0.013223231 +42,-0.054392457 +43,0.17140114 +44,0.06041105 +45,0.03999865 +46,-0.054571748 +47,-0.05871004 +48,0.03748037 +49,0.06901568 +50,-0.025040627 +51,0.11394328 +52,0.1248063 +53,0.11514205 +54,-0.06596774 +55,0.0073440075 +56,-0.0063910335 +57,0.10221106 +58,-0.07047224 +59,0.07000095 +60,0.054575384 +61,-0.019143343 +62,-0.030045152 +63,-0.0036081076 +64,-0.009983242 +65,0.03803295 +66,0.02873844 +67,-0.03311175 +68,-0.11030537 +69,-0.00030058622 +70,0.020538807 +71,0.1573739 +72,-0.21703249 +73,-0.012749314 +74,0.01275605 +75,-0.11211681 +76,0.055016816 +77,0.015467644 +78,-0.003264904 +79,-0.0030013323 +80,0.024712682 +81,-0.0051313043 +82,-0.05020684 +83,-0.021170497 +84,0.12664089 +85,0.017232537 +86,0.017303169 +87,-0.020995438 +88,0.21069987 +89,-0.03612095 +90,0.013075352 +91,0.019931674 +92,-0.24168846 +93,0.021324694 +94,-0.058362305 +95,-0.08892667 +96,0.112057984 +97,-0.021432996 +98,-0.0020599365 +99,-0.017350137 +100,0.03160882 +101,0.00094389915 +102,-0.030235529 +103,-0.019088447 +104,0.22895624 +105,0.06992215 +106,-0.0315876 +107,0.016971946 +108,0.23962049 +109,0.06811607 +110,0.028606057 +111,0.04378736 +112,-0.021978736 +113,0.02105558 +114,-0.11021817 +115,-0.05109352 +116,0.3419373 +117,0.025325894 +118,-0.012555838 +119,-0.040661752 +120,0.04246956 +121,0.002721727 +122,-0.040233016 +123,-0.005020499 +124,-0.027685761 +125,0.06607008 +126,0.06864959 +127,0.044048607 +128,0.011011422 +129,-0.042442918 +130,0.0058626533 +131,-0.038597763 +132,0.011833191 +133,-0.014497161 +134,-0.020224571 +135,-0.057802677 +136,0.01134631 +137,0.01880318 +138,-0.005065441 +139,0.20009714 +140,0.044463217 +141,0.058739007 +142,0.04052621 +143,-0.04780495 +144,-0.038624406 +145,0.027119517 +146,0.0028606057 +147,0.12862468 +148,0.2714731 +149,-0.0042657256 +150,-0.026938438 +151,-0.025170565 +152,0.032013237 +153,-0.115525365 +154,-0.021651268 +155,-0.101573825 +156,0.17973095 +157,-0.027904809 +158,0.0061910152 +159,0.04069817 +160,0.038856864 +161,0.101405144 +162,-0.05354905 +163,-0.024702966 +164,-0.02971673 +165,0.02556318 +166,-0.03715676 +167,-0.007833183 +168,0.22026893 +169,0.045800626 +170,-0.025843322 +171,-0.06768 +172,0.044181585 +173,-0.053499877 +174,-0.04236102 +175,0.00323987 +176,0.22797313 +177,-0.0040969253 +178,-0.023271143 +179,0.0418787 +180,0.14440799 +181,0.19490492 +182,-0.042002797 +183,-0.024981678 +184,-0.031448603 +185,0.07553953 +186,-0.034703076 +187,0.051869452 +188,0.0451155 +189,0.04101491 +190,-0.042474806 +191,-0.110520124 +192,0.034085035 +193,-0.07199645 +194,0.027331412 +195,0.043349862 +196,-0.34752506 +197,-0.010689855 +198,-0.014296353 +199,0.062077403 diff --git a/iris/realtabformer/1/pred/g.csv b/iris/realtabformer/1/pred/g.csv new file mode 100644 index 0000000000000000000000000000000000000000..c5e17c4ff897d0088257a13c112b53a3b79ca9b1 --- /dev/null +++ b/iris/realtabformer/1/pred/g.csv @@ -0,0 +1,201 @@ +,realtabformer +0,0.053990796 +1,0.1275242 +2,0.011881828 +3,0.027305424 +4,0.05600293 +5,0.27090195 +6,0.0041321516 +7,0.0181306 +8,0.043969944 +9,0.042957485 +10,0.002757907 +11,0.070994675 +12,0.10065843 +13,0.033478737 +14,0.074433565 +15,0.03500998 +16,0.06372477 +17,0.10282695 +18,0.013873279 +19,0.034039557 +20,0.07033084 +21,0.31796485 +22,0.015149415 +23,0.021268487 +24,0.040036514 +25,0.14076018 +26,0.015131712 +27,0.01831013 +28,0.02561836 +29,0.091316104 +30,0.054299712 +31,0.02003491 +32,0.09506376 +33,0.19025147 +34,0.033416927 +35,0.03729558 +36,0.05796291 +37,0.15411168 +38,0.07238281 +39,0.09045893 +40,0.14287227 +41,0.013223231 +42,0.054392457 +43,0.17140114 +44,0.06041105 +45,0.03999865 +46,0.054571748 +47,0.05871004 +48,0.03748037 +49,0.06901568 +50,0.025040627 +51,0.11394328 +52,0.1248063 +53,0.11514205 +54,0.06596774 +55,0.0073440075 +56,0.0063910335 +57,0.10221106 +58,0.07047224 +59,0.07000095 +60,0.054575384 +61,0.019143343 +62,0.030045152 +63,0.0036081076 +64,0.009983242 +65,0.03803295 +66,0.02873844 +67,0.03311175 +68,0.11030537 +69,0.00030058622 +70,0.020538807 +71,0.1573739 +72,0.21703249 +73,0.012749314 +74,0.01275605 +75,0.11211681 +76,0.055016816 +77,0.015467644 +78,0.003264904 +79,0.0030013323 +80,0.024712682 +81,0.0051313043 +82,0.05020684 +83,0.021170497 +84,0.12664089 +85,0.017232537 +86,0.017303169 +87,0.020995438 +88,0.21069987 +89,0.03612095 +90,0.013075352 +91,0.019931674 +92,0.24168846 +93,0.021324694 +94,0.058362305 +95,0.08892667 +96,0.112057984 +97,0.021432996 +98,0.0020599365 +99,0.017350137 +100,0.03160882 +101,0.00094389915 +102,0.030235529 +103,0.019088447 +104,0.22895624 +105,0.06992215 +106,0.0315876 +107,0.016971946 +108,0.23962049 +109,0.06811607 +110,0.028606057 +111,0.04378736 +112,0.021978736 +113,0.02105558 +114,0.11021817 +115,0.05109352 +116,0.3419373 +117,0.025325894 +118,0.012555838 +119,0.040661752 +120,0.04246956 +121,0.002721727 +122,0.040233016 +123,0.005020499 +124,0.027685761 +125,0.06607008 +126,0.06864959 +127,0.044048607 +128,0.011011422 +129,0.042442918 +130,0.0058626533 +131,0.038597763 +132,0.011833191 +133,0.014497161 +134,0.020224571 +135,0.057802677 +136,0.01134631 +137,0.01880318 +138,0.005065441 +139,0.20009714 +140,0.044463217 +141,0.058739007 +142,0.04052621 +143,0.04780495 +144,0.038624406 +145,0.027119517 +146,0.0028606057 +147,0.12862468 +148,0.2714731 +149,0.0042657256 +150,0.026938438 +151,0.025170565 +152,0.032013237 +153,0.115525365 +154,0.021651268 +155,0.101573825 +156,0.17973095 +157,0.027904809 +158,0.0061910152 +159,0.04069817 +160,0.038856864 +161,0.101405144 +162,0.05354905 +163,0.024702966 +164,0.02971673 +165,0.02556318 +166,0.03715676 +167,0.007833183 +168,0.22026893 +169,0.045800626 +170,0.025843322 +171,0.06768 +172,0.044181585 +173,0.053499877 +174,0.04236102 +175,0.00323987 +176,0.22797313 +177,0.0040969253 +178,0.023271143 +179,0.0418787 +180,0.14440799 +181,0.19490492 +182,0.042002797 +183,0.024981678 +184,0.031448603 +185,0.07553953 +186,0.034703076 +187,0.051869452 +188,0.0451155 +189,0.04101491 +190,0.042474806 +191,0.110520124 +192,0.034085035 +193,0.07199645 +194,0.027331412 +195,0.043349862 +196,0.34752506 +197,0.010689855 +198,0.014296353 +199,0.062077403 diff --git a/iris/realtabformer/1/pred/grad.csv b/iris/realtabformer/1/pred/grad.csv new file mode 100644 index 0000000000000000000000000000000000000000..b65b74f45c62baf8cc6712d6061bba035c818958 --- /dev/null +++ b/iris/realtabformer/1/pred/grad.csv @@ -0,0 +1,201 @@ +,realtabformer +0,0.027017301 +1,0.97349614 +2,0.021565078 +3,0.035129007 +4,0.021938749 +5,1.8831512 +6,0.008643399 +7,0.05684664 +8,0.024138954 +9,0.13165177 +10,0.004524732 +11,0.14421338 +12,0.10284693 +13,0.21415551 +14,0.2007693 +15,0.09326629 +16,0.025969641 +17,0.70067835 +18,0.055611126 +19,0.10576849 +20,0.044730686 +21,2.518276 +22,0.030774275 +23,0.042453066 +24,0.01203662 +25,0.26029727 +26,0.03051602 +27,0.051007852 +28,0.007884755 +29,0.42955318 +30,0.0865311 +31,0.037821587 +32,0.061547544 +33,0.7532815 +34,0.06405415 +35,0.077759214 +36,0.023425616 +37,1.6677938 +38,0.21673313 +39,0.18012007 +40,0.22137068 +41,0.05043746 +42,0.111527756 +43,0.36206436 +44,0.03962225 +45,0.16517785 +46,0.075893134 +47,0.16437578 +48,0.01709087 +49,0.50791174 +50,0.03498132 +51,0.16122648 +52,0.11042686 +53,0.6224573 +54,0.1317854 +55,0.018949954 +56,0.0025340451 +57,0.6879795 +58,0.17834955 +59,0.14717317 +60,0.23423114 +61,0.054201093 +62,0.068435684 +63,0.007821418 +64,0.0100769475 +65,0.09466331 +66,0.037124127 +67,0.080953375 +68,0.08836944 +69,0.0007062212 +70,0.044807572 +71,0.26576227 +72,0.24574403 +73,0.04975741 +74,0.028370537 +75,0.41918072 +76,0.09698015 +77,0.07323623 +78,0.0071874037 +79,0.008087414 +80,0.08205545 +81,0.014461609 +82,0.087401904 +83,0.042200927 +84,0.12070481 +85,0.04500609 +86,0.02999739 +87,0.04777146 +88,0.43870726 +89,0.09508035 +90,0.01990125 +91,0.03238283 +92,0.2524291 +93,0.0671434 +94,0.14766446 +95,0.20927867 +96,0.19045459 +97,0.09058126 +98,0.00783521 +99,0.039418917 +100,0.08047019 +101,0.0029688955 +102,0.04259304 +103,0.035500366 +104,1.6183021 +105,0.14403966 +106,0.0471805 +107,0.039722733 +108,0.5408535 +109,0.24712917 +110,0.07336007 +111,0.08758633 +112,0.026023602 +113,0.05073928 +114,0.3120496 +115,0.14412133 +116,0.48796958 +117,0.13525791 +118,0.028526194 +119,0.11568487 +120,0.063728 +121,0.011557243 +122,0.046204858 +123,0.004214849 +124,0.029525876 +125,0.20788775 +126,0.10544467 +127,0.10422743 +128,0.033730194 +129,0.12268014 +130,0.009086657 +131,0.07614824 +132,0.011217769 +133,0.061470598 +134,0.038967308 +135,0.14859322 +136,0.015863562 +137,0.06746666 +138,0.013632081 +139,0.546623 +140,0.053657707 +141,0.34618142 +142,0.07258946 +143,0.07961286 +144,0.0314668 +145,0.07271147 +146,0.0047172476 +147,0.23855771 +148,0.71107584 +149,0.030357039 +150,0.04878526 +151,0.039735045 +152,0.017337848 +153,0.44644168 +154,0.038973603 +155,0.3677016 +156,0.33569828 +157,0.17036965 +158,0.012157329 +159,0.10091715 +160,0.055572852 +161,0.43915084 +162,0.10972703 +163,0.07179278 +164,0.025471468 +165,0.07314544 +166,0.056836568 +167,0.017207732 +168,0.41273275 +169,0.27807996 +170,0.055567406 +171,0.101325564 +172,0.052157443 +173,0.24031433 +174,0.12262731 +175,0.008300141 +176,0.2978879 +177,0.017721396 +178,0.06628343 +179,0.09459312 +180,0.17230545 +181,0.5751676 +182,0.049410626 +183,0.047620915 +184,0.03179793 +185,0.12276673 +186,0.06224807 +187,0.13219021 +188,0.11170952 +189,0.09294572 +190,0.09477142 +191,0.14986375 +192,0.014930168 +193,0.27623275 +194,0.071055196 +195,0.13918139 +196,1.0486026 +197,0.035879564 +198,0.044405263 +199,0.16915472 diff --git a/iris/realtabformer/1/pred/pred.csv b/iris/realtabformer/1/pred/pred.csv new file mode 100644 index 0000000000000000000000000000000000000000..c225632e16c23e3848a980e03326e1fc7d71a785 --- /dev/null +++ b/iris/realtabformer/1/pred/pred.csv @@ -0,0 +1,201 @@ +,realtabformer +0,0.23285258 +1,0.4783696 +2,0.9142628 +3,0.90567654 +4,0.23486471 +5,0.68042576 +6,0.962451 +7,0.9477688 +8,0.21063662 +9,0.6157472 +10,0.89515996 +11,0.9173343 +12,0.2673251 +13,0.59441787 +14,0.7929843 +15,0.82072425 +16,0.23039144 +17,0.54655164 +18,0.87986654 +19,0.8684305 +20,0.24919263 +21,0.8310962 +22,0.8879535 +23,0.88111246 +24,0.2188983 +25,0.9702572 +26,0.95312226 +27,0.946209 +28,0.19228503 +29,0.8972324 +30,0.9201019 +31,0.9007367 +32,0.26173043 +33,0.78535116 +34,0.84618175 +35,0.86268723 +36,0.22462958 +37,0.82077837 +38,0.9041482 +39,0.84686303 +40,0.27379438 +41,0.8991577 +42,0.88752675 +43,0.91864914 +44,0.23927283 +45,0.93333197 +46,0.94542825 +47,0.9078731 +48,0.20414704 +49,0.874932 +50,0.9036393 +51,0.88779384 +52,0.29147297 +53,0.83418965 +54,0.8298709 +55,0.8433229 +56,0.21583119 +57,0.826428 +58,0.8668497 +59,0.87538815 +60,0.47124204 +61,0.8932376 +62,0.91187406 +63,0.92937386 +64,0.5599092 +65,0.93303335 +66,0.9619882 +67,0.9334714 +68,0.26020744 +69,0.92033434 +70,0.886341 +71,0.89039814 +72,0.3543961 +73,0.872965 +74,0.8487349 +75,0.8128832 +76,0.49663812 +77,0.8932454 +78,0.86272836 +79,0.9059014 +80,0.5061942 +81,0.9072496 +82,0.89171237 +83,0.9207487 +84,0.57279474 +85,0.94989246 +86,0.95151925 +87,0.9116645 +88,0.4329221 +89,0.922365 +90,0.9109932 +91,0.8921539 +92,0.32974014 +93,0.9009234 +94,0.81380475 +95,0.8421844 +96,0.49301037 +97,0.8874697 +98,0.8620795 +99,0.9220438 +100,0.5130903 +101,0.91332483 +102,0.9116837 +103,0.92283076 +104,0.3956229 +105,0.96492255 +106,0.9684124 +107,0.9481889 +108,0.46184272 +109,0.91070867 +110,0.8944082 +111,0.91444266 +112,0.54944986 +113,0.9067699 +114,0.78562045 +115,0.8447451 +116,0.49880004 +117,0.89557314 +118,0.8515836 +119,0.8987322 +120,0.5479768 +121,0.91510266 +122,0.9016862 +123,0.9368987 +124,0.5422067 +125,0.9610705 +126,0.96681166 +127,0.939049 +128,0.51685935 +129,0.91604304 +130,0.9345426 +131,0.9198882 +132,0.5832618 +133,0.8388362 +134,0.8519425 +135,0.8330034 +136,0.48096865 +137,0.9277059 +138,0.8651818 +139,0.89866173 +140,0.5259447 +141,0.87623525 +142,0.9033856 +143,0.92320955 +144,0.53126806 +145,0.9583365 +146,0.9711146 +147,0.94373226 +148,0.49369532 +149,0.8780872 +150,0.9017415 +151,0.905552 +152,0.60344183 +153,0.81040055 +154,0.8505158 +155,0.8234262 +156,0.5032604 +157,0.8809979 +158,0.87033045 +159,0.9070163 +160,0.52033836 +161,0.8985066 +162,0.88837016 +163,0.91721624 +164,0.54017574 +165,0.9535935 +166,0.96284324 +167,0.92013437 +168,0.49278355 +169,0.8656596 +170,0.9028366 +171,0.89080596 +172,0.6156102 +173,0.8322144 +174,0.84844506 +175,0.9032227 +176,0.51368743 +177,0.9048058 +178,0.87265646 +179,0.9081968 +180,0.5339732 +181,0.9069377 +182,0.8999164 +183,0.91693753 +184,0.53844386 +185,0.9705399 +186,0.9652969 +187,0.94686985 +188,0.5065036 +189,0.9389328 +190,0.88620514 +191,0.8894799 +192,0.60551363 +193,0.85392946 +194,0.8091496 +195,0.8436134 +196,0.45141673 +197,0.9266321 +198,0.88163126 +199,0.8991947 diff --git a/iris/realtabformer/1/pred/y.csv b/iris/realtabformer/1/pred/y.csv new file mode 100644 index 0000000000000000000000000000000000000000..3f72bd3490b0bdb70028cf46af93594d7b81f18d --- /dev/null +++ b/iris/realtabformer/1/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/1/pred/y_real.csv b/iris/realtabformer/1/pred/y_real.csv new file mode 100644 index 0000000000000000000000000000000000000000..69282ce96ed463b85e970d319dd0a33dac8483df --- /dev/null +++ b/iris/realtabformer/1/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