From 0d6a92823a634e66b79e74f5b88a7f7b9ca28e04 Mon Sep 17 00:00:00 2001 From: Elaina Claus Date: Fri, 19 Dec 2025 09:15:41 -0500 Subject: [PATCH] all files (logs/models/images) go into ./files using AdamW optim again, AdamW is the go to for small toys and transformers. refactored NN classes to thier own module under pairwise_comp_nn.py --- output_graphs.py | 502 ++++++++++++++++++++++---------------------- pairwise_comp_nn.py | 34 +++ pairwise_compare.py | 60 ++---- 3 files changed, 302 insertions(+), 294 deletions(-) create mode 100644 pairwise_comp_nn.py diff --git a/output_graphs.py b/output_graphs.py index 6fb3d3a..1412f37 100644 --- a/output_graphs.py +++ b/output_graphs.py @@ -3,255 +3,255 @@ import pandas as pd import matplotlib.pyplot as plt text = r"""INFO:__main__:step= 0 loss=1.3149878 acc=0.9093018 -INFO:__main__:step= 100 loss=0.0061767 acc=0.9990845 -INFO:__main__:step= 200 loss=0.0035383 acc=0.9995117 -INFO:__main__:step= 300 loss=0.0024436 acc=0.9998169 -INFO:__main__:step= 400 loss=0.0018407 acc=0.9997559 -INFO:__main__:step= 500 loss=0.0015498 acc=0.9999390 -INFO:__main__:step= 600 loss=0.0011456 acc=0.9998779 -INFO:__main__:step= 700 loss=0.0012764 acc=0.9998169 -INFO:__main__:step= 800 loss=0.0009753 acc=0.9999390 -INFO:__main__:step= 900 loss=0.0008533 acc=0.9998169 -INFO:__main__:step= 1000 loss=0.0009977 acc=0.9998779 -INFO:__main__:step= 1100 loss=0.0006450 acc=1.0000000 -INFO:__main__:step= 1200 loss=0.0009882 acc=0.9999390 -INFO:__main__:step= 1300 loss=0.0007516 acc=0.9998169 -INFO:__main__:step= 1400 loss=0.0006381 acc=0.9999390 -INFO:__main__:step= 1500 loss=0.0005117 acc=1.0000000 -INFO:__main__:step= 1600 loss=0.0006124 acc=0.9999390 -INFO:__main__:step= 1700 loss=0.0005856 acc=0.9999390 -INFO:__main__:step= 1800 loss=0.0004643 acc=1.0000000 -INFO:__main__:step= 1900 loss=0.0005289 acc=1.0000000 -INFO:__main__:step= 2000 loss=0.0006825 acc=0.9998779 -INFO:__main__:step= 2100 loss=0.0006999 acc=0.9999390 -INFO:__main__:step= 2200 loss=0.0004827 acc=0.9999390 -INFO:__main__:step= 2300 loss=0.0004767 acc=1.0000000 -INFO:__main__:step= 2400 loss=0.0005529 acc=0.9998779 -INFO:__main__:step= 2500 loss=0.0005013 acc=0.9999390 -INFO:__main__:step= 2600 loss=0.0004871 acc=0.9998779 -INFO:__main__:step= 2700 loss=0.0006320 acc=0.9999390 -INFO:__main__:step= 2800 loss=0.0005142 acc=1.0000000 -INFO:__main__:step= 2900 loss=0.0004747 acc=0.9999390 -INFO:__main__:step= 3000 loss=0.0003393 acc=1.0000000 -INFO:__main__:step= 3100 loss=0.0002169 acc=0.9999390 -INFO:__main__:step= 3200 loss=0.0004685 acc=1.0000000 -INFO:__main__:step= 3300 loss=0.0006188 acc=1.0000000 -INFO:__main__:step= 3400 loss=0.0002341 acc=1.0000000 -INFO:__main__:step= 3500 loss=0.0002824 acc=1.0000000 -INFO:__main__:step= 3600 loss=0.0004709 acc=1.0000000 -INFO:__main__:step= 3700 loss=0.0004435 acc=0.9999390 -INFO:__main__:step= 3800 loss=0.0004570 acc=0.9999390 -INFO:__main__:step= 3900 loss=0.0002688 acc=1.0000000 -INFO:__main__:step= 4000 loss=0.0003271 acc=1.0000000 -INFO:__main__:step= 4100 loss=0.0003988 acc=0.9999390 -INFO:__main__:step= 4200 loss=0.0002737 acc=1.0000000 -INFO:__main__:step= 4300 loss=0.0004687 acc=1.0000000 -INFO:__main__:step= 4400 loss=0.0004002 acc=0.9999390 -INFO:__main__:step= 4500 loss=0.0003822 acc=0.9998779 -INFO:__main__:step= 4600 loss=0.0002028 acc=1.0000000 -INFO:__main__:step= 4700 loss=0.0003800 acc=1.0000000 -INFO:__main__:step= 4800 loss=0.0003447 acc=1.0000000 -INFO:__main__:step= 4900 loss=0.0003252 acc=0.9999390 -INFO:__main__:step= 5000 loss=0.0003673 acc=0.9999390 -INFO:__main__:step= 5100 loss=0.0002339 acc=1.0000000 -INFO:__main__:step= 5200 loss=0.0003250 acc=0.9999390 -INFO:__main__:step= 5300 loss=0.0002328 acc=1.0000000 -INFO:__main__:step= 5400 loss=0.0003054 acc=1.0000000 -INFO:__main__:step= 5500 loss=0.0003867 acc=1.0000000 -INFO:__main__:step= 5600 loss=0.0004573 acc=0.9999390 -INFO:__main__:step= 5700 loss=0.0005030 acc=0.9999390 -INFO:__main__:step= 5800 loss=0.0002435 acc=1.0000000 -INFO:__main__:step= 5900 loss=0.0003278 acc=1.0000000 -INFO:__main__:step= 6000 loss=0.0003972 acc=0.9999390 -INFO:__main__:step= 6100 loss=0.0004111 acc=0.9999390 -INFO:__main__:step= 6200 loss=0.0004616 acc=0.9998779 -INFO:__main__:step= 6300 loss=0.0002833 acc=1.0000000 -INFO:__main__:step= 6400 loss=0.0001403 acc=1.0000000 -INFO:__main__:step= 6500 loss=0.0002128 acc=1.0000000 -INFO:__main__:step= 6600 loss=0.0003678 acc=1.0000000 -INFO:__main__:step= 6700 loss=0.0003675 acc=0.9999390 -INFO:__main__:step= 6800 loss=0.0003362 acc=0.9999390 -INFO:__main__:step= 6900 loss=0.0002456 acc=1.0000000 -INFO:__main__:step= 7000 loss=0.0002907 acc=1.0000000 -INFO:__main__:step= 7100 loss=0.0002552 acc=1.0000000 -INFO:__main__:step= 7200 loss=0.0003215 acc=1.0000000 -INFO:__main__:step= 7300 loss=0.0002414 acc=0.9999390 -INFO:__main__:step= 7400 loss=0.0002210 acc=0.9999390 -INFO:__main__:step= 7500 loss=0.0003406 acc=1.0000000 -INFO:__main__:step= 7600 loss=0.0003976 acc=0.9999390 -INFO:__main__:step= 7700 loss=0.0001889 acc=1.0000000 -INFO:__main__:step= 7800 loss=0.0001913 acc=1.0000000 -INFO:__main__:step= 7900 loss=0.0002028 acc=0.9999390 -INFO:__main__:step= 8000 loss=0.0002912 acc=1.0000000 -INFO:__main__:step= 8100 loss=0.0001934 acc=1.0000000 -INFO:__main__:step= 8200 loss=0.0001729 acc=0.9999390 -INFO:__main__:step= 8300 loss=0.0002534 acc=1.0000000 -INFO:__main__:step= 8400 loss=0.0002508 acc=1.0000000 -INFO:__main__:step= 8500 loss=0.0002167 acc=1.0000000 -INFO:__main__:step= 8600 loss=0.0001678 acc=0.9999390 -INFO:__main__:step= 8700 loss=0.0001330 acc=1.0000000 -INFO:__main__:step= 8800 loss=0.0002283 acc=1.0000000 -INFO:__main__:step= 8900 loss=0.0001854 acc=1.0000000 -INFO:__main__:step= 9000 loss=0.0003707 acc=1.0000000 -INFO:__main__:step= 9100 loss=0.0001784 acc=0.9999390 -INFO:__main__:step= 9200 loss=0.0002114 acc=1.0000000 -INFO:__main__:step= 9300 loss=0.0002016 acc=1.0000000 -INFO:__main__:step= 9400 loss=0.0001510 acc=1.0000000 -INFO:__main__:step= 9500 loss=0.0002751 acc=1.0000000 -INFO:__main__:step= 9600 loss=0.0001933 acc=1.0000000 -INFO:__main__:step= 9700 loss=0.0002801 acc=0.9999390 -INFO:__main__:step= 9800 loss=0.0002744 acc=1.0000000 -INFO:__main__:step= 9900 loss=0.0002888 acc=0.9998779 -INFO:__main__:step=10000 loss=0.0002251 acc=0.9999390 -INFO:__main__:step=10100 loss=0.0002925 acc=0.9999390 -INFO:__main__:step=10200 loss=0.0002304 acc=1.0000000 -INFO:__main__:step=10300 loss=0.0002787 acc=0.9999390 -INFO:__main__:step=10400 loss=0.0002299 acc=0.9999390 -INFO:__main__:step=10500 loss=0.0002260 acc=1.0000000 -INFO:__main__:step=10600 loss=0.0002000 acc=1.0000000 -INFO:__main__:step=10700 loss=0.0002608 acc=0.9999390 -INFO:__main__:step=10800 loss=0.0002861 acc=1.0000000 -INFO:__main__:step=10900 loss=0.0001996 acc=1.0000000 -INFO:__main__:step=11000 loss=0.0002830 acc=0.9999390 -INFO:__main__:step=11100 loss=0.0002845 acc=0.9999390 -INFO:__main__:step=11200 loss=0.0001409 acc=1.0000000 -INFO:__main__:step=11300 loss=0.0001962 acc=0.9999390 -INFO:__main__:step=11400 loss=0.0002022 acc=1.0000000 -INFO:__main__:step=11500 loss=0.0003032 acc=1.0000000 -INFO:__main__:step=11600 loss=0.0002062 acc=1.0000000 -INFO:__main__:step=11700 loss=0.0002120 acc=1.0000000 -INFO:__main__:step=11800 loss=0.0001484 acc=1.0000000 -INFO:__main__:step=11900 loss=0.0001639 acc=1.0000000 -INFO:__main__:step=12000 loss=0.0001864 acc=1.0000000 -INFO:__main__:step=12100 loss=0.0002334 acc=1.0000000 -INFO:__main__:step=12200 loss=0.0001641 acc=1.0000000 -INFO:__main__:step=12300 loss=0.0003251 acc=0.9998779 -INFO:__main__:step=12400 loss=0.0002605 acc=1.0000000 -INFO:__main__:step=12500 loss=0.0001344 acc=1.0000000 -INFO:__main__:step=12600 loss=0.0002226 acc=0.9999390 -INFO:__main__:step=12700 loss=0.0002189 acc=0.9999390 -INFO:__main__:step=12800 loss=0.0001012 acc=1.0000000 -INFO:__main__:step=12900 loss=0.0001505 acc=1.0000000 -INFO:__main__:step=13000 loss=0.0002257 acc=0.9999390 -INFO:__main__:step=13100 loss=0.0001643 acc=1.0000000 -INFO:__main__:step=13200 loss=0.0001547 acc=0.9999390 -INFO:__main__:step=13300 loss=0.0002164 acc=1.0000000 -INFO:__main__:step=13400 loss=0.0001538 acc=1.0000000 -INFO:__main__:step=13500 loss=0.0001582 acc=1.0000000 -INFO:__main__:step=13600 loss=0.0002629 acc=0.9999390 -INFO:__main__:step=13700 loss=0.0002293 acc=1.0000000 -INFO:__main__:step=13800 loss=0.0001947 acc=1.0000000 -INFO:__main__:step=13900 loss=0.0001451 acc=1.0000000 -INFO:__main__:step=14000 loss=0.0002371 acc=1.0000000 -INFO:__main__:step=14100 loss=0.0003281 acc=1.0000000 -INFO:__main__:step=14200 loss=0.0002205 acc=1.0000000 -INFO:__main__:step=14300 loss=0.0001904 acc=1.0000000 -INFO:__main__:step=14400 loss=0.0001126 acc=1.0000000 -INFO:__main__:step=14500 loss=0.0002144 acc=1.0000000 -INFO:__main__:step=14600 loss=0.0001922 acc=1.0000000 -INFO:__main__:step=14700 loss=0.0002118 acc=1.0000000 -INFO:__main__:step=14800 loss=0.0001527 acc=1.0000000 -INFO:__main__:step=14900 loss=0.0000752 acc=1.0000000 -INFO:__main__:step=15000 loss=0.0002345 acc=1.0000000 -INFO:__main__:step=15100 loss=0.0002119 acc=1.0000000 -INFO:__main__:step=15200 loss=0.0001223 acc=1.0000000 -INFO:__main__:step=15300 loss=0.0000772 acc=1.0000000 -INFO:__main__:step=15400 loss=0.0001805 acc=0.9999390 -INFO:__main__:step=15500 loss=0.0003057 acc=1.0000000 -INFO:__main__:step=15600 loss=0.0002293 acc=1.0000000 -INFO:__main__:step=15700 loss=0.0000739 acc=1.0000000 -INFO:__main__:step=15800 loss=0.0001586 acc=1.0000000 -INFO:__main__:step=15900 loss=0.0001513 acc=1.0000000 -INFO:__main__:step=16000 loss=0.0001348 acc=1.0000000 -INFO:__main__:step=16100 loss=0.0002099 acc=1.0000000 -INFO:__main__:step=16200 loss=0.0001405 acc=1.0000000 -INFO:__main__:step=16300 loss=0.0003015 acc=0.9998779 -INFO:__main__:step=16400 loss=0.0000603 acc=1.0000000 -INFO:__main__:step=16500 loss=0.0001273 acc=1.0000000 -INFO:__main__:step=16600 loss=0.0001151 acc=1.0000000 -INFO:__main__:step=16700 loss=0.0001440 acc=1.0000000 -INFO:__main__:step=16800 loss=0.0002359 acc=1.0000000 -INFO:__main__:step=16900 loss=0.0002146 acc=1.0000000 -INFO:__main__:step=17000 loss=0.0002382 acc=1.0000000 -INFO:__main__:step=17100 loss=0.0000885 acc=1.0000000 -INFO:__main__:step=17200 loss=0.0002271 acc=0.9999390 -INFO:__main__:step=17300 loss=0.0000785 acc=1.0000000 -INFO:__main__:step=17400 loss=0.0002242 acc=1.0000000 -INFO:__main__:step=17500 loss=0.0001646 acc=1.0000000 -INFO:__main__:step=17600 loss=0.0001174 acc=1.0000000 -INFO:__main__:step=17700 loss=0.0001843 acc=0.9999390 -INFO:__main__:step=17800 loss=0.0001872 acc=1.0000000 -INFO:__main__:step=17900 loss=0.0001122 acc=1.0000000 -INFO:__main__:step=18000 loss=0.0000516 acc=1.0000000 -INFO:__main__:step=18100 loss=0.0001427 acc=1.0000000 -INFO:__main__:step=18200 loss=0.0000453 acc=1.0000000 -INFO:__main__:step=18300 loss=0.0001730 acc=1.0000000 -INFO:__main__:step=18400 loss=0.0001801 acc=1.0000000 -INFO:__main__:step=18500 loss=0.0001219 acc=1.0000000 -INFO:__main__:step=18600 loss=0.0001443 acc=1.0000000 -INFO:__main__:step=18700 loss=0.0003240 acc=1.0000000 -INFO:__main__:step=18800 loss=0.0001341 acc=1.0000000 -INFO:__main__:step=18900 loss=0.0000698 acc=1.0000000 -INFO:__main__:step=19000 loss=0.0002490 acc=1.0000000 -INFO:__main__:step=19100 loss=0.0002027 acc=1.0000000 -INFO:__main__:step=19200 loss=0.0001338 acc=0.9999390 -INFO:__main__:step=19300 loss=0.0001596 acc=1.0000000 -INFO:__main__:step=19400 loss=0.0001416 acc=0.9999390 -INFO:__main__:step=19500 loss=0.0001592 acc=1.0000000 -INFO:__main__:step=19600 loss=0.0002262 acc=1.0000000 -INFO:__main__:step=19700 loss=0.0000626 acc=1.0000000 -INFO:__main__:step=19800 loss=0.0001256 acc=1.0000000 -INFO:__main__:step=19900 loss=0.0002005 acc=0.9999390 -INFO:__main__:step=20000 loss=0.0000979 acc=1.0000000 -INFO:__main__:step=20100 loss=0.0002766 acc=1.0000000 -INFO:__main__:step=20200 loss=0.0003364 acc=0.9999390 -INFO:__main__:step=20300 loss=0.0001628 acc=1.0000000 -INFO:__main__:step=20400 loss=0.0002390 acc=1.0000000 -INFO:__main__:step=20500 loss=0.0001474 acc=1.0000000 -INFO:__main__:step=20600 loss=0.0001439 acc=1.0000000 -INFO:__main__:step=20700 loss=0.0000553 acc=1.0000000 -INFO:__main__:step=20800 loss=0.0001755 acc=0.9999390 -INFO:__main__:step=20900 loss=0.0000641 acc=1.0000000 -INFO:__main__:step=21000 loss=0.0000668 acc=1.0000000 -INFO:__main__:step=21100 loss=0.0002183 acc=1.0000000 -INFO:__main__:step=21200 loss=0.0001400 acc=1.0000000 -INFO:__main__:step=21300 loss=0.0001134 acc=1.0000000 -INFO:__main__:step=21400 loss=0.0002051 acc=0.9999390 -INFO:__main__:step=21500 loss=0.0001587 acc=1.0000000 -INFO:__main__:step=21600 loss=0.0002183 acc=1.0000000 -INFO:__main__:step=21700 loss=0.0000929 acc=1.0000000 -INFO:__main__:step=21800 loss=0.0001406 acc=1.0000000 -INFO:__main__:step=21900 loss=0.0001177 acc=1.0000000 -INFO:__main__:step=22000 loss=0.0000872 acc=1.0000000 -INFO:__main__:step=22100 loss=0.0000580 acc=1.0000000 -INFO:__main__:step=22200 loss=0.0000653 acc=1.0000000 -INFO:__main__:step=22300 loss=0.0001202 acc=1.0000000 -INFO:__main__:step=22400 loss=0.0002056 acc=1.0000000 -INFO:__main__:step=22500 loss=0.0001006 acc=1.0000000 -INFO:__main__:step=22600 loss=0.0001436 acc=1.0000000 -INFO:__main__:step=22700 loss=0.0001289 acc=1.0000000 -INFO:__main__:step=22800 loss=0.0000839 acc=1.0000000 -INFO:__main__:step=22900 loss=0.0001841 acc=1.0000000 -INFO:__main__:step=23000 loss=0.0000884 acc=1.0000000 -INFO:__main__:step=23100 loss=0.0000641 acc=1.0000000 -INFO:__main__:step=23200 loss=0.0001370 acc=1.0000000 -INFO:__main__:step=23300 loss=0.0002339 acc=0.9998779 -INFO:__main__:step=23400 loss=0.0001042 acc=1.0000000 -INFO:__main__:step=23500 loss=0.0001897 acc=1.0000000 -INFO:__main__:step=23600 loss=0.0001677 acc=1.0000000 -INFO:__main__:step=23700 loss=0.0001252 acc=1.0000000 -INFO:__main__:step=23800 loss=0.0001060 acc=1.0000000 -INFO:__main__:step=23900 loss=0.0001251 acc=1.0000000 -INFO:__main__:step=24000 loss=0.0001638 acc=1.0000000 -INFO:__main__:step=24100 loss=0.0001202 acc=1.0000000 -INFO:__main__:step=24200 loss=0.0001683 acc=1.0000000 -INFO:__main__:step=24300 loss=0.0000737 acc=1.0000000 -INFO:__main__:step=24400 loss=0.0001864 acc=1.0000000 -INFO:__main__:step=24500 loss=0.0001836 acc=1.0000000 -INFO:__main__:step=24600 loss=0.0001927 acc=1.0000000 -INFO:__main__:step=24700 loss=0.0000401 acc=1.0000000 -INFO:__main__:step=24800 loss=0.0002011 acc=1.0000000 -INFO:__main__:step=24900 loss=0.0002700 acc=0.9998779 +INFO:__main__:step= 100 loss=0.0089776 acc=0.9993286 +INFO:__main__:step= 200 loss=0.0088239 acc=0.9996948 +INFO:__main__:step= 300 loss=0.0075553 acc=0.9996948 +INFO:__main__:step= 400 loss=0.0065352 acc=0.9995728 +INFO:__main__:step= 500 loss=0.0053752 acc=0.9997559 +INFO:__main__:step= 600 loss=0.0043060 acc=0.9998169 +INFO:__main__:step= 700 loss=0.0045364 acc=0.9996338 +INFO:__main__:step= 800 loss=0.0037988 acc=0.9996948 +INFO:__main__:step= 900 loss=0.0037188 acc=0.9998779 +INFO:__main__:step= 1000 loss=0.0034959 acc=0.9996338 +INFO:__main__:step= 1100 loss=0.0032190 acc=0.9998169 +INFO:__main__:step= 1200 loss=0.0033895 acc=1.0000000 +INFO:__main__:step= 1300 loss=0.0031267 acc=0.9998779 +INFO:__main__:step= 1400 loss=0.0028533 acc=0.9999390 +INFO:__main__:step= 1500 loss=0.0024374 acc=0.9998779 +INFO:__main__:step= 1600 loss=0.0025314 acc=0.9998779 +INFO:__main__:step= 1700 loss=0.0024157 acc=1.0000000 +INFO:__main__:step= 1800 loss=0.0019437 acc=1.0000000 +INFO:__main__:step= 1900 loss=0.0019343 acc=0.9997559 +INFO:__main__:step= 2000 loss=0.0020423 acc=0.9996948 +INFO:__main__:step= 2100 loss=0.0025607 acc=0.9999390 +INFO:__main__:step= 2200 loss=0.0020113 acc=0.9998779 +INFO:__main__:step= 2300 loss=0.0017351 acc=0.9999390 +INFO:__main__:step= 2400 loss=0.0017944 acc=0.9998169 +INFO:__main__:step= 2500 loss=0.0016655 acc=0.9998169 +INFO:__main__:step= 2600 loss=0.0016493 acc=0.9997559 +INFO:__main__:step= 2700 loss=0.0016888 acc=1.0000000 +INFO:__main__:step= 2800 loss=0.0017318 acc=0.9998779 +INFO:__main__:step= 2900 loss=0.0016884 acc=0.9999390 +INFO:__main__:step= 3000 loss=0.0012935 acc=0.9998779 +INFO:__main__:step= 3100 loss=0.0011316 acc=1.0000000 +INFO:__main__:step= 3200 loss=0.0015423 acc=0.9998169 +INFO:__main__:step= 3300 loss=0.0008634 acc=0.9999390 +INFO:__main__:step= 3400 loss=0.0005173 acc=1.0000000 +INFO:__main__:step= 3500 loss=0.0005730 acc=0.9999390 +INFO:__main__:step= 3600 loss=0.0007605 acc=1.0000000 +INFO:__main__:step= 3700 loss=0.0006299 acc=0.9999390 +INFO:__main__:step= 3800 loss=0.0006295 acc=0.9999390 +INFO:__main__:step= 3900 loss=0.0003615 acc=1.0000000 +INFO:__main__:step= 4000 loss=0.0004475 acc=1.0000000 +INFO:__main__:step= 4100 loss=0.0005678 acc=0.9998779 +INFO:__main__:step= 4200 loss=0.0003502 acc=1.0000000 +INFO:__main__:step= 4300 loss=0.0005562 acc=0.9998779 +INFO:__main__:step= 4400 loss=0.0005300 acc=0.9998779 +INFO:__main__:step= 4500 loss=0.0004442 acc=0.9998779 +INFO:__main__:step= 4600 loss=0.0002595 acc=1.0000000 +INFO:__main__:step= 4700 loss=0.0003925 acc=1.0000000 +INFO:__main__:step= 4800 loss=0.0003808 acc=1.0000000 +INFO:__main__:step= 4900 loss=0.0003306 acc=0.9999390 +INFO:__main__:step= 5000 loss=0.0003823 acc=0.9998779 +INFO:__main__:step= 5100 loss=0.0002463 acc=1.0000000 +INFO:__main__:step= 5200 loss=0.0003248 acc=0.9999390 +INFO:__main__:step= 5300 loss=0.0002426 acc=1.0000000 +INFO:__main__:step= 5400 loss=0.0002643 acc=1.0000000 +INFO:__main__:step= 5500 loss=0.0003434 acc=1.0000000 +INFO:__main__:step= 5600 loss=0.0003985 acc=0.9999390 +INFO:__main__:step= 5700 loss=0.0004590 acc=0.9997559 +INFO:__main__:step= 5800 loss=0.0002166 acc=1.0000000 +INFO:__main__:step= 5900 loss=0.0002622 acc=0.9999390 +INFO:__main__:step= 6000 loss=0.0003202 acc=1.0000000 +INFO:__main__:step= 6100 loss=0.0003421 acc=1.0000000 +INFO:__main__:step= 6200 loss=0.0004393 acc=0.9997559 +INFO:__main__:step= 6300 loss=0.0002363 acc=1.0000000 +INFO:__main__:step= 6400 loss=0.0000994 acc=1.0000000 +INFO:__main__:step= 6500 loss=0.0001811 acc=1.0000000 +INFO:__main__:step= 6600 loss=0.0003322 acc=0.9998779 +INFO:__main__:step= 6700 loss=0.0002741 acc=0.9999390 +INFO:__main__:step= 6800 loss=0.0002755 acc=0.9999390 +INFO:__main__:step= 6900 loss=0.0001762 acc=0.9999390 +INFO:__main__:step= 7000 loss=0.0002272 acc=0.9998779 +INFO:__main__:step= 7100 loss=0.0001781 acc=1.0000000 +INFO:__main__:step= 7200 loss=0.0002126 acc=1.0000000 +INFO:__main__:step= 7300 loss=0.0002117 acc=0.9998779 +INFO:__main__:step= 7400 loss=0.0001614 acc=1.0000000 +INFO:__main__:step= 7500 loss=0.0002344 acc=1.0000000 +INFO:__main__:step= 7600 loss=0.0003103 acc=0.9998169 +INFO:__main__:step= 7700 loss=0.0001102 acc=1.0000000 +INFO:__main__:step= 7800 loss=0.0001416 acc=0.9999390 +INFO:__main__:step= 7900 loss=0.0001438 acc=0.9999390 +INFO:__main__:step= 8000 loss=0.0002020 acc=0.9999390 +INFO:__main__:step= 8100 loss=0.0001185 acc=1.0000000 +INFO:__main__:step= 8200 loss=0.0001286 acc=0.9999390 +INFO:__main__:step= 8300 loss=0.0001579 acc=0.9999390 +INFO:__main__:step= 8400 loss=0.0002156 acc=0.9998779 +INFO:__main__:step= 8500 loss=0.0001326 acc=1.0000000 +INFO:__main__:step= 8600 loss=0.0001097 acc=0.9999390 +INFO:__main__:step= 8700 loss=0.0000575 acc=1.0000000 +INFO:__main__:step= 8800 loss=0.0001199 acc=1.0000000 +INFO:__main__:step= 8900 loss=0.0001446 acc=0.9999390 +INFO:__main__:step= 9000 loss=0.0002343 acc=0.9999390 +INFO:__main__:step= 9100 loss=0.0000858 acc=1.0000000 +INFO:__main__:step= 9200 loss=0.0001535 acc=1.0000000 +INFO:__main__:step= 9300 loss=0.0001014 acc=1.0000000 +INFO:__main__:step= 9400 loss=0.0000798 acc=1.0000000 +INFO:__main__:step= 9500 loss=0.0001623 acc=1.0000000 +INFO:__main__:step= 9600 loss=0.0000767 acc=1.0000000 +INFO:__main__:step= 9700 loss=0.0002726 acc=0.9998779 +INFO:__main__:step= 9800 loss=0.0001945 acc=0.9999390 +INFO:__main__:step= 9900 loss=0.0002082 acc=0.9998779 +INFO:__main__:step=10000 loss=0.0001320 acc=0.9999390 +INFO:__main__:step=10100 loss=0.0002039 acc=0.9999390 +INFO:__main__:step=10200 loss=0.0001236 acc=1.0000000 +INFO:__main__:step=10300 loss=0.0001641 acc=0.9999390 +INFO:__main__:step=10400 loss=0.0001063 acc=1.0000000 +INFO:__main__:step=10500 loss=0.0001110 acc=1.0000000 +INFO:__main__:step=10600 loss=0.0000836 acc=1.0000000 +INFO:__main__:step=10700 loss=0.0001277 acc=0.9999390 +INFO:__main__:step=10800 loss=0.0002018 acc=1.0000000 +INFO:__main__:step=10900 loss=0.0001056 acc=1.0000000 +INFO:__main__:step=11000 loss=0.0001680 acc=1.0000000 +INFO:__main__:step=11100 loss=0.0001366 acc=0.9999390 +INFO:__main__:step=11200 loss=0.0000372 acc=1.0000000 +INFO:__main__:step=11300 loss=0.0001248 acc=0.9999390 +INFO:__main__:step=11400 loss=0.0000712 acc=1.0000000 +INFO:__main__:step=11500 loss=0.0001172 acc=1.0000000 +INFO:__main__:step=11600 loss=0.0000921 acc=1.0000000 +INFO:__main__:step=11700 loss=0.0000951 acc=1.0000000 +INFO:__main__:step=11800 loss=0.0000610 acc=1.0000000 +INFO:__main__:step=11900 loss=0.0000803 acc=1.0000000 +INFO:__main__:step=12000 loss=0.0000788 acc=1.0000000 +INFO:__main__:step=12100 loss=0.0001272 acc=1.0000000 +INFO:__main__:step=12200 loss=0.0000690 acc=1.0000000 +INFO:__main__:step=12300 loss=0.0001702 acc=1.0000000 +INFO:__main__:step=12400 loss=0.0001313 acc=1.0000000 +INFO:__main__:step=12500 loss=0.0000308 acc=1.0000000 +INFO:__main__:step=12600 loss=0.0000845 acc=1.0000000 +INFO:__main__:step=12700 loss=0.0000732 acc=1.0000000 +INFO:__main__:step=12800 loss=0.0000183 acc=1.0000000 +INFO:__main__:step=12900 loss=0.0000300 acc=1.0000000 +INFO:__main__:step=13000 loss=0.0001123 acc=0.9999390 +INFO:__main__:step=13100 loss=0.0000594 acc=1.0000000 +INFO:__main__:step=13200 loss=0.0000668 acc=1.0000000 +INFO:__main__:step=13300 loss=0.0000843 acc=0.9999390 +INFO:__main__:step=13400 loss=0.0000407 acc=1.0000000 +INFO:__main__:step=13500 loss=0.0000463 acc=1.0000000 +INFO:__main__:step=13600 loss=0.0001134 acc=1.0000000 +INFO:__main__:step=13700 loss=0.0000711 acc=1.0000000 +INFO:__main__:step=13800 loss=0.0000646 acc=1.0000000 +INFO:__main__:step=13900 loss=0.0000137 acc=1.0000000 +INFO:__main__:step=14000 loss=0.0000803 acc=1.0000000 +INFO:__main__:step=14100 loss=0.0001049 acc=1.0000000 +INFO:__main__:step=14200 loss=0.0000583 acc=1.0000000 +INFO:__main__:step=14300 loss=0.0000532 acc=1.0000000 +INFO:__main__:step=14400 loss=0.0000281 acc=1.0000000 +INFO:__main__:step=14500 loss=0.0000641 acc=1.0000000 +INFO:__main__:step=14600 loss=0.0000408 acc=1.0000000 +INFO:__main__:step=14700 loss=0.0000708 acc=1.0000000 +INFO:__main__:step=14800 loss=0.0000410 acc=1.0000000 +INFO:__main__:step=14900 loss=0.0000047 acc=1.0000000 +INFO:__main__:step=15000 loss=0.0000676 acc=1.0000000 +INFO:__main__:step=15100 loss=0.0001132 acc=0.9999390 +INFO:__main__:step=15200 loss=0.0000244 acc=1.0000000 +INFO:__main__:step=15300 loss=0.0000069 acc=1.0000000 +INFO:__main__:step=15400 loss=0.0000572 acc=0.9999390 +INFO:__main__:step=15500 loss=0.0001351 acc=1.0000000 +INFO:__main__:step=15600 loss=0.0000896 acc=0.9999390 +INFO:__main__:step=15700 loss=0.0000167 acc=1.0000000 +INFO:__main__:step=15800 loss=0.0000382 acc=1.0000000 +INFO:__main__:step=15900 loss=0.0000231 acc=1.0000000 +INFO:__main__:step=16000 loss=0.0000428 acc=1.0000000 +INFO:__main__:step=16100 loss=0.0000390 acc=1.0000000 +INFO:__main__:step=16200 loss=0.0000236 acc=1.0000000 +INFO:__main__:step=16300 loss=0.0001501 acc=0.9999390 +INFO:__main__:step=16400 loss=0.0000269 acc=1.0000000 +INFO:__main__:step=16500 loss=0.0000121 acc=1.0000000 +INFO:__main__:step=16600 loss=0.0000089 acc=1.0000000 +INFO:__main__:step=16700 loss=0.0000335 acc=1.0000000 +INFO:__main__:step=16800 loss=0.0000302 acc=1.0000000 +INFO:__main__:step=16900 loss=0.0000183 acc=1.0000000 +INFO:__main__:step=17000 loss=0.0000311 acc=1.0000000 +INFO:__main__:step=17100 loss=0.0000031 acc=1.0000000 +INFO:__main__:step=17200 loss=0.0001091 acc=1.0000000 +INFO:__main__:step=17300 loss=0.0000030 acc=1.0000000 +INFO:__main__:step=17400 loss=0.0000742 acc=1.0000000 +INFO:__main__:step=17500 loss=0.0000403 acc=1.0000000 +INFO:__main__:step=17600 loss=0.0000163 acc=1.0000000 +INFO:__main__:step=17700 loss=0.0000700 acc=1.0000000 +INFO:__main__:step=17800 loss=0.0000477 acc=1.0000000 +INFO:__main__:step=17900 loss=0.0000113 acc=1.0000000 +INFO:__main__:step=18000 loss=0.0000013 acc=1.0000000 +INFO:__main__:step=18100 loss=0.0000353 acc=1.0000000 +INFO:__main__:step=18200 loss=0.0000010 acc=1.0000000 +INFO:__main__:step=18300 loss=0.0000175 acc=1.0000000 +INFO:__main__:step=18400 loss=0.0000156 acc=1.0000000 +INFO:__main__:step=18500 loss=0.0000024 acc=1.0000000 +INFO:__main__:step=18600 loss=0.0000125 acc=1.0000000 +INFO:__main__:step=18700 loss=0.0001110 acc=0.9999390 +INFO:__main__:step=18800 loss=0.0000066 acc=1.0000000 +INFO:__main__:step=18900 loss=0.0000136 acc=1.0000000 +INFO:__main__:step=19000 loss=0.0000629 acc=1.0000000 +INFO:__main__:step=19100 loss=0.0000235 acc=1.0000000 +INFO:__main__:step=19200 loss=0.0000301 acc=1.0000000 +INFO:__main__:step=19300 loss=0.0000246 acc=1.0000000 +INFO:__main__:step=19400 loss=0.0000824 acc=0.9999390 +INFO:__main__:step=19500 loss=0.0000525 acc=1.0000000 +INFO:__main__:step=19600 loss=0.0000315 acc=1.0000000 +INFO:__main__:step=19700 loss=0.0000004 acc=1.0000000 +INFO:__main__:step=19800 loss=0.0000337 acc=1.0000000 +INFO:__main__:step=19900 loss=0.0000544 acc=1.0000000 +INFO:__main__:step=20000 loss=0.0000134 acc=1.0000000 +INFO:__main__:step=20100 loss=0.0000454 acc=1.0000000 +INFO:__main__:step=20200 loss=0.0000668 acc=1.0000000 +INFO:__main__:step=20300 loss=0.0000662 acc=1.0000000 +INFO:__main__:step=20400 loss=0.0000337 acc=1.0000000 +INFO:__main__:step=20500 loss=0.0000238 acc=1.0000000 +INFO:__main__:step=20600 loss=0.0000206 acc=1.0000000 +INFO:__main__:step=20700 loss=0.0000003 acc=1.0000000 +INFO:__main__:step=20800 loss=0.0000557 acc=1.0000000 +INFO:__main__:step=20900 loss=0.0000227 acc=1.0000000 +INFO:__main__:step=21000 loss=0.0000002 acc=1.0000000 +INFO:__main__:step=21100 loss=0.0000290 acc=1.0000000 +INFO:__main__:step=21200 loss=0.0000373 acc=1.0000000 +INFO:__main__:step=21300 loss=0.0000019 acc=1.0000000 +INFO:__main__:step=21400 loss=0.0000635 acc=1.0000000 +INFO:__main__:step=21500 loss=0.0000073 acc=1.0000000 +INFO:__main__:step=21600 loss=0.0000388 acc=1.0000000 +INFO:__main__:step=21700 loss=0.0000002 acc=1.0000000 +INFO:__main__:step=21800 loss=0.0000169 acc=1.0000000 +INFO:__main__:step=21900 loss=0.0000031 acc=1.0000000 +INFO:__main__:step=22000 loss=0.0000075 acc=1.0000000 +INFO:__main__:step=22100 loss=0.0000001 acc=1.0000000 +INFO:__main__:step=22200 loss=0.0000096 acc=1.0000000 +INFO:__main__:step=22300 loss=0.0000068 acc=1.0000000 +INFO:__main__:step=22400 loss=0.0000303 acc=1.0000000 +INFO:__main__:step=22500 loss=0.0000005 acc=1.0000000 +INFO:__main__:step=22600 loss=0.0000111 acc=1.0000000 +INFO:__main__:step=22700 loss=0.0000023 acc=1.0000000 +INFO:__main__:step=22800 loss=0.0000003 acc=1.0000000 +INFO:__main__:step=22900 loss=0.0000424 acc=1.0000000 +INFO:__main__:step=23000 loss=0.0000186 acc=1.0000000 +INFO:__main__:step=23100 loss=0.0000004 acc=1.0000000 +INFO:__main__:step=23200 loss=0.0000085 acc=1.0000000 +INFO:__main__:step=23300 loss=0.0000350 acc=1.0000000 +INFO:__main__:step=23400 loss=0.0000005 acc=1.0000000 +INFO:__main__:step=23500 loss=0.0000538 acc=0.9999390 +INFO:__main__:step=23600 loss=0.0000021 acc=1.0000000 +INFO:__main__:step=23700 loss=0.0000365 acc=1.0000000 +INFO:__main__:step=23800 loss=0.0000281 acc=1.0000000 +INFO:__main__:step=23900 loss=0.0000091 acc=1.0000000 +INFO:__main__:step=24000 loss=0.0000045 acc=1.0000000 +INFO:__main__:step=24100 loss=0.0000023 acc=1.0000000 +INFO:__main__:step=24200 loss=0.0000197 acc=1.0000000 +INFO:__main__:step=24300 loss=0.0000013 acc=1.0000000 +INFO:__main__:step=24400 loss=0.0000174 acc=1.0000000 +INFO:__main__:step=24500 loss=0.0000380 acc=1.0000000 +INFO:__main__:step=24600 loss=0.0000105 acc=1.0000000 +INFO:__main__:step=24700 loss=0.0000001 acc=1.0000000 +INFO:__main__:step=24800 loss=0.0000193 acc=1.0000000 +INFO:__main__:step=24900 loss=0.0000280 acc=1.0000000 """ pattern = re.compile(r"step=\s*(\d+)\s+loss=([0-9.]+)\s+acc=([0-9.]+)") @@ -270,7 +270,7 @@ plt.xlabel("Step") plt.ylabel("Loss (log scale)") plt.title("Training Loss vs Step") plt.tight_layout() -plt.savefig('training_loss_v_step.png') +plt.savefig('./files/training_loss_v_step.png') plt.show() # Plot 2: Accuracy @@ -282,5 +282,5 @@ plt.xlabel("Step") plt.ylabel("Error rate (1 - accuracy) (log scale)") plt.title("Training Error Rate vs Step") plt.tight_layout() -plt.savefig('training_error_v_step.png') +plt.savefig('./files/training_error_v_step.png') plt.show() diff --git a/pairwise_comp_nn.py b/pairwise_comp_nn.py new file mode 100644 index 0000000..39d9953 --- /dev/null +++ b/pairwise_comp_nn.py @@ -0,0 +1,34 @@ +import torch +from torch import nn + +# 2) Number "embedding" network: R -> R^d +class NumberEmbedder(nn.Module): + def __init__(self, d=8): + super().__init__() + self.net = nn.Sequential( + nn.Linear(1, 16), + nn.ReLU(), + nn.Linear(16, d), + ) + + def forward(self, x): + return self.net(x) + +# 3) Comparator head: takes (ea, eb) -> logit for "a > b" +class PairwiseComparator(nn.Module): + def __init__(self, d=8): + super().__init__() + self.embed = NumberEmbedder(d) + self.head = nn.Sequential( + nn.Linear(2 * d + 1, 16), + nn.ReLU(), + nn.Linear(16, 1), + ) + + def forward(self, a, b): + ea = self.embed(a) + eb = self.embed(b) + delta_ab = a - b + x = torch.cat([ea, eb, delta_ab], dim=-1) + + return self.head(x) # logits \ No newline at end of file diff --git a/pairwise_compare.py b/pairwise_compare.py index f49c7e7..f9517c0 100755 --- a/pairwise_compare.py +++ b/pairwise_compare.py @@ -6,6 +6,8 @@ import torch from torch import nn from torch.nn import functional as F +import pairwise_comp_nn as comp_nn + # early pytorch device setup DEVICE = torch.accelerator.current_accelerator() if torch.accelerator.is_available() else "cpu" @@ -17,6 +19,8 @@ TRAIN_PROGRESS = 100 BATCH_LOWER = -512.0 BATCH_UPPER = 512.0 DO_VERBOSE_EARLY_TRAIN = False +MODEL_PATH = "./files/pwcomp.model" +LOGGING_PATH = "./files/output.log" def get_torch_info(): log.info("PyTorch Version: %s", torch.__version__) @@ -47,47 +51,14 @@ def sample_batch(batch_size: int, low=BATCH_LOWER, high=BATCH_UPPER): # eq = (a == b).float() # y = gt + 0.5 * eq return a, b, y - -# 2) Number "embedding" network: R -> R^d -class NumberEmbedder(nn.Module): - def __init__(self, d=8): - super().__init__() - self.net = nn.Sequential( - nn.Linear(1, 16), - nn.ReLU(), - nn.Linear(16, d), - ) - - def forward(self, x): - return self.net(x) - -# 3) Comparator head: takes (ea, eb) -> logit for "a > b" -class PairwiseComparator(nn.Module): - def __init__(self, d=8): - super().__init__() - self.embed = NumberEmbedder(d) - self.head = nn.Sequential( - nn.Linear(2 * d + 1, 16), - nn.ReLU(), - nn.Linear(16, 1), - ) - - def forward(self, a, b): - ea = self.embed(a) - eb = self.embed(b) - delta_ab = a - b - x = torch.cat([ea, eb, delta_ab], dim=-1) - - return self.head(x) # logits def training_entry(): # all prng seeds to 0 for deterministic outputs durring testing # the seed should initialized normally otherwise set_seed(0) - model = PairwiseComparator(d=DIMENSIONS).to(DEVICE) - # opt = torch.optim.AdamW(model.parameters(), lr=2e-3) - opt = torch.optim.Adadelta(model.parameters(), lr=1.0) + model = comp_nn.PairwiseComparator(d=DIMENSIONS).to(DEVICE) + opt = torch.optim.AdamW(model.parameters(), lr=9e-4, weight_decay=1e-3) # 4) Train for step in range(TRAIN_STEPS): @@ -112,7 +83,7 @@ def training_entry(): acc = (pred == y).float().mean().item() log.info(f"step={step:5d} loss={loss_fn.item():.7f} acc={acc:.7f}") - # 5) Quick test: evaluate accuracy on fresh pairs + # 5) Quick test: evaluate final model accuracy on fresh pairs with torch.no_grad(): a, b, y = sample_batch(TRAIN_BATCHSZ) a, b, y = a.to(DEVICE), b.to(DEVICE), y.to(DEVICE) @@ -122,13 +93,13 @@ def training_entry(): acc = (pred == y).float().mean().item() log.info(f"Final test acc: {acc} errors: {errors}") - # embed model depth into the model serialization - torch.save({"state_dict": model.state_dict(), "d": DIMENSIONS}, "model.pth") + # embed model dimensions into the model serialization + torch.save({"state_dict": model.state_dict(), "d": DIMENSIONS}, MODEL_PATH) log.info("Saved PyTorch Model State to model.pth") def infer_entry(): - model_ckpt = torch.load("model.pth", map_location=DEVICE) - model = PairwiseComparator(d=model_ckpt["d"]).to(DEVICE) + model_ckpt = torch.load(MODEL_PATH, map_location=DEVICE) + model = comp_nn.PairwiseComparator(d=model_ckpt["d"]).to(DEVICE) model.load_state_dict(model_ckpt["state_dict"]) model.eval() @@ -139,7 +110,7 @@ def infer_entry(): b = torch.tensor([[p[1]] for p in pairs], dtype=torch.float32, device=DEVICE) # sanity check before inference - log.info(f"a.device: {a.device} model.device: {next(model.parameters()).device}") + log.debug(f"a.device: {a.device} model.device: {next(model.parameters()).device}") with torch.no_grad(): probs = torch.sigmoid(model(a, b)) @@ -152,10 +123,13 @@ if __name__ == '__main__': import os import datetime + if not os.path.exists("./files/"): + os.mkdir("./files") + log = logging.getLogger(__name__) - logging.basicConfig(filename='pairwise_compare.log', level=logging.INFO) + logging.basicConfig(filename=LOGGING_PATH, level=logging.INFO) + log.info(f"Log opened {datetime.datetime.now()}") - get_torch_info() name = os.path.basename(sys.argv[0])