From dd81705532e3b97c861cacedfface1de38b28a87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lie=20saulquin?= <aurelie.saulq@gmail.com> Date: Mon, 3 Mar 2025 16:39:41 +0100 Subject: [PATCH] add bug fix --- .../__pycache__/__init__.cpython-310.pyc | Bin 273 -> 275 bytes .../project_generator.cpython-310.pyc | Bin 892 -> 894 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 429 -> 431 bytes .../modnef_builder.cpython-310.pyc | Bin 14163 -> 14165 bytes .../BLIF/__pycache__/__init__.cpython-310.pyc | Bin 516 -> 518 bytes .../BLIF/__pycache__/blif.cpython-310.pyc | Bin 8141 -> 8143 bytes .../__pycache__/blif_debugger.cpython-310.pyc | Bin 8788 -> 8790 bytes .../BLIF/__pycache__/rblif.cpython-310.pyc | Bin 8732 -> 8734 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 513 -> 515 bytes .../__pycache__/io_debugger.cpython-310.pyc | Bin 6057 -> 6059 bytes .../__pycache__/probe.cpython-310.pyc | Bin 3997 -> 3999 bytes .../SLIF/__pycache__/__init__.cpython-310.pyc | Bin 522 -> 524 bytes .../SLIF/__pycache__/rslif.cpython-310.pyc | Bin 9085 -> 9087 bytes .../SLIF/__pycache__/slif.cpython-310.pyc | Bin 8332 -> 8334 bytes .../__pycache__/slif_debugger.cpython-310.pyc | Bin 9065 -> 9067 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 479 -> 481 bytes .../__pycache__/rshiftlif.cpython-310.pyc | Bin 8893 -> 8895 bytes .../__pycache__/shiftlif.cpython-310.pyc | Bin 8044 -> 8046 bytes .../UART/__pycache__/__init__.cpython-310.pyc | Bin 716 -> 718 bytes .../__pycache__/uart_1step.cpython-310.pyc | Bin 6547 -> 6549 bytes .../uart_classifier.cpython-310.pyc | Bin 6646 -> 6648 bytes .../uart_classifier_timer.cpython-310.pyc | Bin 6768 -> 6770 bytes .../__pycache__/uart_xstep.cpython-310.pyc | Bin 6812 -> 6814 bytes .../uart_xstep_timer.cpython-310.pyc | Bin 7142 -> 7144 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 771 -> 773 bytes .../__pycache__/io_arch.cpython-310.pyc | Bin 4434 -> 4436 bytes .../modules/__pycache__/link.cpython-310.pyc | Bin 2462 -> 2464 bytes .../__pycache__/merger.cpython-310.pyc | Bin 4327 -> 4329 bytes .../modnef_arch_mod.cpython-310.pyc | Bin 5565 -> 5567 bytes .../__pycache__/splitter.cpython-310.pyc | Bin 3609 -> 3611 bytes .../__pycache__/utilities.cpython-310.pyc | Bin 5565 -> 5567 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 483 -> 485 bytes .../modnef_drivers.cpython-310.pyc | Bin 1306 -> 1308 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 907 -> 909 bytes .../classifier_driver.cpython-310.pyc | Bin 4614 -> 4616 bytes .../classifier_timer_driver.cpython-310.pyc | Bin 4962 -> 4964 bytes .../debugger_driver.cpython-310.pyc | Bin 3776 -> 3778 bytes .../default_driver.cpython-310.pyc | Bin 5151 -> 5153 bytes .../single_step_driver.cpython-310.pyc | Bin 3959 -> 3961 bytes .../__pycache__/xstep_driver.cpython-310.pyc | Bin 4936 -> 4938 bytes .../xstep_timer_driver.cpython-310.pyc | Bin 5392 -> 5394 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 390 -> 392 bytes .../__pycache__/executor.cpython-310.pyc | Bin 8195 -> 8197 bytes .../__pycache__/model.cpython-310.pyc | Bin 5519 -> 5521 bytes .../__pycache__/trainer.cpython-310.pyc | Bin 7841 -> 7843 bytes modneflib/modnef/modnef_torch/model.py | 4 +- .../__pycache__/__init__.cpython-310.pyc | Bin 565 -> 567 bytes .../modnef_torch_neuron.cpython-310.pyc | Bin 3957 -> 4004 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 476 -> 478 bytes .../__pycache__/blif.cpython-310.pyc | Bin 9297 -> 9299 bytes .../__pycache__/rblif.cpython-310.pyc | Bin 9737 -> 9739 bytes .../modnef_neurons/modnef_torch_neuron.py | 7 +- .../__pycache__/__init__.cpython-310.pyc | Bin 487 -> 489 bytes .../__pycache__/rslif.cpython-310.pyc | Bin 10176 -> 10178 bytes .../__pycache__/slif.cpython-310.pyc | Bin 9886 -> 9938 bytes .../modnef_neurons/slif_model/slif.py | 4 +- .../__pycache__/__init__.cpython-310.pyc | Bin 506 -> 508 bytes .../__pycache__/rshiftlif.cpython-310.pyc | Bin 10384 -> 10386 bytes .../__pycache__/shiftlif.cpython-310.pyc | Bin 9896 -> 9898 bytes .../quantizer/dynamic_scale_quantizer.py | 2 +- modneflib/modnef/templates/evaluation.py | 20 ++++-- .../modnef/templates/model_template.json | 6 +- modneflib/modnef/templates/run_lib.py | 8 +-- modneflib/modnef/templates/train.py | 3 +- modneflib/modnef/templates/vhdl_generation.py | 62 ++++++++++++++++++ .../__pycache__/__init__.cpython-310.pyc | Bin 232 -> 234 bytes .../__pycache__/debug_tools.cpython-310.pyc | Bin 6763 -> 6765 bytes .../__pycache__/progress_bar.cpython-310.pyc | Bin 4394 -> 4396 bytes .../tools/__pycache__/tools.cpython-310.pyc | Bin 550 -> 552 bytes 69 files changed, 94 insertions(+), 22 deletions(-) create mode 100644 modneflib/modnef/templates/vhdl_generation.py diff --git a/modneflib/modnef/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/__pycache__/__init__.cpython-310.pyc index 97bc1b55c8e564601f549461575341a326c4fe38..1c1dde05882187dd903bc32db2023dc6ab73f07e 100644 GIT binary patch delta 37 scmbQpG?|GjpO=@5fq{XcNo^w6N`5E(jQreG{nXslqQuga)QJZI0j7-#^Z)<= delta 35 rcmbQtG?9rbpO=@5fq{YHjp;<LmAnr68Tq-X`iZ4Qsl|yC4+R1MoI?tv diff --git a/modneflib/modnef/__pycache__/project_generator.cpython-310.pyc b/modneflib/modnef/__pycache__/project_generator.cpython-310.pyc index 0ed6ae3574e1b885fd45e6ef8052fe41b3c6ef24..89068c06536f19a0bb0a5a3680e80f70c5747f73 100644 GIT binary patch delta 41 wcmeyv_K%G_pO=@5fq{YHp344>+!2iY-ufB&xvBc8xv52or75YK3mAEr0R8a{RsaA1 delta 39 scmeyz_J@r-pO=@50R+_dY~+q$<n`3g$j?pHPb@7;El%8A#K^-00L_sKuK)l5 diff --git a/modneflib/modnef/arch_builder/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/arch_builder/__pycache__/__init__.cpython-310.pyc index beca1367da962b7eb394e3a253cc92cd13c99bd2..4308dabcf9c4d14bebada5ac8859587f47dbdceb 100644 GIT binary patch delta 40 vcmZ3>yq=jmpO=@5fq{XcNp1f|Zfiz<fBlU7+*JM4+|;7P(v;N6!HiJ=%xVix delta 38 ucmZ3_yq1|epO=@5fq{YH`kg%+xvd#_ef2Z)b5r#bON&yA6DNl<MgaiMq6>`x diff --git a/modneflib/modnef/arch_builder/__pycache__/modnef_builder.cpython-310.pyc b/modneflib/modnef/arch_builder/__pycache__/modnef_builder.cpython-310.pyc index 504cbd1208501c326392c20cc12ffd618f8c7d22..c406f25127fd49fb2fa45d97472e1ed400690011 100644 GIT binary patch delta 41 wcmcbdcQubYpO=@5fq{XcNp1f|ZfRcrQ2mVj+*JM4+|;7P(v;NA#=Htz00P?#UH||9 delta 39 ucmcbbcR7zcpO=@5fq{V`=iZ);+|s<f!TK5bxvBbzrA4X5iJMJ%6|?~OZwxd5 diff --git a/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/__init__.cpython-310.pyc index 49a173f5bb67900460047fbac675a8cea2b50726..3b212ee3614a9af0e36712926d9a0af16b231426 100644 GIT binary patch delta 40 vcmZo+X=CBe=jG*MU|?WqQro|gyP1(cMn5AzH&s71H?=6SG$nQNY{pCg$VLmQ delta 38 tcmZo;X<^~c=jG*MU|?X7y0d2^cQYezlzv8jZmND_X;Er%;^euEnE<!{3oHNt diff --git a/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/blif.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/blif.cpython-310.pyc index 568be1e4a271e6bda21631118f9b76c9fb817cb1..040fe846bbcb6f8bbf4df9b5e28a5ad12a442a46 100644 GIT binary patch delta 41 wcmX?Wf8L%upO=@5fq{YHR^7pk+-dy$5&9YVxvBc8xv52or75YK>-hZz01jXcSO5S3 delta 39 ucmX?af7YHmpO=@5fq{X6+48_f?lgYhF#U}D+*JL<(xTMj#LW%-{sI8jr3-QZ diff --git a/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/blif_debugger.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/blif_debugger.cpython-310.pyc index f26b4ad62659ef74bee083693bd48d6b90387cc8..4c7adf2fd3f71ce35ab11fe96a27b7d63136292e 100644 GIT binary patch delta 41 xcmccOa?OQ1pO=@5fq{YHR^7pk+<yi56ZJFlb5r$Gb5n~FOH)!eiwfEc0stPg4VwS} delta 39 vcmccSa>a!^pO=@5fq{YHm&JjN+<ygl<MlK0b5r#bON&yA6E}+s+6w{z{)7yx diff --git a/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/rblif.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/BLIF/__pycache__/rblif.cpython-310.pyc index 4e31889f75440e53700938c74798b2545c29eacf..fb965733990fb968c4295ce59133d280b66e824b 100644 GIT binary patch delta 41 xcmbQ^GS7uOpO=@5fq{YHR^7pk+*btnBlR=#b5r$Gb5n~FOH)!ezY#DH1ON;m4Z#2a delta 39 vcmbQ|GRK8GpO=@5fq{X6)AGPZ?kfVk;rbc*xvBbzrA4X5iJRXE7zhFY)X@v! diff --git a/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/__init__.cpython-310.pyc index 0313b89029f0785da81763dd763cc417c34d4f12..23dbf6a2431fa81ae5e82ddb6ab8f6736f62f106 100644 GIT binary patch delta 40 vcmZo<X=dTh=jG*MU|?WqQro|gyM~cJK|douH&s71H?=6SG$nQN6vkWt#{CPP delta 38 tcmZo>X=LHf=jG*MU|?V{zq4l}cMT(NoPI`rZmND_X;Er%;^b+Jxd6GH3q1e; diff --git a/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/io_debugger.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/io_debugger.cpython-310.pyc index 632637f4b04527ac1d3a24443b51a76fa6b16e06..d6934bb2ce045f16e4c53312eee37254567e81f9 100644 GIT binary patch delta 41 xcmZ3fzgnL=pO=@5fq{YHp344>++Vr*ll3$5b5r$Gb5n~FOH)!e^YYB$1^@vg4FUiF delta 39 vcmZ3jzfzw&pO=@5fq{Wx#qFINxxaGrChBM8=cei>mKLQJCvN8FnZpeL@;VH( diff --git a/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/probe.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/Debugger/__pycache__/probe.cpython-310.pyc index 025d27c86cb4916634bc580991341d7529948ff5..b5aca3ec23fe746f1a58cc580f5362e1341163f0 100644 GIT binary patch delta 41 xcmbO$KVP0ZpO=@5fq{XcNp1f|?oM|8SpAIr+*JM4+|;7P(v;NA3)%m$0|4g}4CMd- delta 39 vcmbO)KUbbRpO=@5fq{Xc=K7wE+@0*a(fS$rxvBbzrA4X5iJKR*|6vCJ-rEes diff --git a/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/__init__.cpython-310.pyc index 4b8b352519bdebb320160c2186cdf940c56d2c37..11372a818f7faeb3c9066dcae0fe361f4801f7cd 100644 GIT binary patch delta 40 vcmeBT>0#l{=jG*MU|?WqQro|gyOWVWMn5AzH&s71H?=6SG$nQNLdHx0%CHN< delta 38 tcmeBS>0;r|=jG*MU|?WKzO!c|cPArnlzv8jZmND_X;Er%;^f7QnE=6N3ylB( diff --git a/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/rslif.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/rslif.cpython-310.pyc index 2fd88315cecd4c559ef0a74974fa1fbb69db7a79..5b24aaa0885c2131c19871a86faad975048e3a34 100644 GIT binary patch delta 41 xcmezC_TP;=pO=@5fq{YHR^7pk+-C&&BlR=#b5r$Gb5n~FOH)!eKM|ZM2mmV|4&nd+ delta 39 vcmezG_ScO&pO=@5fq{WR!ScXH?lXeC;rbc*xvBbzrA4X5iJPAZ&J+Xy^r#IP diff --git a/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/slif.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/slif.cpython-310.pyc index 0ed76f720997c9f2cea75aa090f94651f8cf6f72..0d8c1b1a45c2393e1a95b5db6af34b5151be82c0 100644 GIT binary patch delta 41 xcmeBi>~rMK=jG*MU|?XlRd;YB_g#Me2>p!w+*JM4+|;7P(v;NAU-_pC000Nc4iEqU delta 39 ucmeBk>~ZAI=jG*MU|?X-wmh(r`z}9kn0`inZmND_X;Er%;^y!C(**$3EDTZr diff --git a/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/slif_debugger.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/SLIF/__pycache__/slif_debugger.cpython-310.pyc index 578980bf699a17a8260c15fbff0abd40db19fa0d..688996fdb1d7ba04678c1533fe2f12bc15bc8d67 100644 GIT binary patch delta 41 wcmaFq_S%g*pO=@5fq{YHR^7pk+|GjhiTWA&xvBc8xv52or75YKqXqed02TKQCIA2c delta 39 ucmaFu_R@_zpO=@5fq{WR&GNuTZf8N>c>Rq0+*JL<(xTMj#LcmSd_n->ZVO`o diff --git a/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/__init__.cpython-310.pyc index 5b336006bc2d68f872a4292e44a989684ee8312d..8cbca87881ffe66fa5a11be3486cefa94dbb4c98 100644 GIT binary patch delta 40 vcmcc5{E(SDpO=@5fq{XcNp1f|?ifb?1pSQs+*JM4+|;7P(v;N6C5+hs;4=&s delta 38 tcmaFJe4m*+pO=@5fq{V`;Le_n+%b&2arzngxvBbzrA4X5iIdA1vjNl)3(f!l diff --git a/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/rshiftlif.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/rshiftlif.cpython-310.pyc index ef94eeaa41b2c199155b197196909bdd76832f9b..ef88812d033c70331c774b00676de730d57e7ff8 100644 GIT binary patch delta 41 wcmdn%y5E&MpO=@5fq{YHR^7pk+(v@@iTWA&xvBc8xv52or75YKy#$K|0S4y{4gdfE delta 39 ucmdn*y4RIEpO=@5fq{WR#PYyKZX-e7c>Rq0+*JL<(xTMj#LYf}#ex9QU<)|_ diff --git a/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/shiftlif.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/ShiftLIF/__pycache__/shiftlif.cpython-310.pyc index edf37d966fa90c6e91a105a1378a9859a3220549..dd41a74e4baaf20d00b6e5493b1c643fcb77d102 100644 GIT binary patch delta 41 xcmaE3_s)(xpO=@5fq{YHR^7pk+}rs16ZA9kb5r$Gb5n~FOH)!epW~m$4*(%=4vGK( delta 39 vcmaE7_r{JppO=@5fq{X6+xEal?rr?MarzngxvBbzrA4X5iJLF*&*KLG>A(!I diff --git a/modneflib/modnef/arch_builder/modules/UART/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/UART/__pycache__/__init__.cpython-310.pyc index 7aa1604b449f29837446d2f22b53a805f4b74b37..cf5c9c4e01956a3dd5c85e024469634d1ed2f5dd 100644 GIT binary patch delta 40 vcmX@ZdXAMlpO=@5fq{XcNp1f|Zg(dB82ya=+*JM4+|;7P(v;N6@l3e@*ue|R delta 38 tcmX@ddWMxdpO=@5fq{Xc<<6ds-0n=gQTiGAxvBbzrA4X5iIWqVaskpN3$_3N diff --git a/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_1step.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_1step.cpython-310.pyc index edc5d4ea2f5a0ebef07f8f16f02a0ad9c7a74ae9..69d087a20a122cec41b12ce0a485df447c63546a 100644 GIT binary patch delta 41 xcmbPiJk^*xpO=@5fq{XcNp1f|?!CPHarzngxvBc8xv52or75YKuk!BW1_1B54Kx4% delta 39 vcmbPgJlU8#pO=@5fq{X6|JI(3+<SR>WArofb5r#bON&yA6E|Py-Ny|8+#C$4 diff --git a/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_classifier.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_classifier.cpython-310.pyc index 1031f5807b624699fe65cf0e3423a0c6d8b74442..0e0f80c34b414e363044e482446988cf3c8bd99d 100644 GIT binary patch delta 41 wcmexn{KJ?#pO=@5fq{XcNp1f|?o2-ZWc`f%+*JM4+|;7P(v;NAjeMot00qYl5C8xG delta 39 ucmexi{LPp<pO=@5fq{X+^VXh?+?jm5iTWA&xvBbzrA4X5iJP1GO1S~|4-CHm diff --git a/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_classifier_timer.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_classifier_timer.cpython-310.pyc index 897da078dec9b61ae3e492a84cf343cd4a94f887..5a5ad6d89b739e5c66e9c2ee2e4370ff6ce4ae9c 100644 GIT binary patch delta 41 xcmexh^2vldpO=@5fq{XcNp1f|?k+z5O#O`f+*JM4+|;7P(v;NAi}=oQ0{{rx4W|GA delta 39 vcmexl^1*~VpO=@5fq{WR_tu_`++BRU>G~P@xvBbzrA4X5iJO=3o#O@o_Ye&_ diff --git a/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_xstep.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_xstep.cpython-310.pyc index e2b148f4a5ea72035d5422a1e2d2770232092533..143fe5c97041ee9b3da589451f8776a67bb5b5cc 100644 GIT binary patch delta 41 xcmbPZI?t3lpO=@5fq{XcNp1f|?tOgxarzngxvBc8xv52or75YKukjt@1_1ME4ORdE delta 39 vcmbPdI>(edpO=@5fq{Xc{MMe0-23==WArofb5r#bON&yA6F1-BJH`zF>MRX2 diff --git a/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_xstep_timer.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/UART/__pycache__/uart_xstep_timer.cpython-310.pyc index 16115cffb25cfc60343cb1f99576c213c47ba0ed..4c97b527667dc00bf23e9f78bddaf62a14f15c7b 100644 GIT binary patch delta 41 xcmaE6{=%F)pO=@5fq{XcNp1f|?#2B4Df$`txvBc8xv52or75YKck^rW000NK4JH5p delta 39 vcmaE1{>+>^pO=@5fq{V`_ST+_+>7~nlk_w4b5r#bON&yA6F2YW*X98L`o9e6 diff --git a/modneflib/modnef/arch_builder/modules/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/__pycache__/__init__.cpython-310.pyc index a51edfc92ae452cb40440d421be6bec3f0d7c74d..480f3a76c61303ed6d7e42c98351997089123c1d 100644 GIT binary patch delta 40 vcmZo>Yh~lk=jG*MU|?WqQro|gyPSzXTt6c}H&s71H?=6SG$nO%KT`<+$0rM% delta 38 tcmZo=Yi8rl=jG*MU|?X_b!X2;?s6vHQ2mVj+*JL<(xTMj#K{wxN&v>33%&pV diff --git a/modneflib/modnef/arch_builder/modules/__pycache__/io_arch.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/__pycache__/io_arch.cpython-310.pyc index 4d96392ddfe15b191e182cd3aa304e5a41212ef9..c11e8191b2021f4bbe1c2487ac946ccb9bebdfec 100644 GIT binary patch delta 41 xcmcblbVZ3fpO=@5fq{XcNp1f|?mkxjF#U}D+*JM4+|;7P(v;NA%UIWN0|58B4F~`L delta 39 vcmcbjbV-RjpO=@5fq{Wx-K{+vx%*goL-aH9b5r#bON&yA6F0A5UBe9k^a%|d diff --git a/modneflib/modnef/arch_builder/modules/__pycache__/link.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/__pycache__/link.cpython-310.pyc index 818b986d5cf5f95fa4e36c387429bb1af859a62e..dff228052806107800c758b77f241aec9f4cb670 100644 GIT binary patch delta 41 xcmbOyyg-;cpO=@5fq{YHp344>-1}JggY`4=b5r$Gb5n~FOH)!eUt>AJ0s!%@4NL$4 delta 39 vcmZ1=JWrTApO=@5fq{WRptyS@_dXWhK>dvT+*JL<(xTMj#LYKYPOty~#v}{S diff --git a/modneflib/modnef/arch_builder/modules/__pycache__/merger.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/__pycache__/merger.cpython-310.pyc index f21c44887ddbbadd156e313ba6709699a2eebe3d..85e7cd04fe794501ce7b8dd0bfeedb27c39bf3e0 100644 GIT binary patch delta 41 xcmaE^_)?KOpO=@5fq{XcNp1f|?gyOwq52v5xvBc8xv52or75YKe{jBM0{{nt4jBLd delta 39 vcmaE<_*{`YpO=@5fq{YH%&k2exgT)y2J2_!=cei>mKLQJCvN`5`JN2`1>+7& diff --git a/modneflib/modnef/arch_builder/modules/__pycache__/modnef_arch_mod.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/__pycache__/modnef_arch_mod.cpython-310.pyc index dbd537fe9a3c3c215a0a421d119a235811f28397..96808468206aa92abe194e4f66f87fc58f75ada0 100644 GIT binary patch delta 41 xcmdn1y<eL<pO=@5fq{XcNp1f|?#*ocarzngxvBc8xv52or75YKPqTgE0|5CK4UGT* delta 39 vcmdn5y;qw%pO=@5fq{X+;`W}6+?&~WWArofb5r#bON&yA6E~k_`@{zT=~oRb diff --git a/modneflib/modnef/arch_builder/modules/__pycache__/splitter.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/__pycache__/splitter.cpython-310.pyc index 3d1e766bf9ec8f673aa84f47da0bd003c979baa8..e2feb521748e5addea4cd30b98727ef1da954dc7 100644 GIT binary patch delta 41 xcmbO!Gh2o`pO=@5fq{XcNp1f|?z`;#;rbc*xvBc8xv52or75YKzp|^a0RZcq44?o2 delta 39 vcmbO&GgF2;pO=@5fq{V`_V%8Q+;`b|L-jNAb5r#bON&yA6E}ZnS78GH;35oU diff --git a/modneflib/modnef/arch_builder/modules/__pycache__/utilities.cpython-310.pyc b/modneflib/modnef/arch_builder/modules/__pycache__/utilities.cpython-310.pyc index d5d3137b5a44eddfb4553d6c6b4cff1640631648..f3ee189828c2c136bf2b9f2067e9e8023a393833 100644 GIT binary patch delta 41 wcmdn1y<eL<pO=@5fq{XcNp1f|Zb26Q2>p!w+*JM4+|;7P(v;NAnk-WU0p^|y<NyEw delta 39 vcmdn5y;qw%pO=@5fq{Xc@%EmL+=48;Vfq>QxvBbzrA4X5iJP@qrU(K6-<%7~ diff --git a/modneflib/modnef/modnef_driver/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/modnef_driver/__pycache__/__init__.cpython-310.pyc index cbc1e081252e5e639174f5ae3c33e76252839f87..7ed166a750428e76a5e48a84ce183718d7d99b66 100644 GIT binary patch delta 40 vcmaFN{FIqHpO=@5fq{XcNp1f|?mR~R0R4>o+*JM4+|;7P(v;N6ZH%!1;qMG2 delta 38 ucmaFL{Fs?LpO=@5fq{YH_PsqDx$_u#{q!^Pb5r#bON&yA6DM~t#sUE2dkkp+ diff --git a/modneflib/modnef/modnef_driver/__pycache__/modnef_drivers.cpython-310.pyc b/modneflib/modnef/modnef_driver/__pycache__/modnef_drivers.cpython-310.pyc index d643ce5865d1ad4547af351f25fb6b123e8797fa..4ea19e770fec6da940aa1ca36c48e816ed0ab69f 100644 GIT binary patch delta 41 xcmbQmHHV8kpO=@5fq{XcNp1f|?lsK(Vfq>QxvBc8xv52or75YKk1&TZ0s!GG3_t(? delta 39 vcmbQkHH(WopO=@5fq{YH?Y%u4xz{lBhUjPH=cei>mKLQJCvHB*9L5L$<xLEi diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/__init__.cpython-310.pyc index 063a6d8e0a1751a5009e9a0755b0c7d49d8f2d98..9dbb2e23b522fb6fd1116dcb80128e79c2cbdffd 100644 GIT binary patch delta 40 vcmeBX?`7xC=jG*MU|?WqQro|gn~j-2LO&xvH&s71H?=6SG$nPi9CI!JzWoZw delta 38 tcmeBW?`G%D=jG*MU|?WacW=)|ZZ>A#F#U}D+*JL<(xTMj#K{WGxd6T}3g7?$ diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/classifier_driver.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/classifier_driver.cpython-310.pyc index 027077ce472bc383f5cc509c64f7d59a42c96409..ecded845d49b6daae1185cc2f89bf0c1cc0c8072 100644 GIT binary patch delta 41 wcmZou=}_U$=jG*MU|?Xlr?P(|_f>ZOME#8X+*JM4+|;7P(v;NAZ`mce0P)le*8l(j delta 39 ucmeBBX;b0O=jG*MU|?VnDDK|KeU+UzUOyv0H&s8ev?#SWar1k2NiG1!77JSd diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/classifier_timer_driver.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/classifier_timer_driver.cpython-310.pyc index bfebacf98ca8c275d2f8e2fa5488f0d5aa8b7f5e..92666ae9aca58b6dc694328f791196d46ec4e89d 100644 GIT binary patch delta 41 wcmaE)_C$?4pO=@5fq{YHp344>-1Z#&>G~P@xvBc8xv52or75YK!#TLQ0sqttVgLXD delta 39 ucmaE&_DGF8pO=@5fq{WRptyS@w><}Ms(wa(ZmND_X;Er%;^s&WZf*e6yb9(3 diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/debugger_driver.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/debugger_driver.cpython-310.pyc index 5a2207dbda1e0a8c33f149be8b07835177996f91..e0195173998ec9c3f79622491e95cb0db1c06886 100644 GIT binary patch delta 41 xcmX>gdq|c$pO=@5fq{YHp344>+#A{W<MlK0b5r$Gb5n~FOH)!epJe;a4gmjt4a@)l delta 39 vcmX>kdq9>upO=@5fq{WRptyS@_eM6}SpAIr+*JL<(xTMj#LcJKzOw@W(?SeT diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/default_driver.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/default_driver.cpython-310.pyc index 3a70b1174b21782c614c029ebb851ca670601751..f5d062b248598377a283f83205a51b475e6907de 100644 GIT binary patch delta 41 xcmbQQu~36MpO=@5fq{YHp344>+|wEP<McD~b5r$Gb5n~FOH)!euV*X}0s!<j4CMd- delta 39 vcmZ3eF<*l_pO=@5fq{X6UwZvU?&*xYG5Q(#xvBbzrA4X5iJLbv76<_V!$1o( diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/single_step_driver.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/single_step_driver.cpython-310.pyc index cda761c3d3188513187ff3927e93249fb75ac927..2f1bfbe239c326a6a00b6330b646969fb00ba825 100644 GIT binary patch delta 41 xcmew^_fw8LpO=@5fq{YHp344>+-KPMlk_w4b5r$Gb5n~FOH)!eKVh590RR(O4iW$W delta 39 vcmew<_g#)VpO=@5fq{WRptyS@_Zc?c1pSQs+*JL<(xTMj#LdsxCUXD)<?;-c diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/xstep_driver.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/xstep_driver.cpython-310.pyc index f2df55ed699b718ef35b6b84b649539327239d0d..7ac36b8fd1a27a44d38070835f9793951c86bf57 100644 GIT binary patch delta 41 xcmX@1c1n#qpO=@5fq{YHp344>+@9?GG5Q(#xvBc8xv52or75YK6WO100|5Dj4G{nU delta 39 vcmX@5c0!FipO=@5fq{Wxdd9kq+@9>bQTiGAxvBbzrA4X5iJOzzpK}8M-NXzu diff --git a/modneflib/modnef/modnef_driver/drivers/__pycache__/xstep_timer_driver.cpython-310.pyc b/modneflib/modnef/modnef_driver/drivers/__pycache__/xstep_timer_driver.cpython-310.pyc index 162197a96e629f1d95847dbc965401506d2eac6e..7e0954cd4a565ec0a7405db25eb4747d3a686395 100644 GIT binary patch delta 41 xcmbQBHA#y*pO=@5fq{YHp344>+_4<|N%|T2xvBc8xv52or75YKOF3rq008S#42}Q* delta 39 ucmbQFH9?CzpO=@5fq{WRptyS@cPs~Qf__GRZmND_X;Er%;^uOW**pNiK?@Q9 diff --git a/modneflib/modnef/modnef_torch/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/modnef_torch/__pycache__/__init__.cpython-310.pyc index fb5f930237a51ae64b29d117c9107ba84b67fbc0..688e6e42278306ca30b5072399745da945a9723c 100644 GIT binary patch delta 40 vcmZo;?qKH5=jG*MU|?Xds5`omTY!<@Uq2&1H&s71H?=6SG$nPi24frmz7Yz- delta 38 tcmeBRZe!-o=jG*MU|?W)Saf6~w*VuruYN{;ZmND_X;Er%;$$txH~_ar3Y7o= diff --git a/modneflib/modnef/modnef_torch/__pycache__/executor.cpython-310.pyc b/modneflib/modnef/modnef_torch/__pycache__/executor.cpython-310.pyc index a88847587dcf292e4dbb58e5a3712a9c5738a936..c129b94075bfc856c0e4e603adb7f7ac77f53225 100644 GIT binary patch delta 41 wcmZp6Xm#Mu=jG*MU|?XlRd;YB_eO4hfBlU7+*JM4+|;7P(v;NAC%LUe0RAcsIsgCw delta 39 ucmZp5Xm;Sv=jG*MU|?W4?s;G%_eO4BU;T{y+*JL<(xTMj#LcI<twaFao(w1e diff --git a/modneflib/modnef/modnef_torch/__pycache__/model.cpython-310.pyc b/modneflib/modnef/modnef_torch/__pycache__/model.cpython-310.pyc index 980e74db9a47de5f660f7f5c0d7efaab3cda51b7..a836e86c21a81e76ff5d2d204e321e780265c201 100644 GIT binary patch delta 191 zcmeCzo~X^6&&$ijz`(#TY5LK0`Hj5K7)3c!*-|)D+0s~2xKg-VSfkie6jC@hb1+r1 z^84s#<maa9r{<;>C6=b7PVQrWz*@w~z`!uMgd>^l7E4+|dgA0e99|r5MS=_r3`OFT zbvZM*#X(F75Ft5v0jIhsn9mR5g9!l;OKkETPQ}UpI13oXH|KM$W@HrEEX{MAozZRb XW8rWCF_01k5TODhL^gYgxH19&EDtTy delta 189 zcmbQJ-LK7?&&$ijz`(#zP<13-WFzl0Mp5=uwiJ$3wltO$&J?Z|)+qKAg%pm>988t0 zyk7bl`MIh3iKRuU#fg(Aus>kC#gbN#o;bObBbl{Gh=GA&@;weO_98(B28JSu$p)Mm z+!7$BB#022yqHs66wK!b@xg=uh$TMxKBpq1+a#_6Mv2XZT&o!wMK{ax9A{??nfz2Z UTtFP8Mgc^qfC$meJ|eD+09Z3C=>Px# diff --git a/modneflib/modnef/modnef_torch/__pycache__/trainer.cpython-310.pyc b/modneflib/modnef/modnef_torch/__pycache__/trainer.cpython-310.pyc index 18e25f81bcf3e35df0c64461da7b3606c3a31ae7..12b280a2c752f9041d1674f3a54e26f20c2bdb51 100644 GIT binary patch delta 41 xcmZ2zyV#aHpO=@5fq{X+qVDKM?h_pRe)<{txvBc8xv52or75YKA8;HL1pxSM4S@gv delta 39 vcmZ2%yU><9pO=@5fq{WxZt;<g+$T7Aee^T(b5r#bON&yA6E{ENI4BAL=hY1n diff --git a/modneflib/modnef/modnef_torch/model.py b/modneflib/modnef/modnef_torch/model.py index 8eaf453..5d32870 100644 --- a/modneflib/modnef/modnef_torch/model.py +++ b/modneflib/modnef/modnef_torch/model.py @@ -83,7 +83,7 @@ class ModNEFModel(nn.Module): def __train(self, mode, quant, hardware, fpga): self.hardware_estimation_flag = hardware - self.fpga = fpga + self.fpga_eval_flag = fpga for m in self.modules(): if isinstance(m, ModNEFNeuron): @@ -92,7 +92,7 @@ class ModNEFModel(nn.Module): return super().train(mode=mode) - def train(self, mode : bool = True, quant : bool = True): + def train(self, mode : bool = True, quant : bool = False): """ Set neuron model for trainning """ diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/__pycache__/__init__.cpython-310.pyc index bdf280b17bc37b26bd5d68650f91c7c7912058d0..c73777892c62178df480b384ce51bad9a4eb9605 100644 GIT binary patch delta 40 wcmdnWvYmxHpO=@5fq{XcNp1f|?hTCmarzngxvBc8xv52or75YCPcY^J0NcY1YybcN delta 38 ucmdnavXzB9pO=@5fq{WR^z6Qk+#48qWArofb5r#bON&yA6DOZy%mo0*qYK;s diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/__pycache__/modnef_torch_neuron.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/__pycache__/modnef_torch_neuron.cpython-310.pyc index 895a5aacc1efbab760c5e04db68a67bb7652872b..efe2984b5c8c023df426bfa8a8b30c250932f54b 100644 GIT binary patch delta 736 zcmew=w?v*dpO=@5fq{YH(6poJt{ZtZSs7POHfNnJBFezP@GDb4BR@A)KQ%YCD6upp zb@LNeVMcC{Oc9t6o6N-S%_uS1k3CUbl7WF?C1a5Y0|Ns@5~|`DdpM)SWH}BqQILuv zIdu6<js!-D$)`A0Xo2K4nZYL9;!4XeN=}W>%*!mf#hOx5S&)ii=p0Um$q`)A;VFy@ z85tQ;7=ppLh=YNFL6fNn<ewrHkb9UQrm^Jar=S?Xz`$^evpBURzOXbguOyCvfuR_r zmyMByiI0)x|73kGBMl`628J5O8isfX$ymc!#9za(fC*|RQ!qmcQ!s-j^W<hOBhL^& zP39s_kl)~z7pa1{;7|Y)VjxR}GZKqZ$`gxH<5P=EGIJA4GV}9NK-Pn_v9Yo-PX5Lf z&nPiDjQfoxQg{?;fy~kd5n!{x1lT~K^wg60q|(fsl+>d5-29Z%oYefu)jZP-g+XBf z3C$v1kkyRY$Uz7a;Q@sJ%t4Klop@*J=z*+2k0Y>JkUcQ9ogh^TliB%H88s*C^4X<| zgOqS5=Oh*v=cblq<fjzLf|SUE2t^RV4N}0GnO9<L1df>^b&#kANR+v_q^L*-#FYUN x1|Y%^M1VbsAjBqL;8PRk<`d%KC}IP7j-$vFq>OtqC%>5hLLHbTHrbzF4FCa#nzsM| delta 659 zcmZ1?|5c7RpO=@5fq{XczU@f5#ztOERz}Uq=B%@YL>L$tex>VY<maa9Czcka7AJ0g z#wyIn4H7Q`6QYw@*u5FWCkL=6ic2ssFsx)O5@ujvfJj1BoL~=U6rZfXVI~SvQ6!5l zpUsiLC_ecN#|kZwye2c)gj-x``9;a8@tJv<CAU~pN-7IdQ4F2O>0rggz`)?lz`#%p za(oSA4MRLb3PUi1CZnGwV-Y9FHB1n*SaS1IP_-L!3A2H;b1_a1;4+&0oKr}khH)Vy zBSQ*fFc@nxO<u)iB<H8eRKx*tuo{R^0TEzdfeFz`+_G#SSvJ<ms@(C6;*(ps-&i7f zqDT{@K?_8HHGm0G1_p*(Lg}d`@kynbIVq_{@wxdar8%j2lUMOfGZbQAV1Ncekq$^D zV>YtCK_WcGsU`6liA5>piAAXmlM8ug>ga;3Ko3~3T97?3wH+W;@{`T@R2elU$MD&u zih-1HC+8#<7w4vyWaOt5$$*r|fd~Z<0See#teJTw#zsZTAOUbNsDrdI7nc+jX@kV1 zL4-btFaQx?Pa+7>$^ZG(gt_>HcsPpKK%V0$G65;$nry*uCV)@}W{FO&<5vR!2T6rE diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/__init__.cpython-310.pyc index 829c917976b2b648660d27dd7f7d5092f33094db..1d5db0afb7228579ffe4d11dc30014181f63dfa7 100644 GIT binary patch delta 40 vcmcb^e2<wspO=@5fq{XcNp1f|?f^#qO#O`f+*JM4+|;7P(v;N68H^<W-q8#S delta 38 tcmcb|e21AkpO=@5fq{YHkj}o1+yRWd>G~P@xvBbzrA4X5iIcM!O90J~3x)sy diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/blif.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/blif.cpython-310.pyc index 0da4515400f65ec51a49a88e508075b209f54f51..2fb28b69101f2f2cb2298ccfcfa4163a85ab0209 100644 GIT binary patch delta 41 xcmccUaoK}ApO=@5fq{X+qVDKM?q**8RQ-(n+*JM4+|;7P(v;NAvw63P0RRQV4TJyy delta 39 vcmccYanXZ2pO=@5fq{WxMd*=@+|9ha$@&@jxvBbzrA4X5iJRy0ZW99l^0Ey9 diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/rblif.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/blif_model/__pycache__/rblif.cpython-310.pyc index ce3b0d27934dac2dfcd67a029307b2f42181b0e5..04fa112e1be499b017a32f3013eb5286f9240a6e 100644 GIT binary patch delta 41 wcmeD5>Gt8y=jG*MU|?Xds5`omyOfVVO+O<)H&s71H?=6SG$nO&FJFx~0Pd^|ssI20 delta 39 ucmeD7>Ga{w=jG*MU|?Wa6nbPMcPSrlihf3ZZmND_X;Er%;^uz78gT&JHVh#E diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/modnef_torch_neuron.py b/modneflib/modnef/modnef_torch/modnef_neurons/modnef_torch_neuron.py index dbfb48a..88b04f2 100644 --- a/modneflib/modnef/modnef_torch/modnef_neurons/modnef_torch_neuron.py +++ b/modneflib/modnef/modnef_torch/modnef_neurons/modnef_torch_neuron.py @@ -94,8 +94,8 @@ class ModNEFNeuron(): def set_quant(self, mode=False): self.quantization_flag = mode - # if mode: - # self.quantize(False) + if mode: + self.quantize(False) def hardware_estimation(self, mode = False): """ @@ -103,9 +103,10 @@ class ModNEFNeuron(): """ self.hardware_estimation_flag = mode + self.quantization_flag = mode if mode: - self.set_quant(mode) + self.quantize(True) def get_builder_module(self, module_name : str, output_path : str = "."): """ diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/__init__.cpython-310.pyc index 5d278f77bee4424d05d152cf1cc01563949e8e69..fd32661148fc23d670f5c43245ea3d63de63717e 100644 GIT binary patch delta 40 vcmaFP{F0eFpO=@5fq{XcNp1f|?r28-O#O`f+*JM4+|;7P(v;N6#f&8Y<30>F delta 38 tcmaFK{G6FPpO=@5fq{YHv(CPa+|i7@>G~P@xvBbzrA4X5iIYniO90k{3*!I) diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/rslif.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/rslif.cpython-310.pyc index c689156476790470b9b7d39d1f684d72cbc014cc..6dff0a87ea8d67f9790e1af323aef976af9139f6 100644 GIT binary patch delta 41 wcmX@$f5@LZpO=@5fq{X+qVDKM?rMJiH2sYH+*JM4+|;7P(v;NAllgTe008q0-T(jq delta 39 vcmX@)f54wRpO=@5fq{WxR_Kw9+|~TNDf$`txvBbzrA4X5iJPbL>q-Cs?5GS) diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/slif.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/__pycache__/slif.cpython-310.pyc index 56a8d34cf4cbbbb57ba5f63a00f4e82af30ca69b..5cd752e41e71aff3db61b39b420b47b0704dffc3 100644 GIT binary patch delta 658 zcmbQ|d&!qCpO=@5fq{YH$mFBx5?UMiO!)az^)vEwQ}t7GQ;QNyQ&Knk^K)@YJYZm8 zsA0%rNMV#@NMXumDzd6!$YLxqom?m>R$sza!`#fs2vWda!(76V#hJp~%T&t@6EEQ^ z;RdNF;Z9*`W|U@VW=vrf0jXw4VYFe$V@+X$7;VE)!jr{Y!&t+R#h1koCIw0aYZ$VG zni;{gFq9U7(xS~Ewbtxl?d*~eBRQZn$fcaU+_fw<ELmb;!^BG@YM4^EdYKs+YFL69 zG`XvuOqOA{pPVJNo>P<Y7HdjLWkKp>N$E+9l9Sg+%Sqf~Ehx&&D=Cs@U|=XxXJBBs z#hRH{Vr(?|y!0l1GX@3*J^?mHF-8tX0Y;9^Ju<3{j5(7x$r_91fYf_4FfgoSD&hsP zV;C41CjXIDVD#E7E9cH=Q^3H$5aOrF1u?l0q@)N$=z<8aZW#~@WJHlHh$ROi_(4SR z<OTBTjFFp9$eS{TVAELwQdJ5fycif5G?~FJxW$#0UzD60pP83gQUr2MkpV~rm@ou+ zjH9qLF|Q=EDm8m^pyFgk#@fwKmBJVWDnP0#K|~dZsGjVtBFk7iIa5V}v3+uv%50T< zkT57{iqb(WgyrQRZas)-n4F*{J~>HMTTGviUqFaSh>MYllaH|ol<qWzi&`cxR`p`c JnEXz40|0_umbL%@ delta 569 zcmccQJI|LdpO=@5fq{Wxa_Eut>zW(+O!#?|^)vEwQ}q)|i&BddHwW@_an+w<U|^_W z$YMxglw?R@%4RCkuVKhyEYd1rDq*f+$YN<`1k<d|jLl57%ry)P*lL&;GS)Jeu$OSu zFgG)naHKFdGfFcwGp4YJKuxk?$YV`mg_vr?P{NtTRl``rkj0(F115P(_-Yuk_?sC^ z_-X<fvIM{khAcrSEz}HB%m&uZCJ8Z;9ZG{7$<fPQ%TmLVB@8x9q(roaDTT9_nUSG} zC73~zYqF!%hsjpblNiM&pOuzlEs_QW0kg~|ZX*T;20j5cMlnXN%|~QZ85uJtzmhe! z$Yfw(DDq}tU|7ji#LK|IaEmpiq_QBj$N(e`CJaHM{Dq~7c_o=usqy8hnduoN9-D*Z z+!^I^85kHs{4}}1))eJ|^yGsGT@aBud563#W5MKW^6HG?oBzq1GD@MV04Xa15yg{z z6=fI;Cub?jFlKIUSDehqSiM<VIgC-D3?y9+A}T;c<>W>cS;p$g^HmfWTPGh-nXQ%s z5>^K}k~K50#Mr0^VjxJg6hzd5h`P!3s!n3MeEb4JOhR0YOq_g-MWE!NDO}Vv`MRnX KW9nojwG9BxjfX)1 diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/slif.py b/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/slif.py index a7b89eb..994bb39 100644 --- a/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/slif.py +++ b/modneflib/modnef/modnef_torch/modnef_neurons/slif_model/slif.py @@ -299,7 +299,9 @@ class SLIF(LIF, ModNEFNeuron): if self.hardware_description["variable_size"]==-1: if self.hardware_estimation_flag: val_max = max(abs(self.val_max), abs(self.val_min)) - val_max = self.quantizer(val_max) + print(val_max) + val_max = self.quantizer(val_max, dtype=torch.int32) + print(val_max) self.hardware_description["variable_size"] = ceil(log(val_max)/log(256))*8 else: self.hardware_description["variable_size"]=16 diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/__init__.cpython-310.pyc index b0d94c36d8094814dcfa4056130323bffdb3350d..41deef92f558133490ec72f27c3405cadf873a70 100644 GIT binary patch delta 40 vcmeyx{D+x4pO=@5fq{XcNp1f|?p#LxEd7l9+*JM4+|;7P(v;N6t&F7r>fQ{3 delta 38 tcmeyv{EL}8pO=@5fq{V``TV|(+_{Xr8TuLdxvBbzrA4X5iIdwIO99^M3_<_^ diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/rshiftlif.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/rshiftlif.cpython-310.pyc index fc3997c992141b7289ae5141eb50036c7311aa12..b67d63b627c11cf4a3af22935eb3059308965d9e 100644 GIT binary patch delta 41 wcmbObI4O`jpO=@5fq{X+qVDKM?s9(qZ2gS<+*JM4+|;7P(v;NA{rrrQ0P-OWQ~&?~ delta 39 vcmbOfI3bWbpO=@5fq{YHVCa#J+~xednfe*|xvBbzrA4X5iJK?#GfDyg;*ksL diff --git a/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/shiftlif.cpython-310.pyc b/modneflib/modnef/modnef_torch/modnef_neurons/srlif_model/__pycache__/shiftlif.cpython-310.pyc index 70eb665a7242039cc59cb7aeb23a76d5ccffe1f7..ae445a6e642de63fca47ed05affc89f74da21634 100644 GIT binary patch delta 41 wcmZ4CyULe4pO=@5fq{X+qVDKM?lwODEd7l9+*JM4+|;7P(v;NA^Z2+V0Quq!p8x;= delta 39 vcmZ4GyTX?{pO=@5fq{YHV(5{L+--ck8TuLdxvBbzrA4X5iJKSjaY+CG>xc|R diff --git a/modneflib/modnef/quantizer/dynamic_scale_quantizer.py b/modneflib/modnef/quantizer/dynamic_scale_quantizer.py index 4255dea..6b98e21 100644 --- a/modneflib/modnef/quantizer/dynamic_scale_quantizer.py +++ b/modneflib/modnef/quantizer/dynamic_scale_quantizer.py @@ -146,7 +146,7 @@ class DynamicScaleFactorQuantizer(Quantizer): born_max = 2**(self.bitwidth-int(self.signed))-1 #scaled = torch.clamp(data/self.scale_factor, min=born_min, max=born_max).to(dtype) - scaled = (data/self.scale_factor).to(dtype) + scaled = torch.round(data/self.scale_factor).to(dtype) if unscale: return scaled*self.scale_factor diff --git a/modneflib/modnef/templates/evaluation.py b/modneflib/modnef/templates/evaluation.py index 40d7147..aa74e22 100644 --- a/modneflib/modnef/templates/evaluation.py +++ b/modneflib/modnef/templates/evaluation.py @@ -3,6 +3,7 @@ from torch.utils.data import DataLoader from modnef.modnef_torch import ModNEFModelBuilder import os from snntorch.surrogate import fast_sigmoid +import torch from run_lib import * import sys @@ -23,7 +24,6 @@ if __name__ == "__main__": """Kind of run eval : full precision evaluation qeval : quantized evaluation - heval : hardware estimation evaluation feval : FPGA eval """ @@ -37,6 +37,11 @@ if __name__ == "__main__": save_conf_matrix = False output_path = "." + """FPGA file definition""" + driver_config_path = "driver_config" + board_path = "" + + """Output variable definition""" acc = 0.0 y_true = None @@ -65,22 +70,23 @@ if __name__ == "__main__": testLoader=testLoader, name=exp_name, device=device, - verbose=verbose + verbose=verbose, + quant=False ) elif kind == "qeval": - # TODO - raise NotImplementedError() - elif kind == "heval": - acc, y_pred, y_true = hardware_estimation( + acc, y_pred, y_true = evaluation( model=model, testLoader=testLoader, name=exp_name, device=device, - verbose=verbose + verbose=verbose, + quant=True ) elif kind == "feval": acc, y_pred, y_true = fpga_evaluation( model=model, + driver_config=driver_config_path, + board_path=board_path, testLoader=testLoader, name=exp_name, verbose=verbose diff --git a/modneflib/modnef/templates/model_template.json b/modneflib/modnef/templates/model_template.json index 31fd483..cbf8673 100644 --- a/modneflib/modnef/templates/model_template.json +++ b/modneflib/modnef/templates/model_template.json @@ -1,5 +1,5 @@ { - "name" : "blif_model", + "name" : "template_model", "input" : 2312, "num_class" : 10, @@ -71,8 +71,8 @@ "hardware" : { "clock_name" : "clock", - "clock_freq" : 125000000, - "baud_rate" : 921600, + "clock_freq" : 100000000, + "baud_rate" : 460800, "txd" : "uart_txd", "rxd" : "uart_rxd", "queue_read_depth" : 4096, diff --git a/modneflib/modnef/templates/run_lib.py b/modneflib/modnef/templates/run_lib.py index 38bec42..5a98742 100644 --- a/modneflib/modnef/templates/run_lib.py +++ b/modneflib/modnef/templates/run_lib.py @@ -160,14 +160,14 @@ def __run_accuracy(model, testLoader, name, verbose, device): return (correct/total), y_pred, y_true -def evaluation(model, testLoader, name="Evaluation", device=torch.device("cpu"), verbose=False): +def evaluation(model, testLoader, name="Evaluation", device=torch.device("cpu"), verbose=False, quant=False): accuracy = 0 y_pred = [] y_true = [] model = model.to(device) - model.eval() + model.eval(quant) accuracy, y_pred, y_true = __run_accuracy(model=model, testLoader=testLoader, name=name, verbose=verbose, device=device) @@ -187,7 +187,7 @@ def hardware_estimation(model, testLoader, name="Hardware Estimation", device=to return accuracy, y_pred, y_true -def fpga_evaluation(model, testLoader, name="FPGA Evaluation", verbose=False): +def fpga_evaluation(model, testLoader, board_path, driver_config, name="FPGA Evaluation", verbose=False): accuracy = 0 y_pred = [] y_true = [] @@ -196,7 +196,7 @@ def fpga_evaluation(model, testLoader, name="FPGA Evaluation", verbose=False): model = model.to(device) - model.hardware_estimation() + model.fpga_eval(board_path, driver_config) accuracy, y_pred, y_true = __run_accuracy(model=model, testLoader=testLoader, name=name, verbose=verbose, device=device) diff --git a/modneflib/modnef/templates/train.py b/modneflib/modnef/templates/train.py index 3a5bc0c..03603ec 100644 --- a/modneflib/modnef/templates/train.py +++ b/modneflib/modnef/templates/train.py @@ -4,6 +4,7 @@ from modnef.modnef_torch import ModNEFModelBuilder import os from snntorch.surrogate import fast_sigmoid from run_lib import * +import torch if __name__ == "__main__": @@ -21,7 +22,7 @@ if __name__ == "__main__": device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu") """Train variable definition""" - n_epoch = 10 + n_epoch = 1 best_model_name = "best_model" verbose = True save_plot = False diff --git a/modneflib/modnef/templates/vhdl_generation.py b/modneflib/modnef/templates/vhdl_generation.py new file mode 100644 index 0000000..82dbb71 --- /dev/null +++ b/modneflib/modnef/templates/vhdl_generation.py @@ -0,0 +1,62 @@ +import tonic +from torch.utils.data import DataLoader +from modnef.modnef_torch import ModNEFModelBuilder +import os +from snntorch.surrogate import fast_sigmoid +from run_lib import * +import torch + +if __name__ == "__main__": + + """Experience name""" + exp_name = "Evaluation" + + """Model definition""" + model_path = "model_template.json" + best_model_name = "best_model" + + model = ModNEFModelBuilder(model_path, spike_grad=fast_sigmoid(slope=25)) + + model.load_state_dict(torch.load(best_model_name)) + + + """Device definition""" + device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu") + + """Hardware Estimation variable definition""" + verbose = True + + + """VHDL file definition""" + output_path = "." + file_name = "template_vhdl_model.vhd" + driver_config_path = "driver_config" + + """DataSet Definition""" + dataset_path = f"{os.environ['HOME']}/datasets" + + # data set definition, change to your dataset + sensor_size = tonic.datasets.NMNIST.sensor_size + frame_transform = tonic.transforms.ToFrame(sensor_size=sensor_size, n_time_bins=10) + + test_set = tonic.datasets.NMNIST(save_to=dataset_path, train=False, transform=frame_transform) + + # batch loader + batch_size = 64 + + testLoader = DataLoader(test_set, batch_size=batch_size, shuffle=True, drop_last = True, collate_fn = tonic.collation.PadTensors(batch_first=True)) + + acc, y_pred, y_true = hardware_estimation( + model=model, + testLoader=testLoader, + name=exp_name, + device=device, + verbose=verbose + ) + + model.to_vhdl( + file_name=file_name, + output_path=output_path, + driver_config_path=driver_config_path + ) + \ No newline at end of file diff --git a/modneflib/modnef/tools/__pycache__/__init__.cpython-310.pyc b/modneflib/modnef/tools/__pycache__/__init__.cpython-310.pyc index 433bd5153761041e9a7b0e5108f10728f669159f..455a3df5ea3b57687638aaf66ecd1ccebabe0520 100644 GIT binary patch delta 38 ucmaFC_==G`pO=@5fq{YHp344-+_n53`WgATsrsq8sYQvUDX9~u1_J=ttqg1c delta 36 scmaFG_=1r;pO=@5fq{Wx#qFIFxodgd^fU5vQ}q)|i&BddCr%Fr0Lv^49smFU diff --git a/modneflib/modnef/tools/__pycache__/debug_tools.cpython-310.pyc b/modneflib/modnef/tools/__pycache__/debug_tools.cpython-310.pyc index 7373ac7fad706a146f118601318dbb3123a95b0e..14c552144a335170490a5b2f9347fcae3490b3e7 100644 GIT binary patch delta 41 wcmaED^45eqpO=@5fq{WR?``r%ZXb4jZ~ct?+*JM4+|;7P(v;NADeUaR0REW_O#lD@ delta 39 ucmaEB^4f$upO=@5fq{WRIXrSBw+}n7r+!9$ZmND_X;Er%;^s7Vc3}Y2EDG5G diff --git a/modneflib/modnef/tools/__pycache__/progress_bar.cpython-310.pyc b/modneflib/modnef/tools/__pycache__/progress_bar.cpython-310.pyc index 8fb07f1a6b9ca0be63668e7b6f3111abd74de7a4..7ff530185a29e27e4f0cf63c852d48e0133fe0a2 100644 GIT binary patch delta 41 wcmZ3bv_^?LpO=@5fq{YHp344>+=A@<KKdE?xvBc8xv52or75YKHQ5=t0Oj}#W&i*H delta 39 ucmZ3Zv`UFPpO=@5fq{WRptyS@w;(&OmwrZmZmND_X;Er%;%04jMlJxmWC`j3 diff --git a/modneflib/modnef/tools/__pycache__/tools.cpython-310.pyc b/modneflib/modnef/tools/__pycache__/tools.cpython-310.pyc index e89b569d9d84a8c70c8e5ec1829f0dc296d16587..cacc8d6fb7c08e77f0f3a0174a21268fab587a25 100644 GIT binary patch delta 40 wcmZ3+vVw&>pO=@5fq{WR?``r%?rKJUSN)9q+*JM4+|;7P(v;N6lNl!i0Me}t2mk;8 delta 38 tcmZ3%vW$g0pO=@5fq{WRIXrSBcQqrgvwlW?ZmND_X;Er%;^e7}lL4zj3X}i< -- GitLab