From dd4fd8e43bf3e8462f32966ee36aa95f266de17a Mon Sep 17 00:00:00 2001 From: Jorgedavyd Date: Wed, 10 Jul 2024 13:13:46 +0000 Subject: [PATCH] Automatically formatted with black --- .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 347 bytes .../__pycache__/_version.cpython-310.pyc | Bin 0 -> 191 bytes lightorch/__pycache__/hparams.cpython-310.pyc | Bin 0 -> 2709 bytes .../nn/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 342 bytes .../nn/__pycache__/complex.cpython-310.pyc | Bin 0 -> 958 bytes .../nn/__pycache__/criterions.cpython-310.pyc | Bin 0 -> 9251 bytes lightorch/nn/__pycache__/dnn.cpython-310.pyc | Bin 0 -> 1741 bytes .../nn/__pycache__/fourier.cpython-310.pyc | Bin 0 -> 7690 bytes .../nn/__pycache__/functional.cpython-310.pyc | Bin 0 -> 8537 bytes .../__pycache__/monte_carlo.cpython-310.pyc | Bin 0 -> 1252 bytes .../__pycache__/normalization.cpython-310.pyc | Bin 0 -> 1004 bytes .../nn/__pycache__/partial.cpython-310.pyc | Bin 0 -> 2765 bytes .../nn/__pycache__/utils.cpython-310.pyc | Bin 0 -> 3375 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 166 bytes .../__pycache__/residual.cpython-310.pyc | Bin 0 -> 2589 bytes lightorch/nn/sequential/residual.py | 4 +- .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 274 bytes .../__pycache__/attention.cpython-310.pyc | Bin 0 -> 8172 bytes .../__pycache__/embedding.cpython-310.pyc | Bin 0 -> 2018 bytes .../__pycache__/ffn.cpython-310.pyc | Bin 0 -> 5554 bytes .../__pycache__/positional.cpython-310.pyc | Bin 0 -> 3310 bytes .../__pycache__/transformer.cpython-310.pyc | Bin 0 -> 5525 bytes lightorch/nn/transformer/transformer.py | 12 +++--- .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 161 bytes lightorch/training/supervised.py | 22 ++++++----- requirements.txt | 36 +++++++++--------- tests/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 148 bytes .../test_nn.cpython-310-pytest-8.2.2.pyc | Bin 0 -> 18515 bytes ...st_supervised.cpython-310-pytest-8.2.2.pyc | Bin 0 -> 155 bytes tests/__pycache__/utils.cpython-310.pyc | Bin 0 -> 2767 bytes 30 files changed, 38 insertions(+), 36 deletions(-) create mode 100644 lightorch/__pycache__/__init__.cpython-310.pyc create mode 100644 lightorch/__pycache__/_version.cpython-310.pyc create mode 100644 lightorch/__pycache__/hparams.cpython-310.pyc create mode 100644 lightorch/nn/__pycache__/__init__.cpython-310.pyc create mode 100644 lightorch/nn/__pycache__/complex.cpython-310.pyc create mode 100644 lightorch/nn/__pycache__/criterions.cpython-310.pyc create mode 100644 lightorch/nn/__pycache__/dnn.cpython-310.pyc create mode 100644 lightorch/nn/__pycache__/fourier.cpython-310.pyc create mode 100644 lightorch/nn/__pycache__/functional.cpython-310.pyc create mode 100644 lightorch/nn/__pycache__/monte_carlo.cpython-310.pyc create mode 100644 lightorch/nn/__pycache__/normalization.cpython-310.pyc create mode 100644 lightorch/nn/__pycache__/partial.cpython-310.pyc create mode 100644 lightorch/nn/__pycache__/utils.cpython-310.pyc create mode 100644 lightorch/nn/sequential/__pycache__/__init__.cpython-310.pyc create mode 100644 lightorch/nn/sequential/__pycache__/residual.cpython-310.pyc create mode 100644 lightorch/nn/transformer/__pycache__/__init__.cpython-310.pyc create mode 100644 lightorch/nn/transformer/__pycache__/attention.cpython-310.pyc create mode 100644 lightorch/nn/transformer/__pycache__/embedding.cpython-310.pyc create mode 100644 lightorch/nn/transformer/__pycache__/ffn.cpython-310.pyc create mode 100644 lightorch/nn/transformer/__pycache__/positional.cpython-310.pyc create mode 100644 lightorch/nn/transformer/__pycache__/transformer.cpython-310.pyc create mode 100644 lightorch/training/__pycache__/__init__.cpython-310.pyc create mode 100644 tests/__pycache__/__init__.cpython-310.pyc create mode 100644 tests/__pycache__/test_nn.cpython-310-pytest-8.2.2.pyc create mode 100644 tests/__pycache__/test_supervised.cpython-310-pytest-8.2.2.pyc create mode 100644 tests/__pycache__/utils.cpython-310.pyc diff --git a/lightorch/__pycache__/__init__.cpython-310.pyc b/lightorch/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..20a72eb6092babd7778c1aac4c7b3dc0bfe1a1d7 GIT binary patch literal 347 zcmYjMu};G<5Ve!EbxS+5Fk}rw!VW?mU_rn_rz|HcHi;p&D<>&xe}IkuU|{VJ@E2a0 z*qNBPv_k4he$V&b-Lq_GvkAfad3}4_B7gPGVFlRC@ib=$f(TlZ#h&SogF4V*9@4!Q zp%&%?5#>WMcp%B}o8nqRJv~J@0$54cC~E+^6EtqDD`kAeS4za!rcjNI@3?C}KaAXL zj-Ps0q|y}Y#?DL4Rh<@A-zOs<7~@&%xH8I=p8dzV5JU4(wd9WL#!mov*H+d6_%VR& z69C?c8{^mxe$TVYYMHst80oSX>z=b)RaOh@it6B2qt@;;0DQ9rNSABRF0>V0Eid~| PHd6#f7@bl^qkz#ruwG#E literal 0 HcmV?d00001 diff --git a/lightorch/__pycache__/_version.cpython-310.pyc b/lightorch/__pycache__/_version.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7e4b701134249aa8ab011bd94ba8c2e6fdd69771 GIT binary patch literal 191 zcmd1j<>g`kf-miTX&ONKF^Gc<7=auIATH(r5-AK(3@MDk44O<;;?>n*u0g?`{(kWR zK90_=9{xTqu0gf6ewvK8xZ~r?Qj3Z+^Yh~4S27ea0d<0jU)K5=`MIh3MWuOpsYUwb w`9<0KKAGtmA^Ang8Az-gpjZi53}%jALFFwDo80`A(wtN~kdul*hH@|f03`M@FaQ7m literal 0 HcmV?d00001 diff --git a/lightorch/__pycache__/hparams.cpython-310.pyc b/lightorch/__pycache__/hparams.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..74bcf8142670c50839b62ca2db15f0b068583fc9 GIT binary patch literal 2709 zcmZ`*-ESPX5npmYZg=lPcakhyvYi~-rz;Q%X_BH445uGPo)RN~6+bKzEcTYXyFKm4 zndHgQb?-?AbVZ>218D#W=u7^E{2u`dzV;=0cN)NM>JGVgvYMc~;4EjzA%`=+8E(;R z`UX7DPrn>|(J+jED(3og1DHQRa05hKM?}y=@Hewm~+jNp1k&f&LbCX@`1Rev|r@ly)?Ki+0F1T_-!&=G-P|uu1Na zyU(0pgP=!7?~O}1o$;`T<;I7}a3u01A3lgg^ie^kDV1wi!b;GyrTd6JnbJI_(*1Lk zrcocJSr3v}Nb`^Rv9v$QlOpdSSvz1+l2dkY>B0_|4v?NH{YjFC8O;iIEbI9+3!fJ3 zkTNd)ek9^i$deiU;8I0KTJe-bmq;mZ0h#&z!P~!kD@#77WcZ1GzI(stNhd9aL&}0p znk!qvctqpFNs;6NjuQA;^m#}pMLgm`J&I$RQWlAV$r_KT0g++f%W04$D>Azk3{Gf2>>;)TX9&E} zWC_ffr;{8KZSNbSS7Qos(i|j0`j9?37m=zHCKoJd$51T#QGB?{mV9?|EWNAT{534a)p{+wj$82h*hMY0i7eAaF4{sC zUPsO=%bM+s#8eg0-Fs;PN9Ol;uNKis3pWHM$uxrs>0RaX!R0G>dKSA2TLi6P97Y2H zbweX6={-dzA@YWg^yOVK;1l~$FufI^T?{><~>!hq9)$)2Z+r?TGjs_pl?y)Ee!6L5c2Vae8uKwhf2$~%CnaF7;}c;~la z7Kv<{f=`!qp8X0eV=Br)BW5%b6t03PIhHOg2*rLzr9EMAr$}c|FwmA}N^|K{z7Bk4 zV-+oFYjdPi87OUqa=20`*siV~NC&u*g8FL>E}iOJ>@C>8*QsEv0j=?^v8*lt9U2WH zjgw{3ukIT58)dt#jn=1UZ!3*^K%|vN8C}|_t?w_(<&X|yZ5c0>-uy!# z-5vLK1No2z7RCzqCPu5*dAaGj$U$xFLQbqB>s7^`jAN|3Z6rSwpJwWD)pR zsa*6f%$K&tgpR#5A;Q|83c+2qs3uD+SJ(S}l@a`7AgqLufNuh p&U1|Me>P406S(W&j*VaX4t~+{@Q>iYf8jd*!EfN__*U!t{{q8l){_7L literal 0 HcmV?d00001 diff --git a/lightorch/nn/__pycache__/__init__.cpython-310.pyc b/lightorch/nn/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d42fe0c96220c698681980906d9557cecaaf8f12 GIT binary patch literal 342 zcmYk0JyOFk5QQb1U?sr~w=f01KqkWhGBl)e89-Ur d7Ob!9+wnE1-GJ@v%>MNI>6%3eC6|3A{{YOLTZaGu literal 0 HcmV?d00001 diff --git a/lightorch/nn/__pycache__/complex.cpython-310.pyc b/lightorch/nn/__pycache__/complex.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9d286388c49c6a88571e659789960b29dbec643b GIT binary patch literal 958 zcmZWoJ8u&~5Z<}ld)U|{ph!FvAxl(O5VsT%5GfE6aRI5WS)FdziNoEkvwKz^a+gTy z_zg*!KfsUKmWqyoii(-F6D$~MMmw`J`^|iFr~CabL-}?2b^Hw&`%ccPaCF|H+Lve~ zlTfi5a;Sqm0P=$>ta;9Xy=O9%{DMiY;4nH5^H}nI$P*cTW?B3Lt63JfplMvZry8qG z1}>FKO-nsJE$Mny2$sZdqfsme$?`x#9?C%R!-$~9{F049Ml!zWAy}dk8LDK=Why%t zJWnqfXL$#~yDr($^|VqaXYaZLl;?w`@4a0uXO$YXdeEApv14uOL8F@&<)UVwr^*zq zHg?OWySVlRE;g#2nPyZ5zSD)FGiiuwpP^~lIlF>u25b&-)Ux>iFoYZ_&S z$J%@uew^$d>}gXTteh&0;UpMqn&EQ3t?8-h;FI@IExp}^81BQ_`jVrqyRP8mzfmL1 z-=V@yG;?-^Lmt94NF4Agz;k#F8|)Dc8jMacWkr6z$+)3!&vB!Q$`HQele*Z?0@Fjs zJRq}nXVxhp!Sx&$Mv`NR=uJ3VyX|y&hYLq4o1#`oWmgb+xL`c@ggBZN)$%40Lh4co zL(jN)*JpVu3~kSBP`JNjxl~n!seilaQwnuqhyzlaqDdKt$I;WsM@L!eBG0$S@XtC< l-@D(ed2(Csu$ST=01xG7PG2o1*v9{JfwIne@G$JI{Q>NR+iw5> literal 0 HcmV?d00001 diff --git a/lightorch/nn/__pycache__/criterions.cpython-310.pyc b/lightorch/nn/__pycache__/criterions.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d7df19e28ed90040d7cf1c78184e35d864208581 GIT binary patch literal 9251 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 G!~X-XAZsE3 literal 0 HcmV?d00001 diff --git a/lightorch/nn/__pycache__/dnn.cpython-310.pyc b/lightorch/nn/__pycache__/dnn.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c2cd3a712f67a8fe91e81423b1dc8df6a48ca5cb GIT binary patch literal 1741 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 literal 0 HcmV?d00001 diff --git a/lightorch/nn/__pycache__/functional.cpython-310.pyc b/lightorch/nn/__pycache__/functional.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c5ac2391328c725db0395d3d6ef72fd567943ef1 GIT binary patch literal 8537 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 V;;_lhPbtkwwF6mE%mgG@7yu>$DMbJP literal 0 HcmV?d00001 diff --git a/lightorch/nn/sequential/__pycache__/residual.cpython-310.pyc b/lightorch/nn/sequential/__pycache__/residual.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8d69c9e29538e3cd487b8616dadff960f141bf73 GIT binary patch literal 2589 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 Gw)G2AqHgB^ literal 0 HcmV?d00001 diff --git a/lightorch/nn/transformer/__pycache__/positional.cpython-310.pyc b/lightorch/nn/transformer/__pycache__/positional.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0318b35be59a74227778d95da6dfcea962604251 GIT binary patch literal 3310 zcma)8&u<*J6(%`9ceE=jw&K`UQf$yP$+ohUx@ZjqM$;lH3KZ_9NQ@R(B$$qtTxsOl znH6W&`hn4a!?OI4*B@VAwPcKdsB2e z5ySJJFQ1J5`5I&YqR#opMdw#2txnpnO*|y01 zf!|`kWzv)WVgC>l zOmw-OIFd zI_Z?FXeb64*+59HoK1Hmq)?u8P+SziHVVIFBQ6Q7&cK(R3gAOPxdV*2Y|sKYbLLuu z!5IXz4IeGM$CwFZJT9;s6O?Kz&Qxx^YC~0t@wKX^I`0p?b363WroMwxK1Nlsir4Is zI1q=7vlgpy^H-S^4@7zScT75u_+NPC9Jo@@$f0xK9kQCmzI1D+W}AM^m)I4yM7DtZ zYH^75;t=f?#zU0gP|&P>54H$puJ+*L9SZohCBq@T{*l05G)J{}?c_k+@wBYEYpN^L zhuyW^?(KDq;`#SSy^it9=|pKwM=@a>r+He%F-~6S;fC=Oo#gAvc%!UHs=+0TN1RW` zN+<9b1dU*bz$lGF3xFX`w z@!s3t$C_I+w1x!v>>*yz!9GSQ|BR|)2fXIQicM!7tk`rVV!&U;b@nxQ@D-xOSNv1< zgdOsI+~cNq;7bQ>rxvxd$o5^#4{8?{ul6<_n*Rh0sJ(-*=7$`2?)Hz4@#r~x%wBx2 zrRUK$mma2SJ5El4*9&9~v?@1}2`<&X^y_47P4jYVs??q`?b$4?5@><$1Z(tseU%*f z&Y-n3yGc8j`WnHdQgYz!#NdD?K$~jGei6uTCtBV?r);BI=4~f*Bc~07_f8_yMOEH9 znbwPln0Yc*AZ8SkNT(UK+i|=#O|oXBIdWi$`m@`{N%P8Ht|o!%cW57-6B-Rwmc{Y8 zU0x#>+Nzbobu>ykLdb;Ya`(SNh-bnP-+>X|3V;5at8ZDqSBqIKF58G#4&s%Ic;#M* zSDtJsidp{1m64o7%nEGG3URd^v$&dHMCOR(jd(?oGp>v;)w)*7L`tr!xX==MrexJ0 zQc{{d)Fz_ZfJJyz>=CF*!K$Grf(Vh0#Woyvn|~vhP&L8Z}uxWC;=(B=$G=bH2}UUVaC&w%Ro%P`9s_v6g-l zRnI{pm?T3aP~*sS+#E45-Y`RCGoFo%&Ec)u!gZan3sJjMxNe7y!95g|_-p(~fYm?W_tADGzrk#Oc|WM!1F!ZgUxNE}u*hn6 z2?|(3VyR(oY$I`(!7uoKe$sh^k?+>^t=FI&BpZno1f>8}{Ejq<$Llvahf-d{MT$!Z z*KV2asU{$MYCNfS^)E1B+;LKE7^h5g<4lTe;|z;ZcWE+#-3uGw2_qA&CDm{vw(Af) zrlrPfO2*Kk=^%s0wo5;^hNp&ao@4Z>sz#VsQqr17I&X^w{ywy|$gduYXY*bp_Lg7i z?q+HWUR2nt>WT=L&{hbhkhS>@SCg&h*q2QuR#v^X3F255L*yn32AT+Jm1{zY^h!U= zjjlh!fboBC^WfQhyBsZ%ypZ0k+6fjD-ffcSFX^HzHZBXp1>WW%7vl1qSh?(9zS4gE Ef9)L)VgLXD literal 0 HcmV?d00001 diff --git a/lightorch/nn/transformer/__pycache__/transformer.cpython-310.pyc b/lightorch/nn/transformer/__pycache__/transformer.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b609fb07e0259ad44fe584d616dbc1370a056a07 GIT binary patch literal 5525 zcmb7I&65+y6`$_;&}dex6}x;agxIoiDpqXo0*UiU2sV_79eZ76C?8aDO@wB&>_!@i z9w`Qu_7E?XJw*j2qc00em&A?qycBrpQeHaem%I#}Wjth&{)>vqSfJDozk0KOSm zZMRdb7g4qYr|oqX>I4{?y8!VxS#j>TivM9POMM2 z;(p>@3vUg=s2L{q^+B&4K9U&qP$VlVjJJY8qwP1lQ4}^g=#fZgT)Y;xTOaiMVMK0H zzO1@&oYk9LH~*BzmH0jip-~rsQI~-T%|M1$V21X#6IhzsnmR$DRoXLJB5;G^-BP^( z9k{_l+7`MkCnyDrcda_~1HJ=}6_kS|a6HYajJZy5Bv=M_A=hsuI0_DCw~YECv~(;f z`PWq=id$XP2~|>#u{FPu?QN;az2z8Ys}&_~uN(Ixj7SPS73zYc!u~)-8%-y-b(X15 z6L0(lNZ;5s_QioAjFA`_z8pzVb7X>ABP%clLLD7hk=eKRodW~h!pPR#H%B&VZeUz9 zvNm0NC^l-v#Eu6&NbmaoRW}N6Zf)MY-c`+;xl$Xv zzUD>IdVi|3V_arDz??7yd zd&UFtg>fI{Ylb?84mCN|P)#J__CqtV8fr6E9IoCZd7Y#RlDHSzjn0jraq$h*Vjjh5 zW4JcEzecauzT;1JwRWN1Z8qBRMHJGZs)%7VE1jS7q>KE3CB4#HELA~Z6tk1DIo38R zD#Cg`JpHPbn-p*IuuPp^#{0MoGBWnHNpFh-=y9ToAEHH_0(mHN@@c6uC1|svjE^~K zSqv*PQqbLOZMriD%ERS>Qh=CtG8JGX56n3cPNGB2%!%+07^!xqa&Q(3tk0n$=Cm>A zJulUUdYe;^O+oK}m5dt6+{WoyKO&!G_`R8J&w6jIOxKPYoe-|=`F^Jx4B9N0eE$|O zI&D#O6}3o0RVL17x|?<-MTIFXk9K42&=eq996NC{Y`1+sC*$`yqDsO8X5W~{QT9zb#w-%W~vXStvhQU0Sw}o2N`YqKVEk4<+Lhw?L+G0PdImfX%m|xJ;4a7JqFfNu66_yYaT*Sj-=$>TcWMp7OwCkS6_XRj~C0WYB`(^BLqh`-z z8r?f}+c~hCHXsi$GH9UT(QOKNsn?iCoI*QbT>{SSk#%4*8JHR(QAZy|%}EXMrE6)$ zPwkROxXx90sH?@{>fDAh2vldd1Wo&pt4w?~{sgTfV;hno)Oc_jF%k!22XMA6HSgqT z@-_BN?&d)1)-*Vs!3cXiB7;0fX%pA`p{J$Mf^M&Ud*XPRbU7QVqEk{p?ESi-f?uK% z)7CuUiDg+5p7ewzhbQJYJno-*SxLQ%A?iJnHIi8`P*h#c1*i#ip5!da)Fr3pehv+s zDW)sK+$|Wq{y9%*^r&Y>Zx!Sd>6ZWb)`H@wLncq1@QH7OOiaEgvY&(z!{kG2+lC2S zS;@{yPF5;pB{y`C9Ew(1CrMtgaCZ^zP=YhS6_5XA@r`(KDwOtC@AR#Gdru$*l!1BI?K>l9S6nf6VXI7vB7g+H z>743A-J1y`0OU|_cih_@IT%yaiIhjrtT`LQiyPg3^-qoVR#5FV6acm#s`%Y%XAt+R zH^OS8Uu}mCl)F(_9jl_+Rn@UF)-p)o_UWJ8Hc{g-0d^Cv_La4REa9*67Q}t`|iJ*%_(2*&1fEL4}FH(;N#Fp6Sxn%237(! z@wINf5v{VH`ZX!~IXg`E)3)~`VDGl6xlI34?j`VS^|{7aOG}c&*h`RBeL#}wE-{B& zy;Q+=s^Bwo?cG5?ci>gF68rvuR|j(T)6nkXO6|XeD2{(%>sW{^12;kFMNlO zh7uUb90Y5SrG04hP0X#RpM&66qwkL~>?-9W1Ot7|3HnN5J#mqExWHf+80;ePaCPF5 zV(_U|#j#DiGY{hdpBW4uUq4NtuQj=R22Kl!15kulab7#qE2>FU)mKQHsRj^Mo-|rO zU0la`<$O_Vnuy@)sWG?&tXWDbmwA=U=`wM2&UJ45J)e4k_6Nf1Mw8Y$d03uUZ~P@H zQ~d19eN)S=?=i4WGl!M7ZY7f9x(#fcZFNQ(NA(3%UngtU>G=BV< zEaJ!Tz4=YQ61)Ci==%8Z(%(#$t`(=yrLjtV$R>Ke(jx1@8TueA)Hk$gQ-)q@3{2Ce zDkmW@-N764-y*N@ns`k+%<$w(x12aP!$#oa!1ee1%mFiSW@#Fi8i{>lWC8~4kwl4r z;D9F(z#JrH5{N<33dsGzYe`KIn(d9PY_yS1&!Zpb~rBi+?7bn*+awX8vbG)Z= z8F=}euP2wEDb9ohoWQ6vRL$6^tt7Vo6DF0?L~G*o@APoAN@F(; zu+dhu_N18oLzYXob*5eBAgu+xCf832zTcR;TxzXX+2~$KZ?hK#YB7PYVyuc1{*jP! OxmbC9`Q-AsQtiJ7)M7gT literal 0 HcmV?d00001 diff --git a/lightorch/nn/transformer/transformer.py b/lightorch/nn/transformer/transformer.py index 1142b54..f2e93e8 100644 --- a/lightorch/nn/transformer/transformer.py +++ b/lightorch/nn/transformer/transformer.py @@ -78,7 +78,9 @@ def __init__( fc: Optional[nn.Module] = None, n_layers: int = 1, ) -> None: - assert (encoder is not None or decoder is not None), "Not valid parameters, must be at least one encoder or decoder." + assert ( + encoder is not None or decoder is not None + ), "Not valid parameters, must be at least one encoder or decoder." super().__init__() self.embedding = embedding_layer self.pe = positional_encoding @@ -133,8 +135,8 @@ def __init__( def _single_forward( self, - cell_1:TransformerCell, - cell_2:TransformerCell, + cell_1: TransformerCell, + cell_2: TransformerCell, head_1: Tensor, head_2: Tensor, ) -> Tuple[Tensor, Tensor]: @@ -149,9 +151,7 @@ def _single_forward( return out0, out1 - def forward( - self, head_1: Tensor, head_2: Tensor - ) -> Tuple[Tensor, Tensor]: + def forward(self, head_1: Tensor, head_2: Tensor) -> Tuple[Tensor, Tensor]: for cell_1, cell_2 in zip(self.cell_1, self.cell_2): head_1, head_2 = self._single_forward(cell_1, cell_2, head_1, head_2) diff --git a/lightorch/training/__pycache__/__init__.cpython-310.pyc b/lightorch/training/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fde1de4987acd31ac7ca61f70757abed14ecfe86 GIT binary patch literal 161 zcmd1j<>g`kf-miTX(0MBh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6v7KO;XkRlle- zFE6!7zdXMvTi+)$JtHK)C^-X(l>-zj0gIIsC1&Pj=B4Y$#{=n-_;|g7%3B;Zx%nxj PIjMFa(~Fsa1PcQINGB&& literal 0 HcmV?d00001 diff --git a/lightorch/training/supervised.py b/lightorch/training/supervised.py index ce6f913..a00abde 100644 --- a/lightorch/training/supervised.py +++ b/lightorch/training/supervised.py @@ -38,15 +38,17 @@ def interval(algo: LRScheduler) -> str: else: return "epoch" -class Module(LightningModule): - """ - init: triggers: Dict[str, Dict[str, float]] -> This is an interpretative implementation for grouped optimization where the parameters are stored in groups given a "trigger", namely, as trigger parameters you can put a string describing the beginning of the parameters to optimize in a group. - optimizer: str | Optimizer -> Name of the optimizer or an Optimizer instance. - scheduler: str | LRScheduler -> Name of the scheduler or a Scheduler instance. - scheduler_kwargs: Dict[str, Any] -> Arguments of the scheduler. - gradient_clip_algorithm: str -> Gradient clip algorithm [value, norm]. - gradient_clip_val: float -> Clipping value. + +class Module(LightningModule): + """ + init: triggers: Dict[str, Dict[str, float]] -> This is an interpretative implementation for grouped optimization where the parameters are stored in groups given a "trigger", namely, as trigger parameters you can put a string describing the beginning of the parameters to optimize in a group. + optimizer: str | Optimizer -> Name of the optimizer or an Optimizer instance. + scheduler: str | LRScheduler -> Name of the scheduler or a Scheduler instance. + scheduler_kwargs: Dict[str, Any] -> Arguments of the scheduler. + gradient_clip_algorithm: str -> Gradient clip algorithm [value, norm]. + gradient_clip_val: float -> Clipping value. """ + def __init__( self, *, @@ -189,7 +191,9 @@ def _configure_scheduler(self, optimizer: Optimizer) -> LRScheduler: else: return self.scheduler(optimizer) - def configure_optimizers(self) -> Dict[str, Union[Optimizer, Dict[str, Union[float, int, LRScheduler]]]]: + def configure_optimizers( + self, + ) -> Dict[str, Union[Optimizer, Dict[str, Union[float, int, LRScheduler]]]]: optimizer = self._configure_optimizer() if self.scheduler is not None: scheduler = self._configure_scheduler(optimizer) diff --git a/requirements.txt b/requirements.txt index 480d5ff..4e898e3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,13 +2,13 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile requirements.in +# pip-compile ./requirements.in # aiohttp==3.9.5 # via fsspec aiosignal==1.3.1 # via aiohttp -alembic==1.13.1 +alembic==1.13.2 # via optuna async-timeout==4.0.3 # via aiohttp @@ -17,8 +17,8 @@ attrs==23.2.0 colorlog==6.8.2 # via optuna einops==0.8.0 - # via -r requirements.in -filelock==3.14.0 + # via -r ./requirements.in +filelock==3.15.4 # via # torch # triton @@ -26,7 +26,7 @@ frozenlist==1.4.1 # via # aiohttp # aiosignal -fsspec[http]==2024.6.0 +fsspec[http]==2024.6.1 # via # lightning # pytorch-lightning @@ -37,9 +37,9 @@ idna==3.7 # via yarl jinja2==3.1.4 # via torch -lightning==2.3.1 - # via -r requirements.in -lightning-utilities==0.11.2 +lightning==2.3.3 + # via -r ./requirements.in +lightning-utilities==0.11.3.post0 # via # lightning # pytorch-lightning @@ -58,7 +58,7 @@ multidict==6.0.5 # yarl networkx==3.3 # via torch -numpy==1.26.4 +numpy==2.0.0 # via # lightning # optuna @@ -90,14 +90,14 @@ nvidia-cusparse-cu12==12.1.0.106 # torch nvidia-nccl-cu12==2.20.5 # via torch -nvidia-nvjitlink-cu12==12.5.40 +nvidia-nvjitlink-cu12==12.5.82 # via # nvidia-cusolver-cu12 # nvidia-cusparse-cu12 nvidia-nvtx-cu12==12.1.105 # via torch optuna==3.6.1 - # via -r requirements.in + # via -r ./requirements.in packaging==24.1 # via # lightning @@ -105,24 +105,24 @@ packaging==24.1 # optuna # pytorch-lightning # torchmetrics -pillow==10.3.0 +pillow==10.4.0 # via torchvision -pytorch-lightning==2.2.5 +pytorch-lightning==2.3.3 # via lightning pyyaml==6.0.1 # via # lightning # optuna # pytorch-lightning -sqlalchemy==2.0.30 +sqlalchemy==2.0.31 # via # alembic # optuna -sympy==1.12.1 +sympy==1.13.0 # via torch torch==2.3.1 # via - # -r requirements.in + # -r ./requirements.in # lightning # pytorch-lightning # torchmetrics @@ -132,10 +132,10 @@ torchmetrics==1.4.0.post0 # lightning # pytorch-lightning torchvision==0.18.1 - # via -r requirements.in + # via -r ./requirements.in tqdm==4.66.4 # via - # -r requirements.in + # -r ./requirements.in # lightning # optuna # pytorch-lightning diff --git a/tests/__pycache__/__init__.cpython-310.pyc b/tests/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a69216b967881e82d2d47ef063fcfcc887d6f4db GIT binary patch literal 148 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 za literal 0 HcmV?d00001