diff --git a/iris/realtabformer/3/eval.csv b/iris/realtabformer/3/eval.csv new file mode 100644 index 0000000000000000000000000000000000000000..a6d00446606defa6bdb47cfaa880d22eee99079c --- /dev/null +++ b/iris/realtabformer/3/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.000915401354432106,0.018675033799372614,0.01112659715116024,0.11714410781860352,0.267852783203125,3.0745232105255127,0.5762269496917725,7.846614607842639e-05,0.22280240058898926,0.08088703453540802,0.18891483545303345,0.10548268258571625,0.19796165823936462,0.03780163824558258,0.3399465084075928 diff --git a/iris/realtabformer/3/history.csv b/iris/realtabformer/3/history.csv new file mode 100644 index 0000000000000000000000000000000000000000..a46a9e1f6340c87adeed761f7bc5ce81b4b014a2 --- /dev/null +++ b/iris/realtabformer/3/history.csv @@ -0,0 +1,24 @@ +,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.06701535535339984,1.3992416522993993,0.007645102585694804,3.8621874086605095,0.0,0.0,0.0,0.0,0.0683601126907775,805,26,26.25713276863098,1.0098897218704224,0.0326175562343242,0.2279995737167505,0.020624197274446487,0.4312509568574439,0.000656504371581832,0.0,0.0,0.0,0.0,0.0,0.020624197274446487,200,7,5.635092258453369,0.8050131797790527,0.028175461292266845,0.22945596490587508 +1,0.0565388375881666,3.1829480101883885,0.006030618667209185,2.4793709531333876,0.0,0.0,0.0,0.0,0.05750146156512432,805,26,25.849519968032837,0.9942123064628015,0.03211120492923334,0.24902775253240877,0.05548587396740914,11.044640983854022,0.0012680660048499702,0.0,0.0,0.0,0.0,0.0,0.05548587396740914,200,7,5.875952243804932,0.8394217491149902,0.029379761219024657,0.11270552660737719 +2,0.051754596163027036,4.507725323765324,0.0064099248880462615,1.939684205692007,0.0,0.0,0.0,0.0,0.052674797269868553,805,26,26.123075485229492,1.0047336725088267,0.03245102544749005,0.2299080817745282,0.11837481021881104,64.51317364828927,0.020510545074939726,0.0,0.0,0.0,0.0,0.0,0.11837481021881104,200,7,6.041569948196411,0.8630814211709159,0.030207849740982055,0.0447674851332392 +3,0.07960010437954286,19.981215711047227,0.009885529607464994,0.8584646887660767,0.0,0.0,0.0,0.0,0.08306644658401886,805,26,26.529516220092773,1.0203660084651067,0.03295592077030158,0.18944063284792578,0.04851729765534401,26.006406579698837,0.0004657289100578055,0.0,0.0,0.0,0.0,0.0,0.04851729765534401,200,7,6.2215821743011475,0.8887974534715924,0.031107910871505738,0.07742421754768916 +4,0.022342581551822817,2.3711896103094867,0.00047315613282425037,0.7086849711696553,0.0,0.0,0.0,0.0,0.02273657219195218,805,26,25.82470679283142,0.9932579535704392,0.03208038110910735,0.21197539682571703,0.01198684986680746,0.5270316706488042,7.60403824824607e-05,0.0,0.0,0.0,0.0,0.0,0.01198684986680746,200,7,5.614264965057373,0.8020378521510533,0.028071324825286865,0.2054890458072935 +5,0.014744574423902524,0.8497495335689634,0.000290491337228497,0.4803045463117753,0.0,0.0,0.0,0.0,0.01499018386145186,805,26,26.513713121414185,1.0197581969774687,0.032936289591818865,0.21756946811309227,0.02423147849738598,0.056038946112883944,0.0009996757561384585,0.0,0.0,0.0,0.0,0.0,0.02423147849738598,200,7,5.853564262390137,0.8362234660557338,0.029267821311950683,0.27141186382089344 +6,0.01651955831749654,1.1790676854059432,0.0003712053738126997,0.3512295508977049,0.0,0.0,0.0,0.0,0.016802358277928756,805,26,25.686126947402954,0.9879279595154983,0.0319082322327987,0.21469824359967157,0.010861842511221766,1.442582247512681,0.00011373920811820426,0.0,0.0,0.0,0.0,0.0,0.010861842511221766,200,7,5.628083944320679,0.8040119920458112,0.028140419721603395,0.18473856363977706 +7,0.010163603971787491,0.6329258886422534,0.0001713631607491598,0.21453803890610335,0.0,0.0,0.0,0.0,0.01032990808511928,805,26,25.444018363952637,0.9786160909212552,0.03160747622851259,0.21147283639472264,0.016940189488232137,0.05573677301539907,0.00037147307855775577,0.0,0.0,0.0,0.0,0.0,0.016940189488232137,200,7,5.588470220565796,0.7983528886522565,0.02794235110282898,0.23983252687113626 +8,0.010990686013554194,0.5550077651244535,0.00017324265797430164,0.29960318283634896,0.0,0.0,0.0,0.0,0.011183101479079782,805,26,25.57755970954895,0.9837522965211135,0.03177336609881857,0.22012879699468613,0.013394612204283476,0.03656235846951209,0.0003237755317968549,0.0,0.0,0.0,0.0,0.0,0.013394612204283476,200,7,5.613554239273071,0.801936319896153,0.028067771196365356,0.2571955429656165 +9,0.009105310692619648,0.4341134643032092,0.000134078849805519,0.22471435854894034,0.0,0.0,0.0,0.0,0.00926741972820174,805,26,25.525206804275513,0.9817387232413659,0.031708331433882624,0.22679393967756858,0.011935904826968909,0.033081828450251906,0.00036618053041735264,0.0,0.0,0.0,0.0,0.0,0.011935904826968909,200,7,5.5619072914123535,0.7945581844874791,0.027809536457061766,0.23601134547165462 +10,0.008830969137434634,0.20356472788187518,0.00013467646441646557,0.2311986147616961,0.0,0.0,0.0,0.0,0.008974288086991132,805,26,26.66583251953125,1.0256089430588942,0.03312525778823758,0.22447198572067115,0.009058690294623375,1.0793710928410292,0.00010731957172538387,0.0,0.0,0.0,0.0,0.0,0.009058690294623375,200,7,5.583786487579346,0.7976837839399066,0.02791893243789673,0.202907138637134 +11,0.00958837289420992,0.4137342206825089,0.0001568305421602892,0.18104172889490305,0.0,0.0,0.0,0.0,0.009754505202243602,805,26,25.536228895187378,0.9821626498148992,0.03172202347228246,0.22990705760625693,0.012193636372685432,0.01905201596257809,0.0002667809302147361,0.0,0.0,0.0,0.0,0.0,0.012193636372685432,200,7,5.575732469558716,0.7965332099369594,0.02787866234779358,0.25277247386319296 +12,0.011160158292500314,0.918639663428901,0.00020117725278238219,0.2493331825418502,0.0,0.0,0.0,0.0,0.011349647664551779,805,26,25.366316080093384,0.9756275415420532,0.03151095165228992,0.21686716606983772,0.00847031157463789,0.11198418910082962,0.00020940086645026667,0.0,0.0,0.0,0.0,0.0,0.00847031157463789,200,7,5.6610565185546875,0.8087223597935268,0.02830528259277344,0.22611165259565627 +13,0.008521620477462962,0.1929064377461775,0.00011822050097033306,0.22713723212295436,0.0,0.0,0.0,0.0,0.008663140829097225,805,26,26.399289846420288,1.0153573017853956,0.03279414887754073,0.22841374576091766,0.0092774517275393,0.8428551810128349,0.00010433940242762674,0.0,0.0,0.0,0.0,0.0,0.0092774517275393,200,7,6.205705165863037,0.8865293094090053,0.031028525829315187,0.19295603249754226 +14,0.008861068232991496,0.4760302671168644,9.316427658293222e-05,0.22115371221711178,0.0,0.0,0.0,0.0,0.009015275142300203,805,26,26.635640621185303,1.0244477161994348,0.033087752324453795,0.22320112127524155,0.008431506399065257,0.4554546269189034,0.00015350583209396972,0.0,0.0,0.0,0.0,0.0,0.008431506399065257,200,7,5.4842164516448975,0.7834594930921283,0.027421082258224486,0.2168558814695903 +15,0.008321717872012475,0.29628351807542247,0.00010211278995540953,0.21546076151154797,0.0,0.0,0.0,0.0,0.008457961251600558,805,26,26.30124258995056,1.011586253459637,0.03267235104341685,0.22520023183180735,0.011079466231167316,0.26038447032416506,0.000223711000289768,0.0,0.0,0.0,0.0,0.0,0.011079466231167316,200,7,5.683879852294922,0.8119828360421317,0.02841939926147461,0.22340327501296997 +16,0.007341269472532946,0.1505892426290442,5.949021034714674e-05,0.1791700872205059,0.0,0.0,0.0,0.0,0.007465106239600211,805,26,26.990018606185913,1.0380776386994581,0.03352797342383343,0.2263758543592233,0.008301879037171602,0.3695169225767521,0.00011812720507805353,0.0,0.0,0.0,0.0,0.0,0.008301879037171602,200,7,6.002617597579956,0.8575167996542794,0.03001308798789978,0.2084350734949112 +17,0.0068320089818111485,0.2313985668165165,5.606827994512816e-05,0.17805318310856819,0.0,0.0,0.0,0.0,0.006945446017053649,805,26,27.209917545318604,1.0465352902045617,0.0338011398078492,0.22643232746766165,0.007889349274337291,0.5400860810519329,0.00012063087198384893,0.0,0.0,0.0,0.0,0.0,0.007889349274337291,200,7,6.038616180419922,0.8626594543457031,0.03019308090209961,0.20415333552019937 +18,0.007738474875063814,0.4079408379616899,5.126851195974206e-05,0.18306885312617935,0.0,0.0,0.0,0.0,0.007866497262907416,805,26,26.918956995010376,1.0353444998080914,0.03343969813044767,0.22590288175986364,0.010172427482903004,0.1868269839324057,0.00017763827860107996,0.0,0.0,0.0,0.0,0.0,0.010172427482903004,200,7,6.05833888053894,0.8654769829341343,0.0302916944026947,0.22228043845721654 +19,0.007176598506511091,0.2051707718763702,9.346555438332306e-05,0.18786897169692177,0.0,0.0,0.0,0.0,0.007305843704119788,805,26,27.44396185874939,1.0555369945672841,0.03409187808540297,0.23039588561424842,0.006905809380114079,0.37397505309698836,8.111787899906631e-05,0.0,0.0,0.0,0.0,0.0,0.006905809380114079,200,7,5.969135761260986,0.852733680180141,0.029845678806304933,0.2079764029809407 +20,0.0062791379423152585,0.27477681724793424,4.834185868202671e-05,0.18078255479380212,0.0,0.0,0.0,0.0,0.006385929665024976,805,26,25.90357518196106,0.9962913531523484,0.03217835426330566,0.22632791101932526,0.008880100920796394,0.39235147793910335,0.00013569710088631837,0.0,0.0,0.0,0.0,0.0,0.008880100920796394,200,7,5.73296046257019,0.8189943517957415,0.028664802312850953,0.20859386026859283 +21,0.006839027690776387,0.21329141500619314,6.140132150167758e-05,0.18744490737130182,0.0,0.0,0.0,0.0,0.006958439968156148,805,26,26.82370376586914,1.03168091407189,0.03332137113772564,0.21693077110327208,0.009502473324537276,0.1999502795016659,0.00021481290252268082,0.0,0.0,0.0,0.0,0.0,0.009502473324537276,200,7,6.130902528762817,0.8758432183946881,0.030654512643814087,0.22778465066637313 +22,0.006555508891039568,0.22888569490578448,5.9598478633205506e-05,0.20531400660550372,0.0,0.0,0.0,0.0,0.006669070942454641,805,26,26.141737461090088,1.0054514408111572,0.03247420802619887,0.22908768688256925,0.010050405450165271,1.6328566670417786,0.00011823538029148039,0.0,0.0,0.0,0.0,0.0,0.010050405450165271,200,7,5.529226064682007,0.7898894378117153,0.027646130323410033,0.17750223726034164 diff --git a/iris/realtabformer/3/logs/avg_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.17 b/iris/realtabformer/3/logs/avg_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.17 new file mode 100644 index 0000000000000000000000000000000000000000..9c6444bdc002885ccde7e1ae3558026f541884f9 --- /dev/null +++ b/iris/realtabformer/3/logs/avg_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.17 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cddce2f4a77e8034b508eb6afc77de04510b1823e6e3b8ad7f2fadcbf014da7f +size 1144 diff --git a/iris/realtabformer/3/logs/avg_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.18 b/iris/realtabformer/3/logs/avg_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.18 new file mode 100644 index 0000000000000000000000000000000000000000..a02a32214126c20510b073192025bcac11eedb5f --- /dev/null +++ b/iris/realtabformer/3/logs/avg_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.18 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59531a0068e365fe3f63c9ada48cb4604001bada309025d7e0e432fcdae95d97 +size 1144 diff --git a/iris/realtabformer/3/logs/avg_non_role_model_embed_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.15 b/iris/realtabformer/3/logs/avg_non_role_model_embed_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.15 new file mode 100644 index 0000000000000000000000000000000000000000..e759aea5d1dbaf21101c7ff95dd237de8c762045 --- /dev/null +++ b/iris/realtabformer/3/logs/avg_non_role_model_embed_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.15 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:768c92b3f061903d21febb2a1fcbbcc09bd7fddc2bc18189569d8194d915156c +size 1627 diff --git a/iris/realtabformer/3/logs/avg_non_role_model_embed_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.16 b/iris/realtabformer/3/logs/avg_non_role_model_embed_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.16 new file mode 100644 index 0000000000000000000000000000000000000000..2fdb37fa844a65f8782996b92dc75e4d3a4f4459 --- /dev/null +++ b/iris/realtabformer/3/logs/avg_non_role_model_embed_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.16 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67f2c3f0d11ab0915f1e9d3edfd77459518a9337101afcddac4778304bc62b44 +size 1627 diff --git a/iris/realtabformer/3/logs/avg_non_role_model_g_cos_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.13 b/iris/realtabformer/3/logs/avg_non_role_model_g_cos_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.13 new file mode 100644 index 0000000000000000000000000000000000000000..95d1212909bd5ed5870a17a80a69c189a05b5b69 --- /dev/null +++ b/iris/realtabformer/3/logs/avg_non_role_model_g_cos_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.13 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e43a0d9c10f9ec2b786253239bff492b6b0120831e332dc7754d5d7a7ede697b +size 1627 diff --git a/iris/realtabformer/3/logs/avg_non_role_model_g_cos_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.14 b/iris/realtabformer/3/logs/avg_non_role_model_g_cos_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.14 new file mode 100644 index 0000000000000000000000000000000000000000..80233e9f88a9a00873fda2a0f02037f5cff6d28d --- /dev/null +++ b/iris/realtabformer/3/logs/avg_non_role_model_g_cos_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.14 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d69b900385d8d438d38512701669ec3f5a77b7bc16bcb657a13ee232d4dbaa37 +size 1627 diff --git a/iris/realtabformer/3/logs/avg_non_role_model_g_mag_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.11 b/iris/realtabformer/3/logs/avg_non_role_model_g_mag_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.11 new file mode 100644 index 0000000000000000000000000000000000000000..aa656f7946f392c50ebbdbfadb545fad57cf8fb3 --- /dev/null +++ b/iris/realtabformer/3/logs/avg_non_role_model_g_mag_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.11 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94a80baa8191c257a5637ae19f7246a3adea2855d17d02d31345a52a48f9f093 +size 1627 diff --git a/iris/realtabformer/3/logs/avg_non_role_model_g_mag_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.12 b/iris/realtabformer/3/logs/avg_non_role_model_g_mag_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.12 new file mode 100644 index 0000000000000000000000000000000000000000..03512951c2bb1ab2848dfe93086bdb8b817b0d15 --- /dev/null +++ b/iris/realtabformer/3/logs/avg_non_role_model_g_mag_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.12 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46b6cc62c024a069f81e6d7b56ff31373c9de695f479686325cdab41082e4fa9 +size 1627 diff --git a/iris/realtabformer/3/logs/avg_pred_std_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.29 b/iris/realtabformer/3/logs/avg_pred_std_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.29 new file mode 100644 index 0000000000000000000000000000000000000000..8931a45a490f710178ed6d90569c7be44bd89912 --- /dev/null +++ b/iris/realtabformer/3/logs/avg_pred_std_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.29 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aba36666797c098bb411e72bec68f9730879bd151d212ed6c502ff9e6d4b0535 +size 1236 diff --git a/iris/realtabformer/3/logs/avg_pred_std_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.30 b/iris/realtabformer/3/logs/avg_pred_std_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.30 new file mode 100644 index 0000000000000000000000000000000000000000..92f4cd7ab8dc55da9428bf18459397b51bc9d923 --- /dev/null +++ b/iris/realtabformer/3/logs/avg_pred_std_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.30 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d1faa825ada2a32f61f380e7ac54148af5302a55d4a565f351e072e779dcde2 +size 1236 diff --git a/iris/realtabformer/3/logs/avg_role_model_g_cos_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.9 b/iris/realtabformer/3/logs/avg_role_model_g_cos_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.9 new file mode 100644 index 0000000000000000000000000000000000000000..1a962e73a0c4418d1f2ae4888eff209acf46c23c --- /dev/null +++ b/iris/realtabformer/3/logs/avg_role_model_g_cos_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.9 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70fbe9eb859913de744811ba69f6e22d8c76270af7f32bf23fd93be71b279fa4 +size 1535 diff --git a/iris/realtabformer/3/logs/avg_role_model_g_cos_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.10 b/iris/realtabformer/3/logs/avg_role_model_g_cos_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.10 new file mode 100644 index 0000000000000000000000000000000000000000..1519c2047b9efc9d6497b82f1ae7c98621735870 --- /dev/null +++ b/iris/realtabformer/3/logs/avg_role_model_g_cos_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.10 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1eb41693942c20e26570713f622cf1dc71f4427d1e3ad9b1e67046f26aef4c58 +size 1535 diff --git a/iris/realtabformer/3/logs/avg_role_model_g_mag_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.7 b/iris/realtabformer/3/logs/avg_role_model_g_mag_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.7 new file mode 100644 index 0000000000000000000000000000000000000000..8e17ad5aac0ac10a541cd542b8bda8b116ce49c2 --- /dev/null +++ b/iris/realtabformer/3/logs/avg_role_model_g_mag_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.7 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e60fc63ab78f918d85f20f1003ad3c94b58ecbe8dc216dcfec25b655fd21384d +size 1535 diff --git a/iris/realtabformer/3/logs/avg_role_model_g_mag_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.8 b/iris/realtabformer/3/logs/avg_role_model_g_mag_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.8 new file mode 100644 index 0000000000000000000000000000000000000000..14c3c510a7423e4a88f1a386d972881b30d0840a --- /dev/null +++ b/iris/realtabformer/3/logs/avg_role_model_g_mag_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.8 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d02dbc2c6b5f9d0e7f0a001d5a9aa2975014bbb2197ddf5f3ab9a0bdd41b392 +size 1535 diff --git a/iris/realtabformer/3/logs/avg_role_model_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.1 b/iris/realtabformer/3/logs/avg_role_model_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.1 new file mode 100644 index 0000000000000000000000000000000000000000..0fb4c4364470892d158653f29068568946804ef9 --- /dev/null +++ b/iris/realtabformer/3/logs/avg_role_model_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.1 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8555583445b2b62440b418e113078b36a09fb14109fbabf7cdbc9c52abbd9267 +size 1397 diff --git a/iris/realtabformer/3/logs/avg_role_model_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.2 b/iris/realtabformer/3/logs/avg_role_model_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.2 new file mode 100644 index 0000000000000000000000000000000000000000..ca5c5f5f0296aa08437e453b7ce03e853f0a9c30 --- /dev/null +++ b/iris/realtabformer/3/logs/avg_role_model_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:781ef74308728a955e25f1d8f938a1b14a4162b46b657e1c4db5cdbfc8b03859 +size 1397 diff --git a/iris/realtabformer/3/logs/avg_role_model_mean_pred_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.5 b/iris/realtabformer/3/logs/avg_role_model_mean_pred_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.5 new file mode 100644 index 0000000000000000000000000000000000000000..a73a1e1da5ce4faaa064e7abceb208a1d7ac4bf9 --- /dev/null +++ b/iris/realtabformer/3/logs/avg_role_model_mean_pred_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2a40b37edaf28920463b3714e08a7638c97bef344e7cc0b55b8aff173309ddc +size 1627 diff --git a/iris/realtabformer/3/logs/avg_role_model_mean_pred_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.6 b/iris/realtabformer/3/logs/avg_role_model_mean_pred_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.6 new file mode 100644 index 0000000000000000000000000000000000000000..0bff8f4de7d4e59c6b1157041d73f59ed0eca66e --- /dev/null +++ b/iris/realtabformer/3/logs/avg_role_model_mean_pred_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.6 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74f3208f6cfdda7faae2f2b2ea7d53fae137c59231a86d91f2b170f6d383d65d +size 1627 diff --git a/iris/realtabformer/3/logs/avg_role_model_std_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.3 b/iris/realtabformer/3/logs/avg_role_model_std_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.3 new file mode 100644 index 0000000000000000000000000000000000000000..808fadf00be7ea1416926790b7c2b7856ac846dc --- /dev/null +++ b/iris/realtabformer/3/logs/avg_role_model_std_loss_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.3 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db3999dc48da0a4399baa843dfa591c6680d49c729d8f8c122c7232e47098a6d +size 1489 diff --git a/iris/realtabformer/3/logs/avg_role_model_std_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.4 b/iris/realtabformer/3/logs/avg_role_model_std_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.4 new file mode 100644 index 0000000000000000000000000000000000000000..99ef6ca471db84aaa646edc88c4d9641730f3a30 --- /dev/null +++ b/iris/realtabformer/3/logs/avg_role_model_std_loss_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61d4b2d5ec6c46e8caaa939e586cee58e40ce849dde884b02e17edc9c7e51cbd +size 1489 diff --git a/iris/realtabformer/3/logs/duration_batch_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.25 b/iris/realtabformer/3/logs/duration_batch_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.25 new file mode 100644 index 0000000000000000000000000000000000000000..1b5d5fef8c9bb561cebfb32d3e4ff4fcfbfb7999 --- /dev/null +++ b/iris/realtabformer/3/logs/duration_batch_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.25 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ff2d90b19a74891a0f8e103d1a103e31125e6c9fafaa97fa39f06d262de599b +size 1282 diff --git a/iris/realtabformer/3/logs/duration_batch_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.26 b/iris/realtabformer/3/logs/duration_batch_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.26 new file mode 100644 index 0000000000000000000000000000000000000000..b4dc0b0909b5a61c4590a2e0805f4a64c6f573d7 --- /dev/null +++ b/iris/realtabformer/3/logs/duration_batch_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.26 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d038085102bc8f2e2269c409cbd02dc9ad4492c409f1058db3e7f35fa93d27d3 +size 1282 diff --git a/iris/realtabformer/3/logs/duration_size_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.27 b/iris/realtabformer/3/logs/duration_size_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.27 new file mode 100644 index 0000000000000000000000000000000000000000..b3b5b5b9440bcede732983d53ac4ec6e249c64eb --- /dev/null +++ b/iris/realtabformer/3/logs/duration_size_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.27 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da1e080170d08ec5bbcda5b933facc65954a8fb211e0b517f341697d46b46d0b +size 1259 diff --git a/iris/realtabformer/3/logs/duration_size_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.28 b/iris/realtabformer/3/logs/duration_size_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.28 new file mode 100644 index 0000000000000000000000000000000000000000..b7c078d7dbf281fce35b959a53a38503f0389917 --- /dev/null +++ b/iris/realtabformer/3/logs/duration_size_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.28 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d74aba7faee864301485656f44d29330de81ddc6f7236ffd674fb47f6ed0b0e1 +size 1259 diff --git a/iris/realtabformer/3/logs/duration_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.23 b/iris/realtabformer/3/logs/duration_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.23 new file mode 100644 index 0000000000000000000000000000000000000000..aa69f985d75334641083a9afd32c52d0371ed680 --- /dev/null +++ b/iris/realtabformer/3/logs/duration_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.23 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2fd3c6a4d1c2786b1b10f9d302d06c3b4bf086f0b3f5911dd240fe0ca8792061 +size 1144 diff --git a/iris/realtabformer/3/logs/duration_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.24 b/iris/realtabformer/3/logs/duration_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.24 new file mode 100644 index 0000000000000000000000000000000000000000..39fb491ebf12fb243d3f63a4230e4ef903aee047 --- /dev/null +++ b/iris/realtabformer/3/logs/duration_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.24 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12ee80fb2f9177544a8a001532b4e30dba995aec9738762916b1d0c806cb93aa +size 1144 diff --git a/iris/realtabformer/3/logs/events.out.tfevents.1721739589.0e0da8a72f77.1718.0 b/iris/realtabformer/3/logs/events.out.tfevents.1721739589.0e0da8a72f77.1718.0 new file mode 100644 index 0000000000000000000000000000000000000000..5077f83b9a5c3fe15028e443ba82c5450317aaac --- /dev/null +++ b/iris/realtabformer/3/logs/events.out.tfevents.1721739589.0e0da8a72f77.1718.0 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28d2323f084f64580fce421535f9fd0c0ea27160808fd28d04811d7e56f6b230 +size 88 diff --git a/iris/realtabformer/3/logs/n_batch_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.21 b/iris/realtabformer/3/logs/n_batch_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.21 new file mode 100644 index 0000000000000000000000000000000000000000..ba4c2fe7952024d48a5d2e32d1abe9d77d41f043 --- /dev/null +++ b/iris/realtabformer/3/logs/n_batch_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.21 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0da1f2e22ece410db2372788071885a31153c840939ceca43d53cb03193e4b4 +size 1121 diff --git a/iris/realtabformer/3/logs/n_batch_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.22 b/iris/realtabformer/3/logs/n_batch_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.22 new file mode 100644 index 0000000000000000000000000000000000000000..0a4da41dc3c5b8696ac777065f7a4468fd3b84d0 --- /dev/null +++ b/iris/realtabformer/3/logs/n_batch_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.22 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06baef4c2bfe94ccc31293eaf3ca2921954d7673d74efb76b2b1226e79d2a083 +size 1121 diff --git a/iris/realtabformer/3/logs/n_size_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.19 b/iris/realtabformer/3/logs/n_size_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.19 new file mode 100644 index 0000000000000000000000000000000000000000..3d5211d94f54688d3f8b77a6cae6c83ed940fad0 --- /dev/null +++ b/iris/realtabformer/3/logs/n_size_train/events.out.tfevents.1721739622.0e0da8a72f77.1718.19 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c4f535fde45a9f398f82fdba4eeca7bb9abeb4868ae752125ee851d192c0e9b +size 1098 diff --git a/iris/realtabformer/3/logs/n_size_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.20 b/iris/realtabformer/3/logs/n_size_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.20 new file mode 100644 index 0000000000000000000000000000000000000000..9182a9af17427ceabe5ad498d7ef366505383107 --- /dev/null +++ b/iris/realtabformer/3/logs/n_size_val/events.out.tfevents.1721739622.0e0da8a72f77.1718.20 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1794ad8225978b46cd9a43197ec77e052d6410e41197b3be66f28183a763a894 +size 1098 diff --git a/iris/realtabformer/3/logs/train_avg_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.39 b/iris/realtabformer/3/logs/train_avg_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.39 new file mode 100644 index 0000000000000000000000000000000000000000..ed1ef6037fe8900d304d019d7966c322418287d2 --- /dev/null +++ b/iris/realtabformer/3/logs/train_avg_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.39 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3dca8c9742518315a8e51a5b4d9c060936fea8e4e803a5d34381714fa35edb5d +size 1075 diff --git a/iris/realtabformer/3/logs/train_avg_non_role_model_embed_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.38 b/iris/realtabformer/3/logs/train_avg_non_role_model_embed_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.38 new file mode 100644 index 0000000000000000000000000000000000000000..19e210c4a92b7446e650a4c417bda8a3c5456996 --- /dev/null +++ b/iris/realtabformer/3/logs/train_avg_non_role_model_embed_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.38 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:516eecf06be01c90aa74b87457754b48972341bd9a343487562279577b06811b +size 1075 diff --git a/iris/realtabformer/3/logs/train_avg_non_role_model_g_cos_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.37 b/iris/realtabformer/3/logs/train_avg_non_role_model_g_cos_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.37 new file mode 100644 index 0000000000000000000000000000000000000000..1bbe98c125006057d6b0cc8d3b7c8dfd4eab335f --- /dev/null +++ b/iris/realtabformer/3/logs/train_avg_non_role_model_g_cos_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.37 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:399d44da56fcef74cb08800b0e43b66bd419bbde738efc2333dfe5b3fb0b01e8 +size 1075 diff --git a/iris/realtabformer/3/logs/train_avg_non_role_model_g_mag_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.36 b/iris/realtabformer/3/logs/train_avg_non_role_model_g_mag_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.36 new file mode 100644 index 0000000000000000000000000000000000000000..e9b5d2d5eb73ea3edca93ffb59aed1a978aedf8e --- /dev/null +++ b/iris/realtabformer/3/logs/train_avg_non_role_model_g_mag_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.36 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5770677399c5c5e60672a9f387b955363be6a4a72fba7a17660366d1598c03b8 +size 1075 diff --git a/iris/realtabformer/3/logs/train_avg_pred_std/events.out.tfevents.1721739622.0e0da8a72f77.1718.45 b/iris/realtabformer/3/logs/train_avg_pred_std/events.out.tfevents.1721739622.0e0da8a72f77.1718.45 new file mode 100644 index 0000000000000000000000000000000000000000..63e6e869eef6f37f657ee239d2578440b7e91fe8 --- /dev/null +++ b/iris/realtabformer/3/logs/train_avg_pred_std/events.out.tfevents.1721739622.0e0da8a72f77.1718.45 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed3f317441438d0283a469f224a5760c8cb8ee8c02bf9357b618f53dcc1786e7 +size 1075 diff --git a/iris/realtabformer/3/logs/train_avg_role_model_g_cos_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.35 b/iris/realtabformer/3/logs/train_avg_role_model_g_cos_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.35 new file mode 100644 index 0000000000000000000000000000000000000000..46f7a42d67ca92c91e2dcbf8ff1b12fb0156d966 --- /dev/null +++ b/iris/realtabformer/3/logs/train_avg_role_model_g_cos_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.35 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b8f7158e456243f3c198119c049d96ec17ccde9a543acdf39c486d4f68cf7b6 +size 1075 diff --git a/iris/realtabformer/3/logs/train_avg_role_model_g_mag_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.34 b/iris/realtabformer/3/logs/train_avg_role_model_g_mag_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.34 new file mode 100644 index 0000000000000000000000000000000000000000..5359c5413e2132b8cab77df791d9d6e01b36b9c3 --- /dev/null +++ b/iris/realtabformer/3/logs/train_avg_role_model_g_mag_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.34 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68289a4bbe2289663239e459d866c2cd163a6e53f1fd321a51636e574e8a5798 +size 1075 diff --git a/iris/realtabformer/3/logs/train_avg_role_model_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.31 b/iris/realtabformer/3/logs/train_avg_role_model_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.31 new file mode 100644 index 0000000000000000000000000000000000000000..033283ca2ec0cdd0907dd351e68e7ac6ccaded02 --- /dev/null +++ b/iris/realtabformer/3/logs/train_avg_role_model_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.31 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e3a1801aed47e8564acea29590cb31ac5c148fdcb02d310767436c28537cc7c +size 1075 diff --git a/iris/realtabformer/3/logs/train_avg_role_model_mean_pred_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.33 b/iris/realtabformer/3/logs/train_avg_role_model_mean_pred_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.33 new file mode 100644 index 0000000000000000000000000000000000000000..b16cf6b4443dc53c57d4004fdc1cbddd1f3566b0 --- /dev/null +++ b/iris/realtabformer/3/logs/train_avg_role_model_mean_pred_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.33 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc2c9699567dececcac51dd22672867ae408ec1f847967fb4367042d2e2fa424 +size 1075 diff --git a/iris/realtabformer/3/logs/train_avg_role_model_std_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.32 b/iris/realtabformer/3/logs/train_avg_role_model_std_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.32 new file mode 100644 index 0000000000000000000000000000000000000000..78c6a83930781497efed1419d5500d7c7a202e69 --- /dev/null +++ b/iris/realtabformer/3/logs/train_avg_role_model_std_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.32 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2679eb3e75c7058ab848dc9a4ffc8ee02b573306360d284665c03851b2bdd232 +size 1075 diff --git a/iris/realtabformer/3/logs/train_duration/events.out.tfevents.1721739622.0e0da8a72f77.1718.42 b/iris/realtabformer/3/logs/train_duration/events.out.tfevents.1721739622.0e0da8a72f77.1718.42 new file mode 100644 index 0000000000000000000000000000000000000000..5498d1017f528daa9b817526ae95fcdabe17dd20 --- /dev/null +++ b/iris/realtabformer/3/logs/train_duration/events.out.tfevents.1721739622.0e0da8a72f77.1718.42 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c176ce0e393f73f8f475a60ca874172eb8fbad50473bf04407652ad3bd23edc7 +size 1075 diff --git a/iris/realtabformer/3/logs/train_duration_batch/events.out.tfevents.1721739622.0e0da8a72f77.1718.43 b/iris/realtabformer/3/logs/train_duration_batch/events.out.tfevents.1721739622.0e0da8a72f77.1718.43 new file mode 100644 index 0000000000000000000000000000000000000000..ef81ef2bc5e5f907327ccdcde6427a72bcca3a69 --- /dev/null +++ b/iris/realtabformer/3/logs/train_duration_batch/events.out.tfevents.1721739622.0e0da8a72f77.1718.43 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1077ba1bbe3d664c9ac758bfcf0da9fe859d3cebe8ac4943b38f58485efc2ec +size 1075 diff --git a/iris/realtabformer/3/logs/train_duration_size/events.out.tfevents.1721739622.0e0da8a72f77.1718.44 b/iris/realtabformer/3/logs/train_duration_size/events.out.tfevents.1721739622.0e0da8a72f77.1718.44 new file mode 100644 index 0000000000000000000000000000000000000000..8fa19f9e637726f7b35272c6cb469b95b875b925 --- /dev/null +++ b/iris/realtabformer/3/logs/train_duration_size/events.out.tfevents.1721739622.0e0da8a72f77.1718.44 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:324209c77aca4399522a976bd8da15b36d12c1370d6924de05772e7c0df9f34f +size 1075 diff --git a/iris/realtabformer/3/logs/train_n_batch/events.out.tfevents.1721739622.0e0da8a72f77.1718.41 b/iris/realtabformer/3/logs/train_n_batch/events.out.tfevents.1721739622.0e0da8a72f77.1718.41 new file mode 100644 index 0000000000000000000000000000000000000000..081e8cca7283458ebf5cb6958dc14c0f5a6c20c1 --- /dev/null +++ b/iris/realtabformer/3/logs/train_n_batch/events.out.tfevents.1721739622.0e0da8a72f77.1718.41 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6958c41a9173cd574a8a99baf9372ae4d3ae0c1854cf47fad5eaa354ec304572 +size 1075 diff --git a/iris/realtabformer/3/logs/train_n_size/events.out.tfevents.1721739622.0e0da8a72f77.1718.40 b/iris/realtabformer/3/logs/train_n_size/events.out.tfevents.1721739622.0e0da8a72f77.1718.40 new file mode 100644 index 0000000000000000000000000000000000000000..51d38d912f638b930a28bbdd200bf8649883ffe7 --- /dev/null +++ b/iris/realtabformer/3/logs/train_n_size/events.out.tfevents.1721739622.0e0da8a72f77.1718.40 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77367fa6714c49b5e15053965497d07ad7e156a3d505e22a561d797bb83df0f9 +size 1075 diff --git a/iris/realtabformer/3/logs/val_avg_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.54 b/iris/realtabformer/3/logs/val_avg_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.54 new file mode 100644 index 0000000000000000000000000000000000000000..029c771fdeee5ed4a84a385c1ebd2d4b65cf003c --- /dev/null +++ b/iris/realtabformer/3/logs/val_avg_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.54 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6c84b0c46d22345760cb6e6f628222cd7d096a609739fcda116371025812d0b +size 1029 diff --git a/iris/realtabformer/3/logs/val_avg_non_role_model_embed_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.53 b/iris/realtabformer/3/logs/val_avg_non_role_model_embed_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.53 new file mode 100644 index 0000000000000000000000000000000000000000..c1e7a888f001f654efa8230244834a16f6d1b0e5 --- /dev/null +++ b/iris/realtabformer/3/logs/val_avg_non_role_model_embed_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.53 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc82c7733741d7e1c5860df3586161fd0e10fa47bd61d80139aa7f4fa63ebe94 +size 1029 diff --git a/iris/realtabformer/3/logs/val_avg_non_role_model_g_cos_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.52 b/iris/realtabformer/3/logs/val_avg_non_role_model_g_cos_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.52 new file mode 100644 index 0000000000000000000000000000000000000000..a105fb9d3b5b021e22af34b3b155e1fc127ce7a6 --- /dev/null +++ b/iris/realtabformer/3/logs/val_avg_non_role_model_g_cos_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.52 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b1197ec70c13149290d357c4f0920891cabed944de8de5d74dfdf4ff6c3f53e +size 1029 diff --git a/iris/realtabformer/3/logs/val_avg_non_role_model_g_mag_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.51 b/iris/realtabformer/3/logs/val_avg_non_role_model_g_mag_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.51 new file mode 100644 index 0000000000000000000000000000000000000000..71f7f5c464f62a1f9fe6b0e0b00ad7ca7a82df16 --- /dev/null +++ b/iris/realtabformer/3/logs/val_avg_non_role_model_g_mag_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.51 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39fd9ec7ae9e3d7842bbb73e012ade729ffd8ae564d9d12510b61e29c22bea49 +size 1029 diff --git a/iris/realtabformer/3/logs/val_avg_pred_std/events.out.tfevents.1721739622.0e0da8a72f77.1718.60 b/iris/realtabformer/3/logs/val_avg_pred_std/events.out.tfevents.1721739622.0e0da8a72f77.1718.60 new file mode 100644 index 0000000000000000000000000000000000000000..ec6fc3958c258d158d44eb34d88bf7f13d08f60c --- /dev/null +++ b/iris/realtabformer/3/logs/val_avg_pred_std/events.out.tfevents.1721739622.0e0da8a72f77.1718.60 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66392172919f7e9f990ea0bd51ad360813b137a37d615059f6b96f3a0252cba5 +size 1029 diff --git a/iris/realtabformer/3/logs/val_avg_role_model_g_cos_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.50 b/iris/realtabformer/3/logs/val_avg_role_model_g_cos_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.50 new file mode 100644 index 0000000000000000000000000000000000000000..a04cf478a50b71d7b02741ab95c06b0f911261a4 --- /dev/null +++ b/iris/realtabformer/3/logs/val_avg_role_model_g_cos_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.50 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6522c48cf4e5b8a43b3ec8ed7c67fe4bfa19347fdbbf00aa7ce762cab2dacda4 +size 1029 diff --git a/iris/realtabformer/3/logs/val_avg_role_model_g_mag_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.49 b/iris/realtabformer/3/logs/val_avg_role_model_g_mag_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.49 new file mode 100644 index 0000000000000000000000000000000000000000..19f8e73fa884bdb4ecc11c712675418028ceee84 --- /dev/null +++ b/iris/realtabformer/3/logs/val_avg_role_model_g_mag_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.49 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac5606d4819d961b75d006beb7729ddcf1a23a0f643b5bd584c1ad74c07c29c6 +size 1029 diff --git a/iris/realtabformer/3/logs/val_avg_role_model_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.46 b/iris/realtabformer/3/logs/val_avg_role_model_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.46 new file mode 100644 index 0000000000000000000000000000000000000000..519a9df369a7abe7f284800835183fb1a11ca60c --- /dev/null +++ b/iris/realtabformer/3/logs/val_avg_role_model_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.46 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0a4c4669756896d51d8aa63a36c165d7aa2a91e70571a7757f8cb5450ea0625 +size 1029 diff --git a/iris/realtabformer/3/logs/val_avg_role_model_mean_pred_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.48 b/iris/realtabformer/3/logs/val_avg_role_model_mean_pred_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.48 new file mode 100644 index 0000000000000000000000000000000000000000..03efb57c8a9994dfd90bd03b465b702b6116a3d7 --- /dev/null +++ b/iris/realtabformer/3/logs/val_avg_role_model_mean_pred_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.48 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6088f57553bf0f019ebf6f378d59416adced1b27cdc749465048e4ae7db72c4 +size 1029 diff --git a/iris/realtabformer/3/logs/val_avg_role_model_std_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.47 b/iris/realtabformer/3/logs/val_avg_role_model_std_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.47 new file mode 100644 index 0000000000000000000000000000000000000000..68188b43cff750d329286b94887e5239e14d9eee --- /dev/null +++ b/iris/realtabformer/3/logs/val_avg_role_model_std_loss/events.out.tfevents.1721739622.0e0da8a72f77.1718.47 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c01cb3e3c685e0d1c5a8a3a303ce43f564b842025c5ebfc0bdf8634ea5d2b1fd +size 1029 diff --git a/iris/realtabformer/3/logs/val_duration/events.out.tfevents.1721739622.0e0da8a72f77.1718.57 b/iris/realtabformer/3/logs/val_duration/events.out.tfevents.1721739622.0e0da8a72f77.1718.57 new file mode 100644 index 0000000000000000000000000000000000000000..f83c8752bdffade7f4cbdf7b4146e886f2a3f458 --- /dev/null +++ b/iris/realtabformer/3/logs/val_duration/events.out.tfevents.1721739622.0e0da8a72f77.1718.57 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75b937e99966a21162d9ec5d1cb49247c75f818ea23cc93c3b51b1528ca7e64e +size 1029 diff --git a/iris/realtabformer/3/logs/val_duration_batch/events.out.tfevents.1721739622.0e0da8a72f77.1718.58 b/iris/realtabformer/3/logs/val_duration_batch/events.out.tfevents.1721739622.0e0da8a72f77.1718.58 new file mode 100644 index 0000000000000000000000000000000000000000..deb0a91d52b207b1839e790e3ad1d6326a0e47e8 --- /dev/null +++ b/iris/realtabformer/3/logs/val_duration_batch/events.out.tfevents.1721739622.0e0da8a72f77.1718.58 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12e2288d5f7c7dce6edcb6cb96682f780929259348b91da040fa4cbab40f8f12 +size 1029 diff --git a/iris/realtabformer/3/logs/val_duration_size/events.out.tfevents.1721739622.0e0da8a72f77.1718.59 b/iris/realtabformer/3/logs/val_duration_size/events.out.tfevents.1721739622.0e0da8a72f77.1718.59 new file mode 100644 index 0000000000000000000000000000000000000000..0698c7a58634e6e137ffdaeb172b716919ddb664 --- /dev/null +++ b/iris/realtabformer/3/logs/val_duration_size/events.out.tfevents.1721739622.0e0da8a72f77.1718.59 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4214df9bd3dfbcf54fa73728af46e2dea154d03aaedd04652285c50d6afb840 +size 1029 diff --git a/iris/realtabformer/3/logs/val_n_batch/events.out.tfevents.1721739622.0e0da8a72f77.1718.56 b/iris/realtabformer/3/logs/val_n_batch/events.out.tfevents.1721739622.0e0da8a72f77.1718.56 new file mode 100644 index 0000000000000000000000000000000000000000..0cf75fcf0554c1f7d45331eab8715736853c989f --- /dev/null +++ b/iris/realtabformer/3/logs/val_n_batch/events.out.tfevents.1721739622.0e0da8a72f77.1718.56 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f31c73f3c65754f6ee3bb2ebcb537551ea25b8417f131ee289a16d77bac61d1a +size 1029 diff --git a/iris/realtabformer/3/logs/val_n_size/events.out.tfevents.1721739622.0e0da8a72f77.1718.55 b/iris/realtabformer/3/logs/val_n_size/events.out.tfevents.1721739622.0e0da8a72f77.1718.55 new file mode 100644 index 0000000000000000000000000000000000000000..011c29dff4808b90c061066618c9bc22a8b6026b --- /dev/null +++ b/iris/realtabformer/3/logs/val_n_size/events.out.tfevents.1721739622.0e0da8a72f77.1718.55 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f843dba294b8f668da94464c665c2c9f54e41df7ca3b52a265e234f9075c0b9 +size 1029 diff --git a/iris/realtabformer/3/mlu-eval.ipynb b/iris/realtabformer/3/mlu-eval.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..5eff5b42b70966829bf6869578f6b7857056c84a --- /dev/null +++ b/iris/realtabformer/3/mlu-eval.ipynb @@ -0,0 +1,2562 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "982e76f5", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T12:59:38.248168Z", + "iopub.status.busy": "2024-07-23T12:59:38.247516Z", + "iopub.status.idle": "2024-07-23T12:59:38.279159Z", + "shell.execute_reply": "2024-07-23T12:59:38.278228Z" + }, + "papermill": { + "duration": 0.046717, + "end_time": "2024-07-23T12:59:38.281226", + "exception": false, + "start_time": "2024-07-23T12:59:38.234509", + "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-23T12:59:38.306822Z", + "iopub.status.busy": "2024-07-23T12:59:38.306526Z", + "iopub.status.idle": "2024-07-23T12:59:38.313282Z", + "shell.execute_reply": "2024-07-23T12:59:38.312344Z" + }, + "papermill": { + "duration": 0.022248, + "end_time": "2024-07-23T12:59:38.315295", + "exception": false, + "start_time": "2024-07-23T12:59:38.293047", + "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-23T12:59:38.338744Z", + "iopub.status.busy": "2024-07-23T12:59:38.338470Z", + "iopub.status.idle": "2024-07-23T12:59:38.342464Z", + "shell.execute_reply": "2024-07-23T12:59:38.341642Z" + }, + "papermill": { + "duration": 0.018086, + "end_time": "2024-07-23T12:59:38.344327", + "exception": false, + "start_time": "2024-07-23T12:59:38.326241", + "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-23T12:59:38.367566Z", + "iopub.status.busy": "2024-07-23T12:59:38.367295Z", + "iopub.status.idle": "2024-07-23T12:59:38.371364Z", + "shell.execute_reply": "2024-07-23T12:59:38.370498Z" + }, + "executionInfo": { + "elapsed": 678, + "status": "ok", + "timestamp": 1696841022168, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "ns5hFcVL2yvs", + "papermill": { + "duration": 0.018104, + "end_time": "2024-07-23T12:59:38.373381", + "exception": false, + "start_time": "2024-07-23T12:59:38.355277", + "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-23T12:59:38.396854Z", + "iopub.status.busy": "2024-07-23T12:59:38.396561Z", + "iopub.status.idle": "2024-07-23T12:59:38.402022Z", + "shell.execute_reply": "2024-07-23T12:59:38.401195Z" + }, + "papermill": { + "duration": 0.01935, + "end_time": "2024-07-23T12:59:38.403856", + "exception": false, + "start_time": "2024-07-23T12:59:38.384506", + "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": "271ceb49", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T12:59:38.429514Z", + "iopub.status.busy": "2024-07-23T12:59:38.428863Z", + "iopub.status.idle": "2024-07-23T12:59:38.434242Z", + "shell.execute_reply": "2024-07-23T12:59:38.433418Z" + }, + "papermill": { + "duration": 0.020436, + "end_time": "2024-07-23T12:59:38.436154", + "exception": false, + "start_time": "2024-07-23T12:59:38.415718", + "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 = 3\n", + "debug = False\n", + "folder = \"eval\"\n", + "path_prefix = \"../../../../\"\n", + "path = \"eval/iris/realtabformer/3\"\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.010963, + "end_time": "2024-07-23T12:59:38.458154", + "exception": false, + "start_time": "2024-07-23T12:59:38.447191", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "5f45b1d0", + "metadata": { + "execution": { + "iopub.execute_input": "2024-07-23T12:59:38.481516Z", + "iopub.status.busy": "2024-07-23T12:59:38.481273Z", + "iopub.status.idle": "2024-07-23T12:59:38.490458Z", + "shell.execute_reply": "2024-07-23T12:59:38.489646Z" + }, + "executionInfo": { + "elapsed": 7, + "status": "ok", + "timestamp": 1696841022169, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "UdvXYv3c3LXy", + "papermill": { + "duration": 0.023084, + "end_time": "2024-07-23T12:59:38.492343", + "exception": false, + "start_time": "2024-07-23T12:59:38.469259", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/kaggle/working\n", + "/kaggle/working/eval/iris/realtabformer/3\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-23T12:59:38.515854Z", + "iopub.status.busy": "2024-07-23T12:59:38.515573Z", + "iopub.status.idle": "2024-07-23T12:59:40.532516Z", + "shell.execute_reply": "2024-07-23T12:59:40.531558Z" + }, + "papermill": { + "duration": 2.031194, + "end_time": "2024-07-23T12:59:40.534734", + "exception": false, + "start_time": "2024-07-23T12:59:38.503540", + "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-23T12:59:40.561837Z", + "iopub.status.busy": "2024-07-23T12:59:40.561402Z", + "iopub.status.idle": "2024-07-23T12:59:40.572309Z", + "shell.execute_reply": "2024-07-23T12:59:40.571559Z" + }, + "papermill": { + "duration": 0.026484, + "end_time": "2024-07-23T12:59:40.574244", + "exception": false, + "start_time": "2024-07-23T12:59:40.547760", + "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-23T12:59:40.598168Z", + "iopub.status.busy": "2024-07-23T12:59:40.597899Z", + "iopub.status.idle": "2024-07-23T12:59:40.604739Z", + "shell.execute_reply": "2024-07-23T12:59:40.603965Z" + }, + "executionInfo": { + "elapsed": 6, + "status": "ok", + "timestamp": 1696841022169, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "Vrl2QkoV3o_8", + "papermill": { + "duration": 0.020891, + "end_time": "2024-07-23T12:59:40.606606", + "exception": false, + "start_time": "2024-07-23T12:59:40.585715", + "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-23T12:59:40.630366Z", + "iopub.status.busy": "2024-07-23T12:59:40.630079Z", + "iopub.status.idle": "2024-07-23T12:59:40.727204Z", + "shell.execute_reply": "2024-07-23T12:59:40.726413Z" + }, + "executionInfo": { + "elapsed": 6, + "status": "ok", + "timestamp": 1696841022169, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "TilUuFk9vqMb", + "papermill": { + "duration": 0.111469, + "end_time": "2024-07-23T12:59:40.729328", + "exception": false, + "start_time": "2024-07-23T12:59:40.617859", + "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-23T12:59:40.755224Z", + "iopub.status.busy": "2024-07-23T12:59:40.754939Z", + "iopub.status.idle": "2024-07-23T12:59:45.063257Z", + "shell.execute_reply": "2024-07-23T12:59:45.062239Z" + }, + "executionInfo": { + "elapsed": 3113, + "status": "ok", + "timestamp": 1696841025277, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "7Abt8nStvr9Z", + "papermill": { + "duration": 4.324039, + "end_time": "2024-07-23T12:59:45.065670", + "exception": false, + "start_time": "2024-07-23T12:59:40.741631", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-07-23 12:59:42.495237: 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 12:59:42.495295: 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 12:59:42.496887: 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-23T12:59:45.090837Z", + "iopub.status.busy": "2024-07-23T12:59:45.090204Z", + "iopub.status.idle": "2024-07-23T12:59:45.096991Z", + "shell.execute_reply": "2024-07-23T12:59:45.096282Z" + }, + "papermill": { + "duration": 0.021319, + "end_time": "2024-07-23T12:59:45.098868", + "exception": false, + "start_time": "2024-07-23T12:59:45.077549", + "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-23T12:59:45.124129Z", + "iopub.status.busy": "2024-07-23T12:59:45.123842Z", + "iopub.status.idle": "2024-07-23T12:59:47.713603Z", + "shell.execute_reply": "2024-07-23T12:59:47.712819Z" + }, + "executionInfo": { + "elapsed": 20137, + "status": "ok", + "timestamp": 1696841045408, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "tbaguWxAvtPi", + "papermill": { + "duration": 2.60507, + "end_time": "2024-07-23T12:59:47.715976", + "exception": false, + "start_time": "2024-07-23T12:59:45.110906", + "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-23T12:59:47.743002Z", + "iopub.status.busy": "2024-07-23T12:59:47.742172Z", + "iopub.status.idle": "2024-07-23T12:59:47.749325Z", + "shell.execute_reply": "2024-07-23T12:59:47.748409Z" + }, + "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.02249, + "end_time": "2024-07-23T12:59:47.751239", + "exception": false, + "start_time": "2024-07-23T12:59:47.728749", + "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-23T12:59:47.775711Z", + "iopub.status.busy": "2024-07-23T12:59:47.775457Z", + "iopub.status.idle": "2024-07-23T12:59:47.780369Z", + "shell.execute_reply": "2024-07-23T12:59:47.779496Z" + }, + "papermill": { + "duration": 0.019787, + "end_time": "2024-07-23T12:59:47.782419", + "exception": false, + "start_time": "2024-07-23T12:59:47.762632", + "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-23T12:59:47.808484Z", + "iopub.status.busy": "2024-07-23T12:59:47.807817Z", + "iopub.status.idle": "2024-07-23T12:59:47.864502Z", + "shell.execute_reply": "2024-07-23T12:59:47.863623Z" + }, + "papermill": { + "duration": 0.071531, + "end_time": "2024-07-23T12:59:47.866518", + "exception": false, + "start_time": "2024-07-23T12:59:47.794987", + "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-23T12:59:47.894564Z", + "iopub.status.busy": "2024-07-23T12:59:47.893888Z", + "iopub.status.idle": "2024-07-23T12:59:48.474739Z", + "shell.execute_reply": "2024-07-23T12:59:48.473824Z" + }, + "executionInfo": { + "elapsed": 588, + "status": "ok", + "timestamp": 1696841049215, + "user": { + "displayName": "Rizqi Nur", + "userId": "09644007964068789560" + }, + "user_tz": -420 + }, + "id": "NgahtU1q9uLO", + "papermill": { + "duration": 0.596998, + "end_time": "2024-07-23T12:59:48.476920", + "exception": false, + "start_time": "2024-07-23T12:59:47.879922", + "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-23T12:59:48.502543Z", + "iopub.status.busy": "2024-07-23T12:59:48.502238Z", + "iopub.status.idle": "2024-07-23T12:59:48.651295Z", + "shell.execute_reply": "2024-07-23T12:59:48.650256Z" + }, + "papermill": { + "duration": 0.16456, + "end_time": "2024-07-23T12:59:48.653551", + "exception": false, + "start_time": "2024-07-23T12:59:48.488991", + "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-23T12:59:48.681199Z", + "iopub.status.busy": "2024-07-23T12:59:48.680861Z", + "iopub.status.idle": "2024-07-23T12:59:49.009896Z", + "shell.execute_reply": "2024-07-23T12:59:49.008968Z" + }, + "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.345138, + "end_time": "2024-07-23T12:59:49.011959", + "exception": false, + "start_time": "2024-07-23T12:59:48.666821", + "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-23T12:59:49.042749Z", + "iopub.status.busy": "2024-07-23T12:59:49.042278Z", + "iopub.status.idle": "2024-07-23T12:59:49.046674Z", + "shell.execute_reply": "2024-07-23T12:59:49.045753Z" + }, + "papermill": { + "duration": 0.023264, + "end_time": "2024-07-23T12:59:49.048652", + "exception": false, + "start_time": "2024-07-23T12:59:49.025388", + "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-23T12:59:49.075001Z", + "iopub.status.busy": "2024-07-23T12:59:49.074710Z", + "iopub.status.idle": "2024-07-23T12:59:49.081671Z", + "shell.execute_reply": "2024-07-23T12:59:49.080970Z" + }, + "papermill": { + "duration": 0.022261, + "end_time": "2024-07-23T12:59:49.083707", + "exception": false, + "start_time": "2024-07-23T12:59:49.061446", + "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-23T12:59:49.109748Z", + "iopub.status.busy": "2024-07-23T12:59:49.109485Z", + "iopub.status.idle": "2024-07-23T12:59:49.213922Z", + "shell.execute_reply": "2024-07-23T12:59:49.213001Z" + }, + "papermill": { + "duration": 0.120493, + "end_time": "2024-07-23T12:59:49.216611", + "exception": false, + "start_time": "2024-07-23T12:59:49.096118", + "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-23T12:59:49.262133Z", + "iopub.status.busy": "2024-07-23T12:59:49.261082Z", + "iopub.status.idle": "2024-07-23T13:12:37.890440Z", + "shell.execute_reply": "2024-07-23T13:12:37.889468Z" + }, + "papermill": { + "duration": 768.658904, + "end_time": "2024-07-23T13:12:37.892549", + "exception": false, + "start_time": "2024-07-23T12:59:49.233645", + "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.06701535535339984, 'avg_role_model_std_loss': 1.3992416522993993, 'avg_role_model_mean_pred_loss': 0.007645102585694804, 'avg_role_model_g_mag_loss': 3.8621874086605095, '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.0683601126907775, 'n_size': 805, 'n_batch': 26, 'duration': 26.25713276863098, 'duration_batch': 1.0098897218704224, 'duration_size': 0.0326175562343242, 'avg_pred_std': 0.2279995737167505}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.020624197274446487, 'avg_role_model_std_loss': 0.4312509568574439, 'avg_role_model_mean_pred_loss': 0.000656504371581832, '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.020624197274446487, 'n_size': 200, 'n_batch': 7, 'duration': 5.635092258453369, 'duration_batch': 0.8050131797790527, 'duration_size': 0.028175461292266845, 'avg_pred_std': 0.22945596490587508}\n", + "Epoch 1\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.0565388375881666, 'avg_role_model_std_loss': 3.1829480101883885, 'avg_role_model_mean_pred_loss': 0.006030618667209185, 'avg_role_model_g_mag_loss': 2.4793709531333876, '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.05750146156512432, 'n_size': 805, 'n_batch': 26, 'duration': 25.849519968032837, 'duration_batch': 0.9942123064628015, 'duration_size': 0.03211120492923334, 'avg_pred_std': 0.24902775253240877}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.05548587396740914, 'avg_role_model_std_loss': 11.044640983854022, 'avg_role_model_mean_pred_loss': 0.0012680660048499702, '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.05548587396740914, 'n_size': 200, 'n_batch': 7, 'duration': 5.875952243804932, 'duration_batch': 0.8394217491149902, 'duration_size': 0.029379761219024657, 'avg_pred_std': 0.11270552660737719}\n", + "Epoch 2\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.051754596163027036, 'avg_role_model_std_loss': 4.507725323765324, 'avg_role_model_mean_pred_loss': 0.0064099248880462615, 'avg_role_model_g_mag_loss': 1.939684205692007, '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.052674797269868553, 'n_size': 805, 'n_batch': 26, 'duration': 26.123075485229492, 'duration_batch': 1.0047336725088267, 'duration_size': 0.03245102544749005, 'avg_pred_std': 0.2299080817745282}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.11837481021881104, 'avg_role_model_std_loss': 64.51317364828927, 'avg_role_model_mean_pred_loss': 0.020510545074939726, '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.11837481021881104, 'n_size': 200, 'n_batch': 7, 'duration': 6.041569948196411, 'duration_batch': 0.8630814211709159, 'duration_size': 0.030207849740982055, 'avg_pred_std': 0.0447674851332392}\n", + "Epoch 3\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.07960010437954286, 'avg_role_model_std_loss': 19.981215711047227, 'avg_role_model_mean_pred_loss': 0.009885529607464994, 'avg_role_model_g_mag_loss': 0.8584646887660767, '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.08306644658401886, 'n_size': 805, 'n_batch': 26, 'duration': 26.529516220092773, 'duration_batch': 1.0203660084651067, 'duration_size': 0.03295592077030158, 'avg_pred_std': 0.18944063284792578}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.04851729765534401, 'avg_role_model_std_loss': 26.006406579698837, 'avg_role_model_mean_pred_loss': 0.0004657289100578055, '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.04851729765534401, 'n_size': 200, 'n_batch': 7, 'duration': 6.2215821743011475, 'duration_batch': 0.8887974534715924, 'duration_size': 0.031107910871505738, 'avg_pred_std': 0.07742421754768916}\n", + "Epoch 4\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.022342581551822817, 'avg_role_model_std_loss': 2.3711896103094867, 'avg_role_model_mean_pred_loss': 0.00047315613282425037, 'avg_role_model_g_mag_loss': 0.7086849711696553, '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.02273657219195218, 'n_size': 805, 'n_batch': 26, 'duration': 25.82470679283142, 'duration_batch': 0.9932579535704392, 'duration_size': 0.03208038110910735, 'avg_pred_std': 0.21197539682571703}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.01198684986680746, 'avg_role_model_std_loss': 0.5270316706488042, 'avg_role_model_mean_pred_loss': 7.60403824824607e-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.01198684986680746, 'n_size': 200, 'n_batch': 7, 'duration': 5.614264965057373, 'duration_batch': 0.8020378521510533, 'duration_size': 0.028071324825286865, 'avg_pred_std': 0.2054890458072935}\n", + "Epoch 5\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.014744574423902524, 'avg_role_model_std_loss': 0.8497495335689634, 'avg_role_model_mean_pred_loss': 0.000290491337228497, 'avg_role_model_g_mag_loss': 0.4803045463117753, '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.01499018386145186, 'n_size': 805, 'n_batch': 26, 'duration': 26.513713121414185, 'duration_batch': 1.0197581969774687, 'duration_size': 0.032936289591818865, 'avg_pred_std': 0.21756946811309227}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.02423147849738598, 'avg_role_model_std_loss': 0.056038946112883944, 'avg_role_model_mean_pred_loss': 0.0009996757561384585, '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.02423147849738598, 'n_size': 200, 'n_batch': 7, 'duration': 5.853564262390137, 'duration_batch': 0.8362234660557338, 'duration_size': 0.029267821311950683, 'avg_pred_std': 0.27141186382089344}\n", + "Epoch 6\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.01651955831749654, 'avg_role_model_std_loss': 1.1790676854059432, 'avg_role_model_mean_pred_loss': 0.0003712053738126997, 'avg_role_model_g_mag_loss': 0.3512295508977049, '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.016802358277928756, 'n_size': 805, 'n_batch': 26, 'duration': 25.686126947402954, 'duration_batch': 0.9879279595154983, 'duration_size': 0.0319082322327987, 'avg_pred_std': 0.21469824359967157}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.010861842511221766, 'avg_role_model_std_loss': 1.442582247512681, 'avg_role_model_mean_pred_loss': 0.00011373920811820426, '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.010861842511221766, 'n_size': 200, 'n_batch': 7, 'duration': 5.628083944320679, 'duration_batch': 0.8040119920458112, 'duration_size': 0.028140419721603395, 'avg_pred_std': 0.18473856363977706}\n", + "Epoch 7\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.010163603971787491, 'avg_role_model_std_loss': 0.6329258886422534, 'avg_role_model_mean_pred_loss': 0.0001713631607491598, 'avg_role_model_g_mag_loss': 0.21453803890610335, '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.01032990808511928, 'n_size': 805, 'n_batch': 26, 'duration': 25.444018363952637, 'duration_batch': 0.9786160909212552, 'duration_size': 0.03160747622851259, 'avg_pred_std': 0.21147283639472264}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.016940189488232137, 'avg_role_model_std_loss': 0.05573677301539907, 'avg_role_model_mean_pred_loss': 0.00037147307855775577, '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.016940189488232137, 'n_size': 200, 'n_batch': 7, 'duration': 5.588470220565796, 'duration_batch': 0.7983528886522565, 'duration_size': 0.02794235110282898, 'avg_pred_std': 0.23983252687113626}\n", + "Epoch 8\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.010990686013554194, 'avg_role_model_std_loss': 0.5550077651244535, 'avg_role_model_mean_pred_loss': 0.00017324265797430164, 'avg_role_model_g_mag_loss': 0.29960318283634896, '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.011183101479079782, 'n_size': 805, 'n_batch': 26, 'duration': 25.57755970954895, 'duration_batch': 0.9837522965211135, 'duration_size': 0.03177336609881857, 'avg_pred_std': 0.22012879699468613}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.013394612204283476, 'avg_role_model_std_loss': 0.03656235846951209, 'avg_role_model_mean_pred_loss': 0.0003237755317968549, '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.013394612204283476, 'n_size': 200, 'n_batch': 7, 'duration': 5.613554239273071, 'duration_batch': 0.801936319896153, 'duration_size': 0.028067771196365356, 'avg_pred_std': 0.2571955429656165}\n", + "Epoch 9\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.009105310692619648, 'avg_role_model_std_loss': 0.4341134643032092, 'avg_role_model_mean_pred_loss': 0.000134078849805519, 'avg_role_model_g_mag_loss': 0.22471435854894034, '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.00926741972820174, 'n_size': 805, 'n_batch': 26, 'duration': 25.525206804275513, 'duration_batch': 0.9817387232413659, 'duration_size': 0.031708331433882624, 'avg_pred_std': 0.22679393967756858}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.011935904826968909, 'avg_role_model_std_loss': 0.033081828450251906, 'avg_role_model_mean_pred_loss': 0.00036618053041735264, '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.011935904826968909, 'n_size': 200, 'n_batch': 7, 'duration': 5.5619072914123535, 'duration_batch': 0.7945581844874791, 'duration_size': 0.027809536457061766, 'avg_pred_std': 0.23601134547165462}\n", + "Epoch 10\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.008830969137434634, 'avg_role_model_std_loss': 0.20356472788187518, 'avg_role_model_mean_pred_loss': 0.00013467646441646557, 'avg_role_model_g_mag_loss': 0.2311986147616961, '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.008974288086991132, 'n_size': 805, 'n_batch': 26, 'duration': 26.66583251953125, 'duration_batch': 1.0256089430588942, 'duration_size': 0.03312525778823758, 'avg_pred_std': 0.22447198572067115}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.009058690294623375, 'avg_role_model_std_loss': 1.0793710928410292, 'avg_role_model_mean_pred_loss': 0.00010731957172538387, '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.009058690294623375, 'n_size': 200, 'n_batch': 7, 'duration': 5.583786487579346, 'duration_batch': 0.7976837839399066, 'duration_size': 0.02791893243789673, 'avg_pred_std': 0.202907138637134}\n", + "Epoch 11\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.00958837289420992, 'avg_role_model_std_loss': 0.4137342206825089, 'avg_role_model_mean_pred_loss': 0.0001568305421602892, 'avg_role_model_g_mag_loss': 0.18104172889490305, '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.009754505202243602, 'n_size': 805, 'n_batch': 26, 'duration': 25.536228895187378, 'duration_batch': 0.9821626498148992, 'duration_size': 0.03172202347228246, 'avg_pred_std': 0.22990705760625693}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.012193636372685432, 'avg_role_model_std_loss': 0.01905201596257809, 'avg_role_model_mean_pred_loss': 0.0002667809302147361, '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.012193636372685432, 'n_size': 200, 'n_batch': 7, 'duration': 5.575732469558716, 'duration_batch': 0.7965332099369594, 'duration_size': 0.02787866234779358, 'avg_pred_std': 0.25277247386319296}\n", + "Epoch 12\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.011160158292500314, 'avg_role_model_std_loss': 0.918639663428901, 'avg_role_model_mean_pred_loss': 0.00020117725278238219, 'avg_role_model_g_mag_loss': 0.2493331825418502, '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.011349647664551779, 'n_size': 805, 'n_batch': 26, 'duration': 25.366316080093384, 'duration_batch': 0.9756275415420532, 'duration_size': 0.03151095165228992, 'avg_pred_std': 0.21686716606983772}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.00847031157463789, 'avg_role_model_std_loss': 0.11198418910082962, 'avg_role_model_mean_pred_loss': 0.00020940086645026667, '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.00847031157463789, 'n_size': 200, 'n_batch': 7, 'duration': 5.6610565185546875, 'duration_batch': 0.8087223597935268, 'duration_size': 0.02830528259277344, 'avg_pred_std': 0.22611165259565627}\n", + "Epoch 13\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.008521620477462962, 'avg_role_model_std_loss': 0.1929064377461775, 'avg_role_model_mean_pred_loss': 0.00011822050097033306, 'avg_role_model_g_mag_loss': 0.22713723212295436, '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.008663140829097225, 'n_size': 805, 'n_batch': 26, 'duration': 26.399289846420288, 'duration_batch': 1.0153573017853956, 'duration_size': 0.03279414887754073, 'avg_pred_std': 0.22841374576091766}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.0092774517275393, 'avg_role_model_std_loss': 0.8428551810128349, 'avg_role_model_mean_pred_loss': 0.00010433940242762674, '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.0092774517275393, 'n_size': 200, 'n_batch': 7, 'duration': 6.205705165863037, 'duration_batch': 0.8865293094090053, 'duration_size': 0.031028525829315187, 'avg_pred_std': 0.19295603249754226}\n", + "Epoch 14\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.008861068232991496, 'avg_role_model_std_loss': 0.4760302671168644, 'avg_role_model_mean_pred_loss': 9.316427658293222e-05, 'avg_role_model_g_mag_loss': 0.22115371221711178, '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.009015275142300203, 'n_size': 805, 'n_batch': 26, 'duration': 26.635640621185303, 'duration_batch': 1.0244477161994348, 'duration_size': 0.033087752324453795, 'avg_pred_std': 0.22320112127524155}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.008431506399065257, 'avg_role_model_std_loss': 0.4554546269189034, 'avg_role_model_mean_pred_loss': 0.00015350583209396972, '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.008431506399065257, 'n_size': 200, 'n_batch': 7, 'duration': 5.4842164516448975, 'duration_batch': 0.7834594930921283, 'duration_size': 0.027421082258224486, 'avg_pred_std': 0.2168558814695903}\n", + "Epoch 15\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.008321717872012475, 'avg_role_model_std_loss': 0.29628351807542247, 'avg_role_model_mean_pred_loss': 0.00010211278995540953, 'avg_role_model_g_mag_loss': 0.21546076151154797, '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.008457961251600558, 'n_size': 805, 'n_batch': 26, 'duration': 26.30124258995056, 'duration_batch': 1.011586253459637, 'duration_size': 0.03267235104341685, 'avg_pred_std': 0.22520023183180735}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.011079466231167316, 'avg_role_model_std_loss': 0.26038447032416506, 'avg_role_model_mean_pred_loss': 0.000223711000289768, '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.011079466231167316, 'n_size': 200, 'n_batch': 7, 'duration': 5.683879852294922, 'duration_batch': 0.8119828360421317, 'duration_size': 0.02841939926147461, 'avg_pred_std': 0.22340327501296997}\n", + "Epoch 16\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.007341269472532946, 'avg_role_model_std_loss': 0.1505892426290442, 'avg_role_model_mean_pred_loss': 5.949021034714674e-05, 'avg_role_model_g_mag_loss': 0.1791700872205059, '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.007465106239600211, 'n_size': 805, 'n_batch': 26, 'duration': 26.990018606185913, 'duration_batch': 1.0380776386994581, 'duration_size': 0.03352797342383343, 'avg_pred_std': 0.2263758543592233}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.008301879037171602, 'avg_role_model_std_loss': 0.3695169225767521, 'avg_role_model_mean_pred_loss': 0.00011812720507805353, '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.008301879037171602, 'n_size': 200, 'n_batch': 7, 'duration': 6.002617597579956, 'duration_batch': 0.8575167996542794, 'duration_size': 0.03001308798789978, 'avg_pred_std': 0.2084350734949112}\n", + "Epoch 17\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.0068320089818111485, 'avg_role_model_std_loss': 0.2313985668165165, 'avg_role_model_mean_pred_loss': 5.606827994512816e-05, 'avg_role_model_g_mag_loss': 0.17805318310856819, '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.006945446017053649, 'n_size': 805, 'n_batch': 26, 'duration': 27.209917545318604, 'duration_batch': 1.0465352902045617, 'duration_size': 0.0338011398078492, 'avg_pred_std': 0.22643232746766165}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.007889349274337291, 'avg_role_model_std_loss': 0.5400860810519329, 'avg_role_model_mean_pred_loss': 0.00012063087198384893, '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.007889349274337291, 'n_size': 200, 'n_batch': 7, 'duration': 6.038616180419922, 'duration_batch': 0.8626594543457031, 'duration_size': 0.03019308090209961, 'avg_pred_std': 0.20415333552019937}\n", + "Epoch 18\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.007738474875063814, 'avg_role_model_std_loss': 0.4079408379616899, 'avg_role_model_mean_pred_loss': 5.126851195974206e-05, 'avg_role_model_g_mag_loss': 0.18306885312617935, '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.007866497262907416, 'n_size': 805, 'n_batch': 26, 'duration': 26.918956995010376, 'duration_batch': 1.0353444998080914, 'duration_size': 0.03343969813044767, 'avg_pred_std': 0.22590288175986364}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.010172427482903004, 'avg_role_model_std_loss': 0.1868269839324057, 'avg_role_model_mean_pred_loss': 0.00017763827860107996, '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.010172427482903004, 'n_size': 200, 'n_batch': 7, 'duration': 6.05833888053894, 'duration_batch': 0.8654769829341343, 'duration_size': 0.0302916944026947, 'avg_pred_std': 0.22228043845721654}\n", + "Epoch 19\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.007176598506511091, 'avg_role_model_std_loss': 0.2051707718763702, 'avg_role_model_mean_pred_loss': 9.346555438332306e-05, 'avg_role_model_g_mag_loss': 0.18786897169692177, '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.007305843704119788, 'n_size': 805, 'n_batch': 26, 'duration': 27.44396185874939, 'duration_batch': 1.0555369945672841, 'duration_size': 0.03409187808540297, 'avg_pred_std': 0.23039588561424842}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.006905809380114079, 'avg_role_model_std_loss': 0.37397505309698836, 'avg_role_model_mean_pred_loss': 8.111787899906631e-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.006905809380114079, 'n_size': 200, 'n_batch': 7, 'duration': 5.969135761260986, 'duration_batch': 0.852733680180141, 'duration_size': 0.029845678806304933, 'avg_pred_std': 0.2079764029809407}\n", + "Epoch 20\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.0062791379423152585, 'avg_role_model_std_loss': 0.27477681724793424, 'avg_role_model_mean_pred_loss': 4.834185868202671e-05, 'avg_role_model_g_mag_loss': 0.18078255479380212, '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.006385929665024976, 'n_size': 805, 'n_batch': 26, 'duration': 25.90357518196106, 'duration_batch': 0.9962913531523484, 'duration_size': 0.03217835426330566, 'avg_pred_std': 0.22632791101932526}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.008880100920796394, 'avg_role_model_std_loss': 0.39235147793910335, 'avg_role_model_mean_pred_loss': 0.00013569710088631837, '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.008880100920796394, 'n_size': 200, 'n_batch': 7, 'duration': 5.73296046257019, 'duration_batch': 0.8189943517957415, 'duration_size': 0.028664802312850953, 'avg_pred_std': 0.20859386026859283}\n", + "Epoch 21\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.006839027690776387, 'avg_role_model_std_loss': 0.21329141500619314, 'avg_role_model_mean_pred_loss': 6.140132150167758e-05, 'avg_role_model_g_mag_loss': 0.18744490737130182, '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.006958439968156148, 'n_size': 805, 'n_batch': 26, 'duration': 26.82370376586914, 'duration_batch': 1.03168091407189, 'duration_size': 0.03332137113772564, 'avg_pred_std': 0.21693077110327208}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.009502473324537276, 'avg_role_model_std_loss': 0.1999502795016659, 'avg_role_model_mean_pred_loss': 0.00021481290252268082, '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.009502473324537276, 'n_size': 200, 'n_batch': 7, 'duration': 6.130902528762817, 'duration_batch': 0.8758432183946881, 'duration_size': 0.030654512643814087, 'avg_pred_std': 0.22778465066637313}\n", + "Epoch 22\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train loss {'avg_role_model_loss': 0.006555508891039568, 'avg_role_model_std_loss': 0.22888569490578448, 'avg_role_model_mean_pred_loss': 5.9598478633205506e-05, 'avg_role_model_g_mag_loss': 0.20531400660550372, '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.006669070942454641, 'n_size': 805, 'n_batch': 26, 'duration': 26.141737461090088, 'duration_batch': 1.0054514408111572, 'duration_size': 0.03247420802619887, 'avg_pred_std': 0.22908768688256925}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Val loss {'avg_role_model_loss': 0.010050405450165271, 'avg_role_model_std_loss': 1.6328566670417786, 'avg_role_model_mean_pred_loss': 0.00011823538029148039, '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.010050405450165271, 'n_size': 200, 'n_batch': 7, 'duration': 5.529226064682007, 'duration_batch': 0.7898894378117153, 'duration_size': 0.027646130323410033, 'avg_pred_std': 0.17750223726034164}\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.011126595903187991, 'avg_g_mag_loss': 0.020374023178592323, 'avg_g_cos_loss': 7.58421781938523e-06, 'pred_duration': 0.21762657165527344, 'grad_duration': 0.10828995704650879, 'total_duration': 0.3259165287017822, 'pred_std': 0.19796165823936462, 'std_loss': 0.03780163824558258, 'mean_pred_loss': 7.846618973417208e-05, 'pred_rmse': 0.10548267513513565, 'pred_mae': 0.08088701963424683, 'pred_mape': 0.18891479074954987, 'grad_rmse': 0.5762269496917725, 'grad_mae': 0.2678527534008026, 'grad_mape': 3.0745232105255127}, '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.011126595903187991, 'avg_g_mag_loss': 0.020374023178592323, 'avg_g_cos_loss': 7.58421781938523e-06, 'avg_pred_duration': 0.21762657165527344, 'avg_grad_duration': 0.10828995704650879, 'avg_total_duration': 0.3259165287017822, 'avg_pred_std': 0.19796165823936462, 'avg_std_loss': 0.03780163824558258, 'avg_mean_pred_loss': 7.846618973417208e-05}, 'min_metrics': {'avg_loss': 0.011126595903187991, 'avg_g_mag_loss': 0.020374023178592323, 'avg_g_cos_loss': 7.58421781938523e-06, 'pred_duration': 0.21762657165527344, 'grad_duration': 0.10828995704650879, 'total_duration': 0.3259165287017822, 'pred_std': 0.19796165823936462, 'std_loss': 0.03780163824558258, 'mean_pred_loss': 7.846618973417208e-05, 'pred_rmse': 0.10548267513513565, 'pred_mae': 0.08088701963424683, 'pred_mape': 0.18891479074954987, 'grad_rmse': 0.5762269496917725, 'grad_mae': 0.2678527534008026, 'grad_mape': 3.0745232105255127}, 'model_metrics': {'realtabformer': {'avg_loss': 0.011126595903187991, 'avg_g_mag_loss': 0.020374023178592323, 'avg_g_cos_loss': 7.58421781938523e-06, 'pred_duration': 0.21762657165527344, 'grad_duration': 0.10828995704650879, 'total_duration': 0.3259165287017822, 'pred_std': 0.19796165823936462, 'std_loss': 0.03780163824558258, 'mean_pred_loss': 7.846618973417208e-05, 'pred_rmse': 0.10548267513513565, 'pred_mae': 0.08088701963424683, 'pred_mape': 0.18891479074954987, 'grad_rmse': 0.5762269496917725, 'grad_mae': 0.2678527534008026, 'grad_mape': 3.0745232105255127}}}\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:12:37.931197Z", + "iopub.status.busy": "2024-07-23T13:12:37.930888Z", + "iopub.status.idle": "2024-07-23T13:12:37.935177Z", + "shell.execute_reply": "2024-07-23T13:12:37.934247Z" + }, + "papermill": { + "duration": 0.025747, + "end_time": "2024-07-23T13:12:37.937201", + "exception": false, + "start_time": "2024-07-23T13:12:37.911454", + "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:12:37.972575Z", + "iopub.status.busy": "2024-07-23T13:12:37.972294Z", + "iopub.status.idle": "2024-07-23T13:12:38.013264Z", + "shell.execute_reply": "2024-07-23T13:12:38.012524Z" + }, + "papermill": { + "duration": 0.060947, + "end_time": "2024-07-23T13:12:38.015187", + "exception": false, + "start_time": "2024-07-23T13:12:37.954240", + "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:12:38.052459Z", + "iopub.status.busy": "2024-07-23T13:12:38.052178Z", + "iopub.status.idle": "2024-07-23T13:12:38.343123Z", + "shell.execute_reply": "2024-07-23T13:12:38.342137Z" + }, + "papermill": { + "duration": 0.312417, + "end_time": "2024-07-23T13:12:38.345246", + "exception": false, + "start_time": "2024-07-23T13:12:38.032829", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAASQAAAESCAYAAABU2qhcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABDH0lEQVR4nO2de3hU1dX/PzOTTO4XSMgNQgIIhGtALjGoWGtqUKpGUZGXClIFUWLFKFWsgq2/NopoUaFS6qu8VhGqFeqFohgIqASQAAICERAJAkkIkPt9Zv/+OJlJBibJTEgyuazP85wnZ87Z55w1k8w3a6+99to6pZRCEAShHaB3tQGCIAgWRJAEQWg3iCAJgtBuEEESBKHdIIIkCEK7QQRJEIR2gwiSIAjtBjdXG9ASmM1mTp8+jZ+fHzqdztXmCIJwEUopiouLiYiIQK9v2A/qFIJ0+vRpIiMjXW2GIAhNcPLkSXr16tXg+U4hSH5+foD2Zv39/V1sjSAIF1NUVERkZKT1u9oQnUKQLN00f39/ESRBaMc0FVKRoLYgCO2GZgnSsmXLiI6OxtPTk7i4OHbu3Nlg2++//55JkyYRHR2NTqdjyZIll7RJTU1lzJgx+Pn5ERISQlJSEllZWc0xTRCEDozTgrRmzRpSUlJYuHAhu3fvJjY2lsTERPLy8uy2Lysro2/fvrzwwguEhYXZbbNlyxbmzJnD9u3b2bhxI9XV1dx4442UlpY6a54gCB0YnbPlR+Li4hgzZgxLly4FtCH3yMhIHnnkEZ566qlGr42Ojmbu3LnMnTu30XZnz54lJCSELVu2MH78+CZtKioqIiAggMLCQokhNQOTyUR1dbWrzRA6MO7u7hgMhgbPO/oddSqoXVVVRWZmJvPnz7ce0+v1JCQkkJGR4cytGqWwsBCA7t272z1fWVlJZWWl9XVRUVGLPbsroZQiJyeHgoICV5sidAICAwMJCwu7rFxApwQpPz8fk8lEaGiozfHQ0FAOHz7cbCPqYzabmTt3LldffTVDhw612yY1NZU//vGPLfK8roxFjEJCQvD29pakUqFZKKUoKyuzhm3Cw8Obfa92N+w/Z84cDhw4wNdff91gm/nz55OSkmJ9bclxaHOqyqD4DAT1a/tnXyYmk8kqRkFBQa42R+jgeHl5AZCXl0dISEij3bfGcEqQgoODMRgM5Obm2hzPzc1tMGDtDMnJyXz66ads3bq10WxODw8PPDw8Lvt5l83aB+HQxzD7awgb5mprnMISM/L29naxJUJnwfK3VF1d3WxBcmqUzWg0MmrUKNLS0qzHzGYzaWlpxMfHN8sA0Fy+5ORk1q5dy6ZNm+jTp0+z79Wm5H6v/cxrme6qK5BumtBStMTfktNdtpSUFKZPn87o0aMZO3YsS5YsobS0lBkzZgAwbdo0evbsSWpqKqAFwg8ePGjdP3XqFHv37sXX15crrrgC0Lppq1at4j//+Q9+fn7k5OQAEBAQYHUF2yVl+drP8vOutUMQOglOC9LkyZM5e/YsCxYsICcnhxEjRrBhwwZroDs7O9tmNu/p06cZOXKk9fXixYtZvHgx1113Henp6QC88cYbAPziF7+wedbbb7/Nfffd56yJbYOpGiq00UDKL7jWFkHoJDQrqJ2cnExycrLdcxaRsRAdHU1TqU4dciWmsvP294VOj06nY+3atSQlJbnalBbjueeeY926dezdu9eldshctuZi6a6BdNmENmflypUEBga22P2eeOIJm9iwq2h3w/4dhtJ6giQektBOqaqqwmg0NtnO19cXX1/fNrCoccRDai6d0ENSSlFWVdPmm7Nd9g0bNnDNNdcQGBhIUFAQv/71rzl27BgA48aN48knn7Rpf/bsWdzd3dm6dSsAZ86cYeLEiXh5edGnTx9WrVpFdHS03YnfjrB//35++ctf4uXlRVBQELNmzaKkpMR6Pj09nbFjx+Lj40NgYCBXX301J06cAOC7777j+uuvx8/PD39/f0aNGsWuXbsafV56ejozZsygsLAQnU6HTqfjueeeA7QQyfPPP8+0adPw9/dn1qxZADz55JMMGDAAb29v+vbty7PPPmszXei5555jxIgR1tf33XcfSUlJLF68mPDwcIKCgpgzZ06rTzESD6m5lJ6r2+8kQe3yahODF3ze5s89+KdEvI2O/ymWlpaSkpLC8OHDKSkpYcGCBdx+++3s3buXqVOnsmjRIl544QXrMPSaNWuIiIjg2muvBbSR4Pz8fNLT03F3dyclJaXByeGO2JKYmEh8fDzffvsteXl5PPDAAyQnJ7Ny5UpqampISkpi5syZvP/++1RVVbFz506rbVOnTmXkyJG88cYbGAwG9u7di7u7e6PPHDduHEuWLGHBggXWqhj1vZvFixezYMECFi5caD3m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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:12:38.382892Z", + "iopub.status.busy": "2024-07-23T13:12:38.382354Z", + "iopub.status.idle": "2024-07-23T13:12:44.970750Z", + "shell.execute_reply": "2024-07-23T13:12:44.969930Z" + }, + "papermill": { + "duration": 6.609813, + "end_time": "2024-07-23T13:12:44.973451", + "exception": false, + "start_time": "2024-07-23T13:12:38.363638", + "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:12:45.013157Z", + "iopub.status.busy": "2024-07-23T13:12:45.012823Z", + "iopub.status.idle": "2024-07-23T13:12:45.034384Z", + "shell.execute_reply": "2024-07-23T13:12:45.033483Z" + }, + "papermill": { + "duration": 0.04408, + "end_time": "2024-07-23T13:12:45.036269", + "exception": false, + "start_time": "2024-07-23T13:12:44.992189", + "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.0009150.0186750.0111270.1171440.2678533.0745230.5762270.0000780.2228020.0808870.1889150.1054830.1979620.0378020.339947
\n", + "
" + ], + "text/plain": [ + " avg_g_cos_loss avg_g_mag_loss avg_loss grad_duration \\\n", + "realtabformer 0.000915 0.018675 0.011127 0.117144 \n", + "\n", + " grad_mae grad_mape grad_rmse mean_pred_loss pred_duration \\\n", + "realtabformer 0.267853 3.074523 0.576227 0.000078 0.222802 \n", + "\n", + " pred_mae pred_mape pred_rmse pred_std std_loss \\\n", + "realtabformer 0.080887 0.188915 0.105483 0.197962 0.037802 \n", + "\n", + " total_duration \n", + "realtabformer 0.339947 " + ] + }, + "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:12:45.073956Z", + "iopub.status.busy": "2024-07-23T13:12:45.073215Z", + "iopub.status.idle": "2024-07-23T13:12:45.371439Z", + "shell.execute_reply": "2024-07-23T13:12:45.370591Z" + }, + "papermill": { + "duration": 0.319344, + "end_time": "2024-07-23T13:12:45.373508", + "exception": false, + "start_time": "2024-07-23T13:12:45.054164", + "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:12:45.413962Z", + "iopub.status.busy": "2024-07-23T13:12:45.413636Z", + "iopub.status.idle": "2024-07-23T13:12:51.765193Z", + "shell.execute_reply": "2024-07-23T13:12:51.764093Z" + }, + "papermill": { + "duration": 6.374288, + "end_time": "2024-07-23T13:12:51.767708", + "exception": false, + "start_time": "2024-07-23T13:12:45.393420", + "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:12:51.807760Z", + "iopub.status.busy": "2024-07-23T13:12:51.807448Z", + "iopub.status.idle": "2024-07-23T13:12:51.822038Z", + "shell.execute_reply": "2024-07-23T13:12:51.821258Z" + }, + "papermill": { + "duration": 0.037418, + "end_time": "2024-07-23T13:12:51.824315", + "exception": false, + "start_time": "2024-07-23T13:12:51.786897", + "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:12:51.861728Z", + "iopub.status.busy": "2024-07-23T13:12:51.861054Z", + "iopub.status.idle": "2024-07-23T13:12:51.866321Z", + "shell.execute_reply": "2024-07-23T13:12:51.865503Z" + }, + "papermill": { + "duration": 0.025833, + "end_time": "2024-07-23T13:12:51.868222", + "exception": false, + "start_time": "2024-07-23T13:12:51.842389", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'realtabformer': 0.7742138428986073}\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:12:51.906976Z", + "iopub.status.busy": "2024-07-23T13:12:51.906686Z", + "iopub.status.idle": "2024-07-23T13:12:52.308258Z", + "shell.execute_reply": "2024-07-23T13:12:52.307302Z" + }, + "papermill": { + "duration": 0.423416, + "end_time": "2024-07-23T13:12:52.310290", + "exception": false, + "start_time": "2024-07-23T13:12:51.886874", + "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:12:52.351166Z", + "iopub.status.busy": "2024-07-23T13:12:52.350868Z", + "iopub.status.idle": "2024-07-23T13:12:52.709575Z", + "shell.execute_reply": "2024-07-23T13:12:52.708585Z" + }, + "papermill": { + "duration": 0.381826, + "end_time": "2024-07-23T13:12:52.711802", + "exception": false, + "start_time": "2024-07-23T13:12:52.329976", + "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:12:52.753473Z", + "iopub.status.busy": "2024-07-23T13:12:52.753165Z", + "iopub.status.idle": "2024-07-23T13:12:52.998571Z", + "shell.execute_reply": "2024-07-23T13:12:52.997660Z" + }, + "papermill": { + "duration": 0.268639, + "end_time": "2024-07-23T13:12:53.000744", + "exception": false, + "start_time": "2024-07-23T13:12:52.732105", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAS8AAAEmCAYAAAAz0RYQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA6xklEQVR4nO3deXhU1f0/8Pe9syaZhayTyQIBQUGRvWBEqrQsSotSqvLDha1qZWmRPFSlSvjypRX9WhFbqTylslirICgUS2QRpQqCIAELSoCEhCWZTPZJJsms9/z+GOaaIdsEkszcO5/X8/CEuXPvnTO5k8+cc+45n8MxxhgIIURi+FAXgBBCrgcFL0KIJFHwIoRIEgUvQogkUfAihEgSBS9CiCRR8CKESBIFL0KIJClDXYDuJggCSkpKoNfrwXFcqItDCLkGYwx1dXVISUkBz7dev4q44FVSUoL09PRQF4MQ0o7Lly8jLS2t1ecjLnjp9XoAvl+MwWAIcWm6jtvtxt69ezFhwgSoVKpQF4d0gki5prW1tUhPTxf/VlsTccHL31Q0GAyyD17R0dEwGAyy/qBHkki7pu1161CHPSFEkih4EUIkiYIXIUSSQhq8vvjiC0yePBkpKSngOA47duxo95gDBw5g2LBh0Gg06Nu3LzZu3Njl5SSEhJ+QBq/6+noMHjwYa9asCWr/wsJC/OxnP8PYsWNx8uRJPPPMM3jiiSewZ8+eLi4pISTchPRu43333Yf77rsv6P3Xrl2L3r1747XXXgMADBgwAAcPHsTrr7+OiRMndlUxCSFhSFJDJQ4fPoxx48YFbJs4cSKeeeaZVo9xOp1wOp3i49raWgC+285ut7tLyhkKd9xxB6xWq/i4rKwMXq8XCoUCSUlJAfuaTCYcOXKku4tIOmDEyFGwWEohMAae48BzQGVFOQRBaHZN5XY9g/27lFTwKi0thclkCthmMplQW1uLxsZGREVFNTtm5cqVWL58ebPte/fuRXR0dJeVtbtdvHgRlZWVzbYLgoDi4uKAbQ6HAzk5Od1VNHIdii9favF6As2vqdyuZ0NDQ1D7SSp4XY8lS5YgKytLfOwfvTthwgRZDVLt1asXtFotAMDtFVBeZgUTBPA8D7PZHLCvyWTCpEmTQlFMEqTU9J7gleqAmld5mRVCC9dUbtfT3zpqj6SCV3JyckDTCACsVisMBkOLtS4A0Gg00Gg0zbarVCpZjVI+fvy4+P9KuxO39uuNslILzGYzrly5EsKSkevx7YncZtvS0tJQXFws+2sa7N+lpMZ5ZWZmYv/+/QHb9u3bh8zMzBCVKPxU2p04WlgFt1cA4KuFVdqd7RxFiPSENHjZ7XacPHkSJ0+eBOAbCnHy5ElcunQJgK/JN2PGDHH/p59+GhcuXMCzzz6LvLw8/PWvf8UHH3yARYsWhaL4Yclic+DQ+Qq4PL7lOD0CQ15pLU4X2yiIEVkJafD65ptvMHToUAwdOhQAkJWVhaFDhyI7OxsAYLFYxEAGAL1798auXbuwb98+DB48GK+99hr+/ve/0zCJJsxGLfokxcA/p1XJcwA4nLfaYbE5Qlo2QjpTSPu87rnnHrS1YHdLo+fvuecenDhxogtLJW3xOg3iYtTwz8dXKXj0T9bDGKWC2agNadlI5/B3BcTrmvflRhJJ9XmRQJV2Z4vNwbQeUVDwvvAlMAaLzSEGLmo+hrfWrmlTbi/Dl+fLI/46SupuIwlksTlw3moHgIBvYa1aCf5q8PIKTNwHQIv7k/DR0jWttDuRV1oLh9sLABCYgIPnK6BR8rjv9pSQlTXUKHhJmL82ZTZqkW+tw+kSGwamGOFweeC5ereRMSDJoIat0Q2TXoN+Jh01H8NY02vqZ7E5kHuxBi6P75qCAXanB5V2VyiKGDYoeElYvE4jfjt/eb4cxwqrAQD1Tg9cXl9fosAYjFFqnLfaYYxSYWCqMWTlJe1rek0BX63L1uhC36QYKBW+2jTPc7gtxYD+yW2nSZY7Cl4yMTDFKP7MvVQtdmbyHAdboxtJBjXVuCTIYnOgrNaFfiYd+Ku3kBkD0mJjoFVH9p9vZL97mai0O+HwCBjTLxHxOg2sdQ6olTwaAHAccKGsHvooBfonh7qkpKOaNiOVV/sxVQqemv+g4CULeaV1yC2qRl+TDulx0TDptVApfHUvxoCaRifqXTwsNgd11EtM02ak8uo1VSt5av6DgpdMMIADquqdcLgF9DPpxEGqAmPoEaWBPkoR8d/UUlFpd4rDW+J1GuRb63DkQiXqnR4AgK3Rjf/deRqTbjejd6IOeaV1ABj6Jxsi6suJgpcM9E82wBilhlbJw1rn6+D1D1LlOQ76KAUGphgj6oMtZRabAycuVSNfq8SYfon4urASOadKxaESLo8XX5yvRGyMGlq1ErlF1QAHGKPUEXWNKXjJSGyMGg6PgPNWO/zzFjgOYIyDw3+bnYQ9s1GLbzngbGkdNEoeRZUNqG34YUAqz3G4KSEK6bFRvjuRJh0MUcqIq1lT8JKBpgMbzUYtbI0u+GddKXiOOnclYOvWrcjOzkZdXR0EBjjcXngFBp4DnB4BXoHBVVcFAHDUVmHL4vuxleMgMAa1goda6esP0+v1WLFiBR588MFQvp1uQcFLBvwBy9bohsPlQe7FajEljiAw5JfVweHyBEwTatqnQkIvOzsbeXl5we3MBNgqrK0+vXTpUgpeRBridRpxIOqV6noUVTRCuFr1cnoEHCusxtmoWkSrVBiWEQtjlIqmCYWZuro6AADP8zAlm+EVGBQ8B49XgMPjq4U5aqsBJoDnFTDGxYv7qJUK8JwvC4sgCOK55I6Cl0z4a1TpsVqkxzXi7as99gwMt6boUVhhx8W6evQ1xYgjs6kpGX6uzZLqv/PocHlwpcoO7spJ9B56F769Yoc+SiGO7QN+yLQaKSh4SVTTPhI/gUGc01hbVSH+XPhAJlxeAWDAOyoFlApe/NY2GiKnj0SKmo7zSo/V4sgV4IuzVhRVO3HfQHNE15wpeElUsH0kTBBQWVYqPr62QWEpiZw+Eqnw17a0Sh4OjyDWkA8XVIADcLSoGhX1vjFfWrUi4sZ3+VHwkqimfST6uESor46+dnoE8BxQV1MJJggAxyPGGAcFz4n9I4AvVU5FWWlE9ZFIhf/uMccxMMaJ2+scHhgAjL0lEd+V1kPJ88i9WAPAN8ZLaD2vpyxR8JK4+EQTlr77HwzLiEX/ZD0sNgcuV9Vj18krGG+w4HO7GT2T9OAYB5eH4a6bEzG6bwKAyOsjkQp/Tcvh8uCstQ6XqxrQL0mHeJ0a7grgthQjbk6JQ22jC4YoFfxpvr0RFr0oeEmcUsFj7IAkcdhDvE6D70tqUN3oAgxAkkGL89YGJOvViNNpAUTWB1xq3FdTGZmNWuw+bcGRgko43QK8TEBpTT2e6gP8/ctCpMTpMapPrDizwhilErPnRgoKXhLHcwiYpFtpd+KMpRZ2h28qSbRaATAX0uOjcUuyEQCj/OdhzCMI4kIpV2oa0eD2otLuRFFFPZjg6+ey2Bzwchz61cfA4WboZ9JhYKoRERa7KHjJTV5pLa5UO8SJ2YxjyEjU4ZZkgzi+yxhF2SXClZLnxWbjXX0TMCjViDxLLZQKDo0OF4A6mI1aDM+Ix6je8QEd+pGGgpeMVNqdOHqhEiW2RqivNg/rGhlidTxMei1iY9QAaHxXOFMpOPGLZXTfRABAvyQ9eifqkKJXwfLdEfyodyzS4qMRGxNZE7GvRasHyYjF5kBxTSMYY+gR7QtU0WrfUlmnS2wAfE3MSP7AS02+tQ4fnbiMIwWVOF/mmxXhdDPkl9VH/DqcVPOSEbNRi5G946DXKNEzVgtUl8PlAfJLa3HOasfZ0lr8clg6+poiO/e5lJwusSGvtB4OpwfRKh6DAfRJ0sEYo4n4GjQFLxmJ12mQGhsDq80lZlJ1eLxwewRU2J1wuxlOl9goeIWhsrIyAL75iWlpaeJsCY8gwONl4DgOn3CAgnmgUKnF69uUxWIJOJfcUfCSCf+o7NpGFxo8XnjqndAD+HHfBKTFOVBudyFRpxYX6iDhxeu9uiajINzw2Dv/ueSOgpdM+EdlJxnUSOuhxX8vVqGPFkgyRiEqSovcomrcltqDal1hSqFQQBAE8DwPs9ks1rzcXgFuLwNjDEoFBxW88EABhYIHmC/Nt4L35fOylvqySigUilC/nW5BwUsmtEoeHMdg0vv6QUqq7IAbMBm0qKtoADigttGF08U2yuMVhpKSklBcXNxiVonX951F7sVqpBs1mBRnxa4qExRKJcABtgYP+iTE4P+N6ol7R92G4uJiJCUlhfCddB8KXhJ1bR+J28vgEQQoeR4KnoPL4wW8bihVavC8L4uEV/Dt48+8GWl9JFIUr9NgypBU6LVK9I7TAqVW/PjmRKjVSoABNY1upMfFRGTnPQUviaI+ksgxonc8RvSOh9vtRk7OKQxK74HUOF3E154peElU0z6ShKRkeAUGt1e4mjmC9+X18rrhgRI8z0HJc+B5Doz5F+WAmFUiUvpIpKjpMmgGje8OY0FZPXiFkoJXqAtAro+/jyQhKRlrdx1Fg8uNM5Za6LVK3JJsQF29C4bKUzin6oPKBgFKBY/RfeORHhcDW6MbZbVOPP2zkSgrLYmYPhIpstgcOHGxBvlRCmT2jgUA3JQUmc3Ea1Hwkjj/6kBaJY+MhBjUNnoAMNTzV7NHMA6xMSqAcaiqd8HhZkgyqNHPpIu4LARSZDZqkR+lQJ3DA2utb0T9ALMBKpUqxCULPQpeEtc0q0Rfkx6ni204b7WjZ3wMqsqBO/omwNwjBg6PEJCZM16nibgsBFLg9gZm/YjXaTAwxYjTJTZoWhiY2rRZGWkoeMmMf8hEkk6DKgB39Imnb2kJ8afEadqf5fAIYIyD8+r6BGcstWKHfdM1OyMNBS+ZsdY5cbmyEfHRvkt75EIFeIUK/ZP1Ed/BKwVNU+L4+R8nxihRCODbyzW4UNmIMf0Sxeeo5kVkgKHB48WlynroAHx72QYGBYxRKgpeEtA0JY6fP0Ou2+0GAOi1StQ1emGxOSI6SwgFL5npn2xAUUU9SqrsuBnA4HQjeIUKZqM2oH8kUj/wUlVpd6K4ytc8zLwpAeX1noisbTVFwUsmmgamjAQdquscgBu4o0+C2Ofl78wHaKVsqbHYHL7xXVcf2xpdsDW60T85cq9lyJMRrlmzBhkZGdBqtRg1ahSOHj3a5v6rV6/GLbfcgqioKKSnp2PRokVwOCI7KRvww8Rsi82B/sl6/PgWXxbOqnrffMZKuxNmo1YcVnG62BZxS2VJmdmoxU1JMQAAa60DuRdrkFtUHdEJCUNa89qyZQuysrKwdu1ajBo1CqtXr8bEiRNx9uzZFgdOvvfee3j++eexfv163HnnnTh37hxmzZoFjuOwatWqELyD8NG04zZep4FBw6PwhO+DXlDhgK3RBWOUGmajVgx0kbZUlpQ1vaYmgxbDevUAwEV00zGkwWvVqlV48sknMXv2bADA2rVrsWvXLqxfvx7PP/98s/2/+uorjB49Go888ggAICMjA9OnT8fXX3/dreUOR02XhW/aP2JrdCPJoIZ/bT/gh0BHg1SlpareJf7fn9++0u7EofwKACziatIhC14ulwvHjx/HkiVLxG08z2PcuHE4fPhwi8fceeedePfdd3H06FGMHDkSFy5cQE5ODh5//PFWX8fpdMLpdIqPa2trAQBut1u8eyN1176P4io7CkprwQOosDXipmQDNAoe5TYPVBBg0PAwJEUHDFKVy+9CDlq7FpZq35fPtmOFGHdrKvok6VBcZceJwgqAA7yC0O45pCDYsocseFVUVMDr9cJkMgVsN5lMyMvLa/GYRx55BBUVFbjrrrvAGIPH48HTTz+N3//+962+zsqVK7F8+fJm2/fu3Yvo6OgbexMh5O/nczgcyMnJEbe7XC4cOnQIX3/9Nez1duhidBg1ahRGjx4NtVqNvCtAXjvnIN2vI9ciraEAed8UiNcx/epPr9sV9DnCWUNDQ1D7Sepu44EDB/DSSy/hr3/9K0aNGoX8/HwsXLgQK1aswNKlS1s8ZsmSJcjKyhIf19bWIj09HRMmTIDBYOiuonc6rVYr/pw0aRIA4OOPP8ZTTz+Fmqoa6G7WQdFDAW+VF0feOIJN/9iE5a++iWlTpyDu6hJoLZ2DhEZb1+KMpRYFZfXoHa/Bxf8eAUu5HQNSYtEnSRf0OaTE3zpqT8iCV0JCAhQKBaxWa8B2q9WK5OTkFo9ZunQpHn/8cTzxxBMAgNtvvx319fV46qmn8MILL4Dnm9881Wg00Gia30pWqVSymTajUqmwc+dOPPTQQ9AN0aHfs/2gSf7hPTtLnbB+YMWiJ2cgI2E77r///hbPQcLDtdciNU4HXqFEYowSFwH8bEh6u9dLytcz2LKHbKiEWq3G8OHDsX//fnGbIAjYv38/MjMzWzymoaGhWYDy56JiLMJ6K5twOByYOXsWdEN0SF+QHhC4AECTrEH6gnTohugwa84sGloiMfE6DQamGsUa8xlLLSrtznaOkr+QjvPKysrCunXrsGnTJpw5cwZz585FfX29ePdxxowZAR36kydPxltvvYXNmzejsLAQ+/btw9KlSzF58uSITqi3detW1FRVw/SwCVwrdxA5noPpIROqK6uxbds2VNqdcHsjN+BLRaXdKY7T8yugBWcBhLjPa9q0aSgvL0d2djZKS0sxZMgQ7N69W+zEv3TpUkBN68UXXwTHcXjxxRdRXFyMxMRETJ48GX/84x9D9RbCwgfbPoLuZl2zGte1NGYNdDfrsH37dgwZOxmeJnenSHhqmjXCkOS7wUTJCH1C3mG/YMECLFiwoMXnDhw4EPBYqVRi2bJlWLZsWTeUTDqsFRVQ9Aiu5sn34FFVXQWzUQtlC32EJLyYjVpxKpB/nBclI/QJefAiN86UkIAzecEtoiHUCFDG+9ZuVClokGq4i9dpoOUEvPPeZnz31aewFhdh48aNmDp1Kh566CHxDmMkoq9eGXj4wamwn7PDWdp2J67T4oT9nB233TmO+kwkYufOnRg3cgD+nP0Mvr5wAJejLuPT7z/FjBkzkJKWgo8//jjURQwZqnlJnMCAW++cAH1sD1g/sCJ9QXqLnfZMYLButaJHXCwenz6N+kwkYOfOnfjFL37R5vCXKVOmYPv2loe/yB3VvCTOKzBcsnnwwso3UXfSjstvXm5WA3NanLj85mXYT9rxzsZNGH6TKWLTqEiFw+HArDk0/KUtVPOSOP/qQT9+9EEMMOsxa84snH/+PHQ368D34OGtEVB/zo7Y+Fjs2LEDkydPDnWRSRC2bt2K6spq9Ptdv3aHv5xfch7btm3r5hKGHgUviWu6etD999+Pkisl2LZtGzZ/sBUXiy5Aa07F1PlTseipGRHduSs1O3bs6PDwl0hDwUtmtFotHnvsMQz68X0oPHEQLG0IxtySDK2WmolSUlVd1eHhL5GG+rxkymTw1bIyb0qg/i0JiouNg7cm+OEvcbFxXVyi8EPBS6b88+D8P4m0TJkypUPDX37xi190U8nCBwUvQsLQQw89hNj4WFg/sIK1kiLVP/wlNj4WDz74YDeXMPQoeBEShrRaLTZt2AR7EMNfNm3YFJE3Y6jDnpAwNXnyZGx67wPMm/tEwPAXoUaAnYa/UPAiJFxV2p3Q3TwKr390BGX//Q8OfboLF4suoNctffD/lj6EBx98MCJrXH4UvAgJUxabA3WNXsQbYzBlzkz8bMovUXjiIHoPvQuDesaHunghR8GLkDBlNmqBXj3EtTg9Hg8K8cMwGCBwpfRIQ8GLkDDVdC1OoOXhL02TFUYaCl6ESFjTldIjTYeHSly4cKErykEIIR3S4eDVt29fjB07Fu+++25EpuEgJJz4m42RmFyyw8ErNzcXgwYNQlZWFpKTk/HrX/8aR48e7YqyEULaYTZq0c+ko2ZjMIYMGYI33ngDJSUlWL9+PSwWC+666y4MHDgQq1atQnl5eVeUkxDSAv+ajpE4+f66pwcplUpMnToVW7duxSuvvIL8/HwsXrwY6enpmDFjBiwWS2eWkxBCAlx38Prmm28wb948mM1mrFq1CosXL0ZBQQH27duHkpISPPDAA51ZTkIICdDhoRKrVq3Chg0bcPbsWUyaNAnvvPMOJk2aJC4O27t3b2zcuBEZGRmdXVZCCBF1OHi99dZbmDNnDmbNmgWz2dziPklJSXj77bdvuHCEENKaDgevffv2oWfPnmJNy48xhsuXL6Nnz55Qq9WYOXNmpxWSEBKo6bSgSOysB66jz+umm25CRUVFs+1VVVXo3bt3pxSKENK2SB7f5dfh4MVYy1kd7XZ7RKfnIKQ7mY1aJBnUsDW6UWlvO1W0XAXdbMzKygIAcByH7OxsREdHi895vV58/fXXGDJkSKcXkNyYM5ZapMbpIrZpIVfxOg2MUWqct9phjFJF5PUNOnidOHECgK/mderUKajVP8xsV6vVGDx4MBYvXtz5JSQ3pKCsHrxCGZEfbrmL5EnZQAeC1+effw4AmD17Nt544w0YDIYuKxTpPDclxUTsh1vurk2ZE2k6fLdxw4YNXVEO0smq6l0AfInrmn7AIzl5HZGXoILX1KlTsXHjRhgMBkydOrXNfT/66KNOKRi5MdZah/jT1CNG3B7JyeuIvAQVvIxGIziOE/9Pwp/JoG2WMhigfhIiH0EFr6ZNRWo2SkNrK2ZHej8JkQ9adJYQifD3Y/p/Rrqgal5Dhw4Vm43tyc3NvaECkeAUFxeLP9PS0gKeExhQXlYGQfBCoVAgKSmpxXNQ2iJpaa0fM1IFFbymTJnSxcUgN8IfyFoiCEKbzwOAXq/v7CKRLtBaP2akCip4LVu2rKvLQW5AampqwGOBAdZSCwRBAM/zMMYngecAtVIB/poKtF6vx4oVK7qxtOR6tdaPGalCvvTZmjVr8Oqrr6K0tBSDBw/GX/7yF4wcObLV/WtqavDCCy/go48+QlVVFXr16oXVq1dj0qRJ3Vjq0GttjqlfWloaiouLYUpOxl///TXqGr0Y2qsHBqbS3WIiD0EFr7i4OJw7dw4JCQmIjY1ts/+rqqoq6BffsmULsrKysHbtWowaNQqrV6/GxIkTcfbs2Rb7aVwuF8aPH4+kpCRs27YNqampuHjxInr06BH0a0YanuMwpl8iDUwlshNU8Hr99dfFfpHXX3896M779qxatQpPPvkkZs+eDQBYu3Ytdu3ahfXr1+P5559vtv/69etRVVWFr776CiqVCgAoY2sQaHgEkaOgglfTxIKzZs3qlBd2uVw4fvw4lixZIm7jeR7jxo3D4cOHWzxm586dyMzMxPz58/Gvf/0LiYmJeOSRR/Dcc89BoVC0eIzT6YTT+UPKkNraWgCA2+2G2+3ulPcSDqrqXb67UFc7c91eAYCveSmn9xkJWrte/u3BXE8pX/Ngy97hPi+FQgGLxdKsWVdZWYmkpCR4vd6gzlNRUQGv1wuTyRSw3WQyIS8vr8VjLly4gM8++wyPPvoocnJykJ+fj3nz5sHtdrd6U2HlypVYvnx5s+179+4NSOsjF4VXf3rdvrFATqcTOTk5oSsQCYp/AWeHw9Hu9dq3b98NnyOcNTQ0BLVfh4NXax3FTqczIE1OVxAEAUlJSfjb3/4GhUKB4cOHo7i4GK+++mqrwWvJkiViLjLAV/NKT0/HhAkTZJUZ49qal0LluxYajUa8mXHGUouCsnpwHANjHG5KisEAs3x+B1LmT+Sp1Wpbvfnkdruxb98+9Bp0Bwornc2uXzDnkAJ/66g9QQevP//5zwB8yQj//ve/Q6fTic95vV588cUX6N+/f9AFTEhIgEKhgNVqDdhutVqRnJzc4jFmsxkqlSqgiThgwACUlpbC5XK1GDw1Gg00mub9PSqVSuw3kwNTDxVMPWLErBGKq2MiOI4T32dqnA68QgmtkofDI8Bs1MrqdyAX7V0Tc6wOSrW2zesn5esabNmDDl6vv/46AF/Na+3atQEBRK1WIyMjA2vXrg26gGq1GsOHD8f+/fvFQbCCIGD//v1YsGBBi8eMHj0a7733njh+CQDOnTsHs9nc5bU+qfBnjfAKvhqy2yug0u4M6LCPjVFTB76ExcWoaYQ9OhC8Cgt9vSljx47FRx99hNjY2Bt+8aysLMycORMjRozAyJEjsXr1atTX14t3H2fMmIHU1FSsXLkSADB37ly8+eabWLhwIX7zm9/g/PnzeOmll/Db3/72hssiF/7hEP6al9vL8OX5cnG4hD8dDgUvInUd7vPyZ1TtDNOmTUN5eTmys7NRWlqKIUOGYPfu3WIn/qVLlwKWWEtPT8eePXuwaNEiDBo0CKmpqVi4cCGee+65TiuT1PmHRfBXh7PwHFDn8ASM86LxXkQOONbeUO1rzJkzp83n169ff0MF6mq1tbUwGo2w2Wyy6rC/ln+EvTklBXuPfh/R6/tJQdOxk6mpqRAY4BUYOA4QBAaPIMBWVQkwARzHIzYhEf4jlAoePOebaC8IAlJTU3HlypXQvJFOEOzfaIdrXtXV1QGP3W43Tp8+jZqaGvzkJz/peElJl+I5DmajVlzfjwJY+GtvIj0goMLaekaQSJlo3+HgtX379mbbBEHA3LlzcdNNN3VKoUjnor4uaWmt5lVTWQ4mCOB4HvGJpmY1LyCyJtp3ysRsnueRlZWFe+65B88++2xnnJJ0IurrCn/B9N74uwJSzGZJNws7S6dllSgoKIDH4+ms05FO5K9tUdORyEmHg1fT0eqA7xvDYrFg165dAXMgSXihpiORmw4HL//K2X48zyMxMRGvvfZau3ciSehQ05HITUjHeZHO03Qx2ZZqVtR0JHIT8kyqpHNYbA6cuFSNfK0SY/olitsFxnC62CYOlzh4vhxur4D7BprR1xQZt9SJPNHSZzJhNmqh1ypR1+gVa1eA73b7eatdrJW5vQKKKhpwusQWwtIScuOo5iUjiXotEvUsoF+LMSDJoBabk/cNNON0iQ0DUyiXPZE2Cl4yYbE5UFbrRD+TLqA/y8sYjFE/ZJHoa9JTc5HIQqc1G69cuYKnnnqqs05HOshs1KKfSdfsbqKS5+gOI5GlTgtelZWVePvttzvrdKQNlXYnThfbUGn/ITd/vE6DganGZncRFTwHi80RsC8hckDNRglqacBpa0Ml/B32Tfcl0uK/tkLHEsDIHgUvCWppwGlrI+gVPNdic5JIx7XZcYkPBS8JamkdxtZG0PMch4GpRrGpSXm9pMds1MLW6Ia/4tVSau9IFHTwmjp1apvP19TU3GhZyA1ob2FZmtsoXfE6DYxRDnivRi+PwGCxOSL+OgYdvIzGtscFGY1GzJgx44YLRLoGzW2UNrNRC+XVpF10B9kn6OC1YcOGriwH6WLt1cxIeIvXaaBS+AYHqBQ8XUvQ9CBCiEQFXfMKNt1NuC/AIUftZZQgRI6CDl4bN25Er169MHTo0KBS1pLu07Qz3v+YxgTJh//LyeMVAAAuj4AdJ65gYIoxoqd6BR285s6di/fffx+FhYWYPXs2HnvsMcTFxXVl2UiQmnbG+1PjuDxCiEtFOov/y8nTZBX0Y4W+VbwiOXgF3ee1Zs0aWCwWPPvss/j444+Rnp6Ohx9+GHv27KGaWIg1nRrkT41D4xnlwz9v1X+3UaXg8aPesRGfGaRDHfYajQbTp0/Hvn378P333+O2227DvHnzkJGRAbvd3v4JSJeL12kwpl8iVAqu/Z2JJPi/nJRX7zZyHDCmX2JE17qAG7jbyPM8OI4DYwxer7czy0Suk38UPQDxtjqRH/8g1UjXoU+40+nE+++/j/Hjx+Pmm2/GqVOn8Oabb+LSpUvQ6XRdVUYSJH/fCH2w5aGl7CEADVL1C7rDft68edi8eTPS09MxZ84cvP/++0hISOjKspEg+e9GaZV8u5OwaViFdLQ2pYsGqfoEHbzWrl2Lnj17ok+fPvjPf/6D//znPy3u99FHH3Va4Uhw/B/yfiYdBqa23YlLcxylg6Z0tS3o4DVjxgxwHHUCh6NrP+SVdifc3sChEh2pnZHwQFO62tahQaokPF37IbfYHOKYIP/SZ7ZGF8pqXUHVzkj4aekLKdJRPi8ZapqBwJ9JNcmgoRqXhDX9Qmqq0u5EXmkdAIb+yYaIqqlR8JKhphkImmZSjaQPttw0/UJqymJzILeoGuAQsEpUJKDgJXP+TKpE2pp+ITVlNmoxLCMWAIu4WjUFL5mhxRoiS7xOg9F9I6e21RQNw5YZWqyBRAqqecmMv+mgaKF/hBA5oeAlM/5hEzyNySMyFxbNxjVr1iAjIwNarRajRo3C0aNHgzpu8+bN4DgOU6ZM6doCEtKNKu1OHMqvwKH8clrpvA0hD15btmxBVlYWli1bhtzcXAwePBgTJ05EWVlZm8cVFRVh8eLFGDNmTDeVlJCu5Z+InVdai9yiauRerKFJ9m0IefBatWoVnnzyScyePRu33nor1q5di+jo6DZz4Xu9Xjz66KNYvnw5+vTp042lJaTr/DDvlMOwjFgM69Uj4oY/dERIg5fL5cLx48cxbtw4cRvP8xg3bhwOHz7c6nH/+7//i6SkJPzqV7/qjmIS0i38GVP7J+sxum8CRvdNjKhBpx0V0g77iooKeL1emEymgO0mkwl5eXktHnPw4EG8/fbbOHnyZFCv4XQ64XT+0G9QW1sLAHC73XC73ddXcAnwp+ZmjMn6fcqJQcPDkBQNAC1es0i5psG+N0ndbayrq8Pjjz+OdevWBZ1LbOXKlVi+fHmz7Xv37kV0dHRnFzFs+AO20+lETk5OiEtDOkOkXNOGhoag9gtp8EpISIBCoYDVag3YbrVakZyc3Gz/goICFBUVYfLkyeI2QfDNtFcqlTh79ixuuummgGOWLFmCrKws8XFtbS3S09MxYcIEGAyGznw7YUWj0Yg/J02aFOLSkBtRVe+CtdYBlToyrqm/ddSekAYvtVqN4cOHY//+/eJwB0EQsH//fixYsKDZ/v3798epU6cCtr344ouoq6vDG2+8gfT09GbHaDQa8Q+5KZVKBZVK1TlvJAz5c69xHCfr9xkJyusbUFDxw5QvuV/TYN9byJuNWVlZmDlzJkaMGIGRI0di9erVqK+vx+zZswH4kiCmpqZi5cqV0Gq1GDhwYMDxPXr0AIBm2wmRC62SB8cx0LDjQCEPXtOmTUN5eTmys7NRWlqKIUOGYPfu3WIn/qVLl8DzIR/RISmUuE5eHB4BjHGg2aqBQh68AGDBggUtNhMB4MCBA20eSxlem7PYHGLwouwS0kfzVVsWFsGLdC6tkoc/ZlF2Cenzj/WiaxmI2mMy5PAI8M/Lpm9reWgtDXQko+AlQ2ajVsy6Sdkl5KG1NNCRjIKXDLWWMphIF13T5ui3QQiRJApeEcCfaoVyQ8mD2yvQtQQFL1m6dpyXP9UK5YaSB4/A6FqChkrI0rV3pvzjhCg3lDwoeY6uJSh4ydK1d6b8ee2JPKgUPF1PULNRlujOFIkE9AknhEgSNRsjhH8lba2Sh8MjwGzUUtODSBoFrwiRV1qH3KJqxMaoEKPx5Uui4CUt/kn2NNneh4JXxGAAB8Tr1EiPi6G7VRLkn5hNE7R9KHjJiL9p2FJg6p9sgDFKTc1FCfNPsqfJ9j4UvGTkh3X/mqPhEtLnn2RPk+19KHjJCA1GJZGEgpeM+GtWFpuDOnWJ7NE4L5nxNx2pU5fIHdW8ZIbynZNIQTUvmYnXaTAw1Sh26gqMUTocIksUvGTGn7vLczUljssj4PO8MuSV1lJeL4mjQaqBqNkoM/4+L39KHIEx+Bb84wKGUtCwCemhQaqBKHjJjL/Py58SR63gMXZAUsDwCRpKIU00SDUQBS+Z8Q9GVV5NiaNU8BiYagx4nhA5oOAlEyNGjECJpRRegUHBc7CWWgAAFosFaWlpAfsmJyfjm2++CUUxyQ2gZmMgCl4yUVpaCktJcbPtgiCguLj5diI91GwMRMFLJpKTkyEwiDWvivIyeL1eKBQKJCUlNduXSA/NbQxEwUsmrm0Gut1u5OTkYNKkSVCpVCEqFSFdh8Z5EUIkiYIXIUSSKHgRQiSJghchRJIoeBFCJImCFyFEkih4EUIkiYIXIUSSaJAqIWGsteXs8q11OF1iQ1qPKGjVyohc0o6CFyFhrLXl7E6X2HCssBqXjQ1Ii40BEHkZQ8Ki2bhmzRpkZGRAq9Vi1KhROHr0aKv7rlu3DmPGjEFsbCxiY2Mxbty4NvcnRMrMRi36mXTNal4DU4z4Ue9YZPaJb/H5SBDy4LVlyxZkZWVh2bJlyM3NxeDBgzFx4kSUlZW1uP+BAwcwffp0fP755zh8+DDS09MxYcIEypxAZMm/JsG1taq+Jj2mDE3DiN7xLT4fEViIjRw5ks2fP1987PV6WUpKClu5cmVQx3s8HqbX69mmTZuC2t9mszEAzGazXVd5pcLlcrEdO3Ywl8sV6qKQTpKamsoAsNTU1FAXpUsF+zca0j4vl8uF48ePY8mSJeI2nucxbtw4HD58OKhzNDQ0wO12Iy4ursXnnU4nnM4fFpyora0F4Mu64Ha7b6D04c3/3uT8HiMNu7rwBmNM1tc12PcW0uBVUVEBr9cLk8kUsN1kMiEvLy+oczz33HNISUnBuHHjWnx+5cqVWL58ebPte/fuRXR0dMcLLTH79u0LdRFIJ/F/CTudTuTk5IS4NF2noaEhqP0kfbfx5ZdfxubNm3HgwAFotS13WC5ZsgRZWVni49raWrGfzGAwdFdRu53b7ca+ffswfvx4yuclExqNRvw5adKkEJem6/hbR+0JafBKSEiAQqGA1WoN2G61WtvN9vmnP/0JL7/8Mj799FMMGjSo1f00Go140ZtSqVQR8UcdKe8zEnBXM6hyHCfraxrsewvp3Ua1Wo3hw4dj//794jZBELB//35kZma2etz//d//YcWKFdi9ezdGjBjRHUUlhISZkDcbs7KyMHPmTIwYMQIjR47E6tWrUV9fj9mzZwMAZsyYgdTUVKxcuRIA8MorryA7OxvvvfceMjIyUFpaCgDQ6XTQ6XQhex+EkO4V8uA1bdo0lJeXIzs7G6WlpRgyZAh2794tduJfunQJPP9DBfGtt96Cy+XCgw8+GHCeZcuW4X/+53+6s+iEdLmWpgc1uDz45JQF/ZJ0cHiEiJwaBIRB8AKABQsWYMGCBS0+d+DAgYDHRUVFXV8gQsJES9ODXB6GQ+cr4PR4wZivH4yCFyEkrPhrXE1rXmolh9H9EgJqXpGIghchYarS7sTRwkpcqmxAbLQKDrcXAKDgOOSX1SFRp8aI3vEhLmXoUPAiJExZbA4cyq9AQVk9esSo4PIIAACnR8BXBVUAQMGLEBJeRowYgRJLKVweLzyCb1qQvaYCAFBfU4FPXpiCz5Q8XlHwSE5ObrbocCSg4EVIGCotLYWlpOVMKYIgwFZhbfG5SELBi5Aw1HSGicAAr8BQXVkOr9cLhUKBpKSkFveNJBS8CAlDLTUD3W43cnJyMGnSJFlPDwpWyJMREkLI9aDgRQiRJApehBBJouBFCJEkCl6EEEmi4EUIkSQKXoQQSYq4cV7+FViCzZMtVW63Gw0NDaitraUxQTIRKdfU/7fp/1ttTcQFr7q6OgBAenp6iEtCCGlLXV0djEZjq89zrL3wJjOCIKCkpAR6vV5c0ECO/KskXb58WdarJEWSSLmmjDHU1dUhJSUlIIvytSKu5sXzPNLS0kJdjG5jMBhk/UGPRJFwTduqcflRhz0hRJIoeBFCJImCl0xpNBosW7asxQV3iTTRNQ0UcR32hBB5oJoXIUSSKHgRQiSJghchRJIoeIVIUVEROI7DyZMnu+U8hw4dwu233w6VSoUpU6bc0GsSEg4oeIWJAwcOgOM41NTUdMn5s7KyMGTIEBQWFmLjxo1d8hqkuXvuuQfPPPNMqIshCrfy3AgKXtfB5XKFuggdVlBQgJ/85CdIS0tDjx49rusc3fm+GWPweDzd9nrhTIqft27BSLvuvvtuNn/+fLZw4UIWHx/P7rnnHnbq1Cl27733spiYGJaUlMQee+wxVl5eLh7zySefsNGjRzOj0cji4uLYz372M5afny8+X1hYyACwEydOiP9v+m/mzJkdOs/777/PMjMzmUajYbfddhs7cOBAwPNN/23YsIExxtiBAwfYj370I6ZWq1lycjJ77rnnmNvtbvN9f/755wwA2717NxsyZAjTarVs7NixzGq1spycHNa/f3+m1+vZ9OnTWX19vXgur9fLXnrpJZaRkcG0Wi0bNGgQ27p1q/i8/7w5OTls2LBhTKVSsc8//7wzL2O3mzlzZrPffX5+PpszZ474e7j55pvZ6tWrmx33wAMPsD/84Q/MbDazjIwMxhhjhw4dYoMHD2YajYYNHz6cbd++XfwM+bX1uWypPIWFhd316+h0FLyCcPfddzOdTsd+97vfsby8PHbkyBGWmJjIlixZws6cOcNyc3PZ+PHj2dixY8Vjtm3bxj788EN2/vx5duLECTZ58mR2++23M6/XyxgLDF4ej4d9+OGHDAA7e/Yss1gsrKampkPnSUtLY9u2bWPff/89e+KJJ5her2cVFRXM4/Ewi8XCDAYDW716NbNYLKyhoYFduXKFRUdHs3nz5rEzZ86w7du3s4SEBLZs2bJW33deXp4YZO644w528OBBlpuby/r27cvuvvtuNmHCBJabm8u++OILFh8fz15++WXxXH/4wx9Y//792e7du1lBQQHbsGED02g0YpD1n3fQoEFs7969LD8/n1VWVnb1pe1SNTU1LDMzkz355JPMYrEwi8XCHA4Hy87OZseOHWMXLlxg7777LouOjmZbtmwRj5s5cybT6XTs8ccfZ6dPn2anT59mNpuNxcXFsccee4x99913LCcnh918880Bwau6urrNz2VL5fF4PKH41XQKCl5BuPvuu9nQoUPFxytWrGATJkwI2Ofy5cti8GlJeXk5A8BOnTrFGAsMXoz98MdbXV3dZllaO0/TQOF2u1laWhp75ZVXxG1Go1GscTHG2O9//3t2yy23MEEQxG1r1qxhOp1ODIzXvu+m5fz000/FbStXrmQAWEFBgbjt17/+NZs4cSJjjDGHw8Gio6PZV199FXCuX/3qV2z69OkB592xY0eb719q7r77brZw4cI295k/fz775S9/KT6eOXMmM5lMzOl0itveeustFh8fzxobG8Vt69atC/gMBfO5DKY8UkF9XkEaPny4+P9vv/0Wn3/+OXQ6nfivf//+AHx9SwBw/vx5TJ8+HX369IHBYEBGRgYA4NKlSx163WDPk5mZKf5fqVRixIgROHPmTKvnPXPmDDIzMwPSAo0ePRp2ux1Xrlxp8X03NWjQIPH/JpMJ0dHR6NOnT8C2srIyAEB+fj4aGhowfvz4gN/ZO++8I/6+/EaMGNFqmeVizZo1GD58OBITE6HT6fC3v/2t2fW8/fbboVarxcdnz57FoEGDoNVqxW0jR44MOCaYz6WcRFxKnOsVExMj/t9ut2Py5Ml45ZVXmu1nNpsBAJMnT0avXr2wbt06pKSkQBAEDBw4sMOdr511nuvV9H031TSTJ8dxzTJ7chwHQRAA+H5fALBr1y6kpqYG7HftPL3WXk8uNm/ejMWLF+O1115DZmYm9Ho9Xn31VXz99dcB+13P7yGYz6WcUPC6DsOGDcOHH36IjIwMKJXNf4WVlZU4e/Ys1q1bhzFjxgAADh482OY5/d+yXq/3us5z5MgR/PjHPwYAeDweHD9+HAsWLGj19QYMGIAPP/wQjDGx9nXo0CHo9fpOz3d26623QqPR4NKlS7j77rs79dzhTq1WB1zTQ4cO4c4778S8efPEbcHUim655Ra8++67cDqdYsA/duxYwD7tfS5bKo+UUbPxOsyfPx9VVVWYPn06jh07hoKCAuzZswezZ8+G1+tFbGws4uPj8be//Q35+fn47LPPkJWV1eY5e/XqBY7j8O9//xvl5eWw2+0dOs+aNWuwfft25OXlYf78+aiursacOXNafb158+bh8uXL+M1vfoO8vDz861//wrJly5CVldVm9srrodfrsXjxYixatAibNm1CQUEBcnNz8Ze//AWbNm3q1NcKNxkZGfj6669RVFSEiooK9OvXD9988w327NmDc+fOYenSpc2CUEseeeQRCIKAp556CmfOnMGePXvwpz/9CQDEL5/2PpctlcdfO5YiCl7XISUlBYcOHYLX68WECRNw++2345lnnkGPHj3A8zx4nsfmzZtx/PhxDBw4EIsWLcKrr77a5jlTU1OxfPlyPP/88zCZTFiwYEGHzvPyyy/j5ZdfxuDBg3Hw4EHs3LkTCQkJbb5eTk4Ojh49isGDB+Ppp5/Gr371K7z44os39LtpzYoVK7B06VKsXLkSAwYMwL333otdu3ahd+/eXfJ64WLx4sVQKBS49dZbkZiYiIkTJ2Lq1KmYNm0aRo0ahcrKyoBaWGsMBgM+/vhjnDx5EkOGDMELL7yA7OxsABD7wdr7XLZUno72wYYTSolDiET985//xOzZs2Gz2RAVFRXq4nQ76vMiRCLeeecd9OnTB6mpqfj222/x3HPP4eGHH47IwAVQ8CJEMkpLS5GdnY3S0lKYzWY89NBD+OMf/xjqYoUMNRsJIZJEHfaEEEmi4EUIkSQKXoQQSaLgRQiRJApehBBJouBFutSsWbPAcZw4edtkMmH8+PFYv359h6ambNy48bozwN6IWbNmUc7/MEXBi3S5e++9FxaLBUVFRfjkk08wduxYLFy4ED//+c8p1TO5fiHNJkZkz5/S+Fr79+9nANi6desYY4y99tprbODAgSw6OpqlpaWxuXPnsrq6OsbYD4kKm/7zZ3x955132PDhw5lOp2Mmk4lNnz6dWa1W8XWqqqrYI488whISEphWq2V9+/Zl69evF5+/dOkSe+ihh5jRaGSxsbHs/vvvF1MjL1u2rNnrSj01tZxQzYuExE9+8hMMHjwYH330EQCA53n8+c9/xnfffYdNmzbhs88+w7PPPgsAuPPOO7F69WoYDAZYLBZYLBYsXrwYAOB2u7FixQp8++232LFjB4qKijBr1izxdZYuXYrvv/8en3zyCc6cOYO33npLnLDudrsxceJE6PV6fPnllzh06BB0Oh3uvfdeuFwuLF68GA8//LBYc7RYLLjzzju79xdFWhfq6EnkrbWaF2OMTZs2jQ0YMKDF57Zu3cri4+PFxxs2bGBGo7Hd1zt27BgDINbaJk+ezGbPnt3ivv/4xz+apcJ2Op0sKiqK7dmzp93yk9CimhcJGdYkEeKnn36Kn/70p0hNTYVer8fjjz+OyspKNDQ0tHmO48ePY/LkyejZsyf0er2Y7NCf6mXu3LnYvHkzhgwZgmeffRZfffWVeOy3336L/Px86PV6MW1yXFwcHA6HLNMmyw0FLxIyZ86cQe/evVFUVISf//znGDRoED788EMcP34ca9asAdD2moX19fWYOHEiDAYD/vnPf+LYsWPYvn17wHH33XcfLl68iEWLFqGkpAQ//elPxSan3W7H8OHDcfLkyYB/586dwyOPPNLF757cKMoqQULis88+w6lTp7Bo0SIcP34cgiDgtddeE5PmffDBBwH7t5S+OC8vD5WVlXj55ZeRnp4OAPjmm2+avVZiYiJmzpyJmTNnYsyYMfjd736HP/3pTxg2bBi2bNmCpKQkGAyGFsspp7TJckM1L9LlnE4nSktLUVxcjNzcXLz00kt44IEH8POf/xwzZsxA37594Xa78Ze//AUXLlzAP/7xD6xduzbgHBkZGbDb7di/fz8qKirQ0NCAnj17Qq1Wi8ft3LkTK1asCDguOzsb//rXv5Cfn4/vvvsO//73vzFgwAAAwKOPPoqEhAQ88MAD+PLLL1FYWIgDBw7gt7/9rbiCUkZGBv773//i7NmzqKiogNvt7p5fGmlfqDvdiLw1XaVZqVSyxMRENm7cOLZ+/XpxfUjGGFu1ahUzm80sKiqKTZw4kb3zzjvN1rF8+umnWXx8fMBQiffee49lZGQwjUbDMjMz2c6dO5utZThgwAAWFRXF4uLi2AMPPMAuXLggntNisbAZM2awhIQEptFoWJ8+fdiTTz7JbDYbY4yxsrIyNn78eKbT6WioRJihfF6EEEmiZiMhRJIoeBFCJImCFyFEkih4EUIkiYIXIUSSKHgRQiSJghchRJIoeBFCJImCFyFEkih4EUIkiYIXIUSSKHgRQiTp/wPEUFqpHjr7pQAAAABJRU5ErkJggg==", + "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:12:53.042697Z", + "iopub.status.busy": "2024-07-23T13:12:53.042377Z", + "iopub.status.idle": "2024-07-23T13:12:53.349775Z", + "shell.execute_reply": "2024-07-23T13:12:53.348806Z" + }, + "papermill": { + "duration": 0.33048, + "end_time": "2024-07-23T13:12:53.351895", + "exception": false, + "start_time": "2024-07-23T13:12:53.021415", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAASIAAAEmCAYAAADGL52gAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABKHUlEQVR4nO3dd3hUVfrA8e+dSWbSE2pISEIvgQDSgqh0EFBQ13VVRKStioKusrgC64osKri6u/wUBWWlWBAVLKwiLh1BSug1SEIgCTUQ0pPJlPP74zKTGVLIJFMScj7PM4/kzp17z4yZN6e+RxFCCCRJkrxI4+0CSJIkyUAkSZLXyUAkSZLXyUAkSZLXyUAkSZLXyUAkSZLXyUAkSZLXyUAkSZLX+Xi7ANVhsVg4f/48wcHBKIri7eJIknQDIQS5ublERkai0ZRf76nVgej8+fNER0d7uxiSJN1EWloaUVFR5T5fqwNRcHAwoL7JkJAQL5dGkqQb5eTkEB0dbfuulqdWByJrcywkJEQGIkmqwW7WdSI7qyVJ8joZiCRJ8joZiCRJ8rpa3UdUGUIITCYTZrPZ20WRJJfy9fVFq9V6uxgucUsHouLiYi5cuEBBQYG3iyJJLqcoClFRUQQFBXm7KNV2ywYii8VCSkoKWq2WyMhIdDqdnPQo3TKEEGRkZJCenk6bNm1qfc3olg1ExcXFWCwWoqOjCQgI8HZxJMnlGjVqxJkzZzAajS4JRGaLYMGmU6zck8bkga15/PZmLihl5dzyndUVTSuXpNrM1TX83CIjn+1K5UJOEQu3JLv02jcjv6WSJAFQbLLwUI8oGgfreaZ/K4/e+5ZtmkmS5ByDycI9cRHc1yWS2AjPrlSQNaI64syZMyiKwsGDBz1ynR07dtCpUyd8fX154IEHqnXPumrLli0oikJWVpZH7ldstgBqX5GnyUBUR7n7l3zq1KncdtttpKSksGzZMrfcQ3KtYpMaiIRQR+U8SQaiWqC4uNjbRXBacnIyAwcOJCoqirCwsCpdw5Pv2zrx1dVqy/87i0VgMpcEH09XimQgqoH69+/PlClTeOGFF2jYsCFDhw7l6NGjDB8+nKCgIMLDwxkzZgxXrlyxvWbdunXcddddhIWF0aBBA0aMGEFyctkjH2fOnGHAgAEA1KtXD0VRGDdunFPXSUxM5I477sDPz4+4uDi2bt1qu7aiKFy9epUJEyagKIqtRrR161bi4+PR6/VEREQwffp0hy9/We/bWnP7+eef6dq1K/7+/gwcOJDLly/z008/ERsbS0hICI899pjDxFWLxcLcuXNp0aIF/v7+dOnShVWrVtmet173p59+onv37uj1erZv337T/zevv/46jRs3Jjg4mD/+8Y9Mnz6d2267zfb8uHHjeOCBB3jjjTeIjIykXbt2AHz66af06NGD4OBgmjRpwmOPPcbly5cdrr127Vratm2Lv78/AwYM4MyZMzctj6tYm2VWHm+eiVosOztbACI7O7vUc4WFheL48eOisLDQCyWrnn79+omgoCDx0ksvicTERLFr1y7RqFEjMWPGDHHixAmxf/9+MWTIEDFgwADba1atWiVWr14tTp06JQ4cOCBGjhwpOnXqJMxmsxBCiJSUFAGIAwcOCJPJJFavXi0AcfLkSXHhwgWRlZXl1HWioqLEqlWrxPHjx8Uf//hHERwcLK5cuSJMJpO4cOGCCAkJEfPnzxcXLlwQBQUFIj09XQQEBIhnn31WnDhxQnz77beiYcOGYtasWeW+78TERLF582YBiNtvv11s375d7N+/X7Ru3Vr069dP3H333WL//v1i27ZtokGDBmLevHm2a73++uuiffv2Yt26dSI5OVksXbpU6PV6sWXLFiGEsF23c+fO4n//+59ISkoSV69erfD/y2effSb8/PzEkiVLxMmTJ8Xs2bNFSEiI6NKli+2csWPHiqCgIDFmzBhx9OhRcfToUSGEEB9//LFYu3atSE5OFjt37hS9e/cWw4cPt70uNTVV6PV6MXXqVJGYmCg+++wzER4eLgBx7dq1Msvjyt/xrIJicTgty/YoLDZV+5pCVPwdtScDUQ3Ur18/0bVrV9vPc+bMEXfffbfDOWlpabZAUpaMjAwBiCNHjgghHAORECVfxPJ+yW92HfsvvdFoFFFRUeKtt96yHQsNDRVLly61/Txz5kzRrl07YbFYbMfef/99ERQUZAtyN75v+3Ju2LDBdmzu3LkCEMnJybZjTz/9tBg6dKgQQoiioiIREBAgfv31V4drTZw4UYwaNcrhut99912F799er169xOTJkx2O3XnnnaUCUXh4uDAYDBVeKyEhQQAiNzdXCCHEjBkzRIcOHRzOefnllz0WiC7lFDoEorwiY7WvKUTlA5FsmlXSZ7vOcue8TXy2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CL9SgWjq1KnMmTOHwMBApk6dWuG5//rXvyp9848//rjS50qSVD4hBEaz6yczWmk1CmaLGojyDOq+hgG+WpfkxIZKBqIDBw5gNBpt/y6PTJImSd5RbLYghJqywz01IvW/Zotg4ZZkvt6bzuSBrRh3RwuXXL9SgWjz5s1l/luSpJrBXf1DVhq7VCBf700nI8/AR1tPuywQuafUkiR5lDvWmNmzz9L4hx5RNArS81S/li67fqVqRNbNFSvjm2++qXJhJEmqGutkRnfViOxzEt3TKYLhcRG0axLssutXqtT2yypCQkLYuHEje/futT2/b98+Nm7caNuEUZIkz3J308za/euunESVqhFZN1cEePnll3n44YdZtGiRbfsgs9nMs88+K2c6S5KXFLtor/vyuDtLo9OlXrJkCdOmTXPYw0yr1TJ16lSWLFni0sJJklQ57pxDBO5fge90qU0mE4mJiaWOJyYmYnFndm1JkspktB+6d1NnteLmdLFOz6weP348EydOJDk5mfj4eAB2797NvHnzGD9+vMsLKElSxazNMl+txm1z+dydpdHpQPTOO+/QpEkT/vnPf9rSgURERPDSSy/x5z//2eUFlCSpYu7uqIaSppm7+ogUUY11/dYMid7qpM7JySE0NJTs7GzZUS7VWZdyiricY6B+kI6mYf5uuUdukZEzVwrw12koMqpNwfYRwfjepClY2e9olRe9gvcCkCRJJdw9mRHsszS65/pVCkSrVq3iq6++IjU1leLiYofn9u/f75KCSZJUOQaTupeZW5tmbu4jcrrk7777LuPHjyc8PJwDBw4QHx9PgwYNOH36tNyPTJK8wODmOURgt8liTZlH9MEHH/DRRx/x3nvvodPp+Mtf/sL69et5/vnnyc7OdkcZJUkqh8lsse1J786mmbVGpKaLdf31nS55amoqd9xxBwD+/v7k5uYCMGbMGL744gvXlk6SpApZ15j5aBWX5QYqixsvrV7f2Rc0adKEzMxMQM3SaN3LLCUlxW2JtSVJKpsnhu6hJF2suzhd+oEDB7JmzRpAndz44osvMmTIEB555JEy9zuTJMl9PDFiZuWOXNVWTo+affTRR7alHJMnT6ZBgwb8+uuv3HfffTz99NMuL6AkSeXzREe1ldphXQNmVptMJt58800mTJhAVFQUoO5z9uijj7qlcJIkVaxkU0XX7mVWlhsr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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.021254, + "end_time": "2024-07-23T13:12:53.393620", + "exception": false, + "start_time": "2024-07-23T13:12:53.372366", + "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": 799.415854, + "end_time": "2024-07-23T13:12:56.244667", + "environment_variables": {}, + "exception": null, + "input_path": "eval/iris/realtabformer/3/mlu-eval.ipynb", + "output_path": "eval/iris/realtabformer/3/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/3", + "path_prefix": "../../../../", + "random_seed": 3, + "single_model": "realtabformer" + }, + "start_time": "2024-07-23T12:59:36.828813", + "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/3/model.pt b/iris/realtabformer/3/model.pt new file mode 100644 index 0000000000000000000000000000000000000000..cfdf1d7b56ebe96b6d091cff265a422392dff247 --- /dev/null +++ b/iris/realtabformer/3/model.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04df91bb9bd0312f0fea3c99c211c74f8384f90d3d3d2fab0d55864cc30f9352 +size 5937089 diff --git a/iris/realtabformer/3/params.json b/iris/realtabformer/3/params.json new file mode 100644 index 0000000000000000000000000000000000000000..e2772763438c022a440e8056c3c96ab80af1e383 --- /dev/null +++ b/iris/realtabformer/3/params.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93f4067dc41f38d7dee1638127bed1a3069508a4d882394f1ec70bb6e1ec4d8c +size 1924 diff --git a/iris/realtabformer/3/pred/error.csv b/iris/realtabformer/3/pred/error.csv new file mode 100644 index 0000000000000000000000000000000000000000..03f1ffbcda52c8796b6612002b123e93eddcba4a --- /dev/null +++ b/iris/realtabformer/3/pred/error.csv @@ -0,0 +1,201 @@ +,realtabformer +0,0.14790453 +1,0.096354365 +2,-0.01254344 +3,-0.042875707 +4,0.1091903 +5,0.33746502 +6,-0.008164287 +7,-0.1144225 +8,0.11803271 +9,-0.09141207 +10,0.0046195984 +11,0.03926003 +12,0.20766826 +13,-0.09000814 +14,0.06648427 +15,0.021729946 +16,0.1251473 +17,0.15130264 +18,0.045487046 +19,-0.09892225 +20,0.13465507 +21,0.3631881 +22,-0.043609142 +23,-0.09670234 +24,0.10875513 +25,0.15157253 +26,-0.0069352984 +27,-0.048915863 +28,0.103629336 +29,0.12024921 +30,0.042390704 +31,-0.012013555 +32,0.21346141 +33,0.1846528 +34,-0.09189862 +35,-0.06970239 +36,0.13421892 +37,0.21903604 +38,0.06784642 +39,-0.12119192 +40,-0.06744641 +41,0.02575928 +42,-0.09123087 +43,0.07453245 +44,0.14862902 +45,0.09001726 +46,-0.045432508 +47,-0.063442945 +48,0.12113665 +49,0.13706398 +50,-0.06886059 +51,0.12895012 +52,0.20263697 +53,0.12611157 +54,-0.14301407 +55,-0.014555097 +56,0.098851874 +57,0.18207443 +58,-0.028351307 +59,0.024207592 +60,0.08977124 +61,0.011368692 +62,-0.09365213 +63,-0.03361094 +64,0.053325057 +65,0.080485284 +66,0.027091205 +67,-0.041492462 +68,-0.02392152 +69,0.028720796 +70,0.011365235 +71,0.1437946 +72,-0.092591554 +73,-0.0026760697 +74,-0.066835165 +75,-0.12417346 +76,0.04395163 +77,-0.03543228 +78,0.030490398 +79,-0.029800951 +80,0.049197793 +81,0.03461927 +82,-0.118817925 +83,-0.028694868 +84,0.16751924 +85,0.06428939 +86,0.032741606 +87,-0.03949982 +88,0.2288305 +89,-0.015583932 +90,-0.0513705 +91,0.010950446 +92,-0.112439305 +93,-0.03027445 +94,-0.09491193 +95,-0.117569566 +96,0.10330433 +97,-0.0035125613 +98,0.03342122 +99,-0.08414388 +100,0.058295906 +101,0.04817313 +102,-0.06462401 +103,-0.061961174 +104,0.26290113 +105,0.08852589 +106,-0.039102733 +107,-0.0023864508 +108,0.23793133 +109,0.11742377 +110,-0.026315391 +111,0.027592659 +112,0.028711855 +113,0.033740878 +114,-0.1343258 +115,-0.12739694 +116,0.3628937 +117,0.04476607 +118,0.024173856 +119,-0.06903452 +120,0.07694942 +121,0.012822568 +122,-0.08585572 +123,-0.027091026 +124,0.01567489 +125,0.072402656 +126,0.06939608 +127,0.025899053 +128,0.031499624 +129,0.018590271 +130,-0.063146114 +131,-0.055970132 +132,0.04920286 +133,0.0043377876 +134,-0.107545555 +135,-0.06267208 +136,0.061675698 +137,0.0015047789 +138,0.022901833 +139,0.1504522 +140,0.056131184 +141,0.117271245 +142,-0.016346931 +143,-0.087405205 +144,0.011845529 +145,0.06829536 +146,0.00088983774 +147,0.10964042 +148,0.2271188 +149,0.079633236 +150,-0.022019506 +151,-0.029404044 +152,0.0715999 +153,-0.07564092 +154,-0.099974394 +155,-0.13150722 +156,0.21960354 +157,-0.039646983 +158,0.029691339 +159,0.029044569 +160,0.03790152 +161,0.15529573 +162,-0.11224598 +163,-0.04929483 +164,0.028719068 +165,0.05588591 +166,-0.039016843 +167,-0.0038550496 +168,0.24188384 +169,0.12299025 +170,-0.05400884 +171,-0.080360174 +172,0.07317668 +173,-0.07383579 +174,-0.12726694 +175,-0.117176056 +176,0.2677249 +177,-0.022017598 +178,0.01518923 +179,0.0051246285 +180,0.15553111 +181,0.22087365 +182,-0.09242135 +183,-0.03401482 +184,0.023754478 +185,0.09087628 +186,-0.056916714 +187,0.029785216 +188,0.004374504 +189,0.024373412 +190,-0.058528244 +191,-0.1228565 +192,0.08430952 +193,-0.08008611 +194,0.00862819 +195,-0.017223895 +196,-0.21871829 +197,-0.09424031 +198,0.017115295 +199,0.029061913 diff --git a/iris/realtabformer/3/pred/g.csv b/iris/realtabformer/3/pred/g.csv new file mode 100644 index 0000000000000000000000000000000000000000..4a349eb3b92b862abb15739ff5571a3d96f35c0e --- /dev/null +++ b/iris/realtabformer/3/pred/g.csv @@ -0,0 +1,201 @@ +,realtabformer +0,0.14790453 +1,0.096354365 +2,0.01254344 +3,0.042875707 +4,0.1091903 +5,0.33746502 +6,0.008164287 +7,0.1144225 +8,0.11803271 +9,0.09141207 +10,0.0046195984 +11,0.03926003 +12,0.20766826 +13,0.09000814 +14,0.06648427 +15,0.021729946 +16,0.1251473 +17,0.15130264 +18,0.045487046 +19,0.09892225 +20,0.13465507 +21,0.3631881 +22,0.043609142 +23,0.09670234 +24,0.10875513 +25,0.15157253 +26,0.0069352984 +27,0.048915863 +28,0.103629336 +29,0.12024921 +30,0.042390704 +31,0.012013555 +32,0.21346141 +33,0.1846528 +34,0.09189862 +35,0.06970239 +36,0.13421892 +37,0.21903604 +38,0.06784642 +39,0.12119192 +40,0.06744641 +41,0.02575928 +42,0.09123087 +43,0.07453245 +44,0.14862902 +45,0.09001726 +46,0.045432508 +47,0.063442945 +48,0.12113665 +49,0.13706398 +50,0.06886059 +51,0.12895012 +52,0.20263697 +53,0.12611157 +54,0.14301407 +55,0.014555097 +56,0.098851874 +57,0.18207443 +58,0.028351307 +59,0.024207592 +60,0.08977124 +61,0.011368692 +62,0.09365213 +63,0.03361094 +64,0.053325057 +65,0.080485284 +66,0.027091205 +67,0.041492462 +68,0.02392152 +69,0.028720796 +70,0.011365235 +71,0.1437946 +72,0.092591554 +73,0.0026760697 +74,0.066835165 +75,0.12417346 +76,0.04395163 +77,0.03543228 +78,0.030490398 +79,0.029800951 +80,0.049197793 +81,0.03461927 +82,0.118817925 +83,0.028694868 +84,0.16751924 +85,0.06428939 +86,0.032741606 +87,0.03949982 +88,0.2288305 +89,0.015583932 +90,0.0513705 +91,0.010950446 +92,0.112439305 +93,0.03027445 +94,0.09491193 +95,0.117569566 +96,0.10330433 +97,0.0035125613 +98,0.03342122 +99,0.08414388 +100,0.058295906 +101,0.04817313 +102,0.06462401 +103,0.061961174 +104,0.26290113 +105,0.08852589 +106,0.039102733 +107,0.0023864508 +108,0.23793133 +109,0.11742377 +110,0.026315391 +111,0.027592659 +112,0.028711855 +113,0.033740878 +114,0.1343258 +115,0.12739694 +116,0.3628937 +117,0.04476607 +118,0.024173856 +119,0.06903452 +120,0.07694942 +121,0.012822568 +122,0.08585572 +123,0.027091026 +124,0.01567489 +125,0.072402656 +126,0.06939608 +127,0.025899053 +128,0.031499624 +129,0.018590271 +130,0.063146114 +131,0.055970132 +132,0.04920286 +133,0.0043377876 +134,0.107545555 +135,0.06267208 +136,0.061675698 +137,0.0015047789 +138,0.022901833 +139,0.1504522 +140,0.056131184 +141,0.117271245 +142,0.016346931 +143,0.087405205 +144,0.011845529 +145,0.06829536 +146,0.00088983774 +147,0.10964042 +148,0.2271188 +149,0.079633236 +150,0.022019506 +151,0.029404044 +152,0.0715999 +153,0.07564092 +154,0.099974394 +155,0.13150722 +156,0.21960354 +157,0.039646983 +158,0.029691339 +159,0.029044569 +160,0.03790152 +161,0.15529573 +162,0.11224598 +163,0.04929483 +164,0.028719068 +165,0.05588591 +166,0.039016843 +167,0.0038550496 +168,0.24188384 +169,0.12299025 +170,0.05400884 +171,0.080360174 +172,0.07317668 +173,0.07383579 +174,0.12726694 +175,0.117176056 +176,0.2677249 +177,0.022017598 +178,0.01518923 +179,0.0051246285 +180,0.15553111 +181,0.22087365 +182,0.09242135 +183,0.03401482 +184,0.023754478 +185,0.09087628 +186,0.056916714 +187,0.029785216 +188,0.004374504 +189,0.024373412 +190,0.058528244 +191,0.1228565 +192,0.08430952 +193,0.08008611 +194,0.00862819 +195,0.017223895 +196,0.21871829 +197,0.09424031 +198,0.017115295 +199,0.029061913 diff --git a/iris/realtabformer/3/pred/grad.csv b/iris/realtabformer/3/pred/grad.csv new file mode 100644 index 0000000000000000000000000000000000000000..a74976a9479c52f0f54fd006dea99060d04eb134 --- /dev/null +++ b/iris/realtabformer/3/pred/grad.csv @@ -0,0 +1,201 @@ +,realtabformer +0,0.31842244 +1,0.60528713 +2,0.0939844 +3,0.18331261 +4,0.21708487 +5,6.538817 +6,0.03204399 +7,0.5937635 +8,0.3418511 +9,0.89622426 +10,0.011810897 +11,0.13318853 +12,0.56192696 +13,0.606201 +14,0.1855192 +15,0.06564239 +16,0.18289499 +17,1.9069005 +18,0.16749732 +19,0.5010246 +20,0.24401021 +21,2.7537167 +22,0.24061134 +23,0.52768725 +24,0.2817377 +25,0.49261513 +26,0.020425051 +27,0.17261426 +28,0.28796273 +29,0.6482907 +30,0.1296031 +31,0.04541408 +32,0.57413036 +33,0.5612117 +34,0.3140256 +35,0.25156584 +36,0.23708165 +37,1.1516149 +38,0.24243698 +39,0.5856802 +40,0.13890758 +41,0.11726522 +42,0.51536524 +43,0.38109908 +44,0.5144014 +45,0.33137938 +46,0.14849944 +47,0.44358537 +48,0.2716721 +49,0.45847717 +50,0.32433793 +51,0.29100618 +52,0.56954056 +53,0.3586663 +54,0.48413792 +55,0.04356227 +56,0.27377683 +57,0.59598404 +58,0.11997159 +59,0.14521332 +60,0.25531763 +61,0.05116304 +62,0.6153672 +63,0.19237964 +64,0.10674682 +65,0.25082967 +66,0.0813487 +67,0.2968382 +68,0.08316616 +69,0.07818307 +70,0.06039156 +71,0.537248 +72,0.23082407 +73,0.009723285 +74,0.22645746 +75,0.46590498 +76,0.14346963 +77,0.2114378 +78,0.108655125 +79,0.1906279 +80,0.105020665 +81,0.17792948 +82,0.626299 +83,0.15335327 +84,0.32731998 +85,0.17038354 +86,0.08482006 +87,0.2796888 +88,0.51520216 +89,0.033773582 +90,0.2771566 +91,0.029546015 +92,0.27837032 +93,0.09919387 +94,0.38604048 +95,0.26747945 +96,0.3429485 +97,0.010523663 +98,0.1104909 +99,0.5228987 +100,0.17742062 +101,0.17553975 +102,0.49285024 +103,0.3428106 +104,1.6057423 +105,0.24887685 +106,0.111799255 +107,0.011175708 +108,0.7239837 +109,0.28751105 +110,0.14743307 +111,0.06321966 +112,0.06200614 +113,0.14442043 +114,0.41839573 +115,0.4207043 +116,1.1643292 +117,0.1892603 +118,0.10780585 +119,0.45702156 +120,0.2614394 +121,0.0710402 +122,0.5787528 +123,0.14285795 +124,0.03481245 +125,0.24646157 +126,0.16864918 +127,0.0923048 +128,0.3122819 +129,0.047920376 +130,0.41175923 +131,0.18099177 +132,0.1108023 +133,0.015857616 +134,0.3644492 +135,0.20003004 +136,0.18691096 +137,0.008752964 +138,0.079800144 +139,0.74299604 +140,0.19571747 +141,0.4677947 +142,0.10917446 +143,0.3341044 +144,0.021377988 +145,0.17771582 +146,0.0021603676 +147,0.5098415 +148,1.0176721 +149,0.1785674 +150,0.08821534 +151,0.086960696 +152,0.047353566 +153,0.24464636 +154,0.3546668 +155,0.48685253 +156,0.6615899 +157,0.22272119 +158,0.09454868 +159,0.14026551 +160,0.1303537 +161,0.51494604 +162,0.6293645 +163,0.30871826 +164,0.050045226 +165,0.041436706 +166,0.09767492 +167,0.016322585 +168,1.5602815 +169,0.2471466 +170,0.27373308 +171,0.2838439 +172,0.048954852 +173,0.32445243 +174,0.41323265 +175,0.43722576 +176,0.8503839 +177,0.11246788 +178,0.061479606 +179,0.0359183 +180,0.66138715 +181,1.0374638 +182,0.5477286 +183,0.13879158 +184,0.0504586 +185,0.24153209 +186,0.29112166 +187,0.18949793 +188,0.017447324 +189,0.09371308 +190,0.317011 +191,0.45054382 +192,0.06835284 +193,0.31233814 +194,0.038576525 +195,0.0651498 +196,1.4316299 +197,0.5014541 +198,0.050360728 +199,0.16735029 diff --git a/iris/realtabformer/3/pred/pred.csv b/iris/realtabformer/3/pred/pred.csv new file mode 100644 index 0000000000000000000000000000000000000000..e9899e68c8d1d1370378d14d644c2991a218ef47 --- /dev/null +++ b/iris/realtabformer/3/pred/pred.csv @@ -0,0 +1,201 @@ +,realtabformer +0,0.3267663 +1,0.44719976 +2,0.8898375 +3,0.89010626 +4,0.28805208 +5,0.74698883 +6,0.95841885 +7,0.8514769 +8,0.28469938 +9,0.56729263 +10,0.90253747 +11,0.8855997 +12,0.37433493 +13,0.53788847 +14,0.785035 +15,0.8074442 +16,0.29181397 +17,0.5950273 +18,0.9114803 +19,0.8035478 +20,0.31351686 +21,0.8763194 +22,0.8594938 +23,0.8056786 +24,0.2876169 +25,0.98106956 +26,0.9613187 +27,0.9156033 +28,0.270296 +29,0.9261655 +30,0.9081929 +31,0.8686882 +32,0.3801281 +33,0.7797525 +34,0.78770006 +35,0.8302804 +36,0.3008856 +37,0.8857027 +38,0.89961183 +39,0.81613004 +40,0.34922025 +41,0.9381402 +42,0.85068834 +43,0.82178044 +44,0.3274908 +45,0.9833506 +46,0.9545675 +47,0.9031402 +48,0.28780332 +49,0.9429803 +50,0.85981935 +51,0.9028007 +52,0.36930364 +53,0.8451592 +54,0.75282454 +55,0.82142377 +56,0.3210741 +57,0.90629137 +58,0.90897065 +59,0.8295948 +60,0.5064379 +61,0.9237496 +62,0.8482671 +63,0.899371 +64,0.6232175 +65,0.9754857 +66,0.960341 +67,0.9250907 +68,0.3465913 +69,0.9493557 +70,0.8771674 +71,0.87681884 +72,0.47883704 +73,0.8830382 +74,0.7691437 +75,0.80082655 +76,0.48557293 +77,0.8423455 +78,0.89648366 +79,0.87910175 +80,0.5306793 +81,0.9470002 +82,0.8231013 +83,0.91322434 +84,0.6136731 +85,0.9969493 +86,0.9669577 +87,0.8931601 +88,0.45105273 +89,0.942902 +90,0.84654737 +91,0.8831727 +92,0.4589893 +93,0.8493242 +94,0.7772551 +95,0.81354153 +96,0.4842567 +97,0.90539014 +98,0.89756066 +99,0.85525006 +100,0.5397774 +101,0.96055406 +102,0.8772952 +103,0.87995803 +104,0.4295678 +105,0.9835263 +106,0.96089727 +107,0.9288305 +108,0.46015355 +109,0.96001637 +110,0.8394868 +111,0.89824796 +112,0.60014045 +113,0.9194552 +114,0.7615128 +115,0.7684417 +116,0.51975644 +117,0.9150133 +118,0.8883133 +119,0.8703594 +120,0.58245665 +121,0.9252035 +122,0.8560635 +123,0.9148282 +124,0.58556736 +125,0.96740305 +126,0.96755815 +127,0.92089945 +128,0.53734756 +129,0.97707623 +130,0.8655338 +131,0.9025158 +132,0.62063146 +133,0.85767114 +134,0.7646215 +135,0.828134 +136,0.53129804 +137,0.9104075 +138,0.8931491 +139,0.8490168 +140,0.5376127 +141,0.9347675 +142,0.84651244 +143,0.8836093 +144,0.581738 +145,0.9995123 +146,0.9691438 +147,0.924748 +148,0.44934103 +149,0.9619862 +150,0.90666044 +151,0.90131855 +152,0.6430285 +153,0.850285 +154,0.77219266 +155,0.7934928 +156,0.54313296 +157,0.8692557 +158,0.8938308 +159,0.8953627 +160,0.519383 +161,0.95239717 +162,0.82967323 +163,0.8926244 +164,0.59861153 +165,0.9839162 +166,0.96098316 +167,0.9241125 +168,0.51439846 +169,0.9428492 +170,0.8746711 +171,0.8781258 +172,0.6446053 +173,0.8118785 +174,0.76353914 +175,0.78280675 +176,0.5534392 +177,0.8868851 +178,0.91111684 +179,0.87144274 +180,0.54509634 +181,0.93290645 +182,0.84949785 +183,0.9079044 +184,0.59364694 +185,0.9858767 +186,0.9430833 +187,0.9247856 +188,0.4657626 +189,0.9222913 +190,0.8701517 +191,0.8771435 +192,0.6557381 +193,0.8458398 +194,0.7904464 +195,0.7830396 +196,0.5802235 +197,0.84308165 +198,0.9130429 +199,0.8661792 diff --git a/iris/realtabformer/3/pred/y.csv b/iris/realtabformer/3/pred/y.csv new file mode 100644 index 0000000000000000000000000000000000000000..3f72bd3490b0bdb70028cf46af93594d7b81f18d --- /dev/null +++ b/iris/realtabformer/3/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/3/pred/y_real.csv b/iris/realtabformer/3/pred/y_real.csv new file mode 100644 index 0000000000000000000000000000000000000000..69282ce96ed463b85e970d319dd0a33dac8483df --- /dev/null +++ b/iris/realtabformer/3/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