From f6e0e93e2bb0b402d3790bb43ea636903214393c Mon Sep 17 00:00:00 2001 From: jxbz Date: Sat, 8 Jun 2024 22:22:52 +0000 Subject: [PATCH] deploy: 11dff95b5ea5102b9c2b30eccaca56dae85685bb --- .doctrees/environment.pickle | Bin 167640 -> 166946 bytes .doctrees/index.doctree | Bin 10265 -> 9871 bytes _images/alignment.svg | 40 ++--- _images/nn.svg | 264 ++++++++++++++-------------- _images/sweeps.svg | 30 ++-- _sources/index.rst.txt | 12 +- index.html | 13 +- plot_directive/figure/alignment.svg | 40 ++--- plot_directive/figure/nn.svg | 264 ++++++++++++++-------------- plot_directive/figure/sweeps.svg | 30 ++-- searchindex.js | 2 +- 11 files changed, 343 insertions(+), 352 deletions(-) diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 87f57ea833ffa4f6cb591c0cb2e928672996a3c3..8404646670fca89b83bdd4346117c392cc3719d8 100644 GIT binary patch delta 11258 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 delta 11262 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 HO4z>ub|Pzx diff --git a/.doctrees/index.doctree b/.doctrees/index.doctree index 174d2a778f624fd52e393ab974e9763cc146ed4e..b0966042ed80d69973b429763cd129a34a8d4e26 100644 GIT binary patch delta 3345 zcmb_eTWl0n7-qI?FLX`2z3rB^a3CyQU@sA@Bm@vi6r_Tp5+J6rv%6<|X4sus=29q$ z4kk9X$s)!xYJ5WUMGPdEhM4$fB0iBIiN-g@OBB4Is1H6E;{Tu7U8WZ(C@=q>Ip@E8 z|M&mrKl|2`$9D#g248<^L*jbdBhF zLJyY;vZ5*42+8Q6U}oh4et@EGj1gJO37Z@>l@VdEQ_tB28Jv)8fy#!^FqLAd0KuqH zG*e`+LkZJM7+khMC>Xm?AeL=pbdqJVF#?b%EfI7eLhB_;RTKx`Z%c>XM=iN99?u$qZ7Ce?Gre37L5l{|1*_t3VLGp@W zTEG>}9w5V5v_~J_O*ZD`gPVt+OOT9>yizEEu9-@X8pO0@!$K!A8Q!K?+wBavGi^#X zGRrEN8`9|!D8HR?Qdzy2Ru5;6q>G}EX`yBcw?+9t#YM@6dKvVfO##IW7qdK|GCCl- z0XA}0B%>olo!BPHj1gLtl|qUF9JZ={+1u#zWO)(9p$65mH0KUV z7{bm#!b@*cUI**zLq5*ptd7NYvHo3P`%1O7%Ik021G5TPYk?|BA%6?`;z{R#s+2SR zn4KucrZ?Fw0^H;hz`j!h8=tqqD)_3bI~CePUP~v%v5))8zIOp&e^vp`ivqB-KGvHP zq}Khugy$sqSr#lmIQ*ZkNR42>wJ+Y69>3F0f!`JL@GEZME$Ho^mtJALxyr5^cSKW% za64I<0e*I;ft!QfA7`^WcqgNwHW^mWGaCGN{hQ9UO)YSD@^}+?zUjj{b&V{k}adLUH3Fj**$r>%(97?TK z&8pJP5~@+YD7-ze96|K*QaI8`5JVU39}jo8MQez>ORFy9AB9ta0ij-}CMCYRuRUBf z0c9~09^uKh70LPW)tG^3Uv&;Nc2qdvZ?`9aIL=|b=U@aCb%PQ)E9YoY$tF!}3?BcIT%tz8dzR1$XT0}*;ZrcI+wfPx z*r$woiqMq&YJ0-jaqmL-YLKsGHET2uOhdxIYmf6Y9gTf0Gw}JGX~N{MP zHu%8hvChG6tmIU*>xLA31I$cLT6+2V==xv}9&j@{Bt@Y5PY0$%X|rzc}YR7M}}!3u@~3D1MN5bI*A9FR%t&>gQ-56Sk{B{gT8_^$esg;_gi6 z@HnZT!9jK8vwHkvr+y*vP;a8)YdBFaOZ=hU(KT0KJ>>oC)D4>`gc5Epk5are}IHQf5DI10p>GsuLY$4z?q$qS@ki; z7hL^YT*Lp9%=y0YE-x8%H3XJ@xQCZ?s&|AtuCBto6DZOksF%n(Sk6df6C~1$+jA$< z?5hgD(HP+!OCOhFQ}WW61Clm%b=jYF&UOs)2#SSBmIQ*GW~bOic7a`I*VLzQ_X!kd zP`r;~0>wCrEoit20hF8YmRMsYYU1Bq75z>MpOftL1iLuFu1^SOlfu!Ya5A9|qK8SF sb)yZ!U~4=KdBE^4VEB|>V^=%?IMh7=IJ`Un4z3UYwDr^{EB8qM0!F`S?EnA( delta 3578 zcmb_fO>7%Q6s{c{Cn1UR*ZkIHKuwc0f2D{9g)}tfuWe{?MGkGHkgV;oXQz(WtaoWr zsd9^mn$U#;vz6!p(F&m=1QICxNF2(o9JnAM!3l~gDskchQqSn0hS_uXImm*``I?aox&Z7n%BPA``3% zgjg%HL?lRZufXUG>tz+Jn~k%cgJzVSbsbn8YTD4XxEZ6!5jg-Sn1d zh1XcMi^#7O7;FT*Un1UsWKg^jZWHI~8YZkN%)POYp|(}2=t@+L!62j4ggS4tN~$ENCWFZMw%GF-50D ziE5_dCP@KSxS2J`aV2daQz@$G1=`}OPGd%DLDm^0R|iV5+<@5G$ikGSLkW(tuwi7f zqr=0Q1p{Y>G(9;!J3};`%)bLf_bir7Wf7++z=L#>Ww*f&8mdto4RUS&1|hTSp+ws2v#Az)mEjU=t=5r z7*;D}V(q?h2SXb+m5yoK3g(k!E36B8R(M(~nIkaw0I0cGc%yH_2B<&Y1iw}dAf!4? z$7tN1^yR@cTK8b8i?OlQ;<*K|e;3-sR<|6wOUl7zsRD|nXoYXhGt^Qm7kC3A2#ZU# z&7SRET6i;P6r7Rrx+^210&1~9f^FqL*Tlcm6F5)It$8ob(S+MkAIu-xsE6$Jp(t!k1`gjM z1JE3cO?Oo+)a@8)g|d|Gu%rz}pM~b4A6K(RV7Y_#4Ds35OXyxzpfv9(WtfBk4;MtRZQ9o*XxnrCd;Ma2!zKYqY{4W}`Q7S~N$eAUwY~4} zaCO=%`=yTfsr|FsQBdV$D8~KbosPwhCt!>~2hfIm%uNo0dY@nH>U?;p2WQJ2V14$& zg4Uabu*PN=m2=~aQ#eBH@B{W?US?GWUFD>Z)&Rh6S!|LUy!4!WP#TgLPiSsNB zOXBRAoPaQm9XS8r;uPn?)YrH2XZVcYcXj0?`Mn}{5xu<)f?a3V_yH|1%tYEVJv&()_YCy(G;p@f_M* zlJ=IRttDw^*<>BKQv&N}*H}WLVmBN}E$B}|8o`l-bOc8d5;i#p(hoR7Nb<~>R$W5V TjI?IZ8R%Px&02|cKj!-fjp&Oh diff --git a/_images/alignment.svg b/_images/alignment.svg index 993f2cf..478d5ea 100644 --- a/_images/alignment.svg +++ b/_images/alignment.svg @@ -6,7 +6,7 @@ - 2024-06-08T21:53:39.406946 + 2024-06-08T22:22:49.531451 image/svg+xml @@ -4467,7 +4467,7 @@ L 120.326611 147.488934 L 121.246431 147.885363 L 122.16045 148.305854 z -" clip-path="url(#p3c35cdfaaa)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/> +" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/> @@ -12777,7 +12777,7 @@ z - + diff --git a/_images/nn.svg b/_images/nn.svg index ec7d0cb..0205661 100644 --- a/_images/nn.svg +++ b/_images/nn.svg @@ -6,7 +6,7 @@ - 2024-06-08T21:53:39.093370 + 2024-06-08T22:22:49.212478 image/svg+xml @@ -4785,7 +4785,7 @@ L 357.899776 38.272893 L 358.835994 37.91927 L 359.769783 37.558358 L 361.327201 36.979368 -" clip-path="url(#p268d876d2f)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/> +" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/> - + diff --git a/_images/sweeps.svg b/_images/sweeps.svg index 92a53bc..1a09bf2 100644 --- a/_images/sweeps.svg +++ b/_images/sweeps.svg @@ -6,7 +6,7 @@ - 2024-06-08T21:53:39.189426 + 2024-06-08T22:22:49.309407 image/svg+xml @@ -8960,7 +8960,7 @@ L 281.409174 47.36454 L 281.708581 46.407928 L 282.23529 44.740358 L 281.978182 44.64 -" clip-path="url(#pc6bdfb36fc)" style="fill: none; stroke: #440154; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#pe64472300f)" style="fill: none; stroke: #440154; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#pe64472300f)" style="fill: none; stroke: #414487; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#pe64472300f)" style="fill: none; stroke: #2a788e; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#pe64472300f)" style="fill: none; stroke: #22a884; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#pe64472300f)" style="fill: none; stroke: #7ad151; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#pe64472300f)" style="fill: none; stroke: #fde725; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#pda323a5f0b)" style="fill: none; stroke: #440154; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#pda323a5f0b)" style="fill: none; stroke: #414487; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#pda323a5f0b)" style="fill: none; stroke: #2a788e; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#pda323a5f0b)" style="fill: none; stroke: #22a884; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#pda323a5f0b)" style="fill: none; stroke: #7ad151; stroke-width: 2; stroke-linecap: square"/> +" clip-path="url(#pda323a5f0b)" style="fill: none; stroke: #fde725; stroke-width: 2; stroke-linecap: square"/> + - + diff --git a/_sources/index.rst.txt b/_sources/index.rst.txt index a53208d..478d30a 100644 --- a/_sources/index.rst.txt +++ b/_sources/index.rst.txt @@ -10,23 +10,19 @@ Modula is a deep learning framework designed for graceful scaling. Neural networ Purpose of the docs ^^^^^^^^^^^^^^^^^^^^ -The purpose of these docs is three-fold: +We wrote these docs with the intention of explaining both scaling theory and the design of Modula in clear and simple terms. We hope that this will turbo charge deep learning optimization research. -1. teach scaling through code; -2. introduce the Modula API; -3. explain how to extend Modula. +If something is unclear, first check `the FAQ `_, but then consider starting a `GitHub issue `_, making a `pull request `_ or reaching out to us by email. Then we can improve the docs for everyone. Navigating the docs ^^^^^^^^^^^^^^^^^^^^ -If you don't care about Modula and just want to learn how to directly scale training in `PyTorch `_ or `JAX `_, then skip directly to the section on `golden rules for scaling `_. - -Otherwise, use the side panel or the :kbd:`←` and :kbd:`→` arrow keys to jump around the docs. +You can use the :kbd:`←` and :kbd:`→` arrow keys to jump around the docs. You can also use the side panel. Companion paper ^^^^^^^^^^^^^^^^ -If you like math better than code, then you might prefer to read `our paper `_: +If you prefer to read a more academic-style paper, then you can check out `our arXiv paper `_: .. code:: diff --git a/index.html b/index.html index 499ba49..d83a9e4 100644 --- a/index.html +++ b/index.html @@ -309,21 +309,16 @@

Welcome to the Modula docs!

Purpose of the docs

-

The purpose of these docs is three-fold:

-
    -
  1. teach scaling through code;

  2. -
  3. introduce the Modula API;

  4. -
  5. explain how to extend Modula.

  6. -
+

We wrote these docs with the intention of explaining both scaling theory and the design of Modula in clear and simple terms. We hope that this will turbo charge deep learning optimization research.

+

If something is unclear, first check the FAQ, but then consider starting a GitHub issue, making a pull request or reaching out to us by email. Then we can improve the docs for everyone.

Companion paper

-

If you like math better than code, then you might prefer to read our paper:

+

If you prefer to read a more academic-style paper, then you can check out our arXiv paper:

@article{modula,
   author  = {Tim Large and Yang Liu and Minyoung Huh and Hyojin Bahng and Phillip Isola and Jeremy Bernstein},
   title   = {Scalable Optimization in the Modular Norm},
diff --git a/plot_directive/figure/alignment.svg b/plot_directive/figure/alignment.svg
index 993f2cf..478d5ea 100644
--- a/plot_directive/figure/alignment.svg
+++ b/plot_directive/figure/alignment.svg
@@ -6,7 +6,7 @@
   
    
     
-    2024-06-08T21:53:39.406946
+    2024-06-08T22:22:49.531451
     image/svg+xml
     
      
@@ -4467,7 +4467,7 @@ L 120.326611 147.488934
 L 121.246431 147.885363 
 L 122.16045 148.305854 
 z
-" clip-path="url(#p3c35cdfaaa)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/>
+" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/>
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/>
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/>
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/>
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/>
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/>
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/>
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/>
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #ffffff; stroke-width: 4; stroke-linejoin: miter"/>
     
+" clip-path="url(#pd5addd4b4e)" style="stroke: #000000; stroke-linejoin: miter"/>
    
    
     
@@ -12777,7 +12777,7 @@ z
   
  
  
-  
+  
    
   
  
diff --git a/plot_directive/figure/nn.svg b/plot_directive/figure/nn.svg
index ec7d0cb..0205661 100644
--- a/plot_directive/figure/nn.svg
+++ b/plot_directive/figure/nn.svg
@@ -6,7 +6,7 @@
   
    
     
-    2024-06-08T21:53:39.093370
+    2024-06-08T22:22:49.212478
     image/svg+xml
     
      
@@ -4785,7 +4785,7 @@ L 357.899776 38.272893
 L 358.835994 37.91927 
 L 359.769783 37.558358 
 L 361.327201 36.979368 
-" clip-path="url(#p268d876d2f)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #000000; stroke-width: 4; stroke-linecap: square"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: none; stroke: #cd5c5c; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/>
    
    
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
     
+" clip-path="url(#p8663bcf130)" style="fill: #4682b4; stroke: #000000; stroke-linejoin: miter"/>
    
   
  
  
-  
+  
    
   
  
diff --git a/plot_directive/figure/sweeps.svg b/plot_directive/figure/sweeps.svg
index 92a53bc..1a09bf2 100644
--- a/plot_directive/figure/sweeps.svg
+++ b/plot_directive/figure/sweeps.svg
@@ -6,7 +6,7 @@
   
    
     
-    2024-06-08T21:53:39.189426
+    2024-06-08T22:22:49.309407
     image/svg+xml
     
      
@@ -8960,7 +8960,7 @@ L 281.409174 47.36454
 L 281.708581 46.407928 
 L 282.23529 44.740358 
 L 281.978182 44.64 
-" clip-path="url(#pc6bdfb36fc)" style="fill: none; stroke: #440154; stroke-width: 2; stroke-linecap: square"/>
+" clip-path="url(#pe64472300f)" style="fill: none; stroke: #440154; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#pe64472300f)" style="fill: none; stroke: #414487; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#pe64472300f)" style="fill: none; stroke: #2a788e; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#pe64472300f)" style="fill: none; stroke: #22a884; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#pe64472300f)" style="fill: none; stroke: #7ad151; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#pe64472300f)" style="fill: none; stroke: #fde725; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#pda323a5f0b)" style="fill: none; stroke: #440154; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#pda323a5f0b)" style="fill: none; stroke: #414487; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#pda323a5f0b)" style="fill: none; stroke: #2a788e; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#pda323a5f0b)" style="fill: none; stroke: #22a884; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#pda323a5f0b)" style="fill: none; stroke: #7ad151; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+" clip-path="url(#pda323a5f0b)" style="fill: none; stroke: #fde725; stroke-width: 2; stroke-linecap: square"/>
    
    
     
+  
    
   
-  
+  
    
   
  
diff --git a/searchindex.js b/searchindex.js
index b5f2b9d..4af2a1c 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["bad-scaling", "faq", "golden-rules", "history", "index", "theory/atom/conv2d", "theory/atom/embed", "theory/atom/index", "theory/atom/linear", "theory/bond/index", "theory/bond/nonlinearities", "theory/compound/gpt", "theory/compound/index", "theory/module", "theory/vector"], "filenames": ["bad-scaling.rst", "faq.rst", "golden-rules.rst", "history.rst", "index.rst", "theory/atom/conv2d.rst", "theory/atom/embed.rst", "theory/atom/index.rst", "theory/atom/linear.rst", "theory/bond/index.rst", "theory/bond/nonlinearities.rst", "theory/compound/gpt.rst", "theory/compound/index.rst", "theory/module.rst", "theory/vector.rst"], "titles": ["Bad scaling", "Frequently asked questions", "Golden rules for scaling", "The science of scale", "Welcome to the Modula docs!", "Conv2d", "Embedding", "Atomic modules", "Linear", "Bond modules", "Nonlinearities", "GPT", "Compound modules", "Modules", "Vectors"], "terms": {"At": [0, 2], "simplest": 0, "level": 0, "neural": [0, 2, 3, 4], "network": [0, 1, 2, 3, 4], "ar": [0, 1, 2], "train": [0, 1, 2, 4], "iter": [0, 2], "follow": [0, 2], "oper": [0, 2], "weight": [0, 1, 2], "learning_r": [0, 2], "gradient": [0, 2, 3], "where": [0, 2], "i": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "float": [0, 2], "loss": [0, 2], "function": [0, 2], "respect": [0, 2], "Of": 0, "cours": [0, 2], "practic": [0, 2], "we": [0, 1, 2], "mai": [0, 2], "want": [0, 1, 2, 4], "us": [0, 1, 2, 3, 4], "addit": [0, 1], "trick": 0, "momentum": [0, 2], "let": [0, 2], "": [0, 2], "ignor": 0, "detail": 0, "like": [0, 3, 4], "now": [0, 2], "unfortun": 0, "thi": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "simpl": [0, 1, 2], "descent": [0, 2, 3], "doe": [0, 1, 2], "well": [0, 1], "up": 0, "architectur": [0, 1, 2], "what": [0, 2], "mean": [0, 1, 2], "suppos": 0, "befor": 0, "grow": 0, "increas": [0, 2], "its": [0, 2], "width": [0, 3], "number": [0, 2], "neuron": 0, "layer": 0, "depth": 0, "In": [0, 1, 2], "might": [0, 2, 4], "other": [0, 1, 2, 3], "dimens": [0, 1, 2], "residu": [0, 2], "block": [0, 2], "transform": [0, 2], "stick": 0, "simplifi": 0, "pictur": 0, "under": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "can": [0, 2, 4], "break": 0, "two": [0, 3], "main": [0, 2], "wai": [0, 2], "The": [0, 1, 4], "first": [0, 2], "problem": [0, 2], "optim": [0, 3, 4], "learn": [0, 1, 2, 3, 4], "rate": [0, 1, 2, 4], "drift": 0, "certain": 0, "becaus": [0, 1, 2, 3], "need": [0, 2], "re": [0, 1], "tune": 0, "thing": 0, "which": [0, 2], "expens": 0, "time": [0, 1], "consum": 0, "second": [0, 2], "sometim": 0, "perform": [0, 2], "actual": 0, "get": [0, 1, 2], "wors": [0, 2], "even": [0, 2, 3], "remain": 0, "stabl": 0, "grew": 0, "hope": [0, 2], "make": [0, 1, 2, 3], "better": [0, 4], "These": 0, "cartoon": 0, "illustr": [0, 2], "typic": 0, "behaviour": 0, "On": [0, 2, 3], "left": 0, "right": [0, 1, 2], "deterior": 0, "good": [0, 2], "new": [0, 2], "have": [0, 1, 2], "develop": 0, "machineri": 0, "larg": [0, 2, 3, 4], "solv": 0, "woe": 0, "It": [0, 2], "turn": [0, 2, 3], "out": [0, 1, 2, 3], "defin": 0, "initi": [0, 1, 2], "along": 0, "special": 0, "normal": [0, 1, 2], "act": 0, "lead": [0, 1], "algorithm": 0, "remov": 0, "caus": [0, 2], "improv": 0, "modula": [0, 1, 2], "automat": [0, 3, 4], "infer": 0, "necessari": [0, 1], "from": [0, 2], "so": [0, 2, 3], "user": 0, "focu": 0, "write": [0, 1], "while": [0, 2], "handl": 0, "properli": [0, 1], "doc": 0, "intend": 0, "explain": [0, 2, 4], "how": [0, 2, 4], "work": [0, 1, 2, 3], "also": [0, 1, 2], "introduc": [0, 2, 4], "api": [0, 4], "case": [0, 2], "you": [0, 1, 2, 3, 4], "don": [0, 2, 4], "t": [0, 2, 4], "care": [0, 4], "about": [0, 1, 2, 4], "next": [0, 2], "section": [0, 2, 4], "manual": 0, "differ": [0, 1, 2], "framework": [0, 2, 4], "pytorch": [0, 4], "jax": [0, 4], "feel": [1, 3], "free": [1, 2, 3], "reach": [1, 2, 3], "start": [1, 2], "github": 1, "issu": 1, "ani": [1, 2], "ll": 1, "post": 1, "answer": [1, 2], "common": 1, "page": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "why": [1, 2], "modular": [1, 3, 4], "transfer": [1, 4], "across": [1, 2, 4], "scale": [1, 4], "term": [1, 2], "when": [1, 2], "updat": [1, 2], "delta": 1, "mathbf": 1, "w": 1, "norm": [1, 2, 3, 4], "cdot": 1, "_": 1, "mathsf": 1, "m": 1, "modul": 1, "y": 1, "output": [1, 2], "behav": [1, 2], "mathcal": 1, "independ": 1, "A": [1, 2, 3], "littl": [1, 2], "bit": 1, "more": [1, 2, 3], "formal": 1, "one": [1, 2], "lipschitz": 1, "leq": 1, "inequ": 1, "hold": [1, 2], "tightli": 1, "tensor": [1, 2], "align": [1, 2], "dure": [1, 2], "approx": 1, "fulli": [1, 2], "therefor": [1, 2], "provid": [1, 3], "control": [1, 2], "chang": [1, 2], "size": [1, 2], "sinc": [1, 2], "recurs": [1, 2], "each": [1, 2], "submodul": 1, "desir": 1, "properti": [1, 2], "fact": [1, 2], "extend": [1, 2, 4], "all": [1, 2], "overal": 1, "compound": 1, "orthogon": [1, 2], "intial": 1, "No": 1, "could": 1, "atom": 1, "gaussian": [1, 2], "reason": 1, "choos": [1, 2], "much": [1, 2], "easier": 1, "spectral": [1, 2, 3], "n": 1, "random": [1, 2], "matrix": [1, 2], "alwai": [1, 2], "contrast": 1, "an": [1, 2], "depend": 1, "entri": [1, 2], "wise": 1, "varianc": [1, 2], "sigma": [1, 2], "2": [1, 2], "difficult": [1, 2], "set": [1, 2], "matric": [1, 2], "benign": 1, "singular": [1, 2], "valu": [1, 2], "hand": 1, "averag": 1, "max": 1, "subtl": [1, 2], "numer": 1, "support": 1, "share": 1, "Not": 1, "yet": 1, "although": 1, "plan": 1, "implement": 1, "some": [1, 2, 3], "exampl": [1, 2], "your": 2, "huh": [2, 3, 4], "too": 2, "boil": 2, "down": 2, "few": 2, "principl": 2, "basic": 2, "algebra": 2, "bad": 2, "requir": 2, "unlearn": 2, "concept": 2, "been": 2, "taught": 2, "lectur": 2, "For": 2, "consid": 2, "activ": 2, "unit": 2, "deep": [2, 3, 4], "101": 2, "intern": 2, "quit": 2, "compar": 2, "after": 2, "step": 2, "understand": 2, "point": 2, "standard": 2, "deviat": 2, "class": 2, "def": 2, "__init__": 2, "self": 2, "fan_out": 2, "int": 2, "fan_in": 2, "torch": 2, "randn": 2, "forward": 2, "x": 2, "return": 2, "matmul": 2, "most": 2, "conduct": 2, "reduct": 2, "e": 2, "smaller": 2, "than": [2, 4], "happen": 2, "final": 2, "classifi": 2, "studi": 2, "import": 2, "larger": 2, "null": 2, "space": 2, "huge": 2, "input": 2, "map": 2, "zero": 2, "least": 2, "lie": 2, "nullspac": 2, "pick": 2, "order": 2, "compon": 2, "But": 2, "situat": 2, "non": 2, "chose": 2, "far": 2, "hindsight": 2, "blow": 2, "onli": 2, "solut": 2, "instead": 2, "assumpt": 2, "fall": 2, "small": 2, "fine": 2, "thei": 2, "quickli": 2, "warm": 2, "And": 2, "nice": 2, "bonu": 2, "show": 2, "switch": 2, "init": 2, "trivial": 2, "previou": 2, "style": 2, "think": [2, 3], "beyond": 2, "distil": 2, "tenet": 2, "call": 2, "largest": 2, "carefulli": 2, "keep": 2, "mind": 2, "design": [2, 4], "worth": 2, "expand": 2, "here": [2, 3], "sai": 2, "comput": 2, "u": [2, 3], "v": 2, "linalg": 2, "svd": 2, "tend": 2, "row": 2, "correspond": 2, "diagon": 2, "sourc": 2, "middl": 2, "net": 2, "preced": 2, "head": 2, "tail": 2, "know": 2, "both": 2, "through": [2, 4], "backpropag": 2, "appli": 2, "1": 2, "kind": 2, "everi": 2, "rest": 2, "do": 2, "should": 2, "alreadi": 2, "enough": 2, "gpt": 2, "ha": 2, "state": 2, "roughli": 2, "interv": 2, "equival": 2, "euclidean": 2, "length": 2, "math": [2, 4], "sqrt": 2, "To": 2, "achiev": 2, "tell": 2, "top": 2, "One": 2, "check": 2, "proport": 2, "intuit": 2, "factor": 2, "dimension": 2, "convert": 2, "take": 2, "vector": 2, "spit": 2, "clever": 2, "reparameter": 2, "reparameterizedlinear": 2, "empti": 2, "nn": 2, "orthogonal_": 2, "By": 2, "includ": 2, "convers": 2, "correct": 2, "easi": 2, "just": [2, 4], "exactli": 2, "our": [2, 4], "experi": 2, "found": 2, "hyperparamet": [2, 3], "As": 2, "them": 2, "grad": 2, "spectral_norm": 2, "replac": 2, "adam": 2, "express": 2, "option": 2, "decai": 2, "look": 2, "3": 2, "form": 2, "resnet": 2, "residue_list": 2, "list": 2, "block_multipli": 2, "loop": 2, "ad": 2, "sub": 2, "ensur": 2, "contribut": 2, "allow": 2, "veri": 2, "without": [2, 3], "question": 2, "third": 2, "len": 2, "add": 2, "total": 2, "sum": 2, "divid": 2, "similar": 2, "idea": 2, "seen": 2, "frac": 2, "l": 2, "mathrm": 2, "0": 2, "though": 2, "involv": 2, "prevent": 2, "link": 2, "analogi": 2, "back": 2, "plai": 2, "role": 2, "multipli": 2, "safe": 2, "equal": 2, "long": 2, "individu": 2, "accord": 2, "4": 2, "between": [2, 3], "convention": 2, "done": 2, "lambda": 2, "shape": 2, "assum": 2, "uncorrel": 2, "expect": 2, "becom": 2, "spell": 2, "clearli": 2, "quantiti": 2, "convent": 2, "wisdom": 2, "someth": 2, "logic": 2, "associ": 2, "scalabl": [2, 3, 4], "approach": 2, "base": 2, "simpler": 2, "anyth": 2, "variabl": 2, "object": 2, "same": 2, "direct": 2, "vein": 2, "obviat": 2, "histori": 2, "behind": 2, "move": 2, "autom": 2, "applic": 2, "mathemat": 2, "analogu": 2, "statement": 2, "outer": 2, "over": 2, "mlp": 2, "seem": 2, "10": 2, "paper": 2, "type": 2, "propos": 2, "smooth": 2, "limit": 2, "infinit": [2, 3], "mani": 2, "best": 2, "knowledg": 2, "natur": 2, "directli": [2, 4], "inspir": 2, "still": [3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "construct": [3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "wa": 3, "written": [3, 4], "jeremi": [3, 4], "bias": 3, "hi": 3, "view": 3, "world": 3, "he": 3, "put": 3, "counterpoint": 3, "prevail": 3, "narr": 3, "If": [3, 4], "d": 3, "mention": 3, "either": 3, "pull": 3, "request": 3, "email": 3, "twist": 3, "distanc": 3, "stabil": 3, "bernstein": [3, 4], "arash": 3, "vahdat": 3, "yisong": 3, "yue": 3, "ming": 3, "yu": 3, "liu": [3, 4], "neurip": 3, "2020": 3, "text": 3, "featur": 3, "greg": 3, "yang": [3, 4], "edward": 3, "j": 3, "hu": 3, "icml": 3, "2021": 3, "condit": 3, "jame": 3, "b": 3, "simon": 3, "arxiv": [3, 4], "2023": 3, "chri": 3, "mingard": 3, "kevin": 3, "huang": 3, "navid": 3, "azizan": 3, "tim": [3, 4], "minyoung": [3, 4], "hyojin": [3, 4], "bahng": [3, 4], "phillip": [3, 4], "isola": [3, 4], "2024": [3, 4], "grace": 4, "instal": 4, "run": 4, "pip": 4, "three": 4, "fold": 4, "teach": 4, "code": 4, "skip": 4, "golden": 4, "rule": 4, "otherwis": 4, "side": 4, "panel": 4, "arrow": 4, "kei": 4, "jump": 4, "around": 4, "prefer": 4, "read": 4, "articl": 4, "author": 4, "titl": 4, "journal": 4, "2405": 4, "14813": 4, "year": 4, "thank": 4, "gavia": 4, "grai": 4, "uzai": 4, "girit": 4, "jyo": 4, "pari": 4, "help": 4, "feedback": 4}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"bad": 0, "scale": [0, 2, 3], "frequent": 1, "ask": 1, "question": 1, "golden": 2, "rule": 2, "The": [2, 3], "linear": [2, 8], "layer": 2, "three": 2, "fix": 2, "width": 2, "depth": 2, "kei": 2, "queri": 2, "dot": 2, "product": 2, "wrap": 2, "up": 2, "scienc": 3, "warn": [3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "pre": 3, "histori": 3, "truth": 3, "reconcili": 3, "autom": 3, "train": 3, "welcom": 4, "modula": 4, "doc": 4, "purpos": 4, "navig": 4, "companion": 4, "paper": 4, "acknowledg": 4, "conv2d": 5, "embed": 6, "atom": 7, "modul": [7, 9, 12, 13], "bond": 9, "nonlinear": 10, "gpt": 11, "compound": 12, "vector": 14}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Bad scaling": [[0, "bad-scaling"]], "Frequently asked questions": [[1, "frequently-asked-questions"]], "Golden rules for scaling": [[2, "golden-rules-for-scaling"]], "The linear layer": [[2, "the-linear-layer"]], "Three golden rules": [[2, "three-golden-rules"]], "Fixing width scaling": [[2, "fixing-width-scaling"]], "Fixing depth scaling": [[2, "fixing-depth-scaling"]], "Fixing key-query dot product scaling": [[2, "fixing-key-query-dot-product-scaling"]], "Wrapping up": [[2, "wrapping-up"]], "The science of scale": [[3, "the-science-of-scale"]], "Warning": [[3, null], [3, null], [5, null], [6, null], [7, null], [8, null], [9, null], [10, null], [11, null], [12, null], [13, null], [14, null]], "Pre-history": [[3, "pre-history"]], "Truth and reconciliation": [[3, "truth-and-reconciliation"]], "Automation of training": [[3, "automation-of-training"]], "Welcome to the Modula docs!": [[4, "welcome-to-the-modula-docs"]], "Purpose of the docs": [[4, "purpose-of-the-docs"]], "Navigating the docs": [[4, "navigating-the-docs"]], "Companion paper": [[4, "companion-paper"]], "Acknowledgements": [[4, "acknowledgements"]], "Conv2d": [[5, "conv2d"]], "Embedding": [[6, "embedding"]], "Atomic modules": [[7, "atomic-modules"]], "Linear": [[8, "linear"]], "Bond modules": [[9, "bond-modules"]], "Nonlinearities": [[10, "nonlinearities"]], "GPT": [[11, "gpt"]], "Compound modules": [[12, "compound-modules"]], "Modules": [[13, "modules"]], "Vectors": [[14, "vectors"]]}, "indexentries": {}})
\ No newline at end of file
+Search.setIndex({"docnames": ["bad-scaling", "faq", "golden-rules", "history", "index", "theory/atom/conv2d", "theory/atom/embed", "theory/atom/index", "theory/atom/linear", "theory/bond/index", "theory/bond/nonlinearities", "theory/compound/gpt", "theory/compound/index", "theory/module", "theory/vector"], "filenames": ["bad-scaling.rst", "faq.rst", "golden-rules.rst", "history.rst", "index.rst", "theory/atom/conv2d.rst", "theory/atom/embed.rst", "theory/atom/index.rst", "theory/atom/linear.rst", "theory/bond/index.rst", "theory/bond/nonlinearities.rst", "theory/compound/gpt.rst", "theory/compound/index.rst", "theory/module.rst", "theory/vector.rst"], "titles": ["Bad scaling", "Frequently asked questions", "Golden rules for scaling", "The science of scale", "Welcome to the Modula docs!", "Conv2d", "Embedding", "Atomic modules", "Linear", "Bond modules", "Nonlinearities", "GPT", "Compound modules", "Modules", "Vectors"], "terms": {"At": [0, 2], "simplest": 0, "level": 0, "neural": [0, 2, 3, 4], "network": [0, 1, 2, 3, 4], "ar": [0, 1, 2], "train": [0, 1, 2], "iter": [0, 2], "follow": [0, 2], "oper": [0, 2], "weight": [0, 1, 2], "learning_r": [0, 2], "gradient": [0, 2, 3], "where": [0, 2], "i": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "float": [0, 2], "loss": [0, 2], "function": [0, 2], "respect": [0, 2], "Of": 0, "cours": [0, 2], "practic": [0, 2], "we": [0, 1, 2, 4], "mai": [0, 2], "want": [0, 1, 2], "us": [0, 1, 2, 3, 4], "addit": [0, 1], "trick": 0, "momentum": [0, 2], "let": [0, 2], "": [0, 2], "ignor": 0, "detail": 0, "like": [0, 3], "now": [0, 2], "unfortun": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "simpl": [0, 1, 2, 4], "descent": [0, 2, 3], "doe": [0, 1, 2], "well": [0, 1], "up": 0, "architectur": [0, 1, 2], "what": [0, 2], "mean": [0, 1, 2], "suppos": 0, "befor": 0, "grow": 0, "increas": [0, 2], "its": [0, 2], "width": [0, 3], "number": [0, 2], "neuron": 0, "layer": 0, "depth": 0, "In": [0, 1, 2], "might": [0, 2], "other": [0, 1, 2, 3], "dimens": [0, 1, 2], "residu": [0, 2], "block": [0, 2], "transform": [0, 2], "stick": 0, "simplifi": 0, "pictur": 0, "under": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "can": [0, 2, 4], "break": 0, "two": [0, 3], "main": [0, 2], "wai": [0, 2], "The": [0, 1], "first": [0, 2, 4], "problem": [0, 2], "optim": [0, 3, 4], "learn": [0, 1, 2, 3, 4], "rate": [0, 1, 2, 4], "drift": 0, "certain": 0, "becaus": [0, 1, 2, 3], "need": [0, 2], "re": [0, 1], "tune": 0, "thing": 0, "which": [0, 2], "expens": 0, "time": [0, 1], "consum": 0, "second": [0, 2], "sometim": 0, "perform": [0, 2], "actual": 0, "get": [0, 1, 2], "wors": [0, 2], "even": [0, 2, 3], "remain": 0, "stabl": 0, "grew": 0, "hope": [0, 2, 4], "make": [0, 1, 2, 3, 4], "better": 0, "These": 0, "cartoon": 0, "illustr": [0, 2], "typic": 0, "behaviour": 0, "On": [0, 2, 3], "left": 0, "right": [0, 1, 2], "deterior": 0, "good": [0, 2], "new": [0, 2], "have": [0, 1, 2], "develop": 0, "machineri": 0, "larg": [0, 2, 3, 4], "solv": 0, "woe": 0, "It": [0, 2], "turn": [0, 2, 3], "out": [0, 1, 2, 3, 4], "defin": 0, "initi": [0, 1, 2], "along": 0, "special": 0, "normal": [0, 1, 2], "act": 0, "lead": [0, 1], "algorithm": 0, "remov": 0, "caus": [0, 2], "improv": [0, 4], "modula": [0, 1, 2], "automat": [0, 3, 4], "infer": 0, "necessari": [0, 1], "from": [0, 2], "so": [0, 2, 3], "user": 0, "focu": 0, "write": [0, 1], "while": [0, 2], "handl": 0, "properli": [0, 1], "doc": 0, "intend": 0, "explain": [0, 2, 4], "how": [0, 2], "work": [0, 1, 2, 3], "also": [0, 1, 2, 4], "introduc": [0, 2], "api": 0, "case": [0, 2], "you": [0, 1, 2, 3, 4], "don": [0, 2], "t": [0, 2], "care": 0, "about": [0, 1, 2], "next": [0, 2], "section": [0, 2], "manual": 0, "differ": [0, 1, 2], "framework": [0, 2, 4], "pytorch": 0, "jax": 0, "feel": [1, 3], "free": [1, 2, 3], "reach": [1, 2, 3, 4], "start": [1, 2, 4], "github": [1, 4], "issu": [1, 4], "ani": [1, 2], "ll": 1, "post": 1, "answer": [1, 2], "common": 1, "page": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "why": [1, 2], "modular": [1, 3, 4], "transfer": [1, 4], "across": [1, 2, 4], "scale": [1, 4], "term": [1, 2, 4], "when": [1, 2], "updat": [1, 2], "delta": 1, "mathbf": 1, "w": 1, "norm": [1, 2, 3, 4], "cdot": 1, "_": 1, "mathsf": 1, "m": 1, "modul": 1, "y": 1, "output": [1, 2], "behav": [1, 2], "mathcal": 1, "independ": 1, "A": [1, 2, 3], "littl": [1, 2], "bit": 1, "more": [1, 2, 3, 4], "formal": 1, "one": [1, 2], "lipschitz": 1, "leq": 1, "inequ": 1, "hold": [1, 2], "tightli": 1, "tensor": [1, 2], "align": [1, 2], "dure": [1, 2], "approx": 1, "fulli": [1, 2], "therefor": [1, 2], "provid": [1, 3], "control": [1, 2], "chang": [1, 2], "size": [1, 2], "sinc": [1, 2], "recurs": [1, 2], "each": [1, 2], "submodul": 1, "desir": 1, "properti": [1, 2], "fact": [1, 2], "extend": [1, 2], "all": [1, 2], "overal": 1, "compound": 1, "orthogon": [1, 2], "intial": 1, "No": 1, "could": 1, "atom": 1, "gaussian": [1, 2], "reason": 1, "choos": [1, 2], "much": [1, 2], "easier": 1, "spectral": [1, 2, 3], "n": 1, "random": [1, 2], "matrix": [1, 2], "alwai": [1, 2], "contrast": 1, "an": [1, 2], "depend": 1, "entri": [1, 2], "wise": 1, "varianc": [1, 2], "sigma": [1, 2], "2": [1, 2], "difficult": [1, 2], "set": [1, 2], "matric": [1, 2], "benign": 1, "singular": [1, 2], "valu": [1, 2], "hand": 1, "averag": 1, "max": 1, "subtl": [1, 2], "numer": 1, "support": 1, "share": 1, "Not": 1, "yet": 1, "although": 1, "plan": 1, "implement": 1, "some": [1, 2, 3], "exampl": [1, 2], "your": 2, "huh": [2, 3, 4], "too": 2, "boil": 2, "down": 2, "few": 2, "principl": 2, "basic": 2, "algebra": 2, "bad": 2, "requir": 2, "unlearn": 2, "concept": 2, "been": 2, "taught": 2, "lectur": 2, "For": 2, "consid": [2, 4], "activ": 2, "unit": 2, "deep": [2, 3, 4], "101": 2, "intern": 2, "quit": 2, "compar": 2, "after": 2, "step": 2, "understand": 2, "point": 2, "standard": 2, "deviat": 2, "class": 2, "def": 2, "__init__": 2, "self": 2, "fan_out": 2, "int": 2, "fan_in": 2, "torch": 2, "randn": 2, "forward": 2, "x": 2, "return": 2, "matmul": 2, "most": 2, "conduct": 2, "reduct": 2, "e": 2, "smaller": 2, "than": 2, "happen": 2, "final": 2, "classifi": 2, "studi": 2, "import": 2, "larger": 2, "null": 2, "space": 2, "huge": 2, "input": 2, "map": 2, "zero": 2, "least": 2, "lie": 2, "nullspac": 2, "pick": 2, "order": 2, "compon": 2, "But": 2, "situat": 2, "non": 2, "chose": 2, "far": 2, "hindsight": 2, "blow": 2, "onli": 2, "solut": 2, "instead": 2, "assumpt": 2, "fall": 2, "small": 2, "fine": 2, "thei": 2, "quickli": 2, "warm": 2, "And": 2, "nice": 2, "bonu": 2, "show": 2, "switch": 2, "init": 2, "trivial": 2, "previou": 2, "style": [2, 4], "think": [2, 3], "beyond": 2, "distil": 2, "tenet": 2, "call": 2, "largest": 2, "carefulli": 2, "keep": 2, "mind": 2, "design": [2, 4], "worth": 2, "expand": 2, "here": [2, 3], "sai": 2, "comput": 2, "u": [2, 3, 4], "v": 2, "linalg": 2, "svd": 2, "tend": 2, "row": 2, "correspond": 2, "diagon": 2, "sourc": 2, "middl": 2, "net": 2, "preced": 2, "head": 2, "tail": 2, "know": 2, "both": [2, 4], "through": 2, "backpropag": 2, "appli": 2, "1": 2, "kind": 2, "everi": 2, "rest": 2, "do": 2, "should": 2, "alreadi": 2, "enough": 2, "gpt": 2, "ha": 2, "state": 2, "roughli": 2, "interv": 2, "equival": 2, "euclidean": 2, "length": 2, "math": 2, "sqrt": 2, "To": 2, "achiev": 2, "tell": 2, "top": 2, "One": 2, "check": [2, 4], "proport": 2, "intuit": 2, "factor": 2, "dimension": 2, "convert": 2, "take": 2, "vector": 2, "spit": 2, "clever": 2, "reparameter": 2, "reparameterizedlinear": 2, "empti": 2, "nn": 2, "orthogonal_": 2, "By": 2, "includ": 2, "convers": 2, "correct": 2, "easi": 2, "just": 2, "exactli": 2, "our": [2, 4], "experi": 2, "found": 2, "hyperparamet": [2, 3], "As": 2, "them": 2, "grad": 2, "spectral_norm": 2, "replac": 2, "adam": 2, "express": 2, "option": 2, "decai": 2, "look": 2, "3": 2, "form": 2, "resnet": 2, "residue_list": 2, "list": 2, "block_multipli": 2, "loop": 2, "ad": 2, "sub": 2, "ensur": 2, "contribut": 2, "allow": 2, "veri": 2, "without": [2, 3], "question": 2, "third": 2, "len": 2, "add": 2, "total": 2, "sum": 2, "divid": 2, "similar": 2, "idea": 2, "seen": 2, "frac": 2, "l": 2, "mathrm": 2, "0": 2, "though": 2, "involv": 2, "prevent": 2, "link": 2, "analogi": 2, "back": 2, "plai": 2, "role": 2, "multipli": 2, "safe": 2, "equal": 2, "long": 2, "individu": 2, "accord": 2, "4": 2, "between": [2, 3], "convention": 2, "done": 2, "lambda": 2, "shape": 2, "assum": 2, "uncorrel": 2, "expect": 2, "becom": 2, "spell": 2, "clearli": 2, "quantiti": 2, "convent": 2, "wisdom": 2, "someth": [2, 4], "logic": 2, "associ": 2, "scalabl": [2, 3, 4], "approach": 2, "base": 2, "simpler": 2, "anyth": 2, "variabl": 2, "object": 2, "same": 2, "direct": 2, "vein": 2, "obviat": 2, "histori": 2, "behind": 2, "move": 2, "autom": 2, "applic": 2, "mathemat": 2, "analogu": 2, "statement": 2, "outer": 2, "over": 2, "mlp": 2, "seem": 2, "10": 2, "paper": 2, "type": 2, "propos": 2, "smooth": 2, "limit": 2, "infinit": [2, 3], "mani": 2, "best": 2, "knowledg": 2, "natur": 2, "directli": 2, "inspir": 2, "still": [3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "construct": [3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "wa": 3, "written": [3, 4], "jeremi": [3, 4], "bias": 3, "hi": 3, "view": 3, "world": 3, "he": 3, "put": 3, "counterpoint": 3, "prevail": 3, "narr": 3, "If": [3, 4], "d": 3, "mention": 3, "either": 3, "pull": [3, 4], "request": [3, 4], "email": [3, 4], "twist": 3, "distanc": 3, "stabil": 3, "bernstein": [3, 4], "arash": 3, "vahdat": 3, "yisong": 3, "yue": 3, "ming": 3, "yu": 3, "liu": [3, 4], "neurip": 3, "2020": 3, "text": 3, "featur": 3, "greg": 3, "yang": [3, 4], "edward": 3, "j": 3, "hu": 3, "icml": 3, "2021": 3, "condit": 3, "jame": 3, "b": 3, "simon": 3, "arxiv": [3, 4], "2023": 3, "chri": 3, "mingard": 3, "kevin": 3, "huang": 3, "navid": 3, "azizan": 3, "tim": [3, 4], "minyoung": [3, 4], "hyojin": [3, 4], "bahng": [3, 4], "phillip": [3, 4], "isola": [3, 4], "2024": [3, 4], "grace": 4, "instal": 4, "run": 4, "pip": 4, "wrote": 4, "intent": 4, "theori": 4, "clear": 4, "turbo": 4, "charg": 4, "research": 4, "unclear": 4, "faq": 4, "Then": 4, "everyon": 4, "arrow": 4, "kei": 4, "jump": 4, "around": 4, "side": 4, "panel": 4, "prefer": 4, "read": 4, "academ": 4, "articl": 4, "author": 4, "titl": 4, "journal": 4, "2405": 4, "14813": 4, "year": 4, "thank": 4, "gavia": 4, "grai": 4, "uzai": 4, "girit": 4, "jyo": 4, "pari": 4, "help": 4, "feedback": 4}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"bad": 0, "scale": [0, 2, 3], "frequent": 1, "ask": 1, "question": 1, "golden": 2, "rule": 2, "The": [2, 3], "linear": [2, 8], "layer": 2, "three": 2, "fix": 2, "width": 2, "depth": 2, "kei": 2, "queri": 2, "dot": 2, "product": 2, "wrap": 2, "up": 2, "scienc": 3, "warn": [3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "pre": 3, "histori": 3, "truth": 3, "reconcili": 3, "autom": 3, "train": 3, "welcom": 4, "modula": 4, "doc": 4, "purpos": 4, "navig": 4, "companion": 4, "paper": 4, "acknowledg": 4, "conv2d": 5, "embed": 6, "atom": 7, "modul": [7, 9, 12, 13], "bond": 9, "nonlinear": 10, "gpt": 11, "compound": 12, "vector": 14}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Bad scaling": [[0, "bad-scaling"]], "Frequently asked questions": [[1, "frequently-asked-questions"]], "Golden rules for scaling": [[2, "golden-rules-for-scaling"]], "The linear layer": [[2, "the-linear-layer"]], "Three golden rules": [[2, "three-golden-rules"]], "Fixing width scaling": [[2, "fixing-width-scaling"]], "Fixing depth scaling": [[2, "fixing-depth-scaling"]], "Fixing key-query dot product scaling": [[2, "fixing-key-query-dot-product-scaling"]], "Wrapping up": [[2, "wrapping-up"]], "The science of scale": [[3, "the-science-of-scale"]], "Warning": [[3, null], [3, null], [5, null], [6, null], [7, null], [8, null], [9, null], [10, null], [11, null], [12, null], [13, null], [14, null]], "Pre-history": [[3, "pre-history"]], "Truth and reconciliation": [[3, "truth-and-reconciliation"]], "Automation of training": [[3, "automation-of-training"]], "Welcome to the Modula docs!": [[4, "welcome-to-the-modula-docs"]], "Purpose of the docs": [[4, "purpose-of-the-docs"]], "Navigating the docs": [[4, "navigating-the-docs"]], "Companion paper": [[4, "companion-paper"]], "Acknowledgements": [[4, "acknowledgements"]], "Conv2d": [[5, "conv2d"]], "Embedding": [[6, "embedding"]], "Atomic modules": [[7, "atomic-modules"]], "Linear": [[8, "linear"]], "Bond modules": [[9, "bond-modules"]], "Nonlinearities": [[10, "nonlinearities"]], "GPT": [[11, "gpt"]], "Compound modules": [[12, "compound-modules"]], "Modules": [[13, "modules"]], "Vectors": [[14, "vectors"]]}, "indexentries": {}})
\ No newline at end of file