From a90c466043126160d3f0330608fb7d49990a5ef0 Mon Sep 17 00:00:00 2001 From: oujago Date: Mon, 6 Oct 2025 14:38:56 +0800 Subject: [PATCH 01/18] fix(docs): clean up conf.py formatting and add static image copying --- docs_version2/_static/logo-square.png | Bin 78652 -> 0 bytes docs_version2/_static/logo.png | Bin 115969 -> 0 bytes docs_version2/conf.py | 40 +++++++++++++------------- images/logo.png | Bin 394161 -> 115969 bytes 4 files changed, 20 insertions(+), 20 deletions(-) delete mode 100644 docs_version2/_static/logo-square.png delete mode 100644 docs_version2/_static/logo.png diff --git a/docs_version2/_static/logo-square.png b/docs_version2/_static/logo-square.png deleted file mode 100644 index a3029cff8b18bf28b9bf4a51c4eedf1ad1a58637..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78652 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 diff --git a/docs_version2/_static/logo.png b/docs_version2/_static/logo.png deleted file mode 100644 index 8c1d9edddfe8bc7a44510b5b230bbfb65c773034..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115969 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 M+ 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%0Dhxy8p4FB>vn)TXBIAvL;|ut=ucVc+$A0EldfHWA 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%0D{2Qy%Z&rQ?v`pebxi9RHn=SIP?9zN&l*0 z{}j|g8UCL(bQJ!Hk44hTYHIUe7z)e@*h3+%yyaTpf_JS6G7n`bmX92VCiZ39q^j?| zOlpBfK5H(_>m**Ujlb`h{2$)p5qTkKv%^p-b&yd)SiIUlA9cmo;Dzmgl_i`m=9I$U zDl@vyWo-403xTUG>E$(Js=H*+o9MH+V?Z#X2I1@-*+m32L57`pXzc;0Ip=oSpOhBk7} z72TK7D`7hw#20t+c;S;J>bTBPlCLKserO)kbcyOJ*BGuG37e)|hYpbbU~o zH=E04J>?~K7BVk>1dp8Ixq4>H4yJX!1lMw`^{{(~ z7Yj6O;5!}OrN7@-1yCM&EB4|Hh22+E5vo_9gL}2=%^{FO0s?2qP{V&2$Np|+3a63el6gP z(W2YY5sE|L#!FNIAe8IKt3-^|5Zp||y(j!AwCo`hD+Qnw`S&M69!yArsX=>lwbQ$y z$~M#O`*a{S8Nl-G@UblQ!iQ&szi;mfaZy((F(yt+s#L@CXlBCuvpMfF)V7=EYiQ5N zxYHVYss`8V(L7g^a4(97h&0kcj0qg(PFCR_-}$gIn6|F){TsP`=k2Ot=wqY zM{9xOhy3u|xjRwLgOsx1#l=N^#Em!(k@v5l-#B7?W-|HVRQ8F;_MRSYX^|c7+s|YQ zm1b5t<2hP%Qt*F&j;O$^ChJj{`MT2522W$TR7oPd*?X0((5-sg=@5WBpCuW$Vd`?= z4m+sZ8Rk}1*tQqJ4B9@^2bwzZ=%$jiDBr&q^L;;gy%el`gOP9266{s!QRd-%DX8G% zwO4+Q^ z$LzI-v`Qoy4TivB;O}ImmyVf?@P7d*f$%E!sUiqzTAQ9#Wx#%p?C`}Qjk`?_>OKgW z@zeUxlSDP-g=%TL%fAU!dgdU$x+I1)wN0`bh z75xN4Og!R?ve0GEP)it3b6{<<409)Uv0=_hSa_`%UvPvqD5Fed0wDkW0WLt+az`;f zu&Oao?L7M-nr8INm!+tFjxNl2M#&Qj4K^7jHa&TA2V}8e++oJsnVLEjHR|dN8zIC# zDQ(a^t7R^JJeMwlI>d6sjv^>$%5^Bq?Jk;|H^;|!Q+xIBso#J$iQ@{7v>Q8Im6)EX zHFKovoEA5Zu%p`hZU*WEiHt1S_4bSqU3*<6ZIh+L?onf452^lWweHfh_5NMV8&mS% zw>oIuEvTLNlE)WhdWRYt8xOhg$CLZ5u&sW9W-0)9C6gD6!)^`^ODJs|iq}aM_GF9PodcJ@r2mbQ>c~*hgo? zLtkB(;DY={HEdyy^Yr}M9im72@8yg9!@=O&y#SWMt*JLw-} z=9MyP*B9mf3jd}>#!G6OZ&11Q@FjBBYf|}s`jtiS(l+=qTv{%i?gf#wpOj_t{Kdg` zK2F#`-Id6HK$W6+Wu+e;~HceYwnwbq*k}GJe%-b94P}$a(i4mK4f0x05C^C-I52`3Q(%5(1zF zR2=dMso%B9HJy>iDH{G6OUx`ta2}dmHjU(0to!0My3L(!UbKEmMMbq|d`l@AIzD|X zAX!fv`X8q<08&BGXn!O@I4DT1@gurWrgRhj_{5$Sz7-yiLl%zXy+3sDpksBxL1E}K zBvw$Og4Dv(Q*T+-Tm;0t5CUZXrhaisQD;g` zf>a#&dhfa6ERm7OM$*c$HYB-h=A=ecv2c2O6qp1)jJaD?TlB=As{MyI*^u^A>@tOi z36meq;!lgP2oRwUBqI?ep*6&a$3y9Y6xseW5|+?7b%o+P5OG?~=;Fs(uI1lezI}kO zZK1E%V&_O-oReP(C-*7T57N=c!ciFcJWB#iK`7rNu^ z#8NZ}KXF_hzK|;)(ZYTkvf_LS3N)N%aM^)-75+R_TKkUP(jQut|4V2omogd%M|I&b5uU?8~57FZ^YGdl9G${xl&Ul4tU7)gR%A^5d{5F6+! zA8ODS*u;}Ay>Z9Nnzs;}X$p}8MYcHw$EUbPnr%k>2(KqyJ`;q9ey%h6Z5w^O;J-gb zA*O*f7TPuQgc$elhZA&GMQqS;xokdt(GpY>uiVn=@$ae_)5NbJ+EQtU)Y*P{!&z8G z%a!ZumKz(?L(XVlnX|P=KLL2R_2>uBj|zKRtrbv6Tlg&>A&h+!u#r~~%}GWLW?0{C z)*gCmXgy9e=h~#m4@-_XS;)Ik%8J4Z|K$dbq7{^1n~dBLlv&@#HH*%48ClsN(1-iL z@!@Li{j$gm_wfyag28#jvk|QRVq$vQaO;Zq;TcqSs(wYKDAW6Vb^;=YmhKd74HW;& zCXyB1cG1dTZC|;}7EHzbgpBf%&1Ev+P(- z{jMfnhF6NK4ffh@LRwg&+>bi`D2-pK7QI%j#0Lilt6oYU0Ft2uMGAEFqy`aph+HzI zW@rp2)#dOx%f`qVlZlL;$Y=kF!@@JcmYCi9dVCbuA>6ua?Lhgwp_@=vr?eYfBP=s7 z%jS@DFu7ae*(HNyeWDzqzX-COHBk)y{PgSM==1I8;w6Hrq38G1ct|}=$9e<#lJR5u zN{5{Lxraqf@4g*pqPt|jbz9NZg6zGzcQl}2RR30_9`@*QZN)d`jA5DY)$ipdD=jj= zSQn7h%s*!m_9H5Z^@6Mn>plzSR2r|1N@au{PHv0@$z&{Os%Irkl4mdq_m$A|wv8U% z_!W!^jgkEavLpp>Kws(hdqzAeIY9Ux_ia(5>voQ5CNVSfSt!|{CT*8!2&;6Wx45|Y zi73{!g#h4$I~H`ET`%g?`SWp>uO^lx{w-k`rNy_hM(?gPIZLi#mGPpw{B`v3IkZV92H7&mJX2 zFchO=mN%fkB?(jzTK#uW27+m%#c)6z-)s#qRt*S)#FS#mj}^bLt?)Q3qG2ev21>>v z*dUAbsujyu=ciUIAX(Rm!U!@ln|~+1h}QT(>=2E}0p&1;UQC-pnF3X4&&qelT*qy7 zltQYr0pj-UdwLc>JpG5LQMF4Yu6&1l=W@pYD!S*4SE%Thq!P_lqbTsf@PfTxne#7Q^P(2liI zOJzJZ4cgyR&lKN+EpXHgv<|PLBTH;g*goMR$kXvP<3gI%v&GR8l{g5QmKD6P5~FiN zBBiV`YipM+mW+83~zmE+pt=#Ld%jN zF`BuSy@{@@++z2^@*TY9R^GMh9x@&V?66anAc!e;ckCyLV0+_Fnrc-7Cf_<7R1lOg(nu;CBUbkrjyoMa@^R5x+kB zHCNxSe@Ri7t2I~oZ2#lTnCQB;a0BgJ0@jGm>+XienuyvOl#g5!55>TaPn!0~mgH;N z0(IaS1J1;Jdv|88*TcdqF2x)lakwqF6y)Ue(()tY;`6Js>H zM#W)`8sxOdjJ+|6I^w{mgh6Z)a7gX@;go3;wUo0NSye&#oD4zlYu#+6OOaf-iEM%8 zz{6Wa#N^q-ULRhtpEr`#4fEn!r~jFm$2Wq~t8vyB;io|zyzshIyY<#9`R_yWjm~Z; zjlg^~?9xy%R_l1rolftYRwZec{BgYIY|ajN4)ZN5C&%CVVPmC`0{n#( zz>B@e;rke##p2H`bkXl)ID#&Lk`h(!nQSg@GyW6$BK;Z1L7<^zlqbKC$o{!jIuTCK z%c*gE&RQThC^x)B+kU&;P1LK+a3(r8IDiUW@zhKBS0{@Hf#YX0c=SU=zCfTJy(aM>SDljz|ncs@TNVpU=p7)4(TZhRRBh5&@6uM-x^epY6w}=dn z&$0;{=&1xhZlX|9ikf&w|>qqUYX3uGDQ0@+g-##;&W_5)c$qxHu05o*}~ zk43mf+s)J_Q|~!AC&{P|9=%zD&k&>&|!vI(D>ya{f zif+DrM5bkC7J|+u8L+sxl3eq=-Q&A1jliI(p7pnirG>0LpM*2=O_sxt_q=Fz-s_|{ z|M;KZ0t_xaI-s-Tjg@LQ(X=!9p@SZwQ6Zau5oPCqQG`f9Je%4gNA@ulL7$h8ZUNgHAXLc5Q0M?93|t_g8*VL{6(l@1U1%9%?Y z-&v1EKiDcN`Ww`&^L)YV-=hUoVzYKAP)BCJ6Jm7Q1ENMRrKueX14GKd6I4@dU>{d0 zLgT=_x4Y{Jub78mN*dhdN{YSw^I$~5B%?jM6UDR0y0$c-b00W&h>wbQYwy*NliQCO zW>8DbH0U3O9ZiFWsfN;0w~BAS_Ik4`&A;~D$wkstbDh8dc=*qY$abad0ur3XYo7To}AqT zkSeOtHPCGBG##aLxY#cvD!9hz%glH`Joaji!$1C#O#Ca9o14;#+wWgSioXjgw#^_z zPse>M{Bk^iDUr8g(E(r7Gk~2cXli{^<9`8X`|*(RL1e`SJ%yDVjFY|PE$u`rFRQd`;%jgkIBAFoc*NV~E{jLiL+m6x|;g6rg~4^6CDVPAUS1{4rT4|z zV8P#eQZN)wv(5EJPNtaNzO-7_kNk{19x7H68w%snFB&OIE>sECzGc`di4%BxPO$gv zsxwYUXef)YRUc)j8`#rc|JQDQhqx@g4*cM_`-C+zswEbK>{=^}7{Ziv({f6@;$)-r z$N{HVOMg4Ks&?C3Tfg8RnS2enD(F4TIluoBIbc^H>_S6@VE857nMj&bI$wAz^*qf> zQv3Qlb?m#E!wwJ&!?huM^?G&;|LAJB)gP{7`o%~XwcyM6WXcQ~jVRyG7{8nyqqqXR zB1I$CK_~$mMNx+cScW$IT2vp)r4!J! zyP7;19dP2pah~s`XPaHAgLfpN?4h?vt>$5sPx^2NyGc}hD%(U%+3zo^uE=CpoJtIX z{cY^hwM~9w!B&||>t|ZIACZboDrcE?K;@5kA1p(fgF@ay&VjSL3fZ5#wW_tb&9#@^TMp-APod}ocRBCSz$ z;CT-uF56XJi84K; zQ!*ZwFOf=?!Tg=kIHj6{3B#Jp*JEiFlV7-Fx5oK$>9j{ZRqq5Yf>P*$QHDCtUKdZ` z2EQgoL~ZK&*P`rfeGjRwW1p%(fI2fCDUeC1;a)*7Nn1fCn=!>jK zR5qo~K5;C2{cC7XG@H-JB*|cqRl%Yon6?0qACa0k-lwkF;DSR5pax-Z3oa?`oS~;i z0GQV>j$gAP$g+`N5USO7#re8^{kyJ45j6r3%jrVCr@!vD7rC@=(tc4LH1)22Ce|sJz zDrWclb4k^TXME~xhbU2ZGZhBy)}(my?2&3cNLaO!513a(_KLhL*5_J&b?TqL>2-;G zr5OJN40b(}Ax!vsmQv)_wo|QP?xAYqp^{vz6%ZTt7=b?;lXzPBW7-9=;<0jbmvSk! zU~4tB*b5&jO+{@rU$(Rw%!r&dQb~lM2<(WX3yq^c%5s%lkexN~(HmQDFien1kacW% zQRm(~ios|M4ijFPoyz?C8uHT>&nLkp#88po9Y=#J1+mlp*Slj&nwmw%Ty%ZP#ROa~ z`D6aovN~)ouSU&^T#HeKCGECYy56Ac!S>~!kmkCcX>ee`s^kjlGHL8Q02cXmEcn;s zSA;d&sd5bMLun2NdSpu1YbQRGq9IY##b?dF*S6e!J6bU>-e0hWSaQc?YPjEMAb8WNPGC5LW z@@Qg@WFF_wAi)^|{1m>h!%SvA=XRytiGz*VGxU#u#R_n(%!V!oIetJE7_+;C}r% z8nEDtq~9R*B&uD^8E3i-E0o}*+mY-`FRz=PQ3yGE&5R$l4d^5?%NB zW$r%|iWj}p^?J)@eD%Pe6SkBZ(~-=V{)%OJ>D=zPY_w8A`~mEs@NvYx_V~5HO`FC0Vwrq4sMn9SSu&(m_zLMP%m%yGyQ8SoDbDsHqJ36iqvsNQSgukJSvq~?LM7< z&GOijFsUM&60W!8F`W?F1_|t%cn*FKnJ@45j7F~#FpzEHP|r2M!q#@fyW(FUup^$> zoDw9l9>|r9{Un>Kq*z?7+vWS^dA2;r#xw-ky$QUT+^&!H9ntj$@S=O`7;r+7K5$<^ zz7jtOIA2`-gD&2r^WJVk^z*^3$PYNu)U&iTvX_@$r=*SZB9y48WqM!!SlcTRO z%Zk{86weSBiPURPiY-QcJUhPHPrrP(biqO3+(;{3+6*d#f8zWiOho-qZ=RmO2%I_o z@hu_PM06I}mp?mkwJf}5qsY${e^JjJFoxQHwhd3fsT5_1`3k-F$$%GllF8`gK(g-G zBHvwEaKLP@BI0U&Y3SmUQzG}}z3>VF{yM1iYF+vZDwCHw8udcN%h@^?P0a%EXGBsN9~{|u$;Uw!(M-{_ zS?NSZ4??4iAlW;KWg_mofUT3_>gsB>YV8rCfrmOA07a*-QBOkn*^Qfah=-L2_w(Z6 zVge)>yK!JhTlO2dw(NlR`I8_>y%jJy#71YP!CKGpM6^iPQ>QDBzu4Y`?J_P(LLS>fD2 zevtC{IjHLa?$GI@#EhiqJ5!(@a-kqC8E7LL2w(S z7Ov-P{7}x^znK<7VZXT!pxc(t9;TwKJOwD-5uVG~k^I2xW&6gPY8cxoPXau6>kAC5 zDSy;Gv68OmN=M;i^)6+af%Yi;KV``N8Dt$9AZ zV7!r%>~xP{8JPB-U0*&wKQk%m5rx$&oI=O#w0?3uu2986eT6>no9z${5mkE6HBo$o zY-J;ChY(8G%&nF({w0HHg3h-=;et$T?oi*fb$&jqYTU&Ww{!uxa}$RkXlsP(=&>$< z(u1BX!?#T4d=3@~G-^A5_dg`xNky}c?kvOOQ~=iyj>2yW-Zp!FHn=wxZ4k_pqVFal z-_GhHX8vI_qPj}&e581zBg~I!Q~M5Tfs#7G_K{p28Xm5R-gIRfX(jFm`huBEXHKWZ z=5o26C<9jU5?`!68s>AD8L>^Z=ZfxbVWXNt7tdzDmtw4+@(X115o$Xn z6_E;(rf*apF}Mvf0DI$VuD){dRU5}Kw(8Xpk_EcMg_?Jd3sfghAV`-3M00ctA>!bn zBr`iO_&me+b;_t+!*i}^CYA=lPF#7=IzclgB6sBM zPl*tu2%fkRY!z`kn=jm~!*!eGIk)Xr-y)7u)peMwV`A>tM{Ao1Ii=H?zT7v<(=k2` z@8O>o0TG@Xa~RxCd&*XBJ7Uq!FD7(7hRzFv+gnXCwxF-)+c2h$M^MnFWJek9-;H?figc%Le)=r)vHjC!RyPq@z5o+jYrz`T|IN z7~wlBT$p_68=Mw`seWNFuRLO?mKd@@5sh`*e8p2QnYMy6cqL+G3YQF}a+QIg-?6yV zbe}zOLBFLWVYxeqy&dE|8vS@MGx}QOf`>w%&~D7M)zO0HdkxDVLaf^OP`X*%{~}$_ z5uUF&&` zbu}O~C_qpxD_S=khnmb-)i57xP(B#~v6?Wh6+HfkDv;};c4e)i3MHsDb{Kv|n);x2 z{^Uk1lz{kICaID^kCZBNbKR3`ny6ge0pw8&?v!wwv89Rpml5;^#Qg4*MXJ8`;9TPA zeBw{zB+r}<<=!XmH7Txv@*nW9CNnbo1uyP{38bUmwx{sfTD9v(bwAnIx@(#5BC z@${lxV!)qtL_A@t+uT!~wOVsF(x5WZd{W~ur^5O8dE<5D)I@2(qpFJPg;%@ai62X( zQ0PD)BvC6Qc--tld{#=q{OfFw&|r0v6yrves{sVY%4D z#5l7JtKA~zV;Sf$4d0s?ZB9W((U||!;qecM%!+p2IcCQ>6tI$r)Q@Z7M+40O_2FiA zt$P3#2I5nwsDl-Upe1W4xRWu>Ygfo`?~DC1{~M@wNoB5{6F=BL1BXA%i8IHo^g

zP#cGWm$+BtF{! z)xXdi2}P)*?;%g;U>^SwNyVqQ)I3|{IBk5`f>o`g^DXPFNhHi~mzF~CRd-d|Vdy)< zuA_s;INk-N!}ynbnA}e4{F7w_>u?9NuIZW%U)>Fa{J5Uo>zA786Ur;mk1C{#iYpN{1dazZwffRGPK>mD#u>l;Ua`=?Sz+g?lSVQ6>cghKJDQr95glySXK?tmpKp`vO1ShVG*xB9Z z-5{?n4`5p~0Ty6-sw+RW84xBF*B!XWhj&iUT)c~R{pyPYnbGn9)|+K# z$baRKf@YX#YdcooX~PT~9U4((2u;x4F8U8w`2U<4a6jEnbiI}breVPWJR?yW9A<*| zT;&9P5v_+L9b=~7%oDewqV-n7sCzLn07)+^yUEDdPu7D#g$<;$rVlNyfoQoPhb0Ej z0*I8BQP|hVt&laZwycfwk^&?zg8CPnN6xNU$FAH6PFysD;6m?l6zuLU zm7jmTqJPEkgvFhk)o2C0MEB|P{%vi#GwgDUgO7z6=GmQ{R`gjLA4?k4AEDnMdLXb4<8 zrPq>m{b1#1&Bja0uv~CFn|R`Peu&!`dwj_{{QOp)mQarbsPV`qN}=TI@sar$x|6qQ z5u|hd=Q8N6-FkSX(xSuUR+JB>AWN&>Wbc|g5Gi&AkAc=%DlTvMcPx>ZBTN1~z4>Wj zWt*%R&SBCamhWO>x6kXRI99hPLp)D50mG=iq@{ww!hO{*0~O4It`e`Gw|0UYU_kj2 z?>Kh}EU3}@w>>H_4DJI?E>ZmG&GJXD@fduwz@2#TD4l%gHw-{iTN%C7ut~#?fL8O5 zLo%)k_f=e-3cPTCPG&i}+V8hj=4$J@S z@0;&E@UQ~o8zEo>%`rJWQ?kgp?zLPj>YRi|h41 z`#s0!&N(i0a7V@#9B^}M6>&)yxXCxvH#_@1v5#z+34|C_*Jw%T&V6+5K?ub?yg{y0 z38pHRW2)Htk}3qipdI(+Qft^aF;{!r*)L}42O*b(ceqvFe z@MwzmN;1~%;lLSzY|dx7E5H9pQ7?dnjcv(NlQCGTVeZl-&?83v+M5zye4Z$S6*=eb4ghJ=nlmm48Nf1m^wf_ z@@l>Fw%?n&m4}LPW%XLQYdx$%PbZNw%G%S377iDb0%u83auj+H4M}bu2dDl4 zxf)CIa25BOXkQH-J1Ey2?b#9zVVl7zT zbF;I_%D^Qid1i-F$lb?_krvp6Tzupx+30t)1U!NacoYt2R>}PGMO@9**{hn4j%|PYW26$FR8`k5h&v9x8DTu778VCbMNOqjiUNHT7y<(%IS(Zo^u%zF??!fQhD_NAa z4|Wv-9;Gxo&;{=Au0|!DVf>H!*Qh60kPhV6*&?hogzC(MnJ>6m10to7A055PrWe=PwjQZhv!rM$oGy)es^sf zYK)S^ny7p&^yq4!XRU(d{J|&uL3`Y4*#Njhpdng zlisdrdG+{8Tt(Pm)56zO;dguNI&UoEod?l&)^+E1vCv_xl9H_gcX#y>r0cHjdz3#; zEgIjs#;caNV+2(7ka8&z&OGS{mziARrSk>fafRS+$^8#L{z$dIJ*X+|tkl&PS?*m; zn2u+1>CzGeyfM!?-L)g+p*0IrlJpkATQcB*Y*jAjZCb3}=lvHAYutA3Goojujb&h{ zQi7f*CNQ20gJ#wDJhPX#JHf(X)#Hz5t;Jg8>~x0h=(L{IYqo9$j!i2;Yz=fO>a7@Z z!ZDA_{#K%gCXU{?Yj|a-tHpL;AD*Fk(6b0N)Ywms$ zkS#1I!@KN{dbdY{ag`sDW_RHhwjSXXcVFRuOr^kDO8tuN zO!+TO|6j&cNE%fM4%y}+xh%X8#g~Hw4gE3qF}Sma*5Mw->4WN1Xk_GQbZNV=ljj`4 zf}-r4!{B~%9Xz-CISG0j!NN#&K1zl&ddtTJ zV!`8K(;6Y8>*H)(JFK}4m#f`8V?)CeLL`_z7SB(dgGkb~_3T&(S^=VG9kT3wv9fEI zmzO{=?2CWAxCXa${zZeraBI8C$lrbFov;<0qxr0&Nz4m|;vU#G?Sjer7p!}q^SQ*# zr&WdupR;Ofe^jILkDJJ#)WAZHl;8+KtKk$V(J&Ci+6vQ|eFZnXwVc$AdFi+WGvR)U z&+pD@3yN5DUy1+idoLlDv-am=ESsU=rKObhE&G{tpuEiD75Lrtu^QOmpeAqNBdvl5 zu~~^k-tR3K`T^2ABW(VT9}*9ogsJD zpyhJo-wBfO&*fdO48UPXMj5uzSSDa8>z^(+p#anjv=Z2mx=Hf7EeFTODp(}=``$^Z z|H-N=;3%?1EE{|jTZj#9PsNkdwrs4QPcaYMx4Wwzg20;rDpJ5*S7r|SO5zx46_D`t zotrZ56-Op69ksO_+yZXPoneP=?W@+xWlZ;eG6gFiB{RoI>sAyHE$*@$^SN*{nB6XB zU$hxZc&~e_UR1mqnl?hKUX~HBSkvfoZ1%%pa^CV{_oe3&?)*Tzt4M_x-dI2!MCb+HBWhM7$I1<4g1ZKD z*X-@TE@^9KJIr-#oITE|qYhpC8=d^;AMmzecyJ;{Z9QTk2w#Q2Ug!qhqG%@Nz&CB# zuom1f#I&6~`j|PeEF~sQ2u0g-(e&}@q?)s`19^{#P=MsuPKAJ)$4r9jo5F#ddHGbt z^oK32rwfrPjdai?jk|@Y!vPGR(r`x8A|XA>j8VNjAXM5?IP!{;s9* z$c-Zh*X~38W4x#ij6JKfY*hK1Xb6Jp)D6wQUCcLxLEStyn_jJ@#YKLOw-=pmN6ya3FfG%SY(M)2x;tNk(l&Q@&o{5_hd);p z#0xp)2cYS~4JH-OnkayM*H%x0wM6l7@CofPYJgMOm~U=|V^`Pdb(kZOxo~*r1@R`A zHGjQQ_KjrjugWaI-SG@uHM3n81!j<9lF0Y=ldzC}M^UvppgRxWsb9Y(X!t_wqBeTCErp^z7XZO5) z@bb>m;=S&y1axXP;& z6zP<5)6}TD-$;0f|DNUepmvG$WLT+>t%g<}m>Ezw(!v(jkwna~LH*McpM$mAw*R%w zSY?0msC{u!9cI;DXjn+{-*bN6fNP2%sg_hR zrmn>A)S{YQ1kuaWFYq1@Zk{N4veOn^HnO}#zFC^T1in1xF%8PvjbO?VK7iVx7X%m$ z>_Pe2!306U8SK?!;c;wA`U2T*irFK2RX4PMsTSyxI)WP`BmJ(P%-o$eTS5*dHTvb| zZ3Lhuoemj(Z{4Lq?DncFD%#@nGo3#COu5rUdO!uEnOah!?{yIWW5I;cnWLX-&X&LX z8W9o1-Rb47-FehDitR`C6`l2H>>F>$o|M^ycZRxtgNWF}=HAiV535kN8VI!pVn&R< z>Wf&6{%P0tdY!Zg4>D>x_M0MfoVJ!i2y)21{u$VFfE2)xgJW4t{Guj0N(w!d&M**h z(6K&0@gktnTBo-M30)I1NtiIRt`L9>>JFC+?W5{~0c6B|Q%{4lPCgJKZ*KfX1$5;a zk)^2oSnm)Kqsv%|jEvke@#DvjT)j6mfHF#d(;rm}qjgTEhO)dbM zK@*nU)qrL5flD*d-OJcTjBr_oFgNG>o_k+Zw;@)Z36gdofSkvlWZ(rQXzLs3t7_iy zR|7($h9%>~#6%rt&*%HVuMt-z{or;Kemo46ZcX<{b>DrE!i#oMp{d$=XE(!KtG2d_ zLK{=miooc>YMzuWK(iMcC!6MFDjkgT#l8L=A{1|{Z#^vZfXUU!j~seA3?jE%WvH-7 zY4Nh`H?v1>M1K%e4lSL^&do?Ho$$>?0T)sy^%IfsfnY#Xwwtb#kVXw#G{FHpIb05Q z<;Y_rBVV%G+qI>LGyFWu?u_H;Fz&{us85^`p~h!|&4q2vB4oxzC?Je-9iqIbeChkd z4h0wfBVfmYlKg0bj;44;9FZe^e!~Xz+W~7p!J8>jB!3RN#{bU+uxAN+i8os)qGnQ# z$_ww?2UC?2KVQs0QElf{xHlUtC2Qb&i0?L^FskuEqqNssN?siFE|MRp-Tu}J&&b?) zh&h?ker~s&oX+Age$!RmO%x9!`hE=WA85o46e{?skl7cK3B$?8KH@lUS|@s~kfnrc z#7Ba$AaUL!4m>!_T{4iC4c8M4#Zb&&(Ng4DPBfTSgTb={EwcNhuKD z4Zt!mFrW@QalUWoBz{0i;+RASC$XC<;$i2%VG^82;&QX7hy=~pGZ&{qav#G8sUz>U zX@z?o!`f&PwA&#B8eorUSKn+haZSIl_vjI(?fO%FNkP<1Uwo8^Sq~gG8+0t-@yn{T z>x;LlipAyNtjlJeV?l6fR`~X35TT=L!A(8Vba3{& zmP{gZ4iLjSPKI?JcszxNhc~c!bkLTcJ@LW%d@YD8aE|=^Dql>*Hi;3=+v#K4EYJLT zogEDeK}pxnRY}|GqH&^fnR~tclDx+A1~JLLZpx6dRuaw~4Lo(@MMW#pUMIGfNhbZ@ z2>Xov^0&sk-uCeWI68Q<-r038<82?RTj||MU^ADw>Nd%^ekiudgjTB%RIjNgarNVA zDyM~dn-K4J;6Li=f~6I4nxC3cu*1cI=+o%nim);NzFcPd3QoePZzHRf&e?t(x|A@D zgZ|kWMkX@bnWUwu*;<#Gsp}bc^(B`D5}42a=wc3QI= z0PDxd8=v4Ck-9#2mBSF2?`>PHczMl4?8b1ZoN{l>?98ZS_T<_JF%)@WwiyNJ>OG+ca>UvR5eTk1Wl(-MO$^|Ag1|D^g)|Wop3R7db)`M||ZFtPj z?Dd4(1?>Rly(M&$=n?Fuv6qS56Fw4;Vc97$-IIi{8)~ZCk~#;5f}Q3QY`RxdoaA6f zmdKmm-iSWPiN2X)k#R!G;Zu6Zd|9zT+E3g5(GxKv4O9Bhv!{aC!!5MViek?IDJdzr z-nHzfO=6)~Ixce1<<;}EJIxO0J^UCfMUp}!2ha?x(p|dekS!~oaA`gTcpTWUf{PJO31|1Gqw#$5Qg(|dcI4b7p~*Ej;okJH zQ=-v~q@`i3mj0E!?%${ut}XRdxo(fje9O1C?(FCQts}s%S}f+Q+`jYz!cjYaaOpK- zA-C`;yxn#q;i}{Mop>tV8ASr8PLOsO62XFqQVZ;f2?^Q}-oyM!f$(Co9|&IeNL%vp ztUPrl4%fM);^SfvXQP4G=VSgGqw{Cm^8+k2dP@HMd9i^;AKUIdb{@>lz6R|z6XZ~y zWlepc5v{c97n5>uK%bs(vMT_zuv@4;kBw*u$K;QsgQPQbVl1?#<8VDM{B!2~~j==W4^n@z{k zSX=V;b_iI#j9m&hZW4mW4(};*!sfMw9_e{mawy$3|0btjm<=5r9F3Ef_5`t+Be3`> zDIsr4+D^A_bWYFHMh#(3d_d@4jn#5CC)aNzXx-gc)rxXKfi6)J;*7pzu;8TKBzEZp zr3a6|<#SeTR9R6`kr}u%|Avs!yg}o~5B8A_>s-B32@+^IO;o7j1@Jy)5j2y9`EoYL zaTbmsHdZ`(}I{!%#IjsmH^G_0ral$qcXHSQ)>Kq$Jtm8m-tkR)zo0Bosd-kRtMG=96wGyGY=P+{3jJF17z7;$AFEj#X(eGDhx zr<&d8(+To~3wwsXiV2ce5cOqJJROTkNZ9Q;tAlT;ijuznj2Q8@qDKJG@=aQkZG2Tr zd-}AL!4MYR9ivOO)B26+<7m4E-^WS&SW>%loRO&-XUnn~Sp?YGxK8jc$L&1df-1ti zgU&W$;789y92>2KRllu|@7myCA(A{O23E@CB)`CXUsH^a@=au z90{SKGW~q$RO5$;4kULY{f=UCByf(e%zsUTpA!F5>qnE_4gL@S+Ry#@oj=x739DEoH+$4k^*o zd%df@fILi@>V@;#UdoTWD9_t(GADmC670Q(xEB``-q7w=vbMJAn39AYh; z?DX#nv4e8+^{|h7kpRswGYsGZp)bP`8qj5mno?1X@f6YqFxyQ^bL76Q=OxZg#LWol zV_0obbm#eUX803dsu(}AQls=~L$zbx#@{3-ZsU7J=0*gHuM}MluS1v z$+?1W@NH~oLd&)lYWt4FFypjp>Evv^=?CVSVC!F8D7(GC4kRE}{7I&+e6L02Iiq%e z`pFjXC$A6d1|K~a>7<}T8YC%B#bjV(=gw>FWNZnX4@@WQ5>da|h#XPS+jn#=C z3B=}3%=?ja-`B^3*U92i(xHT(u*E3ep^<1|m3*x&I>SV3)>Z)9y#Y+^qYcJ~-&Hv? z$k>HFhUzoJOi*w!W3-<0-kcBLT}I}M3c#9>6tb5=TBVexqN~GKt`2cr&+tN9@I)nc zUiXo$I`umFW=l~9|4-rpCi3|jVnYeaCX1Vohra?-g^b3CF8-v-Apggr|Lf~xKoV8$ zgPr^Zz`46Vx|Vf$%jsxnW1o{!s&FB{uTMu!?YsiM5G_W6;g~x8t{0M58ym%bB&5uW zI06mZ^(ch~_nIurzs9MDe-|gVpQ4#e@R(lR@Y5cEEpPzzdT`uHlQQKi7`n1qy-?*C z^2%FRKB4cdE`)PT*;!4v#0JuJ+0OJsDK_xVLsb9FAJ9RZ3|9>bg=Uk@+*Mx|pVO87 zWAS-BfcF2!EB{{*<9!NHp-Qt)yN*~u~EZyr`kQ4>Ji^jcCV@05YVwGPF9}T7U;u4l8@63h0^h4pOJAG zA%g#sERt6_hS48GGaqG|?UmMtu}UdU=EUOX2ooI*{KL@bq+{Kri8?`QIZkgvQ4bzY zSvtDm58GgzH379FDTRl6`E~pf^}zF=`;Q788M?%SV5kf>LHHbaOA@#o9o7}g1raeu zg$|5{K=WgOk%xhzxvUo`_6@K*=Ye=S$}aNX!bnnMz<>07G8NUD=(cbun0EF3kRfP| zBqhGHI2tp7J_?Z@`2pR+I+=2FTi6jf!&Nntzxn{kD>WJXWojn2q|@Wkl^M5{_~@s_ zOe*BSTw>=xo$c!C>O}o^`(z%JHzxM*>nj1ki96Tn)b#(bPm*xV=I>wNI(^h4BV9*AOLxeV;gPwq9abO-D!L!$XnQtL z6DumdmOHy`T}#QYpMTad2^+RNp*nKN}IbHhMD6l5}{h

^0=KC<1rMVHaR(&t2rNF#0T#N&;w*9f7{_jETUYnILC_J~398k2xNTONEIl z8CK3L{^qxOH97PA1D5&EUZ(MTttX@HHL1^}1xuF0{xxgt(LpAU<}M=L} zghw^=C!|0)*MpT(Jy2Bu%Zixj90gqo){aE4|7ov;FceblF-uV_m3&4}wbopx&?^CoF&HubT|xGS2k`11Kl(|I zl{vBxSg(wT)9Chyi8xc3vx=s(kxM&@fv>S1q8`o{O+8#wYnozn)~LDLR+nFQPFzU{ zrBB=!j@d7q@|{$p{$m)pTi-~J!fds4Jxim=i=^2l1buj)5e<&UwdF=|BYtmxfpLqRmbHbpVeE$T}M%T`wxFIp}M zb%fi-muQ{C5Xq|do}Bc&V-(7Rb|=Dd>&r$M9)&RP=NQyfy4Y_8wmmHvzcc%L;4EbX ziP_?W27QUV#EqnRSv5|NrK~cP<@tek&RYxZnQ)i?M-3U#XM^gJ&l6Np4f-um}!<;4DP7cP5NSRQDlC=ysV`Q4_Ce3zT{IkYJ?3YK$z^(M3HI$M3b#!n8Qemn~z zV`zrKcg;oq{6Q$8vd2h7IrP<}OhUnzzH}m6Ix`Q7(<|KVScBgBjR3pxj1@FT&VOv6 z4h2^q*?;l`!20r+LJCGCYrF#8;Gvu1@jLSS^3NOw0nMP5i3)&H;U$RJ*th+Lvl5r? z8+#%L|0-CqwEpAc0DtNr9JtrwM+^xfKgIs!$s#Ve@`nf;2~u0sA9VS(B6kLfkKgLY zHRmR`I=d}EG>0l7l1|qm$ts*FU!h^5QYlo<#ybx6aB6MfflZ&1O+T*R0OpZsQLg7& zC(?jO(CHa`;jdoCzI7FL7V1W)rlnoPzj`IZ5*Yb5wC4MCMu~YK^7DP;)5#3hUV9&+ zt}tGM=(G<7O{EU!J&eu8UmVzc1)#I046R!OejwzRW?*(M|NgZS>N3<@kXzq7!r9p* z!HM+9k@I#74b!+XgM2D#j_*;S%=sZ=_50b^)|TnH_Ldk`OHvcz9*tHQdX!J;fg4FrcGJF4QuOh%toHR z`xcpC>7#<%h3+IqC)+FaGPHbGXO$5P#^aYi@$nqP^pD?B|3j3Z!JfdC84;68PSY<& z3n%*sasKwSi;}ik6M~Pn*!hri4^pTiI$5r)9}@78&!fqZLT{a%KY}|m z;9XXBY_-6<>>4G4do#4Uwco#(sAmAK$-xG}mc?bo#(gsc%DC|c#7aR>;=v-aYuayC z;R@jj{LD3{W`wQv6tvDX$>d5}JfyprIB)YV6`P(Q>+)em>n7zRx$7sf`kx!;ZwsGV z-K!NfOVi+u}PE8D`l~unEr&KMR8avjiY8PEOA9K8}-y`3=s=+lAP-?$ubpgKFM9KOh zC*_H6xP*aF5(TQc64q3=^Sz1(e1;$6Dg6 zAR1IIBx3%wBYFq_Sl=g*{y~u2re%_6-r&gFkWo!~WCug4Y(CD+dkjoq^_fBg`|Cs{ zNb#iB^ViZxVrg9>7Q==s&a_4N7J1YV}-2EdS2$r09fAfDqoy9(EG zZNK06G>H1)QfBJd`H%<7Oe*LD#iV{+IkJW?-7kpW2?rQCbf{Exkfn8XIMt~cJ|0v_ zgJNIY+69{`ufX%p4M~zrhr;hWMI-V~LFqI$-v&2gQJ7#&5Ab^H(%@+Lfq8m>&#f>| zcB(=|;Q-1bH_JI|I-D+1DziPNFC`=J;QqA#GYcYoFTh%R*7cyeE`kLoeODjJDQAoo zOxdW0@1C%JySpCDvD&G2vzob`s{4?5uIsN^ojasze$1RR+~sD&>i==$>9JX;lp4QoI7xlVky7g0!vIWP}fpuYG!s2TY{Bti&J`6&u%jxDEp1~YNg?_?Fy=UJJ+r{=j*)kXgo}CAN?5y$S`wsN~r})wI`&M(yM19}{FxQ}~y$*IUI(O$~jdg=888LXisDabm0wPsuB_<~uFdFP)#z-UG?j9ad= zOV7i55EL334Hys1=6|P>%_Dy#*R176L+MDgY-qC8oIy_PAQ*eEqPXuyZ5kdJgkXj-y4cpnciA(zcD?1KT?%mXp9 zGYMU!lpVs{It%!a`yI$HhN0|XP1qv00}+G=xT?IX81oBg&*dy=BUbS0#||0ZUvb3} z0%ut9go0`AYxQ_A;LVN$7%;4Xp(GOL-4XFd=M#=_I^?oL7G(ns@>S^(vfB>8iE{HJ za*?x$@LIxNO15QawbjSLO(4)C>%Sz7Fz4zD35mY|;yZoR=l% zOUZ*I()cKz|B;!G!TrXJm4yaJr}KAfUT?!2xiPxZ5ilZVJpROg*Nr!pTRz_0medj? z{YnmnI2C};kQxVmPvHa$_WrCQ| zUX|gf6x$$!q|$eN$h}u5q=o>yVAu?Pr#an6Ch;WnOG90$1(1P1%MYLr`wR00zluX> zz;bR$NT41-<=xbfmA1u_bOx(C1i(zG!Qj>ICJBW%4y1jz4J9d~(-JoCfI}AI!$xj3 znA=7(c&sI}oV#&!x_6@$t62+Dd{LNOw|F;bW}z3plvbaHd2$Cf_|s>?wzUGuYcro<1z*BssF}00H35&CQFgt*u$k zpxe!iO4+Z0i16ml;W!$l#p45KQ(T`^7C%^2?KuVPYP(x?<(*VQxWF1#t=WO-yz2kg z+*ig${Vs0{EXV@VDND(MAPq_`tw=~J5=$-JDcvP1;S!S4Afj}4cZbs5(%td@dd~Ca zoZp`J&%W5tXZOW^@4aW{nz`qmxrV0s3zDs0b!^abXQxJBXQhRFu{x)~W^kO}lWAHu zF~&NYUTylIOY)Y@9sIWuU6he=*-(>3GWIEnb`3gOuL9wRyRo1eRi^(DQi}TXzfAi> zrU=D67(4tjbY^R9id%s#(`|ds1evyrpyFdz^N`0c$;L+m+cr%dZ*Fd8Zo7E8n3^)< zcxq`p$~0ybn=Z59*tZYIv3IQ{V zSZyRHCEZX{`%&0);NcBshgWRVgV1TqC#^9Ux<6I!R6bfz13ZktaxJxF96>ReGu|8X zd@>(Kpcf9fcvbWL+{tJ~e?y2CtJ>e+|8|=$co4R&kS4bsWh2Dfm1X=8jsvXI-=gZJ zv1n|dqUEjGd3b7XBL;Ia%@0(((oiHf5d021{Ll{MaFuAIr)h5!eG0MGH>hP07x#6T z3EXc9g8rqgzv4L?mv9H;$bz{hp|zR#skT5ffrW>Mhn%){B0+PUC2;4$acZJS)U5(u ziZ}k$Ri4D7L?X6qi8Sevz&(yC-!rG=2s>P*5(qPopm+fGy+^ zwE>7ymbD0CO(SI8>2Czk7H0j?=AsF zRJSKMU0dTAi)w_RH`82C*qXf~zp09+*I%+CFM*e`nRu9C1o}N-839R(NRt;k9c}Ij zpby2Ir|G(P$soM@*@43bzLi}pc1^i!*JWA#?CpJ8WlnT}#qDA6d|Q9frX?`aNoaSz zG@;vYi7LYqwUPl9E`dDhWlG#8p`Ska+`GRMs^S@@r5?g}?jRVummuuCiB-BOTVKZD z_l)tIQPz0TgN?-x#Cab;?DnZ;nELzAh@q1aVG+*u>{o<=#fG?y*d!fEhx}fb#o}yS zTzj56du_~HY432>5Rh(A?p`{l=;nK#5JVq`O>!~UA(O(3ZDe0^)9KDMfwXDQj^KLJ z<38+3Li@6X$|oLcM$z|FR;XC%Z1f#$>{64C7Kg+jQqH*+Oq=4D2w&;xONQ%>MDakUUW_Ba1|{KZUp z+O(C2O1kv@LAFjb=#`WWuLwRqejG#9`3IIDa#g(45k>Sz+OeKfVDcRM;)4i2B8 zoV`oh;6QCgyfH*wi@9Q33pUTiQ|$8wRWAi_q#=&-dmAwp^i(f<#Ld%9?5n+*)VCOG zUXwuS%lj(Z9D-?foUE*W?Btnp-=t!vS!~rw>X#aEJZ*asY39X}tS3;{z*->-%~2s zJ21UcPG9pP`Dq!_y05o!0g->z?LlfS2i)dj>tH*bsv(GXGoKij#-HlFv|lB$pC})x zZ;*%>QyT&kqqHQxfX7tp+%a9w}}$3#E9VcbPgcgf4r@Drqp# zl#u5lNeb~m$ztv04Q_>dtInQ_u6Aqf!=4sOmad&Oa7+v=JU9HoE;IYo&%8Vj0HQ4- zNpe<;j{i}108JwS@*VHcr+*ibFu$63`}#E>hEmOX&8FG0kRahv+Oq!E=B8f9L%x@k z`2?$H;rGyS*A0SLy{WT1H5BBEfF7-BzX+f!DZf=zFHg3Nq{OGh^7oVc-Y8bJRKqFk zGSlL^PZzMlop?F%pZnBxq>{0XNpHkagEdeD0i-6$1HU<59{)j$Ax;7x`0~gG&wUW3 zQEK&)m!_{_&TpnyUybPy;OEyP)g_^QCV~dL zW2RrYezcolmbN7ry#+ z^Pj+>wzEXAYhnsEw($GRjndzmXC2u3aK8{WX|umHEWS#j-#0dqx}wKE8=Fp7+0X`Q zjh!GU_2f~T3v@^Uz0dp)6L)=0E6=GI#3KiBec{nPWIt2CFqHHqGV%aCcPysS>L3(@ z|F?#bvQ=pmv7sr=zpUpYLKMJ`jV)Jnk+1oF!vVs}rC;ZEfaVd_&r{Cem&ZsEFz>o3 z=0n8D{2YntA@*s027pO(Cjxs?)Dqfw@HaOnt+3v3adDCDMy*B8uCaN(6Q~u^YyqRD zLgQjw;QdChyswrF%p-zzR**Pq2RZzp6b!SI5POwdm%kW+yzn)BnIe)LF_un};7*WJ- zYRkq8J_K01T#s*;9fv}uEj*p^r}|~1;gz-z6hgd_kv(dKP}u0kL#&%EHSu=FQ6lX5 z2Pv(Nf@6HL=pj}##1o#`uQehDv=r%>fjQW_u>h@;vJ+`w|C9e()!&cr7#BtmvuSN7 znfo*3QRHSvY}?cy9Ncu4w;2jJyc)tL3Jr6!#JL0M<-nP=HKc`~se*Q-rM4_H5@o;` z=c=~J&?lCfPi!4x!c9x^ff=q*6%`d0GnviYn>*f9q9Iy1TrXzr8!9P?*#T-KQ9rZ$ zx?NYHfA(%;pf~g5-Ss>n@m#C7ZhZ5FaW}6e&@f3={^Ko*1)0_S4SH$HWQsNVlZyMA z=?k3#YmYqRPiMD(N7J4 zKl$cJEK@k_$Z4w2v3}_t(tPYbdT^c|8T1iwuDvkw07tHZ=HsE6+e4tt|bNwzBzs`)<3AmM{aRfI|XPYyG) z!f&f=GM{O0%m*G7A^v+efX(rb0lg~AY9pNwjGsMBM&{ACNH0^bDluN+dhVG>9FGA; zPX>%Kpmy~r6LBS6pcRbsT+nk_+4P^QEM_15d}Jadn6k)2+>6z-KvR@?(UibpA$+7O z7_`>{Qn~{(<$`1LuSLB+?)^Hmvb3C&jcytJFNyr?<0De;VPXcCibTWe%!jcemzXDX zsrmemez;;`gt;Q^wJcjq#+QJE!3$vYEG&+(^;PWm)b0||Ci2~S?UeqKcUSi>_T@`f zA6*i~B6@#UMD4Y>4_M2Er&8&*x;5Qs$dv?vdKYt($$B%zz7d?|={Ndp0t2Ch4XM&4 zQAh-5o8BP9BqvEr=y5E4xl%Ud0&lPwJUiYXT_U^u>gxpd+ev|E`=0)K3-oJA?G&Gd@ z2^-sZhd`e>gWMIn*5R05Z~@E(ZC6hMvDVWH4fAR0D-z$C%caf#Pr&(?-V)viP{*MP zhbjUwSLc3px;4J1fhUzB{X3hgK#bzIs6uAr;`mMB(bjFHBawv8lunU>BpE(}yf;@U z!h-E=yz=7YrVr8?S-uv>0p~a9jpevg6dxSWX3SNekttc#j{Q}ekBs}ZEW9mwXhlk% zqsAF*Yi{XvAo@uxKZC21n{9jST*kuqA7}_Hu9ld4xP&bov}bma$r|J<6zKkvxr$m> z+HQr;m52L+w{ic@Xq+Z^KP7u{AS-p0wbf}>zo6Nu@2PNMM#j>pPG?mAX=@+Y^dU@{ zT1Y>F;3xq)X={k3`kMa=Qdx5$a@syHFi?CfI&){HiXQ@;M z&XB6mGov$W8#*$SkjWSsEl0BNz2i6;H~AS3`BfXmzh|^?5-jEB^TJIJySro`_m*zG zsiu}$9C~4o-V5Q_u{CS(mI+{ES0*FYahPZcE3m*Dn5PRdD4}Wvc;xZvn-9sRuzhQl zGLHvMJ&DHZ-|rpm^kLQVwD8-=qgqQSu$Gb!)Hy$>*l#tKE{K@^4DxOCOtpy9nhYJX zVi}u-(}=jd9#6j5PuV)9v!X@)o zL^kbKn9i&csR=_5i9W#Z{zBr?3Ox-O$>~f;I96y7cQT^OLqnz2S?mTGOeQ~8=&E+m zMl^UP1XwTXFT4mU9vC#pwyfqRCMF7qH43=jJ!(EAcrKdY$iSpDKRQqF@TvL8{$i`Z zW94TzAKdu|;^HMwAkQE%J{(lyPC{olv#^(I5kTXxO_$pakw({%hEnsnps9i)l#1uc z(pu^4%uAi0`jG|+O7j(_wLDuI|KS$?jY%Kg(ko$94WHKe!Hp!2QmMADz#zs$Bm=D0 zg!9HTa=i)`Q+DfMWBKt0vV=dF@nJO0Crw8hh*4{VuQP}Eqx30;*Qbpp_ROR*ip$HL zWo&G0tnik%c%a0ZAv}ERNp0d0fen&WL(9$Gvj-q>)}P>_K7=DzWF*@^y+S<+_wa~F zV_Qmp+5u%iV-PP>aq@)w0u2TBSGrigJ0Kwpn9@f{-CfuiVAD8fY(yPP2 zO^=DUJMqfJcGk|q@6iDGc93BW}0i;da=V-f)Qx8pFajIQ6Wxo zz_CW>d8SwE?x&ZuH`NVx^9_7#Po9YNmo`k&pmG|VfIih2kWRs|gw7V+vCT&J*jO)w zC#X2B-2Be1j$Lg5e<%Ht&igpEHKclOtuNtq-PxSycw`fH_m`qKnlq+F@0e;*Og{Te zodimG4IXK~uc)jPSDgQ8ICF<(=;?pRK5ng~v$SHT7+=mCxwoiV_a4;SRMi$6EV#=M z`3^oqQm3_1sg6RuFj);Uvgx_5)C8RXdO}@WI2M*QM9$w|BkI`1xrE*mEh)$D1uQ zW!!u2&*;dyU;E6_*^U_cCE!a^~dMA%#MS=UFBvZVTvfo4X z59uV;Okg`f`o|h-J*-zMQAHd~x%Q4GCabk_*!({zwJtZ4bOz@~^wd&ViA{k%2=?r{ zzMBaZUELe8J-!;AWivX{@NhH!PPZpwiF@jrScPFDk24>%7nUepdhngK=|al_N|XL0 z!u+>NN}z$`%~{hzljSukIl@U}OA=*-xW70ZF2wgAFG|a6sb;@bU< zcIS}+{-U0E6h`Z-FN`dUb~07tXE~%jr%!3>9e}B%g=4>eJCn=j?Bt;MQ%(Aqugb1} zx47zpTG;Wh^to0t>6|aBROW7jBi@H-*kzQdRNU1jpUv7Vj$baile~yQzGBUWnsnf# zyVT~dUyc`-X}dMmzy;8MY838{kBm5C)N<~bx<-jvKGrJn-=f()>#uu1ski8@3>SAf zUXS;I)IQ$3uPW~$ET}J@bGL_#PyE#E1ZBL7DZDAuN2MUOH8`i-#}alCN}`6KneM&Rha*vVs3#)!f~Ss8s== zSBQ-S=vG4obzMlmkFj`?YfjImQ)=z;26fMcFv1WC^p)3S=8F&Y`(DK+Tuit3orW3r z(#OtvAXk2k^TA8Y+ZFxxI$C3>vG6F1`a)(qcQz?M|8s+pB0!i>U8=0p3yVYeMschY zojb>5iP}LO=7g{X*`r-p`Lt;1EeK;3oD@{ka&s-X`5;n`n=7Qs2SqE`)=a;~&!=5= z0YcarfF>Zk8$2sZ_McJwzu-Cpup#1LN7`~#eSQ6R=Zhh9O1rvj-}OTkE-RZV67g2u9Qyyvuowl?vWQ+adz&e3iC@#OGxYLAhnU+O_->#KhogBk2e~0*#G6r z7pqLGsaRCeb<|&v+pWQ6TFj+WwNDy5SshR$^BSv@9o9OjYQRLNNGs}bY$dXL7(Is_ z#B>Tk;>GLDa|ROwyUoKHSrRUnghhldH%wbH;z}lpne~Bk%}2P7^QT61Rh; zQL3VAG$Qraud3SCN8W|6VEUB%qBTzG|2~nPH+$>1vTPjn8R62~oRB{`#S0}gErKam ze+pVo#QSaW4Ark=G6SIA#OW3@t6OG1oKWUUWWwGaq!4p1T3Mc;OK|dMbiD)!v-7tu zxX+B`0mfoXql1Q!%O||*IVZ>33pSSK^k5eSb#-;=LaS1AR1Pfwus5}#IPt`RX#3pE zY}ObD(m2&m@4Z9bQoivCNst-6SiQ{`0Y(w$;XHlz?7{B#c3rd;Vbo{ulBxJFd#?x?RW;#)#|gq^{Kd@Koz&H{>JJQyHVrSXOAnIT zxAQwm<|tZGL9A>V0I?vwGB1Jz|8-FytQ}Z+#?Hzg$;&=}H8Xw7(*=o@PptO3IGq3M zt4=G#20!chdHR4pcHmaUt`A?P55GiKk*^aUM8kZ|`3LDNU+ElU<)IRd01%BGuBok= zy`=OiK1(IJ+r0(JRvnuaohU$cm`OL-;~x9p&=A!6=GN3)`j!M(XBQJs z#M*-uHiDVjBR;6xPd@k-yqTH~Ysss?{OkQnr@xk?h^=v0kSV|ej%Q$OSm?kdnqXLv z0wxol)VS*V4*ERnpndQcu~+V8nVFfxOf4mnkUL>5nZmCixTYA_%+}*h@uf0GuLM52 z?7meW-{>n*sLl*3)Fu6p4?JW-?;(bQx}O%O_hbv#O|RD5Z5=)3?3gSMADz#P{!f!8 zc8%5sGQz0^3cly(+k{)?b&w@DEwzV+*xLnV^=eq0q_XHo6rALhACr4~AQRZQNXf`J ze*XC3!DYpvRg4m7r~oXBLa6-g&6jX;IugT^pp&9fgp$bBeeK%1tqy;(Iws&??ACSW z6f-VMTMyULs^(uU6)jo-X}-0lJnQj?E-R%SMYFB~9j?WPSjFNp+sfsYKv$*Z?;pRN zot=~AKF$lG6x#$RkT$6eDs+F`^eRpgXeqfmV7q9{aU!Aom2YA%(1-qEw8GC|O-(QB zI&!6_lZ=cEk;^TBsYd?2u#oE^k6~N$jQCZgF{Iu5gcBru?;bjj+;hn{w6UYOCiXpF zjPIIUKW;HKgm6XbxF?^{9n{2L)pJ}aP6wdeg-PH56(tI{iim6is-fiJ+S*u1H>x%# zx*nVDo$1u@>`;7!#3eU6ETDO@=$EEu04r?WWTE1$y>9p2 za-Au@rt+g~u00^i<({ZxsXLsMlJ^7-S8MgBQ$NcAfa_IabIL)dB3{s&$t*5*P_FQS zS6Khi(9wY*we%KmX*+J*Sqc{$=;Xm?=iEI$F}gMkS|w2v$*@>L4&)y26qUqf#B{E9D)URg1b8e4;m!+yZQa)z4shA z_uE|tws*E?x~r?Y>M0o_loX_p5eN_f006R#G)M&ifYAm3Afe%4z-L;t$z;KA5Y8%6 zVt}e~qC@ZpG81VPc>utR8UP3g1_18CrveTD09POYaAXJo@TCF(xQ>}E$^zgog3UB# z%;n_)^x!re02%@V@DAL90RI3W2msLkX#)VV5QP8RR)L`X?>>+KK$sN(>c9Jd=k)Id z!T9gb|GvM=h4{aB%!T})-Z0v^@BXI^`EL{emC6hv_zm7sTFV&#V5a!@3*k{D>;}G- zmX)fei>CYsJ`)E!W+PJvV>4zCJI8-l0R%kwz)d?d7b7wcJ6n5aJ`X|i|McJkxBs1H zAt(D!7Z)2ra!q+9GI57bW@KEEhzZ$HL<7 z?#}Ga&g}5Xf`yfrmzM>|#=^$N1n$A)>}l^}3no-ID4O-+3b<~{M#7RH~lSSclOJ?SpzH@fyOw=~)}%*{8>7im|j zuR>$5b|H(3V?YLqET)K%nJSv++&x?TG)$IZOBikQWWU?ExinvIJBgO~ngnskyW_U=U7mi<}rJ8(|XbPwc%nR=2 zXeS~zx^yEmPz#1H(2kmbLTAYfaSNIsKbmB5+9YG2X-ShAL#1cZ!>gCiL54{~647Cj z{pKNpH4%*MJ=QM`QijcyJsj4q?((f`yv;uq?c5Gnf)5*0FPX6l(mnoru|w#z9`uLt zt+`U7xkHJumi4b~^5$lX<~BDkLWw)mBXwAXYvP9}=Rgk1av^mN?p&jV(EY4_>I@u( zJg9+zIm5s!WI!WUO3KJsDXn3~!VQB$KtPzT9sjsBdHiK7E0_;jjffE=tw>z0E_|j4 z;L0?A=XKBkt2XZy^Ho*}2R;t)`T_b1AZCg$9O)>K1dJz{^040Lp-2frkH=^!nJdg< z9f<&mm{*+cDDd)yu?7)Uc+^ZSEHqpl5n1B9SRplqTVe>gQN*sKspltMba{}kVM{Uc ziW*g5eKkZTc9kjsgT2x^ZfLQ%CCgYvLT@h#BLtuJXR3a;G8!_vZnPh4ke#Wd@MaT1 z&bvfJbC$NJ;bu(CexL8rk2Iw18r=t?@ju0eKxw1>oR}bmDakB+Oh?@B@8^*XRB7U6LsAJB6PsEUiDhGEFbU@Y*g2RE0~c$m9t9dg}RJ*o)! zSZvCm6KE9I34%;=hm9zeR8+n~?yp$7(9v~QNhY}%Iw@~5()av%fQ0#uQ0=ae#wIZ@ zjQIL0gC|j%4PNN79CCWR@UC=D8E_@uaIjp7!G>PG^sozix2l!A2 zmWTL%h`0+F>FEg&EqX6X_f3@c^R>6l9lMc1)8XyV6j%Pr!u#tu-J(%*>Y8U1TZUz0P{tSql7MU^aRVrzc}NJQ&_24ipR~4!wI=p;rc=fX#$7UWeL01Z>m~ z-)VNdA?@`QL?x;2{mV!g^}P>0u&u2vZ_$6(cJxdP$;O%pxw2gRVtZggNf||He)) zO#}1DIy;LbU&qL3ONFgmNgY)QV_CJLtTC-)e@jS;IcX>vyG zO|=v%Me97`nYBbNAcrC+pIO{=VZXBKg6aQT7WgRu6wdkGhRx_F3LwGq?>BAhRFK!r z#~Xi>Ud}EUUdouSyE4ed08={7n}%A^FiYpsfOTCF%~<1SlYSD$cQvph@@SsSM@|Tl#iir$ zSl$BJ47FMw`up-r`K?e0h=~3{LiSQ8Gix0l{)=#nQy*E6I%(w7uiSa`1&ofZP3rKk?gR*FmuW;TQ z$-CJnx6~BjEp-#_38ts-5lhk?0Q_(iM{wwc_uC|Xjrn8mb~AzC;-B6-yIlAp5Ex`25W%NEG@ z^99Y>Q_;@OjxHyPb^@k9;Z+R~FbqFAm46AZlHnyCk!Z<5V6lz+&>3bwqbzSd6Myd# z5iqgzH8Ih}LR~%C7Hb@XJTN~$KO#IhPS9Z>%!47LJS70+(;hw1=8Zzkrz#p2piXE1N+oU1x@yZUgy|rmmz0p; z%o92&Iw$jn9q5q;LrY*!bW>H$21pohm8C0m64k_3=7OsO7%Rm!8rx)Xcu`+p-zpi6 zXM{*m(tM2Y?aGT{c#8tbR(2Jc`8;6TsS=jNYS2QXcj=Rcm)AXk5Cw72w%Y479l%3v zkMXQx?lEqgB>HMzc|Ga!Xr2bwU{WwE=|NKZsw0=#hB6&~x9-j(k(^^HWp10_(vAB3 z$1QVWU`Tb=RF!?*V!Mr}gt4?%Q$Xqd7K~r~$Z(Q0#P%N_ABFg`PN{zK$-{f1e|>-4 zhSNY|)2J}drhf)XvP6DoeZ1Wj@xD}C*|nJl`u1mfN<&WQ^2~4!>*oG>Cf03zpmW<> z(z^lX!>%`u4>Tk+G<1SfGY-rwp%)w)DgE`hncE4DlBe|0_YXYD^`QqMsdD3m?+hcCR&+HR%Mwdprk zhwKniLguFfz1Rj1sHfeXYZ#s=StWN@vorKU`4JIeim3@a0rtUy4J(fg!Uo|Zz-+cs zpQvltkg1nVPcZzYR*%^0{sZM?FWltRbT4&V`_^#vA0x^v)S%;bAi<4wwO(c>?!GMR zKr6(+))`v+cWQoqZ#~LEn2w$98_J&o_@DY9*iiGV{Im(*Ud0SiT-TA;V887qe+lwr);Ga#;W5^rY^dv;ezGV30 z!5D%!n^IaHH@sh|iAT2g3jxoJYIxU2b&gjzcSR6Lv_Xi-NRhX*++gFKHn#U=(p`b_ z{>(hbtl6LLXhieO!1a4|_(q3OZ>XQN3^(a#^Soy?wHwaJ!Al~TYplIOG7{K9*0&am z2#hl2P<7zt(Xpa{zYY4gCJDEYJV?h29MD|PNw{v;Nuo?_W#t>tT1H54t?BCyZx!>? zLg}@EKzltfh})>?un$j0Ir&-HeV3BAVB`2X!i04XVg3QN+nozb82Y*}l~80K;jHWL zsfJ0g@_yNO=r>@S2=E^U4OPjk7wzi{0sb7;XPntKmF_Sy{E%Vv^AXKKeLH1mWZTGA z`ZzhX-af^MaT|-UAfFZ6#6OMq$B!S_^wV_PWnK7=5c7-WXr|%KHDu6+Yn@TWFTp`( zo^eg3E%-OgM`td46WAq)18xwBoMqZuXi2@P`l7zlc87@KL@*hzn=Jr5)IW&=&|bJ9 zWUQg~b-=kB>R#IT%;810j^M*Au^2Y{pgu8%1r;^7K7G6JE7Tm8j4Wcv%Sb1Wd$!^r za7YIleHM=y?Wx4f)PJ{mr5)oJ7S?*keAD#q_!$)$8M%5iopWTlUr5!LFtf*EoBh~S zU}s-MnUj~Gb)*uC_z^!xZg z(TM=tca)h)w3I=9iik9kVmNwhluMxo)Z}*I!5rAerk|wBr|%jv4o=vuM*E}(f`;C> zd#Rav64$&v4(gUmJj~EYx@naKYEc^hHxxp^Urbiw~rW?b8VHMv6oB0Zv22I8$k*U^#O2+wx_QlPIY|CSGy1TDz zNCQv1n*K}iU(roFi!9yw$-~!C>U>wZFk#uqqs>hMH1cH=@HUJe}gDwS>H(fvR@<58&G3K^+aM8Dfo zJnA+2$9VJ)tX^xD`&&u@lmO=5R3WM4l4Ff&clRY$OQI!?9$u?@OL-QM=NUa7%AhBJ zg;45yy*MB?;E$uso{tE>d?L>iq{=MQKWQ&?i^{08Uu&7t46G%vJ*h;488Ex zz;ab;umqh^buY2u=lE)fD?14deBwpgeL)z!e5w_IJ5qSvKnli#r{n}Y1~wan8m&h0 zk%xwTM{L*4(2W9?H}b2HD< zp^H$cvMz3ad|S+uhadWx_hxXEgN%$!R{ri79+ndCFeG-N3nnGL^spccCX)C z;!Q3G#$-P)V=T{ra27peKB&Rc_nEWd2vNHG+p0fEr{3j!$mDTy_|@0vF!5LI#RV_* zB?vt>VwzSs#OSXvUMQ-BjGtzIk0+-bk>9~A)_iQx*>8Ce{1b+<7;F&OQx6eI=%qrO z=p}DUn&{VjB5XpmImZ$B=rG)@`PP(X<;m1zl#Yta0^EQwaxFx6b5BI7?U3ZXO!)}J z&nTVC{t2DSXF|)=79(;8bmb52A*(^Kp(lUhw~w;o&QzC>jY|gyekqDnT1rT?LDP(| z9GD)i_r#S_`ZPw1YS(6*^Zo#|OE|L>RG}2ZOw4^;jM~$$fR)nV-|~G6l*QA4)#fk! zFtwhqRB~5?#O|v;c$*|5gA~2Xp1=72h=DkdHVhvhai`^zwhkiN7PH^ym6jeL;U#bM zTNW6pK7T-3t|gh9#u}@mmqpqTGhLWKUs79VSGWBom6no{5vE?j;oKa?tKi~9W&L9Bf*qst61M+aQotgt;C&|BTdvVEn3F|J zm~)wdK~(Uu$stMyMzf$f+W8;kbtzple|N7t|Bf7w8%g9#fT0TB)r0UXUHn03yHKru zjzna!fw`Gk#Jl(AvVMNgz~8&dP$3_&Rkc+r1QBSWrpJk)!%FRyQ*SR8J9n8aJqhOR zSzK*a#9A9Pt6#!=tGMcUM!4S+eC7AKE|Hm~NNhME+qgIFMt{ALT3)a@)iW9EB5s|5 zy3cR}JA;R&5$nV6{GHs^0`EpFQbWVSb4&b>Yi7KXj|4dh>)I z4hSGXA+}?(4liAv7*Xj>%wTv%h@W zP4;V+g{)o>g8HN#`V`9vu5R++As`{fJtMFDodlm5H}l2a$MH2A$9Pw9Z&_&;=?j0xMH$pC}>aG;1s2zf<` zF{JI}Qts}1U+9Uu%J50Ls1`QWH(YBkG6>1~Qp;&7WTZ^SGw~u#$2tzN3IEwYYFVHUGmDQzv^YBH%#;AMFxG%Y02$MAIjinPPcK*XRykrr&N49J(hf zeo-|Bccaz~%<$gTzk%dX|Dr1W7Hh^lDE;^}bbn{{DUsLNB4Slr^Jl-j4q~?>!1i4^ zQ{L84fPs108YFh|FEQo6L9042*}sY?ko2S@o2sn zxu3!MI!DY}vSThG1iLj$*T+tYBA1Lu6>#T`cYIG?%5wO3Ru@U>RMD~Vu>qWHD>Rq* zM)-zQyn~QHioO8QXPU$j-P<=kAYbuPWIlzqvfyC}hdKTA!NWbv7V^E1cf6f=PNbT| zn!Ah_Q@M^SFs+yV*-H;ju|#DIg!q^&*w<`(8n?7p)qb4Q3%9>xV`8#{5F&Kw%`AIz zzDQ9h`6F>K+<9H5Eus2q{()>AZt`#bd2~-RKj8rH($zCmh(s9q_&Z|K;6Qr_l@MRF z;TYR;d&txUja;JwF>M9yRyRAA5YrGw7<3_L#{`;RgspD9jfI7UxUFssXDWn&=oFHR z=SzQSiSYKtxEs#aKA}IKGLC_hXQf=Rvte(DLw|mrGy#^K)h>K%*h+tdREsj*-hb@Yeqp`xA++kd5A$Jncq`(6kO-bk7CD0A zyF$bVUN0|5nCiT(Lss&3ff#+Tzo8HEvM5oenXE^D_(Z#n5X5Gz>1HBN!PB=R$|qpp z`a{4)c|>!y>v3$*i}&peDy(q#Pntq3S78&N?7$0gGJ;sOv8zm6UMDk{~+s>Zy& zipF09xTqUqS&NJoTS(|%;5n6x$}~i)`=#x!9G;K#i`cOw8)`@fb6eF)--#XKNSZpO z5|uaK+VP;>q>k-@3Z@PQrjSj(!zeSN5XoKW6YzPS>VV121)*E!@k$dQ$z`>cgU4RNHKuIK&3* z7AJPTx#^sX>7r}4d$~ep#%LHSDdwin^6*p)os_0bE#(g^`CF(5#C_#4xnA9J57LNor26!PJFa20EX*vgiRPD*pjYxyyrTP^SdXCw) zveMFMVZ%arF&pwSGT%fAopPmJ!g$nrRLI70jXn$Yo><~TK)Z*@X&hLI7*rh{9U<{# zn|JNA!H?sj#_pgKCm?G{>ZWiF=5f8~GD*6O3Y@xQCGTQ<%p%kK6`_f+ZJSo6(l1w= zT%G$}qUgJL!>fLYaioZIkl_cqDmSx?OvcWDZ0l9n5|q##!s(fr4I)-!P=yr3gOCAIsh6tLIFFIXji>AR zvPPm?ef_iykyO<@9~eE(LOflE_EO<8Cd5TD!dJ7DgV9u!B_31sA_35sD0Xx(=qNg7 zJGLtnnK0DwC8re#jIdVK>%Lz@DY6&on;R_q7>n?_l@vkxm#2qJ2r*!LfgV^f$hTny zmY0cCJ1F5Az1w#!Q;8m?l>`i^Ir-roA035u*OF(_$kDg z$IYD{?Kl$Bd(l{P<@+yn?xuc+w!@0D3}n1(lPh)O`!eHI-##-MiqN)!>Wjh|!~aYC zW6ou!+=j{ndAlY75tA2>{)cb^`mvusOA%ow;*xfd%gAc{p6)4m)~fml(84kZK1L*o zS9`|^UFMVlB&lBIi8L9^zud@xj82_tgdf=E8-GZU#%bWy`nB+&`2O=236EA!dNExz z+>#m|JO?l9FZ`xlFT;atew7~D-G?d^?{>Ou$y-!A=7}2Xu)*2Q>CDYbYe^n~(>|93 zqmx;oVx1}N8+)s*zIYd1M}_(Kf?6391@-kDS>1+~&iaMqR4Glx#l;c^pZo@6iL-f~ z_o5GGN+x3W>bk^H0q-JFmY)G@#ROOB16V=!B}=(<(rn=1eDwWeG}MXxAq9~{CXjY4 zOLlux7L;V6Og?0)5UV%noy@RzP`{4eem%C+&fBU z1@|HnfI?ei!~64sHo!wVS6Wv)Z;ZTNYc`VXKb9kGFwgf^QHe+#R4hJiknMyy z1l&Ie389cI>r+R;mgWYHnT2jX|l!`bWBs*&u`!wKv z*skyl-;g_jw3>iY5PG=2XV zKkeV5zZ$Frn43z*Bc489$+P7?0IuF&9~AF8de1HfqF+rG!t4tJkLn-LF1BTX2S@H| zD@~@MmIN9Px63K?OvYuQz6ugj{1qFYH=GEF5l4p;$X-7rbo_yTeHu zmoxFBRT&%g7cU-Q)!AbOZoX}dGxPp`7)YK?xSz|$_@0X{|RYG`q4zC z&tetaNC7j4BnMk(3-MeJNgzhQ6&59w!uewbgFw==DoW6|a=)TB65bC6!|+(w7_P=} z=?o{+KUle<+`=cJD0)@)7H}VMh;MeLB8Bx$d24&CrMu!tL(tf}b=RWj{&j_G5;p?# zn(%U6Y;8%Fxks{1n?}rDU=Xd|IHCe6LzI(z(Oj#T!_+LrmDFEZtau*PLI#77onM+wJPXB}Eu#gh23N=fWaxsQzWlbq zM9Zx=i(rCu-XBlm^~XE*%1vWC5ZDrLG#DN+jEwf4f>TR%Piv}@x|=JT5Mxs$OLTOm4qQ{L zi7dQ0vu!Z1yflg>N)#IoxNlg~vgMobD)M2|vq?UhQ=uXrIdehUJ(pXA@iV_}LyrpiU=##{HU z$_59k(mn4?xf4G|2}#cLug+8eS2R}id^JcdA4NmvSZjv&K40tGfd2MFWvOSZPM?su z`OX6Sl*0@9Jvs0S-!b+2!FM3X@RVqyAkwTl)`iOrt++}>fhwfS8qNC|=yLDpeypWy zhw1E8Iz>C%RG5ruXSFJR&1+Qr++k>t)ef90G3>}F3H;O0uN%1| zQC5EF73O=M-va;Z*RKi|dV0Qh{&LR{^7{piTGh$~f%wPA6XEk%B~P6Nh41>`2rrDH zf#X7mAE~_Sx&YTSt6sji_FsN6wHnp5!hh>ok10gEA=ZKf7LPa|Dk9IX{=i5yT+OlW z^`l4DA50`D8E7kR^E-X!+mG&zVJw-^C2(oXr2Cfnk=Xd zPD)Gv3WKv_1$NEyQszT96wDgw;aik@_g%2f>^a%EEi`lRmvagOc8GC;#yNmXaT=;q zHH|4tj!?0$u+>V?NGm@#=bc0eBbd)6@C>tk$4N2~`RsHD+y7W|!2K(B6g`yy zXSMl(Dcm~^h0!0y(Zkjq@)pz|(9fc;sq%(Urg6=!kr-W;bD*Z1oL zhkG{hpZB=%PCCNt$!1b^-2LakMe;_kehZ$RYm`7H7nJWHaM)9B*CPg@4zwHwDK=atrhZSqPo+U zWCK`|Rw=-EbpK+L8LF2j9A~9>d&tRY{NL6~gsT=P<*x=Il^Sku)ZjWvig3z}k zOI|J)>G{+z_a600F{iWQ$T8e|o&;@H)K7ukbjeMy#rQ&}359xJ8k9pV_%%OmCw4Qf z>+{HJ*QT35-jSQbb){V>{(e%6@$^BGMO6vfo;0Jq^1vTYmOHdn?u}M@ovWPxLf64s zfq921md`6__7NT*@w&6Y$*InPfm>H}TuBHciU7}qdPTZYbya^XxssE;V`zKe|FpV@YOA}`=`RV?99~{JJ8i?rU zz>P77aPs{(_G`kd^)$2V`RDSR`REO0GeIl=px$4O-fT=>dN|}7Un#|UqF#7aw{@+A zNceBWojg@9mEWB!@M!-oMPDx{;{Cj7V8hvtA)l`Aijq>C+jjcbVWf@bT852;Al+80 z^TzO`aVr8opSX{C1k7o<#)KY0de1TOg~uYv-~TpURHTE8-ADMP_cQ(i<3)m_s-p{A~( z%aSgFKNZVxUD9drSwz5e5_rib>UW-d>)QLdSq(8u4oS&5P2~fu_4B6$_S45IAHub3 z555#bf0X+r>%H@d+%;93NCYJYev0!PBu&zQ;x1z4z#*G8*ukf5SJ$1JrfueGg)+Y| z=9=Qk5L%=a8CsayF)XaA!6z_Q&)I9r2NzS8PQ+-J*n4L}cUV(Qng4UvrAl5WTL~8e z)My+0(FCI23&+_lRJNWUy`?QZCB+?GMU6x$LP0g?H2@v}m9GHisX{Rzv?|T=(t~C! zv5oOt@u_5$51&?I;ktwt&_2pYhlnwW*fr4Y>)>#(b?pjg`z6{~P5ZErt3#Hrn^wCo z*Uj}Lm7&xFRIl=Wq^KEMY_cqiRuQA>-26-)SxCc z9e>-^64zJ-#lNPi<~?ObL&;(lq%!-IHlvXZIKZlJhiyFiKJm;RXWmR_TC*}D0ia@7+fHMJ|on(#$)c#p6=6)M*|<-)K>Ov%NtQyD(iO_bx%J;iCQ!o zeurUN1(NVE^jV?X^asWfrpOU{*>Iv{&74eyD-gK;p2C=Rk(HMHtWa`c=!;EiFHn@* z_T2X@Q(UHexaS~gPVK{MWq71xNv_PCh5h%i4c-!}^#|7hmRpwV@bMN6(5NR^mWQ({ z#92Iwx0U=6L+lLQD-+2#yZeH^A}1iWebRfE_;pc5YyF2lEKcXE^i~jI3SYMCw83eP zp=&kAy0*30VS!3WNT5KmXben6R<7S+%uVk?@?6&CcIf4gR%_dYkt3p~t&cLYY)6=1 z(Ynb`;c0GoB6i7RkyEq>HUst%Tf!B>F(S<>!aq%=#!HUtTDcaVmN#6F^DFs_>1*|- zjmUnn#oyqrH3XHJ@y>5;i3Hhd=X7vJa?*M?OV45-)Re{tfMOGqll2!SC&~O_alVO4 zRb(*KeEERv@ zrOEQA{pX8DqAP`xCC;NM4@bq%cPmfd!4>TKX3jA(AZ;LG8L0ZNO3;uHxs#HqFxC>T z1hRz9v}IN}D@K;_%Gjl#yb~T(8j_6t7k5)p&$XXDmo22#OzaK>Nk+U@dY&hjnH_XC zHOwn(itiSVp4yG?Nw674yNVHhyYAPzk7}*)Y@oppLJ=G2K|^dVw&|Nb6`a{iL$b4?D*-m zWu<+}KtVi6_d<=)i)o-}>UUK`3`?aoQI3DjbD`Q{gM(i~>-`93Sn)}B(WeSE8PP?3 zQFXR6G+hCaFgfq=d~d($LK*+A4O)u5!|Vg=PpW+LL!^K&%lQ#11!ILSuraIrj<$3lBnE7E50mR?K&ZGBJh6^ebc% zRNLHOtZ`w(jlJL;8&?r6qI}#|3qA)@ZVm!odN#(P|LR;PAzbAlyuQtHdB6gh{yuE$ z2nMeThnpXJECm|qs2^(p?+{&#k+}91Fdv3*VTyUtLS5i80yDOrSLr7wv6EObf0EO* z8}7Q^?KKFs*!gh`CX1>&HzXcQ-S&=VJZfa8zk~J&zXS?7Lg>EHFSI!Wo*0LS$g4%W zwR|HFW`Ag<+-}L{RwIYgS8157e4$l9w0w=&a#C}p<4LRX3 z%|xBr%(0E+i7$c>6<=KNGO13!{!W^-7j1>miJkr8?K9S~q*G2<(%a=LK!D2CeZ=%o z%`;oa>eEUAcLtpy$CaZYA4V-ui4=|MY$qj_Fd6bDf*y2Atg^39@zz~*Nju2j-8tK)1S6FDASH)My<=PR8|wy z^-b5j=tuG)6(BUx%b&8#-=F}|mR z{0yC`-1NR7YsXJ8KYDHqvlbc$whSIL_v;d4JkFv#tkz=BlBj_G&px-{>VTKH`1tn; z-Z^#C?_~MG53fBzAOCu(k)%W>ej@;M1qUg(KJ_&vWubLwh)rmj9ikwm>_XVQYE73q_ozev+;0Jf^e8{ysDn>Au?nt01iiHjWRYgTbI(S?@$F6BG|&x zOvooTxebnmq+O~wXC%)6}zVFhU3<{C5IHE zC6A@T4mkyquQxc$F7+FsjfYwn9K42)dY7fZz|~dV5+0o^ulCUp9vv5i@=0AH$N~=c zZHMFMp#+-F`A0~D*F_DSQa`AT#leGX079+NjU!`!I3+l6qT=FS&xh3Wsz8vJG-1V9 z29gq=_Nq8ESqK|=94z0;GAIa59}s=cxhpx$AYv3W3VKk&iQwT(pDvbJ{#J@Zo9o=% z)=`SXr>*@VWHbieyZMTlciLmS-QYLAP_af&W?S8|MhS}a9o~evc+|W{kaI_j`}u0B zGF1!sfm7rS1}TwDCTWTrM{{%P;$Cl5O2VXsbx9S6gLAUy0sD~eMY&^Y*{^5Z0(mGV zO^BI*06jqO=2+^4B|$--X4?LR2Xh!}8OQj%`X~}Cj3_G`O|BO|JI(?>QG(E#viEY) znO#Oh$$($FXm#xY8ajY9YG5a%RRV*dww`SBoXi!ktVe>#{L*%0)z1K^rcf?0h+g|R)>){8GMnPg8`9ro zP+@rf_K)vhIB5db(Oz-sHLCIl5>**Hyrj>rK!ndPFnZ$|;K$?gN@+#&-q7f1fh32P zOEpH~TsLN(XwlvbeZ0ANc=&I2igUx+Y#f%<)-w@?RZ{6T!1D0Ehnh(N zv?!ezll`qXpyY{sQ@qp%$dw)1#>NtJ>FGmm23EaxG-^u>OXYsr13mf;r>0tf(Ncp-+rWGSw zg;9`5JdKUp-roLDGIQsC6+f5d*W>7bpUKGGJ#^`WcW;cVM+OK2Hh!FHw0Z1xb%NBq zndOM}?l_oy)QCjQDOj+MWj}HuK>d9iZ3vIj0;-orR;>waBFub3iBF!Q3ABeh&E$dT z5MK+sv#XtmmD`y%?!;65B1x)Qv`KlDtFA2o&FQv(CDpOy-ZMQtti`>D;&U%uz%9() z-Q*wj{f9Vo^)WQ^-fY0|K{9O>CP+rsH0pQ3pD^08_cmLX%gf7IlUwVSN1{uwGZIY( zQgC=mMO)h%T!7(2B%&BiIZJjg1hq3Wv1RJX9o}e*VGe0{rpPc?l^_99*RFiGv7zpK zfw_^SS698xN;y`ch`!QRm}Lx~9YAa(Ebm=k-!WvyK_KVKwy5x;D#c_05tCz`E^N?*nQ}JOlI4^6<8rD(GVKSbJ%ee2 zAFQx;Dx`OFq8V4!Hw&Y!mrr{8z75q!eV`yC+UQXN{%QHzV1+Iid$*0oL#DHSB0xja zvMHNj3fONJ87W`$)=*dHLV0T9Iv-Kz(;h8Qci}rKKg`a|cH;(6Q>I-Hw(DrKZvGKe zORyg&&eT!2F<=AE=}xDEvD7Zn9uG7u|2n^R)7HaJ%mDG1mrdLFtMDn8#;a~V52Eqp z7{^9w7sNLVTOW2H$&O`U;65zyYBg{v!9{6`{;T=EJzlzgOfsaP8uOn1o*?|=@v;dS z%+?xbqm_I0vga_n#I6M=-&(@g4_+~Z86~Ycl)2W`u-T{}5pr$aQ$Tid@xZrl-%d`y zV3u|oj#E)nFPo0DZZP$H0mf*!AhS?_bcKCf-}!X9>4v*{Y9Y+9)fIdc0y{|n%3_u(AP@>64B&D&4>YJNA%7Z`cm}6-Sx9SGZYZ-tt-}q2E<8Um43Nbah!!KB=2$L zU*4-rpM3FBQ7t6J<{Px-+K5TXf0Iwhfz9sqzjk-2dWJ3)M;9-Yvm0>Zn14Uh9#8J{ z^+u4}wDl%Rc-v$pWNSD1Z{>8ZxT7GQKYe9_0o8hN+7}}rj(9oA906@bzKr*rDjkY+ z2k_TO9|4zG2DY4Rkg@~h`3}COEMuHokHR5ayLiGpUqr1fR4waqKP6+rJYr6)eH9tU z`9Zp1N}PJ&VI{}@)dFpF*KPH=tf*@`_>p`10w1^zk z_WG1D5U;8?IFoQpCeY|2W_o(sCjXnbV#1o~Xi`k`$w>^comcyhhV2sE4n3d4!Fci=)LN%MY|MV|UMbk`fJ*Imhf?IL#7ne3y;i zW$8Z8&qphMdg|OA72Ov{U6dd7ZSXy)1wC#GrRmF$<`?dSK0(#sPTT)p_(a?+cP|@Z zA0a8zwJIDV(cUhU6RV4ApYZ4TowSzgT^^uYx-yViFFBp|>J zvZsbwK3QudclqI=R}YVmS4GBOqy4e&@kk97)$A5DYys+?-QIN^Y2mUk{qX7!6}PaC z=8NHi*QqB{ORes+;-WhbaDXtW@7)MvJ&rqtXT(Z#kRd2G9j{S#qQaN8fmqogPf6WzBkOW(m2dt=Qz9h+yya&PQ(n!sk4dPc1}P)=N&BTKY< zLP2;tdTjPfP(l%9B;OV7RH}nuv^!@Y3{$9XCh6tx`^!6b-^QIXaqM|U`LD_a3!GXj zNi{97Djx!!?SmaXDi!!Y%UVmJ%GmMPx|+`~>pFty*)6&Ie!k4A)JXg2<4}dNh_WyC z_VLoLsi;jISXT%tE$Aeevh5T?SRK{VBV56sUHx=UvYnn?;Fo$i?X`2qPFhgx*oPG- z8FZ%o)<Rqs4qf|tIybp)n>g05RO7kJL3+oels)?J-YayUqq`+q9 zda~O`L%i5*fKW)qPY9Z$3Gic@&pKTU0{H5XsWuU+tlgRmXr(5)ih4gV;=qfB}Ct(zc@lc`&i)#5{Swg1<-au2bMK4f-SN}R&f zv4=@ej^(5QnRjB>LawH=in>M68?9=_)xA%Ew;R}?s^)}gln zBr>GfwQqMy?4~s9W^SlX*vHK1WyRaC`znujIqb)LSYfTwm|ocN zqN=)aw)TT!7mW-5KXiR_a2;N^c8tbJW4n!;q_J(=wr$(C8ndzOq_J(=#`#Wv_r3b& zy?(X;BF` zCxkXt$43qxvyI_HN(D01cNmz1QKk6pW7g_AUe5v6qBx>}gN7MEU)$HcSD$OPCR;e2 zHRB%XDfR+960Wyp(u4NCzCK*y!y=eSi)v5O!}l^EH%R{a`a1W;&t3Qb!-i7(vkdVz zQmv-z2n!1vaudV~)eBW9@n2uuo^6|bpH|%Od;XG{#gcb}zI5+y?9AKYBYZM(_P8)1 z@*J=kKkBXc~jC9NygW4-*4c;97mcKf`CZ{ z8kz1B8_7ZOFyh8fAUGT7$!!^>(CF7FUN{E<_n3+Lixj5)YM^xg2IkM~=+U%Y%M_|-vlHS}BbVMc^^QmznR@HCy$UP{VHP<+QgBS=8cr0URi%_hP z?tKUXSo1h6&{8)6wmv=1>^&0sk=C3tU25I>Xb~|=hRqpIS+$erSg%S9J*r1e66?JA zGHT)X*uf}33p~MMm1lntJEs_IBGKlD&!Z*TJFWkT0+fEO!mNONIHaYr7P1CK$ez1Z()U->*!7XCr zV1n_a0sGe@{;NUwIX-MSRP@Hl$(zN^&YdJx)u?bNPEPhR<&7eP-81=KqmcPZuYWwP z&o>kf66;hZAj~DmmSIICDHauz3f(Zs$>j?=)p(cQn9A^W$@Dxl~nVeX=m)jFL+ z#Kz0oGX`Hsx6hVw4?igk^%~~GEL(StK)3u*a9d1D8#o;4HQNsUuu4!Jl2)jQtY+NABm9|GT7G>v7seL2(ryy(1;r{WqVKVVco)I`Gu8}L;FjEzUP(R zuD>IrF8`Qk+>tmbI~C5nozOc%9dvaydac$&9@L+nU)FMDH+8dVwNaOF?w#Lus-0sL zq6P~7DBI@yke%|ZZ<#{76G7^A?EJdNGu@%P<9COVRlnEBML~n|x58WBo|m_c$lwEP z<{_16KstOO7An{I2`s3+!obJ>9|Nd-%di6t1;Pp;#2E+rSV114*;01+HhlGOb#--V zvlMJP#LcLpUk;nODJA$K+Y~46{RFlO@d)%;Q zg6i~{jSE8Zq@=h+LdR?C3nAFDrQ3Y>>E_?`weqQ=>`dI^ZZ8D~VSph(-gi$}cYc6xPC z<1{h-KSCa2upbv@{=|oNL77=DEt^%%9ykMHY7y+%zBV_-+mS z*4`_f;zLkjd$kQem;cV*8zsPVlNXEFI-Z2pJ#uWOZSZ^GDll;B*YOt<7-?%OQcrS> zPy5R->241FY20cX9*4!b7vt2c@eT*t;T5FH$Y(%Y)U(aHdW-d09NmL=SW>ERPLBi4Q3<55T*WW>_3luDZ z_J6M+{xzs!>Y`(>4`-r1(=M!LVf-Q|yCMEppls@!sv35(aiQ+$1v(s9&CMs?e?mE_ z=sT{nCzh1ewAq)hH}e|M8Sw7>I#s=(?2mnkaNiVYa@gXL1qAN!SHt>3`MvN zELQJ=R!OmYvWr5bo$ZS;nuqVBg8kt4sVd&<#0%vn^RTGd6O>IcKrNf*A*8FSn&yLR z`$o6u{^?IK;>F+n+?A*+*#ADtbc*Mb;?Ni%3U8o@?b&82joiDuw6;}JQTZ%t&%XX_ zf?#Mi$dnmcZ#puJ z?CML46vT&j8_hvSTt8c5=vetk5R_JHvTt}^-HtE-MUwbq0hQO83MM@Cd*C@R&hRVu z4_`)E1#c9bG}RZYrfn}dPo=zUA>QP@F6kwy%S6C{E3`>>O_$f=r^hgJ`&yz|L~R(o zIC+SW$H&%&iaT~dEUH9BC4G!cvsbizQ`l>-r#)3uCIym|S{uI}um&2sZPiK`HC&Ks z_TJfve8RsKaPHdn1Ag=WXpljnL{5xJ0dnTl>*;Zl?mB_NEpOkrU1oB++Q0?sZWnXm zegVb08-SwgzDB~D@XxM+{^SPq^m%qIcfw?DK1DW8d?OQ1>)&%G!*W7Te5LUA9E&2B z^kw9@Q;c$Tt;rfFjcO_@trHanFR#k>+_=cX1m^u-NNSS5k%)d*&yI!$f1+h9a{3}5 z(=)FMyb`Z?G0YPI5@2@6(ynX6ebCu{d49JB@5#H#Zr2YRse0wE9;r!rVnx#wH;UU& z!FbPIov#a$h_$qZnY~Y8b48)mPP3>H;5$k1WEv%jm#}zfvDay38zi`PTy=Qy+-3=} zZS{i6YxRtOnZj(7FeyJuGC35AvQP&lPYa#=RZ9K;FgsuT(;ORmwi8YqS_%4y2Cqw< zYWwn@+Ox8+9(8|||7;+r(Bd>$fOm74_{1f6HMv?Kh{cpiS%x+C_Z2pD zcIOg9G0B{zcmD|3^X#!X$-U7c+gEI@B z&35P|kHjxPozm)#8?Czo zt9=(+E41$=<6@l4a+OiJda}vnxlYu99jcnvB|!?H-Bn8ZPyrL+g;;}K8)N|;@1BAU zKN6lD9A!ddxUG2kW*=L)`1<-n7`yrTl9OQ^>#OPVs`_RzRn^qWh!)KuP4ld|Z=Pz} zwJrB?ez&>7Gz>7a&FBz_Sgn^(BeL!kvf#BXTO?!J457xu+bcuF;V zZ*;j@*5uiEj7()A=mO~;xQZ=}OB3@9vQ}euc1bO^tuqI7pqP(g9KgH11%Z|YUqshG z^z;e?S@Nd4;D2Uy&x(>k%$njOSeVnYkX(`5i5TVIxsWoDkhFBl#GaCJ2zNXi1*s!0 z1{Oxv>qnDqFC#tZ&9(aNnYT5;T_9y~F;^X@_kmmLth+sTI76Quab)R8CY-3%DD}K8 z*eM{B9O(2-;=GMh^DLXZdbvisK2Fb*f75g0?dg;(`te`?>emJ%)UQ874(9IeZs68Ms2mk3k?P`+$W!a=$Dc`{j{yXnM@B{;f0C-Ue>I>w!H=6HgXg{%I$tZgHvqfgrrz3jn9;i~leumBN8XE7z1R zgI~6JVYy3$tRDYOjW9t(3hx_`fNZmw`peSbOO3FFdzIs!;nu}QgOlb$M*?ZI`gapS zu>3)#U06$3m<*#te#gAt9}jg!nl`=wmsUiK|r#<{|=G(?qT5xdANXmw46Iet)N?$3fJCLaS92e z+iqH%1lDx@mTS|$1a*g8^WMh({CR|E^FR8p0iJn5A`{^JPv!YL*nodBYcBK(fHCL$~ zR5n9HAQlXXc%pLYyxKKNx29n~MsCsiP_FQXa8-jhF3>CeA}<_mcG zF?i`q^)hH;i5f4nRc|SpPIMZqEWYVz_+Fc01hVuRu(e5fBZ4)^ugTNQJ;*c{BgWI1 z8a)7sT-*yVxj9@1w9`k6QLz={1_K*Sgrn~h$ol-WJc@mr0Iv`IJZKpY$`-}R#z`HnxM3fjmK$|OZJ^;IPR9r|(XBGP z4{(+A={)4SXq_0E-zDdfH8>oGp#7?PliBKc)K)WT;~z0&=K|lCwOL}o^*`r7HIT6w zjYe#5K8(M2@dlq7nQz7l)c_#9I|FENiw`lMGyc=+1DS&i`e1_T(Otn;#$e)$PxxC%EMp)?|Se!Ncn1r z3mnXXjI=LHGMCLxGYz0uMcC1UEsG}vC|K3cL{etd@-z|FPFGB3dxYd99A1_07*4z` z-w5;zo?c0<{z7r&;S?E++CIoLNfwl+gIYK;oFyU3l`8|n)lbjYp8dY=-<&OaqlXcZ z9dyy`;FIv93neYP{z=x(GAT;ALIpmyReR4bwzjS2((2JRLp=?t8b1@8-Gn;Du`F>* zZ2X$I(8)mGpYsVRSDosV)zprkkK5*)!%tj?eLFr=5?cqUV^{srW`=`|8>2&m=)zIp;~9jv95$ z|ASsHEa;UY1Hsc0Z;sBZoR@Zq_#qMu1U za8Dl(X-_R?PiKCkrK`TS*4`4BEz3-*+CZOt`w!(@MaANByOzCS$CIIql!bZifbhNg z@_4!NR??*Kml&5w3&LajNn+(q=~Gj~f|SRS>Kb3+Q8DH3H*bd?x5rzX(RV3c?zl=I z>l6Ef{C$$%z;{os`MM{+d`QNv!D<&kLFqIbW(bl+_@-H{eWUM)OS@|yLT-xAoxb@2 zduKuvPM{TREJ=t(Bl^q^m)9*SgD7+5!`fTxU}e2aibj?B6I(| zUOnKQGJJyFmVB)4ai;K)xbm?jeqdPAV;G@l&qV?2iGZ&_%kZ2n?Ywi~EnTiP+jduj0{$c04Fl)Dv;4ey;lhibG708-OT;s^ zkWHZMH ztANY2>mzu&sjJgPB0Cj1wBQEskDG>2ibupV)_Xy0hYrck@pG`py~G?&qXF%sK=Q-t zjt?Itq70yN@@#{_dirw$$*1$FyiQ}d)W6KcYN)Jylncs9FG9S&eUZndw_Wqf?I4RL z+~7s`ZVI=<#>@jTcB3D2gK|1a;N0iF@SdIuA#ExXIJA&@xW7MAUGbN}CxDUxLb@m? zWJ+X9n_)5hmkoMO#gv^E;;>}V71+P7`WO`$vK#TXZ)&%(w`7i+xe%U`_x?1c{+m>W z;q?DJuI26GoqT*ccj7n@AZe}lmhicH%@kf|mUpEA&9X?4QWC98s3Fnh{PwKedQsa5w+F?9E;<4sAs z1zk_qxA0{)@#L)pD2mLVo)#AcblMsobG}o55^6u1U!ECUROgm2+-T!@X!MCdOviNN zcJG*-ijHGR7(!P{m-sKi^|7GZiTrb9^uB^b^)WgBj3Ic3zO}&H;`c`HPND0M5B|q# z5xIeRFn3ZsA8OmU?_BTn`_@}7(Y+|M{{uTqgL};0U7yUp?Kwj1c@`O^sl_}|$JLq% ztE;P*oIEZtBA@buX%i!F#zfZ3?d$Fv9)@q4$cfG{lpk$Ru2o&k_Jp|^UBymK>9e^Hf9W2=zbjVt zH#Se6h^(@^GtMjT*BkOh%+%Bm@w}8DtW|HQthgCiA{d{uQN~cDFra`adg(r{hg|00 zu)9hFU0E6fLhuG~?f{RR2w-i8dTLnuc1<{(Yshp&4TXr8=625rApa)`dmPr2#~(Nl zGE-f^qTgmBv_Br(Kabh|*ChChp~Ml+=!U#9o_8E9cb_VHb$9s8m&$vSlE-}{0BLkf zXJ-P;QuG*%n4;Bry@Ja*e zcWh``yIdP~Nb9@%H`W>;jX0ke#6SfP?$iq0GtwR-n^ukxKDGjqmDJzrDR&fzLfqJ= zvqZAG1Z+OuKgtUZ`a=Bp{rHFwF?0_EkB)G={Qwe3$-of&%hrV-tehxM;4T+Sz*%)? zXG|pn`BUP^6}DFwIsmLU|hU$KY%qi8oG^6JH6%ejm~kOID$@A{()+rq6VkVhqT z>EO}KWj%@WdGKfw&--lu^Lw?v6sTg}%Mr3+qLOPJp>#GN>raf%b#nPNK#89}Ao1GQ zc$m&oybAJcKIF8g?Pq}t)=7NjLJIx(<=qkz9iHbFut?oq-r!!o6B^a0aq9K?N|AQI zb!p4?bc)nOD-tvoj+N;(f=7*2kAI}}@^qD!@Z%9oDi>moq-Y^zy&}Ht99m+mhzs@D zA7b`8ie6wN1n|wrak)lc(SryaG5xPza*+E?jqYT#e9;Y*-#Lo_vh~5n`Q=0GcMnhX zm>!-rHZ~fEIlYjQfI(B2g9gX*LBNzwP6sg)p)pL3kuoe!wypc=o^j8qljy8IA2xMx?e5VCN59PNI_vs6GbtgK7Nxk`K8|g$zk^P%ApGg ze&SGg)o^PF68L2-D7cb@pdXUlS#rTvi#ANUnL;!A>gyYk{AV_~(*ANL`JVGr>ul3; z>LvOL`)PCQDhlA$e3=6Jq$eEnaLmFVAElC-UcB_Pw4Ww(!!=vpd+By?&xeO&u47Rb zy2$ZZO2=&#(EHm-m)c&`KB!jXb{u2k7>VEL6pZYlj$T^fa$R-k;!tWuaX=o?txq27pHVG(jJ&^q;(uhiA{wh(YNJ7O+|d}| zmn+`n(XkJsrlmgpjsLLh*WZ4w{cT9>2rJQe#bc@r?ecvkKcamcs^6!NW}bwv=M}~i@w}Xe%_@!gM85N&sC7IgUxn9&p<<81ZM0n*FFP(83$xL5<9Qh zwo{h{_gLOZ*i0r?Z(K?$fb^`-ibxGMh6TB^1yUyULtIO3m!>Ps#7r|# z;_!$;(>zPK%pkIb=GlRSUinx(Cdi_!r_2`{s17PPvn@eKtURX(Sitto5=IQ8jDaCJDfPj@=rsV23`xH`4V5EJ}%~PrTRYh$-%zs z-Qk3zNKUXK6)}h*xwX|#WVhJev-Z~`UqDsc8sY;y%{cQM%iU`Fpg^BqHEi}m;nq_l zb^)*_W<}XGw@(uF)5e9q!z)lxl#kJ0z%!i?Brw%uaJC+ULdyt&3_ zOtEKDkYuD&C|$b7`x5k2_I0LsaFgjqAi-57U%Im;nGS{%E4E1g@s?K|09V%9QX48; z!kdHN#{u5W`C;(J)(b|@#EcfWo`r|%#{mzpwJ;Y=QD$-gcm*WL-@xL#_Y9wZ;vJB{ zFd~Tf0q-E;t3P+${*dQ|jCw~J5>SsAz+n0Oc%HgLY#+7Vy5FmTVR!}_5qP~3M7{tY z(LiYp`be~w;XQ4FLvM2~?IPTe68{yVh@1A4>g@q~D(9V-GIq=zw8cfS zATIn$tYchFbiC+J>HV?(1Msl4o)kq3UUl>bY^L#m;W3p9tC__;kHnDrNY zcboYfg-(SQmQg8A@xmb#J;YO{XN zL2k2zUr}hvP#S$A98k+ILXxkdRB)&46VEUfOA;@X7#c1c^$iv;>dG%jneZOaT$mXa zXUz3Q6}}7r%&R5c&VmJkdj}})(G>&5+33A|LA}LF_0U@RM_Zi{IEqh{U} za{Kwt!@ZmlU8V(ot8wBd`gokk?P!iGfe%W6(g>fqgjJI^z;!hU&~9Qen$1#B3;xz5 zCc@#>+6P)_d+w6+-2ZgiWnVh{Ly#YPcCH+GN?xAC4|AJdj`9=7xXCRMx96#?O0yYp zEs|0vKPwlg7Y2eL-aWEI(YQ|v=H_Md{z|ptW352XZN|Y@lG#BT&K&2J6~TsoTv%7`-o&hqoA3BJiCH zq03S!FH?m~KZzN9_>->)#a4Y|*?BUeG4yxffdh@o<;=K(02y@(+*#Fl`9e3R zv(_Z_^e<{T=&hgFX`%P$kAvh7wqSn*B;95h6*mw1$#(O|KMa#0tp_-%p{gs4NQmj!W$VKM-h9DtIPQu0eJ?P3@LiBfiKVZ4eVHUYVcE>FeN!Tc;im;n5LeG&DPG`X57cXUp2T8pqAae+mCm((ZePLM82dUZr|^AK0}5bDPH!7)Rs zI%JVFo#C?OkPX44W|-=10vOb@c(04=Gp?Vvg|)tujMy%ZK))k3-hYEb1z2Z&Y|?#M zeidZpi=FLZ40yjD49V?9OAD5ak|M>I5#=37j12Ahem^;2PS`^3?DL>`!SMk z-=-fgno#U01DHK2@~j*N>j4bRbaA7dn-_IJVSeJf&*6A_rZAc`rN{BO*#L0S&I$Ik z^y|&rn{DM;T`q7Ao>rr#W){ZPW9-7dl^bqozr!z`X3P}GK7pWYA}FGwK?T1yUZ{pu z$1F*US;dbviCR6xU3EeTbkUfdMEo&g0+K(7qTeFQ2A|gLZ(H8#X@(AUj)?G5#LE4_ z>ouHY*yI5%hugGQgvUH69@7Mh{`|GRa8d(HJ18Jc^rVpNT7{6;Txf6A*>uswOa>5G z{$j{!A+DcK6jEsnR0#uFA%7jNzmaGjFiVEM8EUJ{AG_5Te;4#GsK)>{8U~_{<%3{4 z_T~Nd&(~44fbSIb3HIU{5m*O52*-`+Z)%a~x!w&>eZS-S7m&um!)q0d@mhBrMh;y@ z*5ZS`(-2?O_^T_oQ=qJ0*Ew-&wFw(K=C-(=Jo6@-WVlB4Frd|iYROmyb>MVYg@&FV z>tHZKB#%-nczbcW3uW*uIw`%01C$z;3%sW*kvu|L`gR;&8g_>nX^We-DtYWaHc1}` zA+bg9Cuk&{7z{sJKvPZU0dIO+w6Qu2{vr^+A5+c6cvpR?N^|dIhmUqpdd6p7fqUCN zQJoLcufGRxeXyiZcxRga{xbY?1LkwkjQLXuP67!YeqVzI13YD@K2JBF94~UamXaut8FI&m#xn5t ziX&m#;D@-M&nMz^hqiNXI_O_m?C+Zyh+%}*#^T8v%j0F-@WJbS5wKSOqh=gQ*A(|jgCWpsx9r@X69If!?{`>^| zsi!#uOF(E3@-fmXLV5d+4TI*uGkWVkx{ogI|FR$dt2k zX`p%clXr}1BGlHsy{Y*z%-h^PWK`;vqRp29_hHC8J4Vr`%>qEXfhejPv(QGKhiA5k z$ez3b^xxQ!U~c}tgit%I@y6y~S9T>L95~S-F!tPt=>)Rat5Ep39p;yoEREAw!VXHy z%c%kd4RN|MyCLu~@{loiv8samg1G95aoKgIdV9SqFunvE|AmXnD1L_fpfuSnxK{$P z{xdZnpapvC0S&DFi<0vDJB2{|pGOSA{HTMCz!-9Sd;3ET$_1+Htaxwj+0Ce!|Bksu z)N&``_wV1ni@g(aBp5W z@E;Saz0Ic@KYsVts!_qHD8;%a=Lv!GiP&U}&f2)T=5Vk)wW3Rw1JqKCVVMgN(U3fh zc6#IMWH55;bW9_!1P*j}iyDa}ebv2Cqv=R~7v3gVEwi2R z!6ikF)0uV##Y*cT6E&PL3VL5xdUGOGDlM&p5WD>=hfV5s)_)fw4GV{YJX)9ohx+;* z_BkM-qw^9_^`@U^V(>XP(>a_in!kpO2cb;EfY~A92Yhp?ybXsql0@f;F_#^Hv(E}4 zjVDD*)f?CWTyAv(-gsV~Q~xmxN+NzKDAaUxIVth+H>Afe)_5-{r;=C8Px>Nz4mq$` z#0FVWzz+(MGAsjk&4J`Qy^o3FAsS_9do#Y44nEuH1U#Q~dBT2nf=psKSm{OwLO+nT zFwDk#3*gaGtNv!r=idbDF^|ZoWC%mt-h_n1Xc#p}v+(jGe4W}hc0#tb!o^B^zk9;5 z;hf$}i-)6x!%mB}8HvOC8rF^5f3WtN-B}Vf=J~Qot_;vjG2FnAz&Y0I;byv*bf<(v zN4&o$_;rnpE!%;5Y7ZwTQax;-lW_l3{(EU|0D(h+17yynfi%Nn-QRH)_4~JR+Nlq_ zy&bv@>FR}ai&(Zvnz5$kILcq!Y4Y6JGP09`nVD0$+9{0$w;k{=qd%Nzh!EvB9k?)t zDQAfNxD|Pr(xsTc+}$2K4CUY)xPU>aWG#rY0fq8@HqR#wrXZTMTjRMoq)HK@@s|#e0pbOpG2g{lp?`mbE z*uF*(`sF&Uf!C0Fj0@a#bC8mfLXhS7R|iD+6k&S&rJ9sAxcv~djg5_eZc@_^Bp9Xc zt-T0ENb0rVU8O_cN#N(*BL9BP3R0H7Ql_945|C%A7Z3 z2Fb>(^PoO(BeH%R3O5=x^nzKx$(hjxSlM3WDYGx^$F&zND|BcQd{xr*$hC71~<_-t&i`-&hiR*6t+t~u=_pE z{qFEVe=5n7VPqFxPyH)WmD%mCFo2iA`dwR!(3Dh|xyODrNknhNtQl3}_kaTO-ZsPs z#_9p9eKw_{{e2Zu0N@CVyj7P%_i*qZa72P)W@A(Qv|kd6nEUO%HIGehG}X`dKaeyd z*xTbpMW7czRMgqoncPG{H}+`^*PfdK#bJ;8j^#XFIhGvrN(RFBFue;#tQqj@7s?d1 zUEGY0$}#j7dWVETthG%Ss>p!=wF?swov7&T7=WA-3ENup zE&KOia%=2|Iqaj+D6?(I`EXRR|2ID9RY!{bkDmKcA87+Z z(?S<6=|3%DQNo(1!kK?ygwdX|>qU*dosP^GkW4h;-==L- zL|+~A6`ay%dR1EFB=iE5Ga^w;{d04SL_JsOqjC~7q(Fxz6vU^ky}{F=yBT9_P;vd? zip}UvATQDz-t&f}wtLRpYm|;hii`o8*1R9mXt@-_Z`>_Hr@Da)q@KHyI80|em(x*_ zt(5qJf9^v2n!6Cq+WgQeaZ8g%6#N3FmiApA8X<}|fLmP#H}&ax187xUol*|qun+_A zgm|>`GV{SlU3ry#jZ@>Ls!zp?UFNTdt7H1Az~c*D8%cZfPQ4r09c)4!o9=U!;y+$* z2a^Gr){K|tXRc@47gB27{=xSh9raQnmCa`ybZ%CAJ8;Clzj?)`VdXbhI6h~*2)MzJ zNa3uHsc7{uCYph+)-Yu#4*Lg~co>KZ##s;a4L$KI8J?`T(hf}&ONR;xugO2M^*8?o zOmTpa5}7INzXmNc)Co; zxbuDVDPRAiv#l+I_2;7~d7C36+at6|ttZ#smHL{~-DA@yQv_3O3Dx;1Kj|R(5DLI0 zwEa!;V1<6u(PZIj*hG^R^3QpDNN-YQvC2F`2|b;(kNFwi7I9TaLr7JnhlKMiXMwOK zh*%u7bz~N8>-=KU@{Z3_QDWp}_uc)Ux4MZTZBaZMJz-C1^52A`J@YtAdBYxCuY#(! zmRGu8Rzj^Y5Yo+?Vr&tt$s5^hARtVpaykjvc$fqjXPT?)G^*x=(2PBz_^3$ykaj5W zRQvhedF~T;zY2H1dRn1oCq}r{$pG)=U)S^Z2M0dXeFyix-7oYQ9Ao_e+bQ|&hi{0& z?Ljo`X|k_GL<=(k+zQ8}r`|435li zEcF@`qaSJ%>GI*81uUuyD$~J$th?$k0;@#L^f-5z;}quS&TSoYM@A{}y!5Cw4E=?i z>zoWnt`$gHvEDgJDOrE=KIz4U5ZXT|%QO(G9Zp$&y{`WBl)%2p8-D4;}mS`T1%7TwMI2RS4nbn-haQzZKsX zm0rjV#>1I+$`|L~f8wMAA+j%>gl=}X)-9XC{GA)&)IL8d2FcR@B!pcpj0_w5so`m= z+g9){9I=^_dd%QnCSGh_&dDjG?YBQaaL_DjN`(d=pyzBe6oR5OEW`Nfk1|_$X>IXP zSAt+>c0yB5Uw6+tMD1)j7nT7Eej19NN^o!7Rag8Re`Xrv(Q`4wju%MqHMWCMp&ZVg zCGj%bTf2n2wd%qnH_E4bpUWVylaOd8XEKZ3k@mI&%esqg&esvhF0i*-*t>%5-yi@o z7LNaCVxq{HV1&KgrKJiu|DtA1A@w)T|0ksX=Lb>kUuWoIC|-MofQXobC|)>jzO20u+NPyGCtMJ2_>VQEY`RtN^3fOP9R(xCxL;-VT;b_{Vqbwndroxi=SqV=x- z!Z^OUrqmM7RtomS2JPIcvbU+5&FnH5l`#H9>?lV0g=48lmXR~ow6QdR7EM|o zqRD21!_Sz&CLqGKqS6E-h5GH+AFed6|EVNVej>(B^P4WPGMC=t(InKt*?VTol}XMrpdZ(_Ip2#2H*nO^(Rnc@duhhqP1K)e9OTRx zA2@}7$*-NW&~ns`p}g)aVSFhW*Giu>6vvJKWCR-mUd4lAj6ox2U|=@&wd|ErM4Hy2 z=tKI8AZ$wRuj;pzzS<|c@)7s(9UQB{b@tYSeN}p~A+JpNrP-^>*RfZ@trGG9BG2tR z2RUN8Bo917zaF3@Ear88s`53grZxlVeF4YEAdT!lyhVr_k*|AJZo%)}kxI)j@MxQF zb!aU}#vA@|!~c?oX$&yWr%UdrgMk!*^3eGd_^sTdXnf8`fyNhxk9!fKX}iKNILrZG z3sh|(>~WZBsJ+ZsGIiqzX_BAgZjkZgsO2aJG+prQvpfLBhtvoJ8+izx^>Y3cr*?+n z#4xK~qlE#KbeRfX^hTG6N$J1E3GvcfrX)u|ku2`(#-t=f1%vVR8+bKB zYQU{)L7>t3<%mqjZkebqGZZr(%KNM8=O$U|#{LY)22oEksBhUGbKIOB{-)3PthSzcHW9wV{`p3?sqxb`+YR5Sh}`nX;s1$-(5FLR=a zrfxnf;(x1zFtXhYyhR7xr%V9PSZ`n|SSpB9TV0$1APdN*W`tE_gu}WjpXXa$RtDP| zq|}Dt7UV%4^L*iWYC*6$|K7MEdd?KdI8n;!5yd7u&d(W%3;)`6M}fh0yOD0F5|x*V z;1H5^!YHsg-;U6YcAY0E^YT(0X9gmknBIhzP|B$<_3C&{0&;HtT_D5S%?h~s%*^QE zfa^cG03@uNyj^K>)1 zwG4~{qdh&2;vF+D9$|UdPh7M1IDXL6+xnb;WuyFC z5YjUbCFR?$pvt$?5*7{~FA7ms3KnPj3nTu^T?z$)uxrMBb^&2q+#`S(38^a*lx>oc z5v-h3gXiOZPAklQVX-QB-FQZBoRFEJ! z-ufPk{B&d^BdPHpFqzK6zm5BSX|O)T;uqRzm0*c zC+7dY~{KcP4U}~#7 z;0*=c<-wp(X4+L4*2QE00jBJtGdExe+ZC2()EG7>}|m>#3(7rtA-yO7v*nbt<^rBRYz^3M?h>$zYT z9ETO!^{WOsKc%_ddywitJKmi@c17P2uDu}ag7AleJrPKWPn=^ok`}yI% zdClGGJW&046+|~@I$;J{JvFkgU$A8Lrlz+b@`EPL+}1>;JK=IxW;|rN7Sz&4}k!0 z+h<%ihJNgIWN&80JB?zO6)s!WFx7CEG;^)`@?-{G@X*jPnWzL@bmU-~tUtr)9H_EC zx4%28NP_acO3Z=|f-!;N2;`NOg>TkhDhQI@Ln{tNVKd1itV$*RFZ;*$2BQaC>%yjK zX3N(I1VhHv_kkx3GtcQ#7sM~-f*pb){7SphhQ^Ed z3x!YfVsIm_9!{dp$$Be?$z$-?YHo<%O%qk#hbO01MRBsiGd8Q^^*WxO|4?5tEIxz* z@fOtpLMRE;*-s~@Oc%JS+Ol$#cH15NkK}@Do?7spR}^0z(Y8xF07AVCNtKjFCGgvv z(f`0bK;wo8frE?7JIK10Z6R*SfMuf;$ucLc3o*~as1+!}|7J7-V^sQr8AaJ~;*?~D zgbf||$jI+?sQKn0>)ZZ&uR|;H$FQkY(uZX7{K?}n1*S>I+eK?Z4j;B_kOB&$=}s5- zymt&QN4t;2H1g zH9@;oeq~36K(f7ys5?)5Md15>GnH4_93%zg)-s|YY~tfmFCKv@L;`z$F7ieJ{0bR5 zMv_qpr2GF5NCokUJG)pxc7tA2R1^_7sk}REGzS8@fJa-QT0Pk#Iy=}SXD^P0UbA7! zlBrtC$BHkeA+N&kS$}?6Gv%qLeW!ZIG!EG!3yP~S#;e6pX|R&>z{{b3-*3FKIPvQX zM93=FNXg>JA33W;27>kwFq2^oF*ajwR_8b=hX!LYVhGk|1O(6KhmT| zgIOw+Ia>T3tb7H)$iy`2Cr<;bnlW+fBQ1@tKxU%WC^OW2gjbpWA@K+c2iNVDNmD=z@DZ>$w z`A!y$;(YqP(e4UO3rZQpfu;{J3jwMz3tE1OSw;7{D1LBoke+|S$o)^w`#&+e|GvQA z7f~DjxKQU_6tT7xv1ScvGf=NU88>{oM>Eu@yE{QUCzcz z7uk}BlOYEDX)*u40@5vTVeb0Hk<5su`(x5>Gm&X`LftdgaFrf@(yT)kBBz@tlza+^ zw2iw3m}lbT*}1sn#!q>WonSuB;?88N`Ql^+4E3rtn@m*~Rr3_{$o>m^c|ziLnsCAk z)rHk7uAT4;>r}nhK`dYOUxJwXN9upQky{M+A|iPEQk+&50ung+=+)U-I|)NVH4ujq zQ9&HHzB(welSo=Iq)W|_Nd77N&lCTxKk7j!V1as3c-W|lcRLP8VfSxcQTb=a7%AH~ z=xyAIgE$t`@Xc(q^zo58TDz*3m;HfmflTJzz0W3)-O*)j$bv*WB$MF7kX?bMy_jcW zD9u!ht9{fQPUX(2nrjRJ4HS(F1rxxZCHCE>TPbB5++6u7aV%`J(Y@yPTl) zsa}F%V)glYUe^xAox=@bLGt=7fpW=Uwo`q}eztAsa?lAMIpB5C@68Jv40PP06{&eu za2*3bJJ58~IX@iuibMz~Zj$8Ll%+zcqyN-R{|j-Dp@69god5J{zmVhKr|}BRDFoA| zNC!TvF}wy8mn50~sgU7YBAL$jK`1EcBKiJeX=!a!Z=X`rt_h=>X*>JEM31<{!Qg1D zagmP_UTw9eeCDw_@}NqNByW_<;Po})qAyZWj06S#CiNqahx50^Dbj<79+pZPJnz?}e(K9Q|Avdu$=IwbU!-_aW z)%Z*2Ac$0*@uUo929!0L(Mfe#i9aouejmu+kzyj0=s^gO_%&9QO?*LG1{6uK$y1E{ zFL)6b1rvvVMvx4_t4Q7^#e#r>d}+4Q=3D`pOju9sR2L=H4orDSpSAtRCO8D;gW_uBDrgiKi|QzYRxQ#`PCjDh(ygh{$FuZIk5NL#_l zJayK%MEIKh5x7}mIm#{-5k8mJSsK(Th?Taxpp<0^pVA9LM;!||qg-?fgJ*mmx= zY_<+WjTPg_OZilN<|q$0$+3kE#0|E4Nu2T%|1k2YpC*kRNan5*3Cj>XC0CoBnlojT z;!r02Fl5|d$Mvp}DqzgU6ET>y9CQC<(*LUEKT3)m#pmtq4J}swW7@~X-Mw{J M+ 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%0Dhxy8p4FB>vn)TXBIAvL;|ut=ucVc+$A0EldfHWA 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%0D{2Qy%Z&rQ?v`pebxi9RHn=SIP?9zN&l*0 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 w>Zf{NYUcAuO0f}! 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�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�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 From 8523199a898783ffad7a772b713b56ff5d796e84 Mon Sep 17 00:00:00 2001 From: oujago Date: Mon, 6 Oct 2025 14:41:58 +0800 Subject: [PATCH 02/18] fix(docs): update static file handling and logo paths in documentation configuration --- .gitignore | 1 + docs_version2/conf.py | 6 +++--- images/logo-banner.png | Bin 0 -> 394161 bytes images/logo-square.png | Bin 0 -> 78652 bytes 4 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 images/logo-banner.png create mode 100644 images/logo-square.png diff --git a/.gitignore b/.gitignore index b4e4a9b0b..7918b6ab9 100644 --- a/.gitignore +++ b/.gitignore @@ -229,3 +229,4 @@ cython_debug/ /bugs/ /dev/ /.claude/ +/docs_version2/_static/logos/ diff --git a/docs_version2/conf.py b/docs_version2/conf.py index 8a5da8c7c..edaf246a4 100644 --- a/docs_version2/conf.py +++ b/docs_version2/conf.py @@ -48,7 +48,7 @@ if os.path.exists(dest): os.remove(dest) shutil.copyfile(source, dest) -shutil.copyfile('../images/*', './_static/') +shutil.copytree('../images/', './_static/logos/', dirs_exist_ok=True) # -- Project information ----------------------------------------------------- @@ -123,11 +123,11 @@ exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] html_theme = "sphinx_book_theme" -html_logo = "_static/logo.png" +html_logo = "_static/logos/logo.png" html_title = "BrainPy documentation" html_copy_source = True html_sourcelink_suffix = "" -html_favicon = "_static/logo-square.png" +html_favicon = "_static/logos/logo-square.png" html_last_updated_fmt = "" # Add any paths that contain custom static files (such as style sheets) here, diff --git a/images/logo-banner.png b/images/logo-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..1f3e0a2f41f8cf609059a3ff65339e245c578c4f GIT binary patch literal 394161 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 w>Zf{NYUcAuO0f}! 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�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�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 literal 0 HcmV?d00001 diff --git a/images/logo-square.png b/images/logo-square.png new file mode 100644 index 0000000000000000000000000000000000000000..a3029cff8b18bf28b9bf4a51c4eedf1ad1a58637 GIT binary patch literal 78652 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 literal 0 HcmV?d00001 From 114e3e22bf9ee7070a9a43ce823b0bec42572168 Mon Sep 17 00:00:00 2001 From: oujago Date: Mon, 6 Oct 2025 15:44:43 +0800 Subject: [PATCH 03/18] refactor(docs): remove deprecated error classes and update documentation installation instructions --- README.md | 2 +- brainpy/_errors.py | 45 ----- brainpy/_projection.py | 13 +- .../serialization.py => checkpoints.py} | 0 brainpy/version2/checkpoints/__init__.py | 3 - .../checkpoints/tests/test_checkpoints.py | 1 - brainpy/version2/inputs/currents.py | 173 ++---------------- docs_version2/index.rst | 15 +- 8 files changed, 30 insertions(+), 222 deletions(-) rename brainpy/version2/{checkpoints/serialization.py => checkpoints.py} (100%) delete mode 100644 brainpy/version2/checkpoints/__init__.py delete mode 100644 brainpy/version2/checkpoints/tests/test_checkpoints.py diff --git a/README.md b/README.md index 630b6233f..901288458 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ We provide a Binder environment for BrainPy. You can use the following button to ## Citing -If you are using ``brainpy``, please consider citing the corresponding paper: +If you are using ``brainpy >= 2.0``, please consider citing the corresponding paper: ```bibtex @article {10.7554/eLife.86365, diff --git a/brainpy/_errors.py b/brainpy/_errors.py index d2a675225..65d3fb1c4 100644 --- a/brainpy/_errors.py +++ b/brainpy/_errors.py @@ -169,37 +169,6 @@ def __init__(self, path, step, key=None): super().__init__(error_msg) -class MPARestoreDataCorruptedError(BrainPyError): - """A multiprocess array stored in Google Cloud Storage doesn't contain a "commit_success.txt" file, which should be written at the end of the save. - - Failure of finding it could indicate a corruption of your saved GDA data. - """ - __module__ = 'brainpy' - - def __init__(self, step, path): - super().__init__( - f'Restore checkpoint failed at step: "{step}" on multiprocess array at ' - f' "{path}": No "commit_success.txt" found on this "_gda" directory. ' - 'Was its save halted before completion?') - - -class MPARestoreTypeNotMatchError(BrainPyError): - """Make sure the multiprocess array type you use matches your configuration in jax.config.jax_array. - - If you turned `jax.config.jax_array` on, you should use - `jax.experimental.array.Array` everywhere, instead of using - `GlobalDeviceArray`. Otherwise, avoid using jax.experimental.array - to restore your checkpoint. - """ - __module__ = 'brainpy' - - def __init__(self, step, gda_path): - super().__init__( - f'Restore checkpoint failed at step: "{step}" on multiprocess array at ' - f' "{gda_path}": The array type provided by the target does not match ' - 'the JAX global configuration, namely the jax.config.jax_array.') - - class AlreadyExistsError(BrainPyError): """Attempting to overwrite a file via copy. @@ -228,20 +197,6 @@ def __init__(self, path, step): ) -class InvalidCheckpointPath(BrainPyError): - """A checkpoint cannot be stored in a directory that already has - - a checkpoint at the current or a later step. - - You can pass ``overwrite=True`` to disable this behavior and - overwrite existing checkpoints in the target directory. - """ - __module__ = 'brainpy' - - def __init__(self, path): - super().__init__(f'Invalid checkpoint at "{path}".') - - class JaxTracerError(MathError): __module__ = 'brainpy' diff --git a/brainpy/_projection.py b/brainpy/_projection.py index 7f7c13309..f25a0eea3 100644 --- a/brainpy/_projection.py +++ b/brainpy/_projection.py @@ -31,11 +31,9 @@ __all__ = [ 'Projection', - 'AlignPostProj', 'DeltaProj', 'CurrentProj', - 'align_pre_projection', 'align_post_projection', ] @@ -60,9 +58,9 @@ class Projection(brainstate.nn.Module): Parameters ---------- - *args : Any + *args Arguments passed to the parent Module class. - **kwargs : Any + **kwargs Keyword arguments passed to the parent Module class. Raises @@ -285,7 +283,7 @@ class DeltaProj(Projection): Parameters ---------- - *prefetch : State or callable + *prefetch Optional prefetch modules to process input before communication. comm : callable Communication model that determines how signals are transmitted. @@ -360,7 +358,7 @@ class CurrentProj(Projection): Parameters ---------- - *prefetch : State or callable + *prefetch Optional prefetch modules to process input before communication. The last element must be an instance of Prefetch or PrefetchDelayAt if any are provided. comm : callable @@ -398,7 +396,8 @@ def __init__( # check prefetch self.prefetch = prefetch if len(self.prefetch) > 0 and not isinstance( - prefetch[-1], (brainstate.nn.Prefetch, brainstate.nn.PrefetchDelayAt)): + prefetch[-1], (brainstate.nn.Prefetch, brainstate.nn.PrefetchDelayAt) + ): raise TypeError( f'The last element of prefetch should be an instance ' f'of {brainstate.nn.Prefetch} or {brainstate.nn.PrefetchDelayAt}, ' diff --git a/brainpy/version2/checkpoints/serialization.py b/brainpy/version2/checkpoints.py similarity index 100% rename from brainpy/version2/checkpoints/serialization.py rename to brainpy/version2/checkpoints.py diff --git a/brainpy/version2/checkpoints/__init__.py b/brainpy/version2/checkpoints/__init__.py deleted file mode 100644 index 9960b02f8..000000000 --- a/brainpy/version2/checkpoints/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -from .serialization import * diff --git a/brainpy/version2/checkpoints/tests/test_checkpoints.py b/brainpy/version2/checkpoints/tests/test_checkpoints.py deleted file mode 100644 index 40a96afc6..000000000 --- a/brainpy/version2/checkpoints/tests/test_checkpoints.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/brainpy/version2/inputs/currents.py b/brainpy/version2/inputs/currents.py index 8726f33fd..9b4d70f8c 100644 --- a/brainpy/version2/inputs/currents.py +++ b/brainpy/version2/inputs/currents.py @@ -3,11 +3,8 @@ import warnings -import jax.numpy as jnp -import numpy as np - -from brainpy.version2 import math as bm -from brainpy.version2.check import is_float, is_integer +import braintools +import brainstate __all__ = [ 'section_input', @@ -29,8 +26,7 @@ def section_input(values, durations, dt=None, return_length=False): If you want to get an input where the size is 0 bwteen 0-100 ms, and the size is 1. between 100-200 ms. - >>> section_input(values=[0, 1], - >>> durations=[100, 100]) + >>> section_input(values=[0, 1], durations=[100, 100]) Parameters:: @@ -47,32 +43,8 @@ def section_input(values, durations, dt=None, return_length=False): current_and_duration """ - if len(durations) != len(values): - raise ValueError(f'"values" and "durations" must be the same length, while ' - f'we got {len(values)} != {len(durations)}.') - - dt = bm.get_dt() if dt is None else dt - - # get input current shape, and duration - I_duration = sum(durations) - I_shape = () - for val in values: - shape = jnp.shape(val) - if len(shape) > len(I_shape): - I_shape = shape - - # get the current - start = 0 - I_current = bm.zeros((int(np.ceil(I_duration / dt)),) + I_shape) - for c_size, duration in zip(values, durations): - length = int(duration / dt) - I_current[start: start + length] = c_size - start += length - - if return_length: - return I_current, I_duration - else: - return I_current + with brainstate.environ.context(dt=dt or brainstate.environ.get_dt()): + return braintools.input.section(values, durations, return_length=return_length) def constant_input(I_and_duration, dt=None): @@ -100,25 +72,8 @@ def constant_input(I_and_duration, dt=None): current_and_duration : tuple (The formatted current, total duration) """ - dt = bm.get_dt() if dt is None else dt - - # get input current dimension, shape, and duration - I_duration = 0. - I_shape = () - for I in I_and_duration: - I_duration += I[1] - shape = jnp.shape(I[0]) - if len(shape) > len(I_shape): - I_shape = shape - - # get the current - start = 0 - I_current = bm.zeros((int(np.ceil(I_duration / dt)),) + I_shape) - for c_size, duration in I_and_duration: - length = int(duration / dt) - I_current[start: start + length] = c_size - start += length - return I_current, I_duration + with brainstate.environ.context(dt=dt or brainstate.environ.get_dt()): + return braintools.input.constant(I_and_duration) def constant_current(*args, **kwargs): @@ -165,19 +120,8 @@ def spike_input(sp_times, sp_lens, sp_sizes, duration, dt=None): current : bm.ndarray The formatted input current. """ - dt = bm.get_dt() if dt is None else dt - assert isinstance(sp_times, (list, tuple)) - if isinstance(sp_lens, (float, int)): - sp_lens = [sp_lens] * len(sp_times) - if isinstance(sp_sizes, (float, int)): - sp_sizes = [sp_sizes] * len(sp_times) - - current = bm.zeros(int(np.ceil(duration / dt))) - for time, dur, size in zip(sp_times, sp_lens, sp_sizes): - pp = int(time / dt) - p_len = int(dur / dt) - current[pp: pp + p_len] = size - return current + with brainstate.environ.context(dt=dt or brainstate.environ.get_dt()): + return braintools.input.spike(sp_times, sp_lens, sp_sizes, duration) def spike_current(*args, **kwargs): @@ -215,15 +159,8 @@ def ramp_input(c_start, c_end, duration, t_start=0, t_end=None, dt=None): current : bm.ndarray The formatted current """ - dt = bm.get_dt() if dt is None else dt - t_end = duration if t_end is None else t_end - - current = bm.zeros(int(np.ceil(duration / dt))) - p1 = int(np.ceil(t_start / dt)) - p2 = int(np.ceil(t_end / dt)) - cc = jnp.array(jnp.linspace(c_start, c_end, p2 - p1)) - current[p1: p2] = cc - return current + with brainstate.environ.context(dt=dt or brainstate.environ.get_dt()): + return braintools.input.ramp(c_start, c_end, duration, t_start, t_end) def ramp_current(*args, **kwargs): @@ -257,17 +194,8 @@ def wiener_process(duration, dt=None, n=1, t_start=0., t_end=None, seed=None): seed: int The noise seed. """ - dt = bm.get_dt() if dt is None else dt - is_float(dt, 'dt', allow_none=False, min_bound=0.) - is_integer(n, 'n', allow_none=False, min_bound=0) - rng = bm.random.default_rng(seed) - t_end = duration if t_end is None else t_end - i_start = int(t_start / dt) - i_end = int(t_end / dt) - noises = rng.standard_normal((i_end - i_start, n)) * jnp.sqrt(dt) - currents = bm.zeros((int(duration / dt), n)) - currents[i_start: i_end] = noises - return currents + with brainstate.environ.context(dt=dt or brainstate.environ.get_dt()): + return braintools.input.wiener_process(duration, sigma=1.0, n=n, t_start=t_start, t_end=t_end, seed=seed) def ou_process(mean, sigma, tau, duration, dt=None, n=1, t_start=0., t_end=None, seed=None): @@ -298,25 +226,8 @@ def ou_process(mean, sigma, tau, duration, dt=None, n=1, t_start=0., t_end=None, seed: optional, int The random seed. """ - dt = bm.get_dt() if dt is None else dt - dt_sqrt = jnp.sqrt(dt) - is_float(dt, 'dt', allow_none=False, min_bound=0.) - is_integer(n, 'n', allow_none=False, min_bound=0) - rng = bm.random.default_rng(seed) - x = bm.Variable(jnp.ones(n) * mean) - - def _f(t): - x.value = x + dt * ((mean - x) / tau) + sigma * dt_sqrt * rng.randn(n) - return x.value - - noises = bm.for_loop(_f, jnp.arange(t_start, t_end, dt)) - - t_end = duration if t_end is None else t_end - i_start = int(t_start / dt) - i_end = int(t_end / dt) - currents = bm.zeros((int(duration / dt), n)) - currents[i_start: i_end] = noises - return currents + with brainstate.environ.context(dt=dt or brainstate.environ.get_dt()): + return braintools.input.ou_process(mean, sigma, tau, duration, n=n, t_start=t_start, t_end=t_end, seed=seed) def sinusoidal_input(amplitude, frequency, duration, dt=None, t_start=0., t_end=None, bias=False): @@ -340,45 +251,8 @@ def sinusoidal_input(amplitude, frequency, duration, dt=None, t_start=0., t_end= Whether the sinusoid oscillates around 0 (False), or has a positive DC bias, thus non-negative (True). """ - dt = bm.get_dt() if dt is None else dt - is_float(dt, 'dt', allow_none=False, min_bound=0.) - if t_end is None: - t_end = duration - times = jnp.arange(0, t_end - t_start, dt) - start_i = int(t_start / dt) - end_i = int(t_end / dt) - sin_inputs = amplitude * jnp.sin(2 * jnp.pi * times * (frequency / 1000.0)) - if bias: sin_inputs += amplitude - currents = bm.zeros(int(duration / dt)) - currents[start_i:end_i] = sin_inputs - return currents - - -def _square(t, duty=0.5): - t, w = np.asarray(t), np.asarray(duty) - w = np.asarray(w + (t - t)) - t = np.asarray(t + (w - w)) - if t.dtype.char in 'fFdD': - ytype = t.dtype.char - else: - ytype = 'd' - - y = np.zeros(t.shape, ytype) - - # width must be between 0 and 1 inclusive - mask1 = (w > 1) | (w < 0) - np.place(y, mask1, np.nan) - - # on the interval 0 to duty*2*pi function is 1 - tmod = np.mod(t, 2 * np.pi) - mask2 = (1 - mask1) & (tmod < w * 2 * np.pi) - np.place(y, mask2, 1) - - # on the interval duty*2*pi to 2*pi function is - # (pi*(w+1)-tmod) / (pi*(1-w)) - mask3 = (1 - mask1) & (1 - mask2) - np.place(y, mask3, -1) - return y + with brainstate.environ.context(dt=dt or brainstate.environ.get_dt()): + return braintools.input.sinusoidal(amplitude, frequency, duration, t_start=t_start, t_end=t_end, bias=bias) def square_input(amplitude, frequency, duration, dt=None, bias=False, t_start=0., t_end=None): @@ -402,14 +276,5 @@ def square_input(amplitude, frequency, duration, dt=None, bias=False, t_start=0. Whether the sinusoid oscillates around 0 (False), or has a positive DC bias, thus non-negative (True). """ - dt = bm.get_dt() if dt is None else dt - is_float(dt, 'dt', allow_none=False, min_bound=0.) - if t_end is None: t_end = duration - times = np.arange(0, t_end - t_start, dt) - sin_inputs = amplitude * _square(2 * np.pi * times * (frequency / 1000.0)) - if bias: sin_inputs += amplitude - currents = bm.zeros(int(duration / dt)) - start_i = int(t_start / dt) - end_i = int(t_end / dt) - currents[start_i:end_i] = bm.asarray(sin_inputs) - return currents + with brainstate.environ.context(dt=dt or brainstate.environ.get_dt()): + return braintools.input.square(amplitude, frequency, duration, t_start=t_start, t_end=t_end, duty_cycle=0.5, bias=bias) diff --git a/docs_version2/index.rst b/docs_version2/index.rst index a48d7176d..47bac41f0 100644 --- a/docs_version2/index.rst +++ b/docs_version2/index.rst @@ -6,9 +6,6 @@ general-purpose Brain Dynamics Programming (BDP). - - - .. _BrainPy: https://github.com/brainpy/BrainPy @@ -26,12 +23,14 @@ Installation pip install -U brainpy[cpu] - .. tab-item:: GPU (CUDA 12) + .. tab-item:: GPU .. code-block:: bash pip install -U brainpy[cuda12] + pip install -U brainpy[cuda13] + .. tab-item:: TPU .. code-block:: bash @@ -42,13 +41,7 @@ Installation .. code-block:: bash - pip install -U BrainX[cpu] - - # or - pip install -U BrainX[cuda12] - - # or - pip install -U BrainX[tpu] + pip install -U BrainX From ffa58a49446cfa941dbf08c7573f0e7f46798d21 Mon Sep 17 00:00:00 2001 From: oujago Date: Mon, 6 Oct 2025 15:46:17 +0800 Subject: [PATCH 04/18] add copyright to each python file --- brainpy/version2/__init__.py | 16 ++++++++++++++-- brainpy/version2/_delay.py | 14 ++++++++++++++ brainpy/version2/algorithms/__init__.py | 15 ++++++++++++++- brainpy/version2/algorithms/offline.py | 15 ++++++++++++++- brainpy/version2/algorithms/online.py | 14 ++++++++++++++ brainpy/version2/algorithms/utils.py | 15 ++++++++++++++- brainpy/version2/analysis/__init__.py | 15 ++++++++++++++- brainpy/version2/analysis/base.py | 16 ++++++++++++++-- brainpy/version2/analysis/constants.py | 16 ++++++++++++++-- brainpy/version2/analysis/highdim/__init__.py | 15 ++++++++++++++- brainpy/version2/analysis/highdim/slow_points.py | 15 ++++++++++++++- .../analysis/highdim/tests/test_slow_points.py | 15 ++++++++++++++- brainpy/version2/analysis/lowdim/__init__.py | 15 ++++++++++++++- .../version2/analysis/lowdim/lowdim_analyzer.py | 15 ++++++++++++++- .../analysis/lowdim/lowdim_bifurcation.py | 15 ++++++++++++++- .../analysis/lowdim/lowdim_phase_plane.py | 15 ++++++++++++++- .../analysis/lowdim/tests/test_bifurcation.py | 16 ++++++++++++++-- .../analysis/lowdim/tests/test_phase_plane.py | 15 ++++++++++++++- brainpy/version2/analysis/plotstyle.py | 16 ++++++++++++++-- brainpy/version2/analysis/stability.py | 15 ++++++++++++++- .../version2/analysis/tests/test_stability.py | 15 ++++++++++++++- brainpy/version2/analysis/utils/__init__.py | 15 ++++++++++++++- brainpy/version2/analysis/utils/function.py | 15 ++++++++++++++- brainpy/version2/analysis/utils/measurement.py | 15 ++++++++++++++- brainpy/version2/analysis/utils/model.py | 16 ++++++++++++++-- brainpy/version2/analysis/utils/optimization.py | 16 ++++++++++++++-- brainpy/version2/analysis/utils/others.py | 15 ++++++++++++++- brainpy/version2/analysis/utils/outputs.py | 15 ++++++++++++++- brainpy/version2/analysis/utils/visualization.py | 15 ++++++++++++++- brainpy/version2/channels.py | 16 ++++++++++++++-- brainpy/version2/check.py | 16 ++++++++++++++-- brainpy/version2/checkpoints.py | 14 ++++++++++++++ brainpy/version2/connect/__init__.py | 16 ++++++++++++++-- brainpy/version2/connect/base.py | 15 ++++++++++++++- brainpy/version2/connect/custom_conn.py | 14 ++++++++++++++ brainpy/version2/connect/random_conn.py | 15 ++++++++++++++- brainpy/version2/connect/regular_conn.py | 15 ++++++++++++++- .../version2/connect/tests/test_custom_conn.py | 15 ++++++++++++++- .../connect/tests/test_optimized_result.py | 14 ++++++++++++++ .../version2/connect/tests/test_random_conn.py | 15 ++++++++++++++- .../connect/tests/test_random_conn_visualize.py | 15 ++++++++++++++- .../version2/connect/tests/test_regular_conn.py | 14 ++++++++++++++ brainpy/version2/context.py | 14 ++++++++++++++ brainpy/version2/delay.py | 14 ++++++++++++++ brainpy/version2/deprecations.py | 14 ++++++++++++++ brainpy/version2/dnn/__init__.py | 15 ++++++++++++++- brainpy/version2/dnn/activations.py | 14 ++++++++++++++ brainpy/version2/dnn/base.py | 14 ++++++++++++++ brainpy/version2/dnn/conv.py | 15 ++++++++++++++- brainpy/version2/dnn/dropout.py | 15 ++++++++++++++- brainpy/version2/dnn/function.py | 15 ++++++++++++++- brainpy/version2/dnn/interoperation_flax.py | 14 ++++++++++++++ brainpy/version2/dnn/linear.py | 16 ++++++++++++++-- brainpy/version2/dnn/normalization.py | 15 ++++++++++++++- brainpy/version2/dnn/pooling.py | 15 ++++++++++++++- brainpy/version2/dnn/tests/test_activation.py | 14 ++++++++++++++ brainpy/version2/dnn/tests/test_conv_layers.py | 14 ++++++++++++++ brainpy/version2/dnn/tests/test_function.py | 15 ++++++++++++++- brainpy/version2/dnn/tests/test_linear.py | 14 ++++++++++++++ brainpy/version2/dnn/tests/test_mode.py | 14 ++++++++++++++ brainpy/version2/dnn/tests/test_normalization.py | 14 ++++++++++++++ .../version2/dnn/tests/test_pooling_layers.py | 15 ++++++++++++++- brainpy/version2/dyn/__init__.py | 14 ++++++++++++++ brainpy/version2/dyn/_docs.py | 14 ++++++++++++++ brainpy/version2/dyn/base.py | 15 ++++++++++++++- brainpy/version2/dyn/channels/__init__.py | 15 ++++++++++++++- brainpy/version2/dyn/channels/base.py | 15 ++++++++++++++- brainpy/version2/dyn/channels/calcium.py | 15 ++++++++++++++- .../dyn/channels/hyperpolarization_activated.py | 15 ++++++++++++++- brainpy/version2/dyn/channels/leaky.py | 15 ++++++++++++++- brainpy/version2/dyn/channels/potassium.py | 15 ++++++++++++++- .../version2/dyn/channels/potassium_calcium.py | 16 ++++++++++++++-- .../dyn/channels/potassium_calcium_compatible.py | 16 ++++++++++++++-- .../dyn/channels/potassium_compatible.py | 15 ++++++++++++++- brainpy/version2/dyn/channels/sodium.py | 15 ++++++++++++++- .../version2/dyn/channels/sodium_compatible.py | 15 ++++++++++++++- brainpy/version2/dyn/channels/tests/test_Ca.py | 16 ++++++++++++++-- brainpy/version2/dyn/channels/tests/test_IH.py | 16 ++++++++++++++-- brainpy/version2/dyn/channels/tests/test_K.py | 16 ++++++++++++++-- brainpy/version2/dyn/channels/tests/test_KCa.py | 16 ++++++++++++++-- brainpy/version2/dyn/channels/tests/test_Na.py | 16 ++++++++++++++-- .../version2/dyn/channels/tests/test_leaky.py | 16 ++++++++++++++-- brainpy/version2/dyn/ions/__init__.py | 14 ++++++++++++++ brainpy/version2/dyn/ions/base.py | 15 ++++++++++++++- brainpy/version2/dyn/ions/calcium.py | 15 ++++++++++++++- brainpy/version2/dyn/ions/potassium.py | 14 ++++++++++++++ brainpy/version2/dyn/ions/sodium.py | 14 ++++++++++++++ brainpy/version2/dyn/ions/tests/test_MixIons.py | 14 ++++++++++++++ brainpy/version2/dyn/neurons/__init__.py | 14 ++++++++++++++ brainpy/version2/dyn/neurons/base.py | 14 ++++++++++++++ brainpy/version2/dyn/neurons/hh.py | 14 ++++++++++++++ brainpy/version2/dyn/neurons/lif.py | 14 ++++++++++++++ brainpy/version2/dyn/neurons/tests/test_hh.py | 16 ++++++++++++++-- brainpy/version2/dyn/neurons/tests/test_lif.py | 14 ++++++++++++++ brainpy/version2/dyn/others/__init__.py | 14 ++++++++++++++ brainpy/version2/dyn/others/common.py | 14 ++++++++++++++ brainpy/version2/dyn/others/input.py | 14 ++++++++++++++ brainpy/version2/dyn/others/noise.py | 14 ++++++++++++++ brainpy/version2/dyn/others/tests/test_input.py | 16 ++++++++++++++-- .../dyn/others/tests/test_input_groups.py | 16 ++++++++++++++-- .../dyn/others/tests/test_noise_groups.py | 16 ++++++++++++++-- brainpy/version2/dyn/outs/__init__.py | 14 ++++++++++++++ brainpy/version2/dyn/outs/base.py | 14 ++++++++++++++ brainpy/version2/dyn/outs/outputs.py | 14 ++++++++++++++ brainpy/version2/dyn/projections/__init__.py | 14 ++++++++++++++ brainpy/version2/dyn/projections/align_post.py | 14 ++++++++++++++ brainpy/version2/dyn/projections/align_pre.py | 14 ++++++++++++++ brainpy/version2/dyn/projections/base.py | 14 ++++++++++++++ brainpy/version2/dyn/projections/conn.py | 14 ++++++++++++++ brainpy/version2/dyn/projections/delta.py | 14 ++++++++++++++ brainpy/version2/dyn/projections/inputs.py | 14 ++++++++++++++ brainpy/version2/dyn/projections/plasticity.py | 14 ++++++++++++++ .../version2/dyn/projections/tests/test_STDP.py | 15 ++++++++++++++- .../dyn/projections/tests/test_aligns.py | 14 ++++++++++++++ .../version2/dyn/projections/tests/test_delta.py | 14 ++++++++++++++ brainpy/version2/dyn/projections/utils.py | 14 ++++++++++++++ brainpy/version2/dyn/projections/vanilla.py | 14 ++++++++++++++ brainpy/version2/dyn/rates/__init__.py | 15 ++++++++++++++- brainpy/version2/dyn/rates/nvar.py | 15 ++++++++++++++- brainpy/version2/dyn/rates/populations.py | 15 ++++++++++++++- brainpy/version2/dyn/rates/reservoir.py | 15 ++++++++++++++- brainpy/version2/dyn/rates/rnncells.py | 15 ++++++++++++++- brainpy/version2/dyn/rates/tests/test_nvar.py | 14 ++++++++++++++ brainpy/version2/dyn/rates/tests/test_rates.py | 16 ++++++++++++++-- .../version2/dyn/rates/tests/test_reservoir.py | 14 ++++++++++++++ .../version2/dyn/rates/tests/test_rnncells.py | 14 ++++++++++++++ brainpy/version2/dyn/synapses/__init__.py | 14 ++++++++++++++ brainpy/version2/dyn/synapses/abstract_models.py | 14 ++++++++++++++ brainpy/version2/dyn/synapses/bio_models.py | 14 ++++++++++++++ brainpy/version2/dyn/synapses/delay_couplings.py | 15 ++++++++++++++- .../dyn/synapses/tests/test_abstract_models.py | 14 ++++++++++++++ .../dyn/synapses/tests/test_delay_couplings.py | 16 ++++++++++++++-- brainpy/version2/dyn/utils.py | 14 ++++++++++++++ brainpy/version2/dynold/__init__.py | 14 ++++++++++++++ brainpy/version2/dynold/experimental/__init__.py | 14 ++++++++++++++ .../dynold/experimental/abstract_synapses.py | 15 ++++++++++++++- brainpy/version2/dynold/experimental/base.py | 14 ++++++++++++++ brainpy/version2/dynold/experimental/others.py | 14 ++++++++++++++ brainpy/version2/dynold/experimental/syn_outs.py | 15 ++++++++++++++- .../dynold/experimental/syn_plasticity.py | 15 ++++++++++++++- brainpy/version2/dynold/neurons/__init__.py | 15 ++++++++++++++- .../version2/dynold/neurons/biological_models.py | 15 ++++++++++++++- .../version2/dynold/neurons/fractional_models.py | 15 ++++++++++++++- .../version2/dynold/neurons/reduced_models.py | 15 ++++++++++++++- .../neurons/tests/test_biological_neurons.py | 16 ++++++++++++++-- .../neurons/tests/test_fractional_neurons.py | 16 ++++++++++++++-- .../dynold/neurons/tests/test_reduced_neurons.py | 16 ++++++++++++++-- brainpy/version2/dynold/synapses/__init__.py | 15 ++++++++++++++- .../version2/dynold/synapses/abstract_models.py | 15 ++++++++++++++- brainpy/version2/dynold/synapses/base.py | 14 ++++++++++++++ .../dynold/synapses/biological_models.py | 15 ++++++++++++++- brainpy/version2/dynold/synapses/compat.py | 15 ++++++++++++++- brainpy/version2/dynold/synapses/gap_junction.py | 15 ++++++++++++++- .../version2/dynold/synapses/learning_rules.py | 15 ++++++++++++++- .../synapses/tests/test_abstract_synapses.py | 16 ++++++++++++++-- .../synapses/tests/test_biological_synapses.py | 15 ++++++++++++++- .../synapses/tests/test_dynold_base_synapse.py | 14 ++++++++++++++ .../dynold/synapses/tests/test_gap_junction.py | 16 ++++++++++++++-- .../dynold/synapses/tests/test_learning_rule.py | 16 ++++++++++++++-- brainpy/version2/dynold/synouts/__init__.py | 15 ++++++++++++++- brainpy/version2/dynold/synouts/conductances.py | 15 ++++++++++++++- brainpy/version2/dynold/synouts/ions.py | 15 ++++++++++++++- brainpy/version2/dynold/synplast/__init__.py | 15 ++++++++++++++- .../dynold/synplast/short_term_plasticity.py | 15 ++++++++++++++- brainpy/version2/dynsys.py | 15 ++++++++++++++- brainpy/version2/encoding/__init__.py | 16 ++++++++++++++-- brainpy/version2/encoding/base.py | 15 ++++++++++++++- brainpy/version2/encoding/stateful_encoding.py | 15 ++++++++++++++- brainpy/version2/encoding/stateless_encoding.py | 15 ++++++++++++++- .../encoding/tests/test_stateless_encoding.py | 14 ++++++++++++++ brainpy/version2/experimental.py | 14 ++++++++++++++ brainpy/version2/helpers.py | 14 ++++++++++++++ brainpy/version2/initialize/__init__.py | 16 ++++++++++++++-- brainpy/version2/initialize/base.py | 15 ++++++++++++++- brainpy/version2/initialize/decay_inits.py | 14 ++++++++++++++ brainpy/version2/initialize/generic.py | 15 ++++++++++++++- brainpy/version2/initialize/others.py | 14 ++++++++++++++ brainpy/version2/initialize/random_inits.py | 15 ++++++++++++++- brainpy/version2/initialize/regular_inits.py | 15 ++++++++++++++- .../initialize/tests/test_decay_inits.py | 16 ++++++++++++++-- .../initialize/tests/test_random_inits.py | 15 ++++++++++++++- .../initialize/tests/test_regular_inits.py | 14 ++++++++++++++ brainpy/version2/inputs/__init__.py | 16 ++++++++++++++-- brainpy/version2/inputs/currents.py | 16 ++++++++++++++-- brainpy/version2/inputs/tests/test_currents.py | 16 ++++++++++++++-- brainpy/version2/integrators/__init__.py | 15 ++++++++++++++- brainpy/version2/integrators/base.py | 16 ++++++++++++++-- brainpy/version2/integrators/constants.py | 15 ++++++++++++++- brainpy/version2/integrators/fde/Caputo.py | 15 ++++++++++++++- brainpy/version2/integrators/fde/GL.py | 15 ++++++++++++++- brainpy/version2/integrators/fde/__init__.py | 15 ++++++++++++++- brainpy/version2/integrators/fde/base.py | 15 ++++++++++++++- brainpy/version2/integrators/fde/generic.py | 15 ++++++++++++++- .../integrators/fde/tests/test_Caputo.py | 16 ++++++++++++++-- .../version2/integrators/fde/tests/test_GL.py | 16 ++++++++++++++-- brainpy/version2/integrators/joint_eq.py | 15 ++++++++++++++- brainpy/version2/integrators/ode/__init__.py | 15 ++++++++++++++- brainpy/version2/integrators/ode/adaptive_rk.py | 16 ++++++++++++++-- brainpy/version2/integrators/ode/base.py | 16 ++++++++++++++-- brainpy/version2/integrators/ode/common.py | 16 ++++++++++++++-- brainpy/version2/integrators/ode/explicit_rk.py | 15 ++++++++++++++- brainpy/version2/integrators/ode/exponential.py | 15 ++++++++++++++- brainpy/version2/integrators/ode/generic.py | 15 ++++++++++++++- .../integrators/ode/tests/test_delay_ode.py | 15 ++++++++++++++- .../tests/test_ode_keywords_for_adaptive_rk.py | 15 ++++++++++++++- .../ode/tests/test_ode_keywords_for_exp_euler.py | 15 ++++++++++++++- .../tests/test_ode_keywords_for_general_rk.py | 15 ++++++++++++++- .../ode/tests/test_ode_method_adaptive_rk.py | 15 ++++++++++++++- .../ode/tests/test_ode_method_exp_euler.py | 15 ++++++++++++++- .../integrators/ode/tests/test_ode_method_rk.py | 15 ++++++++++++++- brainpy/version2/integrators/pde/__init__.py | 14 ++++++++++++++ brainpy/version2/integrators/pde/base.py | 15 ++++++++++++++- brainpy/version2/integrators/runner.py | 15 ++++++++++++++- brainpy/version2/integrators/sde/__init__.py | 15 ++++++++++++++- brainpy/version2/integrators/sde/base.py | 15 ++++++++++++++- brainpy/version2/integrators/sde/generic.py | 15 ++++++++++++++- brainpy/version2/integrators/sde/normal.py | 15 ++++++++++++++- brainpy/version2/integrators/sde/srk_scalar.py | 15 ++++++++++++++- brainpy/version2/integrators/sde/srk_strong.py | 15 ++++++++++++++- .../integrators/sde/tests/test_normal.py | 16 ++++++++++++++-- .../integrators/sde/tests/test_sde_scalar.py | 15 ++++++++++++++- .../integrators/tests/test_integ_runner.py | 15 ++++++++++++++- .../version2/integrators/tests/test_joint_eq.py | 15 ++++++++++++++- brainpy/version2/integrators/utils.py | 16 ++++++++++++++-- brainpy/version2/layers.py | 16 ++++++++++++++-- brainpy/version2/losses/__init__.py | 15 ++++++++++++++- brainpy/version2/losses/base.py | 14 ++++++++++++++ brainpy/version2/losses/comparison.py | 15 ++++++++++++++- brainpy/version2/losses/regularization.py | 15 ++++++++++++++- brainpy/version2/losses/utils.py | 14 ++++++++++++++ brainpy/version2/math/__init__.py | 16 ++++++++++++++-- brainpy/version2/math/_utils.py | 15 ++++++++++++++- brainpy/version2/math/activations.py | 16 ++++++++++++++-- brainpy/version2/math/compat_numpy.py | 15 ++++++++++++++- brainpy/version2/math/compat_pytorch.py | 14 ++++++++++++++ brainpy/version2/math/compat_tensorflow.py | 14 ++++++++++++++ brainpy/version2/math/datatypes.py | 14 ++++++++++++++ brainpy/version2/math/defaults.py | 14 ++++++++++++++ brainpy/version2/math/delayvars.py | 15 ++++++++++++++- brainpy/version2/math/einops.py | 14 ++++++++++++++ brainpy/version2/math/einops_parsing.py | 14 ++++++++++++++ brainpy/version2/math/environment.py | 16 ++++++++++++++-- brainpy/version2/math/event/__init__.py | 14 ++++++++++++++ brainpy/version2/math/event/csr_matmat.py | 16 ++++++++++++++-- brainpy/version2/math/event/csr_matvec.py | 15 ++++++++++++++- brainpy/version2/math/fft.py | 15 ++++++++++++++- brainpy/version2/math/interoperability.py | 15 ++++++++++++++- brainpy/version2/math/jitconn/__init__.py | 14 ++++++++++++++ brainpy/version2/math/jitconn/event_matvec.py | 15 ++++++++++++++- brainpy/version2/math/jitconn/matvec.py | 14 ++++++++++++++ brainpy/version2/math/linalg.py | 15 ++++++++++++++- brainpy/version2/math/modes.py | 16 ++++++++++++++-- brainpy/version2/math/ndarray.py | 15 ++++++++++++++- .../version2/math/object_transform/__init__.py | 14 ++++++++++++++ brainpy/version2/math/object_transform/_utils.py | 15 ++++++++++++++- .../version2/math/object_transform/autograd.py | 15 ++++++++++++++- brainpy/version2/math/object_transform/base.py | 15 ++++++++++++++- .../version2/math/object_transform/collectors.py | 14 ++++++++++++++ .../version2/math/object_transform/controls.py | 15 ++++++++++++++- .../version2/math/object_transform/function.py | 15 ++++++++++++++- brainpy/version2/math/object_transform/jit.py | 15 ++++++++++++++- brainpy/version2/math/object_transform/naming.py | 15 ++++++++++++++- .../math/object_transform/tests/test_autograd.py | 15 ++++++++++++++- .../math/object_transform/tests/test_base.py | 15 ++++++++++++++- .../tests/test_circular_reference.py | 15 ++++++++++++++- .../object_transform/tests/test_collector.py | 16 ++++++++++++++-- .../math/object_transform/tests/test_controls.py | 14 ++++++++++++++ .../math/object_transform/tests/test_jit.py | 16 ++++++++++++++-- .../object_transform/tests/test_namechecking.py | 15 ++++++++++++++- .../math/object_transform/tests/test_variable.py | 14 ++++++++++++++ .../version2/math/object_transform/variables.py | 14 ++++++++++++++ brainpy/version2/math/others.py | 16 ++++++++++++++-- brainpy/version2/math/pre_syn_post.py | 16 ++++++++++++++-- brainpy/version2/math/remove_vmap.py | 16 ++++++++++++++-- brainpy/version2/math/scales.py | 16 ++++++++++++++-- brainpy/version2/math/sharding.py | 15 ++++++++++++++- brainpy/version2/math/sparse/__init__.py | 14 ++++++++++++++ brainpy/version2/math/sparse/coo_mv.py | 16 ++++++++++++++-- brainpy/version2/math/sparse/csr_mm.py | 16 ++++++++++++++-- brainpy/version2/math/sparse/csr_mv.py | 16 ++++++++++++++-- brainpy/version2/math/sparse/jax_prim.py | 14 ++++++++++++++ brainpy/version2/math/sparse/utils.py | 15 ++++++++++++++- brainpy/version2/math/surrogate/__init__.py | 16 ++++++++++++++-- brainpy/version2/math/surrogate/_one_input.py | 14 ++++++++++++++ .../version2/math/surrogate/_one_input_new.py | 15 ++++++++++++++- brainpy/version2/math/surrogate/_two_inputs.py | 16 ++++++++++++++-- brainpy/version2/math/surrogate/_utils.py | 15 ++++++++++++++- .../math/surrogate/tests/test_one_input.py | 15 ++++++++++++++- .../math/surrogate/tests/test_two_inputs.py | 15 ++++++++++++++- brainpy/version2/math/tests/test_array_format.py | 14 ++++++++++++++ .../version2/math/tests/test_compat_pytorch.py | 16 ++++++++++++++-- brainpy/version2/math/tests/test_defaults.py | 14 ++++++++++++++ brainpy/version2/math/tests/test_delay_vars.py | 15 ++++++++++++++- brainpy/version2/math/tests/test_einops.py | 14 ++++++++++++++ .../version2/math/tests/test_einops_parsing.py | 14 ++++++++++++++ brainpy/version2/math/tests/test_environment.py | 14 ++++++++++++++ brainpy/version2/math/tests/test_ndarray.py | 16 ++++++++++++++-- brainpy/version2/math/tests/test_oprators.py | 16 ++++++++++++++-- brainpy/version2/math/tests/test_others.py | 14 ++++++++++++++ brainpy/version2/math/tests/test_random.py | 14 ++++++++++++++ brainpy/version2/math/tests/test_tifunc.py | 15 ++++++++++++++- brainpy/version2/measure/__init__.py | 15 ++++++++++++++- brainpy/version2/measure/correlation.py | 16 ++++++++++++++-- brainpy/version2/measure/firings.py | 15 ++++++++++++++- brainpy/version2/measure/lfp.py | 14 ++++++++++++++ .../version2/measure/tests/test_correlation.py | 16 ++++++++++++++-- brainpy/version2/measure/tests/test_firings.py | 16 ++++++++++++++-- brainpy/version2/mixin.py | 15 ++++++++++++++- brainpy/version2/modes.py | 15 ++++++++++++++- brainpy/version2/neurons.py | 15 ++++++++++++++- brainpy/version2/optim/__init__.py | 15 ++++++++++++++- brainpy/version2/optim/optimizer.py | 15 ++++++++++++++- brainpy/version2/optim/scheduler.py | 14 ++++++++++++++ brainpy/version2/optim/tests/test_ModifyLr.py | 14 ++++++++++++++ brainpy/version2/optim/tests/test_scheduler.py | 15 ++++++++++++++- brainpy/version2/rates.py | 16 ++++++++++++++-- brainpy/version2/runners.py | 15 ++++++++++++++- brainpy/version2/running/__init__.py | 16 ++++++++++++++-- brainpy/version2/running/constants.py | 16 ++++++++++++++-- brainpy/version2/running/jax_multiprocessing.py | 15 ++++++++++++++- .../version2/running/native_multiprocessing.py | 15 ++++++++++++++- .../version2/running/pathos_multiprocessing.py | 16 ++++++++++++++-- brainpy/version2/running/runner.py | 15 ++++++++++++++- .../running/tests/test_pathos_multiprocessing.py | 14 ++++++++++++++ brainpy/version2/synapses.py | 16 ++++++++++++++-- brainpy/version2/synouts.py | 16 ++++++++++++++-- brainpy/version2/synplast.py | 15 ++++++++++++++- brainpy/version2/tests/test_access_methods.py | 15 ++++++++++++++- brainpy/version2/tests/test_base_classes.py | 15 ++++++++++++++- brainpy/version2/tests/test_check.py | 16 ++++++++++++++-- brainpy/version2/tests/test_delay.py | 14 ++++++++++++++ brainpy/version2/tests/test_dyn_runner.py | 15 ++++++++++++++- brainpy/version2/tests/test_dynsys.py | 14 ++++++++++++++ brainpy/version2/tests/test_helper.py | 14 ++++++++++++++ brainpy/version2/tests/test_mixin.py | 14 ++++++++++++++ brainpy/version2/tests/test_network.py | 14 ++++++++++++++ brainpy/version2/tests/test_pickle.py | 15 ++++++++++++++- brainpy/version2/tests/test_slice_view.py | 16 ++++++++++++++-- brainpy/version2/tools/__init__.py | 15 ++++++++++++++- brainpy/version2/tools/codes.py | 15 ++++++++++++++- brainpy/version2/tools/dicts.py | 16 ++++++++++++++-- brainpy/version2/tools/functions.py | 14 ++++++++++++++ brainpy/version2/tools/install.py | 14 ++++++++++++++ brainpy/version2/tools/math_util.py | 15 ++++++++++++++- brainpy/version2/tools/others.py | 15 ++++++++++++++- brainpy/version2/tools/package.py | 15 ++++++++++++++- brainpy/version2/tools/progress.py | 14 ++++++++++++++ brainpy/version2/tools/tests/test_functions.py | 14 ++++++++++++++ brainpy/version2/train/__init__.py | 16 ++++++++++++++-- brainpy/version2/train/_utils.py | 15 ++++++++++++++- brainpy/version2/train/back_propagation.py | 15 ++++++++++++++- brainpy/version2/train/base.py | 15 ++++++++++++++- brainpy/version2/train/offline.py | 15 ++++++++++++++- brainpy/version2/train/online.py | 14 ++++++++++++++ brainpy/version2/transform.py | 15 ++++++++++++++- brainpy/version2/types.py | 15 ++++++++++++++- 356 files changed, 4984 insertions(+), 326 deletions(-) diff --git a/brainpy/version2/__init__.py b/brainpy/version2/__init__.py index 60985df74..af21ccb82 100644 --- a/brainpy/version2/__init__.py +++ b/brainpy/version2/__init__.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from brainpy import _errors as errors # fundamental supporting modules from brainpy.version2 import check, tools diff --git a/brainpy/version2/_delay.py b/brainpy/version2/_delay.py index 27265d848..14ceebdca 100644 --- a/brainpy/version2/_delay.py +++ b/brainpy/version2/_delay.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ Delay variable. """ diff --git a/brainpy/version2/algorithms/__init__.py b/brainpy/version2/algorithms/__init__.py index fd8341d6e..24f85bca4 100644 --- a/brainpy/version2/algorithms/__init__.py +++ b/brainpy/version2/algorithms/__init__.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .offline import * from .online import * from . import utils diff --git a/brainpy/version2/algorithms/offline.py b/brainpy/version2/algorithms/offline.py index 4434ba5d1..72fc09437 100644 --- a/brainpy/version2/algorithms/offline.py +++ b/brainpy/version2/algorithms/offline.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import warnings import jax.numpy as jnp diff --git a/brainpy/version2/algorithms/online.py b/brainpy/version2/algorithms/online.py index c741b09bb..d290be51b 100644 --- a/brainpy/version2/algorithms/online.py +++ b/brainpy/version2/algorithms/online.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax import jax.numpy as jnp from jax import vmap diff --git a/brainpy/version2/algorithms/utils.py b/brainpy/version2/algorithms/utils.py index 652d5eede..d003e9ca5 100644 --- a/brainpy/version2/algorithms/utils.py +++ b/brainpy/version2/algorithms/utils.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from itertools import combinations_with_replacement import brainpy.version2.math as bm diff --git a/brainpy/version2/analysis/__init__.py b/brainpy/version2/analysis/__init__.py index 2ab3b564f..6373319c5 100644 --- a/brainpy/version2/analysis/__init__.py +++ b/brainpy/version2/analysis/__init__.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module provides analysis tools for differential equations. diff --git a/brainpy/version2/analysis/base.py b/brainpy/version2/analysis/base.py index 2272d240c..e17d35ee8 100644 --- a/brainpy/version2/analysis/base.py +++ b/brainpy/version2/analysis/base.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== __all__ = [ 'DSAnalyzer' ] diff --git a/brainpy/version2/analysis/constants.py b/brainpy/version2/analysis/constants.py index 41e4c215a..fbc425ce0 100644 --- a/brainpy/version2/analysis/constants.py +++ b/brainpy/version2/analysis/constants.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== __all__ = [ 'CONTINUOUS', 'DISCRETE', diff --git a/brainpy/version2/analysis/highdim/__init__.py b/brainpy/version2/analysis/highdim/__init__.py index 07787bb60..039e27315 100644 --- a/brainpy/version2/analysis/highdim/__init__.py +++ b/brainpy/version2/analysis/highdim/__init__.py @@ -1,3 +1,16 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .slow_points import * diff --git a/brainpy/version2/analysis/highdim/slow_points.py b/brainpy/version2/analysis/highdim/slow_points.py index 80ca0933f..bd5229805 100644 --- a/brainpy/version2/analysis/highdim/slow_points.py +++ b/brainpy/version2/analysis/highdim/slow_points.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import inspect import math import time diff --git a/brainpy/version2/analysis/highdim/tests/test_slow_points.py b/brainpy/version2/analysis/highdim/tests/test_slow_points.py index 79c931311..8ff94383e 100644 --- a/brainpy/version2/analysis/highdim/tests/test_slow_points.py +++ b/brainpy/version2/analysis/highdim/tests/test_slow_points.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2 as bp diff --git a/brainpy/version2/analysis/lowdim/__init__.py b/brainpy/version2/analysis/lowdim/__init__.py index 6303cfd3a..db84cc619 100644 --- a/brainpy/version2/analysis/lowdim/__init__.py +++ b/brainpy/version2/analysis/lowdim/__init__.py @@ -1,4 +1,17 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .lowdim_bifurcation import * from .lowdim_phase_plane import * diff --git a/brainpy/version2/analysis/lowdim/lowdim_analyzer.py b/brainpy/version2/analysis/lowdim/lowdim_analyzer.py index 9093762c2..d070ffd84 100644 --- a/brainpy/version2/analysis/lowdim/lowdim_analyzer.py +++ b/brainpy/version2/analysis/lowdim/lowdim_analyzer.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import warnings from functools import partial diff --git a/brainpy/version2/analysis/lowdim/lowdim_bifurcation.py b/brainpy/version2/analysis/lowdim/lowdim_bifurcation.py index bad4bdbfb..c19e9628d 100644 --- a/brainpy/version2/analysis/lowdim/lowdim_bifurcation.py +++ b/brainpy/version2/analysis/lowdim/lowdim_bifurcation.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from copy import deepcopy from functools import partial diff --git a/brainpy/version2/analysis/lowdim/lowdim_phase_plane.py b/brainpy/version2/analysis/lowdim/lowdim_phase_plane.py index 3d9970972..4b899be1e 100644 --- a/brainpy/version2/analysis/lowdim/lowdim_phase_plane.py +++ b/brainpy/version2/analysis/lowdim/lowdim_phase_plane.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from copy import deepcopy import jax diff --git a/brainpy/version2/analysis/lowdim/tests/test_bifurcation.py b/brainpy/version2/analysis/lowdim/tests/test_bifurcation.py index ef2e2384b..826a07dc5 100644 --- a/brainpy/version2/analysis/lowdim/tests/test_bifurcation.py +++ b/brainpy/version2/analysis/lowdim/tests/test_bifurcation.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import pytest pytest.skip('Test cannot pass in github action.', allow_module_level=True) diff --git a/brainpy/version2/analysis/lowdim/tests/test_phase_plane.py b/brainpy/version2/analysis/lowdim/tests/test_phase_plane.py index 09d3a6835..5390d81fb 100644 --- a/brainpy/version2/analysis/lowdim/tests/test_phase_plane.py +++ b/brainpy/version2/analysis/lowdim/tests/test_phase_plane.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import jax.numpy as jnp diff --git a/brainpy/version2/analysis/plotstyle.py b/brainpy/version2/analysis/plotstyle.py index 6c99466d2..d259028e9 100644 --- a/brainpy/version2/analysis/plotstyle.py +++ b/brainpy/version2/analysis/plotstyle.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== __all__ = [ 'plot_schema', 'set_plot_schema', diff --git a/brainpy/version2/analysis/stability.py b/brainpy/version2/analysis/stability.py index a4f98c456..337c6ec65 100644 --- a/brainpy/version2/analysis/stability.py +++ b/brainpy/version2/analysis/stability.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import numpy as np __all__ = [ diff --git a/brainpy/version2/analysis/tests/test_stability.py b/brainpy/version2/analysis/tests/test_stability.py index 08e6ee17e..f94ad4738 100644 --- a/brainpy/version2/analysis/tests/test_stability.py +++ b/brainpy/version2/analysis/tests/test_stability.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from brainpy.version2.analysis.stability import * diff --git a/brainpy/version2/analysis/utils/__init__.py b/brainpy/version2/analysis/utils/__init__.py index be8715821..989e1c607 100644 --- a/brainpy/version2/analysis/utils/__init__.py +++ b/brainpy/version2/analysis/utils/__init__.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .function import * from .measurement import * from .model import * diff --git a/brainpy/version2/analysis/utils/function.py b/brainpy/version2/analysis/utils/function.py index 3f5310f2a..e55c1e710 100644 --- a/brainpy/version2/analysis/utils/function.py +++ b/brainpy/version2/analysis/utils/function.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import inspect import brainpy.version2.math as bm diff --git a/brainpy/version2/analysis/utils/measurement.py b/brainpy/version2/analysis/utils/measurement.py index 0ef009f72..454977d60 100644 --- a/brainpy/version2/analysis/utils/measurement.py +++ b/brainpy/version2/analysis/utils/measurement.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from functools import partial from typing import Union diff --git a/brainpy/version2/analysis/utils/model.py b/brainpy/version2/analysis/utils/model.py index 7ee739a45..92f94c412 100644 --- a/brainpy/version2/analysis/utils/model.py +++ b/brainpy/version2/analysis/utils/model.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from brainpy.version2.context import share from brainpy.version2.dynsys import DynamicalSystem from brainpy.version2.integrators.base import Integrator diff --git a/brainpy/version2/analysis/utils/optimization.py b/brainpy/version2/analysis/utils/optimization.py index b06392238..e96ec8900 100644 --- a/brainpy/version2/analysis/utils/optimization.py +++ b/brainpy/version2/analysis/utils/optimization.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax.lax import jax.numpy as jnp import numpy as np diff --git a/brainpy/version2/analysis/utils/others.py b/brainpy/version2/analysis/utils/others.py index 09fe23ef7..0ac950aaa 100644 --- a/brainpy/version2/analysis/utils/others.py +++ b/brainpy/version2/analysis/utils/others.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Dict import jax diff --git a/brainpy/version2/analysis/utils/outputs.py b/brainpy/version2/analysis/utils/outputs.py index 7b0cf53a0..de20d60cf 100644 --- a/brainpy/version2/analysis/utils/outputs.py +++ b/brainpy/version2/analysis/utils/outputs.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import sys __all__ = [ diff --git a/brainpy/version2/analysis/utils/visualization.py b/brainpy/version2/analysis/utils/visualization.py index b563d8f95..ed6d7229d 100644 --- a/brainpy/version2/analysis/utils/visualization.py +++ b/brainpy/version2/analysis/utils/visualization.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import numpy as np diff --git a/brainpy/version2/channels.py b/brainpy/version2/channels.py index daf001710..6782f595c 100644 --- a/brainpy/version2/channels.py +++ b/brainpy/version2/channels.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dyn`` module instead. """ diff --git a/brainpy/version2/check.py b/brainpy/version2/check.py index a622f14d4..5b02264fb 100644 --- a/brainpy/version2/check.py +++ b/brainpy/version2/check.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from brainpy.version2.deprecations import deprecation_getattr2 from functools import wraps, partial diff --git a/brainpy/version2/checkpoints.py b/brainpy/version2/checkpoints.py index 8e8bc49cd..989e7ba9b 100644 --- a/brainpy/version2/checkpoints.py +++ b/brainpy/version2/checkpoints.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Dict, Any, Optional import jax diff --git a/brainpy/version2/connect/__init__.py b/brainpy/version2/connect/__init__.py index fa4031152..17fe5cff6 100644 --- a/brainpy/version2/connect/__init__.py +++ b/brainpy/version2/connect/__init__.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module provides methods to construct connectivity between neuron groups. You can access them through ``brainpy.version2.connect.XXX``. diff --git a/brainpy/version2/connect/base.py b/brainpy/version2/connect/base.py index e4efbfc41..56591c338 100644 --- a/brainpy/version2/connect/base.py +++ b/brainpy/version2/connect/base.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import abc import textwrap from typing import Union, List, Tuple diff --git a/brainpy/version2/connect/custom_conn.py b/brainpy/version2/connect/custom_conn.py index 37e8d5f05..a7564f510 100644 --- a/brainpy/version2/connect/custom_conn.py +++ b/brainpy/version2/connect/custom_conn.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax import jax.numpy as jnp import numpy as np diff --git a/brainpy/version2/connect/random_conn.py b/brainpy/version2/connect/random_conn.py index 6c97e6774..0825d4044 100644 --- a/brainpy/version2/connect/random_conn.py +++ b/brainpy/version2/connect/random_conn.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from functools import partial from typing import Optional diff --git a/brainpy/version2/connect/regular_conn.py b/brainpy/version2/connect/regular_conn.py index 39d78df47..cc971c101 100644 --- a/brainpy/version2/connect/regular_conn.py +++ b/brainpy/version2/connect/regular_conn.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Tuple, List import jax diff --git a/brainpy/version2/connect/tests/test_custom_conn.py b/brainpy/version2/connect/tests/test_custom_conn.py index 0dc2112af..125a2990b 100644 --- a/brainpy/version2/connect/tests/test_custom_conn.py +++ b/brainpy/version2/connect/tests/test_custom_conn.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from unittest import TestCase import numpy as np diff --git a/brainpy/version2/connect/tests/test_optimized_result.py b/brainpy/version2/connect/tests/test_optimized_result.py index adc21af61..107d977b8 100644 --- a/brainpy/version2/connect/tests/test_optimized_result.py +++ b/brainpy/version2/connect/tests/test_optimized_result.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from datetime import datetime from time import time diff --git a/brainpy/version2/connect/tests/test_random_conn.py b/brainpy/version2/connect/tests/test_random_conn.py index ad9809be6..dcf3f0f78 100644 --- a/brainpy/version2/connect/tests/test_random_conn.py +++ b/brainpy/version2/connect/tests/test_random_conn.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import pytest diff --git a/brainpy/version2/connect/tests/test_random_conn_visualize.py b/brainpy/version2/connect/tests/test_random_conn_visualize.py index ad093ee25..8ed81cdf3 100644 --- a/brainpy/version2/connect/tests/test_random_conn_visualize.py +++ b/brainpy/version2/connect/tests/test_random_conn_visualize.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import pytest pytest.skip('skip', allow_module_level=True) diff --git a/brainpy/version2/connect/tests/test_regular_conn.py b/brainpy/version2/connect/tests/test_regular_conn.py index 7f3a470ff..2eb1b6ef8 100644 --- a/brainpy/version2/connect/tests/test_regular_conn.py +++ b/brainpy/version2/connect/tests/test_regular_conn.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import numpy as np diff --git a/brainpy/version2/context.py b/brainpy/version2/context.py index ff8a5d0b8..8fa240a0b 100644 --- a/brainpy/version2/context.py +++ b/brainpy/version2/context.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ Context for brainpy computation. diff --git a/brainpy/version2/delay.py b/brainpy/version2/delay.py index 6170157b9..82b1697d8 100644 --- a/brainpy/version2/delay.py +++ b/brainpy/version2/delay.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ Delay variable. """ diff --git a/brainpy/version2/deprecations.py b/brainpy/version2/deprecations.py index b13aa80ac..011925f06 100644 --- a/brainpy/version2/deprecations.py +++ b/brainpy/version2/deprecations.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import functools import warnings diff --git a/brainpy/version2/dnn/__init__.py b/brainpy/version2/dnn/__init__.py index 1526c9e7e..eda1636bf 100644 --- a/brainpy/version2/dnn/__init__.py +++ b/brainpy/version2/dnn/__init__.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .activations import * from .base import * from .conv import * diff --git a/brainpy/version2/dnn/activations.py b/brainpy/version2/dnn/activations.py index 8f64f467c..7d7e6fbfd 100644 --- a/brainpy/version2/dnn/activations.py +++ b/brainpy/version2/dnn/activations.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import warnings from typing import Optional diff --git a/brainpy/version2/dnn/base.py b/brainpy/version2/dnn/base.py index ca0412ddb..c48641904 100644 --- a/brainpy/version2/dnn/base.py +++ b/brainpy/version2/dnn/base.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from brainpy.version2.dynsys import DynamicalSystem __all__ = [ diff --git a/brainpy/version2/dnn/conv.py b/brainpy/version2/dnn/conv.py index 928586342..34c83349b 100644 --- a/brainpy/version2/dnn/conv.py +++ b/brainpy/version2/dnn/conv.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Tuple, Optional, Sequence, Callable from jax import lax diff --git a/brainpy/version2/dnn/dropout.py b/brainpy/version2/dnn/dropout.py index c1c5648ba..f840cfee4 100644 --- a/brainpy/version2/dnn/dropout.py +++ b/brainpy/version2/dnn/dropout.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Optional from brainpy.version2 import math as bm, check diff --git a/brainpy/version2/dnn/function.py b/brainpy/version2/dnn/function.py index 6e9172f7f..86d76efe2 100644 --- a/brainpy/version2/dnn/function.py +++ b/brainpy/version2/dnn/function.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Callable, Optional, Sequence import brainpy.version2.math as bm diff --git a/brainpy/version2/dnn/interoperation_flax.py b/brainpy/version2/dnn/interoperation_flax.py index 48373217e..5d7fe74c6 100644 --- a/brainpy/version2/dnn/interoperation_flax.py +++ b/brainpy/version2/dnn/interoperation_flax.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import dataclasses from typing import Dict, Tuple diff --git a/brainpy/version2/dnn/linear.py b/brainpy/version2/dnn/linear.py index 3b2ad598a..4d1dce5f2 100644 --- a/brainpy/version2/dnn/linear.py +++ b/brainpy/version2/dnn/linear.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax import jax.numpy as jnp import numbers diff --git a/brainpy/version2/dnn/normalization.py b/brainpy/version2/dnn/normalization.py index c065e77ed..7747ed67f 100644 --- a/brainpy/version2/dnn/normalization.py +++ b/brainpy/version2/dnn/normalization.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Optional, Sequence, Callable from jax import lax, numpy as jnp diff --git a/brainpy/version2/dnn/pooling.py b/brainpy/version2/dnn/pooling.py index aff5dc29c..0d4f36c1f 100644 --- a/brainpy/version2/dnn/pooling.py +++ b/brainpy/version2/dnn/pooling.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Tuple, Sequence, Optional, Callable, List, Any import jax diff --git a/brainpy/version2/dnn/tests/test_activation.py b/brainpy/version2/dnn/tests/test_activation.py index c99f4c138..2baa8f943 100644 --- a/brainpy/version2/dnn/tests/test_activation.py +++ b/brainpy/version2/dnn/tests/test_activation.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import absltest from absl.testing import parameterized diff --git a/brainpy/version2/dnn/tests/test_conv_layers.py b/brainpy/version2/dnn/tests/test_conv_layers.py index f3ca1b573..20406821c 100644 --- a/brainpy/version2/dnn/tests/test_conv_layers.py +++ b/brainpy/version2/dnn/tests/test_conv_layers.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import platform import jax.numpy as jnp diff --git a/brainpy/version2/dnn/tests/test_function.py b/brainpy/version2/dnn/tests/test_function.py index 64ef83ba8..eec85caaf 100644 --- a/brainpy/version2/dnn/tests/test_function.py +++ b/brainpy/version2/dnn/tests/test_function.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import absltest from absl.testing import parameterized diff --git a/brainpy/version2/dnn/tests/test_linear.py b/brainpy/version2/dnn/tests/test_linear.py index d34348502..a82130ad7 100644 --- a/brainpy/version2/dnn/tests/test_linear.py +++ b/brainpy/version2/dnn/tests/test_linear.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax.numpy as jnp from absl.testing import absltest from absl.testing import parameterized diff --git a/brainpy/version2/dnn/tests/test_mode.py b/brainpy/version2/dnn/tests/test_mode.py index 9cc7742c7..bafac86bd 100644 --- a/brainpy/version2/dnn/tests/test_mode.py +++ b/brainpy/version2/dnn/tests/test_mode.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import absltest from absl.testing import parameterized diff --git a/brainpy/version2/dnn/tests/test_normalization.py b/brainpy/version2/dnn/tests/test_normalization.py index ce22704e9..ccd0875bf 100644 --- a/brainpy/version2/dnn/tests/test_normalization.py +++ b/brainpy/version2/dnn/tests/test_normalization.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import absltest from absl.testing import parameterized diff --git a/brainpy/version2/dnn/tests/test_pooling_layers.py b/brainpy/version2/dnn/tests/test_pooling_layers.py index 5380cdea8..a36c2fe2b 100644 --- a/brainpy/version2/dnn/tests/test_pooling_layers.py +++ b/brainpy/version2/dnn/tests/test_pooling_layers.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax import jax.numpy as jnp import numpy as np diff --git a/brainpy/version2/dyn/__init__.py b/brainpy/version2/dyn/__init__.py index 23638bfe8..2b6b73b45 100644 --- a/brainpy/version2/dyn/__init__.py +++ b/brainpy/version2/dyn/__init__.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .projections.plasticity import STDP_Song2000 from .base import * from .channels import * diff --git a/brainpy/version2/dyn/_docs.py b/brainpy/version2/dyn/_docs.py index cd0c56baf..163e4cc02 100644 --- a/brainpy/version2/dyn/_docs.py +++ b/brainpy/version2/dyn/_docs.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== pneu_doc = ''' size: int, or sequence of int. The neuronal population size. sharding: The sharding strategy. diff --git a/brainpy/version2/dyn/base.py b/brainpy/version2/dyn/base.py index 231012ab8..6448dfea0 100644 --- a/brainpy/version2/dyn/base.py +++ b/brainpy/version2/dyn/base.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from brainpy.version2.dynsys import Dynamic from brainpy.version2.mixin import SupportAutoDelay, ParamDesc diff --git a/brainpy/version2/dyn/channels/__init__.py b/brainpy/version2/dyn/channels/__init__.py index d97923f3a..d59f89eb1 100644 --- a/brainpy/version2/dyn/channels/__init__.py +++ b/brainpy/version2/dyn/channels/__init__.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .base import * from .calcium import * from .hyperpolarization_activated import * diff --git a/brainpy/version2/dyn/channels/base.py b/brainpy/version2/dyn/channels/base.py index 437c9b770..dd5967ce0 100644 --- a/brainpy/version2/dyn/channels/base.py +++ b/brainpy/version2/dyn/channels/base.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from brainpy.version2.dyn.base import IonChaDyn from brainpy.version2.dyn.neurons.hh import HHTypedNeuron from brainpy.version2.mixin import TreeNode diff --git a/brainpy/version2/dyn/channels/calcium.py b/brainpy/version2/dyn/channels/calcium.py index 0fc448e3b..5ff2dba4e 100644 --- a/brainpy/version2/dyn/channels/calcium.py +++ b/brainpy/version2/dyn/channels/calcium.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module implements voltage-dependent calcium channels. diff --git a/brainpy/version2/dyn/channels/hyperpolarization_activated.py b/brainpy/version2/dyn/channels/hyperpolarization_activated.py index 46c751a93..63a2848a4 100644 --- a/brainpy/version2/dyn/channels/hyperpolarization_activated.py +++ b/brainpy/version2/dyn/channels/hyperpolarization_activated.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module implements hyperpolarization-activated cation channels. """ diff --git a/brainpy/version2/dyn/channels/leaky.py b/brainpy/version2/dyn/channels/leaky.py index a31c0323a..be04cf210 100644 --- a/brainpy/version2/dyn/channels/leaky.py +++ b/brainpy/version2/dyn/channels/leaky.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module implements leakage channels. diff --git a/brainpy/version2/dyn/channels/potassium.py b/brainpy/version2/dyn/channels/potassium.py index 7e382ebdd..3f9826cbc 100644 --- a/brainpy/version2/dyn/channels/potassium.py +++ b/brainpy/version2/dyn/channels/potassium.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module implements voltage-dependent potassium channels. diff --git a/brainpy/version2/dyn/channels/potassium_calcium.py b/brainpy/version2/dyn/channels/potassium_calcium.py index 2c4483766..3b71a063f 100644 --- a/brainpy/version2/dyn/channels/potassium_calcium.py +++ b/brainpy/version2/dyn/channels/potassium_calcium.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module implements calcium-dependent potassium channels. """ diff --git a/brainpy/version2/dyn/channels/potassium_calcium_compatible.py b/brainpy/version2/dyn/channels/potassium_calcium_compatible.py index c5f0aa1a2..85d4f4fc8 100644 --- a/brainpy/version2/dyn/channels/potassium_calcium_compatible.py +++ b/brainpy/version2/dyn/channels/potassium_calcium_compatible.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module implements calcium-dependent potassium channels. diff --git a/brainpy/version2/dyn/channels/potassium_compatible.py b/brainpy/version2/dyn/channels/potassium_compatible.py index e2a838ba9..514ed8f99 100644 --- a/brainpy/version2/dyn/channels/potassium_compatible.py +++ b/brainpy/version2/dyn/channels/potassium_compatible.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module implements voltage-dependent potassium channels. diff --git a/brainpy/version2/dyn/channels/sodium.py b/brainpy/version2/dyn/channels/sodium.py index 2cf148877..fa2b67a2b 100644 --- a/brainpy/version2/dyn/channels/sodium.py +++ b/brainpy/version2/dyn/channels/sodium.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module implements voltage-dependent sodium channels. diff --git a/brainpy/version2/dyn/channels/sodium_compatible.py b/brainpy/version2/dyn/channels/sodium_compatible.py index 93ed92cc4..aca8ae2c8 100644 --- a/brainpy/version2/dyn/channels/sodium_compatible.py +++ b/brainpy/version2/dyn/channels/sodium_compatible.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module implements voltage-dependent sodium channels. diff --git a/brainpy/version2/dyn/channels/tests/test_Ca.py b/brainpy/version2/dyn/channels/tests/test_Ca.py index 8006f8651..2a1a2e0f8 100644 --- a/brainpy/version2/dyn/channels/tests/test_Ca.py +++ b/brainpy/version2/dyn/channels/tests/test_Ca.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dyn/channels/tests/test_IH.py b/brainpy/version2/dyn/channels/tests/test_IH.py index b9187b132..cb82c9cd8 100644 --- a/brainpy/version2/dyn/channels/tests/test_IH.py +++ b/brainpy/version2/dyn/channels/tests/test_IH.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dyn/channels/tests/test_K.py b/brainpy/version2/dyn/channels/tests/test_K.py index 9d8fafd50..192c35a32 100644 --- a/brainpy/version2/dyn/channels/tests/test_K.py +++ b/brainpy/version2/dyn/channels/tests/test_K.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dyn/channels/tests/test_KCa.py b/brainpy/version2/dyn/channels/tests/test_KCa.py index 77b349cf8..4f3a91c0c 100644 --- a/brainpy/version2/dyn/channels/tests/test_KCa.py +++ b/brainpy/version2/dyn/channels/tests/test_KCa.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dyn/channels/tests/test_Na.py b/brainpy/version2/dyn/channels/tests/test_Na.py index a6ba3131d..6355b26f0 100644 --- a/brainpy/version2/dyn/channels/tests/test_Na.py +++ b/brainpy/version2/dyn/channels/tests/test_Na.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dyn/channels/tests/test_leaky.py b/brainpy/version2/dyn/channels/tests/test_leaky.py index 688f46347..725d9adad 100644 --- a/brainpy/version2/dyn/channels/tests/test_leaky.py +++ b/brainpy/version2/dyn/channels/tests/test_leaky.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dyn/ions/__init__.py b/brainpy/version2/dyn/ions/__init__.py index f71653a19..771a25dcc 100644 --- a/brainpy/version2/dyn/ions/__init__.py +++ b/brainpy/version2/dyn/ions/__init__.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .base import * from .calcium import * from .potassium import * diff --git a/brainpy/version2/dyn/ions/base.py b/brainpy/version2/dyn/ions/base.py index 96f1f5c6f..d7081577c 100644 --- a/brainpy/version2/dyn/ions/base.py +++ b/brainpy/version2/dyn/ions/base.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Optional, Dict, Sequence, Callable from brainstate.mixin import _JointGenericAlias diff --git a/brainpy/version2/dyn/ions/calcium.py b/brainpy/version2/dyn/ions/calcium.py index 7f098eeb2..265a7ed25 100644 --- a/brainpy/version2/dyn/ions/calcium.py +++ b/brainpy/version2/dyn/ions/calcium.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable, Optional import brainpy.version2.math as bm diff --git a/brainpy/version2/dyn/ions/potassium.py b/brainpy/version2/dyn/ions/potassium.py index fac1781e5..9150b9d21 100644 --- a/brainpy/version2/dyn/ions/potassium.py +++ b/brainpy/version2/dyn/ions/potassium.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable, Optional import brainpy.version2.math as bm diff --git a/brainpy/version2/dyn/ions/sodium.py b/brainpy/version2/dyn/ions/sodium.py index 729792337..9e371ab23 100644 --- a/brainpy/version2/dyn/ions/sodium.py +++ b/brainpy/version2/dyn/ions/sodium.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable, Optional import brainpy.version2.math as bm diff --git a/brainpy/version2/dyn/ions/tests/test_MixIons.py b/brainpy/version2/dyn/ions/tests/test_MixIons.py index eb3e84f63..7340bd057 100644 --- a/brainpy/version2/dyn/ions/tests/test_MixIons.py +++ b/brainpy/version2/dyn/ions/tests/test_MixIons.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2 as bp diff --git a/brainpy/version2/dyn/neurons/__init__.py b/brainpy/version2/dyn/neurons/__init__.py index ebec19ce0..b5158985e 100644 --- a/brainpy/version2/dyn/neurons/__init__.py +++ b/brainpy/version2/dyn/neurons/__init__.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .lif import * from .hh import * from .base import * diff --git a/brainpy/version2/dyn/neurons/base.py b/brainpy/version2/dyn/neurons/base.py index 1ffd31edb..d25dab7b2 100644 --- a/brainpy/version2/dyn/neurons/base.py +++ b/brainpy/version2/dyn/neurons/base.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Sequence, Union, Callable, Any, Optional import brainpy.version2.math as bm diff --git a/brainpy/version2/dyn/neurons/hh.py b/brainpy/version2/dyn/neurons/hh.py index a190365c8..bba6613cd 100644 --- a/brainpy/version2/dyn/neurons/hh.py +++ b/brainpy/version2/dyn/neurons/hh.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from functools import partial from typing import Any, Sequence from typing import Union, Callable, Optional diff --git a/brainpy/version2/dyn/neurons/lif.py b/brainpy/version2/dyn/neurons/lif.py index 182b4d9ff..ce730bb5f 100644 --- a/brainpy/version2/dyn/neurons/lif.py +++ b/brainpy/version2/dyn/neurons/lif.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from functools import partial from typing import Union, Callable, Optional, Any, Sequence diff --git a/brainpy/version2/dyn/neurons/tests/test_hh.py b/brainpy/version2/dyn/neurons/tests/test_hh.py index 68c72bd3d..c56cb4fea 100644 --- a/brainpy/version2/dyn/neurons/tests/test_hh.py +++ b/brainpy/version2/dyn/neurons/tests/test_hh.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dyn/neurons/tests/test_lif.py b/brainpy/version2/dyn/neurons/tests/test_lif.py index 50d9f9e46..beffcdc72 100644 --- a/brainpy/version2/dyn/neurons/tests/test_lif.py +++ b/brainpy/version2/dyn/neurons/tests/test_lif.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import numpy as np from absl.testing import parameterized diff --git a/brainpy/version2/dyn/others/__init__.py b/brainpy/version2/dyn/others/__init__.py index 63c75366c..9f09c8098 100644 --- a/brainpy/version2/dyn/others/__init__.py +++ b/brainpy/version2/dyn/others/__init__.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .common import * from .input import * from .noise import * diff --git a/brainpy/version2/dyn/others/common.py b/brainpy/version2/dyn/others/common.py index cbcee1ea4..c166e0a22 100644 --- a/brainpy/version2/dyn/others/common.py +++ b/brainpy/version2/dyn/others/common.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable, Optional, Sequence import brainpy.version2.math as bm diff --git a/brainpy/version2/dyn/others/input.py b/brainpy/version2/dyn/others/input.py index e7bb9d7f1..4cc95747b 100644 --- a/brainpy/version2/dyn/others/input.py +++ b/brainpy/version2/dyn/others/input.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import warnings from functools import partial from typing import Union, Sequence, Any, Optional, Callable diff --git a/brainpy/version2/dyn/others/noise.py b/brainpy/version2/dyn/others/noise.py index 8731bd332..b7b9b7b92 100644 --- a/brainpy/version2/dyn/others/noise.py +++ b/brainpy/version2/dyn/others/noise.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable import jax.numpy as jnp diff --git a/brainpy/version2/dyn/others/tests/test_input.py b/brainpy/version2/dyn/others/tests/test_input.py index c1a9579be..63959aca9 100644 --- a/brainpy/version2/dyn/others/tests/test_input.py +++ b/brainpy/version2/dyn/others/tests/test_input.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dyn/others/tests/test_input_groups.py b/brainpy/version2/dyn/others/tests/test_input_groups.py index 352c16742..6a9a5c953 100644 --- a/brainpy/version2/dyn/others/tests/test_input_groups.py +++ b/brainpy/version2/dyn/others/tests/test_input_groups.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dyn/others/tests/test_noise_groups.py b/brainpy/version2/dyn/others/tests/test_noise_groups.py index 860944014..f42583b68 100644 --- a/brainpy/version2/dyn/others/tests/test_noise_groups.py +++ b/brainpy/version2/dyn/others/tests/test_noise_groups.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import pytest from absl.testing import parameterized diff --git a/brainpy/version2/dyn/outs/__init__.py b/brainpy/version2/dyn/outs/__init__.py index ac55893ee..40b61d22c 100644 --- a/brainpy/version2/dyn/outs/__init__.py +++ b/brainpy/version2/dyn/outs/__init__.py @@ -1,2 +1,16 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .base import * from .outputs import * diff --git a/brainpy/version2/dyn/outs/base.py b/brainpy/version2/dyn/outs/base.py index 7bd7cf1f8..6fa5ab76b 100644 --- a/brainpy/version2/dyn/outs/base.py +++ b/brainpy/version2/dyn/outs/base.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Optional import brainpy.version2.math as bm diff --git a/brainpy/version2/dyn/outs/outputs.py b/brainpy/version2/dyn/outs/outputs.py index 9162cd1b0..c58cc0db4 100644 --- a/brainpy/version2/dyn/outs/outputs.py +++ b/brainpy/version2/dyn/outs/outputs.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Optional, Sequence import numpy as np diff --git a/brainpy/version2/dyn/projections/__init__.py b/brainpy/version2/dyn/projections/__init__.py index b95bf3e00..d23868d96 100644 --- a/brainpy/version2/dyn/projections/__init__.py +++ b/brainpy/version2/dyn/projections/__init__.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .align_post import * from .align_pre import * from .base import * diff --git a/brainpy/version2/dyn/projections/align_post.py b/brainpy/version2/dyn/projections/align_post.py index f3e65dbbf..be06bda7c 100644 --- a/brainpy/version2/dyn/projections/align_post.py +++ b/brainpy/version2/dyn/projections/align_post.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Optional, Callable, Union from brainpy.version2 import math as bm, check diff --git a/brainpy/version2/dyn/projections/align_pre.py b/brainpy/version2/dyn/projections/align_pre.py index 003ec803c..534555147 100644 --- a/brainpy/version2/dyn/projections/align_pre.py +++ b/brainpy/version2/dyn/projections/align_pre.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Optional, Union from brainpy.version2 import math as bm, check diff --git a/brainpy/version2/dyn/projections/base.py b/brainpy/version2/dyn/projections/base.py index 8c923685b..09ea29d19 100644 --- a/brainpy/version2/dyn/projections/base.py +++ b/brainpy/version2/dyn/projections/base.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from brainpy.version2 import math as bm from brainpy.version2.mixin import ReturnInfo diff --git a/brainpy/version2/dyn/projections/conn.py b/brainpy/version2/dyn/projections/conn.py index 631dc3ed9..6641b0ece 100644 --- a/brainpy/version2/dyn/projections/conn.py +++ b/brainpy/version2/dyn/projections/conn.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Dict, Optional import jax diff --git a/brainpy/version2/dyn/projections/delta.py b/brainpy/version2/dyn/projections/delta.py index e23ca3fa7..f1b7a5151 100644 --- a/brainpy/version2/dyn/projections/delta.py +++ b/brainpy/version2/dyn/projections/delta.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Optional, Union from brainpy.version2 import math as bm, check diff --git a/brainpy/version2/dyn/projections/inputs.py b/brainpy/version2/dyn/projections/inputs.py index da84d6004..74ffdb270 100644 --- a/brainpy/version2/dyn/projections/inputs.py +++ b/brainpy/version2/dyn/projections/inputs.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import numbers from typing import Any from typing import Union, Optional diff --git a/brainpy/version2/dyn/projections/plasticity.py b/brainpy/version2/dyn/projections/plasticity.py index 53df8d755..469023371 100644 --- a/brainpy/version2/dyn/projections/plasticity.py +++ b/brainpy/version2/dyn/projections/plasticity.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Optional, Callable, Union from brainpy.version2 import math as bm, check diff --git a/brainpy/version2/dyn/projections/tests/test_STDP.py b/brainpy/version2/dyn/projections/tests/test_STDP.py index 055f81843..d671de848 100644 --- a/brainpy/version2/dyn/projections/tests/test_STDP.py +++ b/brainpy/version2/dyn/projections/tests/test_STDP.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import numpy as np from absl.testing import parameterized diff --git a/brainpy/version2/dyn/projections/tests/test_aligns.py b/brainpy/version2/dyn/projections/tests/test_aligns.py index bbeb22b21..ff1d77561 100644 --- a/brainpy/version2/dyn/projections/tests/test_aligns.py +++ b/brainpy/version2/dyn/projections/tests/test_aligns.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import matplotlib.pyplot as plt import numpy as np diff --git a/brainpy/version2/dyn/projections/tests/test_delta.py b/brainpy/version2/dyn/projections/tests/test_delta.py index 141f33286..0f484b250 100644 --- a/brainpy/version2/dyn/projections/tests/test_delta.py +++ b/brainpy/version2/dyn/projections/tests/test_delta.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import matplotlib.pyplot as plt import brainpy.version2 as bp diff --git a/brainpy/version2/dyn/projections/utils.py b/brainpy/version2/dyn/projections/utils.py index 8c923685b..09ea29d19 100644 --- a/brainpy/version2/dyn/projections/utils.py +++ b/brainpy/version2/dyn/projections/utils.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from brainpy.version2 import math as bm from brainpy.version2.mixin import ReturnInfo diff --git a/brainpy/version2/dyn/projections/vanilla.py b/brainpy/version2/dyn/projections/vanilla.py index 4f4515aec..b2d6fe62f 100644 --- a/brainpy/version2/dyn/projections/vanilla.py +++ b/brainpy/version2/dyn/projections/vanilla.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Optional from brainpy.version2 import math as bm, check diff --git a/brainpy/version2/dyn/rates/__init__.py b/brainpy/version2/dyn/rates/__init__.py index 3509093b4..7cc58562c 100644 --- a/brainpy/version2/dyn/rates/__init__.py +++ b/brainpy/version2/dyn/rates/__init__.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .nvar import * from .populations import * from .reservoir import * diff --git a/brainpy/version2/dyn/rates/nvar.py b/brainpy/version2/dyn/rates/nvar.py index fb3860142..478f643db 100644 --- a/brainpy/version2/dyn/rates/nvar.py +++ b/brainpy/version2/dyn/rates/nvar.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from itertools import combinations_with_replacement from typing import Union, Sequence, List, Optional diff --git a/brainpy/version2/dyn/rates/populations.py b/brainpy/version2/dyn/rates/populations.py index 92cde5819..3e8eaaf09 100644 --- a/brainpy/version2/dyn/rates/populations.py +++ b/brainpy/version2/dyn/rates/populations.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable import jax diff --git a/brainpy/version2/dyn/rates/reservoir.py b/brainpy/version2/dyn/rates/reservoir.py index 4505bf420..7428c105c 100644 --- a/brainpy/version2/dyn/rates/reservoir.py +++ b/brainpy/version2/dyn/rates/reservoir.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Optional, Union, Callable, Tuple import jax.numpy as jnp diff --git a/brainpy/version2/dyn/rates/rnncells.py b/brainpy/version2/dyn/rates/rnncells.py index 9b6f07e3c..98295e7bc 100644 --- a/brainpy/version2/dyn/rates/rnncells.py +++ b/brainpy/version2/dyn/rates/rnncells.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable, Sequence, Optional, Tuple import jax.numpy as jnp diff --git a/brainpy/version2/dyn/rates/tests/test_nvar.py b/brainpy/version2/dyn/rates/tests/test_nvar.py index 5b323d50b..09bd33929 100644 --- a/brainpy/version2/dyn/rates/tests/test_nvar.py +++ b/brainpy/version2/dyn/rates/tests/test_nvar.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import absltest from absl.testing import parameterized diff --git a/brainpy/version2/dyn/rates/tests/test_rates.py b/brainpy/version2/dyn/rates/tests/test_rates.py index 2087b8c33..33af546b9 100644 --- a/brainpy/version2/dyn/rates/tests/test_rates.py +++ b/brainpy/version2/dyn/rates/tests/test_rates.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from unittest import TestCase from absl.testing import parameterized diff --git a/brainpy/version2/dyn/rates/tests/test_reservoir.py b/brainpy/version2/dyn/rates/tests/test_reservoir.py index 65e7f7f66..e054c6a22 100644 --- a/brainpy/version2/dyn/rates/tests/test_reservoir.py +++ b/brainpy/version2/dyn/rates/tests/test_reservoir.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import absltest from absl.testing import parameterized diff --git a/brainpy/version2/dyn/rates/tests/test_rnncells.py b/brainpy/version2/dyn/rates/tests/test_rnncells.py index cb74c292b..80a09f289 100644 --- a/brainpy/version2/dyn/rates/tests/test_rnncells.py +++ b/brainpy/version2/dyn/rates/tests/test_rnncells.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import absltest from absl.testing import parameterized diff --git a/brainpy/version2/dyn/synapses/__init__.py b/brainpy/version2/dyn/synapses/__init__.py index 215279ee9..1fc183ce1 100644 --- a/brainpy/version2/dyn/synapses/__init__.py +++ b/brainpy/version2/dyn/synapses/__init__.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .abstract_models import * from .bio_models import * from .delay_couplings import * diff --git a/brainpy/version2/dyn/synapses/abstract_models.py b/brainpy/version2/dyn/synapses/abstract_models.py index 05d015937..0fefc7814 100644 --- a/brainpy/version2/dyn/synapses/abstract_models.py +++ b/brainpy/version2/dyn/synapses/abstract_models.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Sequence, Callable, Optional from brainpy.version2 import math as bm diff --git a/brainpy/version2/dyn/synapses/bio_models.py b/brainpy/version2/dyn/synapses/bio_models.py index 9d2cffdb8..cd4b43a93 100644 --- a/brainpy/version2/dyn/synapses/bio_models.py +++ b/brainpy/version2/dyn/synapses/bio_models.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Sequence, Callable, Optional from brainpy.version2 import math as bm diff --git a/brainpy/version2/dyn/synapses/delay_couplings.py b/brainpy/version2/dyn/synapses/delay_couplings.py index 601b80f6b..718be2daf 100644 --- a/brainpy/version2/dyn/synapses/delay_couplings.py +++ b/brainpy/version2/dyn/synapses/delay_couplings.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import numbers from typing import Optional, Union, Sequence, Tuple, Callable diff --git a/brainpy/version2/dyn/synapses/tests/test_abstract_models.py b/brainpy/version2/dyn/synapses/tests/test_abstract_models.py index f99022ecb..2d10526b9 100644 --- a/brainpy/version2/dyn/synapses/tests/test_abstract_models.py +++ b/brainpy/version2/dyn/synapses/tests/test_abstract_models.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import matplotlib.pyplot as plt diff --git a/brainpy/version2/dyn/synapses/tests/test_delay_couplings.py b/brainpy/version2/dyn/synapses/tests/test_delay_couplings.py index ab9016b68..711a2a5ee 100644 --- a/brainpy/version2/dyn/synapses/tests/test_delay_couplings.py +++ b/brainpy/version2/dyn/synapses/tests/test_delay_couplings.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dyn/utils.py b/brainpy/version2/dyn/utils.py index 0646c15d1..ca5d3efca 100644 --- a/brainpy/version2/dyn/utils.py +++ b/brainpy/version2/dyn/utils.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Optional import brainpy.version2.math as bm diff --git a/brainpy/version2/dynold/__init__.py b/brainpy/version2/dynold/__init__.py index e69de29bb..fd2a9f643 100644 --- a/brainpy/version2/dynold/__init__.py +++ b/brainpy/version2/dynold/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== \ No newline at end of file diff --git a/brainpy/version2/dynold/experimental/__init__.py b/brainpy/version2/dynold/experimental/__init__.py index e69de29bb..fd2a9f643 100644 --- a/brainpy/version2/dynold/experimental/__init__.py +++ b/brainpy/version2/dynold/experimental/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== \ No newline at end of file diff --git a/brainpy/version2/dynold/experimental/abstract_synapses.py b/brainpy/version2/dynold/experimental/abstract_synapses.py index 4731fec90..6cbc2aaad 100644 --- a/brainpy/version2/dynold/experimental/abstract_synapses.py +++ b/brainpy/version2/dynold/experimental/abstract_synapses.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Dict, Callable, Optional from jax import vmap diff --git a/brainpy/version2/dynold/experimental/base.py b/brainpy/version2/dynold/experimental/base.py index 4db62220e..e7b9f7bdf 100644 --- a/brainpy/version2/dynold/experimental/base.py +++ b/brainpy/version2/dynold/experimental/base.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable, Optional, Tuple import jax diff --git a/brainpy/version2/dynold/experimental/others.py b/brainpy/version2/dynold/experimental/others.py index b35867b70..e2559f362 100644 --- a/brainpy/version2/dynold/experimental/others.py +++ b/brainpy/version2/dynold/experimental/others.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Optional import brainpy.version2.math as bm diff --git a/brainpy/version2/dynold/experimental/syn_outs.py b/brainpy/version2/dynold/experimental/syn_outs.py index 6ae4e8c37..aa5419057 100644 --- a/brainpy/version2/dynold/experimental/syn_outs.py +++ b/brainpy/version2/dynold/experimental/syn_outs.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union from brainpy.version2.dynold.experimental.base import SynOutNS diff --git a/brainpy/version2/dynold/experimental/syn_plasticity.py b/brainpy/version2/dynold/experimental/syn_plasticity.py index d6bd37628..b158fe5ef 100644 --- a/brainpy/version2/dynold/experimental/syn_plasticity.py +++ b/brainpy/version2/dynold/experimental/syn_plasticity.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union import jax.numpy as jnp diff --git a/brainpy/version2/dynold/neurons/__init__.py b/brainpy/version2/dynold/neurons/__init__.py index e4e413d69..8a3c2d376 100644 --- a/brainpy/version2/dynold/neurons/__init__.py +++ b/brainpy/version2/dynold/neurons/__init__.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .biological_models import * from .fractional_models import * from .reduced_models import * diff --git a/brainpy/version2/dynold/neurons/biological_models.py b/brainpy/version2/dynold/neurons/biological_models.py index ada2f9dbc..e1343f989 100644 --- a/brainpy/version2/dynold/neurons/biological_models.py +++ b/brainpy/version2/dynold/neurons/biological_models.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable import brainpy.version2.math as bm diff --git a/brainpy/version2/dynold/neurons/fractional_models.py b/brainpy/version2/dynold/neurons/fractional_models.py index 16993a815..acc2a7aa0 100644 --- a/brainpy/version2/dynold/neurons/fractional_models.py +++ b/brainpy/version2/dynold/neurons/fractional_models.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Sequence, Callable import jax.numpy as jnp diff --git a/brainpy/version2/dynold/neurons/reduced_models.py b/brainpy/version2/dynold/neurons/reduced_models.py index ec71d4ebf..151417d66 100644 --- a/brainpy/version2/dynold/neurons/reduced_models.py +++ b/brainpy/version2/dynold/neurons/reduced_models.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable from jax.lax import stop_gradient diff --git a/brainpy/version2/dynold/neurons/tests/test_biological_neurons.py b/brainpy/version2/dynold/neurons/tests/test_biological_neurons.py index f7619b4c7..c1efbf842 100644 --- a/brainpy/version2/dynold/neurons/tests/test_biological_neurons.py +++ b/brainpy/version2/dynold/neurons/tests/test_biological_neurons.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dynold/neurons/tests/test_fractional_neurons.py b/brainpy/version2/dynold/neurons/tests/test_fractional_neurons.py index 7583f0ff6..9181367e1 100644 --- a/brainpy/version2/dynold/neurons/tests/test_fractional_neurons.py +++ b/brainpy/version2/dynold/neurons/tests/test_fractional_neurons.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dynold/neurons/tests/test_reduced_neurons.py b/brainpy/version2/dynold/neurons/tests/test_reduced_neurons.py index 84c2edd72..a54aab1a9 100644 --- a/brainpy/version2/dynold/neurons/tests/test_reduced_neurons.py +++ b/brainpy/version2/dynold/neurons/tests/test_reduced_neurons.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dynold/synapses/__init__.py b/brainpy/version2/dynold/synapses/__init__.py index 01fd3605f..36cb547d4 100644 --- a/brainpy/version2/dynold/synapses/__init__.py +++ b/brainpy/version2/dynold/synapses/__init__.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .abstract_models import * from .base import * from .biological_models import * diff --git a/brainpy/version2/dynold/synapses/abstract_models.py b/brainpy/version2/dynold/synapses/abstract_models.py index dc368a83f..5ec3a4582 100644 --- a/brainpy/version2/dynold/synapses/abstract_models.py +++ b/brainpy/version2/dynold/synapses/abstract_models.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Dict, Callable, Optional import jax diff --git a/brainpy/version2/dynold/synapses/base.py b/brainpy/version2/dynold/synapses/base.py index b8d47d4dc..d474dee33 100644 --- a/brainpy/version2/dynold/synapses/base.py +++ b/brainpy/version2/dynold/synapses/base.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import warnings from typing import Union, Dict, Callable, Optional, Tuple diff --git a/brainpy/version2/dynold/synapses/biological_models.py b/brainpy/version2/dynold/synapses/biological_models.py index 3fefa4956..c48c3e115 100644 --- a/brainpy/version2/dynold/synapses/biological_models.py +++ b/brainpy/version2/dynold/synapses/biological_models.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Dict, Callable, Optional import brainpy.version2.math as bm diff --git a/brainpy/version2/dynold/synapses/compat.py b/brainpy/version2/dynold/synapses/compat.py index afe46f48e..7de0bd01d 100644 --- a/brainpy/version2/dynold/synapses/compat.py +++ b/brainpy/version2/dynold/synapses/compat.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import warnings from typing import Union, Dict, Callable diff --git a/brainpy/version2/dynold/synapses/gap_junction.py b/brainpy/version2/dynold/synapses/gap_junction.py index 9b28626f0..2b94f8beb 100644 --- a/brainpy/version2/dynold/synapses/gap_junction.py +++ b/brainpy/version2/dynold/synapses/gap_junction.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Dict, Callable import brainpy.version2.math as bm diff --git a/brainpy/version2/dynold/synapses/learning_rules.py b/brainpy/version2/dynold/synapses/learning_rules.py index 6ad86de21..e9eedb43e 100644 --- a/brainpy/version2/dynold/synapses/learning_rules.py +++ b/brainpy/version2/dynold/synapses/learning_rules.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Dict, Callable, Optional from brainpy.version2.connect import TwoEndConnector diff --git a/brainpy/version2/dynold/synapses/tests/test_abstract_synapses.py b/brainpy/version2/dynold/synapses/tests/test_abstract_synapses.py index ce87f6dc6..4ccb8e9db 100644 --- a/brainpy/version2/dynold/synapses/tests/test_abstract_synapses.py +++ b/brainpy/version2/dynold/synapses/tests/test_abstract_synapses.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dynold/synapses/tests/test_biological_synapses.py b/brainpy/version2/dynold/synapses/tests/test_biological_synapses.py index 4bd3d562e..c55658ec2 100644 --- a/brainpy/version2/dynold/synapses/tests/test_biological_synapses.py +++ b/brainpy/version2/dynold/synapses/tests/test_biological_synapses.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dynold/synapses/tests/test_dynold_base_synapse.py b/brainpy/version2/dynold/synapses/tests/test_dynold_base_synapse.py index a659a6ef2..50ede5934 100644 --- a/brainpy/version2/dynold/synapses/tests/test_dynold_base_synapse.py +++ b/brainpy/version2/dynold/synapses/tests/test_dynold_base_synapse.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2 as bp diff --git a/brainpy/version2/dynold/synapses/tests/test_gap_junction.py b/brainpy/version2/dynold/synapses/tests/test_gap_junction.py index e45bafe7a..3b02f7a58 100644 --- a/brainpy/version2/dynold/synapses/tests/test_gap_junction.py +++ b/brainpy/version2/dynold/synapses/tests/test_gap_junction.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dynold/synapses/tests/test_learning_rule.py b/brainpy/version2/dynold/synapses/tests/test_learning_rule.py index 6bcc74716..4e89c55e1 100644 --- a/brainpy/version2/dynold/synapses/tests/test_learning_rule.py +++ b/brainpy/version2/dynold/synapses/tests/test_learning_rule.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import parameterized import brainpy.version2 as bp diff --git a/brainpy/version2/dynold/synouts/__init__.py b/brainpy/version2/dynold/synouts/__init__.py index aefc8c28d..4a308f0cb 100644 --- a/brainpy/version2/dynold/synouts/__init__.py +++ b/brainpy/version2/dynold/synouts/__init__.py @@ -1,4 +1,17 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .conductances import * from .ions import * diff --git a/brainpy/version2/dynold/synouts/conductances.py b/brainpy/version2/dynold/synouts/conductances.py index c58c6978f..24bbf255d 100644 --- a/brainpy/version2/dynold/synouts/conductances.py +++ b/brainpy/version2/dynold/synouts/conductances.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable, Optional from brainpy.version2.dynold.synapses.base import _SynOut diff --git a/brainpy/version2/dynold/synouts/ions.py b/brainpy/version2/dynold/synouts/ions.py index 6b7d73779..f4b7d2379 100644 --- a/brainpy/version2/dynold/synouts/ions.py +++ b/brainpy/version2/dynold/synouts/ions.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable, Optional import jax.numpy as jnp diff --git a/brainpy/version2/dynold/synplast/__init__.py b/brainpy/version2/dynold/synplast/__init__.py index 2e9853f03..bad27d28a 100644 --- a/brainpy/version2/dynold/synplast/__init__.py +++ b/brainpy/version2/dynold/synplast/__init__.py @@ -1,3 +1,16 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .short_term_plasticity import * diff --git a/brainpy/version2/dynold/synplast/short_term_plasticity.py b/brainpy/version2/dynold/synplast/short_term_plasticity.py index 98d6a413e..3def1ee79 100644 --- a/brainpy/version2/dynold/synplast/short_term_plasticity.py +++ b/brainpy/version2/dynold/synplast/short_term_plasticity.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union import jax.numpy as jnp diff --git a/brainpy/version2/dynsys.py b/brainpy/version2/dynsys.py index 756ac8264..da87c228d 100644 --- a/brainpy/version2/dynsys.py +++ b/brainpy/version2/dynsys.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import collections import inspect import numbers diff --git a/brainpy/version2/encoding/__init__.py b/brainpy/version2/encoding/__init__.py index 1b67bbc87..c79fbdfd0 100644 --- a/brainpy/version2/encoding/__init__.py +++ b/brainpy/version2/encoding/__init__.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .base import * from .stateful_encoding import * from .stateless_encoding import * diff --git a/brainpy/version2/encoding/base.py b/brainpy/version2/encoding/base.py index 316590a9d..1713470a9 100644 --- a/brainpy/version2/encoding/base.py +++ b/brainpy/version2/encoding/base.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from brainpy.version2.math.object_transform.base import BrainPyObject __all__ = [ diff --git a/brainpy/version2/encoding/stateful_encoding.py b/brainpy/version2/encoding/stateful_encoding.py index f546a647a..df3adee2c 100644 --- a/brainpy/version2/encoding/stateful_encoding.py +++ b/brainpy/version2/encoding/stateful_encoding.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Callable, Optional import numpy as np diff --git a/brainpy/version2/encoding/stateless_encoding.py b/brainpy/version2/encoding/stateless_encoding.py index a88e0df73..4cbf52f8a 100644 --- a/brainpy/version2/encoding/stateless_encoding.py +++ b/brainpy/version2/encoding/stateless_encoding.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Optional import brainpy.version2.math as bm diff --git a/brainpy/version2/encoding/tests/test_stateless_encoding.py b/brainpy/version2/encoding/tests/test_stateless_encoding.py index 7324e1f41..726340607 100644 --- a/brainpy/version2/encoding/tests/test_stateless_encoding.py +++ b/brainpy/version2/encoding/tests/test_stateless_encoding.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2 as bp diff --git a/brainpy/version2/experimental.py b/brainpy/version2/experimental.py index 25d39e6c5..f00bbcfe6 100644 --- a/brainpy/version2/experimental.py +++ b/brainpy/version2/experimental.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from brainpy.version2.dynold.experimental.syn_plasticity import ( STD as STD, STP as STP, diff --git a/brainpy/version2/helpers.py b/brainpy/version2/helpers.py index 625e2ae7a..a2979c281 100644 --- a/brainpy/version2/helpers.py +++ b/brainpy/version2/helpers.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Dict, Callable from brainpy.version2 import dynsys diff --git a/brainpy/version2/initialize/__init__.py b/brainpy/version2/initialize/__init__.py index 75dc0793d..cd51306be 100644 --- a/brainpy/version2/initialize/__init__.py +++ b/brainpy/version2/initialize/__init__.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .base import * from .decay_inits import * from .generic import * diff --git a/brainpy/version2/initialize/base.py b/brainpy/version2/initialize/base.py index 77ae21723..b9e99f13e 100644 --- a/brainpy/version2/initialize/base.py +++ b/brainpy/version2/initialize/base.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import abc __all__ = [ diff --git a/brainpy/version2/initialize/decay_inits.py b/brainpy/version2/initialize/decay_inits.py index 81183f50f..3f2cc9a74 100644 --- a/brainpy/version2/initialize/decay_inits.py +++ b/brainpy/version2/initialize/decay_inits.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from functools import partial import numpy as np diff --git a/brainpy/version2/initialize/generic.py b/brainpy/version2/initialize/generic.py index a5249990e..f6aeac2f9 100644 --- a/brainpy/version2/initialize/generic.py +++ b/brainpy/version2/initialize/generic.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable, Optional, Sequence import jax diff --git a/brainpy/version2/initialize/others.py b/brainpy/version2/initialize/others.py index ce2378ffb..f5ebf015f 100644 --- a/brainpy/version2/initialize/others.py +++ b/brainpy/version2/initialize/others.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Callable import brainpy.version2.math as bm diff --git a/brainpy/version2/initialize/random_inits.py b/brainpy/version2/initialize/random_inits.py index a32ab5669..394940d40 100644 --- a/brainpy/version2/initialize/random_inits.py +++ b/brainpy/version2/initialize/random_inits.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import math import jax.numpy as jnp diff --git a/brainpy/version2/initialize/regular_inits.py b/brainpy/version2/initialize/regular_inits.py index 6a3ebd03f..08ee88c13 100644 --- a/brainpy/version2/initialize/regular_inits.py +++ b/brainpy/version2/initialize/regular_inits.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from brainpy.version2 import math as bm, tools from .base import _InterLayerInitializer diff --git a/brainpy/version2/initialize/tests/test_decay_inits.py b/brainpy/version2/initialize/tests/test_decay_inits.py index 58644861b..bf18ca8c1 100644 --- a/brainpy/version2/initialize/tests/test_decay_inits.py +++ b/brainpy/version2/initialize/tests/test_decay_inits.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import matplotlib diff --git a/brainpy/version2/initialize/tests/test_random_inits.py b/brainpy/version2/initialize/tests/test_random_inits.py index d86ddd1a5..0fe1358fe 100644 --- a/brainpy/version2/initialize/tests/test_random_inits.py +++ b/brainpy/version2/initialize/tests/test_random_inits.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2 as bp diff --git a/brainpy/version2/initialize/tests/test_regular_inits.py b/brainpy/version2/initialize/tests/test_regular_inits.py index 8c122a3e1..dd8368c10 100644 --- a/brainpy/version2/initialize/tests/test_regular_inits.py +++ b/brainpy/version2/initialize/tests/test_regular_inits.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import jax diff --git a/brainpy/version2/inputs/__init__.py b/brainpy/version2/inputs/__init__.py index e37615905..7ee4c742b 100644 --- a/brainpy/version2/inputs/__init__.py +++ b/brainpy/version2/inputs/__init__.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module provides various methods to form current inputs. You can access them through ``brainpy.version2.inputs.XXX``. diff --git a/brainpy/version2/inputs/currents.py b/brainpy/version2/inputs/currents.py index 9b4d70f8c..ce9c5960a 100644 --- a/brainpy/version2/inputs/currents.py +++ b/brainpy/version2/inputs/currents.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import warnings import braintools diff --git a/brainpy/version2/inputs/tests/test_currents.py b/brainpy/version2/inputs/tests/test_currents.py index 0335e882d..86deb94b6 100644 --- a/brainpy/version2/inputs/tests/test_currents.py +++ b/brainpy/version2/inputs/tests/test_currents.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from unittest import TestCase import numpy as np diff --git a/brainpy/version2/integrators/__init__.py b/brainpy/version2/integrators/__init__.py index 4df1514fe..91577eb7f 100644 --- a/brainpy/version2/integrators/__init__.py +++ b/brainpy/version2/integrators/__init__.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module provides numerical solvers for various differential equations, including: diff --git a/brainpy/version2/integrators/base.py b/brainpy/version2/integrators/base.py index ce6d70db6..795f2e141 100644 --- a/brainpy/version2/integrators/base.py +++ b/brainpy/version2/integrators/base.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from contextlib import contextmanager from typing import Dict, Sequence, Union, Callable diff --git a/brainpy/version2/integrators/constants.py b/brainpy/version2/integrators/constants.py index 679d76be2..a8951c3ef 100644 --- a/brainpy/version2/integrators/constants.py +++ b/brainpy/version2/integrators/constants.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== # import brainpy.version2.math as bm from brainpy.version2.math.object_transform import naming diff --git a/brainpy/version2/integrators/fde/Caputo.py b/brainpy/version2/integrators/fde/Caputo.py index 7179cd1ad..d47747077 100644 --- a/brainpy/version2/integrators/fde/Caputo.py +++ b/brainpy/version2/integrators/fde/Caputo.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module provides numerical methods for integrating Caputo fractional derivative equations. diff --git a/brainpy/version2/integrators/fde/GL.py b/brainpy/version2/integrators/fde/GL.py index d1e355337..b903d1571 100644 --- a/brainpy/version2/integrators/fde/GL.py +++ b/brainpy/version2/integrators/fde/GL.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module provides numerical solvers for Grünwald–Letnikov derivative FDEs. """ diff --git a/brainpy/version2/integrators/fde/__init__.py b/brainpy/version2/integrators/fde/__init__.py index 2ac3f88cd..b2485f05c 100644 --- a/brainpy/version2/integrators/fde/__init__.py +++ b/brainpy/version2/integrators/fde/__init__.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .Caputo import * from .GL import * from .base import * diff --git a/brainpy/version2/integrators/fde/base.py b/brainpy/version2/integrators/fde/base.py index e69aedf8c..a391c3c54 100644 --- a/brainpy/version2/integrators/fde/base.py +++ b/brainpy/version2/integrators/fde/base.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable, Dict import jax.numpy as jnp diff --git a/brainpy/version2/integrators/fde/generic.py b/brainpy/version2/integrators/fde/generic.py index 94c577326..3e39b1026 100644 --- a/brainpy/version2/integrators/fde/generic.py +++ b/brainpy/version2/integrators/fde/generic.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .base import FDEIntegrator __all__ = [ diff --git a/brainpy/version2/integrators/fde/tests/test_Caputo.py b/brainpy/version2/integrators/fde/tests/test_Caputo.py index 45a0c7064..342e63aeb 100644 --- a/brainpy/version2/integrators/fde/tests/test_Caputo.py +++ b/brainpy/version2/integrators/fde/tests/test_Caputo.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import numpy as np diff --git a/brainpy/version2/integrators/fde/tests/test_GL.py b/brainpy/version2/integrators/fde/tests/test_GL.py index 9ba6d9f3a..239b7402a 100644 --- a/brainpy/version2/integrators/fde/tests/test_GL.py +++ b/brainpy/version2/integrators/fde/tests/test_GL.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import matplotlib.pyplot as plt diff --git a/brainpy/version2/integrators/joint_eq.py b/brainpy/version2/integrators/joint_eq.py index 7e479655e..d454a9b95 100644 --- a/brainpy/version2/integrators/joint_eq.py +++ b/brainpy/version2/integrators/joint_eq.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import inspect from brainpy._errors import DiffEqError diff --git a/brainpy/version2/integrators/ode/__init__.py b/brainpy/version2/integrators/ode/__init__.py index da4c5cef2..977e90332 100644 --- a/brainpy/version2/integrators/ode/__init__.py +++ b/brainpy/version2/integrators/ode/__init__.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ Numerical methods for ordinary differential equations (ODEs). """ diff --git a/brainpy/version2/integrators/ode/adaptive_rk.py b/brainpy/version2/integrators/ode/adaptive_rk.py index c291283c6..73f72e19d 100644 --- a/brainpy/version2/integrators/ode/adaptive_rk.py +++ b/brainpy/version2/integrators/ode/adaptive_rk.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== r"""This module provides adaptive Runge-Kutta methods for ODEs. Adaptive methods are designed to produce an estimate of the local truncation diff --git a/brainpy/version2/integrators/ode/base.py b/brainpy/version2/integrators/ode/base.py index 79f357a6b..adea5ca9e 100644 --- a/brainpy/version2/integrators/ode/base.py +++ b/brainpy/version2/integrators/ode/base.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Dict, Callable, Union from brainpy.version2 import math as bm diff --git a/brainpy/version2/integrators/ode/common.py b/brainpy/version2/integrators/ode/common.py index 449f23b32..dd12a4ed1 100644 --- a/brainpy/version2/integrators/ode/common.py +++ b/brainpy/version2/integrators/ode/common.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== def step(vars, dt_var, A, C, code_lines, other_args): # steps for si, sval in enumerate(A): diff --git a/brainpy/version2/integrators/ode/explicit_rk.py b/brainpy/version2/integrators/ode/explicit_rk.py index 7f8f4d9bc..bba7562e6 100644 --- a/brainpy/version2/integrators/ode/explicit_rk.py +++ b/brainpy/version2/integrators/ode/explicit_rk.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== r"""This module provides explicit Runge-Kutta methods for ODEs. Given an initial value problem specified as: diff --git a/brainpy/version2/integrators/ode/exponential.py b/brainpy/version2/integrators/ode/exponential.py index 825a31360..4c8f14094 100644 --- a/brainpy/version2/integrators/ode/exponential.py +++ b/brainpy/version2/integrators/ode/exponential.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== r"""This module provides exponential integrators for ODEs. Exponential integrators are a large class of methods from numerical analysis is based on diff --git a/brainpy/version2/integrators/ode/generic.py b/brainpy/version2/integrators/ode/generic.py index 7c9d66784..92620d620 100644 --- a/brainpy/version2/integrators/ode/generic.py +++ b/brainpy/version2/integrators/ode/generic.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Dict from brainpy.version2.math.delayvars import AbstractDelay, NeuTimeDelay diff --git a/brainpy/version2/integrators/ode/tests/test_delay_ode.py b/brainpy/version2/integrators/ode/tests/test_delay_ode.py index 4e50eace7..df9f2aae8 100644 --- a/brainpy/version2/integrators/ode/tests/test_delay_ode.py +++ b/brainpy/version2/integrators/ode/tests/test_delay_ode.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax.numpy as jnp from absl.testing import parameterized diff --git a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_adaptive_rk.py b/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_adaptive_rk.py index 5ab2acb75..4a563c5e3 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_adaptive_rk.py +++ b/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_adaptive_rk.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import pytest diff --git a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_exp_euler.py b/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_exp_euler.py index e3421a6b2..ef460d86c 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_exp_euler.py +++ b/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_exp_euler.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import numpy as np diff --git a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_general_rk.py b/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_general_rk.py index 9e78be288..a44e88f4c 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_general_rk.py +++ b/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_general_rk.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import pytest diff --git a/brainpy/version2/integrators/ode/tests/test_ode_method_adaptive_rk.py b/brainpy/version2/integrators/ode/tests/test_ode_method_adaptive_rk.py index ef08e35c8..87a870172 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_method_adaptive_rk.py +++ b/brainpy/version2/integrators/ode/tests/test_ode_method_adaptive_rk.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import matplotlib.pyplot as plt diff --git a/brainpy/version2/integrators/ode/tests/test_ode_method_exp_euler.py b/brainpy/version2/integrators/ode/tests/test_ode_method_exp_euler.py index dbe81eea8..4ffd3b008 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_method_exp_euler.py +++ b/brainpy/version2/integrators/ode/tests/test_ode_method_exp_euler.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import matplotlib.pyplot as plt diff --git a/brainpy/version2/integrators/ode/tests/test_ode_method_rk.py b/brainpy/version2/integrators/ode/tests/test_ode_method_rk.py index 5061f6d2b..1be483ccd 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_method_rk.py +++ b/brainpy/version2/integrators/ode/tests/test_ode_method_rk.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import jax diff --git a/brainpy/version2/integrators/pde/__init__.py b/brainpy/version2/integrators/pde/__init__.py index 40a96afc6..54fe87367 100644 --- a/brainpy/version2/integrators/pde/__init__.py +++ b/brainpy/version2/integrators/pde/__init__.py @@ -1 +1,15 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== \ No newline at end of file diff --git a/brainpy/version2/integrators/pde/base.py b/brainpy/version2/integrators/pde/base.py index 72ae4c602..ff2795c6c 100644 --- a/brainpy/version2/integrators/pde/base.py +++ b/brainpy/version2/integrators/pde/base.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from ..base import Integrator diff --git a/brainpy/version2/integrators/runner.py b/brainpy/version2/integrators/runner.py index 22da22a86..eb68494e8 100644 --- a/brainpy/version2/integrators/runner.py +++ b/brainpy/version2/integrators/runner.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import time import warnings from functools import partial diff --git a/brainpy/version2/integrators/sde/__init__.py b/brainpy/version2/integrators/sde/__init__.py index 98c9f7600..6f76a47da 100644 --- a/brainpy/version2/integrators/sde/__init__.py +++ b/brainpy/version2/integrators/sde/__init__.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ Numerical methods for stochastic differential equations. """ diff --git a/brainpy/version2/integrators/sde/base.py b/brainpy/version2/integrators/sde/base.py index 91de93626..f510f8648 100644 --- a/brainpy/version2/integrators/sde/base.py +++ b/brainpy/version2/integrators/sde/base.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Dict, Callable import jax.numpy as jnp diff --git a/brainpy/version2/integrators/sde/generic.py b/brainpy/version2/integrators/sde/generic.py index 6a45d123e..a813e50ae 100644 --- a/brainpy/version2/integrators/sde/generic.py +++ b/brainpy/version2/integrators/sde/generic.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Dict, Union import brainpy.version2.math as bm diff --git a/brainpy/version2/integrators/sde/normal.py b/brainpy/version2/integrators/sde/normal.py index 81add4ff8..88f43e306 100644 --- a/brainpy/version2/integrators/sde/normal.py +++ b/brainpy/version2/integrators/sde/normal.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable, Dict, Sequence import jax.numpy as jnp diff --git a/brainpy/version2/integrators/sde/srk_scalar.py b/brainpy/version2/integrators/sde/srk_scalar.py index 254637be6..e712cf5f6 100644 --- a/brainpy/version2/integrators/sde/srk_scalar.py +++ b/brainpy/version2/integrators/sde/srk_scalar.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from brainpy.version2.integrators import constants, utils from brainpy.version2.integrators.sde.base import SDEIntegrator from .generic import register_sde_integrator diff --git a/brainpy/version2/integrators/sde/srk_strong.py b/brainpy/version2/integrators/sde/srk_strong.py index 125fd8947..c08f47b1c 100644 --- a/brainpy/version2/integrators/sde/srk_strong.py +++ b/brainpy/version2/integrators/sde/srk_strong.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from brainpy.version2 import math from brainpy.version2.integrators import constants, utils diff --git a/brainpy/version2/integrators/sde/tests/test_normal.py b/brainpy/version2/integrators/sde/tests/test_normal.py index 5727d598a..fe621e8ee 100644 --- a/brainpy/version2/integrators/sde/tests/test_normal.py +++ b/brainpy/version2/integrators/sde/tests/test_normal.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import matplotlib.pyplot as plt diff --git a/brainpy/version2/integrators/sde/tests/test_sde_scalar.py b/brainpy/version2/integrators/sde/tests/test_sde_scalar.py index 1b54198c8..5ac9a3700 100644 --- a/brainpy/version2/integrators/sde/tests/test_sde_scalar.py +++ b/brainpy/version2/integrators/sde/tests/test_sde_scalar.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import matplotlib.pyplot as plt diff --git a/brainpy/version2/integrators/tests/test_integ_runner.py b/brainpy/version2/integrators/tests/test_integ_runner.py index 4292ad9dc..01e435712 100644 --- a/brainpy/version2/integrators/tests/test_integ_runner.py +++ b/brainpy/version2/integrators/tests/test_integ_runner.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from unittest import TestCase import matplotlib.pyplot as plt diff --git a/brainpy/version2/integrators/tests/test_joint_eq.py b/brainpy/version2/integrators/tests/test_joint_eq.py index 189f5ea23..9dee48327 100644 --- a/brainpy/version2/integrators/tests/test_joint_eq.py +++ b/brainpy/version2/integrators/tests/test_joint_eq.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2.math as bm diff --git a/brainpy/version2/integrators/utils.py b/brainpy/version2/integrators/utils.py index 2720c7e84..d61845cdd 100644 --- a/brainpy/version2/integrators/utils.py +++ b/brainpy/version2/integrators/utils.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import inspect from pprint import pprint diff --git a/brainpy/version2/layers.py b/brainpy/version2/layers.py index 9f2776043..490a066b2 100644 --- a/brainpy/version2/layers.py +++ b/brainpy/version2/layers.py @@ -1,5 +1,17 @@ - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dnn`` module instead. """ diff --git a/brainpy/version2/losses/__init__.py b/brainpy/version2/losses/__init__.py index 0266acc4b..01eca0a11 100644 --- a/brainpy/version2/losses/__init__.py +++ b/brainpy/version2/losses/__init__.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module implements several loss functions. """ diff --git a/brainpy/version2/losses/base.py b/brainpy/version2/losses/base.py index e1ea3900b..50b5fe866 100644 --- a/brainpy/version2/losses/base.py +++ b/brainpy/version2/losses/base.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Optional from brainpy.version2.dnn.base import Layer diff --git a/brainpy/version2/losses/comparison.py b/brainpy/version2/losses/comparison.py index 980daa8fa..9dc91e8aa 100644 --- a/brainpy/version2/losses/comparison.py +++ b/brainpy/version2/losses/comparison.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module implements several loss functions. """ diff --git a/brainpy/version2/losses/regularization.py b/brainpy/version2/losses/regularization.py index 8f340a03d..3dfb36ca5 100644 --- a/brainpy/version2/losses/regularization.py +++ b/brainpy/version2/losses/regularization.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax.numpy as jnp from jax.tree_util import tree_flatten, tree_map diff --git a/brainpy/version2/losses/utils.py b/brainpy/version2/losses/utils.py index 52ad14bc5..68bf471a0 100644 --- a/brainpy/version2/losses/utils.py +++ b/brainpy/version2/losses/utils.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax from jax.tree_util import tree_flatten diff --git a/brainpy/version2/math/__init__.py b/brainpy/version2/math/__init__.py index ffb16fe00..0c9925891 100644 --- a/brainpy/version2/math/__init__.py +++ b/brainpy/version2/math/__init__.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ The ``math`` module for whole BrainPy ecosystem. This module provides basic mathematical operations, including: diff --git a/brainpy/version2/math/_utils.py b/brainpy/version2/math/_utils.py index 932e22d05..d4e0474e6 100644 --- a/brainpy/version2/math/_utils.py +++ b/brainpy/version2/math/_utils.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import functools from typing import Callable diff --git a/brainpy/version2/math/activations.py b/brainpy/version2/math/activations.py index 0efbba4b2..431cf8db5 100644 --- a/brainpy/version2/math/activations.py +++ b/brainpy/version2/math/activations.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== r"""This module provides commonly used activation functions. Activation functions are a critical part of the design of a neural network. diff --git a/brainpy/version2/math/compat_numpy.py b/brainpy/version2/math/compat_numpy.py index 535ca698d..9b142f577 100644 --- a/brainpy/version2/math/compat_numpy.py +++ b/brainpy/version2/math/compat_numpy.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax import numpy as np import jax.numpy as jnp diff --git a/brainpy/version2/math/compat_pytorch.py b/brainpy/version2/math/compat_pytorch.py index 1175ebdae..4a8e8f768 100644 --- a/brainpy/version2/math/compat_pytorch.py +++ b/brainpy/version2/math/compat_pytorch.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Optional, Sequence import jax diff --git a/brainpy/version2/math/compat_tensorflow.py b/brainpy/version2/math/compat_tensorflow.py index 87a2970c8..b72c2ea77 100644 --- a/brainpy/version2/math/compat_tensorflow.py +++ b/brainpy/version2/math/compat_tensorflow.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Optional import jax.numpy as jnp diff --git a/brainpy/version2/math/datatypes.py b/brainpy/version2/math/datatypes.py index efa6004f6..390d50d70 100644 --- a/brainpy/version2/math/datatypes.py +++ b/brainpy/version2/math/datatypes.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax.numpy as jnp __all__ = [ diff --git a/brainpy/version2/math/defaults.py b/brainpy/version2/math/defaults.py index dfb1ae37a..7be5fdbd2 100644 --- a/brainpy/version2/math/defaults.py +++ b/brainpy/version2/math/defaults.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import brainstate import jax.numpy as jnp from jax import config diff --git a/brainpy/version2/math/delayvars.py b/brainpy/version2/math/delayvars.py index fc1d023b6..99b50dac0 100644 --- a/brainpy/version2/math/delayvars.py +++ b/brainpy/version2/math/delayvars.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import numbers from typing import Union, Callable diff --git a/brainpy/version2/math/einops.py b/brainpy/version2/math/einops.py index 0d803ab09..4293ffe2b 100644 --- a/brainpy/version2/math/einops.py +++ b/brainpy/version2/math/einops.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import functools import itertools from collections import OrderedDict diff --git a/brainpy/version2/math/einops_parsing.py b/brainpy/version2/math/einops_parsing.py index 20a358f81..e96df97fb 100644 --- a/brainpy/version2/math/einops_parsing.py +++ b/brainpy/version2/math/einops_parsing.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import keyword import warnings from typing import List, Optional, Set, Tuple, Union diff --git a/brainpy/version2/math/environment.py b/brainpy/version2/math/environment.py index fa9f57605..5f63167aa 100644 --- a/brainpy/version2/math/environment.py +++ b/brainpy/version2/math/environment.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import functools import gc import inspect diff --git a/brainpy/version2/math/event/__init__.py b/brainpy/version2/math/event/__init__.py index 6b1d7e1c1..525f15ff9 100644 --- a/brainpy/version2/math/event/__init__.py +++ b/brainpy/version2/math/event/__init__.py @@ -1,2 +1,16 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .csr_matmat import * from .csr_matvec import * diff --git a/brainpy/version2/math/event/csr_matmat.py b/brainpy/version2/math/event/csr_matmat.py index 981ebb8fe..f25c5c824 100644 --- a/brainpy/version2/math/event/csr_matmat.py +++ b/brainpy/version2/math/event/csr_matmat.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Tuple import brainevent diff --git a/brainpy/version2/math/event/csr_matvec.py b/brainpy/version2/math/event/csr_matvec.py index aadb536ef..168eba708 100644 --- a/brainpy/version2/math/event/csr_matvec.py +++ b/brainpy/version2/math/event/csr_matvec.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ Key points for the operator customization: diff --git a/brainpy/version2/math/fft.py b/brainpy/version2/math/fft.py index 2f02b596e..e6eea9ab7 100644 --- a/brainpy/version2/math/fft.py +++ b/brainpy/version2/math/fft.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax.numpy.fft as jfft from ._utils import _compatible_with_brainpy_array diff --git a/brainpy/version2/math/interoperability.py b/brainpy/version2/math/interoperability.py index c54f5ea66..7748d27e2 100644 --- a/brainpy/version2/math/interoperability.py +++ b/brainpy/version2/math/interoperability.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax.numpy as jnp import numpy as np diff --git a/brainpy/version2/math/jitconn/__init__.py b/brainpy/version2/math/jitconn/__init__.py index f9e42ea26..3a844c384 100644 --- a/brainpy/version2/math/jitconn/__init__.py +++ b/brainpy/version2/math/jitconn/__init__.py @@ -1,2 +1,16 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .event_matvec import * from .matvec import * diff --git a/brainpy/version2/math/jitconn/event_matvec.py b/brainpy/version2/math/jitconn/event_matvec.py index 1b51f8146..fde945341 100644 --- a/brainpy/version2/math/jitconn/event_matvec.py +++ b/brainpy/version2/math/jitconn/event_matvec.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Tuple, Optional import brainevent diff --git a/brainpy/version2/math/jitconn/matvec.py b/brainpy/version2/math/jitconn/matvec.py index 65513a862..aed2b5ef7 100644 --- a/brainpy/version2/math/jitconn/matvec.py +++ b/brainpy/version2/math/jitconn/matvec.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Tuple, Optional, Union import brainevent diff --git a/brainpy/version2/math/linalg.py b/brainpy/version2/math/linalg.py index 7257bb1b4..75e6fbadd 100644 --- a/brainpy/version2/math/linalg.py +++ b/brainpy/version2/math/linalg.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from jax.numpy import linalg from ._utils import _compatible_with_brainpy_array diff --git a/brainpy/version2/math/modes.py b/brainpy/version2/math/modes.py index 118af788a..0f6cd971d 100644 --- a/brainpy/version2/math/modes.py +++ b/brainpy/version2/math/modes.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import brainstate __all__ = [ diff --git a/brainpy/version2/math/ndarray.py b/brainpy/version2/math/ndarray.py index bcceda278..574dcecf9 100644 --- a/brainpy/version2/math/ndarray.py +++ b/brainpy/version2/math/ndarray.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Any import brainunit as u diff --git a/brainpy/version2/math/object_transform/__init__.py b/brainpy/version2/math/object_transform/__init__.py index 3e509cb99..471285ce4 100644 --- a/brainpy/version2/math/object_transform/__init__.py +++ b/brainpy/version2/math/object_transform/__init__.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ The ``brainpy_object`` module for whole BrainPy ecosystem. diff --git a/brainpy/version2/math/object_transform/_utils.py b/brainpy/version2/math/object_transform/_utils.py index 17b8b6818..11473a80b 100644 --- a/brainpy/version2/math/object_transform/_utils.py +++ b/brainpy/version2/math/object_transform/_utils.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from functools import wraps from typing import Dict diff --git a/brainpy/version2/math/object_transform/autograd.py b/brainpy/version2/math/object_transform/autograd.py index 0c01834aa..2def5bae5 100644 --- a/brainpy/version2/math/object_transform/autograd.py +++ b/brainpy/version2/math/object_transform/autograd.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Callable, Dict, Sequence, Optional import brainstate.transform diff --git a/brainpy/version2/math/object_transform/base.py b/brainpy/version2/math/object_transform/base.py index 1b08c91bf..abf6e37eb 100644 --- a/brainpy/version2/math/object_transform/base.py +++ b/brainpy/version2/math/object_transform/base.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This file defines the basic classes for BrainPy object-oriented transformations. These transformations include JAX's JIT, autograd, vectorization, parallelization, etc. diff --git a/brainpy/version2/math/object_transform/collectors.py b/brainpy/version2/math/object_transform/collectors.py index 868fec2da..81c494b04 100644 --- a/brainpy/version2/math/object_transform/collectors.py +++ b/brainpy/version2/math/object_transform/collectors.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Sequence, Dict, Union from brainstate._compatible_import import safe_zip diff --git a/brainpy/version2/math/object_transform/controls.py b/brainpy/version2/math/object_transform/controls.py index 55d128b76..30d98fd2f 100644 --- a/brainpy/version2/math/object_transform/controls.py +++ b/brainpy/version2/math/object_transform/controls.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import numbers from typing import Union, Sequence, Any, Dict, Callable, Optional diff --git a/brainpy/version2/math/object_transform/function.py b/brainpy/version2/math/object_transform/function.py index 7838da6c5..0cf28e602 100644 --- a/brainpy/version2/math/object_transform/function.py +++ b/brainpy/version2/math/object_transform/function.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import warnings from typing import Union, Sequence, Dict, Callable diff --git a/brainpy/version2/math/object_transform/jit.py b/brainpy/version2/math/object_transform/jit.py index 6dbda0997..a88f623d1 100644 --- a/brainpy/version2/math/object_transform/jit.py +++ b/brainpy/version2/math/object_transform/jit.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ The JIT compilation tools for JAX backend. diff --git a/brainpy/version2/math/object_transform/naming.py b/brainpy/version2/math/object_transform/naming.py index 839cbbfe5..3e86bbb3d 100644 --- a/brainpy/version2/math/object_transform/naming.py +++ b/brainpy/version2/math/object_transform/naming.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import warnings from brainpy import _errors as errors diff --git a/brainpy/version2/math/object_transform/tests/test_autograd.py b/brainpy/version2/math/object_transform/tests/test_autograd.py index 678afc3a7..365c83314 100644 --- a/brainpy/version2/math/object_transform/tests/test_autograd.py +++ b/brainpy/version2/math/object_transform/tests/test_autograd.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest from pprint import pprint diff --git a/brainpy/version2/math/object_transform/tests/test_base.py b/brainpy/version2/math/object_transform/tests/test_base.py index 88e94cd83..f2fd06d72 100644 --- a/brainpy/version2/math/object_transform/tests/test_base.py +++ b/brainpy/version2/math/object_transform/tests/test_base.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import jax.tree_util diff --git a/brainpy/version2/math/object_transform/tests/test_circular_reference.py b/brainpy/version2/math/object_transform/tests/test_circular_reference.py index 369143302..962f2e563 100644 --- a/brainpy/version2/math/object_transform/tests/test_circular_reference.py +++ b/brainpy/version2/math/object_transform/tests/test_circular_reference.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from pprint import pprint import brainpy.version2 as bp diff --git a/brainpy/version2/math/object_transform/tests/test_collector.py b/brainpy/version2/math/object_transform/tests/test_collector.py index 28ff4ccbf..f7438fcd6 100644 --- a/brainpy/version2/math/object_transform/tests/test_collector.py +++ b/brainpy/version2/math/object_transform/tests/test_collector.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from pprint import pprint import jax.numpy as jnp diff --git a/brainpy/version2/math/object_transform/tests/test_controls.py b/brainpy/version2/math/object_transform/tests/test_controls.py index 3497e7b5b..7ae8707be 100644 --- a/brainpy/version2/math/object_transform/tests/test_controls.py +++ b/brainpy/version2/math/object_transform/tests/test_controls.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest from functools import partial diff --git a/brainpy/version2/math/object_transform/tests/test_jit.py b/brainpy/version2/math/object_transform/tests/test_jit.py index 8c13f33b5..a30f3ec6d 100644 --- a/brainpy/version2/math/object_transform/tests/test_jit.py +++ b/brainpy/version2/math/object_transform/tests/test_jit.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import jax diff --git a/brainpy/version2/math/object_transform/tests/test_namechecking.py b/brainpy/version2/math/object_transform/tests/test_namechecking.py index 296fed1a1..91eb5b0db 100644 --- a/brainpy/version2/math/object_transform/tests/test_namechecking.py +++ b/brainpy/version2/math/object_transform/tests/test_namechecking.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import brainpy.version2 as bp diff --git a/brainpy/version2/math/object_transform/tests/test_variable.py b/brainpy/version2/math/object_transform/tests/test_variable.py index d6473777e..a9ea5ef49 100644 --- a/brainpy/version2/math/object_transform/tests/test_variable.py +++ b/brainpy/version2/math/object_transform/tests/test_variable.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import pytest diff --git a/brainpy/version2/math/object_transform/variables.py b/brainpy/version2/math/object_transform/variables.py index df8eff730..fdf61aa01 100644 --- a/brainpy/version2/math/object_transform/variables.py +++ b/brainpy/version2/math/object_transform/variables.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Optional, Any, Sequence import jax diff --git a/brainpy/version2/math/others.py b/brainpy/version2/math/others.py index c2fecb610..641b2a4bb 100644 --- a/brainpy/version2/math/others.py +++ b/brainpy/version2/math/others.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Optional, Union import jax diff --git a/brainpy/version2/math/pre_syn_post.py b/brainpy/version2/math/pre_syn_post.py index c847b9e42..65f4922e3 100644 --- a/brainpy/version2/math/pre_syn_post.py +++ b/brainpy/version2/math/pre_syn_post.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax.numpy as jnp from jax import vmap, jit, ops as jops diff --git a/brainpy/version2/math/remove_vmap.py b/brainpy/version2/math/remove_vmap.py index adc34c420..7f04db857 100644 --- a/brainpy/version2/math/remove_vmap.py +++ b/brainpy/version2/math/remove_vmap.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax import jax.numpy as jnp diff --git a/brainpy/version2/math/scales.py b/brainpy/version2/math/scales.py index 406c080ba..d9dcf2753 100644 --- a/brainpy/version2/math/scales.py +++ b/brainpy/version2/math/scales.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Sequence, Union __all__ = [ diff --git a/brainpy/version2/math/sharding.py b/brainpy/version2/math/sharding.py index e8934c8fe..9ad26743a 100644 --- a/brainpy/version2/math/sharding.py +++ b/brainpy/version2/math/sharding.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from contextlib import contextmanager from functools import partial from typing import Optional, Any, Union, Sequence diff --git a/brainpy/version2/math/sparse/__init__.py b/brainpy/version2/math/sparse/__init__.py index 68439c742..e2c561028 100644 --- a/brainpy/version2/math/sparse/__init__.py +++ b/brainpy/version2/math/sparse/__init__.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== # from ._coo_mv import * from .csr_mm import * from .csr_mv import * diff --git a/brainpy/version2/math/sparse/coo_mv.py b/brainpy/version2/math/sparse/coo_mv.py index 43e7383c8..f1056a7da 100644 --- a/brainpy/version2/math/sparse/coo_mv.py +++ b/brainpy/version2/math/sparse/coo_mv.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Tuple import brainevent diff --git a/brainpy/version2/math/sparse/csr_mm.py b/brainpy/version2/math/sparse/csr_mm.py index 0da93fa53..5e939104d 100644 --- a/brainpy/version2/math/sparse/csr_mm.py +++ b/brainpy/version2/math/sparse/csr_mm.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Tuple import brainevent diff --git a/brainpy/version2/math/sparse/csr_mv.py b/brainpy/version2/math/sparse/csr_mv.py index e205927dc..5d8913273 100644 --- a/brainpy/version2/math/sparse/csr_mv.py +++ b/brainpy/version2/math/sparse/csr_mv.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Tuple import brainevent diff --git a/brainpy/version2/math/sparse/jax_prim.py b/brainpy/version2/math/sparse/jax_prim.py index e3ca0fba6..d7d50df84 100644 --- a/brainpy/version2/math/sparse/jax_prim.py +++ b/brainpy/version2/math/sparse/jax_prim.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Dict import jax.numpy as jnp diff --git a/brainpy/version2/math/sparse/utils.py b/brainpy/version2/math/sparse/utils.py index 761516d39..e88243650 100644 --- a/brainpy/version2/math/sparse/utils.py +++ b/brainpy/version2/math/sparse/utils.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import warnings from functools import partial from typing import Tuple diff --git a/brainpy/version2/math/surrogate/__init__.py b/brainpy/version2/math/surrogate/__init__.py index f88816d70..30b51d4d0 100644 --- a/brainpy/version2/math/surrogate/__init__.py +++ b/brainpy/version2/math/surrogate/__init__.py @@ -1,5 +1,17 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from ._one_input_new import * from ._two_inputs import * diff --git a/brainpy/version2/math/surrogate/_one_input.py b/brainpy/version2/math/surrogate/_one_input.py index 57355bba4..5784555f1 100644 --- a/brainpy/version2/math/surrogate/_one_input.py +++ b/brainpy/version2/math/surrogate/_one_input.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import functools from typing import Union diff --git a/brainpy/version2/math/surrogate/_one_input_new.py b/brainpy/version2/math/surrogate/_one_input_new.py index 68a84deb0..1ce64497f 100644 --- a/brainpy/version2/math/surrogate/_one_input_new.py +++ b/brainpy/version2/math/surrogate/_one_input_new.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union import jax diff --git a/brainpy/version2/math/surrogate/_two_inputs.py b/brainpy/version2/math/surrogate/_two_inputs.py index 533c2eb3e..a3ec31f8a 100644 --- a/brainpy/version2/math/surrogate/_two_inputs.py +++ b/brainpy/version2/math/surrogate/_two_inputs.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union import jax diff --git a/brainpy/version2/math/surrogate/_utils.py b/brainpy/version2/math/surrogate/_utils.py index 1f0053658..b5b5e01aa 100644 --- a/brainpy/version2/math/surrogate/_utils.py +++ b/brainpy/version2/math/surrogate/_utils.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import inspect import itertools from functools import partial diff --git a/brainpy/version2/math/surrogate/tests/test_one_input.py b/brainpy/version2/math/surrogate/tests/test_one_input.py index bfd3142f3..fcf63f94d 100644 --- a/brainpy/version2/math/surrogate/tests/test_one_input.py +++ b/brainpy/version2/math/surrogate/tests/test_one_input.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax from absl.testing import parameterized diff --git a/brainpy/version2/math/surrogate/tests/test_two_inputs.py b/brainpy/version2/math/surrogate/tests/test_two_inputs.py index d2c53fef3..4085d0000 100644 --- a/brainpy/version2/math/surrogate/tests/test_two_inputs.py +++ b/brainpy/version2/math/surrogate/tests/test_two_inputs.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax from absl.testing import parameterized diff --git a/brainpy/version2/math/tests/test_array_format.py b/brainpy/version2/math/tests/test_array_format.py index 54aaba0d5..3131551ca 100644 --- a/brainpy/version2/math/tests/test_array_format.py +++ b/brainpy/version2/math/tests/test_array_format.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import brainpy.version2.math as bm diff --git a/brainpy/version2/math/tests/test_compat_pytorch.py b/brainpy/version2/math/tests/test_compat_pytorch.py index e21dd0e7c..78814fe8c 100644 --- a/brainpy/version2/math/tests/test_compat_pytorch.py +++ b/brainpy/version2/math/tests/test_compat_pytorch.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2.math.compat_pytorch as torch diff --git a/brainpy/version2/math/tests/test_defaults.py b/brainpy/version2/math/tests/test_defaults.py index 6ce120db9..97a991ab0 100644 --- a/brainpy/version2/math/tests/test_defaults.py +++ b/brainpy/version2/math/tests/test_defaults.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2.math as bm diff --git a/brainpy/version2/math/tests/test_delay_vars.py b/brainpy/version2/math/tests/test_delay_vars.py index b5d4fa0f9..dc32cdf66 100644 --- a/brainpy/version2/math/tests/test_delay_vars.py +++ b/brainpy/version2/math/tests/test_delay_vars.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import jax.numpy as jnp diff --git a/brainpy/version2/math/tests/test_einops.py b/brainpy/version2/math/tests/test_einops.py index 0f160d6bd..84dc46439 100644 --- a/brainpy/version2/math/tests/test_einops.py +++ b/brainpy/version2/math/tests/test_einops.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import numpy import pytest diff --git a/brainpy/version2/math/tests/test_einops_parsing.py b/brainpy/version2/math/tests/test_einops_parsing.py index c79ebe22e..1c2a7261a 100644 --- a/brainpy/version2/math/tests/test_einops_parsing.py +++ b/brainpy/version2/math/tests/test_einops_parsing.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import pytest from brainpy.version2.math.einops_parsing import EinopsError, ParsedExpression, AnonymousAxis, _ellipsis diff --git a/brainpy/version2/math/tests/test_environment.py b/brainpy/version2/math/tests/test_environment.py index 2555a8946..dfec27b16 100644 --- a/brainpy/version2/math/tests/test_environment.py +++ b/brainpy/version2/math/tests/test_environment.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import jax diff --git a/brainpy/version2/math/tests/test_ndarray.py b/brainpy/version2/math/tests/test_ndarray.py index 7f729a0ba..9857ac070 100644 --- a/brainpy/version2/math/tests/test_ndarray.py +++ b/brainpy/version2/math/tests/test_ndarray.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import jax diff --git a/brainpy/version2/math/tests/test_oprators.py b/brainpy/version2/math/tests/test_oprators.py index d6b341824..cb3dc39a4 100644 --- a/brainpy/version2/math/tests/test_oprators.py +++ b/brainpy/version2/math/tests/test_oprators.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import jax.numpy as jnp diff --git a/brainpy/version2/math/tests/test_others.py b/brainpy/version2/math/tests/test_others.py index 72628a403..b13668b5e 100644 --- a/brainpy/version2/math/tests/test_others.py +++ b/brainpy/version2/math/tests/test_others.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from unittest import TestCase from scipy.special import exprel diff --git a/brainpy/version2/math/tests/test_random.py b/brainpy/version2/math/tests/test_random.py index a2577e186..7cc267b15 100644 --- a/brainpy/version2/math/tests/test_random.py +++ b/brainpy/version2/math/tests/test_random.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import platform import unittest diff --git a/brainpy/version2/math/tests/test_tifunc.py b/brainpy/version2/math/tests/test_tifunc.py index 43327fc07..3ab99e6e9 100644 --- a/brainpy/version2/math/tests/test_tifunc.py +++ b/brainpy/version2/math/tests/test_tifunc.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax import jax.numpy as jnp import pytest diff --git a/brainpy/version2/measure/__init__.py b/brainpy/version2/measure/__init__.py index 168d92fb5..3aa00c9cc 100644 --- a/brainpy/version2/measure/__init__.py +++ b/brainpy/version2/measure/__init__.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module aims to provide commonly used analysis methods for simulated neuronal data. You can access them through ``brainpy.version2.measure.XXX``. diff --git a/brainpy/version2/measure/correlation.py b/brainpy/version2/measure/correlation.py index 9eb93225e..27f6fb1c1 100644 --- a/brainpy/version2/measure/correlation.py +++ b/brainpy/version2/measure/correlation.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import braintools __all__ = [ diff --git a/brainpy/version2/measure/firings.py b/brainpy/version2/measure/firings.py index 8a89d04bd..38ebaeda6 100644 --- a/brainpy/version2/measure/firings.py +++ b/brainpy/version2/measure/firings.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax.numpy as jnp import numpy as onp diff --git a/brainpy/version2/measure/lfp.py b/brainpy/version2/measure/lfp.py index 518f2d247..fbdab7409 100644 --- a/brainpy/version2/measure/lfp.py +++ b/brainpy/version2/measure/lfp.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import braintools.metric __all__ = [ diff --git a/brainpy/version2/measure/tests/test_correlation.py b/brainpy/version2/measure/tests/test_correlation.py index 29d722a0b..25919f0ed 100644 --- a/brainpy/version2/measure/tests/test_correlation.py +++ b/brainpy/version2/measure/tests/test_correlation.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest from functools import partial diff --git a/brainpy/version2/measure/tests/test_firings.py b/brainpy/version2/measure/tests/test_firings.py index 1eb24ece3..470bd71f7 100644 --- a/brainpy/version2/measure/tests/test_firings.py +++ b/brainpy/version2/measure/tests/test_firings.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2 as bp diff --git a/brainpy/version2/mixin.py b/brainpy/version2/mixin.py index 43fbdaeef..79d0a0d07 100644 --- a/brainpy/version2/mixin.py +++ b/brainpy/version2/mixin.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import numbers import warnings from dataclasses import dataclass diff --git a/brainpy/version2/modes.py b/brainpy/version2/modes.py index 1c1d71012..66cd9540f 100644 --- a/brainpy/version2/modes.py +++ b/brainpy/version2/modes.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module is deprecated since version 2.3.1. Please use ``brainpy.version2.math.*`` instead. diff --git a/brainpy/version2/neurons.py b/brainpy/version2/neurons.py index cf0e096a0..3318c3fe6 100644 --- a/brainpy/version2/neurons.py +++ b/brainpy/version2/neurons.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dyn`` module instead. """ diff --git a/brainpy/version2/optim/__init__.py b/brainpy/version2/optim/__init__.py index ed3b22c6b..7f86a7896 100644 --- a/brainpy/version2/optim/__init__.py +++ b/brainpy/version2/optim/__init__.py @@ -1,4 +1,17 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .optimizer import * from .scheduler import * diff --git a/brainpy/version2/optim/optimizer.py b/brainpy/version2/optim/optimizer.py index 61460807e..265cffe1e 100644 --- a/brainpy/version2/optim/optimizer.py +++ b/brainpy/version2/optim/optimizer.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import warnings from typing import Union, Sequence, Dict, Optional, Tuple diff --git a/brainpy/version2/optim/scheduler.py b/brainpy/version2/optim/scheduler.py index 2d548182f..a3875b06a 100644 --- a/brainpy/version2/optim/scheduler.py +++ b/brainpy/version2/optim/scheduler.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import warnings from typing import Sequence, Union diff --git a/brainpy/version2/optim/tests/test_ModifyLr.py b/brainpy/version2/optim/tests/test_ModifyLr.py index 8efa39975..5228581d0 100644 --- a/brainpy/version2/optim/tests/test_ModifyLr.py +++ b/brainpy/version2/optim/tests/test_ModifyLr.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from absl.testing import absltest from absl.testing import parameterized diff --git a/brainpy/version2/optim/tests/test_scheduler.py b/brainpy/version2/optim/tests/test_scheduler.py index 9836a6a43..7092b0f21 100644 --- a/brainpy/version2/optim/tests/test_scheduler.py +++ b/brainpy/version2/optim/tests/test_scheduler.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import jax.numpy diff --git a/brainpy/version2/rates.py b/brainpy/version2/rates.py index 19a447dfd..98d233961 100644 --- a/brainpy/version2/rates.py +++ b/brainpy/version2/rates.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dyn`` module instead. """ diff --git a/brainpy/version2/runners.py b/brainpy/version2/runners.py index 0e7283278..9a99ccdcc 100644 --- a/brainpy/version2/runners.py +++ b/brainpy/version2/runners.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import inspect import time import warnings diff --git a/brainpy/version2/running/__init__.py b/brainpy/version2/running/__init__.py index e68271758..8f2c6247a 100644 --- a/brainpy/version2/running/__init__.py +++ b/brainpy/version2/running/__init__.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module provides APIs for parallel brain simulations. """ diff --git a/brainpy/version2/running/constants.py b/brainpy/version2/running/constants.py index 8ce71fc71..75c27ce7e 100644 --- a/brainpy/version2/running/constants.py +++ b/brainpy/version2/running/constants.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== __all__ = [ 'TRAIN_PHASE', 'FIT_PHASE', 'TEST_PHASE', diff --git a/brainpy/version2/running/jax_multiprocessing.py b/brainpy/version2/running/jax_multiprocessing.py index f1ff374a5..f85e19dca 100644 --- a/brainpy/version2/running/jax_multiprocessing.py +++ b/brainpy/version2/running/jax_multiprocessing.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Sequence, Dict, Union import numpy as np diff --git a/brainpy/version2/running/native_multiprocessing.py b/brainpy/version2/running/native_multiprocessing.py index ebff9c498..403a31b21 100644 --- a/brainpy/version2/running/native_multiprocessing.py +++ b/brainpy/version2/running/native_multiprocessing.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import multiprocessing from typing import Union, Sequence, Dict diff --git a/brainpy/version2/running/pathos_multiprocessing.py b/brainpy/version2/running/pathos_multiprocessing.py index a2a47751e..e34cd1dfe 100644 --- a/brainpy/version2/running/pathos_multiprocessing.py +++ b/brainpy/version2/running/pathos_multiprocessing.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """The parallel execution of a BrainPy func on multiple CPU cores. Specifically, these batch running functions include: diff --git a/brainpy/version2/running/runner.py b/brainpy/version2/running/runner.py index f49d868d5..ac5a4a485 100644 --- a/brainpy/version2/running/runner.py +++ b/brainpy/version2/running/runner.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import types import warnings from typing import Callable, Dict, Sequence, Union diff --git a/brainpy/version2/running/tests/test_pathos_multiprocessing.py b/brainpy/version2/running/tests/test_pathos_multiprocessing.py index 378e2066b..998c47007 100644 --- a/brainpy/version2/running/tests/test_pathos_multiprocessing.py +++ b/brainpy/version2/running/tests/test_pathos_multiprocessing.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import sys import jax diff --git a/brainpy/version2/synapses.py b/brainpy/version2/synapses.py index b633dbe05..57e76e496 100644 --- a/brainpy/version2/synapses.py +++ b/brainpy/version2/synapses.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dyn`` module instead. """ diff --git a/brainpy/version2/synouts.py b/brainpy/version2/synouts.py index da7da59b2..5ba976fb0 100644 --- a/brainpy/version2/synouts.py +++ b/brainpy/version2/synouts.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dyn`` module instead. """ diff --git a/brainpy/version2/synplast.py b/brainpy/version2/synplast.py index 5bc4ae8f7..9218c5ed4 100644 --- a/brainpy/version2/synplast.py +++ b/brainpy/version2/synplast.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dyn`` module instead. """ diff --git a/brainpy/version2/tests/test_access_methods.py b/brainpy/version2/tests/test_access_methods.py index 83794647e..9b0729b0d 100644 --- a/brainpy/version2/tests/test_access_methods.py +++ b/brainpy/version2/tests/test_access_methods.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax.numpy as jnp import brainpy.version2 as bp diff --git a/brainpy/version2/tests/test_base_classes.py b/brainpy/version2/tests/test_base_classes.py index 44db8f869..ca3ef4dc4 100644 --- a/brainpy/version2/tests/test_base_classes.py +++ b/brainpy/version2/tests/test_base_classes.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2 as bp diff --git a/brainpy/version2/tests/test_check.py b/brainpy/version2/tests/test_check.py index ed4b99929..9ed8e2be6 100644 --- a/brainpy/version2/tests/test_check.py +++ b/brainpy/version2/tests/test_check.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest from brainpy.version2 import check as checking diff --git a/brainpy/version2/tests/test_delay.py b/brainpy/version2/tests/test_delay.py index 3d7082f8f..9e518eb0d 100644 --- a/brainpy/version2/tests/test_delay.py +++ b/brainpy/version2/tests/test_delay.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import jax.numpy as jnp diff --git a/brainpy/version2/tests/test_dyn_runner.py b/brainpy/version2/tests/test_dyn_runner.py index 90256a370..f727a7183 100644 --- a/brainpy/version2/tests/test_dyn_runner.py +++ b/brainpy/version2/tests/test_dyn_runner.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2 as bp diff --git a/brainpy/version2/tests/test_dynsys.py b/brainpy/version2/tests/test_dynsys.py index 262abc930..1313cf1b8 100644 --- a/brainpy/version2/tests/test_dynsys.py +++ b/brainpy/version2/tests/test_dynsys.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2 as bp diff --git a/brainpy/version2/tests/test_helper.py b/brainpy/version2/tests/test_helper.py index 731a0b5f2..9fa0c87e0 100644 --- a/brainpy/version2/tests/test_helper.py +++ b/brainpy/version2/tests/test_helper.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2 as bp diff --git a/brainpy/version2/tests/test_mixin.py b/brainpy/version2/tests/test_mixin.py index dc0e1d6fa..f51d29401 100644 --- a/brainpy/version2/tests/test_mixin.py +++ b/brainpy/version2/tests/test_mixin.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2 as bp diff --git a/brainpy/version2/tests/test_network.py b/brainpy/version2/tests/test_network.py index e57dd0ca2..4ad7779e3 100644 --- a/brainpy/version2/tests/test_network.py +++ b/brainpy/version2/tests/test_network.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2 as bp diff --git a/brainpy/version2/tests/test_pickle.py b/brainpy/version2/tests/test_pickle.py index 720f6746c..25d851e4c 100644 --- a/brainpy/version2/tests/test_pickle.py +++ b/brainpy/version2/tests/test_pickle.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import pickle import unittest diff --git a/brainpy/version2/tests/test_slice_view.py b/brainpy/version2/tests/test_slice_view.py index 4cfdc96a6..31b318083 100644 --- a/brainpy/version2/tests/test_slice_view.py +++ b/brainpy/version2/tests/test_slice_view.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2 as bp diff --git a/brainpy/version2/tools/__init__.py b/brainpy/version2/tools/__init__.py index aa7833407..6e54716d8 100644 --- a/brainpy/version2/tools/__init__.py +++ b/brainpy/version2/tools/__init__.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from .codes import * from .dicts import * from .functions import * diff --git a/brainpy/version2/tools/codes.py b/brainpy/version2/tools/codes.py index 36e973afb..a673c199d 100644 --- a/brainpy/version2/tools/codes.py +++ b/brainpy/version2/tools/codes.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import inspect import re from types import LambdaType diff --git a/brainpy/version2/tools/dicts.py b/brainpy/version2/tools/dicts.py index 4a349ebfe..33465c162 100644 --- a/brainpy/version2/tools/dicts.py +++ b/brainpy/version2/tools/dicts.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Union, Dict, Sequence import numpy as np diff --git a/brainpy/version2/tools/functions.py b/brainpy/version2/tools/functions.py index 378f2515e..c96dd5e9d 100644 --- a/brainpy/version2/tools/functions.py +++ b/brainpy/version2/tools/functions.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import inspect from functools import partial from operator import attrgetter diff --git a/brainpy/version2/tools/install.py b/brainpy/version2/tools/install.py index 18ca41863..cc23323fa 100644 --- a/brainpy/version2/tools/install.py +++ b/brainpy/version2/tools/install.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== __all__ = [ 'jaxlib_install_info', ] diff --git a/brainpy/version2/tools/math_util.py b/brainpy/version2/tools/math_util.py index 7aab09350..bd03cc3ba 100644 --- a/brainpy/version2/tools/math_util.py +++ b/brainpy/version2/tools/math_util.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import numpy as np __all__ = [ diff --git a/brainpy/version2/tools/others.py b/brainpy/version2/tools/others.py index 1c465462f..013b81769 100644 --- a/brainpy/version2/tools/others.py +++ b/brainpy/version2/tools/others.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import _thread as thread import collections.abc import threading diff --git a/brainpy/version2/tools/package.py b/brainpy/version2/tools/package.py index e793b0646..db3d90dfa 100644 --- a/brainpy/version2/tools/package.py +++ b/brainpy/version2/tools/package.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import numpy as np try: diff --git a/brainpy/version2/tools/progress.py b/brainpy/version2/tools/progress.py index c216c5515..865fab9ed 100644 --- a/brainpy/version2/tools/progress.py +++ b/brainpy/version2/tools/progress.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """Python utilities required by Keras.""" import binascii diff --git a/brainpy/version2/tools/tests/test_functions.py b/brainpy/version2/tools/tests/test_functions.py index 0a4f7fd94..ec85ff6c6 100644 --- a/brainpy/version2/tools/tests/test_functions.py +++ b/brainpy/version2/tools/tests/test_functions.py @@ -1,3 +1,17 @@ +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import unittest import brainpy.version2 as bp diff --git a/brainpy/version2/train/__init__.py b/brainpy/version2/train/__init__.py index 1d0bdb276..e3f76d5ff 100644 --- a/brainpy/version2/train/__init__.py +++ b/brainpy/version2/train/__init__.py @@ -1,6 +1,18 @@ # -*- coding: utf-8 -*- - - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== """ This module provides various running and training algorithms for various neural networks. diff --git a/brainpy/version2/train/_utils.py b/brainpy/version2/train/_utils.py index d7e6e526e..5bc347a78 100644 --- a/brainpy/version2/train/_utils.py +++ b/brainpy/version2/train/_utils.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import jax.numpy as jnp import brainpy.version2.math as bm diff --git a/brainpy/version2/train/back_propagation.py b/brainpy/version2/train/back_propagation.py index 43d632111..ba34dada5 100644 --- a/brainpy/version2/train/back_propagation.py +++ b/brainpy/version2/train/back_propagation.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import time from collections.abc import Iterable from typing import Union, Dict, Callable, Sequence, Optional diff --git a/brainpy/version2/train/base.py b/brainpy/version2/train/base.py index 2f85dc75b..7dcf0fcc8 100644 --- a/brainpy/version2/train/base.py +++ b/brainpy/version2/train/base.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Dict, Sequence, Any, Optional import brainpy.version2.math as bm diff --git a/brainpy/version2/train/offline.py b/brainpy/version2/train/offline.py index ac6649f09..b60f8c22e 100644 --- a/brainpy/version2/train/offline.py +++ b/brainpy/version2/train/offline.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== from typing import Dict, Sequence, Union, Callable, Any import jax diff --git a/brainpy/version2/train/online.py b/brainpy/version2/train/online.py index ca43693df..be939c89d 100644 --- a/brainpy/version2/train/online.py +++ b/brainpy/version2/train/online.py @@ -1,4 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import functools from typing import Dict, Sequence, Union, Callable diff --git a/brainpy/version2/transform.py b/brainpy/version2/transform.py index d84ad241d..5a4f14ea7 100644 --- a/brainpy/version2/transform.py +++ b/brainpy/version2/transform.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import functools from typing import Union, Optional, Dict, Sequence diff --git a/brainpy/version2/types.py b/brainpy/version2/types.py index bd33d77e9..99cd3e822 100644 --- a/brainpy/version2/types.py +++ b/brainpy/version2/types.py @@ -1,5 +1,18 @@ # -*- coding: utf-8 -*- - +# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== import numbers from typing import TypeVar, Tuple, Union, Callable, Sequence From 193076b56cd0bb146b07e228e08e7835c368f31f Mon Sep 17 00:00:00 2001 From: oujago Date: Mon, 6 Oct 2025 15:53:01 +0800 Subject: [PATCH 05/18] refactor(docs): reorganize delay handling and update related classes in documentation --- brainpy/version2/__init__.py | 1 - brainpy/version2/_delay.py | 315 ------------------ brainpy/version2/dynsys.py | 94 +++++- .../{measure/firings.py => measure.py} | 20 +- brainpy/version2/measure/__init__.py | 25 -- brainpy/version2/measure/correlation.py | 31 -- brainpy/version2/measure/lfp.py | 22 -- .../measure/tests/test_correlation.py | 112 ------- .../version2/measure/tests/test_firings.py | 36 -- brainpy/version2/mixin.py | 100 ------ brainpy/version2/modes.py | 36 -- 11 files changed, 111 insertions(+), 681 deletions(-) delete mode 100644 brainpy/version2/_delay.py rename brainpy/version2/{measure/firings.py => measure.py} (80%) delete mode 100644 brainpy/version2/measure/__init__.py delete mode 100644 brainpy/version2/measure/correlation.py delete mode 100644 brainpy/version2/measure/lfp.py delete mode 100644 brainpy/version2/measure/tests/test_correlation.py delete mode 100644 brainpy/version2/measure/tests/test_firings.py delete mode 100644 brainpy/version2/modes.py diff --git a/brainpy/version2/__init__.py b/brainpy/version2/__init__.py index af21ccb82..b4a98d2b0 100644 --- a/brainpy/version2/__init__.py +++ b/brainpy/version2/__init__.py @@ -130,7 +130,6 @@ synouts, # synaptic output synplast, # synaptic plasticity ) -from brainpy.version2 import modes from brainpy.version2.math.object_transform.base import ( Base as Base, ) diff --git a/brainpy/version2/_delay.py b/brainpy/version2/_delay.py deleted file mode 100644 index 14ceebdca..000000000 --- a/brainpy/version2/_delay.py +++ /dev/null @@ -1,315 +0,0 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================== -""" -Delay variable. -""" - -from typing import Union, Callable, Optional, Dict - -import jax -import jax.numpy as jnp -import numpy as np -from jax.lax import stop_gradient - -from brainpy.version2 import check -from brainpy.version2 import math as bm -from brainpy.version2.context import share -from brainpy.version2.dynsys import DynamicalSystem -from brainpy.version2.math.delayvars import ROTATE_UPDATE, CONCAT_UPDATE - -__all__ = [ - 'Delay', -] - - -class Delay(DynamicalSystem): - """Delay variable which has a fixed delay length. - - The data in this delay variable is arranged as:: - - delay = 0 [ data - delay = 1 data - delay = 2 data - ... .... - ... .... - delay = length-1 data - delay = length data ] - - Parameters:: - - latest: Variable - The initial delay data. - length: int - The delay data length. - before_t0: Any - The delay data. It can be a Python number, like float, int, boolean values. - It can also be arrays. Or a callable function or instance of ``Connector``. - Note that ``initial_delay_data`` should be arranged as the following way:: - - delay = 1 [ data - delay = 2 data - ... .... - ... .... - delay = length-1 data - delay = length data ] - method: str - The method used for updating delay. - - """ - - latest: bm.Variable - data: Optional[bm.Variable] - length: int - - def __init__( - self, - latest: bm.Variable, - length: int = 0, - before_t0: Optional[Union[float, int, bool, bm.Array, jax.Array, Callable]] = None, - entries: Optional[Dict] = None, - name: Optional[str] = None, - method: str = ROTATE_UPDATE, - mode: Optional[bm.Mode] = None, - ): - super().__init__(name=name, mode=mode) - if method is None: - if self.mode.is_a(bm.NonBatchingMode): - method = ROTATE_UPDATE - elif self.mode.is_a(bm.TrainingMode): - method = CONCAT_UPDATE - else: - method = ROTATE_UPDATE - assert method in [ROTATE_UPDATE, CONCAT_UPDATE] - self.method = method - - # target - if not isinstance(latest, bm.Variable): - raise ValueError(f'Must be an instance of brainpy.version2.math.Variable. But we got {type(latest)}') - self.latest = latest - - # delay length - assert isinstance(length, int) - self.length = length - - # delay data - if before_t0 is not None: - assert isinstance(before_t0, (int, float, bool, bm.Array, jax.Array, Callable)) - self._before_t0 = before_t0 - if length > 0: - self._init_data(length) - else: - self.data = None - - # other info - self._access_to_step = dict() - for entry, value in entries.items(): - self.register_entry(entry, value) - - def register_entry( - self, - entry: str, - delay_time: Optional[Union[float, bm.Array, Callable]] = None, - delay_step: Optional[Union[int, bm.Array, Callable]] = None, - ) -> 'Delay': - """Register an entry to access the data. - - Args: - entry (str): The entry to access the delay data. - delay_step: The delay step of the entry (must be an integer, denoting the delay step). - delay_time: The delay time of the entry (can be a float). - - Returns: - Return the self. - """ - if entry in self._access_to_step: - raise KeyError(f'Entry {entry} has been registered.') - - if delay_time is not None: - if delay_step is not None: - raise ValueError('Provide either "delay_time" or "delay_step". Both you have given both.') - if callable(delay_time): - delay_time = bm.as_jax(delay_time(self.delay_target_shape)) - delay_step = jnp.asarray(delay_time / bm.get_dt(), dtype=bm.get_int()) - elif isinstance(delay_time, float): - delay_step = int(delay_time / bm.get_dt()) - else: - delay_step = jnp.asarray(bm.as_jax(delay_time) / bm.get_dt(), dtype=bm.get_int()) - - # delay steps - if delay_step is None: - delay_type = 'none' - elif isinstance(delay_step, int): - delay_type = 'homo' - elif isinstance(delay_step, (bm.Array, jax.Array, np.ndarray)): - if delay_step.size == 1 and delay_step.ndim == 0: - delay_type = 'homo' - else: - delay_type = 'heter' - delay_step = delay_step - elif callable(delay_step): - delay_step = delay_step(self.delay_target_shape) - delay_type = 'heter' - else: - raise ValueError(f'Unknown "delay_steps" type {type(delay_step)}, only support ' - f'integer, array of integers, callable function, brainpy.version2.init.Initializer.') - if delay_type == 'heter': - if delay_step.dtype not in [jnp.int32, jnp.int64]: - raise ValueError('Only support delay steps of int32, int64. If your ' - 'provide delay time length, please divide the "dt" ' - 'then provide us the number of delay steps.') - if self.delay_target_shape[0] != delay_step.shape[0]: - raise ValueError(f'Shape is mismatched: {self.delay_target_shape[0]} != {delay_step.shape[0]}') - if delay_type == 'heter': - max_delay_step = int(max(delay_step)) - elif delay_type == 'homo': - max_delay_step = delay_step - else: - max_delay_step = None - - # delay variable - if max_delay_step is not None: - if self.length < max_delay_step: - self._init_data(max_delay_step) - self.length = max_delay_step - self._access_to_step[entry] = delay_step - return self - - def at(self, entry: str, *indices) -> bm.Array: - """Get the data at the given entry. - - Args: - entry (str): The entry to access the data. - *indices: - - Returns: - The data. - """ - assert isinstance(entry, str) - if entry not in self._access_to_step: - raise KeyError(f'Does not find delay entry "{entry}".') - delay_step = self._access_to_step[entry] - if delay_step is None: - return self.latest.value - else: - if self.data is None: - return self.latest.value - else: - if isinstance(delay_step, slice): - return self.retrieve(delay_step, *indices) - elif np.ndim(delay_step) == 0: - return self.retrieve(delay_step, *indices) - else: - if len(indices) == 0 and len(delay_step) == self.latest.shape[0]: - indices = (jnp.arange(delay_step.size),) - return self.retrieve(delay_step, *indices) - - @property - def delay_target_shape(self): - """The data shape of the delay target.""" - return self.latest.shape - - def __repr__(self): - name = self.__class__.__name__ - return (f'{name}(num_delay_step={self.length}, ' - f'delay_target_shape={self.delay_target_shape}, ' - f'update_method={self.method})') - - def _check_delay(self, delay_len): - raise ValueError(f'The request delay length should be less than the ' - f'maximum delay {self.length}. ' - f'But we got {delay_len}') - - def retrieve(self, delay_step, *indices): - """Retrieve the delay data according to the delay length. - - Parameters:: - - delay_step: int, ArrayType - The delay length used to retrieve the data. - """ - assert delay_step is not None - if check.is_checking(): - check.jit_error(jnp.any(delay_step > self.length), self._check_delay, delay_step) - - if self.method == ROTATE_UPDATE: - i = share.load('i') - delay_idx = (i + delay_step) % (self.length + 1) - delay_idx = stop_gradient(delay_idx) - - elif self.method == CONCAT_UPDATE: - delay_idx = delay_step - - else: - raise ValueError(f'Unknown updating method "{self.method}"') - - # the delay index - if hasattr(delay_idx, 'dtype') and not jnp.issubdtype(delay_idx.dtype, jnp.integer): - raise ValueError(f'"delay_len" must be integer, but we got {delay_idx}') - indices = (delay_idx,) + tuple(indices) - - # the delay data - return self.data[indices] - - def update( - self, - latest_value: Optional[Union[bm.Array, jax.Array]] = None - ) -> None: - """Update delay variable with the new data. - """ - if self.data is not None: - # get the latest target value - if latest_value is None: - latest_value = self.latest.value - - # update the delay data at the rotation index - if self.method == ROTATE_UPDATE: - i = share.load('i') - idx = bm.as_jax((i - 1) % (self.length + 1)) - self.data[idx] = latest_value - - # update the delay data at the first position - elif self.method == CONCAT_UPDATE: - if self.length >= 2: - self.data.value = bm.vstack([latest_value, self.data[1:]]) - else: - self.data[0] = latest_value - - def reset_state(self, batch_size: int = None): - """Reset the delay data. - """ - # initialize delay data - if self.data is not None: - self._init_data(self.length, batch_size) - - def _init_data(self, length, batch_size: int = None): - if batch_size is not None: - if self.latest.batch_size != batch_size: - raise ValueError(f'The batch sizes of delay variable and target variable differ ' - f'({self.latest.batch_size} != {batch_size}). ' - 'Please reset the target variable first, because delay data ' - 'depends on the target variable. ') - - if self.latest.batch_axis is None: - batch_axis = None - else: - batch_axis = self.latest.batch_axis + 1 - self.data = bm.Variable(jnp.zeros((length + 1,) + self.latest.shape, dtype=self.latest.dtype), - batch_axis=batch_axis) - # update delay data - self.data[0] = self.latest.value - if isinstance(self._before_t0, (bm.Array, jax.Array, float, int, bool)): - self.data[1:] = self._before_t0 - elif callable(self._before_t0): - self.data[1:] = self._before_t0((length,) + self.latest.shape, dtype=self.latest.dtype) diff --git a/brainpy/version2/dynsys.py b/brainpy/version2/dynsys.py index da87c228d..3bbf24c9d 100644 --- a/brainpy/version2/dynsys.py +++ b/brainpy/version2/dynsys.py @@ -19,6 +19,7 @@ import warnings from typing import Union, Dict, Callable, Sequence, Optional, Any +import jax import numpy as np from brainpy._errors import NoImplementationError, UnsupportedError @@ -26,7 +27,8 @@ from brainpy.version2.context import share from brainpy.version2.deprecations import _update_deprecate_msg from brainpy.version2.initialize import parameter, variable_ -from brainpy.version2.mixin import SupportAutoDelay, Container, SupportInputProj, DelayRegister, _get_delay_tool +from brainpy.version2.math.object_transform.naming import get_unique_name +from brainpy.version2.mixin import SupportAutoDelay, Container, SupportInputProj, _get_delay_tool, MixIn from brainpy.version2.types import ArrayType, Shape __all__ = [ @@ -47,6 +49,96 @@ reset_state = None +class DelayRegister(MixIn): + + def register_delay( + self, + identifier: str, + delay_step: Optional[Union[int, ArrayType, Callable]], + delay_target: bm.Variable, + initial_delay_data: Union[Callable, ArrayType, numbers.Number] = None, + ): + """Register delay variable. + + Args: + identifier: str. The delay access name. + delay_target: The target variable for delay. + delay_step: The delay time step. + initial_delay_data: The initializer for the delay data. + + Returns: + delay_pos: The position of the delay. + """ + _delay_identifier, _init_delay_by_return = _get_delay_tool() + assert isinstance(self, DynamicalSystem), f'self must be an instance of {DynamicalSystem.__name__}' + _delay_identifier = _delay_identifier + identifier + if not self.has_aft_update(_delay_identifier): + self.add_aft_update(_delay_identifier, _init_delay_by_return(delay_target, initial_delay_data)) + delay_cls = self.get_aft_update(_delay_identifier) + name = get_unique_name('delay') + delay_cls.register_entry(name, delay_step) + return name + + def get_delay_data( + self, + identifier: str, + delay_pos: str, + *indices: Union[int, slice, bm.Array, jax.Array], + ): + """Get delay data according to the provided delay steps. + + Parameters:: + + identifier: str + The delay variable name. + delay_pos: str + The delay length. + indices: optional, int, slice, ArrayType + The indices of the delay. + + Returns:: + + delay_data: ArrayType + The delay data at the given time. + """ + _delay_identifier, _init_delay_by_return = _get_delay_tool() + _delay_identifier = _delay_identifier + identifier + delay_cls = self.get_aft_update(_delay_identifier) + return delay_cls.at(delay_pos, *indices) + + def update_local_delays(self, nodes: Union[Sequence, Dict] = None): + """Update local delay variables. + + This function should be called after updating neuron groups or delay sources. + For example, in a network model, + + + Parameters:: + + nodes: sequence, dict + The nodes to update their delay variables. + """ + warnings.warn('.update_local_delays() has been removed since brainpy>=2.4.6', + DeprecationWarning) + + def reset_local_delays(self, nodes: Union[Sequence, Dict] = None): + """Reset local delay variables. + + Parameters:: + + nodes: sequence, dict + The nodes to Reset their delay variables. + """ + warnings.warn('.reset_local_delays() has been removed since brainpy>=2.4.6', + DeprecationWarning) + + def get_delay_var(self, name): + _delay_identifier, _init_delay_by_return = _get_delay_tool() + _delay_identifier = _delay_identifier + name + delay_cls = self.get_aft_update(_delay_identifier) + return delay_cls + + def not_implemented(fun): def new_fun(*args, **kwargs): return fun(*args, **kwargs) diff --git a/brainpy/version2/measure/firings.py b/brainpy/version2/measure.py similarity index 80% rename from brainpy/version2/measure/firings.py rename to brainpy/version2/measure.py index 38ebaeda6..0c879f446 100644 --- a/brainpy/version2/measure/firings.py +++ b/brainpy/version2/measure.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,14 +12,23 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== + + +import braintools import jax.numpy as jnp import numpy as onp from brainpy.version2 import math as bm __all__ = [ + 'cross_correlation', + 'voltage_fluctuation', + 'matrix_correlation', + 'weighted_correlation', + 'functional_connectivity', 'raster_plot', 'firing_rate', + 'unitary_LFP', ] @@ -83,3 +91,11 @@ def firing_rate(spikes, width, dt=None, numpy=True): width1 = int(width / 2 / dt) * 2 + 1 window = np.ones(width1) * 1000 / width return np.convolve(np.mean(spikes, axis=1), window, mode='same') + + +cross_correlation = braintools.metric.cross_correlation +voltage_fluctuation = braintools.metric.voltage_fluctuation +matrix_correlation = braintools.metric.matrix_correlation +functional_connectivity = braintools.metric.functional_connectivity +weighted_correlation = braintools.metric.weighted_correlation +unitary_LFP = braintools.metric.unitary_LFP diff --git a/brainpy/version2/measure/__init__.py b/brainpy/version2/measure/__init__.py deleted file mode 100644 index 3aa00c9cc..000000000 --- a/brainpy/version2/measure/__init__.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================== -""" -This module aims to provide commonly used analysis methods for simulated neuronal data. -You can access them through ``brainpy.version2.measure.XXX``. -""" - -from . import correlation, firings, lfp - -from .correlation import * -from .firings import * -from .lfp import * diff --git a/brainpy/version2/measure/correlation.py b/brainpy/version2/measure/correlation.py deleted file mode 100644 index 27f6fb1c1..000000000 --- a/brainpy/version2/measure/correlation.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================== -import braintools - -__all__ = [ - 'cross_correlation', - 'voltage_fluctuation', - 'matrix_correlation', - 'weighted_correlation', - 'functional_connectivity', - # 'functional_connectivity_dynamics', -] - -cross_correlation = braintools.metric.cross_correlation -voltage_fluctuation = braintools.metric.voltage_fluctuation -matrix_correlation = braintools.metric.matrix_correlation -functional_connectivity = braintools.metric.functional_connectivity -weighted_correlation = braintools.metric.weighted_correlation diff --git a/brainpy/version2/measure/lfp.py b/brainpy/version2/measure/lfp.py deleted file mode 100644 index fbdab7409..000000000 --- a/brainpy/version2/measure/lfp.py +++ /dev/null @@ -1,22 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================== -import braintools.metric - -__all__ = [ - 'unitary_LFP', -] - -unitary_LFP = braintools.metric.unitary_LFP diff --git a/brainpy/version2/measure/tests/test_correlation.py b/brainpy/version2/measure/tests/test_correlation.py deleted file mode 100644 index 25919f0ed..000000000 --- a/brainpy/version2/measure/tests/test_correlation.py +++ /dev/null @@ -1,112 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================== -import unittest -from functools import partial - -from jax import jit - -import brainpy.version2 as bp -import brainpy.version2.math as bm - -bm.set_platform('cpu') - - -class TestCrossCorrelation(unittest.TestCase): - def test_c(self): - bm.random.seed() - spikes = bm.asarray([[1, 0, 1, 0, 1, 0, 1, 0, 0], [1, 1, 1, 1, 1, 1, 1, 0, 0]]).T - cc1 = bp.measure.cross_correlation(spikes, 1., dt=1.) - f_cc = jit(partial(bp.measure.cross_correlation, bin=1, dt=1.)) - cc2 = f_cc(spikes) - print(cc1, cc2) - self.assertTrue(cc1 == cc2) - - def test_cc(self): - bm.random.seed() - spikes = bm.ones((1000, 10)) - cc1 = bp.measure.cross_correlation(spikes, 1.) - self.assertTrue(cc1 == 1.) - - spikes = bm.zeros((1000, 10)) - cc2 = bp.measure.cross_correlation(spikes, 1.) - self.assertTrue(cc2 == 0.) - - def test_cc2(self): - bm.random.seed() - spikes = bm.random.randint(0, 2, (1000, 10)) - print(bp.measure.cross_correlation(spikes, 1.)) - print(bp.measure.cross_correlation(spikes, 0.5)) - - def test_cc3(self): - bm.random.seed() - spikes = bm.random.random((1000, 100)) < 0.8 - print(bp.measure.cross_correlation(spikes, 1.)) - print(bp.measure.cross_correlation(spikes, 0.5)) - - def test_cc4(self): - bm.random.seed() - spikes = bm.random.random((1000, 100)) < 0.2 - print(bp.measure.cross_correlation(spikes, 1.)) - print(bp.measure.cross_correlation(spikes, 0.5)) - - def test_cc5(self): - bm.random.seed() - spikes = bm.random.random((1000, 100)) < 0.05 - print(bp.measure.cross_correlation(spikes, 1.)) - print(bp.measure.cross_correlation(spikes, 0.5)) - - -class TestVoltageFluctuation(unittest.TestCase): - def test_vf1(self): - bm.random.seed() - voltages = bm.random.normal(0, 10, size=(100, 10)) - print(bp.measure.voltage_fluctuation(voltages)) - - bm.enable_x64() - voltages = bm.ones((100, 10)) - r1 = bp.measure.voltage_fluctuation(voltages) - - jit_f = jit(partial(bp.measure.voltage_fluctuation)) - jit_f = jit(lambda a: bp.measure.voltage_fluctuation(a)) - r2 = jit_f(voltages) - print(r1, r2) # TODO: JIT results are different? - # self.assertTrue(r1 == r2) - - bm.disable_x64() - - -class TestFunctionalConnectivity(unittest.TestCase): - def test_cf1(self): - bm.random.seed() - act = bm.random.random((10000, 3)) - r1 = bp.measure.functional_connectivity(act) - - jit_f = jit(partial(bp.measure.functional_connectivity)) - r2 = jit_f(act) - - self.assertTrue(bm.allclose(r1, r2)) - - -class TestMatrixCorrelation(unittest.TestCase): - def test_mc(self): - bm.random.seed() - A = bm.random.random((100, 100)) - B = bm.random.random((100, 100)) - r1 = (bp.measure.matrix_correlation(A, B)) - - jit_f = jit(bp.measure.matrix_correlation) - r2 = jit_f(A, B) - self.assertTrue(bm.allclose(r1, r2)) diff --git a/brainpy/version2/measure/tests/test_firings.py b/brainpy/version2/measure/tests/test_firings.py deleted file mode 100644 index 470bd71f7..000000000 --- a/brainpy/version2/measure/tests/test_firings.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================== -import unittest - -import brainpy.version2 as bp - - -class TestFiringRate(unittest.TestCase): - def test_fr1(self): - spikes = bp.math.ones((1000, 10)) - print(bp.measure.firing_rate(spikes, 1.)) - - def test_fr2(self): - bp.math.random.seed() - spikes = bp.math.random.random((1000, 10)) < 0.2 - print(bp.measure.firing_rate(spikes, 1.)) - print(bp.measure.firing_rate(spikes, 10.)) - - def test_fr3(self): - bp.math.random.seed() - spikes = bp.math.random.random((1000, 10)) < 0.02 - print(bp.measure.firing_rate(spikes, 1.)) - print(bp.measure.firing_rate(spikes, 5.)) diff --git a/brainpy/version2/mixin.py b/brainpy/version2/mixin.py index 79d0a0d07..dc4868994 100644 --- a/brainpy/version2/mixin.py +++ b/brainpy/version2/mixin.py @@ -13,7 +13,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -import numbers import warnings from dataclasses import dataclass from typing import Union, Dict, Callable, Sequence, Optional, Any @@ -25,14 +24,12 @@ from brainpy.version2.math.object_transform.naming import get_unique_name from brainpy.version2.types import ArrayType -DynamicalSystem = None delay_identifier, init_delay_by_return = None, None __all__ = [ 'MixIn', 'ParamDesc', 'ParamDescriber', - 'DelayRegister', 'AlignPost', 'Container', 'TreeNode', @@ -60,12 +57,6 @@ def _get_delay_tool(): return delay_identifier, init_delay_by_return -def _get_dynsys(): - global DynamicalSystem - if DynamicalSystem is None: from brainpy.version2.dynsys import DynamicalSystem - return DynamicalSystem - - @dataclass class ReturnInfo: size: Sequence[int] @@ -205,97 +196,6 @@ def check_hierarchy(self, root, leaf): f'of {leaf.master_type}, but the master now is {root}.') -class DelayRegister(MixIn): - - def register_delay( - self, - identifier: str, - delay_step: Optional[Union[int, ArrayType, Callable]], - delay_target: bm.Variable, - initial_delay_data: Union[Callable, ArrayType, numbers.Number] = None, - ): - """Register delay variable. - - Args: - identifier: str. The delay access name. - delay_target: The target variable for delay. - delay_step: The delay time step. - initial_delay_data: The initializer for the delay data. - - Returns: - delay_pos: The position of the delay. - """ - _delay_identifier, _init_delay_by_return = _get_delay_tool() - DynamicalSystem = _get_dynsys() - assert isinstance(self, DynamicalSystem), f'self must be an instance of {DynamicalSystem.__name__}' - _delay_identifier = _delay_identifier + identifier - if not self.has_aft_update(_delay_identifier): - self.add_aft_update(_delay_identifier, _init_delay_by_return(delay_target, initial_delay_data)) - delay_cls = self.get_aft_update(_delay_identifier) - name = get_unique_name('delay') - delay_cls.register_entry(name, delay_step) - return name - - def get_delay_data( - self, - identifier: str, - delay_pos: str, - *indices: Union[int, slice, bm.Array, jax.Array], - ): - """Get delay data according to the provided delay steps. - - Parameters:: - - identifier: str - The delay variable name. - delay_pos: str - The delay length. - indices: optional, int, slice, ArrayType - The indices of the delay. - - Returns:: - - delay_data: ArrayType - The delay data at the given time. - """ - _delay_identifier, _init_delay_by_return = _get_delay_tool() - _delay_identifier = _delay_identifier + identifier - delay_cls = self.get_aft_update(_delay_identifier) - return delay_cls.at(delay_pos, *indices) - - def update_local_delays(self, nodes: Union[Sequence, Dict] = None): - """Update local delay variables. - - This function should be called after updating neuron groups or delay sources. - For example, in a network model, - - - Parameters:: - - nodes: sequence, dict - The nodes to update their delay variables. - """ - warnings.warn('.update_local_delays() has been removed since brainpy>=2.4.6', - DeprecationWarning) - - def reset_local_delays(self, nodes: Union[Sequence, Dict] = None): - """Reset local delay variables. - - Parameters:: - - nodes: sequence, dict - The nodes to Reset their delay variables. - """ - warnings.warn('.reset_local_delays() has been removed since brainpy>=2.4.6', - DeprecationWarning) - - def get_delay_var(self, name): - _delay_identifier, _init_delay_by_return = _get_delay_tool() - _delay_identifier = _delay_identifier + name - delay_cls = self.get_aft_update(_delay_identifier) - return delay_cls - - class SupportInputProj(MixIn): """The :py:class:`~.MixIn` that receives the input projections. diff --git a/brainpy/version2/modes.py b/brainpy/version2/modes.py deleted file mode 100644 index 66cd9540f..000000000 --- a/brainpy/version2/modes.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================== -""" -This module is deprecated since version 2.3.1. -Please use ``brainpy.version2.math.*`` instead. -""" - -from brainpy.version2 import check -from brainpy.version2.deprecations import deprecation_getattr2 -from brainpy.version2.math import modes - -__deprecations = { - 'Mode': ('brainpy.version2.modes.Mode', 'brainpy.version2.math.Mode', modes.Mode), - 'NormalMode': ('brainpy.version2.modes.NormalMode', 'brainpy.version2.math.NonBatchingMode', modes.NonBatchingMode), - 'BatchingMode': ('brainpy.version2.modes.BatchingMode', 'brainpy.version2.math.BatchingMode', modes.BatchingMode), - 'TrainingMode': ('brainpy.version2.modes.TrainingMode', 'brainpy.version2.math.TrainingMode', modes.TrainingMode), - 'normal': ('brainpy.version2.modes.normal', 'brainpy.version2.math.nonbatching_mode', modes.nonbatching_mode), - 'batching': ('brainpy.version2.modes.batching', 'brainpy.version2.math.batching_mode', modes.batching_mode), - 'training': ('brainpy.version2.modes.training', 'brainpy.version2.math.training_mode', modes.training_mode), - 'check_mode': ('brainpy.version2.modes.check_mode', 'brainpy.version2.check.is_subclass', check.is_subclass), -} -__getattr__ = deprecation_getattr2('brainpy.version2.modes', __deprecations) -del deprecation_getattr2 From 7aa54fd5eb50c1f6e93935087211eab0e1d89d1e Mon Sep 17 00:00:00 2001 From: oujago Date: Mon, 6 Oct 2025 16:48:28 +0800 Subject: [PATCH 06/18] refactor(docs): reorganize example scripts and add new neuron models --- examples/102_EI_net_1996.py | 107 +++++++ examples/103_COBA_2005.py | 86 ++++++ examples/104_CUBA_2005.py | 84 ++++++ examples/104_CUBA_2005_version2.py | 115 ++++++++ examples/106_COBA_HH_2007.py | 176 +++++++++++ examples/107_gamma_oscillation_1996.py | 156 ++++++++++ examples/108_synfire_chains_199.py | 163 +++++++++++ examples/109_fast_global_oscillation.py | 111 +++++++ ...usin_Destexhe_2021_gamma_oscillation_AI.py | 194 +++++++++++++ ...n_Destexhe_2021_gamma_oscillation_CHING.py | 203 +++++++++++++ ...sin_Destexhe_2021_gamma_oscillation_ING.py | 200 +++++++++++++ ...in_Destexhe_2021_gamma_oscillation_PING.py | 147 ++++++++++ examples/200_surrogate_grad_lif.py | 156 ++++++++++ .../201_surrogate_grad_lif_fashion_mnist.py | 221 ++++++++++++++ examples/202_mnist_lif_readout.py | 176 +++++++++++ .../Susin_Destexhe_2021_gamma_oscillation.py | 273 ++++++++++++++++++ .../dynamics_analysis/1d_qif.py | 0 .../2d_fitzhugh_nagumo_model.py | 0 .../dynamics_analysis/2d_mean_field_QIF.py | 0 .../dynamics_analysis/3d_reduced_trn_model.py | 0 .../dynamics_analysis/4d_HH_model.py | 0 .../dynamics_analysis/highdim_RNN_Analysis.py | 0 .../dynamics_simulation/COBA.py | 0 .../decision_making_network.py | 0 .../dynamics_simulation/ei_nets.py | 0 .../dynamics_simulation/hh_model.py | 0 .../dynamics_simulation/stdp.py | 0 .../whole_brain_simulation_with_fhn.py | 0 ...ole_brain_simulation_with_sl_oscillator.py | 0 .../dynamics_training/Song_2016_EI_RNN.py | 0 .../Sussillo_Abbott_2009_FORCE_Learning.py | 0 .../dynamics_training/echo_state_network.py | 0 .../integrate_brainpy_into_flax-convlstm.py | 0 .../integrate_brainpy_into_flax-lif.py | 0 .../integrate_flax_into_brainpy.py | 0 .../dynamics_training/integrator_rnn.py | 0 .../dynamics_training/reservoir-mnist.py | 0 .../training_ann_models/mnist-cnn.py | 0 .../training_ann_models/mnist_ResNet.py | 0 .../training_snn_models/readme.md | 0 .../spikebased_bp_for_cifar10.py | 0 41 files changed, 2568 insertions(+) create mode 100644 examples/102_EI_net_1996.py create mode 100644 examples/103_COBA_2005.py create mode 100644 examples/104_CUBA_2005.py create mode 100644 examples/104_CUBA_2005_version2.py create mode 100644 examples/106_COBA_HH_2007.py create mode 100644 examples/107_gamma_oscillation_1996.py create mode 100644 examples/108_synfire_chains_199.py create mode 100644 examples/109_fast_global_oscillation.py create mode 100644 examples/110_Susin_Destexhe_2021_gamma_oscillation_AI.py create mode 100644 examples/111_Susin_Destexhe_2021_gamma_oscillation_CHING.py create mode 100644 examples/112_Susin_Destexhe_2021_gamma_oscillation_ING.py create mode 100644 examples/113_Susin_Destexhe_2021_gamma_oscillation_PING.py create mode 100644 examples/200_surrogate_grad_lif.py create mode 100644 examples/201_surrogate_grad_lif_fashion_mnist.py create mode 100644 examples/202_mnist_lif_readout.py create mode 100644 examples/Susin_Destexhe_2021_gamma_oscillation.py rename {examples => examples_version2}/dynamics_analysis/1d_qif.py (100%) rename {examples => examples_version2}/dynamics_analysis/2d_fitzhugh_nagumo_model.py (100%) rename {examples => examples_version2}/dynamics_analysis/2d_mean_field_QIF.py (100%) rename {examples => examples_version2}/dynamics_analysis/3d_reduced_trn_model.py (100%) rename {examples => examples_version2}/dynamics_analysis/4d_HH_model.py (100%) rename {examples => examples_version2}/dynamics_analysis/highdim_RNN_Analysis.py (100%) rename {examples => examples_version2}/dynamics_simulation/COBA.py (100%) rename {examples => examples_version2}/dynamics_simulation/decision_making_network.py (100%) rename {examples => examples_version2}/dynamics_simulation/ei_nets.py (100%) rename {examples => examples_version2}/dynamics_simulation/hh_model.py (100%) rename {examples => examples_version2}/dynamics_simulation/stdp.py (100%) rename {examples => examples_version2}/dynamics_simulation/whole_brain_simulation_with_fhn.py (100%) rename {examples => examples_version2}/dynamics_simulation/whole_brain_simulation_with_sl_oscillator.py (100%) rename {examples => examples_version2}/dynamics_training/Song_2016_EI_RNN.py (100%) rename {examples => examples_version2}/dynamics_training/Sussillo_Abbott_2009_FORCE_Learning.py (100%) rename {examples => examples_version2}/dynamics_training/echo_state_network.py (100%) rename {examples => examples_version2}/dynamics_training/integrate_brainpy_into_flax-convlstm.py (100%) rename {examples => examples_version2}/dynamics_training/integrate_brainpy_into_flax-lif.py (100%) rename {examples => examples_version2}/dynamics_training/integrate_flax_into_brainpy.py (100%) rename {examples => examples_version2}/dynamics_training/integrator_rnn.py (100%) rename {examples => examples_version2}/dynamics_training/reservoir-mnist.py (100%) rename {examples => examples_version2}/training_ann_models/mnist-cnn.py (100%) rename {examples => examples_version2}/training_ann_models/mnist_ResNet.py (100%) rename {examples => examples_version2}/training_snn_models/readme.md (100%) rename {examples => examples_version2}/training_snn_models/spikebased_bp_for_cifar10.py (100%) diff --git a/examples/102_EI_net_1996.py b/examples/102_EI_net_1996.py new file mode 100644 index 000000000..06f4ed912 --- /dev/null +++ b/examples/102_EI_net_1996.py @@ -0,0 +1,107 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + +# +# Implementation of the EI network from Brunel (1996) with the brainstate package. +# +# - Van Vreeswijk, Carl, and Haim Sompolinsky. “Chaos in neuronal networks with balanced +# excitatory and inhibitory activity.” Science 274.5293 (1996): 1724-1726. +# +# Dynamic of membrane potential is given as: +# +# $$ \tau \frac {dV_i}{dt} = -(V_i - V_{rest}) + I_i^{ext} + I_i^{net} (t) $$ +# +# where $I_i^{net}(t)$ represents the synaptic current, which describes the sum of excitatory and inhibitory neurons. +# +# $$ I_i^{net} (t) = J_E \sum_{j=1}^{pN_e} \sum_{t_j^\alpha < t} f(t-t_j^\alpha ) - J_I \sum_{j=1}^{pN_i} \sum_{t_j^\alpha < t} f(t-t_j^\alpha )$$ +# +# where +# +# $$ f(t) = \begin{cases} {\rm exp} (-\frac t {\tau_s} ), \quad t \geq 0 \\ +# 0, \quad t < 0 \end{cases} $$ +# +# Parameters: $J_E = \frac 1 {\sqrt {pN_e}}, J_I = \frac 1 {\sqrt {pN_i}}$ +# + + +import brainunit as u +import matplotlib.pyplot as plt + +import brainpy +import brainstate +import braintools + + +class EINet(brainstate.nn.Module): + def __init__(self, n_exc, n_inh, prob, JE, JI): + super().__init__() + self.n_exc = n_exc + self.n_inh = n_inh + self.num = n_exc + n_inh + + # neurons + self.N = brainpy.LIF( + n_exc + n_inh, + V_rest=-52. * u.mV, V_th=-50. * u.mV, V_reset=-60. * u.mV, tau=10. * u.ms, + V_initializer=braintools.init.Normal(-60., 10., unit=u.mV), spk_reset='soft' + ) + + # synapses + self.E = brainpy.AlignPostProj( + comm=brainstate.nn.EventFixedProb(n_exc, self.num, prob, JE), + syn=brainpy.Expon.desc(self.num, tau=2. * u.ms), + out=brainpy.CUBA.desc(), + post=self.N, + ) + self.I = brainpy.AlignPostProj( + comm=brainstate.nn.EventFixedProb(n_inh, self.num, prob, JI), + syn=brainpy.Expon.desc(self.num, tau=2. * u.ms), + out=brainpy.CUBA.desc(), + post=self.N, + ) + + def update(self, inp): + spks = self.N.get_spike() != 0. + self.E(spks[:self.n_exc]) + self.I(spks[self.n_exc:]) + self.N(inp) + return self.N.get_spike() + + +# connectivity +num_exc = 500 +num_inh = 500 +prob = 0.1 +# external current +Ib = 3. * u.mA +# excitatory and inhibitory synaptic weights +JE = 1 / u.math.sqrt(prob * num_exc) * u.mS +JI = -1 / u.math.sqrt(prob * num_inh) * u.mS + +# network +brainstate.environ.set(dt=0.1 * u.ms) +net = EINet(num_exc, num_inh, prob=prob, JE=JE, JI=JI) +brainstate.nn.init_all_states(net) + +# simulation +times = u.math.arange(0. * u.ms, 1000. * u.ms, brainstate.environ.get_dt()) +spikes = brainstate.transform.for_loop(lambda t: net.update(Ib), times, pbar=brainstate.transform.ProgressBar(10)) + +# visualization +t_indices, n_indices = u.math.where(spikes) +plt.scatter(times[t_indices], n_indices, s=1) +plt.xlabel('Time (ms)') +plt.ylabel('Neuron index') +plt.show() diff --git a/examples/103_COBA_2005.py b/examples/103_COBA_2005.py new file mode 100644 index 000000000..d86f71868 --- /dev/null +++ b/examples/103_COBA_2005.py @@ -0,0 +1,86 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + +# +# Implementation of the paper: +# +# - Brette, R., Rudolph, M., Carnevale, T., Hines, M., Beeman, D., Bower, J. M., et al. (2007), +# Simulation of networks of spiking neurons: a review of tools and strategies., J. Comput. Neurosci., 23, 3, 349–98 +# +# which is based on the balanced network proposed by: +# +# - Vogels, T. P. and Abbott, L. F. (2005), Signal propagation and logic gating in networks of integrate-and-fire neurons., J. Neurosci., 25, 46, 10786–95 +# + + +import brainunit as u +import matplotlib.pyplot as plt + +import brainpy +import brainstate +import braintools + + +class EINet(brainstate.nn.Module): + def __init__(self): + super().__init__() + self.n_exc = 3200 + self.n_inh = 800 + self.num = self.n_exc + self.n_inh + self.N = brainpy.LIFRef( + self.num, V_rest=-60. * u.mV, V_th=-50. * u.mV, V_reset=-60. * u.mV, + tau=20. * u.ms, tau_ref=5. * u.ms, + V_initializer=braintools.init.Normal(-55., 2., unit=u.mV) + ) + self.E = brainpy.AlignPostProj( + comm=brainstate.nn.EventFixedProb(self.n_exc, self.num, conn_num=0.02, conn_weight=0.6 * u.mS), + syn=brainpy.Expon.desc(self.num, tau=5. * u.ms), + out=brainpy.COBA.desc(E=0. * u.mV), + post=self.N + ) + self.I = brainpy.AlignPostProj( + comm=brainstate.nn.EventFixedProb(self.n_inh, self.num, conn_num=0.02, conn_weight=6.7 * u.mS), + syn=brainpy.Expon.desc(self.num, tau=10. * u.ms), + out=brainpy.COBA.desc(E=-80. * u.mV), + post=self.N + ) + + def update(self, t, inp): + with brainstate.environ.context(t=t): + spk = self.N.get_spike() != 0. + self.E(spk[:self.n_exc]) + self.I(spk[self.n_exc:]) + self.N(inp) + return self.N.get_spike() + + +# network +net = EINet() +brainstate.nn.init_all_states(net) + +# simulation +with brainstate.environ.context(dt=0.1 * u.ms): + times = u.math.arange(0. * u.ms, 1000. * u.ms, brainstate.environ.get_dt()) + spikes = brainstate.transform.for_loop( + lambda t: net.update(t, 20. * u.mA), times, + pbar=brainstate.transform.ProgressBar(10) + ) + +# visualization +t_indices, n_indices = u.math.where(spikes) +plt.scatter(times[t_indices], n_indices, s=1) +plt.xlabel('Time (ms)') +plt.ylabel('Neuron index') +plt.show() diff --git a/examples/104_CUBA_2005.py b/examples/104_CUBA_2005.py new file mode 100644 index 000000000..60973ecb2 --- /dev/null +++ b/examples/104_CUBA_2005.py @@ -0,0 +1,84 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + +# +# Implementation of the paper: +# +# - Brette, R., Rudolph, M., Carnevale, T., Hines, M., Beeman, D., Bower, J. M., et al. (2007), +# Simulation of networks of spiking neurons: a review of tools and strategies., J. Comput. Neurosci., 23, 3, 349–98 +# +# which is based on the balanced network proposed by: +# +# - Vogels, T. P. and Abbott, L. F. (2005), Signal propagation and logic gating in networks of integrate-and-fire neurons., J. Neurosci., 25, 46, 10786–95 +# + + +import brainunit as u +import matplotlib.pyplot as plt + +import brainpy +import brainstate +import braintools + + +class EINet(brainstate.nn.Module): + def __init__(self): + super().__init__() + self.n_exc = 3200 + self.n_inh = 800 + self.num = self.n_exc + self.n_inh + self.N = brainpy.LIFRef( + self.num, V_rest=-49. * u.mV, V_th=-50. * u.mV, V_reset=-60. * u.mV, + tau=20. * u.ms, tau_ref=5. * u.ms, + V_initializer=braintools.init.Normal(-55. * u.mV, 2. * u.mV) + ) + self.E = brainpy.AlignPostProj( + comm=brainstate.nn.EventFixedProb(self.n_exc, self.num, conn_num=0.02, conn_weight=1.62 * u.mS), + syn=brainpy.Expon.desc(self.num, tau=5. * u.ms), + out=brainpy.CUBA.desc(scale=u.volt), + post=self.N + ) + self.I = brainpy.AlignPostProj( + comm=brainstate.nn.EventFixedProb(self.n_inh, self.num, conn_num=0.02, conn_weight=-9.0 * u.mS), + syn=brainpy.Expon.desc(self.num, tau=10. * u.ms), + out=brainpy.CUBA.desc(scale=u.volt), + post=self.N + ) + + def update(self, t, inp): + with brainstate.environ.context(t=t): + spk = self.N.get_spike() != 0. + self.E(spk[:self.n_exc]) + self.I(spk[self.n_exc:]) + self.N(inp) + return self.N.get_spike() + + +# network +net = EINet() +brainstate.nn.init_all_states(net) + +# simulation +with brainstate.environ.context(dt=0.1 * u.ms): + times = u.math.arange(0. * u.ms, 1000. * u.ms, brainstate.environ.get_dt()) + spikes = brainstate.transform.for_loop(lambda t: net.update(t, 20. * u.mA), times, + pbar=brainstate.transform.ProgressBar(10)) + +# visualization +t_indices, n_indices = u.math.where(spikes) +plt.scatter(times[t_indices], n_indices, s=1) +plt.xlabel('Time (ms)') +plt.ylabel('Neuron index') +plt.show() diff --git a/examples/104_CUBA_2005_version2.py b/examples/104_CUBA_2005_version2.py new file mode 100644 index 000000000..55ab33bdb --- /dev/null +++ b/examples/104_CUBA_2005_version2.py @@ -0,0 +1,115 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + +# +# Implementation of the paper: +# +# - Brette, R., Rudolph, M., Carnevale, T., Hines, M., Beeman, D., Bower, J. M., et al. (2007), +# Simulation of networks of spiking neurons: a review of tools and strategies., J. Comput. Neurosci., 23, 3, 349–98 +# +# which is based on the balanced network proposed by: +# +# - Vogels, T. P. and Abbott, L. F. (2005), Signal propagation and logic gating in networks of integrate-and-fire neurons., J. Neurosci., 25, 46, 10786–95 +# + + +import brainunit as u +import matplotlib.pyplot as plt + +import brainpy +import brainstate +import braintools + + +class EINet(brainstate.nn.Module): + def __init__(self): + super().__init__() + self.n_exc = 3200 + self.n_inh = 800 + self.E = brainpy.LIFRef( + self.n_exc, + V_rest=-49. * u.mV, V_th=-50. * u.mV, V_reset=-60. * u.mV, + tau=20. * u.ms, tau_ref=5. * u.ms, + V_initializer=braintools.init.Normal(-55. * u.mV, 2. * u.mV) + ) + self.I = brainpy.LIFRef( + self.n_inh, + V_rest=-49. * u.mV, V_th=-50. * u.mV, V_reset=-60. * u.mV, + tau=20. * u.ms, tau_ref=5. * u.ms, + V_initializer=braintools.init.Normal(-55. * u.mV, 2. * u.mV) + ) + self.E2E = brainpy.AlignPostProj( + self.E.prefetch('V'), + lambda x: self.E.get_spike(x) != 0., + comm=brainstate.nn.EventFixedProb(self.n_exc, self.n_exc, conn_num=0.02, conn_weight=1.62 * u.mS), + syn=brainpy.Expon.desc(self.n_exc, tau=5. * u.ms), + out=brainpy.CUBA.desc(scale=u.volt), + post=self.E + ) + self.E2I = brainpy.AlignPostProj( + self.E.prefetch('V'), + lambda x: self.E.get_spike(x) != 0., + comm=brainstate.nn.EventFixedProb(self.n_exc, self.n_inh, conn_num=0.02, conn_weight=1.62 * u.mS), + syn=brainpy.Expon.desc(self.n_inh, tau=5. * u.ms), + out=brainpy.CUBA.desc(scale=u.volt), + post=self.I + ) + self.I2E = brainpy.AlignPostProj( + self.I.prefetch('V'), + lambda x: self.I.get_spike(x) != 0., + comm=brainstate.nn.EventFixedProb(self.n_inh, self.n_exc, conn_num=0.02, conn_weight=-9.0 * u.mS), + syn=brainpy.Expon.desc(self.n_exc, tau=10. * u.ms), + out=brainpy.CUBA.desc(scale=u.volt), + post=self.E + ) + self.I2I = brainpy.AlignPostProj( + self.I.prefetch('V'), + lambda x: self.I.get_spike(x) != 0., + comm=brainstate.nn.EventFixedProb(self.n_inh, self.n_inh, conn_num=0.02, conn_weight=-9.0 * u.mS), + syn=brainpy.Expon.desc(self.n_inh, tau=10. * u.ms), + out=brainpy.CUBA.desc(scale=u.volt), + post=self.I + ) + + def update(self, t): + with brainstate.environ.context(t=t): + self.E2E() + self.E2I() + self.I2E() + self.I2I() + self.E(20. * u.mA) + self.I(20. * u.mA) + return self.E.get_spike() + + +# network +net = EINet() +brainstate.nn.init_all_states(net) + +# simulation +with brainstate.environ.context(dt=0.1 * u.ms): + times = u.math.arange(0. * u.ms, 1000. * u.ms, brainstate.environ.get_dt()) + spikes = brainstate.transform.for_loop( + net.update, + times, + pbar=brainstate.transform.ProgressBar(10) + ) + +# visualization +t_indices, n_indices = u.math.where(spikes) +plt.scatter(times[t_indices], n_indices, s=1) +plt.xlabel('Time (ms)') +plt.ylabel('Neuron index') +plt.show() diff --git a/examples/106_COBA_HH_2007.py b/examples/106_COBA_HH_2007.py new file mode 100644 index 000000000..9cd90cd35 --- /dev/null +++ b/examples/106_COBA_HH_2007.py @@ -0,0 +1,176 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + +# +# Implementation of the paper: +# +# - Brette, R., Rudolph, M., Carnevale, T., Hines, M., Beeman, D., Bower, J. M., et al. (2007), +# Simulation of networks of spiking neurons: a review of tools and strategies., J. Comput. Neurosci., 23, 3, 349–98 +# + +import brainunit as u +import matplotlib.pyplot as plt +import numpy as np + +import brainpy +import brainstate + +# brainstate.environ.set(precision='bf16') + +num_exc = 3200 +num_inh = 800 + +area = 20000 * u.um ** 2 +area = area.in_unit(u.cm ** 2) +Cm = (1 * u.uF * u.cm ** -2) * area # Membrane Capacitance [pF] + +gl = (5. * u.nS * u.cm ** -2) * area # Leak Conductance [nS] +g_Na = (100. * u.mS * u.cm ** -2) * area # Sodium Conductance [nS] +g_Kd = (30. * u.mS * u.cm ** -2) * area # K Conductance [nS] + +El = -60. * u.mV # Resting Potential [mV] +ENa = 50. * u.mV # reversal potential (Sodium) [mV] +EK = -90. * u.mV # reversal potential (Potassium) [mV] +VT = -63. * u.mV # Threshold Potential [mV] +V_th = -20. * u.mV # Spike Threshold [mV] + +# Time constants +taue = 5. * u.ms # Excitatory synaptic time constant [ms] +taui = 10. * u.ms # Inhibitory synaptic time constant [ms] + +# Reversal potentials +Ee = 0. * u.mV # Excitatory reversal potential (mV) +Ei = -80. * u.mV # Inhibitory reversal potential (Potassium) [mV] + +# excitatory synaptic weight +we = 6. * u.nS # excitatory synaptic conductance [nS] + +# inhibitory synaptic weight +wi = 67. * u.nS # inhibitory synaptic conductance [nS] + + +class HH(brainstate.nn.Dynamics): + """ + Hodgkin-Huxley neuron model. + """ + + def __init__(self, in_size): + super().__init__(in_size) + + def init_state(self, *args, **kwargs): + # variables + self.V = brainstate.HiddenState(El + (brainstate.random.randn(*self.varshape) * 5 - 5) * u.mV) + self.m = brainstate.HiddenState(u.math.zeros(self.varshape, dtype=brainstate.environ.dftype())) + self.n = brainstate.HiddenState(u.math.zeros(self.varshape, dtype=brainstate.environ.dftype())) + self.h = brainstate.HiddenState(u.math.zeros(self.varshape, dtype=brainstate.environ.dftype())) + self.spike = brainstate.HiddenState(u.math.zeros(self.varshape, dtype=bool)) + + def reset_state(self, *args, **kwargs): + self.V.value = El + (brainstate.random.randn(self.varshape) * 5 - 5) + self.m.value = u.math.zeros(self.varshape) + self.n.value = u.math.zeros(self.varshape) + self.h.value = u.math.zeros(self.varshape) + self.spike.value = u.math.zeros(self.varshape, dtype=bool) + + def dV(self, V, m, h, n, Isyn): + gna = g_Na * (m * m * m) * h + gkd = g_Kd * (n * n * n * n) + dVdt = (-gl * (V - El) - gna * (V - ENa) - gkd * (V - EK) + self.sum_current_inputs(Isyn, V)) / Cm + return dVdt + + def dm(self, m, V, ): + a = (- V + VT) / u.mV + 13 + b = (V - VT) / u.mV - 40 + m_alpha = 0.32 * 4 / u.math.exprel(a / 4) + m_beta = 0.28 * 5 / u.math.exprel(b / 5) + dmdt = (m_alpha * (1 - m) - m_beta * m) / u.ms + return dmdt + + def dh(self, h, V): + c = (- V + VT) / u.mV + 17 + d = (V - VT) / u.mV - 40 + h_alpha = 0.128 * u.math.exp(c / 18) + h_beta = 4. / (1 + u.math.exp(-d / 5)) + dhdt = (h_alpha * (1 - h) - h_beta * h) / u.ms + return dhdt + + def dn(self, n, V): + c = (- V + VT) / u.mV + 15 + d = (- V + VT) / u.mV + 10 + n_alpha = 0.032 * 5 / u.math.exprel(c / 5) + n_beta = .5 * u.math.exp(d / 40) + dndt = (n_alpha * (1 - n) - n_beta * n) / u.ms + return dndt + + def update(self, x=0. * u.mA): + last_V = self.V.value + V = brainstate.nn.exp_euler_step(self.dV, last_V, self.m.value, self.h.value, self.n.value, x) + m = brainstate.nn.exp_euler_step(self.dm, self.m.value, last_V) + h = brainstate.nn.exp_euler_step(self.dh, self.h.value, last_V) + n = brainstate.nn.exp_euler_step(self.dn, self.n.value, last_V) + self.spike.value = u.math.logical_and(last_V < V_th, V >= V_th) + self.m.value = m + self.h.value = h + self.n.value = n + self.V.value = V + return self.spike.value + + +class EINet(brainstate.nn.Module): + def __init__(self): + super().__init__() + self.n_exc = 3200 + self.n_inh = 800 + self.varshape = self.n_exc + self.n_inh + self.N = HH(self.varshape) + + self.E = brainpy.AlignPostProj( + comm=brainstate.nn.EventFixedProb(self.n_exc, self.varshape, conn_num=0.02, conn_weight=we), + syn=brainpy.Expon(self.varshape, tau=taue), + out=brainpy.COBA(E=Ee), + post=self.N + ) + self.I = brainpy.AlignPostProj( + comm=brainstate.nn.EventFixedProb(self.n_inh, self.varshape, conn_num=0.02, conn_weight=wi), + syn=brainpy.Expon(self.varshape, tau=taui), + out=brainpy.COBA(E=Ei), + post=self.N + ) + + def update(self, t): + with brainstate.environ.context(t=t): + spk = self.N.spike.value + self.E(spk[:self.n_exc]) + self.I(spk[self.n_exc:]) + r = self.N() + return r + + +# network +net = EINet() +brainstate.nn.init_all_states(net) + +# simulation +with brainstate.environ.context(dt=0.04 * u.ms): + times = u.math.arange(0. * u.ms, 300. * u.ms, brainstate.environ.get_dt()) + times = u.math.asarray(times, dtype=brainstate.environ.dftype()) + spikes = brainstate.transform.for_loop(net.update, times, pbar=brainstate.transform.ProgressBar(100)) + +# visualization +t_indices, n_indices = u.math.where(spikes) +plt.scatter(u.math.asarray(times[t_indices] / u.ms, dtype=np.float32), n_indices, s=1) +plt.xlabel('Time (ms)') +plt.ylabel('Neuron index') +plt.show() diff --git a/examples/107_gamma_oscillation_1996.py b/examples/107_gamma_oscillation_1996.py new file mode 100644 index 000000000..d2866086e --- /dev/null +++ b/examples/107_gamma_oscillation_1996.py @@ -0,0 +1,156 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + + +# +# Implementation of the paper: +# +# - Wang X J, Buzsáki G. Gamma oscillation by synaptic inhibition in a hippocampal interneuronal network model[J]. Journal of neuroscience, 1996, 16(20): 6402-6413. +# + +import brainunit as u +import matplotlib.pyplot as plt + +import brainpy +import brainstate +import braintools + + +class HH(brainpy.Neuron): + def __init__( + self, in_size, ENa=55. * u.mV, EK=-90. * u.mV, EL=-65 * u.mV, C=1.0 * u.uF, + gNa=35. * u.msiemens, gK=9. * u.msiemens, gL=0.1 * u.msiemens, V_th=20. * u.mV, phi=5.0 + ): + super().__init__(in_size) + + # parameters + self.ENa = ENa + self.EK = EK + self.EL = EL + self.C = C + self.gNa = gNa + self.gK = gK + self.gL = gL + self.V_th = V_th + self.phi = phi + + def init_state(self, *args, **kwargs): + # variables + self.V = brainstate.HiddenState(-70. * u.mV + brainstate.random.randn(*self.varshape) * 20 * u.mV) + self.h = brainstate.HiddenState(braintools.init.param(braintools.init.Constant(0.6), self.varshape)) + self.n = brainstate.HiddenState(braintools.init.param(braintools.init.Constant(0.3), self.varshape)) + self.spike = brainstate.HiddenState( + braintools.init.param(lambda s: u.math.zeros(s, dtype=bool), self.varshape)) + + def dh(self, h, t, V): + alpha = 0.07 * u.math.exp(-(V / u.mV + 58) / 20) + beta = 1 / (u.math.exp(-0.1 * (V / u.mV + 28)) + 1) + dhdt = alpha * (1 - h) - beta * h + return self.phi * dhdt / u.ms + + def dn(self, n, t, V): + alpha = -0.01 * (V / u.mV + 34) / (u.math.exp(-0.1 * (V / u.mV + 34)) - 1) + beta = 0.125 * u.math.exp(-(V / u.mV + 44) / 80) + dndt = alpha * (1 - n) - beta * n + return self.phi * dndt / u.ms + + def dV(self, V, t, h, n, Iext): + m_alpha = -0.1 * (V / u.mV + 35) / (u.math.exp(-0.1 * (V / u.mV + 35)) - 1) + m_beta = 4 * u.math.exp(-(V / u.mV + 60) / 18) + m = m_alpha / (m_alpha + m_beta) + INa = self.gNa * m ** 3 * h * (V - self.ENa) + IK = self.gK * n ** 4 * (V - self.EK) + IL = self.gL * (V - self.EL) + dVdt = (- INa - IK - IL + self.sum_current_inputs(Iext, V)) / self.C + return dVdt + + def update(self, x=0. * u.uA): + t = brainstate.environ.get('t') + V = brainstate.nn.exp_euler_step(self.dV, self.V.value, t, self.h.value, self.n.value, x) + h = brainstate.nn.exp_euler_step(self.dh, self.h.value, t, V) + n = brainstate.nn.exp_euler_step(self.dn, self.n.value, t, V) + self.spike.value = u.math.logical_and(self.V.value < self.V_th, V >= self.V_th) + self.V.value = V + self.h.value = h + self.n.value = n + return self.V.value + + +class Synapse(brainpy.Synapse): + def __init__(self, in_size, alpha=12 / u.ms, beta=0.1 / u.ms): + super().__init__(in_size=in_size) + self.alpha = alpha + self.beta = beta + + def init_state(self, *args, **kwargs): + self.g = brainstate.HiddenState( + braintools.init.param(braintools.init.ZeroInit(), self.varshape) + ) + + def update(self, pre_V): + f_v = lambda v: 1 / (1 + u.math.exp(-v / u.mV / 2)) + ds = lambda s: self.alpha * f_v(pre_V) * (1 - s) - self.beta * s + self.g.value = brainstate.nn.exp_euler_step(ds, self.g.value) + return self.g.value + + +class GammaNet(brainstate.nn.Module): + def __init__(self, num: int = 100): + super().__init__() + self.neu = HH(num) + # self.syn = brainstate.nn.GABAa(num, alpha=12 / (u.ms * u.mM), beta=0.1 / u.ms) + self.syn = Synapse(num) + self.proj = brainpy.CurrentProj( + self.syn.prefetch('g'), + comm=brainstate.nn.AllToAll( + self.neu.varshape, self.neu.varshape, include_self=False, w_init=0.1 * u.msiemens / num + ), + out=brainpy.COBA(E=-75. * u.mV), + post=self.neu + ) + + def update(self, t): + with brainstate.environ.context(t=t): + self.proj() + self.syn(self.neu(I_inp)) + # visualize spikes and membrane potentials of the first 5 neurons + return self.neu.spike.value, self.neu.V.value[:5] + + +# background input +I_inp = 1.0 * u.uA + +# network +net = GammaNet() +brainstate.nn.init_all_states(net) + +# simulation +with brainstate.environ.context(dt=0.01 * u.ms): + times = u.math.arange(0. * u.ms, 500. * u.ms, brainstate.environ.get_dt()) + spikes, vs = brainstate.transform.for_loop(net.update, times, pbar=brainstate.transform.ProgressBar(10)) + +# visualization +fig, gs = braintools.visualize.get_figure(1, 2, 4, 4) +fig.add_subplot(gs[0, 0]) +plt.plot(times, vs.to_decimal(u.mV)) +plt.xlabel('Time (ms)') +plt.ylabel('Membrane potential (mV)') + +fig.add_subplot(gs[0, 1]) +t_indices, n_indices = u.math.where(spikes) +plt.plot(times[t_indices], n_indices, 'k.') +plt.xlabel('Time (ms)') +plt.ylabel('Neuron index') +plt.show() diff --git a/examples/108_synfire_chains_199.py b/examples/108_synfire_chains_199.py new file mode 100644 index 000000000..1c3ef3c56 --- /dev/null +++ b/examples/108_synfire_chains_199.py @@ -0,0 +1,163 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + +# +# Implementation of the paper: +# +# - Diesmann, Markus, Marc-Oliver Gewaltig, and Ad Aertsen. “Stable propagation of synchronous spiking in cortical neural networks.” Nature 402.6761 (1999): 529-533. +# + +import brainunit as u +import jax +import matplotlib.pyplot as plt + +import brainpy +import brainstate +import braintools + +duration = 100. * u.ms + +# Neuron model parameters +Vr = -70. * u.mV +Vt = -55. * u.mV +tau_m = 10. * u.ms +tau_ref = 1. * u.ms +tau_psp = 0.325 * u.ms +weight = 4.86 * u.mV +noise = 39.24 * u.mV +spike_sigma = 1. * u.ms + +# Neuron groups +n_groups = 10 +group_size = 100 + +# Synapse parameter +delay = 5.0 * u.ms # ms + + +# neuron model +# ------------ + + +class Population(brainpy.Neuron): + def __init__(self, in_size, **kwargs): + super().__init__(in_size, **kwargs) + + def init_state(self, *args, **kwargs): + self.V = brainstate.HiddenState(Vr + brainstate.random.random(self.varshape) * (Vt - Vr)) + self.x = brainstate.HiddenState(u.math.zeros(self.varshape) * u.mV) + self.y = brainstate.HiddenState(u.math.zeros(self.varshape) * u.mV) + self.spike = brainstate.ShortTermState(u.math.zeros(self.varshape, dtype=bool)) + self.t_last_spike = brainstate.ShortTermState(u.math.ones(self.varshape) * -1e7 * u.ms) + + def update(self): + dv = lambda V, x: (-(V - Vr) + x) / tau_m + dx = lambda x, y: (-x + y) / tau_psp + dy_f = lambda y: -y / tau_psp + 25.27 * u.mV / u.ms + dy_g = lambda y: noise / u.ms ** 0.5 + + t = brainstate.environ.get('t') + x = brainstate.nn.exp_euler_step(dx, self.x.value, self.y.value) + y = brainstate.nn.exp_euler_step(dy_f, dy_g, self.y.value) + V = brainstate.nn.exp_euler_step(dv, self.V.value, self.x.value) + in_ref = (t - self.t_last_spike.value) < tau_ref + V = u.math.where(in_ref, self.V.value, V) + self.x.value = x + self.y.value = y + self.spike.value = V >= Vt + self.t_last_spike.value = u.math.where(self.spike.value, t, self.t_last_spike.value) + self.V.value = u.math.where(self.spike.value, Vr, V) + return self.spike.value + + +# synaptic model +# --------------- + +class Projection(brainpy.Synapse): + def __init__(self, group, **kwargs): + super().__init__(group.varshape, **kwargs) + + # neuron group + self.group = group + + # variables + self.g = brainstate.nn.Delay( + jax.ShapeDtypeStruct(self.group.varshape, brainstate.environ.dftype()) * u.mV, + entries={'I': delay} + ) + + def update(self, ext_spike): + # synapse model between external and group 1 + g = u.math.zeros(self.group.varshape, unit=u.mV) + g[:group_size] = weight * ext_spike.sum() + # feed-forward connection + for i in range(1, n_groups): + s1 = (i - 1) * group_size + s2 = i * group_size + s3 = (i + 1) * group_size + g[s2: s3] = weight * self.group.spike.value[s1: s2].sum() + # delay push + self.g.update(g) + # delay pull + g = self.g.retrieve_at_step(u.math.asarray(delay / brainstate.environ.get_dt(), dtype=int)) + # update group + self.group.y.value += g + + +# network model +# --------------- + +class Net(brainstate.nn.Module): + def __init__(self, n_spike): + super().__init__() + times = brainstate.random.randn(n_spike) * spike_sigma + 20 * u.ms + self.ext = brainpy.SpikeTime(n_spike, times=times, indices=u.math.arange(n_spike), need_sort=False) + self.pop = Population(in_size=n_groups * group_size) + self.syn = Projection(self.pop) + + def update(self, t, i): + with brainstate.environ.context(t=t, i=i): + self.syn(self.ext()) + return self.pop() + + +# network running +# --------------- + +def run_network(spike_num: int, ax): + brainstate.random.seed(1) + + with brainstate.environ.context(dt=0.1 * u.ms): + # initialization + net = Net(spike_num) + brainstate.nn.init_all_states(net) + + # simulation + times = u.math.arange(0. * u.ms, duration, brainstate.environ.get_dt()) + indices = u.math.arange(times.size) + spikes = brainstate.transform.for_loop(net.update, times, indices, pbar=brainstate.transform.ProgressBar(10)) + + # visualization + times = times.to_decimal(u.ms) + t_indices, n_indices = u.math.where(spikes) + ax.scatter(times[t_indices], n_indices, s=1) + ax.set_xlabel('Time (ms)') + ax.set_ylabel('Neuron index') + + +fig, gs = braintools.visualize.get_figure(1, 2, 4, 4) +run_network(spike_num=40, ax=fig.add_subplot(gs[0, 0])) +run_network(spike_num=30, ax=fig.add_subplot(gs[0, 1])) +plt.show() diff --git a/examples/109_fast_global_oscillation.py b/examples/109_fast_global_oscillation.py new file mode 100644 index 000000000..9cd2f14c4 --- /dev/null +++ b/examples/109_fast_global_oscillation.py @@ -0,0 +1,111 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + + +# +# Implementation of the paper: +# +# - Brunel, Nicolas, and Vincent Hakim. “Fast global oscillations in networks of integrate-and-fire neurons with low firing rates.” Neural computation 11.7 (1999): 1621-1671. +# + + +import brainunit as u +import jax +import matplotlib.pyplot as plt + +import brainpy +import brainstate +import braintools + +Vr = 10. * u.mV +theta = 20. * u.mV +tau = 20. * u.ms +delta = 2. * u.ms +taurefr = 2. * u.ms +duration = 100. * u.ms +J = .1 * u.mV +muext = 25. * u.mV +sigmaext = 1.0 * u.mV +C = 1000 +N = 5000 +sparseness = C / N + + +class LIF(brainpy.Neuron): + def __init__(self, in_size, **kwargs): + super().__init__(in_size, **kwargs) + + def init_state(self, *args, **kwargs): + # variables + self.V = brainstate.HiddenState(braintools.init.param(braintools.init.Constant(Vr), self.varshape)) + self.t_last_spike = brainstate.ShortTermState( + braintools.init.param(braintools.init.Constant(-1e7 * u.ms), self.varshape) + ) + + def update(self): + # integrate membrane potential + fv = lambda V: (-V + self.sum_current_inputs(muext, V)) / tau + gv = lambda V: sigmaext / u.math.sqrt(tau) + V = brainstate.nn.exp_euler_step(fv, gv, self.V.value) + V = self.sum_delta_inputs(V) + + # refractory period + t = brainstate.environ.get('t') + in_ref = (t - self.t_last_spike.value) <= taurefr + V = u.math.where(in_ref, self.V.value, V) + + # spike + spike = V >= theta + self.V.value = u.math.where(spike, Vr, V) + self.t_last_spike.value = u.math.where(spike, t, self.t_last_spike.value) + return spike + + +class Net(brainstate.nn.Module): + def __init__(self, num): + super().__init__() + self.group = LIF(num) + self.delay = brainstate.nn.Delay(jax.ShapeDtypeStruct((num,), bool), delta) + self.syn = brainpy.DeltaProj( + comm=brainstate.nn.EventFixedProb(num, num, sparseness, -J), + post=self.group + ) + + def update(self, t, i): + with brainstate.environ.context(t=t, i=i): + self.syn(self.delay.retrieve_at_step(jax.numpy.asarray(delta / brainstate.environ.get_dt(), dtype=int))) + spike = self.group() + self.delay(spike) + return spike + + +with brainstate.environ.context(dt=0.1 * u.ms): + # initialize network + net = Net(N) + brainstate.nn.init_all_states(net) + + # simulation + times = u.math.arange(0. * u.ms, duration, brainstate.environ.get_dt()) + indices = u.math.arange(times.size) + spikes = brainstate.transform.for_loop(net.update, times, indices, pbar=brainstate.transform.ProgressBar(10)) + +# visualization +times = times.to_decimal(u.ms) +t_indices, n_indices = u.math.where(spikes) +plt.scatter(times[t_indices], n_indices, s=1) +plt.xlabel('Time (ms)') +plt.ylabel('Neuron index') +plt.xlim([0, duration.to_decimal(u.ms)]) +plt.show() diff --git a/examples/110_Susin_Destexhe_2021_gamma_oscillation_AI.py b/examples/110_Susin_Destexhe_2021_gamma_oscillation_AI.py new file mode 100644 index 000000000..b99d8cfd3 --- /dev/null +++ b/examples/110_Susin_Destexhe_2021_gamma_oscillation_AI.py @@ -0,0 +1,194 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + +# +# Implementation of the paper: +# +# - Susin, Eduarda, and Alain Destexhe. “Integration, coincidence detection and resonance in networks +# of spiking neurons expressing gamma oscillations and asynchronous states.” +# PLoS computational biology 17.9 (2021): e1009416. +# +# Asynchronous Network + + +import brainunit as u +import matplotlib.pyplot as plt + +import brainpy +import brainstate +import braintools +from Susin_Destexhe_2021_gamma_oscillation import ( + get_inputs, visualize_simulation_results, + RS_par, FS_par, Ch_par, AdEx +) + + +def simulate_adex_neuron(ax_v, ax_I, pars, title): + with brainstate.environ.context(dt=0.1 * u.ms): + # neuron + adex = brainstate.nn.init_all_states(AdEx(1, **pars)) + + def run_step(t, x): + with brainstate.environ.context(t=t): + adex.update(x) + return adex.V.value + + # simulation + duration = 1.5e3 * u.ms + times = u.math.arange(0. * u.ms, duration, brainstate.environ.get_dt()) + inputs = get_inputs(0. * u.nA, 0.5 * u.nA, t_transition=50. * u.ms, + t_min_plato=500 * u.ms, t_max_plato=500 * u.ms, + t_gap=500 * u.ms, t_total=duration) + vs = brainstate.transform.for_loop(run_step, times, inputs, pbar=brainstate.transform.ProgressBar(10)) + + # visualization + ax_v.plot(times.to_decimal(u.ms), vs.to_decimal(u.mV)) + ax_v.set_title(title) + ax_v.set_ylabel('V (mV)') + ax_v.set_xlim(0.4 * u.second / u.ms, 1.2 * u.second / u.ms) + + ax_I.plot(times.to_decimal(u.ms), inputs.to_decimal(u.nA)) + ax_I.set_ylabel('I (nA)') + ax_I.set_xlabel('Time (ms)') + ax_I.set_xlim(0.4 * u.second / u.ms, 1.2 * u.second / u.ms) + + +def simulate_adex_neurons(): + fig, gs = braintools.visualize.get_figure(2, 3, 4, 6) + simulate_adex_neuron(fig.add_subplot(gs[0, 0]), fig.add_subplot(gs[1, 0]), RS_par, 'Regular Spiking') + simulate_adex_neuron(fig.add_subplot(gs[0, 1]), fig.add_subplot(gs[1, 1]), FS_par, 'Fast Spiking') + simulate_adex_neuron(fig.add_subplot(gs[0, 2]), fig.add_subplot(gs[1, 2]), Ch_par, 'Chattering') + plt.show() + + +class AINet(brainstate.nn.DynamicsGroup): + def __init__(self): + super().__init__() + + self.num_exc = 20000 + self.num_inh = 5000 + self.exc_syn_tau = 5. * u.ms + self.inh_syn_tau = 5. * u.ms + self.exc_syn_weight = 1. * u.nS + self.inh_syn_weight = 5. * u.nS + self.delay = 1.5 * u.ms + self.ext_weight = 1.0 * u.nS + + # neuronal populations + RS_par_ = RS_par.copy() + FS_par_ = FS_par.copy() + RS_par_.update(Vth=-50 * u.mV, V_sp_th=-40 * u.mV) + FS_par_.update(Vth=-50 * u.mV, V_sp_th=-40 * u.mV) + self.fs_pop = AdEx(self.num_inh, tau_e=self.exc_syn_tau, tau_i=self.inh_syn_tau, **FS_par_) + self.rs_pop = AdEx(self.num_exc, tau_e=self.exc_syn_tau, tau_i=self.inh_syn_tau, **RS_par_) + self.ext_pop = brainpy.PoissonEncoder(self.num_exc) + + # Poisson inputs + self.ext_to_FS = brainpy.DeltaProj( + comm=brainstate.nn.EventFixedProb(self.num_exc, self.num_inh, 0.02, self.ext_weight), + post=self.fs_pop, + label='ge' + ) + self.ext_to_RS = brainpy.DeltaProj( + comm=brainstate.nn.EventFixedProb(self.num_exc, self.num_exc, 0.02, self.ext_weight), + post=self.rs_pop, + label='ge' + ) + + # synaptic projections + self.RS_to_FS = brainpy.DeltaProj( + self.rs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_exc, self.num_inh, 0.02, self.exc_syn_weight), + post=self.fs_pop, + label='ge' + ) + self.RS_to_RS = brainpy.DeltaProj( + self.rs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_exc, self.num_exc, 0.02, self.exc_syn_weight), + post=self.rs_pop, + label='ge' + ) + self.FS_to_FS = brainpy.DeltaProj( + self.fs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_inh, self.num_inh, 0.02, self.inh_syn_weight), + post=self.fs_pop, + label='gi' + ) + self.FS_to_RS = brainpy.DeltaProj( + self.fs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_inh, self.num_exc, 0.02, self.inh_syn_weight), + post=self.rs_pop, + label='gi' + ) + + def update(self, i, t, freq): + with brainstate.environ.context(t=t, i=i): + ext_spikes = self.ext_pop(freq) + self.ext_to_FS(ext_spikes) + self.ext_to_RS(ext_spikes) + self.RS_to_RS() + self.RS_to_FS() + self.FS_to_FS() + self.FS_to_RS() + self.rs_pop() + self.fs_pop() + return { + 'FS.V0': self.fs_pop.V.value[0], + 'RS.V0': self.rs_pop.V.value[0], + 'FS.spike': self.fs_pop.spike.value, + 'RS.spike': self.rs_pop.spike.value + } + + +def simulate_ai_net(): + with brainstate.environ.context(dt=0.1 * u.ms): + # inputs + duration = 2e3 * u.ms + varied_rates = get_inputs(2. * u.Hz, 2. * u.Hz, 50. * u.ms, 150 * u.ms, 600 * u.ms, 1e3 * u.ms, duration) + + # network + net = brainstate.nn.init_all_states(AINet()) + + # simulation + times = u.math.arange(0. * u.ms, duration, brainstate.environ.get_dt()) + indices = u.math.arange(0, len(times)) + returns = brainstate.transform.for_loop(net.update, indices, times, varied_rates, pbar=brainstate.transform.ProgressBar(100)) + + # # spike raster plot + # spikes = returns['FS.spike'] + # fig, gs = braintools.visualize.get_figure(1, 1, 4., 5.) + # fig.add_subplot(gs[0, 0]) + # times2 = times.to_decimal(u.ms) + # t_indices, n_indices = u.math.where(spikes) + # plt.scatter(times2[t_indices], n_indices, s=1, c='k') + # plt.xlabel('Time (ms)') + # plt.ylabel('Neuron index') + # plt.title('Spike raster plot') + # plt.show() + + # visualization + visualize_simulation_results( + times=times, + spikes={'FS': (returns['FS.spike'], 'inh'), + 'RS': (returns['RS.spike'], 'exc')}, + example_potentials={'FS': returns['FS.V0'], + 'RS': returns['RS.V0']}, + varied_rates=varied_rates + ) + + +if __name__ == '__main__': + # simulate_adex_neurons() + simulate_ai_net() diff --git a/examples/111_Susin_Destexhe_2021_gamma_oscillation_CHING.py b/examples/111_Susin_Destexhe_2021_gamma_oscillation_CHING.py new file mode 100644 index 000000000..671a45384 --- /dev/null +++ b/examples/111_Susin_Destexhe_2021_gamma_oscillation_CHING.py @@ -0,0 +1,203 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + +# +# Implementation of the paper: +# +# - Susin, Eduarda, and Alain Destexhe. “Integration, coincidence detection and resonance in networks of +# spiking neurons expressing gamma oscillations and asynchronous states.” PLoS computational biology 17.9 (2021): e1009416. +# +# CHING Network for Generating Gamma Oscillation + + +import brainunit as u + +import brainpy +import brainstate +from Susin_Destexhe_2021_gamma_oscillation import ( + get_inputs, visualize_simulation_results, RS_par, FS_par, Ch_par, AdEx +) + + +class CHINGNet(brainstate.nn.DynamicsGroup): + def __init__(self): + super().__init__() + + self.num_rs = 19000 + self.num_fs = 5000 + self.num_ch = 1000 + self.exc_syn_tau = 5. * u.ms + self.inh_syn_tau = 5. * u.ms + self.exc_syn_weight = 1. * u.nS + self.inh_syn_weight1 = 7. * u.nS + self.inh_syn_weight2 = 5. * u.nS + self.ext_weight1 = 1. * u.nS + self.ext_weight2 = 0.75 * u.nS + self.delay = 1.5 * u.ms + + # neuronal populations + RS_par_ = RS_par.copy() + FS_par_ = FS_par.copy() + Ch_par_ = Ch_par.copy() + RS_par_.update(Vth=-50 * u.mV, V_sp_th=-40 * u.mV) + FS_par_.update(Vth=-50 * u.mV, V_sp_th=-40 * u.mV) + Ch_par_.update(Vth=-50 * u.mV, V_sp_th=-40 * u.mV) + self.rs_pop = AdEx(self.num_rs, tau_e=self.exc_syn_tau, tau_i=self.inh_syn_tau, **RS_par_) + self.fs_pop = AdEx(self.num_fs, tau_e=self.exc_syn_tau, tau_i=self.inh_syn_tau, **FS_par_) + self.ch_pop = AdEx(self.num_ch, tau_e=self.exc_syn_tau, tau_i=self.inh_syn_tau, **Ch_par_) + self.ext_pop = brainpy.PoissonEncoder(self.num_rs) + + # Poisson inputs + self.ext_to_FS = brainpy.DeltaProj( + comm=brainstate.nn.EventFixedProb(self.num_rs, self.num_fs, 0.02, self.ext_weight2), + post=self.fs_pop, + label='ge', + ) + self.ext_to_RS = brainpy.DeltaProj( + comm=brainstate.nn.EventFixedProb(self.num_rs, self.num_rs, 0.02, self.ext_weight1), + post=self.rs_pop, + label='ge', + ) + self.ext_to_CH = brainpy.DeltaProj( + comm=brainstate.nn.EventFixedProb(self.num_rs, self.num_ch, 0.02, self.ext_weight1), + post=self.ch_pop, + label='ge', + ) + + # synaptic projections + self.RS_to_FS = brainpy.DeltaProj( + self.rs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_rs, self.num_fs, 0.02, self.exc_syn_weight), + post=self.fs_pop, + label='ge', + ) + self.RS_to_RS = brainpy.DeltaProj( + self.rs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_rs, self.num_rs, 0.02, self.exc_syn_weight), + post=self.rs_pop, + label='ge', + ) + self.RS_to_Ch = brainpy.DeltaProj( + self.rs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_rs, self.num_ch, 0.02, self.exc_syn_weight), + post=self.ch_pop, + label='ge', + ) + + # inhibitory projections + self.FS_to_RS = brainpy.DeltaProj( + self.fs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_fs, self.num_rs, 0.02, self.inh_syn_weight1), + post=self.rs_pop, + label='gi', + ) + self.FS_to_FS = brainpy.DeltaProj( + self.fs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_fs, self.num_fs, 0.02, self.inh_syn_weight2), + post=self.fs_pop, + label='gi', + ) + self.FS_to_Ch = brainpy.DeltaProj( + self.fs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_fs, self.num_ch, 0.02, self.inh_syn_weight1), + post=self.ch_pop, + label='gi', + ) + + # chatter cell projections + self.Ch_to_RS = brainpy.DeltaProj( + self.ch_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_ch, self.num_rs, 0.02, self.exc_syn_weight), + post=self.rs_pop, + label='ge', + ) + self.Ch_to_FS = brainpy.DeltaProj( + self.ch_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_ch, self.num_fs, 0.02, self.exc_syn_weight), + post=self.fs_pop, + label='ge', + ) + self.Ch_to_Ch = brainpy.DeltaProj( + self.ch_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_ch, self.num_ch, 0.02, self.exc_syn_weight), + post=self.ch_pop, + label='ge', + ) + + def update(self, i, t, freq): + with brainstate.environ.context(i=i, t=t): + ext_spikes = self.ext_pop(freq) + self.ext_to_FS(ext_spikes) + self.ext_to_RS(ext_spikes) + self.ext_to_CH(ext_spikes) + + self.RS_to_FS() + self.RS_to_RS() + self.RS_to_Ch() + + self.FS_to_RS() + self.FS_to_FS() + self.FS_to_Ch() + + self.Ch_to_RS() + self.Ch_to_FS() + self.Ch_to_Ch() + + self.rs_pop() + self.fs_pop() + self.ch_pop() + + return { + 'FS.V0': self.fs_pop.V.value[0], + 'CH.V0': self.ch_pop.V.value[0], + 'RS.V0': self.rs_pop.V.value[0], + 'FS.spike': self.fs_pop.spike.value, + 'CH.spike': self.ch_pop.spike.value, + 'RS.spike': self.rs_pop.spike.value + } + + +def simulate_ching_net(): + with brainstate.environ.context(dt=0.1 * u.ms): + # inputs + duration = 6e3 * u.ms + varied_rates = get_inputs(1. * u.Hz, 2. * u.Hz, 50. * u.ms, 150 * u.ms, 600 * u.ms, 1e3 * u.ms, duration) + + # network + net = brainstate.nn.init_all_states(CHINGNet()) + + # simulation + times = u.math.arange(0. * u.ms, duration, brainstate.environ.get_dt()) + indices = u.math.arange(0, len(times)) + returns = brainstate.transform.for_loop(net.update, indices, times, varied_rates, + pbar=brainstate.transform.ProgressBar(100)) + + # visualization + visualize_simulation_results( + times=times, + spikes={'FS': (returns['FS.spike'], 'inh'), + 'CH': (returns['CH.spike'], 'exc'), + 'RS': (returns['RS.spike'], 'exc')}, + example_potentials={'FS': returns['FS.V0'], + 'CH': returns['CH.V0'], + 'RS': returns['RS.V0']}, + varied_rates=varied_rates, + xlim=(2e3 * u.ms, 3.4e3 * u.ms), + t_lfp_start=1e3 * u.ms, + t_lfp_end=5e3 * u.ms + ) + + +simulate_ching_net() diff --git a/examples/112_Susin_Destexhe_2021_gamma_oscillation_ING.py b/examples/112_Susin_Destexhe_2021_gamma_oscillation_ING.py new file mode 100644 index 000000000..99818285c --- /dev/null +++ b/examples/112_Susin_Destexhe_2021_gamma_oscillation_ING.py @@ -0,0 +1,200 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + + +# +# Implementation of the paper: +# +# - Susin, Eduarda, and Alain Destexhe. “Integration, coincidence detection and resonance in networks of +# spiking neurons expressing gamma oscillations and asynchronous states.” PLoS computational biology 17.9 (2021): e1009416. +# +# ING Network for Generating Gamma Oscillation + + +import brainunit as u + +import brainpy +import brainstate +from Susin_Destexhe_2021_gamma_oscillation import ( + get_inputs, visualize_simulation_results, RS_par, FS_par, AdEx +) + + +class INGNet(brainstate.nn.DynamicsGroup): + def __init__(self): + super().__init__() + + self.num_rs = 20000 + self.num_fs = 4000 + self.num_fs2 = 1000 + self.exc_syn_tau = 5. * u.ms + self.inh_syn_tau = 5. * u.ms + self.ext_weight = 0.9 * u.nS + self.exc_syn_weight = 1. * u.nS + self.inh_syn_weight = 5. * u.nS + self.delay = 1.5 * u.ms + + # neuronal populations + RS_par_ = RS_par.copy() + FS_par_ = FS_par.copy() + FS2_par_ = FS_par.copy() + RS_par_.update(Vth=-50 * u.mV, V_sp_th=-40 * u.mV) + FS_par_.update(Vth=-50 * u.mV, V_sp_th=-40 * u.mV) + FS2_par_.update(Vth=-50 * u.mV, V_sp_th=-40 * u.mV) + self.rs_pop = AdEx(self.num_rs, tau_e=self.exc_syn_tau, tau_i=self.inh_syn_tau, **RS_par_) + self.fs_pop = AdEx(self.num_fs, tau_e=self.exc_syn_tau, tau_i=self.inh_syn_tau, **FS_par_) + self.fs2_pop = AdEx(self.num_fs2, tau_e=self.exc_syn_tau, tau_i=self.inh_syn_tau, **FS2_par_) + self.ext_pop = brainpy.PoissonEncoder(self.num_rs) + + # Poisson inputs + self.ext_to_FS = brainpy.DeltaProj( + comm=brainstate.nn.EventFixedProb(self.num_rs, self.num_fs, 0.02, self.ext_weight), + post=self.fs_pop, + label='ge' + ) + self.ext_to_RS = brainpy.DeltaProj( + comm=brainstate.nn.EventFixedProb(self.num_rs, self.num_rs, 0.02, self.ext_weight), + post=self.rs_pop, + label='ge' + ) + self.ext_to_RS2 = brainpy.DeltaProj( + comm=brainstate.nn.EventFixedProb(self.num_rs, self.num_fs2, 0.02, self.ext_weight), + post=self.fs2_pop, + label='ge' + ) + + # synaptic projections + self.RS_to_FS = brainpy.DeltaProj( + self.rs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_rs, self.num_fs, 0.02, self.exc_syn_weight), + post=self.fs_pop, + label='ge' + ) + self.RS_to_RS = brainpy.DeltaProj( + self.rs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_rs, self.num_rs, 0.02, self.exc_syn_weight), + post=self.rs_pop, + label='ge' + ) + self.RS_to_FS2 = brainpy.DeltaProj( + self.rs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_rs, self.num_fs2, 0.15, self.exc_syn_weight), + post=self.fs2_pop, + label='ge' + ) + + self.FS_to_RS = brainpy.DeltaProj( + self.fs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_fs, self.num_rs, 0.02, self.inh_syn_weight), + post=self.rs_pop, + label='gi' + ) + self.FS_to_FS = brainpy.DeltaProj( + self.fs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_fs, self.num_fs, 0.02, self.inh_syn_weight), + post=self.fs_pop, + label='gi' + ) + self.FS_to_FS2 = brainpy.DeltaProj( + self.fs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_fs, self.num_fs2, 0.03, self.inh_syn_weight), + post=self.fs2_pop, + label='gi' + ) + + self.FS2_to_RS = brainpy.DeltaProj( + self.fs2_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_fs2, self.num_rs, 0.15, self.exc_syn_weight), + post=self.rs_pop, + label='gi' + ) + self.FS2_to_FS = brainpy.DeltaProj( + self.fs2_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_fs2, self.num_fs, 0.15, self.exc_syn_weight), + post=self.fs_pop, + label='gi' + ) + self.FS2_to_FS2 = brainpy.DeltaProj( + self.fs2_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_fs2, self.num_fs2, 0.6, self.exc_syn_weight), + post=self.fs2_pop, + label='gi' + ) + + def update(self, i, t, freq): + with brainstate.environ.context(t=t, i=i): + ext_spikes = self.ext_pop(freq) + self.ext_to_FS(ext_spikes) + self.ext_to_RS(ext_spikes) + self.ext_to_RS2(ext_spikes) + + self.RS_to_RS() + self.RS_to_FS() + self.RS_to_FS2() + + self.FS_to_RS() + self.FS_to_FS() + self.FS_to_FS2() + + self.FS2_to_RS() + self.FS2_to_FS() + self.FS2_to_FS2() + + self.rs_pop() + self.fs_pop() + self.fs2_pop() + + return { + 'FS.V0': self.fs_pop.V.value[0], + 'FS2.V0': self.fs2_pop.V.value[0], + 'RS.V0': self.rs_pop.V.value[0], + 'FS.spike': self.fs_pop.spike.value, + 'FS2.spike': self.fs2_pop.spike.value, + 'RS.spike': self.rs_pop.spike.value + } + + +def simulate_ing_net(): + with brainstate.environ.context(dt=0.1 * u.ms): + # inputs + duration = 6e3 * u.ms + varied_rates = get_inputs(2. * u.Hz, 3. * u.Hz, 50. * u.ms, 350 * u.ms, 600 * u.ms, 1e3 * u.ms, duration) + + # network + net = brainstate.nn.init_all_states(INGNet()) + + # simulation + times = u.math.arange(0. * u.ms, duration, brainstate.environ.get_dt()) + indices = u.math.arange(0, len(times)) + returns = brainstate.transform.for_loop(net.update, indices, times, varied_rates, + pbar=brainstate.transform.ProgressBar(100)) + + # visualization + visualize_simulation_results( + times=times, + spikes={'FS': (returns['FS.spike'], 'inh'), + 'FS2': (returns['FS2.spike'], 'inh'), + 'RS': (returns['RS.spike'], 'exc')}, + example_potentials={'FS': returns['FS.V0'], + 'FS2': returns['FS2.V0'], + 'RS': returns['RS.V0']}, + varied_rates=varied_rates, + xlim=(2e3 * u.ms, 3.4e3 * u.ms), + t_lfp_start=1e3 * u.ms, + t_lfp_end=5e3 * u.ms + ) + + +simulate_ing_net() diff --git a/examples/113_Susin_Destexhe_2021_gamma_oscillation_PING.py b/examples/113_Susin_Destexhe_2021_gamma_oscillation_PING.py new file mode 100644 index 000000000..665438538 --- /dev/null +++ b/examples/113_Susin_Destexhe_2021_gamma_oscillation_PING.py @@ -0,0 +1,147 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + + +# +# Implementation of the paper: +# +# - Susin, Eduarda, and Alain Destexhe. “Integration, coincidence detection and resonance in networks of +# spiking neurons expressing gamma oscillations and asynchronous states.” PLoS computational biology 17.9 (2021): e1009416. +# +# PING Network for Generating Gamma Oscillation + + +import brainunit as u + +import brainpy +import brainstate +from Susin_Destexhe_2021_gamma_oscillation import ( + get_inputs, visualize_simulation_results, RS_par, FS_par, AdEx +) + + +class PINGNet(brainstate.nn.DynamicsGroup): + def __init__(self): + super().__init__() + + self.num_exc = 20000 + self.num_inh = 5000 + self.exc_syn_tau = 1. * u.ms + self.inh_syn_tau = 7.5 * u.ms + self.exc_syn_weight = 5. * u.nS + self.inh_syn_weight = 3.34 * u.nS + self.ext_weight = 4. * u.nS + self.delay = 1.5 * u.ms + + # neuronal populations + RS_par_ = RS_par.copy() + FS_par_ = FS_par.copy() + RS_par_.update(Vth=-50 * u.mV, V_sp_th=-40 * u.mV) + FS_par_.update(Vth=-50 * u.mV, V_sp_th=-40 * u.mV) + self.rs_pop = AdEx(self.num_exc, tau_e=self.exc_syn_tau, tau_i=self.inh_syn_tau, **RS_par_) + self.fs_pop = AdEx(self.num_inh, tau_e=self.exc_syn_tau, tau_i=self.inh_syn_tau, **FS_par_) + self.ext_pop = brainpy.PoissonEncoder(self.num_exc) + + # Poisson inputs + self.ext_to_FS = brainpy.DeltaProj( + comm=brainstate.nn.EventFixedProb(self.num_exc, self.num_inh, 0.02, self.ext_weight), + post=self.fs_pop, + label='ge' + ) + self.ext_to_RS = brainpy.DeltaProj( + comm=brainstate.nn.EventFixedProb(self.num_exc, self.num_exc, 0.02, self.ext_weight), + post=self.rs_pop, + label='ge' + ) + + # synaptic projections + self.RS_to_FS = brainpy.DeltaProj( + self.rs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_exc, self.num_inh, 0.02, self.exc_syn_weight), + post=self.fs_pop, + label='ge' + ) + self.RS_to_RS = brainpy.DeltaProj( + self.rs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_exc, self.num_exc, 0.02, self.exc_syn_weight), + post=self.rs_pop, + label='ge' + ) + self.FS_to_RS = brainpy.DeltaProj( + self.fs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_inh, self.num_exc, 0.02, self.inh_syn_weight), + post=self.rs_pop, + label='gi' + ) + self.FS_to_FS = brainpy.DeltaProj( + self.fs_pop.prefetch('spike').delay.at(self.delay), + comm=brainstate.nn.EventFixedProb(self.num_inh, self.num_inh, 0.02, self.inh_syn_weight), + post=self.fs_pop, + label='gi' + ) + + def update(self, i, t, freq): + with brainstate.environ.context(t=t, i=i): + ext_spikes = self.ext_pop(freq) + self.ext_to_FS(ext_spikes) + self.ext_to_RS(ext_spikes) + + self.RS_to_RS() + self.RS_to_FS() + + self.FS_to_RS() + self.FS_to_FS() + + self.rs_pop() + self.fs_pop() + + return { + 'FS.V0': self.fs_pop.V.value[0], + 'RS.V0': self.rs_pop.V.value[0], + 'FS.spike': self.fs_pop.spike.value, + 'RS.spike': self.rs_pop.spike.value + } + + +def simulate_ping_net(): + with brainstate.environ.context(dt=0.1 * u.ms): + # inputs + duration = 6e3 * u.ms + varied_rates = get_inputs(2. * u.Hz, 3. * u.Hz, 50. * u.ms, 3150 * u.ms, 600 * u.ms, 1e3 * u.ms, duration) + + # network + net = brainstate.nn.init_all_states(PINGNet()) + + # simulation + times = u.math.arange(0. * u.ms, duration, brainstate.environ.get_dt()) + indices = u.math.arange(0, len(times)) + returns = brainstate.transform.for_loop(net.update, indices, times, varied_rates, + pbar=brainstate.transform.ProgressBar(100)) + + # visualization + visualize_simulation_results( + times=times, + spikes={'FS': (returns['FS.spike'], 'inh'), + 'RS': (returns['RS.spike'], 'exc')}, + example_potentials={'FS': returns['FS.V0'], + 'RS': returns['RS.V0']}, + varied_rates=varied_rates, + xlim=(2e3 * u.ms, 3.4e3 * u.ms), + t_lfp_start=1e3 * u.ms, + t_lfp_end=5e3 * u.ms + ) + + +simulate_ping_net() diff --git a/examples/200_surrogate_grad_lif.py b/examples/200_surrogate_grad_lif.py new file mode 100644 index 000000000..19186f3e4 --- /dev/null +++ b/examples/200_surrogate_grad_lif.py @@ -0,0 +1,156 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + + +""" +Reproduce the results of the``spytorch`` tutorial 1: + +- https://github.com/surrogate-gradient-learning/spytorch/blob/master/notebooks/SpyTorchTutorial1.ipynb + +""" + +import time + +import brainunit as u +import jax.numpy as jnp +import matplotlib.pyplot as plt +import numpy as np + +import brainpy +import brainstate +import braintools + + +class SNN(brainstate.nn.Module): + def __init__(self, num_in, num_rec, num_out): + super(SNN, self).__init__() + + # parameters + self.num_in = num_in + self.num_rec = num_rec + self.num_out = num_out + + # synapse: i->r + scale = 7 * (1 - (u.math.exp(-brainstate.environ.get_dt() / (1 * u.ms)))) + self.i2r = brainstate.nn.Sequential( + brainstate.nn.Linear( + num_in, num_rec, + w_init=braintools.init.KaimingNormal(scale=scale, unit=u.mA), + b_init=braintools.init.ZeroInit(unit=u.mA) + ), + brainpy.Expon(num_rec, tau=5. * u.ms, g_initializer=braintools.init.Constant(0. * u.mA)) + ) + # recurrent: r + self.r = brainpy.LIF( + num_rec, tau=20 * u.ms, V_reset=0 * u.mV, + V_rest=0 * u.mV, V_th=1. * u.mV, + spk_fun=braintools.surrogate.ReluGrad() + ) + # synapse: r->o + self.r2o = brainstate.nn.Linear(num_rec, num_out, w_init=braintools.init.KaimingNormal()) + # # output: o + self.o = brainpy.Expon(num_out, tau=10. * u.ms, g_initializer=braintools.init.Constant(0.)) + + def update(self, spike): + return self.o(self.r2o(self.r(self.i2r(spike)))) + + def predict(self, spike): + rec_spikes = self.r(self.i2r(spike)) + out = self.o(self.r2o(rec_spikes)) + return self.r.V.value, rec_spikes, out + + +def plot_voltage_traces(mem, spk=None, dim=(3, 5), spike_height=5, show=True): + fig, gs = braintools.visualize.get_figure(*dim, 3, 3) + if spk is not None: + mem[spk > 0.0] = spike_height + if isinstance(mem, u.Quantity): + mem = mem.to_decimal(u.mV) + for i in range(np.prod(dim)): + if i == 0: + a0 = ax = plt.subplot(gs[i]) + else: + ax = plt.subplot(gs[i], sharey=a0) + ax.plot(mem[:, i]) + if show: + plt.show() + + +def print_classification_accuracy(output, target): + """ Dirty little helper function to compute classification accuracy. """ + m = u.math.max(output, axis=0) # max over time + am = u.math.argmax(m, axis=1) # argmax over output units + acc = u.math.mean(target == am) # compare to labels + print("Accuracy %.3f" % acc) + + +def predict_and_visualize_net_activity(net): + brainstate.nn.init_all_states(net, batch_size=num_sample) + vs, spikes, outs = brainstate.transform.for_loop(net.predict, x_data, pbar=brainstate.transform.ProgressBar(10)) + plot_voltage_traces(vs, spikes, spike_height=5 * u.mV, show=False) + plot_voltage_traces(outs) + print_classification_accuracy(outs, y_data) + + +with brainstate.environ.context(dt=1.0 * u.ms): + # network + net = SNN(100, 4, 2) + + # dataset + num_step = 200 + num_sample = 256 + freq = 5 * u.Hz + x_data = brainstate.random.rand(num_step, num_sample, net.num_in) < freq * brainstate.environ.get_dt() + y_data = u.math.asarray(brainstate.random.rand(num_sample) < 0.5, dtype=int) + + # Before training + predict_and_visualize_net_activity(net) + + # brainstate optimizer + optimizer = braintools.optim.Adam(lr=3e-3) + optimizer.register_trainable_weights(net.states(brainstate.ParamState)) + + def loss_fn(): + predictions = brainstate.compile.for_loop(net.update, x_data) + predictions = u.math.mean(predictions, axis=0) # [T, B, C] -> [B, C] + return braintools.metric.softmax_cross_entropy_with_integer_labels(predictions, y_data).mean() + + + @brainstate.compile.jit + def train_fn(): + brainstate.nn.init_all_states(net, batch_size=num_sample) + grads, l = brainstate.transform.grad(loss_fn, net.states(brainstate.ParamState), return_value=True)() + optimizer.update(grads) + return l + + + # train the network + train_losses = [] + t0 = time.time() + for i in range(1, 3001): + loss = train_fn() + train_losses.append(loss) + if i % 100 == 0: + print(f'Train {i} epoch, loss = {loss:.4f}, used time {time.time() - t0:.4f} s') + t0 = time.time() + + # visualize the training losses + plt.plot(np.asarray(jnp.asarray(train_losses))) + plt.xlabel("Epoch") + plt.ylabel("Training Loss") + plt.title("Training Loss vs Epoch") + + # predict the output according to the input data + predict_and_visualize_net_activity(net) diff --git a/examples/201_surrogate_grad_lif_fashion_mnist.py b/examples/201_surrogate_grad_lif_fashion_mnist.py new file mode 100644 index 000000000..e8f2dc9c1 --- /dev/null +++ b/examples/201_surrogate_grad_lif_fashion_mnist.py @@ -0,0 +1,221 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + +""" +Reproduce the results of the``spytorch`` tutorial 2 & 3: + +- https://github.com/surrogate-gradient-learning/spytorch/blob/master/notebooks/SpyTorchTutorial2.ipynb +- https://github.com/surrogate-gradient-learning/spytorch/blob/master/notebooks/SpyTorchTutorial3.ipynb + +""" + +import time + +import brainunit as u +import jax.numpy as jnp +import matplotlib.pyplot as plt +import numpy as np +from datasets import load_dataset + +import brainpy +import brainstate +import braintools + +dataset = load_dataset("zalando-datasets/fashion_mnist") + +# images +X_train = np.array(np.stack(dataset['train']['image']), dtype=np.uint8) +X_test = np.array(np.stack(dataset['test']['image']), dtype=np.uint8) +X_train = (X_train / 255).reshape(-1, 28 * 28).astype(jnp.float32) +X_test = (X_test / 255).reshape(-1, 28 * 28).astype(jnp.float32) +print(f'Training image shape: {X_train.shape}, testing image shape: {X_test.shape}') +# labels +Y_train = np.array(dataset['train']['label'], dtype=np.int32) +Y_test = np.array(dataset['test']['label'], dtype=np.int32) + + +class SNN(brainstate.nn.DynamicsGroup): + """ + This class implements a spiking neural network model with three layers: + + i >> r >> o + + Each two layers are connected through the exponential synapse model. + """ + + def __init__(self, num_in, num_rec, num_out): + super().__init__() + + # parameters + self.num_in = num_in + self.num_rec = num_rec + self.num_out = num_out + + # synapse: i->r + self.i2r = brainstate.nn.Sequential( + brainstate.nn.Linear(num_in, num_rec, w_init=braintools.init.KaimingNormal(scale=40.)), + brainpy.Expon(num_rec, tau=10. * u.ms, g_initializer=braintools.init.ZeroInit()) + ) + # recurrent: r + self.r = brainpy.LIF(num_rec, tau=10 * u.ms, V_reset=0 * u.mV, V_rest=0 * u.mV, V_th=1. * u.mV) + # synapse: r->o + self.r2o = brainstate.nn.Sequential( + brainstate.nn.Linear(num_rec, num_out, w_init=braintools.init.KaimingNormal(scale=2.)), + brainpy.Expon(num_out, tau=10. * u.ms, g_initializer=braintools.init.ZeroInit()) + ) + + def update(self, spikes): + r_spikes = self.r(self.i2r(spikes) * u.mA) + out = self.r2o(r_spikes) + return out, r_spikes + + def predict(self, spikes): + r_spikes = self.r(self.i2r(spikes) * u.mA) + out = self.r2o(r_spikes) + return out, r_spikes, self.r.V.value + + +with brainstate.environ.context(dt=1.0 * u.ms): + # inputs + batch_size = 256 + + # spiking neural networks + net = SNN(num_in=X_train.shape[-1], num_rec=100, num_out=10) + + # encoding inputs as spikes + encoder = braintools.LatencyEncoder(tau=100 * u.ms) + + + @brainstate.transform.jit + def predict(xs): + brainstate.nn.init_all_states(net, xs.shape[0]) + xs = encoder(xs) + outs, spikes, vs = brainstate.transform.for_loop(net.predict, xs) + return outs, spikes, vs + + + def visualize(xs): + # visualization function + outs, spikes, vs = predict(xs) + xs = np.asarray(encoder(xs)) + vs = np.asarray(vs.to_decimal(u.mV)) + # vs = np.where(spikes, vs, 5.0) + fig, gs = braintools.visualize.get_figure(4, 4, 3., 4.) + for i in range(4): + ax = fig.add_subplot(gs[i, 0]) + i_indice, n_indices = np.where(xs[:, i]) + ax.plot(i_indice, n_indices, 'r.', markersize=1) + plt.title('Input spikes') + ax = fig.add_subplot(gs[i, 1]) + i_indice, n_indices = np.where(spikes[:, i]) + ax.plot(i_indice, n_indices, 'r.', markersize=1) + plt.title('Recurrent spikes') + ax = fig.add_subplot(gs[i, 2]) + ax.plot(vs[:, i]) + plt.title('Membrane potential') + ax = fig.add_subplot(gs[i, 3]) + ax.plot(outs[:, i]) + plt.title('Output') + plt.show() + + + # visualization of the spiking activity + visualize(X_test[:4]) + + # optimizer + optimizer = braintools.optim.Adam(lr=1e-3) + optimizer.register_trainable_weights(net.states(brainstate.ParamState)) + + + def loss_fun(xs, ys): + # initialize states + brainstate.nn.init_all_states(net, xs.shape[0]) + + # encode inputs + xs = encoder(xs) + + # predictions + outs, r_spikes = brainstate.transform.for_loop(net.update, xs) + + # Here we set up our regularize loss + # The strength parameters here are merely a guess and there should be ample + # room for improvement by tuning these parameters. + l1_loss = 1e-5 * u.math.sum(r_spikes) # L1 loss on total number of spikes + l2_loss = 1e-5 * u.math.mean( + u.math.sum(u.math.sum(r_spikes, axis=0), axis=0) ** 2) # L2 loss on spikes per neuron + + # predictions + predicts = u.math.max(outs, axis=0) # max over time, [T, B, C] -> [B, C] + loss = braintools.metric.softmax_cross_entropy_with_integer_labels(predicts, ys).mean() + correct_n = u.math.sum(ys == u.math.argmax(predicts, axis=1)) # compare to labels + return loss + l2_loss + l1_loss, correct_n + + + @brainstate.transform.jit + def train_fn(xs, ys): + grads, loss, correct_n = brainstate.transform.grad( + loss_fun, net.states(brainstate.ParamState), has_aux=True, return_value=True)(xs, ys) + optimizer.update(grads) + return loss, correct_n + + + n_epoch = 20 + train_losses, train_accs = [], [] + indices = np.arange(X_train.shape[0]) + + for epoch_i in range(n_epoch): + indices = brainstate.random.shuffle(indices) + + # training phase + t0 = time.time() + loss, train_acc = [], 0. + for i in range(0, X_train.shape[0], batch_size): + X = X_train[indices[i: i + batch_size]] + Y = Y_train[indices[i: i + batch_size]] + l, correct_num = train_fn(X, Y) + loss.append(l) + train_acc += correct_num + train_acc /= X_train.shape[0] + train_loss = jnp.mean(jnp.asarray(loss)) + optimizer.lr.step_epoch() + + # testing phase + loss, test_acc = [], 0. + for i in range(0, X_test.shape[0], batch_size): + X = X_test[i: i + batch_size] + Y = Y_test[i: i + batch_size] + l, correct_num = loss_fun(X, Y) + loss.append(l) + test_acc += correct_num + test_acc /= X_test.shape[0] + test_loss = jnp.mean(jnp.asarray(loss)) + + t = (time.time() - t0) / 60 + print(f"Epoch {epoch_i}: train loss={train_loss:.3f}, acc={train_acc:.3f}, " + f"test loss={test_loss:.3f}, acc={test_acc:.3f}, time={t:.2f} min") + train_losses.append(train_loss) + train_accs.append(train_acc) + + fig, gs = braintools.visualize.get_figure(1, 2, 3, 4) + fig.add_subplot(gs[0]) + plt.plot(np.asarray(train_losses)) + plt.xlabel("Epoch") + plt.ylabel("Loss") + fig.add_subplot(gs[1]) + plt.plot(np.asarray(train_accs)) + plt.xlabel("Epoch") + plt.ylabel("Accuracy") + + visualize(X_test[:4]) diff --git a/examples/202_mnist_lif_readout.py b/examples/202_mnist_lif_readout.py new file mode 100644 index 000000000..3b7433e4a --- /dev/null +++ b/examples/202_mnist_lif_readout.py @@ -0,0 +1,176 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + + +import argparse +import time + +import brainpy +import braintools +import brainunit as u +import jax.numpy as jnp +import matplotlib.pyplot as plt +import numpy as np +from datasets import load_dataset + +import brainstate + +parser = argparse.ArgumentParser(description='LIF MNIST Training') +parser.add_argument('-T', default=100, type=int, help='simulating time-steps') +parser.add_argument('-platform', default='cpu', help='device') +parser.add_argument('-batch', default=64, type=int, help='batch size') +parser.add_argument('-epochs', default=15, type=int, metavar='N', help='number of total epochs to run') +parser.add_argument('-out-dir', type=str, default='./logs', help='root dir for saving logs and checkpoint') +parser.add_argument('-lr', default=1e-3, type=float, help='learning rate') +parser.add_argument('-tau', default=2.0, type=float, help='parameter tau of LIF neuron') +args = parser.parse_args() +print(args) + + +class SNN(brainstate.nn.Module): + def __init__(self, tau): + super().__init__() + self.l1 = brainstate.nn.Linear( + 28 * 28, 10, b_init=None, w_init=braintools.init.LecunNormal(scale=10., unit=u.mA)) + self.l2 = brainpy.LIF(10, V_rest=0. * u.mV, V_reset=0. * u.mV, V_th=1. * u.mV, tau=tau * u.ms) + + def update(self, x): + return self.l2(self.l1(x)) + + def predict(self, x): + spikes = self.l2(self.l1(x)) + return self.l2.V.value, spikes + + +with brainstate.environ.context(dt=1.0 * u.ms): + net = SNN(args.tau) + + dataset = load_dataset('mnist') + # images + X_train = np.array(np.stack(dataset['train']['image']), dtype=np.uint8) + X_test = np.array(np.stack(dataset['test']['image']), dtype=np.uint8) + X_train = (X_train / 255).reshape(-1, 28 * 28).astype(jnp.float32) + X_test = (X_test / 255).reshape(-1, 28 * 28).astype(jnp.float32) + # labels + Y_train = np.array(dataset['train']['label'], dtype=np.int32) + Y_test = np.array(dataset['test']['label'], dtype=np.int32) + + + @brainstate.transform.jit + def predict(xs): + brainstate.nn.init_all_states(net, xs.shape[0]) + xs = (xs + 0.02) + xs = brainstate.random.rand(args.T, *xs.shape) < xs + vs, outs = brainstate.transform.for_loop(net.predict, xs) + return vs, outs + + + def visualize(xs): + vs, outs = predict(xs) + vs = np.asarray(vs.to_decimal(u.mV)) + fig, gs = braintools.visualize.get_figure(4, 2, 3., 6.) + for i in range(4): + ax = fig.add_subplot(gs[i, 0]) + i_indice, n_indices = np.where(outs[:, i]) + ax.plot(i_indice, n_indices, 'r.', markersize=1) + ax.set_xlim([0, args.T]) + ax.set_ylim([0, net.l2.varshape[0]]) + ax = fig.add_subplot(gs[i, 1]) + ax.plot(vs[:, i]) + ax.set_xlim([0, args.T]) + plt.show() + + + # visualization of the spiking activity + visualize(X_test[:4]) + + + @brainstate.transform.jit + def loss_fun(xs, ys): + # initialize states + brainstate.nn.init_all_states(net, xs.shape[0]) + + # encoding inputs as spikes + xs = brainstate.random.rand(args.T, *xs.shape) < xs + + # shared arguments for looping over time + outs = brainstate.transform.for_loop(net.update, xs) + out_fr = u.math.mean(outs, axis=0) # [T, B, C] -> [B, C] + ys_onehot = brainstate.nn.one_hot(ys, 10, dtype=float) + l = braintools.metric.squared_error(out_fr, ys_onehot).mean() + n = u.math.sum(out_fr.argmax(1) == ys) + return l, n + + + # gradient function + grad_fun = brainstate.transform.grad(loss_fun, net.states(brainstate.ParamState), has_aux=True, return_value=True) + + # optimizer + optimizer = braintools.optim.Adam(lr=args.lr) + optimizer.register_trainable_weights(net.states(brainstate.ParamState)) + + + # train + @brainstate.transform.jit + def train(xs, ys): + print('compiling...') + + grads, l, n = grad_fun(xs, ys) + optimizer.update(grads) + return l, n + + + # training loop + for epoch_i in range(args.epochs): + key = brainstate.random.split_key() + X_train = brainstate.random.shuffle(X_train, key=key) + Y_train = brainstate.random.shuffle(Y_train, key=key) + + # training phase + t0 = time.time() + loss, train_acc = [], 0. + for i in range(0, X_train.shape[0], args.batch): + X = X_train[i: i + args.batch] + Y = Y_train[i: i + args.batch] + l, correct_num = train(X, Y) + loss.append(l) + train_acc += correct_num + train_acc /= X_train.shape[0] + train_loss = jnp.mean(jnp.asarray(loss)) + optimizer.lr.step_epoch() + + # testing phase + loss, test_acc = [], 0. + for i in range(0, X_test.shape[0], args.batch): + X = X_test[i: i + args.batch] + Y = Y_test[i: i + args.batch] + l, correct_num = loss_fun(X, Y) + loss.append(l) + test_acc += correct_num + test_acc /= X_test.shape[0] + test_loss = jnp.mean(jnp.asarray(loss)) + + t = (time.time() - t0) / 60 + print(f'epoch {epoch_i}, used {t:.3f} min, ' + f'train loss = {train_loss:.4f}, acc = {train_acc:.4f}, ' + f'test loss = {test_loss:.4f}, acc = {test_acc:.4f}') + + # inference + correct_num = 0. + for i in range(0, X_test.shape[0], 512): + X = X_test[i: i + 512] + Y = Y_test[i: i + 512] + correct_num += loss_fun(X, Y)[1] + print('Max test accuracy: ', correct_num / X_test.shape[0]) diff --git a/examples/Susin_Destexhe_2021_gamma_oscillation.py b/examples/Susin_Destexhe_2021_gamma_oscillation.py new file mode 100644 index 000000000..d1670e45d --- /dev/null +++ b/examples/Susin_Destexhe_2021_gamma_oscillation.py @@ -0,0 +1,273 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + +# +# Implementation of the paper: +# +# - Susin, Eduarda, and Alain Destexhe. “Integration, coincidence detection and resonance in networks of spiking neurons expressing gamma oscillations and asynchronous states.” PLoS computational biology 17.9 (2021): e1009416. +# + +import brainunit as u +import matplotlib.pyplot as plt +import numpy as np +from scipy.signal import kaiserord, lfilter, firwin, hilbert + +import brainpy +import brainstate +import braintools + +# Table 1: specific neuron model parameters +RS_par = dict( + Vth=-40 * u.mV, delta=2. * u.mV, tau_ref=5. * u.ms, tau_w=500 * u.ms, + a=4 * u.nS, b=20 * u.pA, C=150 * u.pF, gL=10 * u.nS, EL=-65 * u.mV, V_reset=-65 * u.mV, + E_e=0. * u.mV, E_i=-80. * u.mV +) +FS_par = dict( + Vth=-47.5 * u.mV, delta=0.5 * u.mV, tau_ref=5. * u.ms, tau_w=500 * u.ms, + a=0 * u.nS, b=0 * u.pA, C=150 * u.pF, gL=10 * u.nS, EL=-65 * u.mV, V_reset=-65 * u.mV, + E_e=0. * u.mV, E_i=-80. * u.mV +) +Ch_par = dict( + Vth=-47.5 * u.mV, delta=0.5 * u.mV, tau_ref=1. * u.ms, tau_w=50 * u.ms, + a=80 * u.nS, b=150 * u.pA, C=150 * u.pF, gL=10 * u.nS, EL=-58 * u.mV, V_reset=-65 * u.mV, + E_e=0. * u.mV, E_i=-80. * u.mV, +) + + +class AdEx(brainpy.Neuron): + def __init__( + self, + in_size, + # neuronal parameters + Vth=-40 * u.mV, delta=2. * u.mV, tau_ref=5. * u.ms, tau_w=500 * u.ms, + a=4 * u.nS, b=20 * u.pA, C=150 * u.pF, + gL=10 * u.nS, EL=-65 * u.mV, V_reset=-65 * u.mV, V_sp_th=-40. * u.mV, + # synaptic parameters + tau_e=1.5 * u.ms, tau_i=7.5 * u.ms, E_e=0. * u.mV, E_i=-80. * u.mV, + # other parameters + V_initializer=braintools.init.Uniform(-65., -50., unit=u.mV), + w_initializer=braintools.init.Constant(0. * u.pA), + ge_initializer=braintools.init.Constant(0. * u.nS), + gi_initializer=braintools.init.Constant(0. * u.nS), + ): + super().__init__(in_size=in_size) + + # neuronal parameters + self.Vth = Vth + self.delta = delta + self.tau_ref = tau_ref + self.tau_w = tau_w + self.a = a + self.b = b + self.C = C + self.gL = gL + self.EL = EL + self.V_reset = V_reset + self.V_sp_th = V_sp_th + + # synaptic parameters + self.tau_e = tau_e + self.tau_i = tau_i + self.E_e = E_e + self.E_i = E_i + + # other parameters + self.V_initializer = V_initializer + self.w_initializer = w_initializer + self.ge_initializer = ge_initializer + self.gi_initializer = gi_initializer + + def init_state(self): + # neuronal variables + self.V = brainstate.HiddenState(braintools.init.param(self.V_initializer, self.varshape)) + self.w = brainstate.HiddenState(braintools.init.param(self.w_initializer, self.varshape)) + self.t_last_spike = brainstate.HiddenState( + braintools.init.param(braintools.init.Constant(-1e7 * u.ms), self.varshape) + ) + self.spike = brainstate.HiddenState(braintools.init.param(lambda s: u.math.zeros(s, bool), self.varshape)) + + # synaptic parameters + self.ge = brainstate.HiddenState(braintools.init.param(self.ge_initializer, self.varshape)) + self.gi = brainstate.HiddenState(braintools.init.param(self.gi_initializer, self.varshape)) + + def dV(self, V, w, ge, gi, Iext): + I = ge * (self.E_e - V) + gi * (self.E_i - V) + Iext = self.sum_current_inputs(Iext) + dVdt = (self.gL * self.delta * u.math.exp((V - self.Vth) / self.delta) + - w + self.gL * (self.EL - V) + I + Iext) / self.C + return dVdt + + def dw(self, w, V): + dwdt = (self.a * (V - self.EL) - w) / self.tau_w + return dwdt + + def update(self, x=0. * u.pA): + # numerical integration + ge = brainstate.nn.exp_euler_step(lambda g: -g / self.tau_e, self.ge.value) + ge = self.sum_delta_inputs(ge, label='ge') + gi = brainstate.nn.exp_euler_step(lambda g: -g / self.tau_i, self.gi.value) + gi = self.sum_delta_inputs(gi, label='gi') + V = brainstate.nn.exp_euler_step(self.dV, self.V.value, self.w.value, self.ge.value, self.gi.value, x) + V = self.sum_delta_inputs(V, label='V') + w = brainstate.nn.exp_euler_step(self.dw, self.w.value, self.V.value) + # spike detection + t = brainstate.environ.get('t') + refractory = (t - self.t_last_spike.value) <= self.tau_ref + V = u.math.where(refractory, self.V.value, V) + spike = V >= self.V_sp_th + self.V.value = u.math.where(spike, self.V_reset, V) + self.w.value = u.math.where(spike, w + self.b, w) + self.ge.value = ge + self.gi.value = gi + self.spike.value = spike + self.t_last_spike.value = u.math.where(spike, t, self.t_last_spike.value) + return spike + + +def get_inputs(c_low, c_high, t_transition, t_min_plato, t_max_plato, t_gap, t_total): + t = 0 + dt = brainstate.environ.get_dt() + num_gap = int(t_gap / dt) + num_total = int(t_total / dt) + num_transition = int(t_transition / dt) + + inputs = [] + ramp_up = u.math.linspace(c_low, c_high, num_transition) + ramp_down = u.math.linspace(c_high, c_low, num_transition) + plato_base = u.math.ones(num_gap) * c_low + while t < num_total: + num_plato = int(brainstate.random.uniform(low=t_min_plato, high=t_max_plato) / dt) + inputs.extend([plato_base, ramp_up, np.ones(num_plato) * c_high, ramp_down]) + t += (num_gap + num_transition + num_plato + num_transition) + return u.math.concatenate(inputs)[:num_total] + + +def signal_phase_by_Hilbert(signal, signal_time, low_cut, high_cut, sampling_space): + # sampling_space: in seconds (no units) + # signal_time: in seconds (no units) + # low_cut: in Hz (no units)(band to filter) + # high_cut: in Hz (no units)(band to filter) + + signal = signal - np.mean(signal) + width = 5.0 # The desired width in Hz of the transition from pass to stop + ripple_db = 60.0 # The desired attenuation in the stop band, in dB. + sampling_rate = 1. / sampling_space + Nyquist = sampling_rate / 2. + + num_taps, beta = kaiserord(ripple_db, width / Nyquist) + if num_taps % 2 == 0: + num_taps = num_taps + 1 # Numtaps must be odd + taps = firwin(num_taps, [low_cut / Nyquist, high_cut / Nyquist], window=('kaiser', beta), + pass_zero=False, scale=True) + filtered_signal = lfilter(taps, 1.0, signal) + delay = 0.5 * (num_taps - 1) / sampling_rate # To corrected to zero-phase + delay_index = int(np.floor(delay * sampling_rate)) + filtered_signal = filtered_signal[num_taps - 1:] # taking out the "corrupted" signal + # correcting the delay and taking out the "corrupted" signal part + filtered_time = signal_time[num_taps - 1:] - delay + cutted_signal = signal[(num_taps - 1 - delay_index): (len(signal) - (num_taps - 1 - delay_index))] + + # -------------------------------------------------------------------------- + # The hilbert transform are very slow when the signal has odd lenght, + # This part check if the length is odd, and if this is the case it adds a zero in the end + # of all the vectors related to the filtered Signal: + if len(filtered_signal) % 2 != 0: # If the lengh is odd + tmp1 = filtered_signal.tolist() + tmp1.append(0) + tmp2 = filtered_time.tolist() + tmp2.append((len(filtered_time) + 1) * sampling_space + filtered_time[0]) + tmp3 = cutted_signal.tolist() + tmp3.append(0) + filtered_signal = np.asarray(tmp1) + filtered_time = np.asarray(tmp2) + cutted_signal = np.asarray(tmp3) + # -------------------------------------------------------------------------- + + ht_filtered_signal = hilbert(filtered_signal) + envelope = np.abs(ht_filtered_signal) + phase = np.angle(ht_filtered_signal) # The phase is between -pi and pi in radians + + return filtered_time, filtered_signal, cutted_signal, envelope, phase + + +def visualize_simulation_results( + times, spikes, example_potentials, varied_rates, + xlim=None, t_lfp_start=None, t_lfp_end=None, filename=None +): + times = times.to_decimal(u.ms) + varied_rates = varied_rates.to_decimal(u.Hz) + example_potentials = {k: v.to_decimal(u.mV) for k, v in example_potentials.items()} + + fig, gs = braintools.visualize.get_figure(7, 1, 1, 12) + # 1. input firing rate + ax = fig.add_subplot(gs[0]) + plt.plot(times, varied_rates) + if xlim is None: + xlim = (0, times[-1]) + else: + xlim = (xlim[0].to_decimal(u.ms), xlim[1].to_decimal(u.ms)) + ax.set_xlim(*xlim) + ax.set_xticks([]) + ax.set_ylabel('External\nRate (Hz)') + + # 2. inhibitory cell rater plot + ax = fig.add_subplot(gs[1: 3]) + i = 0 + y_ticks = ([], []) + for key, (sp_matrix, sp_type) in spikes.items(): + iis, sps = np.where(sp_matrix) + tts = times[iis] + plt.scatter(tts, sps + i, s=1, label=key) + y_ticks[0].append(i + sp_matrix.shape[1] / 2) + y_ticks[1].append(key) + i += sp_matrix.shape[1] + ax.set_xlim(*xlim) + ax.set_xlabel('') + ax.set_ylabel('Neuron Index') + ax.set_xticks([]) + ax.set_yticks(*y_ticks) + + # 3. example membrane potential + ax = fig.add_subplot(gs[3: 5]) + for key, potential in example_potentials.items(): + vs = np.where(spikes[key][0][:, 0], 0, potential) + plt.plot(times, vs, label=key) + ax.set_xlim(*xlim) + ax.set_xticks([]) + ax.set_ylabel('V (mV)') + ax.legend() + + # 4. LFP + ax = fig.add_subplot(gs[5:7]) + ax.set_xlim(*xlim) + t1 = int(t_lfp_start / brainstate.environ.get_dt()) if t_lfp_start is not None else 0 + t2 = int(t_lfp_end / brainstate.environ.get_dt()) if t_lfp_end is not None else len(times) + times = times[t1: t2] + lfp = 0 + for sp_matrix, sp_type in spikes.values(): + lfp += braintools.metric.unitary_LFP(times, sp_matrix[t1: t2], sp_type) + phase_ts, filtered, cutted, envelope, _ = signal_phase_by_Hilbert( + lfp, times * 1e-3, 30, 50, brainstate.environ.get_dt() / u.second + ) + plt.plot(phase_ts * 1e3, cutted, color='k', label='Raw LFP') + plt.plot(phase_ts * 1e3, filtered, color='orange', label="Filtered LFP (30-50 Hz)") + plt.plot(phase_ts * 1e3, envelope, color='purple', label="Hilbert Envelope") + plt.legend(loc='best') + plt.xlabel('Time (ms)') + + # save or show + if filename: + plt.savefig(filename, dpi=500) + plt.show() diff --git a/examples/dynamics_analysis/1d_qif.py b/examples_version2/dynamics_analysis/1d_qif.py similarity index 100% rename from examples/dynamics_analysis/1d_qif.py rename to examples_version2/dynamics_analysis/1d_qif.py diff --git a/examples/dynamics_analysis/2d_fitzhugh_nagumo_model.py b/examples_version2/dynamics_analysis/2d_fitzhugh_nagumo_model.py similarity index 100% rename from examples/dynamics_analysis/2d_fitzhugh_nagumo_model.py rename to examples_version2/dynamics_analysis/2d_fitzhugh_nagumo_model.py diff --git a/examples/dynamics_analysis/2d_mean_field_QIF.py b/examples_version2/dynamics_analysis/2d_mean_field_QIF.py similarity index 100% rename from examples/dynamics_analysis/2d_mean_field_QIF.py rename to examples_version2/dynamics_analysis/2d_mean_field_QIF.py diff --git a/examples/dynamics_analysis/3d_reduced_trn_model.py b/examples_version2/dynamics_analysis/3d_reduced_trn_model.py similarity index 100% rename from examples/dynamics_analysis/3d_reduced_trn_model.py rename to examples_version2/dynamics_analysis/3d_reduced_trn_model.py diff --git a/examples/dynamics_analysis/4d_HH_model.py b/examples_version2/dynamics_analysis/4d_HH_model.py similarity index 100% rename from examples/dynamics_analysis/4d_HH_model.py rename to examples_version2/dynamics_analysis/4d_HH_model.py diff --git a/examples/dynamics_analysis/highdim_RNN_Analysis.py b/examples_version2/dynamics_analysis/highdim_RNN_Analysis.py similarity index 100% rename from examples/dynamics_analysis/highdim_RNN_Analysis.py rename to examples_version2/dynamics_analysis/highdim_RNN_Analysis.py diff --git a/examples/dynamics_simulation/COBA.py b/examples_version2/dynamics_simulation/COBA.py similarity index 100% rename from examples/dynamics_simulation/COBA.py rename to examples_version2/dynamics_simulation/COBA.py diff --git a/examples/dynamics_simulation/decision_making_network.py b/examples_version2/dynamics_simulation/decision_making_network.py similarity index 100% rename from examples/dynamics_simulation/decision_making_network.py rename to examples_version2/dynamics_simulation/decision_making_network.py diff --git a/examples/dynamics_simulation/ei_nets.py b/examples_version2/dynamics_simulation/ei_nets.py similarity index 100% rename from examples/dynamics_simulation/ei_nets.py rename to examples_version2/dynamics_simulation/ei_nets.py diff --git a/examples/dynamics_simulation/hh_model.py b/examples_version2/dynamics_simulation/hh_model.py similarity index 100% rename from examples/dynamics_simulation/hh_model.py rename to examples_version2/dynamics_simulation/hh_model.py diff --git a/examples/dynamics_simulation/stdp.py b/examples_version2/dynamics_simulation/stdp.py similarity index 100% rename from examples/dynamics_simulation/stdp.py rename to examples_version2/dynamics_simulation/stdp.py diff --git a/examples/dynamics_simulation/whole_brain_simulation_with_fhn.py b/examples_version2/dynamics_simulation/whole_brain_simulation_with_fhn.py similarity index 100% rename from examples/dynamics_simulation/whole_brain_simulation_with_fhn.py rename to examples_version2/dynamics_simulation/whole_brain_simulation_with_fhn.py diff --git a/examples/dynamics_simulation/whole_brain_simulation_with_sl_oscillator.py b/examples_version2/dynamics_simulation/whole_brain_simulation_with_sl_oscillator.py similarity index 100% rename from examples/dynamics_simulation/whole_brain_simulation_with_sl_oscillator.py rename to examples_version2/dynamics_simulation/whole_brain_simulation_with_sl_oscillator.py diff --git a/examples/dynamics_training/Song_2016_EI_RNN.py b/examples_version2/dynamics_training/Song_2016_EI_RNN.py similarity index 100% rename from examples/dynamics_training/Song_2016_EI_RNN.py rename to examples_version2/dynamics_training/Song_2016_EI_RNN.py diff --git a/examples/dynamics_training/Sussillo_Abbott_2009_FORCE_Learning.py b/examples_version2/dynamics_training/Sussillo_Abbott_2009_FORCE_Learning.py similarity index 100% rename from examples/dynamics_training/Sussillo_Abbott_2009_FORCE_Learning.py rename to examples_version2/dynamics_training/Sussillo_Abbott_2009_FORCE_Learning.py diff --git a/examples/dynamics_training/echo_state_network.py b/examples_version2/dynamics_training/echo_state_network.py similarity index 100% rename from examples/dynamics_training/echo_state_network.py rename to examples_version2/dynamics_training/echo_state_network.py diff --git a/examples/dynamics_training/integrate_brainpy_into_flax-convlstm.py b/examples_version2/dynamics_training/integrate_brainpy_into_flax-convlstm.py similarity index 100% rename from examples/dynamics_training/integrate_brainpy_into_flax-convlstm.py rename to examples_version2/dynamics_training/integrate_brainpy_into_flax-convlstm.py diff --git a/examples/dynamics_training/integrate_brainpy_into_flax-lif.py b/examples_version2/dynamics_training/integrate_brainpy_into_flax-lif.py similarity index 100% rename from examples/dynamics_training/integrate_brainpy_into_flax-lif.py rename to examples_version2/dynamics_training/integrate_brainpy_into_flax-lif.py diff --git a/examples/dynamics_training/integrate_flax_into_brainpy.py b/examples_version2/dynamics_training/integrate_flax_into_brainpy.py similarity index 100% rename from examples/dynamics_training/integrate_flax_into_brainpy.py rename to examples_version2/dynamics_training/integrate_flax_into_brainpy.py diff --git a/examples/dynamics_training/integrator_rnn.py b/examples_version2/dynamics_training/integrator_rnn.py similarity index 100% rename from examples/dynamics_training/integrator_rnn.py rename to examples_version2/dynamics_training/integrator_rnn.py diff --git a/examples/dynamics_training/reservoir-mnist.py b/examples_version2/dynamics_training/reservoir-mnist.py similarity index 100% rename from examples/dynamics_training/reservoir-mnist.py rename to examples_version2/dynamics_training/reservoir-mnist.py diff --git a/examples/training_ann_models/mnist-cnn.py b/examples_version2/training_ann_models/mnist-cnn.py similarity index 100% rename from examples/training_ann_models/mnist-cnn.py rename to examples_version2/training_ann_models/mnist-cnn.py diff --git a/examples/training_ann_models/mnist_ResNet.py b/examples_version2/training_ann_models/mnist_ResNet.py similarity index 100% rename from examples/training_ann_models/mnist_ResNet.py rename to examples_version2/training_ann_models/mnist_ResNet.py diff --git a/examples/training_snn_models/readme.md b/examples_version2/training_snn_models/readme.md similarity index 100% rename from examples/training_snn_models/readme.md rename to examples_version2/training_snn_models/readme.md diff --git a/examples/training_snn_models/spikebased_bp_for_cifar10.py b/examples_version2/training_snn_models/spikebased_bp_for_cifar10.py similarity index 100% rename from examples/training_snn_models/spikebased_bp_for_cifar10.py rename to examples_version2/training_snn_models/spikebased_bp_for_cifar10.py From 55ea406152740340224f08863d62d1753412c582 Mon Sep 17 00:00:00 2001 From: oujago Date: Mon, 6 Oct 2025 16:48:42 +0800 Subject: [PATCH 07/18] refactor(docs): update documentation configuration and improve module imports --- .readthedocs.yml | 2 +- brainpy/__init__.py | 4 +- brainpy/_base.py | 3 +- brainpy/_base_test.py | 3 +- brainpy/_errors.py | 86 -- brainpy/_exponential.py | 12 +- brainpy/_inputs.py | 3 +- brainpy/_lif.py | 8 +- brainpy/_misc.py | 3 +- brainpy/_projection.py | 5 +- brainpy/_readout.py | 2 +- brainpy/_readout_test.py | 6 +- brainpy/_stp.py | 2 +- brainpy/_synapse.py | 8 +- brainpy/_synaptic_projection.py | 3 +- brainpy/_synouts.py | 8 +- brainpy/_synouts_test.py | 1 - brainpy/mixin.py | 742 ++++++++++++++++++ .../analysis/lowdim/lowdim_analyzer.py | 5 +- docs/Makefile | 21 + docs/_templates/classtemplate.rst | 9 + docs/conf.py | 124 +++ docs/index.rst | 110 +++ docs/make.bat | 35 + .../brainpy-changelog.md | 0 .../brainpylib-changelog.md | 0 docs_version2/conf.py | 46 +- docs_version2/index.rst | 5 +- requirements.txt | 2 +- 29 files changed, 1110 insertions(+), 148 deletions(-) create mode 100644 brainpy/mixin.py create mode 100644 docs/Makefile create mode 100644 docs/_templates/classtemplate.rst create mode 100644 docs/conf.py create mode 100644 docs/index.rst create mode 100644 docs/make.bat rename brainpy-changelog.md => docs_version2/brainpy-changelog.md (100%) rename brainpylib-changelog.md => docs_version2/brainpylib-changelog.md (100%) diff --git a/.readthedocs.yml b/.readthedocs.yml index ada769e0d..386b4b591 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -13,7 +13,7 @@ build: post_checkout: # Copy the appropriate conf.py based on project name - | - if [ "$READTHEDOCS_PROJECT" = "brainpy-version2" ]; then + if [ "$PROJECT_VERSION" = "brainpy-version2" ]; then mkdir -p docs_build cp -r docs_version2/* docs_build/ else diff --git a/brainpy/__init__.py b/brainpy/__init__.py index 96d429f15..b460ac8f5 100644 --- a/brainpy/__init__.py +++ b/brainpy/__init__.py @@ -16,6 +16,7 @@ __version__ = "3.0.0" __version_info__ = (3, 0, 0) +from . import mixin from . import version2 from ._base import * from ._base import __all__ as base_all @@ -40,7 +41,7 @@ from ._synouts import * from ._synouts import __all__ as synout_all -__main__ = ['version2'] + errors_all + inputs_all + neuron_all + readout_all + stp_all + synapse_all +__main__ = ['version2', 'mixin'] + errors_all + inputs_all + neuron_all + readout_all + stp_all + synapse_all __main__ = __main__ + synout_all + base_all + exp_all + proj_all + synproj_all del errors_all, inputs_all, neuron_all, readout_all, stp_all, synapse_all, synout_all, base_all del exp_all, proj_all, synproj_all @@ -96,4 +97,3 @@ def __dir__(): del _sys, _mod_name, _deprecated_modules version2.__version__ = __version__ - diff --git a/brainpy/_base.py b/brainpy/_base.py index 642961121..5d9b2617f 100644 --- a/brainpy/_base.py +++ b/brainpy/_base.py @@ -16,6 +16,7 @@ from typing import Callable, Optional import braintools + import brainstate __all__ = [ @@ -304,7 +305,7 @@ class Synapse(brainstate.nn.Dynamics): **Alignment Patterns** - Some synapse models inherit from ``brainstate.mixin.AlignPost`` to enable + Some synapse models inherit from :class:`AlignPost` to enable event-driven computation where synaptic variables are aligned with postsynaptic neurons. This is particularly efficient for sparse connectivity patterns. diff --git a/brainpy/_base_test.py b/brainpy/_base_test.py index 55dcfa5a5..9ed8ac82f 100644 --- a/brainpy/_base_test.py +++ b/brainpy/_base_test.py @@ -29,12 +29,11 @@ import unittest -import brainstate import braintools import brainunit as u -import jax import jax.numpy as jnp +import brainstate from brainpy._base import Neuron, Synapse diff --git a/brainpy/_errors.py b/brainpy/_errors.py index 65d3fb1c4..73cc390e4 100644 --- a/brainpy/_errors.py +++ b/brainpy/_errors.py @@ -33,7 +33,6 @@ 'MonitorError', 'MathError', 'JaxTracerError', - 'ConcretizationTypeError', 'GPUOperatorNotFound', 'SharedArgError', ] @@ -128,75 +127,6 @@ class MathError(BrainPyError): __module__ = 'brainpy' -class MPACheckpointingRequiredError(BrainPyError): - """To optimally save and restore a multiprocess array (GDA or jax Array outputted from pjit), use GlobalAsyncCheckpointManager. - - You can create an GlobalAsyncCheckpointManager at top-level and pass it as - argument:: - - from jax.experimental.gda_serialization import serialization as gdas - gda_manager = gdas.GlobalAsyncCheckpointManager() - brainpy.checkpoints.save(..., gda_manager=gda_manager) - """ - __module__ = 'brainpy' - - def __init__(self, path, step): - super().__init__( - f'Checkpoint failed at step: "{step}" and path: "{path}": Target ' - 'contains a multiprocess array should be saved/restored with a ' - 'GlobalAsyncCheckpointManager.') - - -class MPARestoreTargetRequiredError(BrainPyError): - """Provide a valid target when restoring a checkpoint with a multiprocess array. - - Multiprocess arrays need a sharding (global meshes and partition specs) to be - initialized. Therefore, to restore a checkpoint that contains a multiprocess - array, make sure the ``target`` you passed contains valid multiprocess arrays - at the corresponding tree structure location. If you cannot provide a full - valid ``target``, consider ``allow_partial_mpa_restoration=True``. - """ - __module__ = 'brainpy' - - def __init__(self, path, step, key=None): - error_msg = ( - f'Restore checkpoint failed at step: "{step}" and path: "{path}": ' - 'Checkpoints containing a multiprocess array need to be restored with ' - 'a target with pre-created arrays. If you cannot provide a full valid ' - 'target, consider ``allow_partial_mpa_restoration=True``. ') - if key: - error_msg += f'This error fired when trying to restore array at {key}.' - super().__init__(error_msg) - - -class AlreadyExistsError(BrainPyError): - """Attempting to overwrite a file via copy. - - You can pass ``overwrite=True`` to disable this behavior and overwrite - existing files in. - """ - __module__ = 'brainpy' - - def __init__(self, path): - super().__init__(f'Trying overwrite an existing file: "{path}".') - - -class InvalidCheckpointError(BrainPyError): - """A checkpoint cannot be stored in a directory that already has - - a checkpoint at the current or a later step. - - You can pass ``overwrite=True`` to disable this behavior and - overwrite existing checkpoints in the target directory. - """ - __module__ = 'brainpy' - - def __init__(self, path, step): - super().__init__( - f'Trying to save an outdated checkpoint at step: "{step}" and path: "{path}".' - ) - - class JaxTracerError(MathError): __module__ = 'brainpy' @@ -226,22 +156,6 @@ def __init__(self, variables=None): super(JaxTracerError, self).__init__(msg) -class ConcretizationTypeError(Exception): - __module__ = 'brainpy' - - def __init__(self): - super(ConcretizationTypeError, self).__init__( - 'This problem may be caused by several ways:\n' - '1. Your if-else conditional statement relies on instances of brainpy.math.Variable. \n' - '2. Your if-else conditional statement relies on functional arguments which do not ' - 'set in "static_argnames" when applying JIT compilation. More details please see ' - 'https://jax.readthedocs.io/en/latest/errors.html#jax.errors.ConcretizationTypeError\n' - '3. The static variables which set in the "static_argnames" are provided ' - 'as arguments, not keyword arguments, like "jit_f(v1, v2)" [<- wrong]. ' - 'Please write it as "jit_f(static_k1=v1, static_k2=v2)" [<- right].' - ) - - class GPUOperatorNotFound(Exception): __module__ = 'brainpy' diff --git a/brainpy/_exponential.py b/brainpy/_exponential.py index e123d7253..af3f3116c 100644 --- a/brainpy/_exponential.py +++ b/brainpy/_exponential.py @@ -18,18 +18,20 @@ from typing import Optional, Callable -from brainstate.typing import Size, ArrayLike -import brainstate import braintools import brainunit as u + +import brainstate +from brainstate.typing import Size, ArrayLike from ._base import Synapse +from .mixin import AlignPost __all__ = [ - 'Expon', 'DualExpon', + 'Expon', 'DualExpon', ] -class Expon(Synapse, brainstate.mixin.AlignPost): +class Expon(Synapse, AlignPost): r""" Exponential decay synapse model. @@ -97,7 +99,7 @@ def update(self, x=None): return self.g.value -class DualExpon(Synapse, brainstate.mixin.AlignPost): +class DualExpon(Synapse, AlignPost): r""" Dual exponential synapse model. diff --git a/brainpy/_inputs.py b/brainpy/_inputs.py index 9763c1c4e..9910c4761 100644 --- a/brainpy/_inputs.py +++ b/brainpy/_inputs.py @@ -21,9 +21,8 @@ import numpy as np import brainstate -from brainstate.typing import ArrayLike, Size, DTypeLike from brainpy._misc import set_module_as - +from brainstate.typing import ArrayLike, Size, DTypeLike __all__ = [ 'SpikeTime', diff --git a/brainpy/_lif.py b/brainpy/_lif.py index 309f998bb..44b66a3f4 100644 --- a/brainpy/_lif.py +++ b/brainpy/_lif.py @@ -17,16 +17,16 @@ from typing import Callable -import brainstate +import braintools import brainunit as u import jax -from brainstate.typing import ArrayLike, Size -import braintools +import brainstate +from brainstate.typing import ArrayLike, Size from ._base import Neuron __all__ = [ - 'IF', 'LIF', 'LIFRef', 'ALIF', + 'IF', 'LIF', 'LIFRef', 'ALIF', ] diff --git a/brainpy/_misc.py b/brainpy/_misc.py index 3cfc70fad..075be91b2 100644 --- a/brainpy/_misc.py +++ b/brainpy/_misc.py @@ -14,10 +14,9 @@ # ============================================================================== - def set_module_as(module: str): def wrapper(fun: callable): fun.__module__ = module return fun - return wrapper \ No newline at end of file + return wrapper diff --git a/brainpy/_projection.py b/brainpy/_projection.py index f25a0eea3..13dfaa9c4 100644 --- a/brainpy/_projection.py +++ b/brainpy/_projection.py @@ -17,12 +17,13 @@ from typing import Optional import brainevent + import brainstate from brainstate._state import State -from brainstate.mixin import BindCondData, JointTypes, ParamDescriber, AlignPost +from brainstate.mixin import JointTypes, ParamDescriber from brainstate.nn._dynamics import maybe_init_prefetch - from ._synouts import SynOut +from .mixin import BindCondData, AlignPost if brainstate.__version__ < '0.2.0': from brainstate.util.others import get_unique_name diff --git a/brainpy/_readout.py b/brainpy/_readout.py index 52ca4e365..fc206e49f 100644 --- a/brainpy/_readout.py +++ b/brainpy/_readout.py @@ -19,11 +19,11 @@ import numbers from typing import Callable +import braintools import brainunit as u import jax import brainstate -import braintools from brainstate.typing import Size, ArrayLike from ._base import Neuron diff --git a/brainpy/_readout_test.py b/brainpy/_readout_test.py index 337cc89c6..61eb11a07 100644 --- a/brainpy/_readout_test.py +++ b/brainpy/_readout_test.py @@ -16,12 +16,12 @@ import unittest +import braintools +import brainunit as u import jax.numpy as jnp -import brainunit as u -import brainstate -import braintools import brainpy +import brainstate class TestReadoutModels(unittest.TestCase): diff --git a/brainpy/_stp.py b/brainpy/_stp.py index 3819e75f9..b2f819c67 100644 --- a/brainpy/_stp.py +++ b/brainpy/_stp.py @@ -17,10 +17,10 @@ from typing import Optional +import braintools import brainunit as u import brainstate -import braintools from brainstate.typing import ArrayLike, Size from ._base import Synapse diff --git a/brainpy/_synapse.py b/brainpy/_synapse.py index d9c243ad2..73a96bf58 100644 --- a/brainpy/_synapse.py +++ b/brainpy/_synapse.py @@ -18,18 +18,18 @@ from typing import Optional, Callable -from brainstate.typing import Size, ArrayLike -import brainstate import braintools import brainunit as u + +import brainstate +from brainstate.typing import Size, ArrayLike from ._base import Synapse __all__ = [ - 'Alpha', 'AMPA', 'GABAa', + 'Alpha', 'AMPA', 'GABAa', ] - class Alpha(Synapse): r""" Alpha synapse model. diff --git a/brainpy/_synaptic_projection.py b/brainpy/_synaptic_projection.py index 8c0f0ea19..9ecc3b3f7 100644 --- a/brainpy/_synaptic_projection.py +++ b/brainpy/_synaptic_projection.py @@ -17,12 +17,11 @@ from typing import Callable, Union, Tuple +import braintools import brainunit as u -import braintools import brainstate from brainstate.typing import ArrayLike - from ._projection import Projection __all__ = [ diff --git a/brainpy/_synouts.py b/brainpy/_synouts.py index 5745602f1..c5dfe0ce6 100644 --- a/brainpy/_synouts.py +++ b/brainpy/_synouts.py @@ -15,16 +15,18 @@ # -*- coding: utf-8 -*- -import brainstate import brainunit as u import jax.numpy as jnp +import brainstate +from .mixin import BindCondData + __all__ = [ 'SynOut', 'COBA', 'CUBA', 'MgBlock', ] -class SynOut(brainstate.nn.Module, brainstate.mixin.BindCondData): +class SynOut(brainstate.nn.Module, BindCondData): """ Base class for synaptic outputs. @@ -41,7 +43,7 @@ def __call__(self, *args, **kwargs): if self._conductance is None: raise ValueError( f'Please first pack conductance data at the current step using ' - f'".{brainstate.mixin.BindCondData.bind_cond.__name__}(data)". {self}' + f'".{BindCondData.bind_cond.__name__}(data)". {self}' ) ret = self.update(self._conductance, *args, **kwargs) return ret diff --git a/brainpy/_synouts_test.py b/brainpy/_synouts_test.py index ecf5770d1..d964f0d8f 100644 --- a/brainpy/_synouts_test.py +++ b/brainpy/_synouts_test.py @@ -20,7 +20,6 @@ import jax.numpy as jnp import numpy as np -import brainstate import brainpy diff --git a/brainpy/mixin.py b/brainpy/mixin.py new file mode 100644 index 000000000..337aef217 --- /dev/null +++ b/brainpy/mixin.py @@ -0,0 +1,742 @@ +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + +from typing import Optional + +import brainstate + +__all__ = [ + 'AlignPost', + 'BindCondData', + 'Mode', + 'JointMode', + 'Batching', + 'Training', +] + + +class AlignPost(brainstate.mixin.Mixin): + """ + Mixin for aligning post-synaptic inputs. + + This mixin provides an interface for components that need to receive and + process post-synaptic inputs, such as synaptic connections or neural + populations. The ``align_post_input_add`` method should be implemented + to handle the accumulation of external currents or inputs. + + Notes + ----- + Classes that inherit from this mixin must implement the + ``align_post_input_add`` method. + + Examples + -------- + Implementing a synapse with post-synaptic alignment: + + .. code-block:: python + + >>> import brainstate + >>> import jax.numpy as jnp + >>> + >>> class Synapse(brainstate.mixin.AlignPost): + ... def __init__(self, weight): + ... self.weight = weight + ... self.post_current = brainstate.State(0.0) + ... + ... def align_post_input_add(self, current): + ... # Accumulate the weighted current into post-synaptic target + ... self.post_current.value += current * self.weight + >>> + >>> # Usage + >>> synapse = Synapse(weight=0.5) + >>> synapse.align_post_input_add(10.0) + >>> print(synapse.post_current.value) # Output: 5.0 + + Using with neural populations: + + .. code-block:: python + + >>> class NeuronGroup(brainstate.mixin.AlignPost): + ... def __init__(self, size): + ... self.size = size + ... self.input_current = brainstate.State(jnp.zeros(size)) + ... + ... def align_post_input_add(self, current): + ... # Add external current to neurons + ... self.input_current.value = self.input_current.value + current + >>> + >>> neurons = NeuronGroup(100) + >>> external_input = jnp.ones(100) * 0.5 + >>> neurons.align_post_input_add(external_input) + """ + + def align_post_input_add(self, *args, **kwargs): + """ + Add external inputs to the post-synaptic component. + + Parameters + ---------- + *args + Positional arguments for the input. + **kwargs + Keyword arguments for the input. + + Raises + ------ + NotImplementedError + If the method is not implemented by the subclass. + """ + raise NotImplementedError + + +class BindCondData(brainstate.mixin.Mixin): + """ + Mixin for binding temporary conductance data. + + This mixin provides an interface for temporarily storing conductance data, + which is useful in synaptic models where conductance values need to be + passed between computation steps without being part of the permanent state. + + Attributes + ---------- + _conductance : Any, optional + Temporarily bound conductance data. + + Examples + -------- + Using conductance binding in a synapse: + + .. code-block:: python + + >>> import brainstate + >>> import jax.numpy as jnp + >>> + >>> class ConductanceBasedSynapse(brainstate.mixin.BindCondData): + ... def __init__(self): + ... self._conductance = None + ... + ... def compute(self, pre_spike): + ... if pre_spike: + ... # Bind conductance data temporarily + ... self.bind_cond(0.5) + ... + ... # Use conductance if available + ... if self._conductance is not None: + ... current = self._conductance * (0.0 - (-70.0)) + ... # Clear after use + ... self.unbind_cond() + ... return current + ... return 0.0 + >>> + >>> synapse = ConductanceBasedSynapse() + >>> current = synapse.compute(pre_spike=True) + + Managing conductance in a network: + + .. code-block:: python + + >>> class SynapticConnection(brainstate.mixin.BindCondData): + ... def __init__(self, g_max): + ... self.g_max = g_max + ... self._conductance = None + ... + ... def prepare_conductance(self, activation): + ... # Bind conductance based on activation + ... g = self.g_max * activation + ... self.bind_cond(g) + ... + ... def apply_conductance(self, voltage): + ... if self._conductance is not None: + ... current = self._conductance * voltage + ... self.unbind_cond() + ... return current + ... return 0.0 + """ + # Attribute to store temporary conductance data + _conductance: Optional + + def bind_cond(self, conductance): + """ + Bind conductance data temporarily. + + Parameters + ---------- + conductance : Any + The conductance data to bind. + """ + self._conductance = conductance + + def unbind_cond(self): + """ + Unbind (clear) the conductance data. + """ + self._conductance = None + + +class Mode(brainstate.nn.Mixin): + """ + Base class for computation behavior modes. + + Modes are used to represent different computational contexts or behaviors, + such as training vs evaluation, batched vs single-sample processing, etc. + They provide a flexible way to configure how models and components behave + in different scenarios. + + Examples + -------- + Creating a custom mode: + + .. code-block:: python + + >>> import brainstate + >>> + >>> class InferenceMode(brainstate.mixin.Mode): + ... def __init__(self, use_cache=True): + ... self.use_cache = use_cache + >>> + >>> # Create mode instances + >>> inference = InferenceMode(use_cache=True) + >>> print(inference) # Output: InferenceMode + + Checking mode types: + + .. code-block:: python + + >>> class FastMode(brainstate.mixin.Mode): + ... pass + >>> + >>> class SlowMode(brainstate.mixin.Mode): + ... pass + >>> + >>> fast = FastMode() + >>> slow = SlowMode() + >>> + >>> # Check exact mode type + >>> assert fast.is_a(FastMode) + >>> assert not fast.is_a(SlowMode) + >>> + >>> # Check if mode is an instance of a type + >>> assert fast.has(brainstate.mixin.Mode) + + Using modes in a model: + + .. code-block:: python + + >>> class Model: + ... def __init__(self): + ... self.mode = brainstate.mixin.Training() + ... + ... def forward(self, x): + ... if self.mode.has(brainstate.mixin.Training): + ... # Training-specific logic + ... return self.train_forward(x) + ... else: + ... # Inference logic + ... return self.eval_forward(x) + ... + ... def train_forward(self, x): + ... return x + 0.1 # Add noise during training + ... + ... def eval_forward(self, x): + ... return x # No noise during evaluation + """ + + def __repr__(self): + """ + String representation of the mode. + + Returns + ------- + str + The class name of the mode. + """ + return self.__class__.__name__ + + def __eq__(self, other: 'Mode'): + """ + Check equality of modes based on their type. + + Parameters + ---------- + other : Mode + Another mode to compare with. + + Returns + ------- + bool + True if both modes are of the same class. + """ + assert isinstance(other, Mode) + return other.__class__ == self.__class__ + + def is_a(self, mode: type): + """ + Check whether the mode is exactly the desired mode type. + + This performs an exact type match, not checking for subclasses. + + Parameters + ---------- + mode : type + The mode type to check against. + + Returns + ------- + bool + True if this mode is exactly of the specified type. + + Examples + -------- + .. code-block:: python + + >>> import brainstate + >>> + >>> training_mode = brainstate.mixin.Training() + >>> assert training_mode.is_a(brainstate.mixin.Training) + >>> assert not training_mode.is_a(brainstate.mixin.Batching) + """ + assert isinstance(mode, type), 'Must be a type.' + return self.__class__ == mode + + def has(self, mode: type): + """ + Check whether the mode includes the desired mode type. + + This checks if the current mode is an instance of the specified type, + including checking for subclasses. + + Parameters + ---------- + mode : type + The mode type to check for. + + Returns + ------- + bool + True if this mode is an instance of the specified type. + + Examples + -------- + .. code-block:: python + + >>> import brainstate + >>> + >>> # Create a custom mode that extends Training + >>> class AdvancedTraining(brainstate.mixin.Training): + ... pass + >>> + >>> advanced = AdvancedTraining() + >>> assert advanced.has(brainstate.mixin.Training) # True (subclass) + >>> assert advanced.has(brainstate.mixin.Mode) # True (base class) + """ + assert isinstance(mode, type), 'Must be a type.' + return isinstance(self, mode) + + +class JointMode(Mode): + """ + A mode that combines multiple modes simultaneously. + + JointMode allows expressing that a computation is in multiple modes at once, + such as being both in training mode and batching mode. This is useful for + complex scenarios where multiple behavioral aspects need to be active. + + Parameters + ---------- + *modes : Mode + The modes to combine. + + Attributes + ---------- + modes : tuple of Mode + The individual modes that are combined. + types : set of type + The types of the combined modes. + + Raises + ------ + TypeError + If any of the provided arguments is not a Mode instance. + + Examples + -------- + Combining training and batching modes: + + .. code-block:: python + + >>> import brainstate + >>> + >>> # Create individual modes + >>> training = brainstate.mixin.Training() + >>> batching = brainstate.mixin.Batching(batch_size=32) + >>> + >>> # Combine them + >>> joint = brainstate.mixin.JointMode(training, batching) + >>> print(joint) # JointMode(Training, Batching(in_size=32, axis=0)) + >>> + >>> # Check if specific modes are present + >>> assert joint.has(brainstate.mixin.Training) + >>> assert joint.has(brainstate.mixin.Batching) + >>> + >>> # Access attributes from combined modes + >>> print(joint.batch_size) # 32 (from Batching mode) + + Using in model configuration: + + .. code-block:: python + + >>> class NeuralNetwork: + ... def __init__(self): + ... self.mode = None + ... + ... def set_train_mode(self, batch_size=1): + ... # Set both training and batching modes + ... training = brainstate.mixin.Training() + ... batching = brainstate.mixin.Batching(batch_size=batch_size) + ... self.mode = brainstate.mixin.JointMode(training, batching) + ... + ... def forward(self, x): + ... if self.mode.has(brainstate.mixin.Training): + ... x = self.apply_dropout(x) + ... + ... if self.mode.has(brainstate.mixin.Batching): + ... # Process in batches + ... batch_size = self.mode.batch_size + ... return self.batch_process(x, batch_size) + ... + ... return self.process(x) + >>> + >>> model = NeuralNetwork() + >>> model.set_train_mode(batch_size=64) + """ + + def __init__(self, *modes: Mode): + # Validate that all arguments are Mode instances + for m_ in modes: + if not isinstance(m_, Mode): + raise TypeError(f'The supported type must be a tuple/list of Mode. But we got {m_}') + + # Store the modes as a tuple + self.modes = tuple(modes) + + # Store the types of the modes for quick lookup + self.types = set([m.__class__ for m in modes]) + + def __repr__(self): + """ + String representation showing all combined modes. + + Returns + ------- + str + A string showing the joint mode and its components. + """ + return f'{self.__class__.__name__}({", ".join([repr(m) for m in self.modes])})' + + def has(self, mode: type): + """ + Check whether any of the combined modes includes the desired type. + + Parameters + ---------- + mode : type + The mode type to check for. + + Returns + ------- + bool + True if any of the combined modes is or inherits from the specified type. + + Examples + -------- + .. code-block:: python + + >>> import brainstate + >>> + >>> training = brainstate.mixin.Training() + >>> batching = brainstate.mixin.Batching(batch_size=16) + >>> joint = brainstate.mixin.JointMode(training, batching) + >>> + >>> assert joint.has(brainstate.mixin.Training) + >>> assert joint.has(brainstate.mixin.Batching) + >>> assert joint.has(brainstate.mixin.Mode) # Base class + """ + assert isinstance(mode, type), 'Must be a type.' + # Check if any of the combined mode types is a subclass of the target mode + return any([issubclass(cls, mode) for cls in self.types]) + + def is_a(self, cls: type): + """ + Check whether the joint mode is exactly the desired combined type. + + This is a complex check that verifies the joint mode matches a specific + combination of types. + + Parameters + ---------- + cls : type + The combined type to check against. + + Returns + ------- + bool + True if the joint mode exactly matches the specified type combination. + """ + # Use JointTypes to create the expected type from our mode types + return brainstate.mixin.JointTypes(*tuple(self.types)) == cls + + def __getattr__(self, item): + """ + Get attributes from the combined modes. + + This method searches through all combined modes to find the requested + attribute, allowing transparent access to properties of any of the + combined modes. + + Parameters + ---------- + item : str + The attribute name to search for. + + Returns + ------- + Any + The attribute value from the first mode that has it. + + Raises + ------ + AttributeError + If the attribute is not found in any of the combined modes. + + Examples + -------- + .. code-block:: python + + >>> import brainstate + >>> + >>> batching = brainstate.mixin.Batching(batch_size=32, batch_axis=1) + >>> training = brainstate.mixin.Training() + >>> joint = brainstate.mixin.JointMode(batching, training) + >>> + >>> # Access batching attributes directly + >>> print(joint.batch_size) # 32 + >>> print(joint.batch_axis) # 1 + """ + # Don't interfere with accessing modes and types attributes + if item in ['modes', 'types']: + return super().__getattribute__(item) + + # Search for the attribute in each combined mode + for m in self.modes: + if hasattr(m, item): + return getattr(m, item) + + # If not found, fall back to default behavior (will raise AttributeError) + return super().__getattribute__(item) + + +class Batching(Mode): + """ + Mode indicating batched computation. + + This mode specifies that computations should be performed on batches of data, + including information about the batch size and which axis represents the batch + dimension. + + Parameters + ---------- + batch_size : int, default 1 + The size of each batch. + batch_axis : int, default 0 + The axis along which batching occurs. + + Attributes + ---------- + batch_size : int + The number of samples in each batch. + batch_axis : int + The axis index representing the batch dimension. + + Examples + -------- + Basic batching configuration: + + .. code-block:: python + + >>> import brainstate + >>> + >>> # Create a batching mode + >>> batching = brainstate.mixin.Batching(batch_size=32, batch_axis=0) + >>> print(batching) # Batching(in_size=32, axis=0) + >>> + >>> # Access batch parameters + >>> print(f"Processing {batching.batch_size} samples at once") + >>> print(f"Batch dimension is axis {batching.batch_axis}") + + Using in a model: + + .. code-block:: python + + >>> import jax.numpy as jnp + >>> + >>> class BatchedModel: + ... def __init__(self): + ... self.mode = None + ... + ... def set_batch_mode(self, batch_size, batch_axis=0): + ... self.mode = brainstate.mixin.Batching(batch_size, batch_axis) + ... + ... def process(self, x): + ... if self.mode is not None and self.mode.has(brainstate.mixin.Batching): + ... # Process in batches + ... batch_size = self.mode.batch_size + ... axis = self.mode.batch_axis + ... return jnp.mean(x, axis=axis, keepdims=True) + ... return x + >>> + >>> model = BatchedModel() + >>> model.set_batch_mode(batch_size=64) + >>> + >>> # Process batched data + >>> data = jnp.random.randn(64, 100) # 64 samples, 100 features + >>> result = model.process(data) + + Combining with other modes: + + .. code-block:: python + + >>> # Combine batching with training mode + >>> training = brainstate.mixin.Training() + >>> batching = brainstate.mixin.Batching(batch_size=128) + >>> combined = brainstate.mixin.JointMode(training, batching) + >>> + >>> # Use in a training loop + >>> def train_step(model, data, mode): + ... if mode.has(brainstate.mixin.Batching): + ... # Split data into batches + ... batch_size = mode.batch_size + ... # ... batched processing ... + ... if mode.has(brainstate.mixin.Training): + ... # Apply training-specific operations + ... # ... training logic ... + ... pass + """ + + def __init__(self, batch_size: int = 1, batch_axis: int = 0): + self.batch_size = batch_size + self.batch_axis = batch_axis + + def __repr__(self): + """ + String representation showing batch configuration. + + Returns + ------- + str + A string showing the batch size and axis. + """ + return f'{self.__class__.__name__}(in_size={self.batch_size}, axis={self.batch_axis})' + + +class Training(Mode): + """ + Mode indicating training computation. + + This mode specifies that the model is in training mode, which typically + enables behaviors like dropout, batch normalization in training mode, + gradient computation, etc. + + Examples + -------- + Basic training mode: + + .. code-block:: python + + >>> import brainstate + >>> + >>> # Create training mode + >>> training = brainstate.mixin.Training() + >>> print(training) # Training + >>> + >>> # Check mode + >>> assert training.is_a(brainstate.mixin.Training) + >>> assert training.has(brainstate.mixin.Mode) + + Using in a model with dropout: + + .. code-block:: python + + >>> import brainstate + >>> import jax + >>> import jax.numpy as jnp + >>> + >>> class ModelWithDropout: + ... def __init__(self, dropout_rate=0.5): + ... self.dropout_rate = dropout_rate + ... self.mode = None + ... + ... def set_training(self, is_training=True): + ... if is_training: + ... self.mode = brainstate.mixin.Training() + ... else: + ... self.mode = brainstate.mixin.Mode() # Evaluation mode + ... + ... def forward(self, x, rng_key): + ... # Apply dropout only during training + ... if self.mode is not None and self.mode.has(brainstate.mixin.Training): + ... keep_prob = 1.0 - self.dropout_rate + ... mask = jax.random.bernoulli(rng_key, keep_prob, x.shape) + ... x = jnp.where(mask, x / keep_prob, 0) + ... return x + >>> + >>> model = ModelWithDropout() + >>> + >>> # Training mode + >>> model.set_training(True) + >>> key = jax.random.PRNGKey(0) + >>> x_train = jnp.ones((10, 20)) + >>> out_train = model.forward(x_train, key) # Dropout applied + >>> + >>> # Evaluation mode + >>> model.set_training(False) + >>> out_eval = model.forward(x_train, key) # No dropout + + Combining with batching: + + .. code-block:: python + + >>> # Create combined training and batching mode + >>> training = brainstate.mixin.Training() + >>> batching = brainstate.mixin.Batching(batch_size=32) + >>> mode = brainstate.mixin.JointMode(training, batching) + >>> + >>> # Use in training configuration + >>> class Trainer: + ... def __init__(self, model, mode): + ... self.model = model + ... self.mode = mode + ... + ... def train_epoch(self, data): + ... if self.mode.has(brainstate.mixin.Training): + ... # Enable training-specific behaviors + ... self.model.set_training(True) + ... + ... if self.mode.has(brainstate.mixin.Batching): + ... # Process in batches + ... batch_size = self.mode.batch_size + ... # ... batched training loop ... + ... pass + """ + pass diff --git a/brainpy/version2/analysis/lowdim/lowdim_analyzer.py b/brainpy/version2/analysis/lowdim/lowdim_analyzer.py index d070ffd84..06cd85d9d 100644 --- a/brainpy/version2/analysis/lowdim/lowdim_analyzer.py +++ b/brainpy/version2/analysis/lowdim/lowdim_analyzer.py @@ -270,7 +270,7 @@ def __init__(self, *args, **kwargs): @property def F_fx(self): - """Make the standard function call of :math:`f_x (*\mathrm{vars}, *\mathrm{pars})`. + r"""Make the standard function call of :math:`f_x (*\mathrm{vars}, *\mathrm{pars})`. This function has been transformed into the standard call. For instance, if the user has the ``target_vars=("v1", "v2")`` and @@ -912,7 +912,8 @@ def _get_fp_candidates_by_aux_rank(self, num_segments=1, num_rank=100): def _get_fixed_points(self, candidates, *args, tol_aux=1e-7, tol_unique=1e-2, tol_opt_candidate=None, num_segment=1): - """Get the fixed points according to the initial ``candidates`` and the parameter setting ``args``. + r""" + Get the fixed points according to the initial ``candidates`` and the parameter setting ``args``. "candidates" and "args" can be obtained through: diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 000000000..2de4207a5 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,21 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SPHINXPROJ = brainpy +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/_templates/classtemplate.rst b/docs/_templates/classtemplate.rst new file mode 100644 index 000000000..eeb823a96 --- /dev/null +++ b/docs/_templates/classtemplate.rst @@ -0,0 +1,9 @@ +.. role:: hidden + :class: hidden-section +.. currentmodule:: {{ module }} + + +{{ name | underline}} + +.. autoclass:: {{ name }} + :members: diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 000000000..1050b6222 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,124 @@ +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + + +import os +import sys + +sys.path.insert(0, os.path.abspath('../')) + +import brainpy +import shutil + +shutil.rmtree('changelog.md', ignore_errors=True) +shutil.rmtree('apis/generated', ignore_errors=True) +shutil.rmtree('_build', ignore_errors=True) +shutil.copy('../changelog.md', './changelog.md') + +# -- Project information ----------------------------------------------------- + +project = 'brainstate' +copyright = '2024, brainstate' +author = 'BrainState Developers' + +# The full version, including alpha/beta/rc tags +release = brainstate.__version__ + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.autosummary', + 'sphinx.ext.intersphinx', + 'sphinx.ext.mathjax', + 'sphinx.ext.napoleon', + 'sphinx.ext.viewcode', + 'sphinx_autodoc_typehints', + 'myst_nb', + 'matplotlib.sphinxext.plot_directive', + 'sphinx_thebe', + 'sphinx_design', + 'sphinx_math_dollar', +] +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] +source_suffix = ['.rst', '.ipynb', '.md'] + +# source_suffix = '.rst' +autosummary_generate = True + +# The master toctree document. +master_doc = 'index' + +intersphinx_mapping = { + "python": ("https://docs.python.org/3.13", None), + "sphinx": ("https://www.sphinx-doc.org/en/master", None), +} +nitpick_ignore = [ + ("py:class", "docutils.nodes.document"), + ("py:class", "docutils.parsers.rst.directives.body.Sidebar"), +] + +suppress_warnings = ["myst.domains", "ref.ref"] + +numfig = True + +myst_enable_extensions = [ + "dollarmath", + "amsmath", + "deflist", + "colon_fence", +] +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +html_theme = "sphinx_book_theme" +html_logo = "_static/brainstate.png" +html_title = "brainstate" +html_copy_source = True +html_sourcelink_suffix = "" +html_favicon = "_static/brainstate.png" +html_last_updated_fmt = "" + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] +jupyter_execute_notebooks = "off" +thebe_config = { + "repository_url": "https://github.com/binder-examples/jupyter-stacks-datascience", + "repository_branch": "master", +} + +html_theme_options = { + 'show_toc_level': 2, +} + +# -- Options for myst ---------------------------------------------- + +autodoc_default_options = { + 'exclude-members': '....,default_rng', +} +napoleon_google_docstring = True +napoleon_numpy_docstring = True + diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 000000000..a13f24c21 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,110 @@ +``brainpy`` documentation +========================= + +`brainpy `_ + + +---- + +Features +^^^^^^^^^ + +.. grid:: + + + + .. grid-item:: + :columns: 12 12 12 6 + + .. card:: Program Compilation + :class-card: sd-border-0 + :shadow: none + :class-title: sd-fs-6 + + .. div:: sd-font-normal + + ``BrainState`` supports `program compilation <./apis/compile.html>`__ (such as just-in-time compilation) with its `state-based <./apis/brainstate.html>`__ IR construction. + + + + .. grid-item:: + :columns: 12 12 12 6 + + .. card:: Program Augmentation + :class-card: sd-border-0 + :shadow: none + :class-title: sd-fs-6 + + .. div:: sd-font-normal + + ``BrainState`` supports program `functionality augmentation <./apis/augment.html>`__ (such batching) with its `graph-based <./apis/graph.html>`__ Python objects. + + + + +---- + + +Installation +^^^^^^^^^^^^ + +.. tab-set:: + + .. tab-item:: CPU + + .. code-block:: bash + + pip install -U brainpy[cpu] + + .. tab-item:: GPU + + .. code-block:: bash + + pip install -U brainpy[cuda12] + pip install -U brainpy[cuda13] + + .. tab-item:: TPU + + .. code-block:: bash + + pip install -U brainpy[tpu] + +---- + + +See also the ecosystem +^^^^^^^^^^^^^^^^^^^^^^ + + +``brainpy`` is one part of our `brain simulation ecosystem `_. + + +.. toctree:: + :hidden: + :maxdepth: 1 + :caption: Quickstart + + quickstart/concepts-en.ipynb + quickstart/concepts-zh.ipynb + + + + + +.. toctree:: + :hidden: + :maxdepth: 2 + :caption: API Reference + + changelog.md + apis/brainstate.rst + apis/graph.rst + apis/transform.rst + apis/nn.rst + apis/random.rst + apis/util.rst + apis/surrogate.rst + apis/typing.rst + apis/mixin.rst + apis/environ.rst + diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 000000000..922152e96 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/brainpy-changelog.md b/docs_version2/brainpy-changelog.md similarity index 100% rename from brainpy-changelog.md rename to docs_version2/brainpy-changelog.md diff --git a/brainpylib-changelog.md b/docs_version2/brainpylib-changelog.md similarity index 100% rename from brainpylib-changelog.md rename to docs_version2/brainpylib-changelog.md diff --git a/docs_version2/conf.py b/docs_version2/conf.py index edaf246a4..359dd2475 100644 --- a/docs_version2/conf.py +++ b/docs_version2/conf.py @@ -40,14 +40,6 @@ # auto_generater.generate_mixin_docs() # sys.exit() -changelogs = [ - ('../brainpy-changelog.md', 'apis/auto/brainpy-changelog.md'), - ('../brainpylib-changelog.md', 'apis/auto/brainpylib-changelog.md'), -] -for source, dest in changelogs: - if os.path.exists(dest): - os.remove(dest) - shutil.copyfile(source, dest) shutil.copytree('../images/', './_static/logos/', dirs_exist_ok=True) @@ -102,26 +94,42 @@ ] suppress_warnings = ["myst.domains", "ref.ref"] - numfig = True - myst_enable_extensions = [ "dollarmath", "amsmath", "deflist", "colon_fence", - # "html_admonition", - # "html_image", - # "smartquotes", - # "replacements", - # "linkify", - # "substitution", ] # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# href with no underline and white bold text color +announcement = """ + + This site covers the old BrainPy 2.0 API. [Explore the new BrainPy 3.0 API ✨] + +""" + +html_theme_options = { + 'repository_url': 'https://github.com/brainpy/BrainPy', + 'use_repository_button': True, # add a 'link to repository' button + 'use_issues_button': False, # add an 'Open an Issue' button + 'path_to_docs': 'docs', # used to compute the path to launch notebooks in colab + 'launch_buttons': { + 'colab_url': 'https://colab.research.google.com/', + }, + 'prev_next_buttons_location': None, + 'show_navbar_depth': 1, + 'announcement': announcement, + 'logo_only': True, + 'show_toc_level': 2, +} + + html_theme = "sphinx_book_theme" html_logo = "_static/logos/logo.png" html_title = "BrainPy documentation" @@ -129,6 +137,7 @@ html_sourcelink_suffix = "" html_favicon = "_static/logos/logo-square.png" html_last_updated_fmt = "" +html_css_files = ['css/flax_theme.css'] # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -140,11 +149,6 @@ "repository_branch": "master", } -html_theme_options = { - 'logo_only': True, - 'show_toc_level': 2, -} - # -- Options for myst ---------------------------------------------- # Notebook cell execution timeout; defaults to 30. execution_timeout = 200 diff --git a/docs_version2/index.rst b/docs_version2/index.rst index 47bac41f0..5dfa0ad2b 100644 --- a/docs_version2/index.rst +++ b/docs_version2/index.rst @@ -136,6 +136,7 @@ Learn more :maxdepth: 1 :caption: Quickstart + quickstart/installation.rst quickstart/simulation quickstart/training quickstart/analysis @@ -153,5 +154,5 @@ Learn more advanced_tutorials.rst FAQ.rst api.rst - apis/auto/brainpy-changelog.md - apis/auto/brainpylib-changelog.md + brainpy-changelog.md + brainpylib-changelog.md diff --git a/requirements.txt b/requirements.txt index b8271d137..f926fc0b5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,6 +2,6 @@ numpy brainstate>=0.1.6 brainunit brainevent>=0.0.4 -braintools>=0.0.9 +braintools>=0.1.0 jax tqdm From 02b82fa10507b19f458a8081eb5f2b17dc56799e Mon Sep 17 00:00:00 2001 From: oujago Date: Mon, 6 Oct 2025 16:51:59 +0800 Subject: [PATCH 08/18] refactor(docs): update import statements for mixin module --- brainpy/mixin.py | 2 +- brainpy/version2/mixin.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/brainpy/mixin.py b/brainpy/mixin.py index 337aef217..83a40c901 100644 --- a/brainpy/mixin.py +++ b/brainpy/mixin.py @@ -185,7 +185,7 @@ def unbind_cond(self): self._conductance = None -class Mode(brainstate.nn.Mixin): +class Mode(brainstate.mixin.Mixin): """ Base class for computation behavior modes. diff --git a/brainpy/version2/mixin.py b/brainpy/version2/mixin.py index dc4868994..b6b34c70a 100644 --- a/brainpy/version2/mixin.py +++ b/brainpy/version2/mixin.py @@ -19,7 +19,8 @@ import jax -import brainstate.mixin +import brainstate +from brainpy import mixin from brainpy.version2 import math as bm, tools from brainpy.version2.math.object_transform.naming import get_unique_name from brainpy.version2.types import ArrayType @@ -45,8 +46,8 @@ MixIn = brainstate.mixin.Mixin ParamDesc = brainstate.mixin.ParamDesc ParamDescriber = brainstate.mixin.ParamDescriber -AlignPost = brainstate.mixin.AlignPost -BindCondData = brainstate.mixin.BindCondData +AlignPost = mixin.AlignPost +BindCondData = mixin.BindCondData JointType = brainstate.mixin.JointTypes From 28f225575e77935b4bec9144ae886df8a9116f91 Mon Sep 17 00:00:00 2001 From: oujago Date: Mon, 6 Oct 2025 16:54:17 +0800 Subject: [PATCH 09/18] refactor(docs): update import statement for Mode class to use brainpy.mixin --- brainpy/version2/math/modes.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/brainpy/version2/math/modes.py b/brainpy/version2/math/modes.py index 0f6cd971d..0a41e2a69 100644 --- a/brainpy/version2/math/modes.py +++ b/brainpy/version2/math/modes.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -import brainstate +from brainpy import mixin __all__ = [ 'Mode', @@ -26,7 +26,7 @@ ] -class Mode(brainstate.mixin.Mode): +class Mode(mixin.Mode): """Base class for computation Mode """ From 2cbc6b06ef01119992407f00fb94c4785d90b7c5 Mon Sep 17 00:00:00 2001 From: oujago Date: Mon, 6 Oct 2025 17:01:56 +0800 Subject: [PATCH 10/18] refactor(docs): update Sphinx configuration and add custom theme styles --- .gitignore | 1 + docs/_static/css/theme.css | 23 +++++++ docs/conf.py | 95 +++++++++++++++-------------- docs_version2/_static/css/theme.css | 23 +++++++ docs_version2/brainpy-changelog.md | 2 +- docs_version2/conf.py | 36 +++++------ 6 files changed, 112 insertions(+), 68 deletions(-) create mode 100644 docs/_static/css/theme.css create mode 100644 docs_version2/_static/css/theme.css diff --git a/.gitignore b/.gitignore index 7918b6ab9..2f4779f12 100644 --- a/.gitignore +++ b/.gitignore @@ -230,3 +230,4 @@ cython_debug/ /dev/ /.claude/ /docs_version2/_static/logos/ +/docs/_static/logos/ diff --git a/docs/_static/css/theme.css b/docs/_static/css/theme.css new file mode 100644 index 000000000..b8207032d --- /dev/null +++ b/docs/_static/css/theme.css @@ -0,0 +1,23 @@ +@import url("theme.css"); + +.wy-nav-content { + max-width: 1290px; +} + +.rst-content table.docutils { + width: 100%; +} + +.rst-content table.docutils td { + vertical-align: top; + padding: 0; +} + +.rst-content table.docutils td p { + padding: 8px; +} + +.rst-content div[class^=highlight] { + border: 0; + margin: 0; +} diff --git a/docs/conf.py b/docs/conf.py index 1050b6222..c357b66c5 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,40 +1,35 @@ -# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. +# Configuration file for the Sphinx documentation builder. # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================== +# This file only contains a selection of the most common options. For a full +# a_list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# import os +import shutil import sys +sys.path.insert(0, os.path.abspath('./')) sys.path.insert(0, os.path.abspath('../')) import brainpy -import shutil -shutil.rmtree('changelog.md', ignore_errors=True) -shutil.rmtree('apis/generated', ignore_errors=True) -shutil.rmtree('_build', ignore_errors=True) -shutil.copy('../changelog.md', './changelog.md') +shutil.copytree('../images/', './_static/logos/', dirs_exist_ok=True) # -- Project information ----------------------------------------------------- -project = 'brainstate' -copyright = '2024, brainstate' -author = 'BrainState Developers' +project = 'BrainPy' +copyright = '2020-, BrainPy' +author = 'BrainPy Team' # The full version, including alpha/beta/rc tags -release = brainstate.__version__ +release = brainpy.__version__ # -- General configuration --------------------------------------------------- @@ -52,8 +47,8 @@ 'myst_nb', 'matplotlib.sphinxext.plot_directive', 'sphinx_thebe', - 'sphinx_design', - 'sphinx_math_dollar', + 'sphinx_design' + # 'sphinx-mathjax-offline', ] # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -67,38 +62,53 @@ # The master toctree document. master_doc = 'index' - intersphinx_mapping = { - "python": ("https://docs.python.org/3.13", None), + "python": ("https://docs.python.org/3.8", None), "sphinx": ("https://www.sphinx-doc.org/en/master", None), } nitpick_ignore = [ ("py:class", "docutils.nodes.document"), ("py:class", "docutils.parsers.rst.directives.body.Sidebar"), ] - suppress_warnings = ["myst.domains", "ref.ref"] - numfig = True - -myst_enable_extensions = [ - "dollarmath", - "amsmath", - "deflist", - "colon_fence", -] +myst_enable_extensions = ["dollarmath", "amsmath", "deflist", "colon_fence"] # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] +# href with no underline and white bold text color +announcement = """ + + This site covers the new BrainPy 3.0 API. + [Click here for the classical BrainPy 2.0 API] + +""" + +html_theme_options = { + 'repository_url': 'https://github.com/brainpy/BrainPy', + 'use_repository_button': True, # add a 'link to repository' button + 'use_issues_button': False, # add an 'Open an Issue' button + 'path_to_docs': 'docs', # used to compute the path to launch notebooks in colab + 'launch_buttons': { + 'colab_url': 'https://colab.research.google.com/', + }, + 'prev_next_buttons_location': None, + 'show_navbar_depth': 1, + 'announcement': announcement, + 'logo_only': True, + 'show_toc_level': 2, +} + html_theme = "sphinx_book_theme" -html_logo = "_static/brainstate.png" -html_title = "brainstate" +html_logo = "_static/logos/logo.png" +html_title = "BrainPy documentation" html_copy_source = True html_sourcelink_suffix = "" -html_favicon = "_static/brainstate.png" +html_favicon = "_static/logos/logo-square.png" html_last_updated_fmt = "" +html_css_files = ['css/theme.css'] # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -110,15 +120,10 @@ "repository_branch": "master", } -html_theme_options = { - 'show_toc_level': 2, -} - # -- Options for myst ---------------------------------------------- +# Notebook cell execution timeout; defaults to 30. +execution_timeout = 200 autodoc_default_options = { 'exclude-members': '....,default_rng', } -napoleon_google_docstring = True -napoleon_numpy_docstring = True - diff --git a/docs_version2/_static/css/theme.css b/docs_version2/_static/css/theme.css new file mode 100644 index 000000000..b8207032d --- /dev/null +++ b/docs_version2/_static/css/theme.css @@ -0,0 +1,23 @@ +@import url("theme.css"); + +.wy-nav-content { + max-width: 1290px; +} + +.rst-content table.docutils { + width: 100%; +} + +.rst-content table.docutils td { + vertical-align: top; + padding: 0; +} + +.rst-content table.docutils td p { + padding: 8px; +} + +.rst-content div[class^=highlight] { + border: 0; + margin: 0; +} diff --git a/docs_version2/brainpy-changelog.md b/docs_version2/brainpy-changelog.md index 97b0ea9a8..f9e7f6b32 100644 --- a/docs_version2/brainpy-changelog.md +++ b/docs_version2/brainpy-changelog.md @@ -5,7 +5,7 @@ ## brainpy 3.0.0 -### Version 3.0.0 +See [brainpy version 3.0 changelog](https://brainpy.readthedocs.io/changelog.html). diff --git a/docs_version2/conf.py b/docs_version2/conf.py index 359dd2475..c0b6339a9 100644 --- a/docs_version2/conf.py +++ b/docs_version2/conf.py @@ -42,7 +42,6 @@ shutil.copytree('../images/', './_static/logos/', dirs_exist_ok=True) - # -- Project information ----------------------------------------------------- project = 'BrainPy' @@ -95,18 +94,12 @@ suppress_warnings = ["myst.domains", "ref.ref"] numfig = True -myst_enable_extensions = [ - "dollarmath", - "amsmath", - "deflist", - "colon_fence", -] +myst_enable_extensions = ["dollarmath", "amsmath", "deflist", "colon_fence"] # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - # href with no underline and white bold text color announcement = """ @@ -115,21 +108,20 @@ """ html_theme_options = { - 'repository_url': 'https://github.com/brainpy/BrainPy', - 'use_repository_button': True, # add a 'link to repository' button - 'use_issues_button': False, # add an 'Open an Issue' button - 'path_to_docs': 'docs', # used to compute the path to launch notebooks in colab - 'launch_buttons': { - 'colab_url': 'https://colab.research.google.com/', - }, - 'prev_next_buttons_location': None, - 'show_navbar_depth': 1, - 'announcement': announcement, - 'logo_only': True, - 'show_toc_level': 2, + 'repository_url': 'https://github.com/brainpy/BrainPy', + 'use_repository_button': True, # add a 'link to repository' button + 'use_issues_button': False, # add an 'Open an Issue' button + 'path_to_docs': 'docs', # used to compute the path to launch notebooks in colab + 'launch_buttons': { + 'colab_url': 'https://colab.research.google.com/', + }, + 'prev_next_buttons_location': None, + 'show_navbar_depth': 1, + 'announcement': announcement, + 'logo_only': True, + 'show_toc_level': 2, } - html_theme = "sphinx_book_theme" html_logo = "_static/logos/logo.png" html_title = "BrainPy documentation" @@ -137,7 +129,7 @@ html_sourcelink_suffix = "" html_favicon = "_static/logos/logo-square.png" html_last_updated_fmt = "" -html_css_files = ['css/flax_theme.css'] +html_css_files = ['css/theme.css'] # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, From 11c3dc437fa6ed87d15070e92a60db830b509f5d Mon Sep 17 00:00:00 2001 From: oujago Date: Mon, 6 Oct 2025 17:03:48 +0800 Subject: [PATCH 11/18] refactor(docs): update import statements for brainpy and add changelog file --- brainpy/_synapse.py | 1 + brainpy/_synaptic_projection.py | 8 ++++---- changelog.md | 7 +++++++ 3 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 changelog.md diff --git a/brainpy/_synapse.py b/brainpy/_synapse.py index 73a96bf58..2f495237d 100644 --- a/brainpy/_synapse.py +++ b/brainpy/_synapse.py @@ -122,6 +122,7 @@ class AMPA(Synapse): $$ where: + - $g$ represents the fraction of receptors in the open state - $\alpha$ is the binding rate constant [ms^-1 mM^-1] - $\beta$ is the unbinding rate constant [ms^-1] diff --git a/brainpy/_synaptic_projection.py b/brainpy/_synaptic_projection.py index 9ecc3b3f7..e7645ab02 100644 --- a/brainpy/_synaptic_projection.py +++ b/brainpy/_synaptic_projection.py @@ -247,14 +247,14 @@ class AsymmetryGapJunction(Projection): Examples -------- - >>> import brainstate + >>> import brainpy >>> import brainunit as u >>> import numpy as np >>> >>> # Create two neuron populations >>> n_neurons = 100 - >>> pre_pop = brainstate.nn.LIF(n_neurons, V_rest=-70*u.mV, V_threshold=-50*u.mV) - >>> post_pop = brainstate.nn.LIF(n_neurons, V_rest=-70*u.mV, V_threshold=-50*u.mV) + >>> pre_pop = brainpy.LIF(n_neurons, V_rest=-70*u.mV, V_threshold=-50*u.mV) + >>> post_pop = brainpy.LIF(n_neurons, V_rest=-70*u.mV, V_threshold=-50*u.mV) >>> pre_pop.init_state() >>> post_pop.init_state() >>> @@ -262,7 +262,7 @@ class AsymmetryGapJunction(Projection): >>> weights = np.ones((n_neurons, 2)) * u.nS >>> weights[:, 0] *= 2.0 # Double weight in pre->post direction >>> - >>> gap_junction = brainstate.nn.AsymmetryGapJunction( + >>> gap_junction = brainpy.AsymmetryGapJunction( ... pre=pre_pop, ... pre_state='V', ... post=post_pop, diff --git a/changelog.md b/changelog.md new file mode 100644 index 000000000..010f595e9 --- /dev/null +++ b/changelog.md @@ -0,0 +1,7 @@ +# Changelog + + +## Version 3.0.0 + + + From fd1e4b67c267b83231779aad86d1b7209bb37396 Mon Sep 17 00:00:00 2001 From: oujago Date: Tue, 7 Oct 2025 12:29:51 +0800 Subject: [PATCH 12/18] refactor(docs): clean up import statements and improve code formatting --- brainpy/__init__.py | 2 +- brainpy/_stp.py | 5 +- docs/apis.rst | 102 ++++++++++++++++++ docs/conf.py | 3 +- docs/index.rst | 56 +--------- docs_version2/index.rst | 21 ++++ ...usin_Destexhe_2021_gamma_oscillation_AI.py | 5 +- ...n_Destexhe_2021_gamma_oscillation_CHING.py | 2 +- ...sin_Destexhe_2021_gamma_oscillation_ING.py | 2 +- ...in_Destexhe_2021_gamma_oscillation_PING.py | 2 +- .../Susin_Destexhe_2021_gamma_oscillation.py | 2 +- 11 files changed, 141 insertions(+), 61 deletions(-) create mode 100644 docs/apis.rst diff --git a/brainpy/__init__.py b/brainpy/__init__.py index b460ac8f5..0f0dcf2a4 100644 --- a/brainpy/__init__.py +++ b/brainpy/__init__.py @@ -82,7 +82,7 @@ def __dir__(): _deprecated_modules = [ 'math', 'check', 'tools', 'connect', 'initialize', 'init', 'conn', 'optim', 'losses', 'measure', 'inputs', 'encoding', 'checkpoints', - 'mixin', 'algorithms', 'integrators', 'ode', 'sde', 'fde', + 'algorithms', 'integrators', 'ode', 'sde', 'fde', 'dnn', 'layers', 'dyn', 'running', 'train', 'analysis', 'channels', 'neurons', 'rates', 'synapses', 'synouts', 'synplast', 'visualization', 'visualize', 'types', 'modes', 'context', diff --git a/brainpy/_stp.py b/brainpy/_stp.py index b2f819c67..83917b755 100644 --- a/brainpy/_stp.py +++ b/brainpy/_stp.py @@ -209,7 +209,6 @@ def __init__( self, in_size: Size, name: Optional[str] = None, - # synapse parameters tau: ArrayLike = 200. * u.ms, U: ArrayLike = 0.07, ): @@ -220,7 +219,9 @@ def __init__( self.U = braintools.init.param(U, self.varshape) def init_state(self, batch_size: int = None, **kwargs): - self.x = brainstate.HiddenState(braintools.init.param(braintools.init.Constant(1.), self.varshape, batch_size)) + self.x = brainstate.HiddenState( + braintools.init.param(braintools.init.Constant(1.), self.varshape, batch_size) + ) def reset_state(self, batch_size: int = None, **kwargs): self.x.value = braintools.init.param(braintools.init.Constant(1.), self.varshape, batch_size) diff --git a/docs/apis.rst b/docs/apis.rst new file mode 100644 index 000000000..6c95a927c --- /dev/null +++ b/docs/apis.rst @@ -0,0 +1,102 @@ +API Reference +============= + +This page provides a comprehensive reference for all BrainPy APIs. + +.. currentmodule:: brainpy +.. automodule:: brainpy + + + +Neuron Models +------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + Neuron + LIF + LIFRef + ALIF + Izhikevich + IF + ExpIF + AdExIF + + +Synapse Models +-------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + Synapse + Delta + Exponential + DualExponential + Alpha + NMDA + AMPA + GABAa + + +Short-Term Plasticity +--------------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + STP + STD + STF + + +Synaptic Output +--------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + CUBA + COBA + MgBlock + + +Projection +---------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + Projection + FullProjDelta + FullProjAlignPostDelta + + +Readout +------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + Readout + Dense + Linear + + +Input Generators +---------------- + +.. autosummary:: + :toctree: generated/ + :nosignatures: + + spike_input + latency_input + diff --git a/docs/conf.py b/docs/conf.py index c357b66c5..aeb13f630 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -17,10 +17,11 @@ sys.path.insert(0, os.path.abspath('./')) sys.path.insert(0, os.path.abspath('../')) +sys.path.insert(0, r'D:\codes\projects\brainstate') import brainpy - shutil.copytree('../images/', './_static/logos/', dirs_exist_ok=True) +shutil.copyfile('../changelog.md', './changelog.md') # -- Project information ----------------------------------------------------- diff --git a/docs/index.rst b/docs/index.rst index a13f24c21..58d3bb32d 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,49 +1,10 @@ ``brainpy`` documentation ========================= -`brainpy `_ +`brainpy `_ provides a powerful and flexible framework +for building, simulating, and training spiking neural networks. ----- - -Features -^^^^^^^^^ - -.. grid:: - - - - .. grid-item:: - :columns: 12 12 12 6 - - .. card:: Program Compilation - :class-card: sd-border-0 - :shadow: none - :class-title: sd-fs-6 - - .. div:: sd-font-normal - - ``BrainState`` supports `program compilation <./apis/compile.html>`__ (such as just-in-time compilation) with its `state-based <./apis/brainstate.html>`__ IR construction. - - - - .. grid-item:: - :columns: 12 12 12 6 - - .. card:: Program Augmentation - :class-card: sd-border-0 - :shadow: none - :class-title: sd-fs-6 - - .. div:: sd-font-normal - - ``BrainState`` supports program `functionality augmentation <./apis/augment.html>`__ (such batching) with its `graph-based <./apis/graph.html>`__ Python objects. - - - - ----- - Installation ^^^^^^^^^^^^ @@ -79,6 +40,8 @@ See also the ecosystem ``brainpy`` is one part of our `brain simulation ecosystem `_. + + .. toctree:: :hidden: :maxdepth: 1 @@ -97,14 +60,5 @@ See also the ecosystem :caption: API Reference changelog.md - apis/brainstate.rst - apis/graph.rst - apis/transform.rst - apis/nn.rst - apis/random.rst - apis/util.rst - apis/surrogate.rst - apis/typing.rst - apis/mixin.rst - apis/environ.rst + apis.rst diff --git a/docs_version2/index.rst b/docs_version2/index.rst index 5dfa0ad2b..2bd495d0a 100644 --- a/docs_version2/index.rst +++ b/docs_version2/index.rst @@ -10,6 +10,27 @@ general-purpose Brain Dynamics Programming (BDP). +.. note:: + + From September 2025, BrainPy has been upgraded to version 3.x. + To compatible apis within version 2.x. Please change your code: + + .. code-block:: python + + # Old version (v2.x) + import brainpy as bp + import brainpy.math as bm + + to the new version: + + + .. code-block:: python + + # New version (v3.x) + import brainpy.version2 as bp + import brainpy.version2.math as bm + + ---- diff --git a/examples/110_Susin_Destexhe_2021_gamma_oscillation_AI.py b/examples/110_Susin_Destexhe_2021_gamma_oscillation_AI.py index b99d8cfd3..94ad80df3 100644 --- a/examples/110_Susin_Destexhe_2021_gamma_oscillation_AI.py +++ b/examples/110_Susin_Destexhe_2021_gamma_oscillation_AI.py @@ -23,12 +23,12 @@ # Asynchronous Network +import braintools import brainunit as u import matplotlib.pyplot as plt import brainpy import brainstate -import braintools from Susin_Destexhe_2021_gamma_oscillation import ( get_inputs, visualize_simulation_results, RS_par, FS_par, Ch_par, AdEx @@ -164,7 +164,8 @@ def simulate_ai_net(): # simulation times = u.math.arange(0. * u.ms, duration, brainstate.environ.get_dt()) indices = u.math.arange(0, len(times)) - returns = brainstate.transform.for_loop(net.update, indices, times, varied_rates, pbar=brainstate.transform.ProgressBar(100)) + returns = brainstate.transform.for_loop(net.update, indices, times, varied_rates, + pbar=brainstate.transform.ProgressBar(100)) # # spike raster plot # spikes = returns['FS.spike'] diff --git a/examples/111_Susin_Destexhe_2021_gamma_oscillation_CHING.py b/examples/111_Susin_Destexhe_2021_gamma_oscillation_CHING.py index 671a45384..ed1190d26 100644 --- a/examples/111_Susin_Destexhe_2021_gamma_oscillation_CHING.py +++ b/examples/111_Susin_Destexhe_2021_gamma_oscillation_CHING.py @@ -182,7 +182,7 @@ def simulate_ching_net(): times = u.math.arange(0. * u.ms, duration, brainstate.environ.get_dt()) indices = u.math.arange(0, len(times)) returns = brainstate.transform.for_loop(net.update, indices, times, varied_rates, - pbar=brainstate.transform.ProgressBar(100)) + pbar=brainstate.transform.ProgressBar(100)) # visualization visualize_simulation_results( diff --git a/examples/112_Susin_Destexhe_2021_gamma_oscillation_ING.py b/examples/112_Susin_Destexhe_2021_gamma_oscillation_ING.py index 99818285c..a8f6b67d6 100644 --- a/examples/112_Susin_Destexhe_2021_gamma_oscillation_ING.py +++ b/examples/112_Susin_Destexhe_2021_gamma_oscillation_ING.py @@ -179,7 +179,7 @@ def simulate_ing_net(): times = u.math.arange(0. * u.ms, duration, brainstate.environ.get_dt()) indices = u.math.arange(0, len(times)) returns = brainstate.transform.for_loop(net.update, indices, times, varied_rates, - pbar=brainstate.transform.ProgressBar(100)) + pbar=brainstate.transform.ProgressBar(100)) # visualization visualize_simulation_results( diff --git a/examples/113_Susin_Destexhe_2021_gamma_oscillation_PING.py b/examples/113_Susin_Destexhe_2021_gamma_oscillation_PING.py index 665438538..3ee47aa92 100644 --- a/examples/113_Susin_Destexhe_2021_gamma_oscillation_PING.py +++ b/examples/113_Susin_Destexhe_2021_gamma_oscillation_PING.py @@ -128,7 +128,7 @@ def simulate_ping_net(): times = u.math.arange(0. * u.ms, duration, brainstate.environ.get_dt()) indices = u.math.arange(0, len(times)) returns = brainstate.transform.for_loop(net.update, indices, times, varied_rates, - pbar=brainstate.transform.ProgressBar(100)) + pbar=brainstate.transform.ProgressBar(100)) # visualization visualize_simulation_results( diff --git a/examples/Susin_Destexhe_2021_gamma_oscillation.py b/examples/Susin_Destexhe_2021_gamma_oscillation.py index d1670e45d..2024abb2b 100644 --- a/examples/Susin_Destexhe_2021_gamma_oscillation.py +++ b/examples/Susin_Destexhe_2021_gamma_oscillation.py @@ -19,6 +19,7 @@ # - Susin, Eduarda, and Alain Destexhe. “Integration, coincidence detection and resonance in networks of spiking neurons expressing gamma oscillations and asynchronous states.” PLoS computational biology 17.9 (2021): e1009416. # +import braintools import brainunit as u import matplotlib.pyplot as plt import numpy as np @@ -26,7 +27,6 @@ import brainpy import brainstate -import braintools # Table 1: specific neuron model parameters RS_par = dict( From 225a7c2b415c3bbbf79e1359c9419d9f03043996 Mon Sep 17 00:00:00 2001 From: oujago Date: Tue, 7 Oct 2025 12:33:22 +0800 Subject: [PATCH 13/18] change ecosystem name --- brainpy/_base_test.py | 2 +- brainpy/_exponential.py | 2 +- brainpy/_inputs.py | 2 +- brainpy/_lif.py | 2 +- brainpy/_lif_test.py | 2 +- brainpy/_readout.py | 2 +- brainpy/_readout_test.py | 2 +- brainpy/_stp.py | 2 +- brainpy/_synapse.py | 2 +- brainpy/_synapse_test.py | 2 +- brainpy/_synouts.py | 2 +- brainpy/_synouts_test.py | 2 +- brainpy/version2/__init__.py | 2 +- brainpy/version2/algorithms/__init__.py | 2 +- brainpy/version2/algorithms/offline.py | 2 +- brainpy/version2/algorithms/online.py | 2 +- brainpy/version2/algorithms/utils.py | 2 +- brainpy/version2/analysis/__init__.py | 2 +- brainpy/version2/analysis/base.py | 2 +- brainpy/version2/analysis/constants.py | 2 +- brainpy/version2/analysis/highdim/__init__.py | 2 +- brainpy/version2/analysis/highdim/slow_points.py | 2 +- brainpy/version2/analysis/highdim/tests/test_slow_points.py | 2 +- brainpy/version2/analysis/lowdim/__init__.py | 2 +- brainpy/version2/analysis/lowdim/lowdim_analyzer.py | 2 +- brainpy/version2/analysis/lowdim/lowdim_bifurcation.py | 2 +- brainpy/version2/analysis/lowdim/lowdim_phase_plane.py | 2 +- brainpy/version2/analysis/lowdim/tests/test_bifurcation.py | 2 +- brainpy/version2/analysis/lowdim/tests/test_phase_plane.py | 2 +- brainpy/version2/analysis/plotstyle.py | 2 +- brainpy/version2/analysis/stability.py | 2 +- brainpy/version2/analysis/tests/test_stability.py | 2 +- brainpy/version2/analysis/utils/__init__.py | 2 +- brainpy/version2/analysis/utils/function.py | 2 +- brainpy/version2/analysis/utils/measurement.py | 2 +- brainpy/version2/analysis/utils/model.py | 2 +- brainpy/version2/analysis/utils/optimization.py | 2 +- brainpy/version2/analysis/utils/others.py | 2 +- brainpy/version2/analysis/utils/outputs.py | 2 +- brainpy/version2/analysis/utils/visualization.py | 2 +- brainpy/version2/channels.py | 2 +- brainpy/version2/check.py | 2 +- brainpy/version2/checkpoints.py | 2 +- brainpy/version2/connect/__init__.py | 2 +- brainpy/version2/connect/base.py | 2 +- brainpy/version2/connect/custom_conn.py | 2 +- brainpy/version2/connect/random_conn.py | 2 +- brainpy/version2/connect/regular_conn.py | 2 +- brainpy/version2/connect/tests/test_custom_conn.py | 2 +- brainpy/version2/connect/tests/test_optimized_result.py | 2 +- brainpy/version2/connect/tests/test_random_conn.py | 2 +- brainpy/version2/connect/tests/test_random_conn_visualize.py | 2 +- brainpy/version2/connect/tests/test_regular_conn.py | 2 +- brainpy/version2/context.py | 2 +- brainpy/version2/delay.py | 2 +- brainpy/version2/deprecations.py | 2 +- brainpy/version2/dnn/__init__.py | 2 +- brainpy/version2/dnn/activations.py | 2 +- brainpy/version2/dnn/base.py | 2 +- brainpy/version2/dnn/conv.py | 2 +- brainpy/version2/dnn/dropout.py | 2 +- brainpy/version2/dnn/function.py | 2 +- brainpy/version2/dnn/interoperation_flax.py | 2 +- brainpy/version2/dnn/linear.py | 2 +- brainpy/version2/dnn/normalization.py | 2 +- brainpy/version2/dnn/pooling.py | 2 +- brainpy/version2/dnn/tests/test_activation.py | 2 +- brainpy/version2/dnn/tests/test_conv_layers.py | 2 +- brainpy/version2/dnn/tests/test_flax.py | 2 +- brainpy/version2/dnn/tests/test_function.py | 2 +- brainpy/version2/dnn/tests/test_linear.py | 2 +- brainpy/version2/dnn/tests/test_mode.py | 2 +- brainpy/version2/dnn/tests/test_normalization.py | 2 +- brainpy/version2/dnn/tests/test_pooling_layers.py | 2 +- brainpy/version2/dyn/__init__.py | 2 +- brainpy/version2/dyn/_docs.py | 2 +- brainpy/version2/dyn/base.py | 2 +- brainpy/version2/dyn/channels/__init__.py | 2 +- brainpy/version2/dyn/channels/base.py | 2 +- brainpy/version2/dyn/channels/calcium.py | 2 +- brainpy/version2/dyn/channels/hyperpolarization_activated.py | 2 +- brainpy/version2/dyn/channels/leaky.py | 2 +- brainpy/version2/dyn/channels/potassium.py | 2 +- brainpy/version2/dyn/channels/potassium_calcium.py | 2 +- brainpy/version2/dyn/channels/potassium_calcium_compatible.py | 2 +- brainpy/version2/dyn/channels/potassium_compatible.py | 2 +- brainpy/version2/dyn/channels/sodium.py | 2 +- brainpy/version2/dyn/channels/sodium_compatible.py | 2 +- brainpy/version2/dyn/channels/tests/test_Ca.py | 2 +- brainpy/version2/dyn/channels/tests/test_IH.py | 2 +- brainpy/version2/dyn/channels/tests/test_K.py | 2 +- brainpy/version2/dyn/channels/tests/test_KCa.py | 2 +- brainpy/version2/dyn/channels/tests/test_Na.py | 2 +- brainpy/version2/dyn/channels/tests/test_leaky.py | 2 +- brainpy/version2/dyn/ions/__init__.py | 2 +- brainpy/version2/dyn/ions/base.py | 2 +- brainpy/version2/dyn/ions/calcium.py | 2 +- brainpy/version2/dyn/ions/potassium.py | 2 +- brainpy/version2/dyn/ions/sodium.py | 2 +- brainpy/version2/dyn/ions/tests/test_MixIons.py | 2 +- brainpy/version2/dyn/neurons/__init__.py | 2 +- brainpy/version2/dyn/neurons/base.py | 2 +- brainpy/version2/dyn/neurons/hh.py | 2 +- brainpy/version2/dyn/neurons/lif.py | 2 +- brainpy/version2/dyn/neurons/tests/test_hh.py | 2 +- brainpy/version2/dyn/neurons/tests/test_lif.py | 2 +- brainpy/version2/dyn/others/__init__.py | 2 +- brainpy/version2/dyn/others/common.py | 2 +- brainpy/version2/dyn/others/input.py | 2 +- brainpy/version2/dyn/others/noise.py | 2 +- brainpy/version2/dyn/others/tests/test_input.py | 2 +- brainpy/version2/dyn/others/tests/test_input_groups.py | 2 +- brainpy/version2/dyn/others/tests/test_noise_groups.py | 2 +- brainpy/version2/dyn/outs/__init__.py | 2 +- brainpy/version2/dyn/outs/base.py | 2 +- brainpy/version2/dyn/outs/outputs.py | 2 +- brainpy/version2/dyn/projections/__init__.py | 2 +- brainpy/version2/dyn/projections/align_post.py | 2 +- brainpy/version2/dyn/projections/align_pre.py | 2 +- brainpy/version2/dyn/projections/base.py | 2 +- brainpy/version2/dyn/projections/conn.py | 2 +- brainpy/version2/dyn/projections/delta.py | 2 +- brainpy/version2/dyn/projections/inputs.py | 2 +- brainpy/version2/dyn/projections/plasticity.py | 2 +- brainpy/version2/dyn/projections/tests/test_STDP.py | 2 +- brainpy/version2/dyn/projections/tests/test_aligns.py | 2 +- brainpy/version2/dyn/projections/tests/test_delta.py | 2 +- brainpy/version2/dyn/projections/utils.py | 2 +- brainpy/version2/dyn/projections/vanilla.py | 2 +- brainpy/version2/dyn/rates/__init__.py | 2 +- brainpy/version2/dyn/rates/nvar.py | 2 +- brainpy/version2/dyn/rates/populations.py | 2 +- brainpy/version2/dyn/rates/reservoir.py | 2 +- brainpy/version2/dyn/rates/rnncells.py | 2 +- brainpy/version2/dyn/rates/tests/test_nvar.py | 2 +- brainpy/version2/dyn/rates/tests/test_rates.py | 2 +- brainpy/version2/dyn/rates/tests/test_reservoir.py | 2 +- brainpy/version2/dyn/rates/tests/test_rnncells.py | 2 +- brainpy/version2/dyn/synapses/__init__.py | 2 +- brainpy/version2/dyn/synapses/abstract_models.py | 2 +- brainpy/version2/dyn/synapses/bio_models.py | 2 +- brainpy/version2/dyn/synapses/delay_couplings.py | 2 +- brainpy/version2/dyn/synapses/tests/test_abstract_models.py | 2 +- brainpy/version2/dyn/synapses/tests/test_delay_couplings.py | 2 +- brainpy/version2/dyn/utils.py | 2 +- brainpy/version2/dynold/__init__.py | 2 +- brainpy/version2/dynold/experimental/__init__.py | 2 +- brainpy/version2/dynold/experimental/abstract_synapses.py | 2 +- brainpy/version2/dynold/experimental/base.py | 2 +- brainpy/version2/dynold/experimental/others.py | 2 +- brainpy/version2/dynold/experimental/syn_outs.py | 2 +- brainpy/version2/dynold/experimental/syn_plasticity.py | 2 +- brainpy/version2/dynold/neurons/__init__.py | 2 +- brainpy/version2/dynold/neurons/biological_models.py | 2 +- brainpy/version2/dynold/neurons/fractional_models.py | 2 +- brainpy/version2/dynold/neurons/reduced_models.py | 2 +- .../version2/dynold/neurons/tests/test_biological_neurons.py | 2 +- .../version2/dynold/neurons/tests/test_fractional_neurons.py | 2 +- brainpy/version2/dynold/neurons/tests/test_reduced_neurons.py | 2 +- brainpy/version2/dynold/synapses/__init__.py | 2 +- brainpy/version2/dynold/synapses/abstract_models.py | 2 +- brainpy/version2/dynold/synapses/base.py | 2 +- brainpy/version2/dynold/synapses/biological_models.py | 2 +- brainpy/version2/dynold/synapses/compat.py | 2 +- brainpy/version2/dynold/synapses/gap_junction.py | 2 +- brainpy/version2/dynold/synapses/learning_rules.py | 2 +- .../version2/dynold/synapses/tests/test_abstract_synapses.py | 2 +- .../version2/dynold/synapses/tests/test_biological_synapses.py | 2 +- .../version2/dynold/synapses/tests/test_dynold_base_synapse.py | 2 +- brainpy/version2/dynold/synapses/tests/test_gap_junction.py | 2 +- brainpy/version2/dynold/synapses/tests/test_learning_rule.py | 2 +- brainpy/version2/dynold/synouts/__init__.py | 2 +- brainpy/version2/dynold/synouts/conductances.py | 2 +- brainpy/version2/dynold/synouts/ions.py | 2 +- brainpy/version2/dynold/synplast/__init__.py | 2 +- brainpy/version2/dynold/synplast/short_term_plasticity.py | 2 +- brainpy/version2/dynsys.py | 2 +- brainpy/version2/encoding/__init__.py | 2 +- brainpy/version2/encoding/base.py | 2 +- brainpy/version2/encoding/stateful_encoding.py | 2 +- brainpy/version2/encoding/stateless_encoding.py | 2 +- brainpy/version2/encoding/tests/test_stateless_encoding.py | 2 +- brainpy/version2/experimental.py | 2 +- brainpy/version2/helpers.py | 2 +- brainpy/version2/initialize/__init__.py | 2 +- brainpy/version2/initialize/base.py | 2 +- brainpy/version2/initialize/decay_inits.py | 2 +- brainpy/version2/initialize/generic.py | 2 +- brainpy/version2/initialize/others.py | 2 +- brainpy/version2/initialize/random_inits.py | 2 +- brainpy/version2/initialize/regular_inits.py | 2 +- brainpy/version2/initialize/tests/test_decay_inits.py | 2 +- brainpy/version2/initialize/tests/test_random_inits.py | 2 +- brainpy/version2/initialize/tests/test_regular_inits.py | 2 +- brainpy/version2/inputs/__init__.py | 2 +- brainpy/version2/inputs/currents.py | 2 +- brainpy/version2/inputs/tests/test_currents.py | 2 +- brainpy/version2/integrators/__init__.py | 2 +- brainpy/version2/integrators/base.py | 2 +- brainpy/version2/integrators/constants.py | 2 +- brainpy/version2/integrators/fde/Caputo.py | 2 +- brainpy/version2/integrators/fde/GL.py | 2 +- brainpy/version2/integrators/fde/__init__.py | 2 +- brainpy/version2/integrators/fde/base.py | 2 +- brainpy/version2/integrators/fde/generic.py | 2 +- brainpy/version2/integrators/fde/tests/test_Caputo.py | 2 +- brainpy/version2/integrators/fde/tests/test_GL.py | 2 +- brainpy/version2/integrators/joint_eq.py | 2 +- brainpy/version2/integrators/ode/__init__.py | 2 +- brainpy/version2/integrators/ode/adaptive_rk.py | 2 +- brainpy/version2/integrators/ode/base.py | 2 +- brainpy/version2/integrators/ode/common.py | 2 +- brainpy/version2/integrators/ode/explicit_rk.py | 2 +- brainpy/version2/integrators/ode/exponential.py | 2 +- brainpy/version2/integrators/ode/generic.py | 2 +- brainpy/version2/integrators/ode/tests/test_delay_ode.py | 2 +- .../integrators/ode/tests/test_ode_keywords_for_adaptive_rk.py | 2 +- .../integrators/ode/tests/test_ode_keywords_for_exp_euler.py | 2 +- .../integrators/ode/tests/test_ode_keywords_for_general_rk.py | 2 +- .../integrators/ode/tests/test_ode_method_adaptive_rk.py | 2 +- .../version2/integrators/ode/tests/test_ode_method_exp_euler.py | 2 +- brainpy/version2/integrators/ode/tests/test_ode_method_rk.py | 2 +- brainpy/version2/integrators/pde/__init__.py | 2 +- brainpy/version2/integrators/pde/base.py | 2 +- brainpy/version2/integrators/runner.py | 2 +- brainpy/version2/integrators/sde/__init__.py | 2 +- brainpy/version2/integrators/sde/base.py | 2 +- brainpy/version2/integrators/sde/generic.py | 2 +- brainpy/version2/integrators/sde/normal.py | 2 +- brainpy/version2/integrators/sde/srk_scalar.py | 2 +- brainpy/version2/integrators/sde/srk_strong.py | 2 +- brainpy/version2/integrators/sde/tests/test_normal.py | 2 +- brainpy/version2/integrators/sde/tests/test_sde_scalar.py | 2 +- brainpy/version2/integrators/tests/test_integ_runner.py | 2 +- brainpy/version2/integrators/tests/test_joint_eq.py | 2 +- brainpy/version2/integrators/tests/test_to_math_expr.py | 2 +- brainpy/version2/integrators/utils.py | 2 +- brainpy/version2/layers.py | 2 +- brainpy/version2/losses/__init__.py | 2 +- brainpy/version2/losses/base.py | 2 +- brainpy/version2/losses/comparison.py | 2 +- brainpy/version2/losses/regularization.py | 2 +- brainpy/version2/losses/utils.py | 2 +- brainpy/version2/math/__init__.py | 2 +- brainpy/version2/math/_utils.py | 2 +- brainpy/version2/math/activations.py | 2 +- brainpy/version2/math/compat_numpy.py | 2 +- brainpy/version2/math/compat_pytorch.py | 2 +- brainpy/version2/math/compat_tensorflow.py | 2 +- brainpy/version2/math/datatypes.py | 2 +- brainpy/version2/math/defaults.py | 2 +- brainpy/version2/math/delayvars.py | 2 +- brainpy/version2/math/einops.py | 2 +- brainpy/version2/math/einops_parsing.py | 2 +- brainpy/version2/math/environment.py | 2 +- brainpy/version2/math/event/__init__.py | 2 +- brainpy/version2/math/event/csr_matmat.py | 2 +- brainpy/version2/math/event/csr_matvec.py | 2 +- brainpy/version2/math/fft.py | 2 +- brainpy/version2/math/interoperability.py | 2 +- brainpy/version2/math/jitconn/__init__.py | 2 +- brainpy/version2/math/jitconn/event_matvec.py | 2 +- brainpy/version2/math/jitconn/matvec.py | 2 +- brainpy/version2/math/linalg.py | 2 +- brainpy/version2/math/modes.py | 2 +- brainpy/version2/math/ndarray.py | 2 +- brainpy/version2/math/object_transform/__init__.py | 2 +- brainpy/version2/math/object_transform/_utils.py | 2 +- brainpy/version2/math/object_transform/autograd.py | 2 +- brainpy/version2/math/object_transform/base.py | 2 +- brainpy/version2/math/object_transform/collectors.py | 2 +- brainpy/version2/math/object_transform/controls.py | 2 +- brainpy/version2/math/object_transform/function.py | 2 +- brainpy/version2/math/object_transform/jit.py | 2 +- brainpy/version2/math/object_transform/naming.py | 2 +- brainpy/version2/math/object_transform/tests/test_autograd.py | 2 +- brainpy/version2/math/object_transform/tests/test_base.py | 2 +- .../math/object_transform/tests/test_circular_reference.py | 2 +- brainpy/version2/math/object_transform/tests/test_collector.py | 2 +- brainpy/version2/math/object_transform/tests/test_controls.py | 2 +- brainpy/version2/math/object_transform/tests/test_jit.py | 2 +- .../version2/math/object_transform/tests/test_namechecking.py | 2 +- brainpy/version2/math/object_transform/tests/test_naming.py | 2 +- brainpy/version2/math/object_transform/tests/test_variable.py | 2 +- brainpy/version2/math/object_transform/variables.py | 2 +- brainpy/version2/math/others.py | 2 +- brainpy/version2/math/pre_syn_post.py | 2 +- brainpy/version2/math/remove_vmap.py | 2 +- brainpy/version2/math/scales.py | 2 +- brainpy/version2/math/sharding.py | 2 +- brainpy/version2/math/sparse/__init__.py | 2 +- brainpy/version2/math/sparse/coo_mv.py | 2 +- brainpy/version2/math/sparse/csr_mm.py | 2 +- brainpy/version2/math/sparse/csr_mv.py | 2 +- brainpy/version2/math/sparse/jax_prim.py | 2 +- brainpy/version2/math/sparse/utils.py | 2 +- brainpy/version2/math/surrogate/__init__.py | 2 +- brainpy/version2/math/surrogate/_one_input.py | 2 +- brainpy/version2/math/surrogate/_one_input_new.py | 2 +- brainpy/version2/math/surrogate/_two_inputs.py | 2 +- brainpy/version2/math/surrogate/_utils.py | 2 +- brainpy/version2/math/surrogate/tests/test_one_input.py | 2 +- brainpy/version2/math/surrogate/tests/test_two_inputs.py | 2 +- brainpy/version2/math/tests/test_array_format.py | 2 +- brainpy/version2/math/tests/test_compat_pytorch.py | 2 +- brainpy/version2/math/tests/test_defaults.py | 2 +- brainpy/version2/math/tests/test_delay_vars.py | 2 +- brainpy/version2/math/tests/test_einops.py | 2 +- brainpy/version2/math/tests/test_einops_parsing.py | 2 +- brainpy/version2/math/tests/test_environment.py | 2 +- brainpy/version2/math/tests/test_ndarray.py | 2 +- brainpy/version2/math/tests/test_oprators.py | 2 +- brainpy/version2/math/tests/test_others.py | 2 +- brainpy/version2/math/tests/test_random.py | 2 +- brainpy/version2/math/tests/test_tifunc.py | 2 +- brainpy/version2/mixin.py | 2 +- brainpy/version2/neurons.py | 2 +- brainpy/version2/optim/__init__.py | 2 +- brainpy/version2/optim/optimizer.py | 2 +- brainpy/version2/optim/scheduler.py | 2 +- brainpy/version2/optim/tests/test_ModifyLr.py | 2 +- brainpy/version2/optim/tests/test_scheduler.py | 2 +- brainpy/version2/rates.py | 2 +- brainpy/version2/runners.py | 2 +- brainpy/version2/running/__init__.py | 2 +- brainpy/version2/running/constants.py | 2 +- brainpy/version2/running/jax_multiprocessing.py | 2 +- brainpy/version2/running/native_multiprocessing.py | 2 +- brainpy/version2/running/pathos_multiprocessing.py | 2 +- brainpy/version2/running/runner.py | 2 +- brainpy/version2/running/tests/test_pathos_multiprocessing.py | 2 +- brainpy/version2/synapses.py | 2 +- brainpy/version2/synouts.py | 2 +- brainpy/version2/synplast.py | 2 +- brainpy/version2/tests/test_access_methods.py | 2 +- brainpy/version2/tests/test_base_classes.py | 2 +- brainpy/version2/tests/test_check.py | 2 +- brainpy/version2/tests/test_delay.py | 2 +- brainpy/version2/tests/test_dyn_runner.py | 2 +- brainpy/version2/tests/test_dynsys.py | 2 +- brainpy/version2/tests/test_helper.py | 2 +- brainpy/version2/tests/test_mixin.py | 2 +- brainpy/version2/tests/test_network.py | 2 +- brainpy/version2/tests/test_pickle.py | 2 +- brainpy/version2/tests/test_slice_view.py | 2 +- brainpy/version2/tools/__init__.py | 2 +- brainpy/version2/tools/codes.py | 2 +- brainpy/version2/tools/dicts.py | 2 +- brainpy/version2/tools/functions.py | 2 +- brainpy/version2/tools/install.py | 2 +- brainpy/version2/tools/math_util.py | 2 +- brainpy/version2/tools/others.py | 2 +- brainpy/version2/tools/package.py | 2 +- brainpy/version2/tools/progress.py | 2 +- brainpy/version2/tools/tests/test_functions.py | 2 +- brainpy/version2/train/__init__.py | 2 +- brainpy/version2/train/_utils.py | 2 +- brainpy/version2/train/back_propagation.py | 2 +- brainpy/version2/train/base.py | 2 +- brainpy/version2/train/offline.py | 2 +- brainpy/version2/train/online.py | 2 +- brainpy/version2/transform.py | 2 +- brainpy/version2/types.py | 2 +- brainpy/version2/visualization.py | 2 +- 364 files changed, 364 insertions(+), 364 deletions(-) diff --git a/brainpy/_base_test.py b/brainpy/_base_test.py index 9ed8ac82f..b97799c72 100644 --- a/brainpy/_base_test.py +++ b/brainpy/_base_test.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/_exponential.py b/brainpy/_exponential.py index af3f3116c..7bbee291c 100644 --- a/brainpy/_exponential.py +++ b/brainpy/_exponential.py @@ -1,4 +1,4 @@ -# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/_inputs.py b/brainpy/_inputs.py index 9910c4761..e73e06317 100644 --- a/brainpy/_inputs.py +++ b/brainpy/_inputs.py @@ -1,4 +1,4 @@ -# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/_lif.py b/brainpy/_lif.py index 44b66a3f4..27fcd75f7 100644 --- a/brainpy/_lif.py +++ b/brainpy/_lif.py @@ -1,4 +1,4 @@ -# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/_lif_test.py b/brainpy/_lif_test.py index 93b975d13..1a00c0da4 100644 --- a/brainpy/_lif_test.py +++ b/brainpy/_lif_test.py @@ -1,4 +1,4 @@ -# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/_readout.py b/brainpy/_readout.py index fc206e49f..0a3795dfb 100644 --- a/brainpy/_readout.py +++ b/brainpy/_readout.py @@ -1,4 +1,4 @@ -# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/_readout_test.py b/brainpy/_readout_test.py index 61eb11a07..927d9e3c3 100644 --- a/brainpy/_readout_test.py +++ b/brainpy/_readout_test.py @@ -1,4 +1,4 @@ -# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/_stp.py b/brainpy/_stp.py index 83917b755..350496b07 100644 --- a/brainpy/_stp.py +++ b/brainpy/_stp.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/_synapse.py b/brainpy/_synapse.py index 2f495237d..aec415ef1 100644 --- a/brainpy/_synapse.py +++ b/brainpy/_synapse.py @@ -1,4 +1,4 @@ -# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/_synapse_test.py b/brainpy/_synapse_test.py index d26311c70..95bba6640 100644 --- a/brainpy/_synapse_test.py +++ b/brainpy/_synapse_test.py @@ -1,4 +1,4 @@ -# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/_synouts.py b/brainpy/_synouts.py index c5dfe0ce6..e8cf466be 100644 --- a/brainpy/_synouts.py +++ b/brainpy/_synouts.py @@ -1,4 +1,4 @@ -# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/_synouts_test.py b/brainpy/_synouts_test.py index d964f0d8f..d52c38e6d 100644 --- a/brainpy/_synouts_test.py +++ b/brainpy/_synouts_test.py @@ -1,4 +1,4 @@ -# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/__init__.py b/brainpy/version2/__init__.py index b4a98d2b0..645a4152f 100644 --- a/brainpy/version2/__init__.py +++ b/brainpy/version2/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/algorithms/__init__.py b/brainpy/version2/algorithms/__init__.py index 24f85bca4..6665c9fc0 100644 --- a/brainpy/version2/algorithms/__init__.py +++ b/brainpy/version2/algorithms/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/algorithms/offline.py b/brainpy/version2/algorithms/offline.py index 72fc09437..b8e83b559 100644 --- a/brainpy/version2/algorithms/offline.py +++ b/brainpy/version2/algorithms/offline.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/algorithms/online.py b/brainpy/version2/algorithms/online.py index d290be51b..cf75678a0 100644 --- a/brainpy/version2/algorithms/online.py +++ b/brainpy/version2/algorithms/online.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/algorithms/utils.py b/brainpy/version2/algorithms/utils.py index d003e9ca5..a360ba7c3 100644 --- a/brainpy/version2/algorithms/utils.py +++ b/brainpy/version2/algorithms/utils.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/__init__.py b/brainpy/version2/analysis/__init__.py index 6373319c5..06f93e2bf 100644 --- a/brainpy/version2/analysis/__init__.py +++ b/brainpy/version2/analysis/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/base.py b/brainpy/version2/analysis/base.py index e17d35ee8..68b8e8cfe 100644 --- a/brainpy/version2/analysis/base.py +++ b/brainpy/version2/analysis/base.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/constants.py b/brainpy/version2/analysis/constants.py index fbc425ce0..f18ddd63e 100644 --- a/brainpy/version2/analysis/constants.py +++ b/brainpy/version2/analysis/constants.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/highdim/__init__.py b/brainpy/version2/analysis/highdim/__init__.py index 039e27315..4b647d902 100644 --- a/brainpy/version2/analysis/highdim/__init__.py +++ b/brainpy/version2/analysis/highdim/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/highdim/slow_points.py b/brainpy/version2/analysis/highdim/slow_points.py index bd5229805..1fbb13ca2 100644 --- a/brainpy/version2/analysis/highdim/slow_points.py +++ b/brainpy/version2/analysis/highdim/slow_points.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/highdim/tests/test_slow_points.py b/brainpy/version2/analysis/highdim/tests/test_slow_points.py index 8ff94383e..c329ed09e 100644 --- a/brainpy/version2/analysis/highdim/tests/test_slow_points.py +++ b/brainpy/version2/analysis/highdim/tests/test_slow_points.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/lowdim/__init__.py b/brainpy/version2/analysis/lowdim/__init__.py index db84cc619..b198fc4fb 100644 --- a/brainpy/version2/analysis/lowdim/__init__.py +++ b/brainpy/version2/analysis/lowdim/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/lowdim/lowdim_analyzer.py b/brainpy/version2/analysis/lowdim/lowdim_analyzer.py index 06cd85d9d..178e5329c 100644 --- a/brainpy/version2/analysis/lowdim/lowdim_analyzer.py +++ b/brainpy/version2/analysis/lowdim/lowdim_analyzer.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/lowdim/lowdim_bifurcation.py b/brainpy/version2/analysis/lowdim/lowdim_bifurcation.py index c19e9628d..af099a029 100644 --- a/brainpy/version2/analysis/lowdim/lowdim_bifurcation.py +++ b/brainpy/version2/analysis/lowdim/lowdim_bifurcation.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/lowdim/lowdim_phase_plane.py b/brainpy/version2/analysis/lowdim/lowdim_phase_plane.py index 4b899be1e..098bbc5a2 100644 --- a/brainpy/version2/analysis/lowdim/lowdim_phase_plane.py +++ b/brainpy/version2/analysis/lowdim/lowdim_phase_plane.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/lowdim/tests/test_bifurcation.py b/brainpy/version2/analysis/lowdim/tests/test_bifurcation.py index 826a07dc5..48d41f6e6 100644 --- a/brainpy/version2/analysis/lowdim/tests/test_bifurcation.py +++ b/brainpy/version2/analysis/lowdim/tests/test_bifurcation.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/lowdim/tests/test_phase_plane.py b/brainpy/version2/analysis/lowdim/tests/test_phase_plane.py index 5390d81fb..af4a81bdf 100644 --- a/brainpy/version2/analysis/lowdim/tests/test_phase_plane.py +++ b/brainpy/version2/analysis/lowdim/tests/test_phase_plane.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/plotstyle.py b/brainpy/version2/analysis/plotstyle.py index d259028e9..c617f8073 100644 --- a/brainpy/version2/analysis/plotstyle.py +++ b/brainpy/version2/analysis/plotstyle.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/stability.py b/brainpy/version2/analysis/stability.py index 337c6ec65..7e85f5db6 100644 --- a/brainpy/version2/analysis/stability.py +++ b/brainpy/version2/analysis/stability.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/tests/test_stability.py b/brainpy/version2/analysis/tests/test_stability.py index f94ad4738..d06b7a967 100644 --- a/brainpy/version2/analysis/tests/test_stability.py +++ b/brainpy/version2/analysis/tests/test_stability.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/utils/__init__.py b/brainpy/version2/analysis/utils/__init__.py index 989e1c607..c3fe6f913 100644 --- a/brainpy/version2/analysis/utils/__init__.py +++ b/brainpy/version2/analysis/utils/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/utils/function.py b/brainpy/version2/analysis/utils/function.py index e55c1e710..85df5dda5 100644 --- a/brainpy/version2/analysis/utils/function.py +++ b/brainpy/version2/analysis/utils/function.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/utils/measurement.py b/brainpy/version2/analysis/utils/measurement.py index 454977d60..9b6996a1e 100644 --- a/brainpy/version2/analysis/utils/measurement.py +++ b/brainpy/version2/analysis/utils/measurement.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/utils/model.py b/brainpy/version2/analysis/utils/model.py index 92f94c412..dd8fde365 100644 --- a/brainpy/version2/analysis/utils/model.py +++ b/brainpy/version2/analysis/utils/model.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/utils/optimization.py b/brainpy/version2/analysis/utils/optimization.py index e96ec8900..026702655 100644 --- a/brainpy/version2/analysis/utils/optimization.py +++ b/brainpy/version2/analysis/utils/optimization.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/utils/others.py b/brainpy/version2/analysis/utils/others.py index 0ac950aaa..cd82e28c1 100644 --- a/brainpy/version2/analysis/utils/others.py +++ b/brainpy/version2/analysis/utils/others.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/utils/outputs.py b/brainpy/version2/analysis/utils/outputs.py index de20d60cf..40f3d9863 100644 --- a/brainpy/version2/analysis/utils/outputs.py +++ b/brainpy/version2/analysis/utils/outputs.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/analysis/utils/visualization.py b/brainpy/version2/analysis/utils/visualization.py index ed6d7229d..ca5552bcf 100644 --- a/brainpy/version2/analysis/utils/visualization.py +++ b/brainpy/version2/analysis/utils/visualization.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/channels.py b/brainpy/version2/channels.py index 6782f595c..5fefd9bf4 100644 --- a/brainpy/version2/channels.py +++ b/brainpy/version2/channels.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/check.py b/brainpy/version2/check.py index 5b02264fb..b36cc65b4 100644 --- a/brainpy/version2/check.py +++ b/brainpy/version2/check.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/checkpoints.py b/brainpy/version2/checkpoints.py index 989e7ba9b..ae083581d 100644 --- a/brainpy/version2/checkpoints.py +++ b/brainpy/version2/checkpoints.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/connect/__init__.py b/brainpy/version2/connect/__init__.py index 17fe5cff6..92926b3b1 100644 --- a/brainpy/version2/connect/__init__.py +++ b/brainpy/version2/connect/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/connect/base.py b/brainpy/version2/connect/base.py index 56591c338..de33be0e9 100644 --- a/brainpy/version2/connect/base.py +++ b/brainpy/version2/connect/base.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/connect/custom_conn.py b/brainpy/version2/connect/custom_conn.py index a7564f510..731fd0769 100644 --- a/brainpy/version2/connect/custom_conn.py +++ b/brainpy/version2/connect/custom_conn.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/connect/random_conn.py b/brainpy/version2/connect/random_conn.py index 0825d4044..b106131f8 100644 --- a/brainpy/version2/connect/random_conn.py +++ b/brainpy/version2/connect/random_conn.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/connect/regular_conn.py b/brainpy/version2/connect/regular_conn.py index cc971c101..4cc2a9178 100644 --- a/brainpy/version2/connect/regular_conn.py +++ b/brainpy/version2/connect/regular_conn.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/connect/tests/test_custom_conn.py b/brainpy/version2/connect/tests/test_custom_conn.py index 125a2990b..c6cc6152d 100644 --- a/brainpy/version2/connect/tests/test_custom_conn.py +++ b/brainpy/version2/connect/tests/test_custom_conn.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/connect/tests/test_optimized_result.py b/brainpy/version2/connect/tests/test_optimized_result.py index 107d977b8..c6d726ce7 100644 --- a/brainpy/version2/connect/tests/test_optimized_result.py +++ b/brainpy/version2/connect/tests/test_optimized_result.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/connect/tests/test_random_conn.py b/brainpy/version2/connect/tests/test_random_conn.py index dcf3f0f78..48eb33dfa 100644 --- a/brainpy/version2/connect/tests/test_random_conn.py +++ b/brainpy/version2/connect/tests/test_random_conn.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/connect/tests/test_random_conn_visualize.py b/brainpy/version2/connect/tests/test_random_conn_visualize.py index 8ed81cdf3..2a2d8609d 100644 --- a/brainpy/version2/connect/tests/test_random_conn_visualize.py +++ b/brainpy/version2/connect/tests/test_random_conn_visualize.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/connect/tests/test_regular_conn.py b/brainpy/version2/connect/tests/test_regular_conn.py index 2eb1b6ef8..1870cbfdc 100644 --- a/brainpy/version2/connect/tests/test_regular_conn.py +++ b/brainpy/version2/connect/tests/test_regular_conn.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/context.py b/brainpy/version2/context.py index 8fa240a0b..2609726ff 100644 --- a/brainpy/version2/context.py +++ b/brainpy/version2/context.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/delay.py b/brainpy/version2/delay.py index 82b1697d8..6ce2b2ea8 100644 --- a/brainpy/version2/delay.py +++ b/brainpy/version2/delay.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/deprecations.py b/brainpy/version2/deprecations.py index 011925f06..5b203f796 100644 --- a/brainpy/version2/deprecations.py +++ b/brainpy/version2/deprecations.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/__init__.py b/brainpy/version2/dnn/__init__.py index eda1636bf..7c5efe83f 100644 --- a/brainpy/version2/dnn/__init__.py +++ b/brainpy/version2/dnn/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/activations.py b/brainpy/version2/dnn/activations.py index 7d7e6fbfd..ce514e1a2 100644 --- a/brainpy/version2/dnn/activations.py +++ b/brainpy/version2/dnn/activations.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/base.py b/brainpy/version2/dnn/base.py index c48641904..db695437e 100644 --- a/brainpy/version2/dnn/base.py +++ b/brainpy/version2/dnn/base.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/conv.py b/brainpy/version2/dnn/conv.py index 34c83349b..01d077504 100644 --- a/brainpy/version2/dnn/conv.py +++ b/brainpy/version2/dnn/conv.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/dropout.py b/brainpy/version2/dnn/dropout.py index f840cfee4..272f45817 100644 --- a/brainpy/version2/dnn/dropout.py +++ b/brainpy/version2/dnn/dropout.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/function.py b/brainpy/version2/dnn/function.py index 86d76efe2..8084252ab 100644 --- a/brainpy/version2/dnn/function.py +++ b/brainpy/version2/dnn/function.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/interoperation_flax.py b/brainpy/version2/dnn/interoperation_flax.py index 5d7fe74c6..aa767d29b 100644 --- a/brainpy/version2/dnn/interoperation_flax.py +++ b/brainpy/version2/dnn/interoperation_flax.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/linear.py b/brainpy/version2/dnn/linear.py index 4d1dce5f2..9fa133bf7 100644 --- a/brainpy/version2/dnn/linear.py +++ b/brainpy/version2/dnn/linear.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/normalization.py b/brainpy/version2/dnn/normalization.py index 7747ed67f..8cf4fa9c9 100644 --- a/brainpy/version2/dnn/normalization.py +++ b/brainpy/version2/dnn/normalization.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/pooling.py b/brainpy/version2/dnn/pooling.py index 0d4f36c1f..1a6c5332a 100644 --- a/brainpy/version2/dnn/pooling.py +++ b/brainpy/version2/dnn/pooling.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/tests/test_activation.py b/brainpy/version2/dnn/tests/test_activation.py index 2baa8f943..244d4ac50 100644 --- a/brainpy/version2/dnn/tests/test_activation.py +++ b/brainpy/version2/dnn/tests/test_activation.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/tests/test_conv_layers.py b/brainpy/version2/dnn/tests/test_conv_layers.py index 20406821c..ab7cfd3e0 100644 --- a/brainpy/version2/dnn/tests/test_conv_layers.py +++ b/brainpy/version2/dnn/tests/test_conv_layers.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/tests/test_flax.py b/brainpy/version2/dnn/tests/test_flax.py index 4841ef04f..c3de4019c 100644 --- a/brainpy/version2/dnn/tests/test_flax.py +++ b/brainpy/version2/dnn/tests/test_flax.py @@ -1,4 +1,4 @@ -# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/tests/test_function.py b/brainpy/version2/dnn/tests/test_function.py index eec85caaf..ee0133bba 100644 --- a/brainpy/version2/dnn/tests/test_function.py +++ b/brainpy/version2/dnn/tests/test_function.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/tests/test_linear.py b/brainpy/version2/dnn/tests/test_linear.py index a82130ad7..e397f80db 100644 --- a/brainpy/version2/dnn/tests/test_linear.py +++ b/brainpy/version2/dnn/tests/test_linear.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/tests/test_mode.py b/brainpy/version2/dnn/tests/test_mode.py index bafac86bd..be00cf35a 100644 --- a/brainpy/version2/dnn/tests/test_mode.py +++ b/brainpy/version2/dnn/tests/test_mode.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/tests/test_normalization.py b/brainpy/version2/dnn/tests/test_normalization.py index ccd0875bf..5d0327544 100644 --- a/brainpy/version2/dnn/tests/test_normalization.py +++ b/brainpy/version2/dnn/tests/test_normalization.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dnn/tests/test_pooling_layers.py b/brainpy/version2/dnn/tests/test_pooling_layers.py index a36c2fe2b..4bb9a7766 100644 --- a/brainpy/version2/dnn/tests/test_pooling_layers.py +++ b/brainpy/version2/dnn/tests/test_pooling_layers.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/__init__.py b/brainpy/version2/dyn/__init__.py index 2b6b73b45..e0a294dbd 100644 --- a/brainpy/version2/dyn/__init__.py +++ b/brainpy/version2/dyn/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/_docs.py b/brainpy/version2/dyn/_docs.py index 163e4cc02..214f46d32 100644 --- a/brainpy/version2/dyn/_docs.py +++ b/brainpy/version2/dyn/_docs.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/base.py b/brainpy/version2/dyn/base.py index 6448dfea0..86901db12 100644 --- a/brainpy/version2/dyn/base.py +++ b/brainpy/version2/dyn/base.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/__init__.py b/brainpy/version2/dyn/channels/__init__.py index d59f89eb1..682fcdbcd 100644 --- a/brainpy/version2/dyn/channels/__init__.py +++ b/brainpy/version2/dyn/channels/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/base.py b/brainpy/version2/dyn/channels/base.py index dd5967ce0..7a7d6ef92 100644 --- a/brainpy/version2/dyn/channels/base.py +++ b/brainpy/version2/dyn/channels/base.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/calcium.py b/brainpy/version2/dyn/channels/calcium.py index 5ff2dba4e..5f933fb0a 100644 --- a/brainpy/version2/dyn/channels/calcium.py +++ b/brainpy/version2/dyn/channels/calcium.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/hyperpolarization_activated.py b/brainpy/version2/dyn/channels/hyperpolarization_activated.py index 63a2848a4..aac520a45 100644 --- a/brainpy/version2/dyn/channels/hyperpolarization_activated.py +++ b/brainpy/version2/dyn/channels/hyperpolarization_activated.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/leaky.py b/brainpy/version2/dyn/channels/leaky.py index be04cf210..dfd75e949 100644 --- a/brainpy/version2/dyn/channels/leaky.py +++ b/brainpy/version2/dyn/channels/leaky.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/potassium.py b/brainpy/version2/dyn/channels/potassium.py index 3f9826cbc..9613c26e2 100644 --- a/brainpy/version2/dyn/channels/potassium.py +++ b/brainpy/version2/dyn/channels/potassium.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/potassium_calcium.py b/brainpy/version2/dyn/channels/potassium_calcium.py index 3b71a063f..460708cb7 100644 --- a/brainpy/version2/dyn/channels/potassium_calcium.py +++ b/brainpy/version2/dyn/channels/potassium_calcium.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/potassium_calcium_compatible.py b/brainpy/version2/dyn/channels/potassium_calcium_compatible.py index 85d4f4fc8..be25f8db4 100644 --- a/brainpy/version2/dyn/channels/potassium_calcium_compatible.py +++ b/brainpy/version2/dyn/channels/potassium_calcium_compatible.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/potassium_compatible.py b/brainpy/version2/dyn/channels/potassium_compatible.py index 514ed8f99..676bf95df 100644 --- a/brainpy/version2/dyn/channels/potassium_compatible.py +++ b/brainpy/version2/dyn/channels/potassium_compatible.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/sodium.py b/brainpy/version2/dyn/channels/sodium.py index fa2b67a2b..07ebdf457 100644 --- a/brainpy/version2/dyn/channels/sodium.py +++ b/brainpy/version2/dyn/channels/sodium.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/sodium_compatible.py b/brainpy/version2/dyn/channels/sodium_compatible.py index aca8ae2c8..145e50802 100644 --- a/brainpy/version2/dyn/channels/sodium_compatible.py +++ b/brainpy/version2/dyn/channels/sodium_compatible.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/tests/test_Ca.py b/brainpy/version2/dyn/channels/tests/test_Ca.py index 2a1a2e0f8..e44a15031 100644 --- a/brainpy/version2/dyn/channels/tests/test_Ca.py +++ b/brainpy/version2/dyn/channels/tests/test_Ca.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/tests/test_IH.py b/brainpy/version2/dyn/channels/tests/test_IH.py index cb82c9cd8..ac9e8f96f 100644 --- a/brainpy/version2/dyn/channels/tests/test_IH.py +++ b/brainpy/version2/dyn/channels/tests/test_IH.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/tests/test_K.py b/brainpy/version2/dyn/channels/tests/test_K.py index 192c35a32..18b5d8f3d 100644 --- a/brainpy/version2/dyn/channels/tests/test_K.py +++ b/brainpy/version2/dyn/channels/tests/test_K.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/tests/test_KCa.py b/brainpy/version2/dyn/channels/tests/test_KCa.py index 4f3a91c0c..87bbaa0d9 100644 --- a/brainpy/version2/dyn/channels/tests/test_KCa.py +++ b/brainpy/version2/dyn/channels/tests/test_KCa.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/tests/test_Na.py b/brainpy/version2/dyn/channels/tests/test_Na.py index 6355b26f0..6aa82106f 100644 --- a/brainpy/version2/dyn/channels/tests/test_Na.py +++ b/brainpy/version2/dyn/channels/tests/test_Na.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/channels/tests/test_leaky.py b/brainpy/version2/dyn/channels/tests/test_leaky.py index 725d9adad..79c7661b1 100644 --- a/brainpy/version2/dyn/channels/tests/test_leaky.py +++ b/brainpy/version2/dyn/channels/tests/test_leaky.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/ions/__init__.py b/brainpy/version2/dyn/ions/__init__.py index 771a25dcc..3596d629a 100644 --- a/brainpy/version2/dyn/ions/__init__.py +++ b/brainpy/version2/dyn/ions/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/ions/base.py b/brainpy/version2/dyn/ions/base.py index d7081577c..240df75a9 100644 --- a/brainpy/version2/dyn/ions/base.py +++ b/brainpy/version2/dyn/ions/base.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/ions/calcium.py b/brainpy/version2/dyn/ions/calcium.py index 265a7ed25..e8c20c099 100644 --- a/brainpy/version2/dyn/ions/calcium.py +++ b/brainpy/version2/dyn/ions/calcium.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/ions/potassium.py b/brainpy/version2/dyn/ions/potassium.py index 9150b9d21..7daa8dec3 100644 --- a/brainpy/version2/dyn/ions/potassium.py +++ b/brainpy/version2/dyn/ions/potassium.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/ions/sodium.py b/brainpy/version2/dyn/ions/sodium.py index 9e371ab23..9b04ef17d 100644 --- a/brainpy/version2/dyn/ions/sodium.py +++ b/brainpy/version2/dyn/ions/sodium.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/ions/tests/test_MixIons.py b/brainpy/version2/dyn/ions/tests/test_MixIons.py index 7340bd057..de761468b 100644 --- a/brainpy/version2/dyn/ions/tests/test_MixIons.py +++ b/brainpy/version2/dyn/ions/tests/test_MixIons.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/neurons/__init__.py b/brainpy/version2/dyn/neurons/__init__.py index b5158985e..0161a1461 100644 --- a/brainpy/version2/dyn/neurons/__init__.py +++ b/brainpy/version2/dyn/neurons/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/neurons/base.py b/brainpy/version2/dyn/neurons/base.py index d25dab7b2..23e37a86c 100644 --- a/brainpy/version2/dyn/neurons/base.py +++ b/brainpy/version2/dyn/neurons/base.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/neurons/hh.py b/brainpy/version2/dyn/neurons/hh.py index bba6613cd..05759e95c 100644 --- a/brainpy/version2/dyn/neurons/hh.py +++ b/brainpy/version2/dyn/neurons/hh.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/neurons/lif.py b/brainpy/version2/dyn/neurons/lif.py index ce730bb5f..2b399e84a 100644 --- a/brainpy/version2/dyn/neurons/lif.py +++ b/brainpy/version2/dyn/neurons/lif.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/neurons/tests/test_hh.py b/brainpy/version2/dyn/neurons/tests/test_hh.py index c56cb4fea..5b76e77e5 100644 --- a/brainpy/version2/dyn/neurons/tests/test_hh.py +++ b/brainpy/version2/dyn/neurons/tests/test_hh.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/neurons/tests/test_lif.py b/brainpy/version2/dyn/neurons/tests/test_lif.py index beffcdc72..2970d5c8e 100644 --- a/brainpy/version2/dyn/neurons/tests/test_lif.py +++ b/brainpy/version2/dyn/neurons/tests/test_lif.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/others/__init__.py b/brainpy/version2/dyn/others/__init__.py index 9f09c8098..47d2646b6 100644 --- a/brainpy/version2/dyn/others/__init__.py +++ b/brainpy/version2/dyn/others/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/others/common.py b/brainpy/version2/dyn/others/common.py index c166e0a22..9ee500ca6 100644 --- a/brainpy/version2/dyn/others/common.py +++ b/brainpy/version2/dyn/others/common.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/others/input.py b/brainpy/version2/dyn/others/input.py index 4cc95747b..13985008d 100644 --- a/brainpy/version2/dyn/others/input.py +++ b/brainpy/version2/dyn/others/input.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/others/noise.py b/brainpy/version2/dyn/others/noise.py index b7b9b7b92..73364f420 100644 --- a/brainpy/version2/dyn/others/noise.py +++ b/brainpy/version2/dyn/others/noise.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/others/tests/test_input.py b/brainpy/version2/dyn/others/tests/test_input.py index 63959aca9..ed28b5604 100644 --- a/brainpy/version2/dyn/others/tests/test_input.py +++ b/brainpy/version2/dyn/others/tests/test_input.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/others/tests/test_input_groups.py b/brainpy/version2/dyn/others/tests/test_input_groups.py index 6a9a5c953..82ff5b744 100644 --- a/brainpy/version2/dyn/others/tests/test_input_groups.py +++ b/brainpy/version2/dyn/others/tests/test_input_groups.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/others/tests/test_noise_groups.py b/brainpy/version2/dyn/others/tests/test_noise_groups.py index f42583b68..ad2f8cf6c 100644 --- a/brainpy/version2/dyn/others/tests/test_noise_groups.py +++ b/brainpy/version2/dyn/others/tests/test_noise_groups.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/outs/__init__.py b/brainpy/version2/dyn/outs/__init__.py index 40b61d22c..a26b7a673 100644 --- a/brainpy/version2/dyn/outs/__init__.py +++ b/brainpy/version2/dyn/outs/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/outs/base.py b/brainpy/version2/dyn/outs/base.py index 6fa5ab76b..6fea0881f 100644 --- a/brainpy/version2/dyn/outs/base.py +++ b/brainpy/version2/dyn/outs/base.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/outs/outputs.py b/brainpy/version2/dyn/outs/outputs.py index c58cc0db4..96188da4d 100644 --- a/brainpy/version2/dyn/outs/outputs.py +++ b/brainpy/version2/dyn/outs/outputs.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/projections/__init__.py b/brainpy/version2/dyn/projections/__init__.py index d23868d96..f35550980 100644 --- a/brainpy/version2/dyn/projections/__init__.py +++ b/brainpy/version2/dyn/projections/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/projections/align_post.py b/brainpy/version2/dyn/projections/align_post.py index be06bda7c..96b60fece 100644 --- a/brainpy/version2/dyn/projections/align_post.py +++ b/brainpy/version2/dyn/projections/align_post.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/projections/align_pre.py b/brainpy/version2/dyn/projections/align_pre.py index 534555147..28231e4b0 100644 --- a/brainpy/version2/dyn/projections/align_pre.py +++ b/brainpy/version2/dyn/projections/align_pre.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/projections/base.py b/brainpy/version2/dyn/projections/base.py index 09ea29d19..31dc64882 100644 --- a/brainpy/version2/dyn/projections/base.py +++ b/brainpy/version2/dyn/projections/base.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/projections/conn.py b/brainpy/version2/dyn/projections/conn.py index 6641b0ece..3cf7a795b 100644 --- a/brainpy/version2/dyn/projections/conn.py +++ b/brainpy/version2/dyn/projections/conn.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/projections/delta.py b/brainpy/version2/dyn/projections/delta.py index f1b7a5151..270141f58 100644 --- a/brainpy/version2/dyn/projections/delta.py +++ b/brainpy/version2/dyn/projections/delta.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/projections/inputs.py b/brainpy/version2/dyn/projections/inputs.py index 74ffdb270..18b59e08b 100644 --- a/brainpy/version2/dyn/projections/inputs.py +++ b/brainpy/version2/dyn/projections/inputs.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/projections/plasticity.py b/brainpy/version2/dyn/projections/plasticity.py index 469023371..a267d66df 100644 --- a/brainpy/version2/dyn/projections/plasticity.py +++ b/brainpy/version2/dyn/projections/plasticity.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/projections/tests/test_STDP.py b/brainpy/version2/dyn/projections/tests/test_STDP.py index d671de848..a44ffb520 100644 --- a/brainpy/version2/dyn/projections/tests/test_STDP.py +++ b/brainpy/version2/dyn/projections/tests/test_STDP.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/projections/tests/test_aligns.py b/brainpy/version2/dyn/projections/tests/test_aligns.py index ff1d77561..d5a3cca32 100644 --- a/brainpy/version2/dyn/projections/tests/test_aligns.py +++ b/brainpy/version2/dyn/projections/tests/test_aligns.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/projections/tests/test_delta.py b/brainpy/version2/dyn/projections/tests/test_delta.py index 0f484b250..1b3e223f6 100644 --- a/brainpy/version2/dyn/projections/tests/test_delta.py +++ b/brainpy/version2/dyn/projections/tests/test_delta.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/projections/utils.py b/brainpy/version2/dyn/projections/utils.py index 09ea29d19..31dc64882 100644 --- a/brainpy/version2/dyn/projections/utils.py +++ b/brainpy/version2/dyn/projections/utils.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/projections/vanilla.py b/brainpy/version2/dyn/projections/vanilla.py index b2d6fe62f..1722a6eaa 100644 --- a/brainpy/version2/dyn/projections/vanilla.py +++ b/brainpy/version2/dyn/projections/vanilla.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/rates/__init__.py b/brainpy/version2/dyn/rates/__init__.py index 7cc58562c..98d7a49d5 100644 --- a/brainpy/version2/dyn/rates/__init__.py +++ b/brainpy/version2/dyn/rates/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/rates/nvar.py b/brainpy/version2/dyn/rates/nvar.py index 478f643db..15348c860 100644 --- a/brainpy/version2/dyn/rates/nvar.py +++ b/brainpy/version2/dyn/rates/nvar.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/rates/populations.py b/brainpy/version2/dyn/rates/populations.py index 3e8eaaf09..e82f7a974 100644 --- a/brainpy/version2/dyn/rates/populations.py +++ b/brainpy/version2/dyn/rates/populations.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/rates/reservoir.py b/brainpy/version2/dyn/rates/reservoir.py index 7428c105c..bf04dbb9c 100644 --- a/brainpy/version2/dyn/rates/reservoir.py +++ b/brainpy/version2/dyn/rates/reservoir.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/rates/rnncells.py b/brainpy/version2/dyn/rates/rnncells.py index 98295e7bc..a647dbd6b 100644 --- a/brainpy/version2/dyn/rates/rnncells.py +++ b/brainpy/version2/dyn/rates/rnncells.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/rates/tests/test_nvar.py b/brainpy/version2/dyn/rates/tests/test_nvar.py index 09bd33929..2fa4ca9d8 100644 --- a/brainpy/version2/dyn/rates/tests/test_nvar.py +++ b/brainpy/version2/dyn/rates/tests/test_nvar.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/rates/tests/test_rates.py b/brainpy/version2/dyn/rates/tests/test_rates.py index 33af546b9..e7974ae0e 100644 --- a/brainpy/version2/dyn/rates/tests/test_rates.py +++ b/brainpy/version2/dyn/rates/tests/test_rates.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/rates/tests/test_reservoir.py b/brainpy/version2/dyn/rates/tests/test_reservoir.py index e054c6a22..5abd344b0 100644 --- a/brainpy/version2/dyn/rates/tests/test_reservoir.py +++ b/brainpy/version2/dyn/rates/tests/test_reservoir.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/rates/tests/test_rnncells.py b/brainpy/version2/dyn/rates/tests/test_rnncells.py index 80a09f289..9410eb878 100644 --- a/brainpy/version2/dyn/rates/tests/test_rnncells.py +++ b/brainpy/version2/dyn/rates/tests/test_rnncells.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/synapses/__init__.py b/brainpy/version2/dyn/synapses/__init__.py index 1fc183ce1..ebe5e1091 100644 --- a/brainpy/version2/dyn/synapses/__init__.py +++ b/brainpy/version2/dyn/synapses/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/synapses/abstract_models.py b/brainpy/version2/dyn/synapses/abstract_models.py index 0fefc7814..f89ba40ef 100644 --- a/brainpy/version2/dyn/synapses/abstract_models.py +++ b/brainpy/version2/dyn/synapses/abstract_models.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/synapses/bio_models.py b/brainpy/version2/dyn/synapses/bio_models.py index cd4b43a93..8c77b53dd 100644 --- a/brainpy/version2/dyn/synapses/bio_models.py +++ b/brainpy/version2/dyn/synapses/bio_models.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/synapses/delay_couplings.py b/brainpy/version2/dyn/synapses/delay_couplings.py index 718be2daf..0b229e732 100644 --- a/brainpy/version2/dyn/synapses/delay_couplings.py +++ b/brainpy/version2/dyn/synapses/delay_couplings.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/synapses/tests/test_abstract_models.py b/brainpy/version2/dyn/synapses/tests/test_abstract_models.py index 2d10526b9..2883133d6 100644 --- a/brainpy/version2/dyn/synapses/tests/test_abstract_models.py +++ b/brainpy/version2/dyn/synapses/tests/test_abstract_models.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/synapses/tests/test_delay_couplings.py b/brainpy/version2/dyn/synapses/tests/test_delay_couplings.py index 711a2a5ee..ac2998bed 100644 --- a/brainpy/version2/dyn/synapses/tests/test_delay_couplings.py +++ b/brainpy/version2/dyn/synapses/tests/test_delay_couplings.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dyn/utils.py b/brainpy/version2/dyn/utils.py index ca5d3efca..4af9c9aae 100644 --- a/brainpy/version2/dyn/utils.py +++ b/brainpy/version2/dyn/utils.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/__init__.py b/brainpy/version2/dynold/__init__.py index fd2a9f643..2c035cd2b 100644 --- a/brainpy/version2/dynold/__init__.py +++ b/brainpy/version2/dynold/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/experimental/__init__.py b/brainpy/version2/dynold/experimental/__init__.py index fd2a9f643..2c035cd2b 100644 --- a/brainpy/version2/dynold/experimental/__init__.py +++ b/brainpy/version2/dynold/experimental/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/experimental/abstract_synapses.py b/brainpy/version2/dynold/experimental/abstract_synapses.py index 6cbc2aaad..eb4694c0d 100644 --- a/brainpy/version2/dynold/experimental/abstract_synapses.py +++ b/brainpy/version2/dynold/experimental/abstract_synapses.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/experimental/base.py b/brainpy/version2/dynold/experimental/base.py index e7b9f7bdf..6279d32a3 100644 --- a/brainpy/version2/dynold/experimental/base.py +++ b/brainpy/version2/dynold/experimental/base.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/experimental/others.py b/brainpy/version2/dynold/experimental/others.py index e2559f362..b46c3a94d 100644 --- a/brainpy/version2/dynold/experimental/others.py +++ b/brainpy/version2/dynold/experimental/others.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/experimental/syn_outs.py b/brainpy/version2/dynold/experimental/syn_outs.py index aa5419057..1a4efe9fd 100644 --- a/brainpy/version2/dynold/experimental/syn_outs.py +++ b/brainpy/version2/dynold/experimental/syn_outs.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/experimental/syn_plasticity.py b/brainpy/version2/dynold/experimental/syn_plasticity.py index b158fe5ef..803686691 100644 --- a/brainpy/version2/dynold/experimental/syn_plasticity.py +++ b/brainpy/version2/dynold/experimental/syn_plasticity.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/neurons/__init__.py b/brainpy/version2/dynold/neurons/__init__.py index 8a3c2d376..3bb44e64f 100644 --- a/brainpy/version2/dynold/neurons/__init__.py +++ b/brainpy/version2/dynold/neurons/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/neurons/biological_models.py b/brainpy/version2/dynold/neurons/biological_models.py index e1343f989..51098fd91 100644 --- a/brainpy/version2/dynold/neurons/biological_models.py +++ b/brainpy/version2/dynold/neurons/biological_models.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/neurons/fractional_models.py b/brainpy/version2/dynold/neurons/fractional_models.py index acc2a7aa0..45ed4204f 100644 --- a/brainpy/version2/dynold/neurons/fractional_models.py +++ b/brainpy/version2/dynold/neurons/fractional_models.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/neurons/reduced_models.py b/brainpy/version2/dynold/neurons/reduced_models.py index 151417d66..8e1b461bb 100644 --- a/brainpy/version2/dynold/neurons/reduced_models.py +++ b/brainpy/version2/dynold/neurons/reduced_models.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/neurons/tests/test_biological_neurons.py b/brainpy/version2/dynold/neurons/tests/test_biological_neurons.py index c1efbf842..13c443e6c 100644 --- a/brainpy/version2/dynold/neurons/tests/test_biological_neurons.py +++ b/brainpy/version2/dynold/neurons/tests/test_biological_neurons.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/neurons/tests/test_fractional_neurons.py b/brainpy/version2/dynold/neurons/tests/test_fractional_neurons.py index 9181367e1..81d8425c6 100644 --- a/brainpy/version2/dynold/neurons/tests/test_fractional_neurons.py +++ b/brainpy/version2/dynold/neurons/tests/test_fractional_neurons.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/neurons/tests/test_reduced_neurons.py b/brainpy/version2/dynold/neurons/tests/test_reduced_neurons.py index a54aab1a9..9fd34dc38 100644 --- a/brainpy/version2/dynold/neurons/tests/test_reduced_neurons.py +++ b/brainpy/version2/dynold/neurons/tests/test_reduced_neurons.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synapses/__init__.py b/brainpy/version2/dynold/synapses/__init__.py index 36cb547d4..e4ce8aebf 100644 --- a/brainpy/version2/dynold/synapses/__init__.py +++ b/brainpy/version2/dynold/synapses/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synapses/abstract_models.py b/brainpy/version2/dynold/synapses/abstract_models.py index 5ec3a4582..4b6d73777 100644 --- a/brainpy/version2/dynold/synapses/abstract_models.py +++ b/brainpy/version2/dynold/synapses/abstract_models.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synapses/base.py b/brainpy/version2/dynold/synapses/base.py index d474dee33..122ce95de 100644 --- a/brainpy/version2/dynold/synapses/base.py +++ b/brainpy/version2/dynold/synapses/base.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synapses/biological_models.py b/brainpy/version2/dynold/synapses/biological_models.py index c48c3e115..d0d162971 100644 --- a/brainpy/version2/dynold/synapses/biological_models.py +++ b/brainpy/version2/dynold/synapses/biological_models.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synapses/compat.py b/brainpy/version2/dynold/synapses/compat.py index 7de0bd01d..293032861 100644 --- a/brainpy/version2/dynold/synapses/compat.py +++ b/brainpy/version2/dynold/synapses/compat.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synapses/gap_junction.py b/brainpy/version2/dynold/synapses/gap_junction.py index 2b94f8beb..2d39420a8 100644 --- a/brainpy/version2/dynold/synapses/gap_junction.py +++ b/brainpy/version2/dynold/synapses/gap_junction.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synapses/learning_rules.py b/brainpy/version2/dynold/synapses/learning_rules.py index e9eedb43e..375eabf83 100644 --- a/brainpy/version2/dynold/synapses/learning_rules.py +++ b/brainpy/version2/dynold/synapses/learning_rules.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synapses/tests/test_abstract_synapses.py b/brainpy/version2/dynold/synapses/tests/test_abstract_synapses.py index 4ccb8e9db..c6b079b53 100644 --- a/brainpy/version2/dynold/synapses/tests/test_abstract_synapses.py +++ b/brainpy/version2/dynold/synapses/tests/test_abstract_synapses.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synapses/tests/test_biological_synapses.py b/brainpy/version2/dynold/synapses/tests/test_biological_synapses.py index c55658ec2..c2ebe56fd 100644 --- a/brainpy/version2/dynold/synapses/tests/test_biological_synapses.py +++ b/brainpy/version2/dynold/synapses/tests/test_biological_synapses.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synapses/tests/test_dynold_base_synapse.py b/brainpy/version2/dynold/synapses/tests/test_dynold_base_synapse.py index 50ede5934..09a0a0f88 100644 --- a/brainpy/version2/dynold/synapses/tests/test_dynold_base_synapse.py +++ b/brainpy/version2/dynold/synapses/tests/test_dynold_base_synapse.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synapses/tests/test_gap_junction.py b/brainpy/version2/dynold/synapses/tests/test_gap_junction.py index 3b02f7a58..8c1c36da3 100644 --- a/brainpy/version2/dynold/synapses/tests/test_gap_junction.py +++ b/brainpy/version2/dynold/synapses/tests/test_gap_junction.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synapses/tests/test_learning_rule.py b/brainpy/version2/dynold/synapses/tests/test_learning_rule.py index 4e89c55e1..109e24357 100644 --- a/brainpy/version2/dynold/synapses/tests/test_learning_rule.py +++ b/brainpy/version2/dynold/synapses/tests/test_learning_rule.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synouts/__init__.py b/brainpy/version2/dynold/synouts/__init__.py index 4a308f0cb..bb9ce88a7 100644 --- a/brainpy/version2/dynold/synouts/__init__.py +++ b/brainpy/version2/dynold/synouts/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synouts/conductances.py b/brainpy/version2/dynold/synouts/conductances.py index 24bbf255d..ae2de2db3 100644 --- a/brainpy/version2/dynold/synouts/conductances.py +++ b/brainpy/version2/dynold/synouts/conductances.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synouts/ions.py b/brainpy/version2/dynold/synouts/ions.py index f4b7d2379..57e64f3af 100644 --- a/brainpy/version2/dynold/synouts/ions.py +++ b/brainpy/version2/dynold/synouts/ions.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synplast/__init__.py b/brainpy/version2/dynold/synplast/__init__.py index bad27d28a..2fcd4f61d 100644 --- a/brainpy/version2/dynold/synplast/__init__.py +++ b/brainpy/version2/dynold/synplast/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynold/synplast/short_term_plasticity.py b/brainpy/version2/dynold/synplast/short_term_plasticity.py index 3def1ee79..7a325a899 100644 --- a/brainpy/version2/dynold/synplast/short_term_plasticity.py +++ b/brainpy/version2/dynold/synplast/short_term_plasticity.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/dynsys.py b/brainpy/version2/dynsys.py index 3bbf24c9d..759dcd482 100644 --- a/brainpy/version2/dynsys.py +++ b/brainpy/version2/dynsys.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/encoding/__init__.py b/brainpy/version2/encoding/__init__.py index c79fbdfd0..6ddaf5962 100644 --- a/brainpy/version2/encoding/__init__.py +++ b/brainpy/version2/encoding/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/encoding/base.py b/brainpy/version2/encoding/base.py index 1713470a9..92d7c5ac6 100644 --- a/brainpy/version2/encoding/base.py +++ b/brainpy/version2/encoding/base.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/encoding/stateful_encoding.py b/brainpy/version2/encoding/stateful_encoding.py index df3adee2c..cc3d069b5 100644 --- a/brainpy/version2/encoding/stateful_encoding.py +++ b/brainpy/version2/encoding/stateful_encoding.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/encoding/stateless_encoding.py b/brainpy/version2/encoding/stateless_encoding.py index 4cbf52f8a..7576c21c9 100644 --- a/brainpy/version2/encoding/stateless_encoding.py +++ b/brainpy/version2/encoding/stateless_encoding.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/encoding/tests/test_stateless_encoding.py b/brainpy/version2/encoding/tests/test_stateless_encoding.py index 726340607..ec5f74e47 100644 --- a/brainpy/version2/encoding/tests/test_stateless_encoding.py +++ b/brainpy/version2/encoding/tests/test_stateless_encoding.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/experimental.py b/brainpy/version2/experimental.py index f00bbcfe6..a9068518e 100644 --- a/brainpy/version2/experimental.py +++ b/brainpy/version2/experimental.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/helpers.py b/brainpy/version2/helpers.py index a2979c281..11ff11a6a 100644 --- a/brainpy/version2/helpers.py +++ b/brainpy/version2/helpers.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/initialize/__init__.py b/brainpy/version2/initialize/__init__.py index cd51306be..e594dc043 100644 --- a/brainpy/version2/initialize/__init__.py +++ b/brainpy/version2/initialize/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/initialize/base.py b/brainpy/version2/initialize/base.py index b9e99f13e..96dde4017 100644 --- a/brainpy/version2/initialize/base.py +++ b/brainpy/version2/initialize/base.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/initialize/decay_inits.py b/brainpy/version2/initialize/decay_inits.py index 3f2cc9a74..78ff3c2cd 100644 --- a/brainpy/version2/initialize/decay_inits.py +++ b/brainpy/version2/initialize/decay_inits.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/initialize/generic.py b/brainpy/version2/initialize/generic.py index f6aeac2f9..8be56da94 100644 --- a/brainpy/version2/initialize/generic.py +++ b/brainpy/version2/initialize/generic.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/initialize/others.py b/brainpy/version2/initialize/others.py index f5ebf015f..4d038bc3c 100644 --- a/brainpy/version2/initialize/others.py +++ b/brainpy/version2/initialize/others.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/initialize/random_inits.py b/brainpy/version2/initialize/random_inits.py index 394940d40..ceef5b5d1 100644 --- a/brainpy/version2/initialize/random_inits.py +++ b/brainpy/version2/initialize/random_inits.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/initialize/regular_inits.py b/brainpy/version2/initialize/regular_inits.py index 08ee88c13..cd2936bf2 100644 --- a/brainpy/version2/initialize/regular_inits.py +++ b/brainpy/version2/initialize/regular_inits.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/initialize/tests/test_decay_inits.py b/brainpy/version2/initialize/tests/test_decay_inits.py index bf18ca8c1..2db9d5dbd 100644 --- a/brainpy/version2/initialize/tests/test_decay_inits.py +++ b/brainpy/version2/initialize/tests/test_decay_inits.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/initialize/tests/test_random_inits.py b/brainpy/version2/initialize/tests/test_random_inits.py index 0fe1358fe..d0797cf3c 100644 --- a/brainpy/version2/initialize/tests/test_random_inits.py +++ b/brainpy/version2/initialize/tests/test_random_inits.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/initialize/tests/test_regular_inits.py b/brainpy/version2/initialize/tests/test_regular_inits.py index dd8368c10..867b9a2fd 100644 --- a/brainpy/version2/initialize/tests/test_regular_inits.py +++ b/brainpy/version2/initialize/tests/test_regular_inits.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/inputs/__init__.py b/brainpy/version2/inputs/__init__.py index 7ee4c742b..b5ac7ebfc 100644 --- a/brainpy/version2/inputs/__init__.py +++ b/brainpy/version2/inputs/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/inputs/currents.py b/brainpy/version2/inputs/currents.py index ce9c5960a..b556a8583 100644 --- a/brainpy/version2/inputs/currents.py +++ b/brainpy/version2/inputs/currents.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/inputs/tests/test_currents.py b/brainpy/version2/inputs/tests/test_currents.py index 86deb94b6..e082bacb3 100644 --- a/brainpy/version2/inputs/tests/test_currents.py +++ b/brainpy/version2/inputs/tests/test_currents.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/__init__.py b/brainpy/version2/integrators/__init__.py index 91577eb7f..377eb8d20 100644 --- a/brainpy/version2/integrators/__init__.py +++ b/brainpy/version2/integrators/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/base.py b/brainpy/version2/integrators/base.py index 795f2e141..c4d06039c 100644 --- a/brainpy/version2/integrators/base.py +++ b/brainpy/version2/integrators/base.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/constants.py b/brainpy/version2/integrators/constants.py index a8951c3ef..13ddf8956 100644 --- a/brainpy/version2/integrators/constants.py +++ b/brainpy/version2/integrators/constants.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/fde/Caputo.py b/brainpy/version2/integrators/fde/Caputo.py index d47747077..845c505e7 100644 --- a/brainpy/version2/integrators/fde/Caputo.py +++ b/brainpy/version2/integrators/fde/Caputo.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/fde/GL.py b/brainpy/version2/integrators/fde/GL.py index b903d1571..ac169e910 100644 --- a/brainpy/version2/integrators/fde/GL.py +++ b/brainpy/version2/integrators/fde/GL.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/fde/__init__.py b/brainpy/version2/integrators/fde/__init__.py index b2485f05c..528748a40 100644 --- a/brainpy/version2/integrators/fde/__init__.py +++ b/brainpy/version2/integrators/fde/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/fde/base.py b/brainpy/version2/integrators/fde/base.py index a391c3c54..e08e84819 100644 --- a/brainpy/version2/integrators/fde/base.py +++ b/brainpy/version2/integrators/fde/base.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/fde/generic.py b/brainpy/version2/integrators/fde/generic.py index 3e39b1026..5a349f82a 100644 --- a/brainpy/version2/integrators/fde/generic.py +++ b/brainpy/version2/integrators/fde/generic.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/fde/tests/test_Caputo.py b/brainpy/version2/integrators/fde/tests/test_Caputo.py index 342e63aeb..bb88473fc 100644 --- a/brainpy/version2/integrators/fde/tests/test_Caputo.py +++ b/brainpy/version2/integrators/fde/tests/test_Caputo.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/fde/tests/test_GL.py b/brainpy/version2/integrators/fde/tests/test_GL.py index 239b7402a..e278fa578 100644 --- a/brainpy/version2/integrators/fde/tests/test_GL.py +++ b/brainpy/version2/integrators/fde/tests/test_GL.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/joint_eq.py b/brainpy/version2/integrators/joint_eq.py index d454a9b95..47a241d60 100644 --- a/brainpy/version2/integrators/joint_eq.py +++ b/brainpy/version2/integrators/joint_eq.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/ode/__init__.py b/brainpy/version2/integrators/ode/__init__.py index 977e90332..1285c13e4 100644 --- a/brainpy/version2/integrators/ode/__init__.py +++ b/brainpy/version2/integrators/ode/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/ode/adaptive_rk.py b/brainpy/version2/integrators/ode/adaptive_rk.py index 73f72e19d..5ebaff552 100644 --- a/brainpy/version2/integrators/ode/adaptive_rk.py +++ b/brainpy/version2/integrators/ode/adaptive_rk.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/ode/base.py b/brainpy/version2/integrators/ode/base.py index adea5ca9e..91a719535 100644 --- a/brainpy/version2/integrators/ode/base.py +++ b/brainpy/version2/integrators/ode/base.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/ode/common.py b/brainpy/version2/integrators/ode/common.py index dd12a4ed1..428bc6c87 100644 --- a/brainpy/version2/integrators/ode/common.py +++ b/brainpy/version2/integrators/ode/common.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/ode/explicit_rk.py b/brainpy/version2/integrators/ode/explicit_rk.py index bba7562e6..2933b3242 100644 --- a/brainpy/version2/integrators/ode/explicit_rk.py +++ b/brainpy/version2/integrators/ode/explicit_rk.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/ode/exponential.py b/brainpy/version2/integrators/ode/exponential.py index 4c8f14094..d43bb06b3 100644 --- a/brainpy/version2/integrators/ode/exponential.py +++ b/brainpy/version2/integrators/ode/exponential.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/ode/generic.py b/brainpy/version2/integrators/ode/generic.py index 92620d620..97a6a5900 100644 --- a/brainpy/version2/integrators/ode/generic.py +++ b/brainpy/version2/integrators/ode/generic.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/ode/tests/test_delay_ode.py b/brainpy/version2/integrators/ode/tests/test_delay_ode.py index df9f2aae8..67b2379f0 100644 --- a/brainpy/version2/integrators/ode/tests/test_delay_ode.py +++ b/brainpy/version2/integrators/ode/tests/test_delay_ode.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_adaptive_rk.py b/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_adaptive_rk.py index 4a563c5e3..96abfdab6 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_adaptive_rk.py +++ b/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_adaptive_rk.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_exp_euler.py b/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_exp_euler.py index ef460d86c..b3ebbd179 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_exp_euler.py +++ b/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_exp_euler.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_general_rk.py b/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_general_rk.py index a44e88f4c..3f68e1f44 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_general_rk.py +++ b/brainpy/version2/integrators/ode/tests/test_ode_keywords_for_general_rk.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/ode/tests/test_ode_method_adaptive_rk.py b/brainpy/version2/integrators/ode/tests/test_ode_method_adaptive_rk.py index 87a870172..70e16286a 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_method_adaptive_rk.py +++ b/brainpy/version2/integrators/ode/tests/test_ode_method_adaptive_rk.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/ode/tests/test_ode_method_exp_euler.py b/brainpy/version2/integrators/ode/tests/test_ode_method_exp_euler.py index 4ffd3b008..b0671488b 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_method_exp_euler.py +++ b/brainpy/version2/integrators/ode/tests/test_ode_method_exp_euler.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/ode/tests/test_ode_method_rk.py b/brainpy/version2/integrators/ode/tests/test_ode_method_rk.py index 1be483ccd..73d01d145 100644 --- a/brainpy/version2/integrators/ode/tests/test_ode_method_rk.py +++ b/brainpy/version2/integrators/ode/tests/test_ode_method_rk.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/pde/__init__.py b/brainpy/version2/integrators/pde/__init__.py index 54fe87367..6ca5623cc 100644 --- a/brainpy/version2/integrators/pde/__init__.py +++ b/brainpy/version2/integrators/pde/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/pde/base.py b/brainpy/version2/integrators/pde/base.py index ff2795c6c..ebea7030e 100644 --- a/brainpy/version2/integrators/pde/base.py +++ b/brainpy/version2/integrators/pde/base.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/runner.py b/brainpy/version2/integrators/runner.py index eb68494e8..39de107ea 100644 --- a/brainpy/version2/integrators/runner.py +++ b/brainpy/version2/integrators/runner.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/sde/__init__.py b/brainpy/version2/integrators/sde/__init__.py index 6f76a47da..1ef3ec282 100644 --- a/brainpy/version2/integrators/sde/__init__.py +++ b/brainpy/version2/integrators/sde/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/sde/base.py b/brainpy/version2/integrators/sde/base.py index f510f8648..d01e9dd76 100644 --- a/brainpy/version2/integrators/sde/base.py +++ b/brainpy/version2/integrators/sde/base.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/sde/generic.py b/brainpy/version2/integrators/sde/generic.py index a813e50ae..8e828f1d1 100644 --- a/brainpy/version2/integrators/sde/generic.py +++ b/brainpy/version2/integrators/sde/generic.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/sde/normal.py b/brainpy/version2/integrators/sde/normal.py index 88f43e306..4b0bbc68f 100644 --- a/brainpy/version2/integrators/sde/normal.py +++ b/brainpy/version2/integrators/sde/normal.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/sde/srk_scalar.py b/brainpy/version2/integrators/sde/srk_scalar.py index e712cf5f6..a724dc53c 100644 --- a/brainpy/version2/integrators/sde/srk_scalar.py +++ b/brainpy/version2/integrators/sde/srk_scalar.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/sde/srk_strong.py b/brainpy/version2/integrators/sde/srk_strong.py index c08f47b1c..a23e526f4 100644 --- a/brainpy/version2/integrators/sde/srk_strong.py +++ b/brainpy/version2/integrators/sde/srk_strong.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/sde/tests/test_normal.py b/brainpy/version2/integrators/sde/tests/test_normal.py index fe621e8ee..c113b718a 100644 --- a/brainpy/version2/integrators/sde/tests/test_normal.py +++ b/brainpy/version2/integrators/sde/tests/test_normal.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/sde/tests/test_sde_scalar.py b/brainpy/version2/integrators/sde/tests/test_sde_scalar.py index 5ac9a3700..1ea3758bf 100644 --- a/brainpy/version2/integrators/sde/tests/test_sde_scalar.py +++ b/brainpy/version2/integrators/sde/tests/test_sde_scalar.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/tests/test_integ_runner.py b/brainpy/version2/integrators/tests/test_integ_runner.py index 01e435712..4ec684060 100644 --- a/brainpy/version2/integrators/tests/test_integ_runner.py +++ b/brainpy/version2/integrators/tests/test_integ_runner.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/tests/test_joint_eq.py b/brainpy/version2/integrators/tests/test_joint_eq.py index 9dee48327..08461e12e 100644 --- a/brainpy/version2/integrators/tests/test_joint_eq.py +++ b/brainpy/version2/integrators/tests/test_joint_eq.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/tests/test_to_math_expr.py b/brainpy/version2/integrators/tests/test_to_math_expr.py index cd6099fbe..c1dd0e14a 100644 --- a/brainpy/version2/integrators/tests/test_to_math_expr.py +++ b/brainpy/version2/integrators/tests/test_to_math_expr.py @@ -1,4 +1,4 @@ -# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/integrators/utils.py b/brainpy/version2/integrators/utils.py index d61845cdd..0fe334b2c 100644 --- a/brainpy/version2/integrators/utils.py +++ b/brainpy/version2/integrators/utils.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/layers.py b/brainpy/version2/layers.py index 490a066b2..1a8433d1b 100644 --- a/brainpy/version2/layers.py +++ b/brainpy/version2/layers.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/losses/__init__.py b/brainpy/version2/losses/__init__.py index 01eca0a11..8b901e0b7 100644 --- a/brainpy/version2/losses/__init__.py +++ b/brainpy/version2/losses/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/losses/base.py b/brainpy/version2/losses/base.py index 50b5fe866..02de01302 100644 --- a/brainpy/version2/losses/base.py +++ b/brainpy/version2/losses/base.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/losses/comparison.py b/brainpy/version2/losses/comparison.py index 9dc91e8aa..d833a95fc 100644 --- a/brainpy/version2/losses/comparison.py +++ b/brainpy/version2/losses/comparison.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/losses/regularization.py b/brainpy/version2/losses/regularization.py index 3dfb36ca5..97f85ddbe 100644 --- a/brainpy/version2/losses/regularization.py +++ b/brainpy/version2/losses/regularization.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/losses/utils.py b/brainpy/version2/losses/utils.py index 68bf471a0..c70e048e9 100644 --- a/brainpy/version2/losses/utils.py +++ b/brainpy/version2/losses/utils.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/__init__.py b/brainpy/version2/math/__init__.py index 0c9925891..3ae4c45c2 100644 --- a/brainpy/version2/math/__init__.py +++ b/brainpy/version2/math/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/_utils.py b/brainpy/version2/math/_utils.py index d4e0474e6..3058d2add 100644 --- a/brainpy/version2/math/_utils.py +++ b/brainpy/version2/math/_utils.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/activations.py b/brainpy/version2/math/activations.py index 431cf8db5..91c1d7333 100644 --- a/brainpy/version2/math/activations.py +++ b/brainpy/version2/math/activations.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/compat_numpy.py b/brainpy/version2/math/compat_numpy.py index 9b142f577..0e0175dfc 100644 --- a/brainpy/version2/math/compat_numpy.py +++ b/brainpy/version2/math/compat_numpy.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/compat_pytorch.py b/brainpy/version2/math/compat_pytorch.py index 4a8e8f768..1728f55f7 100644 --- a/brainpy/version2/math/compat_pytorch.py +++ b/brainpy/version2/math/compat_pytorch.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/compat_tensorflow.py b/brainpy/version2/math/compat_tensorflow.py index b72c2ea77..286e12b0a 100644 --- a/brainpy/version2/math/compat_tensorflow.py +++ b/brainpy/version2/math/compat_tensorflow.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/datatypes.py b/brainpy/version2/math/datatypes.py index 390d50d70..cf21ff797 100644 --- a/brainpy/version2/math/datatypes.py +++ b/brainpy/version2/math/datatypes.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/defaults.py b/brainpy/version2/math/defaults.py index 7be5fdbd2..7977f6c5a 100644 --- a/brainpy/version2/math/defaults.py +++ b/brainpy/version2/math/defaults.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/delayvars.py b/brainpy/version2/math/delayvars.py index 99b50dac0..b2933631f 100644 --- a/brainpy/version2/math/delayvars.py +++ b/brainpy/version2/math/delayvars.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/einops.py b/brainpy/version2/math/einops.py index 4293ffe2b..b74eeb63e 100644 --- a/brainpy/version2/math/einops.py +++ b/brainpy/version2/math/einops.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/einops_parsing.py b/brainpy/version2/math/einops_parsing.py index e96df97fb..f8ca63cae 100644 --- a/brainpy/version2/math/einops_parsing.py +++ b/brainpy/version2/math/einops_parsing.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/environment.py b/brainpy/version2/math/environment.py index 5f63167aa..4de7da1de 100644 --- a/brainpy/version2/math/environment.py +++ b/brainpy/version2/math/environment.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/event/__init__.py b/brainpy/version2/math/event/__init__.py index 525f15ff9..96b6fbcf0 100644 --- a/brainpy/version2/math/event/__init__.py +++ b/brainpy/version2/math/event/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/event/csr_matmat.py b/brainpy/version2/math/event/csr_matmat.py index f25c5c824..abf6eead0 100644 --- a/brainpy/version2/math/event/csr_matmat.py +++ b/brainpy/version2/math/event/csr_matmat.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/event/csr_matvec.py b/brainpy/version2/math/event/csr_matvec.py index 168eba708..73248d842 100644 --- a/brainpy/version2/math/event/csr_matvec.py +++ b/brainpy/version2/math/event/csr_matvec.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/fft.py b/brainpy/version2/math/fft.py index e6eea9ab7..a243919af 100644 --- a/brainpy/version2/math/fft.py +++ b/brainpy/version2/math/fft.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/interoperability.py b/brainpy/version2/math/interoperability.py index 7748d27e2..af203abf5 100644 --- a/brainpy/version2/math/interoperability.py +++ b/brainpy/version2/math/interoperability.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/jitconn/__init__.py b/brainpy/version2/math/jitconn/__init__.py index 3a844c384..652101f78 100644 --- a/brainpy/version2/math/jitconn/__init__.py +++ b/brainpy/version2/math/jitconn/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/jitconn/event_matvec.py b/brainpy/version2/math/jitconn/event_matvec.py index fde945341..4e3290bb2 100644 --- a/brainpy/version2/math/jitconn/event_matvec.py +++ b/brainpy/version2/math/jitconn/event_matvec.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/jitconn/matvec.py b/brainpy/version2/math/jitconn/matvec.py index aed2b5ef7..21bc886f6 100644 --- a/brainpy/version2/math/jitconn/matvec.py +++ b/brainpy/version2/math/jitconn/matvec.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/linalg.py b/brainpy/version2/math/linalg.py index 75e6fbadd..0e3a7057b 100644 --- a/brainpy/version2/math/linalg.py +++ b/brainpy/version2/math/linalg.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/modes.py b/brainpy/version2/math/modes.py index 0a41e2a69..6d0e3f2f4 100644 --- a/brainpy/version2/math/modes.py +++ b/brainpy/version2/math/modes.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/ndarray.py b/brainpy/version2/math/ndarray.py index 574dcecf9..88c6d3eec 100644 --- a/brainpy/version2/math/ndarray.py +++ b/brainpy/version2/math/ndarray.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/__init__.py b/brainpy/version2/math/object_transform/__init__.py index 471285ce4..4002250aa 100644 --- a/brainpy/version2/math/object_transform/__init__.py +++ b/brainpy/version2/math/object_transform/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/_utils.py b/brainpy/version2/math/object_transform/_utils.py index 11473a80b..191c72252 100644 --- a/brainpy/version2/math/object_transform/_utils.py +++ b/brainpy/version2/math/object_transform/_utils.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/autograd.py b/brainpy/version2/math/object_transform/autograd.py index 2def5bae5..0f8214bf6 100644 --- a/brainpy/version2/math/object_transform/autograd.py +++ b/brainpy/version2/math/object_transform/autograd.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/base.py b/brainpy/version2/math/object_transform/base.py index abf6e37eb..744101d69 100644 --- a/brainpy/version2/math/object_transform/base.py +++ b/brainpy/version2/math/object_transform/base.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/collectors.py b/brainpy/version2/math/object_transform/collectors.py index 81c494b04..1020d9f10 100644 --- a/brainpy/version2/math/object_transform/collectors.py +++ b/brainpy/version2/math/object_transform/collectors.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/controls.py b/brainpy/version2/math/object_transform/controls.py index 30d98fd2f..0c3e4e430 100644 --- a/brainpy/version2/math/object_transform/controls.py +++ b/brainpy/version2/math/object_transform/controls.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/function.py b/brainpy/version2/math/object_transform/function.py index 0cf28e602..e16e23c79 100644 --- a/brainpy/version2/math/object_transform/function.py +++ b/brainpy/version2/math/object_transform/function.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/jit.py b/brainpy/version2/math/object_transform/jit.py index a88f623d1..3e22b65b8 100644 --- a/brainpy/version2/math/object_transform/jit.py +++ b/brainpy/version2/math/object_transform/jit.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/naming.py b/brainpy/version2/math/object_transform/naming.py index 3e86bbb3d..22203d82a 100644 --- a/brainpy/version2/math/object_transform/naming.py +++ b/brainpy/version2/math/object_transform/naming.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/tests/test_autograd.py b/brainpy/version2/math/object_transform/tests/test_autograd.py index 365c83314..49179a0a5 100644 --- a/brainpy/version2/math/object_transform/tests/test_autograd.py +++ b/brainpy/version2/math/object_transform/tests/test_autograd.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/tests/test_base.py b/brainpy/version2/math/object_transform/tests/test_base.py index f2fd06d72..b59e35655 100644 --- a/brainpy/version2/math/object_transform/tests/test_base.py +++ b/brainpy/version2/math/object_transform/tests/test_base.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/tests/test_circular_reference.py b/brainpy/version2/math/object_transform/tests/test_circular_reference.py index 962f2e563..63afae5dd 100644 --- a/brainpy/version2/math/object_transform/tests/test_circular_reference.py +++ b/brainpy/version2/math/object_transform/tests/test_circular_reference.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/tests/test_collector.py b/brainpy/version2/math/object_transform/tests/test_collector.py index f7438fcd6..89f59bb32 100644 --- a/brainpy/version2/math/object_transform/tests/test_collector.py +++ b/brainpy/version2/math/object_transform/tests/test_collector.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/tests/test_controls.py b/brainpy/version2/math/object_transform/tests/test_controls.py index 7ae8707be..8f2c06c89 100644 --- a/brainpy/version2/math/object_transform/tests/test_controls.py +++ b/brainpy/version2/math/object_transform/tests/test_controls.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/tests/test_jit.py b/brainpy/version2/math/object_transform/tests/test_jit.py index a30f3ec6d..396e6d07e 100644 --- a/brainpy/version2/math/object_transform/tests/test_jit.py +++ b/brainpy/version2/math/object_transform/tests/test_jit.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/tests/test_namechecking.py b/brainpy/version2/math/object_transform/tests/test_namechecking.py index 91eb5b0db..30c2fa69b 100644 --- a/brainpy/version2/math/object_transform/tests/test_namechecking.py +++ b/brainpy/version2/math/object_transform/tests/test_namechecking.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/tests/test_naming.py b/brainpy/version2/math/object_transform/tests/test_naming.py index 06fbf7f53..7e5c0f648 100644 --- a/brainpy/version2/math/object_transform/tests/test_naming.py +++ b/brainpy/version2/math/object_transform/tests/test_naming.py @@ -1,4 +1,4 @@ -# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/tests/test_variable.py b/brainpy/version2/math/object_transform/tests/test_variable.py index a9ea5ef49..94921f0c2 100644 --- a/brainpy/version2/math/object_transform/tests/test_variable.py +++ b/brainpy/version2/math/object_transform/tests/test_variable.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/object_transform/variables.py b/brainpy/version2/math/object_transform/variables.py index fdf61aa01..305c2e135 100644 --- a/brainpy/version2/math/object_transform/variables.py +++ b/brainpy/version2/math/object_transform/variables.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/others.py b/brainpy/version2/math/others.py index 641b2a4bb..28b9afc4a 100644 --- a/brainpy/version2/math/others.py +++ b/brainpy/version2/math/others.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/pre_syn_post.py b/brainpy/version2/math/pre_syn_post.py index 65f4922e3..7cc8aedba 100644 --- a/brainpy/version2/math/pre_syn_post.py +++ b/brainpy/version2/math/pre_syn_post.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/remove_vmap.py b/brainpy/version2/math/remove_vmap.py index 7f04db857..40bea94b4 100644 --- a/brainpy/version2/math/remove_vmap.py +++ b/brainpy/version2/math/remove_vmap.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/scales.py b/brainpy/version2/math/scales.py index d9dcf2753..738a8eddf 100644 --- a/brainpy/version2/math/scales.py +++ b/brainpy/version2/math/scales.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/sharding.py b/brainpy/version2/math/sharding.py index 9ad26743a..6d66b7646 100644 --- a/brainpy/version2/math/sharding.py +++ b/brainpy/version2/math/sharding.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/sparse/__init__.py b/brainpy/version2/math/sparse/__init__.py index e2c561028..c2769089b 100644 --- a/brainpy/version2/math/sparse/__init__.py +++ b/brainpy/version2/math/sparse/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/sparse/coo_mv.py b/brainpy/version2/math/sparse/coo_mv.py index f1056a7da..ac5ee06c2 100644 --- a/brainpy/version2/math/sparse/coo_mv.py +++ b/brainpy/version2/math/sparse/coo_mv.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/sparse/csr_mm.py b/brainpy/version2/math/sparse/csr_mm.py index 5e939104d..e25018ea8 100644 --- a/brainpy/version2/math/sparse/csr_mm.py +++ b/brainpy/version2/math/sparse/csr_mm.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/sparse/csr_mv.py b/brainpy/version2/math/sparse/csr_mv.py index 5d8913273..18bc775c0 100644 --- a/brainpy/version2/math/sparse/csr_mv.py +++ b/brainpy/version2/math/sparse/csr_mv.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/sparse/jax_prim.py b/brainpy/version2/math/sparse/jax_prim.py index d7d50df84..c3a520dee 100644 --- a/brainpy/version2/math/sparse/jax_prim.py +++ b/brainpy/version2/math/sparse/jax_prim.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/sparse/utils.py b/brainpy/version2/math/sparse/utils.py index e88243650..5a9e34f18 100644 --- a/brainpy/version2/math/sparse/utils.py +++ b/brainpy/version2/math/sparse/utils.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/surrogate/__init__.py b/brainpy/version2/math/surrogate/__init__.py index 30b51d4d0..00f6a61b7 100644 --- a/brainpy/version2/math/surrogate/__init__.py +++ b/brainpy/version2/math/surrogate/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/surrogate/_one_input.py b/brainpy/version2/math/surrogate/_one_input.py index 5784555f1..892ea29e8 100644 --- a/brainpy/version2/math/surrogate/_one_input.py +++ b/brainpy/version2/math/surrogate/_one_input.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/surrogate/_one_input_new.py b/brainpy/version2/math/surrogate/_one_input_new.py index 1ce64497f..94e8a03ed 100644 --- a/brainpy/version2/math/surrogate/_one_input_new.py +++ b/brainpy/version2/math/surrogate/_one_input_new.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/surrogate/_two_inputs.py b/brainpy/version2/math/surrogate/_two_inputs.py index a3ec31f8a..20aa6f591 100644 --- a/brainpy/version2/math/surrogate/_two_inputs.py +++ b/brainpy/version2/math/surrogate/_two_inputs.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/surrogate/_utils.py b/brainpy/version2/math/surrogate/_utils.py index b5b5e01aa..dcdcda85a 100644 --- a/brainpy/version2/math/surrogate/_utils.py +++ b/brainpy/version2/math/surrogate/_utils.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/surrogate/tests/test_one_input.py b/brainpy/version2/math/surrogate/tests/test_one_input.py index fcf63f94d..605671849 100644 --- a/brainpy/version2/math/surrogate/tests/test_one_input.py +++ b/brainpy/version2/math/surrogate/tests/test_one_input.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/surrogate/tests/test_two_inputs.py b/brainpy/version2/math/surrogate/tests/test_two_inputs.py index 4085d0000..ffa98f04f 100644 --- a/brainpy/version2/math/surrogate/tests/test_two_inputs.py +++ b/brainpy/version2/math/surrogate/tests/test_two_inputs.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/tests/test_array_format.py b/brainpy/version2/math/tests/test_array_format.py index 3131551ca..bcbf98ac2 100644 --- a/brainpy/version2/math/tests/test_array_format.py +++ b/brainpy/version2/math/tests/test_array_format.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/tests/test_compat_pytorch.py b/brainpy/version2/math/tests/test_compat_pytorch.py index 78814fe8c..999b94f28 100644 --- a/brainpy/version2/math/tests/test_compat_pytorch.py +++ b/brainpy/version2/math/tests/test_compat_pytorch.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/tests/test_defaults.py b/brainpy/version2/math/tests/test_defaults.py index 97a991ab0..0c313922b 100644 --- a/brainpy/version2/math/tests/test_defaults.py +++ b/brainpy/version2/math/tests/test_defaults.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/tests/test_delay_vars.py b/brainpy/version2/math/tests/test_delay_vars.py index dc32cdf66..0dccae839 100644 --- a/brainpy/version2/math/tests/test_delay_vars.py +++ b/brainpy/version2/math/tests/test_delay_vars.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/tests/test_einops.py b/brainpy/version2/math/tests/test_einops.py index 84dc46439..b53a1b77c 100644 --- a/brainpy/version2/math/tests/test_einops.py +++ b/brainpy/version2/math/tests/test_einops.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/tests/test_einops_parsing.py b/brainpy/version2/math/tests/test_einops_parsing.py index 1c2a7261a..95fde1b01 100644 --- a/brainpy/version2/math/tests/test_einops_parsing.py +++ b/brainpy/version2/math/tests/test_einops_parsing.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/tests/test_environment.py b/brainpy/version2/math/tests/test_environment.py index dfec27b16..de9e95687 100644 --- a/brainpy/version2/math/tests/test_environment.py +++ b/brainpy/version2/math/tests/test_environment.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/tests/test_ndarray.py b/brainpy/version2/math/tests/test_ndarray.py index 9857ac070..c6a6e577b 100644 --- a/brainpy/version2/math/tests/test_ndarray.py +++ b/brainpy/version2/math/tests/test_ndarray.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/tests/test_oprators.py b/brainpy/version2/math/tests/test_oprators.py index cb3dc39a4..2aff91fdb 100644 --- a/brainpy/version2/math/tests/test_oprators.py +++ b/brainpy/version2/math/tests/test_oprators.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/tests/test_others.py b/brainpy/version2/math/tests/test_others.py index b13668b5e..dda416478 100644 --- a/brainpy/version2/math/tests/test_others.py +++ b/brainpy/version2/math/tests/test_others.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/tests/test_random.py b/brainpy/version2/math/tests/test_random.py index 7cc267b15..fac16f48f 100644 --- a/brainpy/version2/math/tests/test_random.py +++ b/brainpy/version2/math/tests/test_random.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/math/tests/test_tifunc.py b/brainpy/version2/math/tests/test_tifunc.py index 3ab99e6e9..d71450aec 100644 --- a/brainpy/version2/math/tests/test_tifunc.py +++ b/brainpy/version2/math/tests/test_tifunc.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/mixin.py b/brainpy/version2/mixin.py index b6b34c70a..6d8efd01d 100644 --- a/brainpy/version2/mixin.py +++ b/brainpy/version2/mixin.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/neurons.py b/brainpy/version2/neurons.py index 3318c3fe6..4f7aeef4c 100644 --- a/brainpy/version2/neurons.py +++ b/brainpy/version2/neurons.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/optim/__init__.py b/brainpy/version2/optim/__init__.py index 7f86a7896..dd16fe45c 100644 --- a/brainpy/version2/optim/__init__.py +++ b/brainpy/version2/optim/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/optim/optimizer.py b/brainpy/version2/optim/optimizer.py index 265cffe1e..aa8f69270 100644 --- a/brainpy/version2/optim/optimizer.py +++ b/brainpy/version2/optim/optimizer.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/optim/scheduler.py b/brainpy/version2/optim/scheduler.py index a3875b06a..dc6d8778e 100644 --- a/brainpy/version2/optim/scheduler.py +++ b/brainpy/version2/optim/scheduler.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/optim/tests/test_ModifyLr.py b/brainpy/version2/optim/tests/test_ModifyLr.py index 5228581d0..480e97d6e 100644 --- a/brainpy/version2/optim/tests/test_ModifyLr.py +++ b/brainpy/version2/optim/tests/test_ModifyLr.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/optim/tests/test_scheduler.py b/brainpy/version2/optim/tests/test_scheduler.py index 7092b0f21..dcb167c13 100644 --- a/brainpy/version2/optim/tests/test_scheduler.py +++ b/brainpy/version2/optim/tests/test_scheduler.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/rates.py b/brainpy/version2/rates.py index 98d233961..5a10a91bd 100644 --- a/brainpy/version2/rates.py +++ b/brainpy/version2/rates.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/runners.py b/brainpy/version2/runners.py index 9a99ccdcc..a6cb27bbf 100644 --- a/brainpy/version2/runners.py +++ b/brainpy/version2/runners.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/running/__init__.py b/brainpy/version2/running/__init__.py index 8f2c6247a..891f4cc11 100644 --- a/brainpy/version2/running/__init__.py +++ b/brainpy/version2/running/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/running/constants.py b/brainpy/version2/running/constants.py index 75c27ce7e..36bfd8386 100644 --- a/brainpy/version2/running/constants.py +++ b/brainpy/version2/running/constants.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/running/jax_multiprocessing.py b/brainpy/version2/running/jax_multiprocessing.py index f85e19dca..246122240 100644 --- a/brainpy/version2/running/jax_multiprocessing.py +++ b/brainpy/version2/running/jax_multiprocessing.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/running/native_multiprocessing.py b/brainpy/version2/running/native_multiprocessing.py index 403a31b21..4e69926f2 100644 --- a/brainpy/version2/running/native_multiprocessing.py +++ b/brainpy/version2/running/native_multiprocessing.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/running/pathos_multiprocessing.py b/brainpy/version2/running/pathos_multiprocessing.py index e34cd1dfe..618a2ccae 100644 --- a/brainpy/version2/running/pathos_multiprocessing.py +++ b/brainpy/version2/running/pathos_multiprocessing.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/running/runner.py b/brainpy/version2/running/runner.py index ac5a4a485..92a784e2f 100644 --- a/brainpy/version2/running/runner.py +++ b/brainpy/version2/running/runner.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/running/tests/test_pathos_multiprocessing.py b/brainpy/version2/running/tests/test_pathos_multiprocessing.py index 998c47007..c2b46d9a8 100644 --- a/brainpy/version2/running/tests/test_pathos_multiprocessing.py +++ b/brainpy/version2/running/tests/test_pathos_multiprocessing.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/synapses.py b/brainpy/version2/synapses.py index 57e76e496..35f9ee374 100644 --- a/brainpy/version2/synapses.py +++ b/brainpy/version2/synapses.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/synouts.py b/brainpy/version2/synouts.py index 5ba976fb0..dd51c1908 100644 --- a/brainpy/version2/synouts.py +++ b/brainpy/version2/synouts.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/synplast.py b/brainpy/version2/synplast.py index 9218c5ed4..9b7d07f62 100644 --- a/brainpy/version2/synplast.py +++ b/brainpy/version2/synplast.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tests/test_access_methods.py b/brainpy/version2/tests/test_access_methods.py index 9b0729b0d..eac2ce698 100644 --- a/brainpy/version2/tests/test_access_methods.py +++ b/brainpy/version2/tests/test_access_methods.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tests/test_base_classes.py b/brainpy/version2/tests/test_base_classes.py index ca3ef4dc4..ec35ad08c 100644 --- a/brainpy/version2/tests/test_base_classes.py +++ b/brainpy/version2/tests/test_base_classes.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tests/test_check.py b/brainpy/version2/tests/test_check.py index 9ed8e2be6..d7da4e7d2 100644 --- a/brainpy/version2/tests/test_check.py +++ b/brainpy/version2/tests/test_check.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tests/test_delay.py b/brainpy/version2/tests/test_delay.py index 9e518eb0d..678e31259 100644 --- a/brainpy/version2/tests/test_delay.py +++ b/brainpy/version2/tests/test_delay.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tests/test_dyn_runner.py b/brainpy/version2/tests/test_dyn_runner.py index f727a7183..60d8bc08c 100644 --- a/brainpy/version2/tests/test_dyn_runner.py +++ b/brainpy/version2/tests/test_dyn_runner.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tests/test_dynsys.py b/brainpy/version2/tests/test_dynsys.py index 1313cf1b8..468052b17 100644 --- a/brainpy/version2/tests/test_dynsys.py +++ b/brainpy/version2/tests/test_dynsys.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tests/test_helper.py b/brainpy/version2/tests/test_helper.py index 9fa0c87e0..a2ea49fda 100644 --- a/brainpy/version2/tests/test_helper.py +++ b/brainpy/version2/tests/test_helper.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tests/test_mixin.py b/brainpy/version2/tests/test_mixin.py index f51d29401..18488147b 100644 --- a/brainpy/version2/tests/test_mixin.py +++ b/brainpy/version2/tests/test_mixin.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tests/test_network.py b/brainpy/version2/tests/test_network.py index 4ad7779e3..fdebe2c09 100644 --- a/brainpy/version2/tests/test_network.py +++ b/brainpy/version2/tests/test_network.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tests/test_pickle.py b/brainpy/version2/tests/test_pickle.py index 25d851e4c..298810626 100644 --- a/brainpy/version2/tests/test_pickle.py +++ b/brainpy/version2/tests/test_pickle.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tests/test_slice_view.py b/brainpy/version2/tests/test_slice_view.py index 31b318083..17acb099e 100644 --- a/brainpy/version2/tests/test_slice_view.py +++ b/brainpy/version2/tests/test_slice_view.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tools/__init__.py b/brainpy/version2/tools/__init__.py index 6e54716d8..24a69ac97 100644 --- a/brainpy/version2/tools/__init__.py +++ b/brainpy/version2/tools/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tools/codes.py b/brainpy/version2/tools/codes.py index a673c199d..31ef9feaf 100644 --- a/brainpy/version2/tools/codes.py +++ b/brainpy/version2/tools/codes.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tools/dicts.py b/brainpy/version2/tools/dicts.py index 33465c162..cc8122a5e 100644 --- a/brainpy/version2/tools/dicts.py +++ b/brainpy/version2/tools/dicts.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tools/functions.py b/brainpy/version2/tools/functions.py index c96dd5e9d..9b6bd6e2d 100644 --- a/brainpy/version2/tools/functions.py +++ b/brainpy/version2/tools/functions.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tools/install.py b/brainpy/version2/tools/install.py index cc23323fa..690325597 100644 --- a/brainpy/version2/tools/install.py +++ b/brainpy/version2/tools/install.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tools/math_util.py b/brainpy/version2/tools/math_util.py index bd03cc3ba..ca4c5ca7e 100644 --- a/brainpy/version2/tools/math_util.py +++ b/brainpy/version2/tools/math_util.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tools/others.py b/brainpy/version2/tools/others.py index 013b81769..728a6e6ce 100644 --- a/brainpy/version2/tools/others.py +++ b/brainpy/version2/tools/others.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tools/package.py b/brainpy/version2/tools/package.py index db3d90dfa..4a4776ccf 100644 --- a/brainpy/version2/tools/package.py +++ b/brainpy/version2/tools/package.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tools/progress.py b/brainpy/version2/tools/progress.py index 865fab9ed..16ef61c06 100644 --- a/brainpy/version2/tools/progress.py +++ b/brainpy/version2/tools/progress.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/tools/tests/test_functions.py b/brainpy/version2/tools/tests/test_functions.py index ec85ff6c6..ac479cf9f 100644 --- a/brainpy/version2/tools/tests/test_functions.py +++ b/brainpy/version2/tools/tests/test_functions.py @@ -1,4 +1,4 @@ -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/train/__init__.py b/brainpy/version2/train/__init__.py index e3f76d5ff..54a927a57 100644 --- a/brainpy/version2/train/__init__.py +++ b/brainpy/version2/train/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/train/_utils.py b/brainpy/version2/train/_utils.py index 5bc347a78..ecdd8cc89 100644 --- a/brainpy/version2/train/_utils.py +++ b/brainpy/version2/train/_utils.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/train/back_propagation.py b/brainpy/version2/train/back_propagation.py index ba34dada5..248d831b6 100644 --- a/brainpy/version2/train/back_propagation.py +++ b/brainpy/version2/train/back_propagation.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/train/base.py b/brainpy/version2/train/base.py index 7dcf0fcc8..8a7e60978 100644 --- a/brainpy/version2/train/base.py +++ b/brainpy/version2/train/base.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/train/offline.py b/brainpy/version2/train/offline.py index b60f8c22e..f3ff2f25a 100644 --- a/brainpy/version2/train/offline.py +++ b/brainpy/version2/train/offline.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/train/online.py b/brainpy/version2/train/online.py index be939c89d..283865ced 100644 --- a/brainpy/version2/train/online.py +++ b/brainpy/version2/train/online.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/transform.py b/brainpy/version2/transform.py index 5a4f14ea7..8e711ecbd 100644 --- a/brainpy/version2/transform.py +++ b/brainpy/version2/transform.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/types.py b/brainpy/version2/types.py index 99cd3e822..76b0c7e5c 100644 --- a/brainpy/version2/types.py +++ b/brainpy/version2/types.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2025 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/brainpy/version2/visualization.py b/brainpy/version2/visualization.py index 2b057bd74..8a8f40bc2 100644 --- a/brainpy/version2/visualization.py +++ b/brainpy/version2/visualization.py @@ -1,4 +1,4 @@ -# Copyright 2024 BDP Ecosystem Limited. All Rights Reserved. +# Copyright 2024 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. From 4fd0579ed02f8ae071177726375a2bb3f007a838 Mon Sep 17 00:00:00 2001 From: oujago Date: Tue, 7 Oct 2025 17:03:21 +0800 Subject: [PATCH 14/18] refactor(docs): update import statements to use brainpy.mixin and add .gitignore entry for build artifacts --- .gitignore | 1 + brainpy/mixin.py | 821 +++++++----------- brainpy/version2/__init__.py | 2 +- brainpy/version2/algorithms/__init__.py | 2 +- brainpy/version2/analysis/__init__.py | 2 +- .../version2/analysis/highdim/slow_points.py | 2 +- brainpy/version2/analysis/utils/model.py | 2 +- .../version2/analysis/utils/optimization.py | 3 +- brainpy/version2/check.py | 1 - brainpy/version2/checkpoints.py | 4 +- brainpy/version2/connect/base.py | 2 +- brainpy/version2/connect/custom_conn.py | 2 +- brainpy/version2/connect/random_conn.py | 2 +- brainpy/version2/context.py | 1 - brainpy/version2/delay.py | 6 +- brainpy/version2/dnn/__init__.py | 1 - brainpy/version2/dnn/linear.py | 17 +- brainpy/version2/dyn/__init__.py | 3 +- brainpy/version2/dyn/base.py | 2 +- brainpy/version2/dyn/channels/base.py | 2 +- .../dyn/channels/potassium_calcium.py | 2 +- brainpy/version2/dyn/ions/base.py | 9 +- brainpy/version2/dyn/neurons/__init__.py | 4 +- brainpy/version2/dyn/neurons/base.py | 2 +- brainpy/version2/dyn/neurons/hh.py | 4 +- brainpy/version2/dyn/neurons/lif.py | 2 +- brainpy/version2/dyn/others/common.py | 2 +- brainpy/version2/dyn/others/input.py | 3 +- brainpy/version2/dyn/outs/base.py | 2 +- .../version2/dyn/projections/align_post.py | 4 +- brainpy/version2/dyn/projections/align_pre.py | 2 +- brainpy/version2/dyn/projections/base.py | 2 +- brainpy/version2/dyn/projections/delta.py | 2 +- brainpy/version2/dyn/projections/inputs.py | 2 +- .../version2/dyn/projections/plasticity.py | 4 +- brainpy/version2/dyn/projections/utils.py | 2 +- brainpy/version2/dyn/projections/vanilla.py | 2 +- brainpy/version2/dyn/rates/populations.py | 12 +- brainpy/version2/dyn/rates/rnncells.py | 16 +- .../version2/dyn/synapses/abstract_models.py | 2 +- .../version2/dyn/synapses/delay_couplings.py | 2 +- .../dynold/experimental/abstract_synapses.py | 2 +- .../version2/dynold/experimental/others.py | 2 +- .../dynold/neurons/biological_models.py | 8 +- .../dynold/neurons/fractional_models.py | 2 +- .../version2/dynold/neurons/reduced_models.py | 12 +- brainpy/version2/dynold/synapses/base.py | 4 +- .../dynold/synapses/learning_rules.py | 2 +- .../dynold/synplast/short_term_plasticity.py | 2 +- brainpy/version2/dynsys.py | 2 +- brainpy/version2/experimental.py | 17 +- brainpy/version2/initialize/random_inits.py | 2 +- brainpy/version2/inputs/currents.py | 1 + brainpy/version2/integrators/base.py | 4 +- brainpy/version2/integrators/fde/Caputo.py | 2 +- brainpy/version2/integrators/fde/GL.py | 2 +- brainpy/version2/integrators/fde/base.py | 4 +- .../version2/integrators/ode/adaptive_rk.py | 1 - brainpy/version2/integrators/ode/base.py | 4 +- brainpy/version2/integrators/runner.py | 2 +- brainpy/version2/integrators/sde/base.py | 1 - brainpy/version2/integrators/sde/normal.py | 1 - .../integrators/tests/test_joint_eq.py | 2 +- brainpy/version2/math/__init__.py | 3 +- brainpy/version2/math/activations.py | 2 +- brainpy/version2/math/compat_numpy.py | 2 +- brainpy/version2/math/defaults.py | 2 +- brainpy/version2/math/delayvars.py | 2 +- brainpy/version2/math/jitconn/event_matvec.py | 4 +- brainpy/version2/math/modes.py | 6 +- .../math/object_transform/autograd.py | 3 +- .../math/object_transform/collectors.py | 2 +- brainpy/version2/math/pre_syn_post.py | 2 +- brainpy/version2/math/sharding.py | 2 +- brainpy/version2/math/surrogate/_utils.py | 2 +- .../math/tests/test_compat_pytorch.py | 2 +- brainpy/version2/mixin.py | 363 -------- brainpy/version2/neurons.py | 36 - brainpy/version2/optim/optimizer.py | 2 +- brainpy/version2/optim/scheduler.py | 4 +- brainpy/version2/runners.py | 2 +- brainpy/version2/running/runner.py | 2 +- brainpy/version2/synapses.py | 28 +- brainpy/version2/tools/dicts.py | 3 +- brainpy/version2/train/_utils.py | 2 +- brainpy/version2/train/back_propagation.py | 2 +- brainpy/version2/train/base.py | 2 +- brainpy/version2/train/offline.py | 4 +- brainpy/version2/train/online.py | 4 +- brainpy/version2/transform.py | 2 +- 90 files changed, 454 insertions(+), 1075 deletions(-) delete mode 100644 brainpy/version2/mixin.py diff --git a/.gitignore b/.gitignore index 2f4779f12..d7ce4452f 100644 --- a/.gitignore +++ b/.gitignore @@ -231,3 +231,4 @@ cython_debug/ /.claude/ /docs_version2/_static/logos/ /docs/_static/logos/ +/docs/_build/ diff --git a/brainpy/mixin.py b/brainpy/mixin.py index 83a40c901..b8ba9efa9 100644 --- a/brainpy/mixin.py +++ b/brainpy/mixin.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- # Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -12,20 +13,41 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== +import warnings +from dataclasses import dataclass +from typing import Union, Dict, Callable, Sequence, Optional, Any -from typing import Optional +import jax import brainstate +bm, delay_identifier, init_delay_by_return = None, None, None + __all__ = [ + 'MixIn', + 'ParamDesc', + 'ParamDescriber', 'AlignPost', + 'Container', + 'TreeNode', 'BindCondData', - 'Mode', - 'JointMode', - 'Batching', - 'Training', + 'JointType', + 'SupportSTDP', + 'SupportAutoDelay', + 'SupportInputProj', + 'SupportOnline', + 'SupportOffline', ] +MixIn = brainstate.mixin.Mixin +ParamDesc = brainstate.mixin.ParamDesc +ParamDescriber = brainstate.mixin.ParamDescriber +JointType = brainstate.mixin.JointTypes + + +def _get_bm(): + global bm + class AlignPost(brainstate.mixin.Mixin): """ @@ -185,558 +207,317 @@ def unbind_cond(self): self._conductance = None -class Mode(brainstate.mixin.Mixin): +def _get_delay_tool(): + global delay_identifier, init_delay_by_return + if init_delay_by_return is None: from brainpy.version2.delay import init_delay_by_return + if delay_identifier is None: from brainpy.version2.delay import delay_identifier + return delay_identifier, init_delay_by_return + + +@dataclass +class ReturnInfo: + size: Sequence[int] + axis_names: Optional[Sequence[str]] = None + batch_or_mode: Optional[Union[int, brainstate.mixin.Mode]] = None + data: Union[Callable, jax.Array] = jax.numpy.zeros + + def get_data(self): + bm = _get_bm() + if isinstance(self.data, Callable): + if isinstance(self.batch_or_mode, int): + size = (self.batch_or_mode,) + tuple(self.size) + elif isinstance(self.batch_or_mode, bm.NonBatchingMode): + size = tuple(self.size) + elif isinstance(self.batch_or_mode, bm.BatchingMode): + size = (self.batch_or_mode.batch_size,) + tuple(self.size) + else: + size = tuple(self.size) + init = self.data(size) + elif isinstance(self.data, (bm.Array, jax.Array)): + init = self.data + else: + raise ValueError + return init + + +class Container(MixIn): + """Container :py:class:`~.MixIn` which wrap a group of objects. """ - Base class for computation behavior modes. - - Modes are used to represent different computational contexts or behaviors, - such as training vs evaluation, batched vs single-sample processing, etc. - They provide a flexible way to configure how models and components behave - in different scenarios. - - Examples - -------- - Creating a custom mode: - - .. code-block:: python - - >>> import brainstate - >>> - >>> class InferenceMode(brainstate.mixin.Mode): - ... def __init__(self, use_cache=True): - ... self.use_cache = use_cache - >>> - >>> # Create mode instances - >>> inference = InferenceMode(use_cache=True) - >>> print(inference) # Output: InferenceMode - - Checking mode types: - - .. code-block:: python - - >>> class FastMode(brainstate.mixin.Mode): - ... pass - >>> - >>> class SlowMode(brainstate.mixin.Mode): - ... pass - >>> - >>> fast = FastMode() - >>> slow = SlowMode() - >>> - >>> # Check exact mode type - >>> assert fast.is_a(FastMode) - >>> assert not fast.is_a(SlowMode) - >>> - >>> # Check if mode is an instance of a type - >>> assert fast.has(brainstate.mixin.Mode) - - Using modes in a model: + children: dict() - .. code-block:: python + def __getitem__(self, item): + """Overwrite the slice access (`self['']`). """ + if item in self.children: + return self.children[item] + else: + raise ValueError(f'Unknown item {item}, we only found {list(self.children.keys())}') - >>> class Model: - ... def __init__(self): - ... self.mode = brainstate.mixin.Training() - ... - ... def forward(self, x): - ... if self.mode.has(brainstate.mixin.Training): - ... # Training-specific logic - ... return self.train_forward(x) - ... else: - ... # Inference logic - ... return self.eval_forward(x) - ... - ... def train_forward(self, x): - ... return x + 0.1 # Add noise during training - ... - ... def eval_forward(self, x): - ... return x # No noise during evaluation - """ + def __getattr__(self, item): + """Overwrite the dot access (`self.`). """ + if item == 'children': + return super().__getattribute__('children') + else: + children = super().__getattribute__('children') + if item in children: + return children[item] + else: + return super().__getattribute__(item) def __repr__(self): + from brainpy.version2 import tools + cls_name = self.__class__.__name__ + indent = ' ' * len(cls_name) + child_str = [tools.repr_context(repr(val), indent) for val in self.children.values()] + string = ", \n".join(child_str) + return f'{cls_name}({string})' + + def __get_elem_name(self, elem): + bm = _get_bm() + if isinstance(elem, bm.BrainPyObject): + return elem.name + else: + from brainpy.version2.math.object_transform.base import get_unique_name + return get_unique_name('ContainerElem') + + def format_elements(self, child_type: type, *children_as_tuple, **children_as_dict): + res = dict() + + # add tuple-typed components + for module in children_as_tuple: + if isinstance(module, child_type): + res[self.__get_elem_name(module)] = module + elif isinstance(module, (list, tuple)): + for m in module: + if not isinstance(m, child_type): + raise ValueError(f'Should be instance of {child_type.__name__}. ' + f'But we got {type(m)}') + res[self.__get_elem_name(m)] = m + elif isinstance(module, dict): + for k, v in module.items(): + if not isinstance(v, child_type): + raise ValueError(f'Should be instance of {child_type.__name__}. ' + f'But we got {type(v)}') + res[k] = v + else: + raise ValueError(f'Cannot parse sub-systems. They should be {child_type.__name__} ' + f'or a list/tuple/dict of {child_type.__name__}.') + # add dict-typed components + for k, v in children_as_dict.items(): + if not isinstance(v, child_type): + raise ValueError(f'Should be instance of {child_type.__name__}. ' + f'But we got {type(v)}') + res[k] = v + return res + + def add_elem(self, *elems, **elements): + """Add new elements. + + >>> obj = Container() + >>> obj.add_elem(a=1.) + + Args: + elements: children objects. """ - String representation of the mode. - - Returns - ------- - str - The class name of the mode. - """ - return self.__class__.__name__ - - def __eq__(self, other: 'Mode'): - """ - Check equality of modes based on their type. - - Parameters - ---------- - other : Mode - Another mode to compare with. - - Returns - ------- - bool - True if both modes are of the same class. - """ - assert isinstance(other, Mode) - return other.__class__ == self.__class__ - - def is_a(self, mode: type): - """ - Check whether the mode is exactly the desired mode type. - - This performs an exact type match, not checking for subclasses. - - Parameters - ---------- - mode : type - The mode type to check against. - - Returns - ------- - bool - True if this mode is exactly of the specified type. - - Examples - -------- - .. code-block:: python - - >>> import brainstate - >>> - >>> training_mode = brainstate.mixin.Training() - >>> assert training_mode.is_a(brainstate.mixin.Training) - >>> assert not training_mode.is_a(brainstate.mixin.Batching) - """ - assert isinstance(mode, type), 'Must be a type.' - return self.__class__ == mode - - def has(self, mode: type): - """ - Check whether the mode includes the desired mode type. - - This checks if the current mode is an instance of the specified type, - including checking for subclasses. - - Parameters - ---------- - mode : type - The mode type to check for. - - Returns - ------- - bool - True if this mode is an instance of the specified type. - - Examples - -------- - .. code-block:: python - - >>> import brainstate - >>> - >>> # Create a custom mode that extends Training - >>> class AdvancedTraining(brainstate.mixin.Training): - ... pass - >>> - >>> advanced = AdvancedTraining() - >>> assert advanced.has(brainstate.mixin.Training) # True (subclass) - >>> assert advanced.has(brainstate.mixin.Mode) # True (base class) - """ - assert isinstance(mode, type), 'Must be a type.' - return isinstance(self, mode) - - -class JointMode(Mode): - """ - A mode that combines multiple modes simultaneously. - - JointMode allows expressing that a computation is in multiple modes at once, - such as being both in training mode and batching mode. This is useful for - complex scenarios where multiple behavioral aspects need to be active. - - Parameters - ---------- - *modes : Mode - The modes to combine. - - Attributes - ---------- - modes : tuple of Mode - The individual modes that are combined. - types : set of type - The types of the combined modes. - - Raises - ------ - TypeError - If any of the provided arguments is not a Mode instance. + self.children.update(self.format_elements(object, *elems, **elements)) + + +class TreeNode(MixIn): + """Tree node. """ + + master_type: type + + def check_hierarchies(self, root, *leaves, **named_leaves): + global DynamicalSystem + if DynamicalSystem is None: + from brainpy.version2.dynsys import DynamicalSystem + + for leaf in leaves: + if isinstance(leaf, DynamicalSystem): + self.check_hierarchy(root, leaf) + elif isinstance(leaf, (list, tuple)): + self.check_hierarchies(root, *leaf) + elif isinstance(leaf, dict): + self.check_hierarchies(root, **leaf) + else: + raise ValueError(f'Do not support {type(leaf)}.') + for leaf in named_leaves.values(): + if not isinstance(leaf, DynamicalSystem): + raise ValueError(f'Do not support {type(leaf)}. Must be instance of {DynamicalSystem.__name__}') + self.check_hierarchy(root, leaf) + + def check_hierarchy(self, root, leaf): + if hasattr(leaf, 'master_type'): + master_type = leaf.master_type + else: + raise ValueError('Child class should define "master_type" to ' + 'specify the type of the root node. ' + f'But we did not found it in {leaf}') + if not issubclass(root, master_type): + raise TypeError(f'Type does not match. {leaf} requires a master with type ' + f'of {leaf.master_type}, but the master now is {root}.') + + +class SupportInputProj(MixIn): + """The :py:class:`~.MixIn` that receives the input projections. + + Note that the subclass should define a ``cur_inputs`` attribute. Otherwise, + the input function utilities cannot be used. - Examples - -------- - Combining training and batching modes: - - .. code-block:: python - - >>> import brainstate - >>> - >>> # Create individual modes - >>> training = brainstate.mixin.Training() - >>> batching = brainstate.mixin.Batching(batch_size=32) - >>> - >>> # Combine them - >>> joint = brainstate.mixin.JointMode(training, batching) - >>> print(joint) # JointMode(Training, Batching(in_size=32, axis=0)) - >>> - >>> # Check if specific modes are present - >>> assert joint.has(brainstate.mixin.Training) - >>> assert joint.has(brainstate.mixin.Batching) - >>> - >>> # Access attributes from combined modes - >>> print(joint.batch_size) # 32 (from Batching mode) - - Using in model configuration: - - .. code-block:: python - - >>> class NeuralNetwork: - ... def __init__(self): - ... self.mode = None - ... - ... def set_train_mode(self, batch_size=1): - ... # Set both training and batching modes - ... training = brainstate.mixin.Training() - ... batching = brainstate.mixin.Batching(batch_size=batch_size) - ... self.mode = brainstate.mixin.JointMode(training, batching) - ... - ... def forward(self, x): - ... if self.mode.has(brainstate.mixin.Training): - ... x = self.apply_dropout(x) - ... - ... if self.mode.has(brainstate.mixin.Batching): - ... # Process in batches - ... batch_size = self.mode.batch_size - ... return self.batch_process(x, batch_size) - ... - ... return self.process(x) - >>> - >>> model = NeuralNetwork() - >>> model.set_train_mode(batch_size=64) """ - - def __init__(self, *modes: Mode): - # Validate that all arguments are Mode instances - for m_ in modes: - if not isinstance(m_, Mode): - raise TypeError(f'The supported type must be a tuple/list of Mode. But we got {m_}') - - # Store the modes as a tuple - self.modes = tuple(modes) - - # Store the types of the modes for quick lookup - self.types = set([m.__class__ for m in modes]) - - def __repr__(self): + current_inputs: dict + delta_inputs: dict + + def add_inp_fun(self, key: str, fun: Callable, label: Optional[str] = None, category: str = 'current'): + """Add an input function. + + Args: + key: str. The dict key. + fun: Callable. The function to generate inputs. + label: str. The input label. + category: str. The input category, should be ``current`` (the current) or + ``delta`` (the delta synapse, indicating the delta function). """ - String representation showing all combined modes. - - Returns - ------- - str - A string showing the joint mode and its components. + if not callable(fun): + raise TypeError('Must be a function.') + + key = self._input_label_repr(key, label) + if category == 'current': + if key in self.current_inputs: + raise ValueError(f'Key "{key}" has been defined and used.') + self.current_inputs[key] = fun + elif category == 'delta': + if key in self.delta_inputs: + raise ValueError(f'Key "{key}" has been defined and used.') + self.delta_inputs[key] = fun + else: + raise NotImplementedError(f'Unknown category: {category}. Only support "current" and "delta".') + + def get_inp_fun(self, key: str): + """Get the input function. + + Args: + key: str. The key. + + Returns: + The input function which generates currents. """ - return f'{self.__class__.__name__}({", ".join([repr(m) for m in self.modes])})' - - def has(self, mode: type): + if key in self.current_inputs: + return self.current_inputs[key] + elif key in self.delta_inputs: + return self.delta_inputs[key] + else: + raise ValueError(f'Unknown key: {key}') + + def sum_current_inputs(self, *args, init: Any = 0., label: Optional[str] = None, **kwargs): + """Summarize all current inputs by the defined input functions ``.current_inputs``. + + Args: + *args: The arguments for input functions. + init: The initial input data. + label: str. The input label. + **kwargs: The arguments for input functions. + + Returns: + The total currents. """ - Check whether any of the combined modes includes the desired type. - - Parameters - ---------- - mode : type - The mode type to check for. - - Returns - ------- - bool - True if any of the combined modes is or inherits from the specified type. - - Examples - -------- - .. code-block:: python - - >>> import brainstate - >>> - >>> training = brainstate.mixin.Training() - >>> batching = brainstate.mixin.Batching(batch_size=16) - >>> joint = brainstate.mixin.JointMode(training, batching) - >>> - >>> assert joint.has(brainstate.mixin.Training) - >>> assert joint.has(brainstate.mixin.Batching) - >>> assert joint.has(brainstate.mixin.Mode) # Base class + if label is None: + for key, out in self.current_inputs.items(): + init = init + out(*args, **kwargs) + else: + label_repr = self._input_label_start(label) + for key, out in self.current_inputs.items(): + if key.startswith(label_repr): + init = init + out(*args, **kwargs) + return init + + def sum_delta_inputs(self, *args, init: Any = 0., label: Optional[str] = None, **kwargs): + """Summarize all delta inputs by the defined input functions ``.delta_inputs``. + + Args: + *args: The arguments for input functions. + init: The initial input data. + label: str. The input label. + **kwargs: The arguments for input functions. + + Returns: + The total currents. """ - assert isinstance(mode, type), 'Must be a type.' - # Check if any of the combined mode types is a subclass of the target mode - return any([issubclass(cls, mode) for cls in self.types]) + if label is None: + for key, out in self.delta_inputs.items(): + init = init + out(*args, **kwargs) + else: + label_repr = self._input_label_start(label) + for key, out in self.delta_inputs.items(): + if key.startswith(label_repr): + init = init + out(*args, **kwargs) + return init - def is_a(self, cls: type): - """ - Check whether the joint mode is exactly the desired combined type. + @classmethod + def _input_label_start(cls, label: str): + # unify the input label repr. + return f'{label} // ' - This is a complex check that verifies the joint mode matches a specific - combination of types. + @classmethod + def _input_label_repr(cls, name: str, label: Optional[str] = None): + # unify the input label repr. + return name if label is None else (cls._input_label_start(label) + str(name)) - Parameters - ---------- - cls : type - The combined type to check against. + # deprecated # + # ---------- # - Returns - ------- - bool - True if the joint mode exactly matches the specified type combination. - """ - # Use JointTypes to create the expected type from our mode types - return brainstate.mixin.JointTypes(*tuple(self.types)) == cls + @property + def cur_inputs(self): + return self.current_inputs - def __getattr__(self, item): - """ - Get attributes from the combined modes. + def sum_inputs(self, *args, **kwargs): + warnings.warn('Please use ".sum_current_inputs()" instead. ".sum_inputs()" will be removed.', UserWarning) + return self.sum_current_inputs(*args, **kwargs) - This method searches through all combined modes to find the requested - attribute, allowing transparent access to properties of any of the - combined modes. - Parameters - ---------- - item : str - The attribute name to search for. +class SupportReturnInfo(MixIn): + """``MixIn`` to support the automatic delay in synaptic projection :py:class:`~.SynProj`.""" - Returns - ------- - Any - The attribute value from the first mode that has it. + def return_info(self): + raise NotImplementedError('Must implement the "return_info()" function.') - Raises - ------ - AttributeError - If the attribute is not found in any of the combined modes. - - Examples - -------- - .. code-block:: python - - >>> import brainstate - >>> - >>> batching = brainstate.mixin.Batching(batch_size=32, batch_axis=1) - >>> training = brainstate.mixin.Training() - >>> joint = brainstate.mixin.JointMode(batching, training) - >>> - >>> # Access batching attributes directly - >>> print(joint.batch_size) # 32 - >>> print(joint.batch_axis) # 1 - """ - # Don't interfere with accessing modes and types attributes - if item in ['modes', 'types']: - return super().__getattribute__(item) - # Search for the attribute in each combined mode - for m in self.modes: - if hasattr(m, item): - return getattr(m, item) +class SupportAutoDelay(SupportReturnInfo): + pass - # If not found, fall back to default behavior (will raise AttributeError) - return super().__getattribute__(item) +class SupportOnline(MixIn): + """:py:class:`~.MixIn` to support the online training methods. -class Batching(Mode): + .. versionadded:: 2.4.5 """ - Mode indicating batched computation. - This mode specifies that computations should be performed on batches of data, - including information about the batch size and which axis represents the batch - dimension. + online_fit_by: Optional # methods for online fitting - Parameters - ---------- - batch_size : int, default 1 - The size of each batch. - batch_axis : int, default 0 - The axis along which batching occurs. - - Attributes - ---------- - batch_size : int - The number of samples in each batch. - batch_axis : int - The axis index representing the batch dimension. - - Examples - -------- - Basic batching configuration: - - .. code-block:: python - - >>> import brainstate - >>> - >>> # Create a batching mode - >>> batching = brainstate.mixin.Batching(batch_size=32, batch_axis=0) - >>> print(batching) # Batching(in_size=32, axis=0) - >>> - >>> # Access batch parameters - >>> print(f"Processing {batching.batch_size} samples at once") - >>> print(f"Batch dimension is axis {batching.batch_axis}") - - Using in a model: - - .. code-block:: python + def online_init(self, *args, **kwargs): + raise NotImplementedError - >>> import jax.numpy as jnp - >>> - >>> class BatchedModel: - ... def __init__(self): - ... self.mode = None - ... - ... def set_batch_mode(self, batch_size, batch_axis=0): - ... self.mode = brainstate.mixin.Batching(batch_size, batch_axis) - ... - ... def process(self, x): - ... if self.mode is not None and self.mode.has(brainstate.mixin.Batching): - ... # Process in batches - ... batch_size = self.mode.batch_size - ... axis = self.mode.batch_axis - ... return jnp.mean(x, axis=axis, keepdims=True) - ... return x - >>> - >>> model = BatchedModel() - >>> model.set_batch_mode(batch_size=64) - >>> - >>> # Process batched data - >>> data = jnp.random.randn(64, 100) # 64 samples, 100 features - >>> result = model.process(data) + def online_fit(self, target, fit_record: Dict): + raise NotImplementedError - Combining with other modes: - .. code-block:: python +class SupportOffline(MixIn): + """:py:class:`~.MixIn` to support the offline training methods. - >>> # Combine batching with training mode - >>> training = brainstate.mixin.Training() - >>> batching = brainstate.mixin.Batching(batch_size=128) - >>> combined = brainstate.mixin.JointMode(training, batching) - >>> - >>> # Use in a training loop - >>> def train_step(model, data, mode): - ... if mode.has(brainstate.mixin.Batching): - ... # Split data into batches - ... batch_size = mode.batch_size - ... # ... batched processing ... - ... if mode.has(brainstate.mixin.Training): - ... # Apply training-specific operations - ... # ... training logic ... - ... pass + .. versionadded:: 2.4.5 """ - def __init__(self, batch_size: int = 1, batch_axis: int = 0): - self.batch_size = batch_size - self.batch_axis = batch_axis + offline_fit_by: Optional # methods for offline fitting - def __repr__(self): - """ - String representation showing batch configuration. + def offline_init(self, *args, **kwargs): + pass - Returns - ------- - str - A string showing the batch size and axis. - """ - return f'{self.__class__.__name__}(in_size={self.batch_size}, axis={self.batch_axis})' + def offline_fit(self, target, fit_record: Dict): + raise NotImplementedError -class Training(Mode): +class SupportSTDP(MixIn): + """Support synaptic plasticity by modifying the weights. """ - Mode indicating training computation. - - This mode specifies that the model is in training mode, which typically - enables behaviors like dropout, batch normalization in training mode, - gradient computation, etc. - - Examples - -------- - Basic training mode: - - .. code-block:: python - - >>> import brainstate - >>> - >>> # Create training mode - >>> training = brainstate.mixin.Training() - >>> print(training) # Training - >>> - >>> # Check mode - >>> assert training.is_a(brainstate.mixin.Training) - >>> assert training.has(brainstate.mixin.Mode) - - Using in a model with dropout: - .. code-block:: python - - >>> import brainstate - >>> import jax - >>> import jax.numpy as jnp - >>> - >>> class ModelWithDropout: - ... def __init__(self, dropout_rate=0.5): - ... self.dropout_rate = dropout_rate - ... self.mode = None - ... - ... def set_training(self, is_training=True): - ... if is_training: - ... self.mode = brainstate.mixin.Training() - ... else: - ... self.mode = brainstate.mixin.Mode() # Evaluation mode - ... - ... def forward(self, x, rng_key): - ... # Apply dropout only during training - ... if self.mode is not None and self.mode.has(brainstate.mixin.Training): - ... keep_prob = 1.0 - self.dropout_rate - ... mask = jax.random.bernoulli(rng_key, keep_prob, x.shape) - ... x = jnp.where(mask, x / keep_prob, 0) - ... return x - >>> - >>> model = ModelWithDropout() - >>> - >>> # Training mode - >>> model.set_training(True) - >>> key = jax.random.PRNGKey(0) - >>> x_train = jnp.ones((10, 20)) - >>> out_train = model.forward(x_train, key) # Dropout applied - >>> - >>> # Evaluation mode - >>> model.set_training(False) - >>> out_eval = model.forward(x_train, key) # No dropout - - Combining with batching: - - .. code-block:: python - - >>> # Create combined training and batching mode - >>> training = brainstate.mixin.Training() - >>> batching = brainstate.mixin.Batching(batch_size=32) - >>> mode = brainstate.mixin.JointMode(training, batching) - >>> - >>> # Use in training configuration - >>> class Trainer: - ... def __init__(self, model, mode): - ... self.model = model - ... self.mode = mode - ... - ... def train_epoch(self, data): - ... if self.mode.has(brainstate.mixin.Training): - ... # Enable training-specific behaviors - ... self.model.set_training(True) - ... - ... if self.mode.has(brainstate.mixin.Batching): - ... # Process in batches - ... batch_size = self.mode.batch_size - ... # ... batched training loop ... - ... pass - """ - pass + def stdp_update(self, *args, on_pre=None, onn_post=None, **kwargs): + raise NotImplementedError diff --git a/brainpy/version2/__init__.py b/brainpy/version2/__init__.py index 645a4152f..da555bb27 100644 --- a/brainpy/version2/__init__.py +++ b/brainpy/version2/__init__.py @@ -14,6 +14,7 @@ # limitations under the License. # ============================================================================== from brainpy import _errors as errors +from brainpy import mixin # fundamental supporting modules from brainpy.version2 import check, tools # Part: Math Foundation # @@ -33,7 +34,6 @@ encoding, # encoding schema checkpoints, # checkpoints check, # error checking - mixin, # mixin classes algorithms, # online or offline training algorithms ) from .math import BrainPyObject diff --git a/brainpy/version2/algorithms/__init__.py b/brainpy/version2/algorithms/__init__.py index 6665c9fc0..66983284f 100644 --- a/brainpy/version2/algorithms/__init__.py +++ b/brainpy/version2/algorithms/__init__.py @@ -13,6 +13,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== +from . import utils from .offline import * from .online import * -from . import utils diff --git a/brainpy/version2/analysis/__init__.py b/brainpy/version2/analysis/__init__.py index 06f93e2bf..2dc37bfc3 100644 --- a/brainpy/version2/analysis/__init__.py +++ b/brainpy/version2/analysis/__init__.py @@ -30,8 +30,8 @@ from . import constants as C, stability, plotstyle, utils from .base import * from .constants import * +from .constants import * from .highdim.slow_points import * from .lowdim.lowdim_bifurcation import * from .lowdim.lowdim_phase_plane import * -from .constants import * diff --git a/brainpy/version2/analysis/highdim/slow_points.py b/brainpy/version2/analysis/highdim/slow_points.py index 1fbb13ca2..5205bcad8 100644 --- a/brainpy/version2/analysis/highdim/slow_points.py +++ b/brainpy/version2/analysis/highdim/slow_points.py @@ -25,6 +25,7 @@ from jax.scipy.optimize import minimize import brainpy.version2.math as bm +from brainpy._errors import AnalyzerError, UnsupportedError from brainpy.version2 import optim, losses from brainpy.version2.analysis import utils, base, constants from brainpy.version2.context import share @@ -32,7 +33,6 @@ from brainpy.version2.dynsys import DynamicalSystem from brainpy.version2.helpers import clear_input from brainpy.version2.runners import check_and_format_inputs, _f_ops -from brainpy._errors import AnalyzerError, UnsupportedError from brainpy.version2.types import ArrayType __all__ = [ diff --git a/brainpy/version2/analysis/utils/model.py b/brainpy/version2/analysis/utils/model.py index dd8fde365..c8b430eff 100644 --- a/brainpy/version2/analysis/utils/model.py +++ b/brainpy/version2/analysis/utils/model.py @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== +from brainpy._errors import AnalyzerError, UnsupportedError from brainpy.version2.context import share from brainpy.version2.dynsys import DynamicalSystem from brainpy.version2.integrators.base import Integrator @@ -23,7 +24,6 @@ from brainpy.version2.math.interoperability import as_jax from brainpy.version2.math.object_transform import Variable from brainpy.version2.runners import DSRunner -from brainpy._errors import AnalyzerError, UnsupportedError __all__ = [ 'model_transform', diff --git a/brainpy/version2/analysis/utils/optimization.py b/brainpy/version2/analysis/utils/optimization.py index 026702655..be03e0a3a 100644 --- a/brainpy/version2/analysis/utils/optimization.py +++ b/brainpy/version2/analysis/utils/optimization.py @@ -16,6 +16,7 @@ import jax.lax import jax.numpy as jnp import numpy as np +import scipy.optimize as soptimize from jax import grad, jit, vmap from jax.flatten_util import ravel_pytree @@ -23,8 +24,6 @@ from brainpy import _errors as errors from . import f_without_jaxarray_return -import scipy.optimize as soptimize - __all__ = [ 'ECONVERGED', 'ECONVERR', diff --git a/brainpy/version2/check.py b/brainpy/version2/check.py index b36cc65b4..d3b39f028 100644 --- a/brainpy/version2/check.py +++ b/brainpy/version2/check.py @@ -13,7 +13,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -from brainpy.version2.deprecations import deprecation_getattr2 from functools import wraps, partial from typing import Union, Sequence, Dict, Callable, Tuple, Type, Optional, Any diff --git a/brainpy/version2/checkpoints.py b/brainpy/version2/checkpoints.py index ae083581d..fcf8a79c0 100644 --- a/brainpy/version2/checkpoints.py +++ b/brainpy/version2/checkpoints.py @@ -14,12 +14,12 @@ # ============================================================================== from typing import Dict, Any, Optional +import braintools import jax +from braintools.file import msgpack_register_serialization, AsyncManager -import braintools from brainpy.version2.math.ndarray import Array from brainpy.version2.types import PyTree -from braintools.file import msgpack_register_serialization, AsyncManager __all__ = [ 'save_pytree', 'load_pytree', 'AsyncManager', diff --git a/brainpy/version2/connect/base.py b/brainpy/version2/connect/base.py index de33be0e9..e14859cdf 100644 --- a/brainpy/version2/connect/base.py +++ b/brainpy/version2/connect/base.py @@ -20,8 +20,8 @@ import jax.numpy as jnp import numpy as onp -from brainpy.version2 import tools, math as bm from brainpy._errors import ConnectorError +from brainpy.version2 import tools, math as bm __all__ = [ # the connection types diff --git a/brainpy/version2/connect/custom_conn.py b/brainpy/version2/connect/custom_conn.py index 731fd0769..69b47e35f 100644 --- a/brainpy/version2/connect/custom_conn.py +++ b/brainpy/version2/connect/custom_conn.py @@ -17,8 +17,8 @@ import jax.numpy as jnp import numpy as np -from brainpy.version2 import math as bm, tools from brainpy._errors import ConnectorError +from brainpy.version2 import math as bm, tools from .base import * __all__ = [ diff --git a/brainpy/version2/connect/random_conn.py b/brainpy/version2/connect/random_conn.py index b106131f8..3f4d047e4 100644 --- a/brainpy/version2/connect/random_conn.py +++ b/brainpy/version2/connect/random_conn.py @@ -20,9 +20,9 @@ from jax import vmap, jit, numpy as jnp import brainpy.version2.math as bm -from brainpy.version2.tools.package import SUPPORT_NUMBA from brainpy._errors import ConnectorError from brainpy.version2.tools import numba_seed, numba_jit, numba_range, format_seed +from brainpy.version2.tools.package import SUPPORT_NUMBA from .base import * __all__ = [ diff --git a/brainpy/version2/context.py b/brainpy/version2/context.py index 2609726ff..686038f26 100644 --- a/brainpy/version2/context.py +++ b/brainpy/version2/context.py @@ -21,7 +21,6 @@ from typing import Any, Union import brainstate - from brainpy.version2.tools.dicts import DotDict __all__ = [ diff --git a/brainpy/version2/delay.py b/brainpy/version2/delay.py index 6ce2b2ea8..13aaada84 100644 --- a/brainpy/version2/delay.py +++ b/brainpy/version2/delay.py @@ -24,13 +24,13 @@ import jax.numpy as jnp import numpy as np -from brainpy.version2 import check, math as bm +from brainpy.mixin import ParamDesc, ReturnInfo, JointType, SupportAutoDelay +from brainpy.version2 import check, math as bm +from brainpy.version2.check import jit_error from brainpy.version2.context import share from brainpy.version2.dynsys import DynamicalSystem from brainpy.version2.initialize import variable_ from brainpy.version2.math.delayvars import ROTATE_UPDATE, CONCAT_UPDATE -from brainpy.version2.mixin import ParamDesc, ReturnInfo, JointType, SupportAutoDelay -from brainpy.version2.check import jit_error __all__ = [ 'Delay', diff --git a/brainpy/version2/dnn/__init__.py b/brainpy/version2/dnn/__init__.py index 7c5efe83f..750742574 100644 --- a/brainpy/version2/dnn/__init__.py +++ b/brainpy/version2/dnn/__init__.py @@ -22,5 +22,4 @@ from .linear import * from .normalization import * from .pooling import * -from brainpy.version2.dyn.rates.nvar import NVAR diff --git a/brainpy/version2/dnn/linear.py b/brainpy/version2/dnn/linear.py index 9fa133bf7..799066668 100644 --- a/brainpy/version2/dnn/linear.py +++ b/brainpy/version2/dnn/linear.py @@ -13,22 +13,23 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -import jax -import jax.numpy as jnp import numbers -import numpy as np from typing import Dict, Optional, Union, Callable +import jax +import jax.numpy as jnp +import numpy as np from brainevent._csr_impl_plasticity import csr_on_pre, csr2csc_on_post from brainevent._dense_impl_plasticity import dense_on_pre, dense_on_post -from brainpy.version2 import math as bm + +from brainpy._errors import MathError +from brainpy.mixin import SupportOnline, SupportOffline, SupportSTDP from brainpy.version2 import connect, initialize as init -from brainpy.version2.context import share -from brainpy.version2.dnn.base import Layer -from brainpy.version2.mixin import SupportOnline, SupportOffline, SupportSTDP +from brainpy.version2 import math as bm from brainpy.version2.check import is_initializer from brainpy.version2.connect import csr2csc -from brainpy._errors import MathError +from brainpy.version2.context import share +from brainpy.version2.dnn.base import Layer from brainpy.version2.initialize import XavierNormal, ZeroInit, Initializer, parameter from brainpy.version2.types import ArrayType, Sharding diff --git a/brainpy/version2/dyn/__init__.py b/brainpy/version2/dyn/__init__.py index e0a294dbd..7520da025 100644 --- a/brainpy/version2/dyn/__init__.py +++ b/brainpy/version2/dyn/__init__.py @@ -12,7 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -from .projections.plasticity import STDP_Song2000 from .base import * from .channels import * from .ions import * @@ -20,6 +19,8 @@ from .others import * from .outs import * from .projections import * +from .projections.plasticity import STDP_Song2000 from .rates import * from .synapses import * + NeuGroup = NeuDyn diff --git a/brainpy/version2/dyn/base.py b/brainpy/version2/dyn/base.py index 86901db12..4f7f26e6a 100644 --- a/brainpy/version2/dyn/base.py +++ b/brainpy/version2/dyn/base.py @@ -13,8 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== +from brainpy.mixin import SupportAutoDelay, ParamDesc from brainpy.version2.dynsys import Dynamic -from brainpy.version2.mixin import SupportAutoDelay, ParamDesc __all__ = [ 'NeuDyn', 'SynDyn', 'IonChaDyn', diff --git a/brainpy/version2/dyn/channels/base.py b/brainpy/version2/dyn/channels/base.py index 7a7d6ef92..6c971e486 100644 --- a/brainpy/version2/dyn/channels/base.py +++ b/brainpy/version2/dyn/channels/base.py @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== +from brainpy.mixin import TreeNode from brainpy.version2.dyn.base import IonChaDyn from brainpy.version2.dyn.neurons.hh import HHTypedNeuron -from brainpy.version2.mixin import TreeNode __all__ = [ 'IonChannel', diff --git a/brainpy/version2/dyn/channels/potassium_calcium.py b/brainpy/version2/dyn/channels/potassium_calcium.py index 460708cb7..308dfccf2 100644 --- a/brainpy/version2/dyn/channels/potassium_calcium.py +++ b/brainpy/version2/dyn/channels/potassium_calcium.py @@ -20,12 +20,12 @@ from typing import Union, Callable, Optional import brainpy.version2.math as bm +from brainpy.mixin import JointType from brainpy.version2.context import share from brainpy.version2.dyn.ions.calcium import Calcium from brainpy.version2.dyn.ions.potassium import Potassium from brainpy.version2.initialize import Initializer, parameter, variable from brainpy.version2.integrators.ode.generic import odeint -from brainpy.version2.mixin import JointType from brainpy.version2.types import Shape, ArrayType from .calcium import CalciumChannel from .potassium import PotassiumChannel diff --git a/brainpy/version2/dyn/ions/base.py b/brainpy/version2/dyn/ions/base.py index 240df75a9..634e78b16 100644 --- a/brainpy/version2/dyn/ions/base.py +++ b/brainpy/version2/dyn/ions/base.py @@ -15,13 +15,12 @@ # ============================================================================== from typing import Union, Optional, Dict, Sequence, Callable -from brainstate.mixin import _JointGenericAlias - import brainpy.version2.math as bm +from brainpy.mixin import Container, TreeNode from brainpy.version2.dyn.base import IonChaDyn from brainpy.version2.dyn.neurons.hh import HHTypedNeuron -from brainpy.version2.mixin import Container, TreeNode from brainpy.version2.types import Shape +from brainstate.mixin import _JointGenericAlias __all__ = [ 'MixIons', @@ -90,7 +89,7 @@ def reset_state(self, V, batch_size=None): node.reset_state(V, *infos, batch_size) def check_hierarchy(self, roots, leaf): - # 'master_type' should be a brainpy.version2.mixin.JointType + # 'master_type' should be a brainpy.mixin.JointType self._check_master_type(leaf) for cls in leaf.master_type.__args__: if not any([issubclass(root, cls) for root in roots]): @@ -130,7 +129,7 @@ def _get_imp(self, cls): def _check_master_type(self, leaf): if not isinstance(leaf.master_type, _JointGenericAlias): raise TypeError(f'{self.__class__.__name__} requires leaf nodes that have the master_type of ' - f'"brainpy.version2.mixin.JointType". However, we got {leaf.master_type}') + f'"brainpy.mixin.JointType". However, we got {leaf.master_type}') def mix_ions(*ions) -> MixIons: diff --git a/brainpy/version2/dyn/neurons/__init__.py b/brainpy/version2/dyn/neurons/__init__.py index 0161a1461..8b6ee2a05 100644 --- a/brainpy/version2/dyn/neurons/__init__.py +++ b/brainpy/version2/dyn/neurons/__init__.py @@ -12,6 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -from .lif import * -from .hh import * from .base import * +from .hh import * +from .lif import * diff --git a/brainpy/version2/dyn/neurons/base.py b/brainpy/version2/dyn/neurons/base.py index 23e37a86c..7a36ee7f8 100644 --- a/brainpy/version2/dyn/neurons/base.py +++ b/brainpy/version2/dyn/neurons/base.py @@ -15,9 +15,9 @@ from typing import Sequence, Union, Callable, Any, Optional import brainpy.version2.math as bm +from brainpy.version2.check import is_callable from brainpy.version2.dyn._docs import pneu_doc, dpneu_doc from brainpy.version2.dyn.base import NeuDyn -from brainpy.version2.check import is_callable __all__ = ['GradNeuDyn'] diff --git a/brainpy/version2/dyn/neurons/hh.py b/brainpy/version2/dyn/neurons/hh.py index 05759e95c..6c80eec42 100644 --- a/brainpy/version2/dyn/neurons/hh.py +++ b/brainpy/version2/dyn/neurons/hh.py @@ -17,15 +17,15 @@ from typing import Union, Callable, Optional import brainpy.version2.math as bm +from brainpy.mixin import Container, TreeNode +from brainpy.version2.check import is_initializer from brainpy.version2.context import share from brainpy.version2.dyn.base import NeuDyn, IonChaDyn from brainpy.version2.initialize import OneInit from brainpy.version2.initialize import Uniform, variable_, noise as init_noise from brainpy.version2.integrators import JointEq from brainpy.version2.integrators import odeint, sdeint -from brainpy.version2.mixin import Container, TreeNode from brainpy.version2.types import ArrayType -from brainpy.version2.check import is_initializer from brainpy.version2.types import Shape __all__ = [ diff --git a/brainpy/version2/dyn/neurons/lif.py b/brainpy/version2/dyn/neurons/lif.py index 2b399e84a..8c6f321e6 100644 --- a/brainpy/version2/dyn/neurons/lif.py +++ b/brainpy/version2/dyn/neurons/lif.py @@ -18,12 +18,12 @@ from jax.lax import stop_gradient import brainpy.version2.math as bm +from brainpy.version2.check import is_initializer from brainpy.version2.context import share from brainpy.version2.dyn._docs import ref_doc, lif_doc, pneu_doc, dpneu_doc, ltc_doc, if_doc from brainpy.version2.dyn.neurons.base import GradNeuDyn from brainpy.version2.initialize import ZeroInit, OneInit, noise as init_noise from brainpy.version2.integrators import odeint, sdeint, JointEq -from brainpy.version2.check import is_initializer from brainpy.version2.types import Shape, ArrayType, Sharding __all__ = [ diff --git a/brainpy/version2/dyn/others/common.py b/brainpy/version2/dyn/others/common.py index 9ee500ca6..271f01bfc 100644 --- a/brainpy/version2/dyn/others/common.py +++ b/brainpy/version2/dyn/others/common.py @@ -17,11 +17,11 @@ import brainpy.version2.math as bm from brainpy.version2 import initialize as init from brainpy.version2 import tools +from brainpy.version2.check import is_initializer from brainpy.version2.context import share from brainpy.version2.dyn._docs import pneu_doc from brainpy.version2.dyn.base import NeuDyn from brainpy.version2.integrators import odeint -from brainpy.version2.check import is_initializer from brainpy.version2.types import ArrayType __all__ = [ diff --git a/brainpy/version2/dyn/others/input.py b/brainpy/version2/dyn/others/input.py index 13985008d..13439b41e 100644 --- a/brainpy/version2/dyn/others/input.py +++ b/brainpy/version2/dyn/others/input.py @@ -13,19 +13,18 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -import warnings from functools import partial from typing import Union, Sequence, Any, Optional, Callable import jax import jax.numpy as jnp +from brainpy.mixin import ReturnInfo from brainpy.version2 import math as bm from brainpy.version2.context import share from brainpy.version2.dyn.base import NeuDyn from brainpy.version2.dyn.utils import get_spk_type from brainpy.version2.initialize import parameter, variable_ -from brainpy.version2.mixin import ReturnInfo from brainpy.version2.types import Shape, ArrayType __all__ = [ diff --git a/brainpy/version2/dyn/outs/base.py b/brainpy/version2/dyn/outs/base.py index 6fea0881f..0135d2684 100644 --- a/brainpy/version2/dyn/outs/base.py +++ b/brainpy/version2/dyn/outs/base.py @@ -15,8 +15,8 @@ from typing import Optional import brainpy.version2.math as bm +from brainpy.mixin import ParamDesc, BindCondData from brainpy.version2.dynsys import DynamicalSystem -from brainpy.version2.mixin import ParamDesc, BindCondData __all__ = [ 'SynOut' diff --git a/brainpy/version2/dyn/projections/align_post.py b/brainpy/version2/dyn/projections/align_post.py index 96b60fece..8e85643db 100644 --- a/brainpy/version2/dyn/projections/align_post.py +++ b/brainpy/version2/dyn/projections/align_post.py @@ -14,11 +14,11 @@ # ============================================================================== from typing import Optional, Callable, Union +from brainpy.mixin import (JointType, ParamDescriber, SupportAutoDelay, BindCondData, AlignPost) from brainpy.version2 import math as bm, check from brainpy.version2.delay import (delay_identifier, - register_delay_by_return) + register_delay_by_return) from brainpy.version2.dynsys import DynamicalSystem, Projection -from brainpy.version2.mixin import (JointType, ParamDescriber, SupportAutoDelay, BindCondData, AlignPost) __all__ = [ 'HalfProjAlignPostMg', 'FullProjAlignPostMg', diff --git a/brainpy/version2/dyn/projections/align_pre.py b/brainpy/version2/dyn/projections/align_pre.py index 28231e4b0..63a66dfda 100644 --- a/brainpy/version2/dyn/projections/align_pre.py +++ b/brainpy/version2/dyn/projections/align_pre.py @@ -14,10 +14,10 @@ # ============================================================================== from typing import Optional, Union +from brainpy.mixin import (JointType, ParamDescriber, SupportAutoDelay, BindCondData) from brainpy.version2 import math as bm, check from brainpy.version2.delay import (Delay, DelayAccess, init_delay_by_return, register_delay_by_return) from brainpy.version2.dynsys import DynamicalSystem, Projection -from brainpy.version2.mixin import (JointType, ParamDescriber, SupportAutoDelay, BindCondData) from .utils import _get_return __all__ = [ diff --git a/brainpy/version2/dyn/projections/base.py b/brainpy/version2/dyn/projections/base.py index 31dc64882..0bb131049 100644 --- a/brainpy/version2/dyn/projections/base.py +++ b/brainpy/version2/dyn/projections/base.py @@ -12,8 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== +from brainpy.mixin import ReturnInfo from brainpy.version2 import math as bm -from brainpy.version2.mixin import ReturnInfo def _get_return(return_info): diff --git a/brainpy/version2/dyn/projections/delta.py b/brainpy/version2/dyn/projections/delta.py index 270141f58..a1bb4ef70 100644 --- a/brainpy/version2/dyn/projections/delta.py +++ b/brainpy/version2/dyn/projections/delta.py @@ -14,10 +14,10 @@ # ============================================================================== from typing import Optional, Union +from brainpy.mixin import (JointType, SupportAutoDelay) from brainpy.version2 import math as bm, check from brainpy.version2.delay import (delay_identifier, register_delay_by_return) from brainpy.version2.dynsys import DynamicalSystem, Projection -from brainpy.version2.mixin import (JointType, SupportAutoDelay) __all__ = [ 'HalfProjDelta', 'FullProjDelta', diff --git a/brainpy/version2/dyn/projections/inputs.py b/brainpy/version2/dyn/projections/inputs.py index 18b59e08b..db6f4badc 100644 --- a/brainpy/version2/dyn/projections/inputs.py +++ b/brainpy/version2/dyn/projections/inputs.py @@ -16,11 +16,11 @@ from typing import Any from typing import Union, Optional +from brainpy.mixin import SupportAutoDelay from brainpy.version2 import check, math as bm from brainpy.version2.context import share from brainpy.version2.dynsys import Dynamic from brainpy.version2.dynsys import Projection -from brainpy.version2.mixin import SupportAutoDelay from brainpy.version2.types import Shape __all__ = [ diff --git a/brainpy/version2/dyn/projections/plasticity.py b/brainpy/version2/dyn/projections/plasticity.py index a267d66df..444690678 100644 --- a/brainpy/version2/dyn/projections/plasticity.py +++ b/brainpy/version2/dyn/projections/plasticity.py @@ -14,12 +14,12 @@ # ============================================================================== from typing import Optional, Callable, Union +from brainpy.mixin import (JointType, ParamDescriber, SupportAutoDelay, + BindCondData, AlignPost, SupportSTDP) from brainpy.version2 import math as bm, check from brainpy.version2.delay import register_delay_by_return from brainpy.version2.dyn.synapses.abstract_models import Expon from brainpy.version2.dynsys import DynamicalSystem, Projection -from brainpy.version2.mixin import (JointType, ParamDescriber, SupportAutoDelay, - BindCondData, AlignPost, SupportSTDP) from brainpy.version2.types import ArrayType from .align_post import (align_post_add_bef_update, ) from .align_pre import (align_pre2_add_bef_update, ) diff --git a/brainpy/version2/dyn/projections/utils.py b/brainpy/version2/dyn/projections/utils.py index 31dc64882..0bb131049 100644 --- a/brainpy/version2/dyn/projections/utils.py +++ b/brainpy/version2/dyn/projections/utils.py @@ -12,8 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== +from brainpy.mixin import ReturnInfo from brainpy.version2 import math as bm -from brainpy.version2.mixin import ReturnInfo def _get_return(return_info): diff --git a/brainpy/version2/dyn/projections/vanilla.py b/brainpy/version2/dyn/projections/vanilla.py index 1722a6eaa..0f7f95c38 100644 --- a/brainpy/version2/dyn/projections/vanilla.py +++ b/brainpy/version2/dyn/projections/vanilla.py @@ -14,9 +14,9 @@ # ============================================================================== from typing import Optional +from brainpy.mixin import (JointType, BindCondData) from brainpy.version2 import math as bm, check from brainpy.version2.dynsys import DynamicalSystem, Projection -from brainpy.version2.mixin import (JointType, BindCondData) __all__ = [ 'VanillaProj', diff --git a/brainpy/version2/dyn/rates/populations.py b/brainpy/version2/dyn/rates/populations.py index e82f7a974..925a76d65 100644 --- a/brainpy/version2/dyn/rates/populations.py +++ b/brainpy/version2/dyn/rates/populations.py @@ -18,18 +18,18 @@ import jax from brainpy.version2 import math as bm +from brainpy.version2.check import is_initializer from brainpy.version2.context import share from brainpy.version2.dyn.base import NeuDyn from brainpy.version2.dyn.others.noise import OUProcess from brainpy.version2.initialize import (Initializer, - Uniform, - parameter, - variable, - variable_, - ZeroInit) + Uniform, + parameter, + variable, + variable_, + ZeroInit) from brainpy.version2.integrators.joint_eq import JointEq from brainpy.version2.integrators.ode.generic import odeint -from brainpy.version2.check import is_initializer from brainpy.version2.types import Shape, ArrayType __all__ = [ diff --git a/brainpy/version2/dyn/rates/rnncells.py b/brainpy/version2/dyn/rates/rnncells.py index a647dbd6b..2f816ff89 100644 --- a/brainpy/version2/dyn/rates/rnncells.py +++ b/brainpy/version2/dyn/rates/rnncells.py @@ -18,17 +18,17 @@ import jax.numpy as jnp import brainpy.version2.math as bm +from brainpy.version2.check import (is_integer, + is_initializer) from brainpy.version2.dnn.base import Layer from brainpy.version2.dnn.conv import _GeneralConv -from brainpy.version2.check import (is_integer, - is_initializer) from brainpy.version2.initialize import (XavierNormal, - ZeroInit, - Orthogonal, - parameter, - variable, - variable_, - Initializer) + ZeroInit, + Orthogonal, + parameter, + variable, + variable_, + Initializer) from brainpy.version2.math import activations from brainpy.version2.types import ArrayType diff --git a/brainpy/version2/dyn/synapses/abstract_models.py b/brainpy/version2/dyn/synapses/abstract_models.py index f89ba40ef..7acca25b8 100644 --- a/brainpy/version2/dyn/synapses/abstract_models.py +++ b/brainpy/version2/dyn/synapses/abstract_models.py @@ -14,6 +14,7 @@ # ============================================================================== from typing import Union, Sequence, Callable, Optional +from brainpy.mixin import AlignPost, ReturnInfo from brainpy.version2 import math as bm from brainpy.version2.context import share from brainpy.version2.dyn import _docs @@ -21,7 +22,6 @@ from brainpy.version2.initialize import parameter from brainpy.version2.integrators.joint_eq import JointEq from brainpy.version2.integrators.ode.generic import odeint -from brainpy.version2.mixin import AlignPost, ReturnInfo from brainpy.version2.types import ArrayType __all__ = [ diff --git a/brainpy/version2/dyn/synapses/delay_couplings.py b/brainpy/version2/dyn/synapses/delay_couplings.py index 0b229e732..707ec0560 100644 --- a/brainpy/version2/dyn/synapses/delay_couplings.py +++ b/brainpy/version2/dyn/synapses/delay_couplings.py @@ -20,9 +20,9 @@ from jax import vmap import brainpy.version2.math as bm +from brainpy.version2.check import is_sequence from brainpy.version2.dynsys import Projection from brainpy.version2.initialize import Initializer -from brainpy.version2.check import is_sequence from brainpy.version2.types import ArrayType __all__ = [ diff --git a/brainpy/version2/dynold/experimental/abstract_synapses.py b/brainpy/version2/dynold/experimental/abstract_synapses.py index eb4694c0d..749c8dbb2 100644 --- a/brainpy/version2/dynold/experimental/abstract_synapses.py +++ b/brainpy/version2/dynold/experimental/abstract_synapses.py @@ -18,12 +18,12 @@ from jax import vmap import brainpy.version2.math as bm +from brainpy.version2.check import is_float from brainpy.version2.connect import TwoEndConnector, All2All, One2One from brainpy.version2.context import share from brainpy.version2.dynold.experimental.base import SynConnNS, SynOutNS, SynSTPNS from brainpy.version2.initialize import Initializer, variable_ from brainpy.version2.integrators import odeint, JointEq -from brainpy.version2.check import is_float from brainpy.version2.types import ArrayType diff --git a/brainpy/version2/dynold/experimental/others.py b/brainpy/version2/dynold/experimental/others.py index b46c3a94d..be78b70b4 100644 --- a/brainpy/version2/dynold/experimental/others.py +++ b/brainpy/version2/dynold/experimental/others.py @@ -15,9 +15,9 @@ from typing import Union, Optional import brainpy.version2.math as bm +from brainpy.version2.check import is_float, is_integer from brainpy.version2.context import share from brainpy.version2.dynsys import DynamicalSystem -from brainpy.version2.check import is_float, is_integer class PoissonInput(DynamicalSystem): diff --git a/brainpy/version2/dynold/neurons/biological_models.py b/brainpy/version2/dynold/neurons/biological_models.py index 51098fd91..9e33b8500 100644 --- a/brainpy/version2/dynold/neurons/biological_models.py +++ b/brainpy/version2/dynold/neurons/biological_models.py @@ -21,10 +21,10 @@ from brainpy.version2.dyn.base import NeuDyn from brainpy.version2.dyn.neurons import hh from brainpy.version2.initialize import (OneInit, - Initializer, - parameter, - noise as init_noise, - variable_) + Initializer, + parameter, + noise as init_noise, + variable_) from brainpy.version2.integrators.joint_eq import JointEq from brainpy.version2.integrators.ode.generic import odeint from brainpy.version2.integrators.sde.generic import sdeint diff --git a/brainpy/version2/dynold/neurons/fractional_models.py b/brainpy/version2/dynold/neurons/fractional_models.py index 45ed4204f..1c013d889 100644 --- a/brainpy/version2/dynold/neurons/fractional_models.py +++ b/brainpy/version2/dynold/neurons/fractional_models.py @@ -18,13 +18,13 @@ import jax.numpy as jnp import brainpy.version2.math as bm +from brainpy.version2.check import is_float, is_integer, is_initializer from brainpy.version2.context import share from brainpy.version2.dyn.base import NeuDyn from brainpy.version2.initialize import ZeroInit, OneInit, Initializer, parameter from brainpy.version2.integrators.fde import CaputoL1Schema from brainpy.version2.integrators.fde import GLShortMemory from brainpy.version2.integrators.joint_eq import JointEq -from brainpy.version2.check import is_float, is_integer, is_initializer from brainpy.version2.types import Shape, ArrayType __all__ = [ diff --git a/brainpy/version2/dynold/neurons/reduced_models.py b/brainpy/version2/dynold/neurons/reduced_models.py index 8e1b461bb..2de426d48 100644 --- a/brainpy/version2/dynold/neurons/reduced_models.py +++ b/brainpy/version2/dynold/neurons/reduced_models.py @@ -18,17 +18,17 @@ from jax.lax import stop_gradient import brainpy.version2.math as bm +from brainpy.version2.check import is_initializer, is_callable, is_subclass from brainpy.version2.context import share from brainpy.version2.dyn.base import NeuDyn from brainpy.version2.dyn.neurons import lif from brainpy.version2.initialize import (ZeroInit, - OneInit, - Initializer, - parameter, - variable_, - noise as init_noise) + OneInit, + Initializer, + parameter, + variable_, + noise as init_noise) from brainpy.version2.integrators import sdeint, odeint, JointEq -from brainpy.version2.check import is_initializer, is_callable, is_subclass from brainpy.version2.types import Shape, ArrayType __all__ = [ diff --git a/brainpy/version2/dynold/synapses/base.py b/brainpy/version2/dynold/synapses/base.py index 122ce95de..8da0a2d7b 100644 --- a/brainpy/version2/dynold/synapses/base.py +++ b/brainpy/version2/dynold/synapses/base.py @@ -17,6 +17,8 @@ import jax +from brainpy._errors import UnsupportedError +from brainpy.mixin import (ParamDesc, JointType, SupportAutoDelay, BindCondData, ReturnInfo) from brainpy.version2 import math as bm from brainpy.version2.connect import TwoEndConnector, One2One, All2All from brainpy.version2.dnn import linear @@ -24,8 +26,6 @@ from brainpy.version2.dyn.projections.conn import SynConn from brainpy.version2.dynsys import DynamicalSystem from brainpy.version2.initialize import parameter -from brainpy.version2.mixin import (ParamDesc, JointType, SupportAutoDelay, BindCondData, ReturnInfo) -from brainpy._errors import UnsupportedError from brainpy.version2.types import ArrayType __all__ = [ diff --git a/brainpy/version2/dynold/synapses/learning_rules.py b/brainpy/version2/dynold/synapses/learning_rules.py index 375eabf83..9b8adbdf5 100644 --- a/brainpy/version2/dynold/synapses/learning_rules.py +++ b/brainpy/version2/dynold/synapses/learning_rules.py @@ -15,6 +15,7 @@ # ============================================================================== from typing import Union, Dict, Callable, Optional +from brainpy.mixin import ParamDesc from brainpy.version2.connect import TwoEndConnector from brainpy.version2.dyn import synapses from brainpy.version2.dyn.base import NeuDyn @@ -22,7 +23,6 @@ from brainpy.version2.dynold.synouts import CUBA from brainpy.version2.dynsys import Sequential from brainpy.version2.initialize import Initializer -from brainpy.version2.mixin import ParamDesc from brainpy.version2.types import ArrayType __all__ = [ diff --git a/brainpy/version2/dynold/synplast/short_term_plasticity.py b/brainpy/version2/dynold/synplast/short_term_plasticity.py index 7a325a899..681ec3a45 100644 --- a/brainpy/version2/dynold/synplast/short_term_plasticity.py +++ b/brainpy/version2/dynold/synplast/short_term_plasticity.py @@ -17,11 +17,11 @@ import jax.numpy as jnp +from brainpy.version2.check import is_float from brainpy.version2.context import share from brainpy.version2.dynold.synapses.base import _SynSTP from brainpy.version2.initialize import variable from brainpy.version2.integrators import odeint, JointEq -from brainpy.version2.check import is_float from brainpy.version2.types import ArrayType __all__ = [ diff --git a/brainpy/version2/dynsys.py b/brainpy/version2/dynsys.py index 759dcd482..7b233516b 100644 --- a/brainpy/version2/dynsys.py +++ b/brainpy/version2/dynsys.py @@ -23,12 +23,12 @@ import numpy as np from brainpy._errors import NoImplementationError, UnsupportedError +from brainpy.mixin import SupportAutoDelay, Container, SupportInputProj, _get_delay_tool, MixIn from brainpy.version2 import tools, math as bm from brainpy.version2.context import share from brainpy.version2.deprecations import _update_deprecate_msg from brainpy.version2.initialize import parameter, variable_ from brainpy.version2.math.object_transform.naming import get_unique_name -from brainpy.version2.mixin import SupportAutoDelay, Container, SupportInputProj, _get_delay_tool, MixIn from brainpy.version2.types import ArrayType, Shape __all__ = [ diff --git a/brainpy/version2/experimental.py b/brainpy/version2/experimental.py index a9068518e..0f552124c 100644 --- a/brainpy/version2/experimental.py +++ b/brainpy/version2/experimental.py @@ -12,14 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -from brainpy.version2.dynold.experimental.syn_plasticity import ( - STD as STD, - STP as STP, -) -from brainpy.version2.dynold.experimental.syn_outs import ( - CUBA as CUBA, - COBA as COBA, -) from brainpy.version2.dynold.experimental.abstract_synapses import ( Exponential, DualExponential, @@ -28,7 +20,14 @@ from brainpy.version2.dynold.experimental.others import ( PoissonInput, ) - +from brainpy.version2.dynold.experimental.syn_outs import ( + CUBA as CUBA, + COBA as COBA, +) +from brainpy.version2.dynold.experimental.syn_plasticity import ( + STD as STD, + STP as STP, +) if __name__ == '__main__': STD diff --git a/brainpy/version2/initialize/random_inits.py b/brainpy/version2/initialize/random_inits.py index ceef5b5d1..975207c8a 100644 --- a/brainpy/version2/initialize/random_inits.py +++ b/brainpy/version2/initialize/random_inits.py @@ -18,8 +18,8 @@ import jax.numpy as jnp import numpy as np -from brainpy.version2 import tools from brainpy.version2 import math as bm +from brainpy.version2 import tools from .base import _InterLayerInitializer __all__ = [ diff --git a/brainpy/version2/inputs/currents.py b/brainpy/version2/inputs/currents.py index b556a8583..dbc554397 100644 --- a/brainpy/version2/inputs/currents.py +++ b/brainpy/version2/inputs/currents.py @@ -16,6 +16,7 @@ import warnings import braintools + import brainstate __all__ = [ diff --git a/brainpy/version2/integrators/base.py b/brainpy/version2/integrators/base.py index c4d06039c..4d30b43d2 100644 --- a/brainpy/version2/integrators/base.py +++ b/brainpy/version2/integrators/base.py @@ -18,10 +18,10 @@ import jax +from brainpy._errors import DiffEqError +from brainpy.version2.check import is_float, is_dict_data from brainpy.version2.math import TimeDelay, LengthDelay from brainpy.version2.math.object_transform.base import BrainPyObject -from brainpy.version2.check import is_float, is_dict_data -from brainpy._errors import DiffEqError from ._jaxpr_to_source_code import jaxpr_to_python_code from .constants import DT diff --git a/brainpy/version2/integrators/fde/Caputo.py b/brainpy/version2/integrators/fde/Caputo.py index 845c505e7..312d7936b 100644 --- a/brainpy/version2/integrators/fde/Caputo.py +++ b/brainpy/version2/integrators/fde/Caputo.py @@ -24,10 +24,10 @@ from scipy.special import gamma, rgamma import brainpy.version2.math as bm +from brainpy._errors import UnsupportedError from brainpy.version2 import check from brainpy.version2.integrators.constants import DT from brainpy.version2.integrators.utils import check_inits, format_args -from brainpy._errors import UnsupportedError from brainpy.version2.types import ArrayType from .base import FDEIntegrator from .generic import register_fde_integrator diff --git a/brainpy/version2/integrators/fde/GL.py b/brainpy/version2/integrators/fde/GL.py index ac169e910..cdd9872bc 100644 --- a/brainpy/version2/integrators/fde/GL.py +++ b/brainpy/version2/integrators/fde/GL.py @@ -22,9 +22,9 @@ import jax import brainpy.version2.math as bm +from brainpy._errors import UnsupportedError from brainpy.version2.integrators.constants import DT from brainpy.version2.integrators.utils import check_inits, format_args -from brainpy._errors import UnsupportedError from .base import FDEIntegrator from .generic import register_fde_integrator diff --git a/brainpy/version2/integrators/fde/base.py b/brainpy/version2/integrators/fde/base.py index e08e84819..6e438c0c8 100644 --- a/brainpy/version2/integrators/fde/base.py +++ b/brainpy/version2/integrators/fde/base.py @@ -18,10 +18,10 @@ import jax.numpy as jnp import brainpy.version2.math as bm +from brainpy._errors import UnsupportedError +from brainpy.version2.check import is_integer from brainpy.version2.integrators.base import Integrator from brainpy.version2.integrators.utils import get_args -from brainpy.version2.check import is_integer -from brainpy._errors import UnsupportedError __all__ = [ 'FDEIntegrator' diff --git a/brainpy/version2/integrators/ode/adaptive_rk.py b/brainpy/version2/integrators/ode/adaptive_rk.py index 5ebaff552..abca8110c 100644 --- a/brainpy/version2/integrators/ode/adaptive_rk.py +++ b/brainpy/version2/integrators/ode/adaptive_rk.py @@ -67,7 +67,6 @@ import jax.numpy as jnp -from brainpy import _errors from brainpy.version2.integrators import constants as C, utils from brainpy.version2.integrators.ode import common from brainpy.version2.integrators.ode.base import ODEIntegrator diff --git a/brainpy/version2/integrators/ode/base.py b/brainpy/version2/integrators/ode/base.py index 91a719535..b68a5aab6 100644 --- a/brainpy/version2/integrators/ode/base.py +++ b/brainpy/version2/integrators/ode/base.py @@ -15,12 +15,12 @@ # ============================================================================== from typing import Dict, Callable, Union +from brainpy._errors import DiffEqError, CodeError from brainpy.version2 import math as bm +from brainpy.version2.check import is_dict_data from brainpy.version2.integrators import constants, utils from brainpy.version2.integrators.base import Integrator from brainpy.version2.integrators.constants import DT -from brainpy.version2.check import is_dict_data -from brainpy._errors import DiffEqError, CodeError __all__ = [ 'ODEIntegrator', diff --git a/brainpy/version2/integrators/runner.py b/brainpy/version2/integrators/runner.py index 39de107ea..e5ec2b022 100644 --- a/brainpy/version2/integrators/runner.py +++ b/brainpy/version2/integrators/runner.py @@ -24,10 +24,10 @@ import tqdm.auto from jax.tree_util import tree_flatten +from brainpy._errors import RunningError from brainpy.version2 import math as bm from brainpy.version2.math.object_transform.base import Collector from brainpy.version2.running.runner import Runner -from brainpy._errors import RunningError from .base import Integrator __all__ = [ diff --git a/brainpy/version2/integrators/sde/base.py b/brainpy/version2/integrators/sde/base.py index d01e9dd76..9feecaefe 100644 --- a/brainpy/version2/integrators/sde/base.py +++ b/brainpy/version2/integrators/sde/base.py @@ -17,7 +17,6 @@ import jax.numpy as jnp -from brainpy import _errors from brainpy.version2 import math as bm from brainpy.version2.integrators import constants, utils from brainpy.version2.integrators.base import Integrator diff --git a/brainpy/version2/integrators/sde/normal.py b/brainpy/version2/integrators/sde/normal.py index 4b0bbc68f..69c5e4f9f 100644 --- a/brainpy/version2/integrators/sde/normal.py +++ b/brainpy/version2/integrators/sde/normal.py @@ -17,7 +17,6 @@ import jax.numpy as jnp -from brainpy import _errors from brainpy.version2 import math as bm from brainpy.version2.integrators import constants, utils, joint_eq from brainpy.version2.integrators.constants import DT diff --git a/brainpy/version2/integrators/tests/test_joint_eq.py b/brainpy/version2/integrators/tests/test_joint_eq.py index 08461e12e..5fef7c056 100644 --- a/brainpy/version2/integrators/tests/test_joint_eq.py +++ b/brainpy/version2/integrators/tests/test_joint_eq.py @@ -16,8 +16,8 @@ import unittest import brainpy.version2.math as bm -from brainpy.version2.integrators.joint_eq import _get_args, JointEq from brainpy._errors import DiffEqError +from brainpy.version2.integrators.joint_eq import _get_args, JointEq class TestGetArgs(unittest.TestCase): diff --git a/brainpy/version2/math/__init__.py b/brainpy/version2/math/__init__.py index 3ae4c45c2..3f7db0e33 100644 --- a/brainpy/version2/math/__init__.py +++ b/brainpy/version2/math/__init__.py @@ -40,9 +40,10 @@ # the index update is the same way with the numpy # -import brainstate import braintools +import brainstate + random = brainstate.random surrogate = braintools.surrogate import jax.numpy as jnp diff --git a/brainpy/version2/math/activations.py b/brainpy/version2/math/activations.py index 91c1d7333..f10998bed 100644 --- a/brainpy/version2/math/activations.py +++ b/brainpy/version2/math/activations.py @@ -31,8 +31,8 @@ import jax.scipy import numpy as np -from .ndarray import Array from brainstate.random import uniform +from .ndarray import Array __all__ = [ 'celu', diff --git a/brainpy/version2/math/compat_numpy.py b/brainpy/version2/math/compat_numpy.py index 0e0175dfc..0d003d761 100644 --- a/brainpy/version2/math/compat_numpy.py +++ b/brainpy/version2/math/compat_numpy.py @@ -14,8 +14,8 @@ # limitations under the License. # ============================================================================== import jax -import numpy as np import jax.numpy as jnp +import numpy as np from jax.tree_util import tree_flatten, tree_unflatten, tree_map from ._utils import _compatible_with_brainpy_array, _as_jax_array_ diff --git a/brainpy/version2/math/defaults.py b/brainpy/version2/math/defaults.py index 7977f6c5a..ff6cd545b 100644 --- a/brainpy/version2/math/defaults.py +++ b/brainpy/version2/math/defaults.py @@ -12,10 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -import brainstate import jax.numpy as jnp from jax import config +import brainstate from .modes import NonBatchingMode from .scales import IdScaling diff --git a/brainpy/version2/math/delayvars.py b/brainpy/version2/math/delayvars.py index b2933631f..572345a0f 100644 --- a/brainpy/version2/math/delayvars.py +++ b/brainpy/version2/math/delayvars.py @@ -21,9 +21,9 @@ from jax import vmap from jax.lax import stop_gradient +from brainpy._errors import UnsupportedError from brainpy.version2 import check from brainpy.version2.check import is_float, is_integer, jit_error -from brainpy._errors import UnsupportedError from .compat_numpy import broadcast_to, expand_dims, concatenate from .environment import get_dt, get_float from .interoperability import as_jax diff --git a/brainpy/version2/math/jitconn/event_matvec.py b/brainpy/version2/math/jitconn/event_matvec.py index 4e3290bb2..b9216a569 100644 --- a/brainpy/version2/math/jitconn/event_matvec.py +++ b/brainpy/version2/math/jitconn/event_matvec.py @@ -20,8 +20,8 @@ import numpy as np from brainpy.version2.math.jitconn.matvec import (mv_prob_homo, - mv_prob_uniform, - mv_prob_normal) + mv_prob_uniform, + mv_prob_normal) from brainpy.version2.math.ndarray import Array as Array __all__ = [ diff --git a/brainpy/version2/math/modes.py b/brainpy/version2/math/modes.py index 6d0e3f2f4..0aec62f87 100644 --- a/brainpy/version2/math/modes.py +++ b/brainpy/version2/math/modes.py @@ -13,7 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== -from brainpy import mixin + + +import brainstate __all__ = [ 'Mode', @@ -26,7 +28,7 @@ ] -class Mode(mixin.Mode): +class Mode(brainstate.mixin.Mode): """Base class for computation Mode """ diff --git a/brainpy/version2/math/object_transform/autograd.py b/brainpy/version2/math/object_transform/autograd.py index 0f8214bf6..e64cddf31 100644 --- a/brainpy/version2/math/object_transform/autograd.py +++ b/brainpy/version2/math/object_transform/autograd.py @@ -16,9 +16,8 @@ from typing import Union, Callable, Dict, Sequence, Optional import brainstate.transform - -from .variables import Variable from ._utils import warp_to_no_state_input_output +from .variables import Variable __all__ = [ 'grad', # gradient of scalar function diff --git a/brainpy/version2/math/object_transform/collectors.py b/brainpy/version2/math/object_transform/collectors.py index 1020d9f10..43c87081e 100644 --- a/brainpy/version2/math/object_transform/collectors.py +++ b/brainpy/version2/math/object_transform/collectors.py @@ -14,9 +14,9 @@ # ============================================================================== from typing import Sequence, Dict, Union -from brainstate._compatible_import import safe_zip from jax.tree_util import register_pytree_node +from brainstate._compatible_import import safe_zip from .variables import Variable __all__ = [ diff --git a/brainpy/version2/math/pre_syn_post.py b/brainpy/version2/math/pre_syn_post.py index 7cc8aedba..7baacaf1a 100644 --- a/brainpy/version2/math/pre_syn_post.py +++ b/brainpy/version2/math/pre_syn_post.py @@ -16,9 +16,9 @@ import jax.numpy as jnp from jax import vmap, jit, ops as jops +from brainpy._errors import MathError from brainpy.version2.math import event from brainpy.version2.math.interoperability import as_jax -from brainpy._errors import MathError __all__ = [ # pre-to-post diff --git a/brainpy/version2/math/sharding.py b/brainpy/version2/math/sharding.py index 6d66b7646..9be8b7e44 100644 --- a/brainpy/version2/math/sharding.py +++ b/brainpy/version2/math/sharding.py @@ -21,7 +21,7 @@ import numpy as np from jax.sharding import PartitionSpec, Mesh, NamedSharding, Sharding -from .ndarray import Array, ShardedArray, Array +from .ndarray import ShardedArray, Array __all__ = [ 'device_mesh', diff --git a/brainpy/version2/math/surrogate/_utils.py b/brainpy/version2/math/surrogate/_utils.py index dcdcda85a..9431a8410 100644 --- a/brainpy/version2/math/surrogate/_utils.py +++ b/brainpy/version2/math/surrogate/_utils.py @@ -20,9 +20,9 @@ import jax +from brainpy._errors import UnsupportedError from brainpy.version2 import check from brainpy.version2.math.ndarray import Array as Array -from brainpy._errors import UnsupportedError __all__ = [ 'get_default', diff --git a/brainpy/version2/math/tests/test_compat_pytorch.py b/brainpy/version2/math/tests/test_compat_pytorch.py index 999b94f28..92bf73e42 100644 --- a/brainpy/version2/math/tests/test_compat_pytorch.py +++ b/brainpy/version2/math/tests/test_compat_pytorch.py @@ -15,8 +15,8 @@ # ============================================================================== import unittest -import brainpy.version2.math.compat_pytorch as torch import brainpy.version2.math as bm +import brainpy.version2.math.compat_pytorch as torch from brainpy.version2.math import compat_pytorch diff --git a/brainpy/version2/mixin.py b/brainpy/version2/mixin.py deleted file mode 100644 index 6d8efd01d..000000000 --- a/brainpy/version2/mixin.py +++ /dev/null @@ -1,363 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2025 BrainX Ecosystem Limited. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================== -import warnings -from dataclasses import dataclass -from typing import Union, Dict, Callable, Sequence, Optional, Any - -import jax - -import brainstate -from brainpy import mixin -from brainpy.version2 import math as bm, tools -from brainpy.version2.math.object_transform.naming import get_unique_name -from brainpy.version2.types import ArrayType - -delay_identifier, init_delay_by_return = None, None - -__all__ = [ - 'MixIn', - 'ParamDesc', - 'ParamDescriber', - 'AlignPost', - 'Container', - 'TreeNode', - 'BindCondData', - 'JointType', - 'SupportSTDP', - 'SupportAutoDelay', - 'SupportInputProj', - 'SupportOnline', - 'SupportOffline', -] - -MixIn = brainstate.mixin.Mixin -ParamDesc = brainstate.mixin.ParamDesc -ParamDescriber = brainstate.mixin.ParamDescriber -AlignPost = mixin.AlignPost -BindCondData = mixin.BindCondData -JointType = brainstate.mixin.JointTypes - - -def _get_delay_tool(): - global delay_identifier, init_delay_by_return - if init_delay_by_return is None: from brainpy.version2.delay import init_delay_by_return - if delay_identifier is None: from brainpy.version2.delay import delay_identifier - return delay_identifier, init_delay_by_return - - -@dataclass -class ReturnInfo: - size: Sequence[int] - axis_names: Optional[Sequence[str]] = None - batch_or_mode: Optional[Union[int, bm.Mode]] = None - data: Union[Callable, bm.Array, jax.Array] = bm.zeros - - def get_data(self): - if isinstance(self.data, Callable): - if isinstance(self.batch_or_mode, int): - size = (self.batch_or_mode,) + tuple(self.size) - elif isinstance(self.batch_or_mode, bm.NonBatchingMode): - size = tuple(self.size) - elif isinstance(self.batch_or_mode, bm.BatchingMode): - size = (self.batch_or_mode.batch_size,) + tuple(self.size) - else: - size = tuple(self.size) - init = self.data(size) - elif isinstance(self.data, (bm.Array, jax.Array)): - init = self.data - else: - raise ValueError - return init - - -class Container(MixIn): - """Container :py:class:`~.MixIn` which wrap a group of objects. - """ - children: bm.node_dict - - def __getitem__(self, item): - """Overwrite the slice access (`self['']`). """ - if item in self.children: - return self.children[item] - else: - raise ValueError(f'Unknown item {item}, we only found {list(self.children.keys())}') - - def __getattr__(self, item): - """Overwrite the dot access (`self.`). """ - if item == 'children': - return super().__getattribute__('children') - else: - children = super().__getattribute__('children') - if item in children: - return children[item] - else: - return super().__getattribute__(item) - - def __repr__(self): - cls_name = self.__class__.__name__ - indent = ' ' * len(cls_name) - child_str = [tools.repr_context(repr(val), indent) for val in self.children.values()] - string = ", \n".join(child_str) - return f'{cls_name}({string})' - - def __get_elem_name(self, elem): - if isinstance(elem, bm.BrainPyObject): - return elem.name - else: - return get_unique_name('ContainerElem') - - def format_elements(self, child_type: type, *children_as_tuple, **children_as_dict): - res = dict() - - # add tuple-typed components - for module in children_as_tuple: - if isinstance(module, child_type): - res[self.__get_elem_name(module)] = module - elif isinstance(module, (list, tuple)): - for m in module: - if not isinstance(m, child_type): - raise ValueError(f'Should be instance of {child_type.__name__}. ' - f'But we got {type(m)}') - res[self.__get_elem_name(m)] = m - elif isinstance(module, dict): - for k, v in module.items(): - if not isinstance(v, child_type): - raise ValueError(f'Should be instance of {child_type.__name__}. ' - f'But we got {type(v)}') - res[k] = v - else: - raise ValueError(f'Cannot parse sub-systems. They should be {child_type.__name__} ' - f'or a list/tuple/dict of {child_type.__name__}.') - # add dict-typed components - for k, v in children_as_dict.items(): - if not isinstance(v, child_type): - raise ValueError(f'Should be instance of {child_type.__name__}. ' - f'But we got {type(v)}') - res[k] = v - return res - - def add_elem(self, *elems, **elements): - """Add new elements. - - >>> obj = Container() - >>> obj.add_elem(a=1.) - - Args: - elements: children objects. - """ - self.children.update(self.format_elements(object, *elems, **elements)) - - -class TreeNode(MixIn): - """Tree node. """ - - master_type: type - - def check_hierarchies(self, root, *leaves, **named_leaves): - global DynamicalSystem - if DynamicalSystem is None: - from brainpy.version2.dynsys import DynamicalSystem - - for leaf in leaves: - if isinstance(leaf, DynamicalSystem): - self.check_hierarchy(root, leaf) - elif isinstance(leaf, (list, tuple)): - self.check_hierarchies(root, *leaf) - elif isinstance(leaf, dict): - self.check_hierarchies(root, **leaf) - else: - raise ValueError(f'Do not support {type(leaf)}.') - for leaf in named_leaves.values(): - if not isinstance(leaf, DynamicalSystem): - raise ValueError(f'Do not support {type(leaf)}. Must be instance of {DynamicalSystem.__name__}') - self.check_hierarchy(root, leaf) - - def check_hierarchy(self, root, leaf): - if hasattr(leaf, 'master_type'): - master_type = leaf.master_type - else: - raise ValueError('Child class should define "master_type" to ' - 'specify the type of the root node. ' - f'But we did not found it in {leaf}') - if not issubclass(root, master_type): - raise TypeError(f'Type does not match. {leaf} requires a master with type ' - f'of {leaf.master_type}, but the master now is {root}.') - - -class SupportInputProj(MixIn): - """The :py:class:`~.MixIn` that receives the input projections. - - Note that the subclass should define a ``cur_inputs`` attribute. Otherwise, - the input function utilities cannot be used. - - """ - current_inputs: bm.node_dict - delta_inputs: bm.node_dict - - def add_inp_fun(self, key: str, fun: Callable, label: Optional[str] = None, category: str = 'current'): - """Add an input function. - - Args: - key: str. The dict key. - fun: Callable. The function to generate inputs. - label: str. The input label. - category: str. The input category, should be ``current`` (the current) or - ``delta`` (the delta synapse, indicating the delta function). - """ - if not callable(fun): - raise TypeError('Must be a function.') - - key = self._input_label_repr(key, label) - if category == 'current': - if key in self.current_inputs: - raise ValueError(f'Key "{key}" has been defined and used.') - self.current_inputs[key] = fun - elif category == 'delta': - if key in self.delta_inputs: - raise ValueError(f'Key "{key}" has been defined and used.') - self.delta_inputs[key] = fun - else: - raise NotImplementedError(f'Unknown category: {category}. Only support "current" and "delta".') - - def get_inp_fun(self, key: str): - """Get the input function. - - Args: - key: str. The key. - - Returns: - The input function which generates currents. - """ - if key in self.current_inputs: - return self.current_inputs[key] - elif key in self.delta_inputs: - return self.delta_inputs[key] - else: - raise ValueError(f'Unknown key: {key}') - - def sum_current_inputs(self, *args, init: Any = 0., label: Optional[str] = None, **kwargs): - """Summarize all current inputs by the defined input functions ``.current_inputs``. - - Args: - *args: The arguments for input functions. - init: The initial input data. - label: str. The input label. - **kwargs: The arguments for input functions. - - Returns: - The total currents. - """ - if label is None: - for key, out in self.current_inputs.items(): - init = init + out(*args, **kwargs) - else: - label_repr = self._input_label_start(label) - for key, out in self.current_inputs.items(): - if key.startswith(label_repr): - init = init + out(*args, **kwargs) - return init - - def sum_delta_inputs(self, *args, init: Any = 0., label: Optional[str] = None, **kwargs): - """Summarize all delta inputs by the defined input functions ``.delta_inputs``. - - Args: - *args: The arguments for input functions. - init: The initial input data. - label: str. The input label. - **kwargs: The arguments for input functions. - - Returns: - The total currents. - """ - if label is None: - for key, out in self.delta_inputs.items(): - init = init + out(*args, **kwargs) - else: - label_repr = self._input_label_start(label) - for key, out in self.delta_inputs.items(): - if key.startswith(label_repr): - init = init + out(*args, **kwargs) - return init - - @classmethod - def _input_label_start(cls, label: str): - # unify the input label repr. - return f'{label} // ' - - @classmethod - def _input_label_repr(cls, name: str, label: Optional[str] = None): - # unify the input label repr. - return name if label is None else (cls._input_label_start(label) + str(name)) - - # deprecated # - # ---------- # - - @property - def cur_inputs(self): - return self.current_inputs - - def sum_inputs(self, *args, **kwargs): - warnings.warn('Please use ".sum_current_inputs()" instead. ".sum_inputs()" will be removed.', UserWarning) - return self.sum_current_inputs(*args, **kwargs) - - -class SupportReturnInfo(MixIn): - """``MixIn`` to support the automatic delay in synaptic projection :py:class:`~.SynProj`.""" - - def return_info(self) -> Union[bm.Variable, ReturnInfo]: - raise NotImplementedError('Must implement the "return_info()" function.') - - -class SupportAutoDelay(SupportReturnInfo): - pass - - -class SupportOnline(MixIn): - """:py:class:`~.MixIn` to support the online training methods. - - .. versionadded:: 2.4.5 - """ - - online_fit_by: Optional # methods for online fitting - - def online_init(self, *args, **kwargs): - raise NotImplementedError - - def online_fit(self, target: ArrayType, fit_record: Dict[str, ArrayType]): - raise NotImplementedError - - -class SupportOffline(MixIn): - """:py:class:`~.MixIn` to support the offline training methods. - - .. versionadded:: 2.4.5 - """ - - offline_fit_by: Optional # methods for offline fitting - - def offline_init(self, *args, **kwargs): - pass - - def offline_fit(self, target: ArrayType, fit_record: Dict[str, ArrayType]): - raise NotImplementedError - - -class SupportSTDP(MixIn): - """Support synaptic plasticity by modifying the weights. - """ - - def stdp_update(self, *args, on_pre=None, onn_post=None, **kwargs): - raise NotImplementedError diff --git a/brainpy/version2/neurons.py b/brainpy/version2/neurons.py index 4f7aeef4c..19190fd86 100644 --- a/brainpy/version2/neurons.py +++ b/brainpy/version2/neurons.py @@ -17,39 +17,3 @@ This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dyn`` module instead. """ -from brainpy.version2.dynold.neurons.biological_models import ( - HH as HH, - MorrisLecar as MorrisLecar, - PinskyRinzelModel as PinskyRinzelModel, - WangBuzsakiModel as WangBuzsakiModel, -) - -from brainpy.version2.dynold.neurons.fractional_models import ( - FractionalNeuron as FractionalNeuron, - FractionalFHR as FractionalFHR, - FractionalIzhikevich as FractionalIzhikevich, -) - -from brainpy.version2.dynold.neurons.reduced_models import ( - LeakyIntegrator as LeakyIntegrator, - LIF as LIF, - ExpIF as ExpIF, - AdExIF as AdExIF, - QuaIF as QuaIF, - AdQuaIF as AdQuaIF, - GIF as GIF, - ALIFBellec2020 as ALIFBellec2020, - Izhikevich as Izhikevich, - HindmarshRose as HindmarshRose, - FHN as FHN, - LIF_SFA_Bellec2020, -) -from brainpy.version2.dyn.others import ( - InputGroup as InputGroup, - OutputGroup as OutputGroup, - SpikeTimeGroup as SpikeTimeGroup, - PoissonGroup as PoissonGroup, - Leaky as Leaky, - Integrator as Integrator, - OUProcess as OUProcess, -) diff --git a/brainpy/version2/optim/optimizer.py b/brainpy/version2/optim/optimizer.py index aa8f69270..e2e10ddee 100644 --- a/brainpy/version2/optim/optimizer.py +++ b/brainpy/version2/optim/optimizer.py @@ -20,9 +20,9 @@ from jax.lax import cond import brainpy.version2.math as bm +from brainpy._errors import MathError from brainpy.version2 import check from brainpy.version2.math.object_transform.base import BrainPyObject, ArrayCollector -from brainpy._errors import MathError from .scheduler import make_schedule, Scheduler __all__ = [ diff --git a/brainpy/version2/optim/scheduler.py b/brainpy/version2/optim/scheduler.py index dc6d8778e..04a998c74 100644 --- a/brainpy/version2/optim/scheduler.py +++ b/brainpy/version2/optim/scheduler.py @@ -16,14 +16,14 @@ import warnings from typing import Sequence, Union -import brainstate import jax import jax.numpy as jnp import brainpy.version2.math as bm +import brainstate +from brainpy._errors import MathError from brainpy.version2 import check from brainpy.version2.math.object_transform.base import BrainPyObject -from brainpy._errors import MathError # learning rate schedules # diff --git a/brainpy/version2/runners.py b/brainpy/version2/runners.py index a6cb27bbf..2c385498b 100644 --- a/brainpy/version2/runners.py +++ b/brainpy/version2/runners.py @@ -25,13 +25,13 @@ from jax.tree_util import tree_map, tree_flatten import brainstate.environ +from brainpy._errors import RunningError from brainpy.version2 import math as bm, tools from brainpy.version2.context import share from brainpy.version2.deprecations import _input_deprecate_msg from brainpy.version2.dynsys import DynamicalSystem from brainpy.version2.helpers import clear_input from brainpy.version2.running.runner import Runner -from brainpy._errors import RunningError from brainpy.version2.types import Output, Monitor __all__ = [ diff --git a/brainpy/version2/running/runner.py b/brainpy/version2/running/runner.py index 92a784e2f..d63bdf91f 100644 --- a/brainpy/version2/running/runner.py +++ b/brainpy/version2/running/runner.py @@ -19,9 +19,9 @@ import numpy as np +from brainpy._errors import MonitorError, RunningError from brainpy.version2 import math as bm, check from brainpy.version2.math.object_transform.base import BrainPyObject -from brainpy._errors import MonitorError, RunningError from brainpy.version2.tools import DotDict from . import constants as C diff --git a/brainpy/version2/synapses.py b/brainpy/version2/synapses.py index 35f9ee374..9775da93e 100644 --- a/brainpy/version2/synapses.py +++ b/brainpy/version2/synapses.py @@ -17,6 +17,17 @@ This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dyn`` module instead. """ +from brainpy.version2.dyn.synapses.delay_couplings import ( + DiffusiveCoupling, + AdditiveCoupling, +) +from brainpy.version2.dynold.synapses.abstract_models import ( + Delta as Delta, + Exponential as Exponential, + DualExponential as DualExponential, + Alpha as Alpha, + NMDA as NMDA, +) from brainpy.version2.dynold.synapses.base import ( _SynSTP as SynSTP, _SynOut as SynOut, @@ -27,13 +38,6 @@ GABAa as GABAa, BioNMDA as BioNMDA, ) -from brainpy.version2.dynold.synapses.abstract_models import ( - Delta as Delta, - Exponential as Exponential, - DualExponential as DualExponential, - Alpha as Alpha, - NMDA as NMDA, -) from brainpy.version2.dynold.synapses.compat import ( DeltaSynapse as DeltaSynapse, ExpCUBA as ExpCUBA, @@ -43,16 +47,12 @@ AlphaCUBA as AlphaCUBA, AlphaCOBA as AlphaCOBA, ) -from brainpy.version2.dynold.synapses.learning_rules import ( - STP as STP, -) -from brainpy.version2.dyn.synapses.delay_couplings import ( - DiffusiveCoupling, - AdditiveCoupling, -) from brainpy.version2.dynold.synapses.gap_junction import ( GapJunction ) +from brainpy.version2.dynold.synapses.learning_rules import ( + STP as STP, +) if __name__ == '__main__': SynSTP diff --git a/brainpy/version2/tools/dicts.py b/brainpy/version2/tools/dicts.py index cc8122a5e..b58a7d242 100644 --- a/brainpy/version2/tools/dicts.py +++ b/brainpy/version2/tools/dicts.py @@ -16,9 +16,10 @@ from typing import Union, Dict, Sequence import numpy as np -from brainstate._compatible_import import safe_zip from jax.tree_util import register_pytree_node +from brainstate._compatible_import import safe_zip + __all__ = [ 'DotDict', ] diff --git a/brainpy/version2/train/_utils.py b/brainpy/version2/train/_utils.py index ecdd8cc89..8b4efb188 100644 --- a/brainpy/version2/train/_utils.py +++ b/brainpy/version2/train/_utils.py @@ -16,8 +16,8 @@ import jax.numpy as jnp import brainpy.version2.math as bm -from brainpy.version2.dynsys import DynamicalSystem from brainpy.version2.check import is_dict_data +from brainpy.version2.dynsys import DynamicalSystem __all__ = [ 'format_ys' diff --git a/brainpy/version2/train/back_propagation.py b/brainpy/version2/train/back_propagation.py index 248d831b6..a4a4ec54c 100644 --- a/brainpy/version2/train/back_propagation.py +++ b/brainpy/version2/train/back_propagation.py @@ -25,13 +25,13 @@ import brainpy.version2.losses as losses import brainpy.version2.math as bm import brainstate.environ +from brainpy._errors import UnsupportedError, NoLongerSupportError from brainpy.version2 import optim from brainpy.version2 import tools from brainpy.version2.context import share from brainpy.version2.dynsys import DynamicalSystem from brainpy.version2.helpers import clear_input from brainpy.version2.running import constants as c -from brainpy._errors import UnsupportedError, NoLongerSupportError from brainpy.version2.types import ArrayType, Output from ._utils import msg from .base import DSTrainer diff --git a/brainpy/version2/train/base.py b/brainpy/version2/train/base.py index 8a7e60978..5b2125e2d 100644 --- a/brainpy/version2/train/base.py +++ b/brainpy/version2/train/base.py @@ -16,10 +16,10 @@ from typing import Dict, Sequence, Any, Optional import brainpy.version2.math as bm +from brainpy._errors import NoLongerSupportError from brainpy.version2.dynsys import DynamicalSystem from brainpy.version2.runners import DSRunner from brainpy.version2.running import constants as c -from brainpy._errors import NoLongerSupportError from brainpy.version2.types import Output __all__ = [ diff --git a/brainpy/version2/train/offline.py b/brainpy/version2/train/offline.py index f3ff2f25a..52390f040 100644 --- a/brainpy/version2/train/offline.py +++ b/brainpy/version2/train/offline.py @@ -21,12 +21,12 @@ import brainpy.version2.math as bm import brainstate.environ +from brainpy.mixin import SupportOffline from brainpy.version2 import tools +from brainpy.version2.algorithms.offline import get, RidgeRegression, OfflineAlgorithm from brainpy.version2.context import share from brainpy.version2.dynsys import DynamicalSystem -from brainpy.version2.mixin import SupportOffline from brainpy.version2.runners import _call_fun_with_share -from brainpy.version2.algorithms.offline import get, RidgeRegression, OfflineAlgorithm from brainpy.version2.types import ArrayType, Output from ._utils import format_ys from .base import DSTrainer diff --git a/brainpy/version2/train/online.py b/brainpy/version2/train/online.py index 283865ced..42bc304a4 100644 --- a/brainpy/version2/train/online.py +++ b/brainpy/version2/train/online.py @@ -22,13 +22,13 @@ from jax.tree_util import tree_map import brainstate.environ +from brainpy.mixin import SupportOnline from brainpy.version2 import math as bm, tools +from brainpy.version2.algorithms.online import get, OnlineAlgorithm, RLS from brainpy.version2.context import share from brainpy.version2.dynsys import DynamicalSystem from brainpy.version2.helpers import clear_input -from brainpy.version2.mixin import SupportOnline from brainpy.version2.runners import _call_fun_with_share -from brainpy.version2.algorithms.online import get, OnlineAlgorithm, RLS from brainpy.version2.types import ArrayType, Output from ._utils import format_ys from .base import DSTrainer diff --git a/brainpy/version2/transform.py b/brainpy/version2/transform.py index 8e711ecbd..6e37d688a 100644 --- a/brainpy/version2/transform.py +++ b/brainpy/version2/transform.py @@ -20,10 +20,10 @@ import jax.numpy as jnp from brainpy.version2 import tools, math as bm +from brainpy.version2.check import is_float, is_integer from brainpy.version2.context import share from brainpy.version2.dynsys import DynamicalSystem from brainpy.version2.helpers import clear_input -from brainpy.version2.check import is_float, is_integer from brainpy.version2.types import PyTree __all__ = [ From df74c467a3ea6ffd784cc519ed9d58c02afb0617 Mon Sep 17 00:00:00 2001 From: oujago Date: Tue, 7 Oct 2025 17:17:02 +0800 Subject: [PATCH 15/18] refactor(docs): update documentation files and improve Sphinx configuration --- .gitignore | 1 + brainpy/_base.py | 12 +- docs/_static/snn-simulation1.png | Bin 0 -> 89624 bytes docs/apis.rst | 13 + docs/checkpointing-en.ipynb | 675 ++++++++++++++++++++++++ docs/checkpointing-zh.ipynb | 675 ++++++++++++++++++++++++ docs/conf.py | 10 +- docs/highlight_test_lexer.py | 124 +++++ docs/snn_simulation-en.ipynb | 680 ++++++++++++++++++++++++ docs/snn_simulation-zh.ipynb | 723 ++++++++++++++++++++++++++ docs/snn_training-en.ipynb | 709 +++++++++++++++++++++++++ docs/snn_training-zh.ipynb | 709 +++++++++++++++++++++++++ docs/spiking_neural_networks-en.ipynb | 35 ++ docs/spiking_neural_networks-zh.ipynb | 35 ++ requirements-doc.txt | 1 + 15 files changed, 4395 insertions(+), 7 deletions(-) create mode 100644 docs/_static/snn-simulation1.png create mode 100644 docs/checkpointing-en.ipynb create mode 100644 docs/checkpointing-zh.ipynb create mode 100644 docs/highlight_test_lexer.py create mode 100644 docs/snn_simulation-en.ipynb create mode 100644 docs/snn_simulation-zh.ipynb create mode 100644 docs/snn_training-en.ipynb create mode 100644 docs/snn_training-zh.ipynb create mode 100644 docs/spiking_neural_networks-en.ipynb create mode 100644 docs/spiking_neural_networks-zh.ipynb diff --git a/.gitignore b/.gitignore index d7ce4452f..da6ec6fcc 100644 --- a/.gitignore +++ b/.gitignore @@ -232,3 +232,4 @@ cython_debug/ /docs_version2/_static/logos/ /docs/_static/logos/ /docs/_build/ +/docs/changelog.md diff --git a/brainpy/_base.py b/brainpy/_base.py index 5d9b2617f..19ca54b7b 100644 --- a/brainpy/_base.py +++ b/brainpy/_base.py @@ -44,12 +44,12 @@ class Neuron(brainstate.nn.Dynamics): for multi-dimensional input (e.g., ``100`` or ``(28, 28)``). spk_fun : Callable, optional Surrogate gradient function for the non-differentiable spike generation operation. - Default is ``brainstate.surrogate.InvSquareGrad()``. Common alternatives include: + Default is ``braintools.surrogate.InvSquareGrad()``. Common alternatives include: - - ``brainstate.surrogate.ReluGrad()`` - - ``brainstate.surrogate.SigmoidGrad()`` - - ``brainstate.surrogate.GaussianGrad()`` - - ``brainstate.surrogate.ATan()`` + - ``braintools.surrogate.ReluGrad()`` + - ``braintools.surrogate.SigmoidGrad()`` + - ``braintools.surrogate.GaussianGrad()`` + - ``braintools.surrogate.ATan()`` spk_reset : str, optional Reset mechanism applied after spike generation. Default is ``'soft'``. @@ -150,7 +150,7 @@ class Neuron(brainstate.nn.Dynamics): ... in_size=100, ... tau=10*u.ms, ... V_th=1.0*u.mV, - ... spk_fun=brainstate.surrogate.ReluGrad(), + ... spk_fun=braintools.surrogate.ReluGrad(), ... spk_reset='soft' ... ) >>> diff --git a/docs/_static/snn-simulation1.png b/docs/_static/snn-simulation1.png new file mode 100644 index 0000000000000000000000000000000000000000..72772d3cee13ab632b1069249a71dffdce903226 GIT binary patch literal 89624 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 KxvX jax.Array:\n", + " x = self.dense1(x)\n", + " x = jax.nn.relu(x)\n", + " x = self.dense2(x)\n", + " return x" + ] + }, + { + "cell_type": "markdown", + "id": "e5bf157c", + "metadata": {}, + "source": [ + "## Create the Model\n", + "We create an instance of the model with a given seed for reproducibility." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "39619169", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "MLP(\n", + " dense1=Linear(\n", + " in_size=(10,),\n", + " out_size=(20,),\n", + " w_mask=None,\n", + " weight=ParamState(\n", + " value={'weight': Array([[ 0.74939334, 0.3148138 , 0.60089725, -0.7131149 , 0.6790908 ,\n", + " -0.44663328, 0.03113358, -0.5250644 , 0.1614144 , -0.39722365,\n", + " -0.23442519, 0.118144 , 0.7669531 , 0.06876656, 0.6045511 ,\n", + " 0.12086334, -0.88447595, -0.19188431, -0.85868365, 0.00500867],\n", + " [ 0.20412642, 0.07092498, 0.37392026, 0.34958398, -0.57214 ,\n", + " 0.71724516, -0.08160591, 0.50068825, -0.17175189, -0.08275215,\n", + " 0.6508336 , 0.28279537, 0.08821856, 0.83949256, 0.49844882,\n", + " -0.04159267, -0.47324428, 0.27084318, -0.58236146, -0.09787997],\n", + " [-0.04382031, -0.20300323, -0.04449642, 0.41578326, 0.5507486 ,\n", + " -0.15913244, -0.8612537 , 0.19072336, -0.16082875, -0.24696219,\n", + " -0.30372635, 0.6850187 , 0.32007053, 0.24253711, 0.28217098,\n", + " -0.8014343 , 0.48989874, -0.0160339 , 0.32790813, -0.49864978],\n", + " [-0.61840117, 0.21017133, 0.07593305, -0.02365256, -0.03401124,\n", + " -0.05115725, 0.6195931 , 0.15402867, 0.40200788, 0.34128165,\n", + " 0.00860781, -0.54993343, -0.5615623 , -0.09946032, -0.02702298,\n", + " 0.3336504 , -0.29341814, 0.3551176 , 0.20545702, -0.11665206],\n", + " [-0.16712527, -0.2531548 , 0.49188057, -0.1302325 , -0.12142995,\n", + " -0.03277557, 0.06477631, -0.30021554, -0.35658783, -0.5185722 ,\n", + " 0.15650164, -0.7464921 , -0.67454183, 0.09733332, -0.5153455 ,\n", + " 0.1480032 , -0.20877242, 0.16675173, 0.12827559, 0.5268865 ],\n", + " [-0.7994777 , -0.40662575, 0.28858158, -0.39780638, 0.6637344 ,\n", + " 0.09075797, -0.75130516, -0.26124355, 0.4175534 , -0.28502613,\n", + " -0.4241315 , 0.6746936 , 0.40870044, 0.94398546, -0.9198975 ,\n", + " -0.29775584, -0.09658122, -0.16053742, -0.05611025, 0.01059594],\n", + " [ 0.5480607 , -0.09164569, -0.7853424 , 0.74901533, -0.5906064 ,\n", + " -0.51409346, 0.10472732, -0.13107914, -0.45577446, -0.24654518,\n", + " 0.5399041 , -0.09071468, -0.5162382 , -0.01967659, -0.47176114,\n", + " -0.01017519, -0.5026951 , 0.05103482, 0.37542912, -0.25549397],\n", + " [-0.2706877 , 0.64187187, -0.505112 , -0.17481704, -0.88211423,\n", + " -0.8674219 , 0.5660908 , -0.20833156, 0.3285284 , 0.92883885,\n", + " -0.26592234, -0.47405127, 0.79681754, -0.5791843 , -0.27389136,\n", + " -0.3449671 , 0.509086 , 0.76971966, 0.10998839, -0.24425419],\n", + " [ 0.8046176 , -0.0295862 , 0.14252356, -0.1579972 , -0.20274054,\n", + " 0.01246137, -0.15756735, 0.32074738, 0.14097062, 0.03186554,\n", + " -0.1414449 , 0.4591949 , -0.21690284, -0.41089386, 0.26250118,\n", + " -0.0720875 , -0.05566718, -0.08271056, -0.37073353, 0.09257671],\n", + " [ 0.44894424, 0.22119072, -0.5117801 , -0.7407342 , -0.8777072 ,\n", + " 0.34723184, 0.0638053 , -0.10916334, 0.67356414, -0.21106955,\n", + " -0.24140975, 0.12431782, 0.2585294 , 0.06849731, -0.2997454 ,\n", + " -0.39390567, -0.25709096, -0.15120856, -0.10684931, 0.69015896]], dtype=float32), 'bias': Array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0.], dtype=float32)}\n", + " )\n", + " ),\n", + " dense2=Linear(\n", + " in_size=(20,),\n", + " out_size=(30,),\n", + " w_mask=None,\n", + " weight=ParamState(\n", + " value={'weight': Array([[ 0.62046814, 0.5301044 , -0.4739194 , -0.14099996, -0.14287984,\n", + " 0.1282555 , 0.3935479 , 0.21227883, 0.5402896 , -0.32984453,\n", + " 0.1054924 , -0.02015361, -0.24927817, 0.16467251, 0.5784846 ,\n", + " 0.2914683 , 0.35762057, 0.29866996, -0.19128309, 0.09088683,\n", + " -0.11386324, -0.22595015, 0.11267622, 0.5419977 , -0.37829107,\n", + " -0.09838869, -0.04575922, -0.7129366 , -0.32915255, 0.00509653],\n", + " [ 0.21818087, 0.08530099, 0.3571782 , 0.70128685, -0.04413987,\n", + " 0.5709911 , 0.12656331, 0.29721373, 0.47632915, -0.17275095,\n", + " -0.08733549, -0.22514656, -0.05714319, -0.27718347, -0.39045587,\n", + " 0.21975726, 0.18346666, -0.0382327 , 0.13839035, 0.1998283 ,\n", + " -0.09052311, 0.38183472, 0.4496051 , -0.23680712, -0.28785107,\n", + " 0.16122147, -0.33963904, 0.14983557, -0.43373275, -0.09495756],\n", + " [ 0.2568711 , 0.5197295 , -0.13442262, -0.6316247 , -0.6276094 ,\n", + " 0.396733 , 0.09978731, 0.37479848, 0.05811005, 0.38287428,\n", + " -0.23015432, 0.26524863, 0.40986276, 0.51085615, -0.16390967,\n", + " -0.08889349, 0.14242767, -0.04773026, 0.0186008 , 0.08168013,\n", + " 0.22218394, 0.45948145, 0.15798983, 0.11101982, -0.22625342,\n", + " -0.3179377 , 0.08289661, -0.35810882, -0.11701918, -0.07404168],\n", + " [ 0.3988777 , 0.09341867, -0.10675149, 0.24498817, 0.57484835,\n", + " 0.13964735, -0.09232395, 0.49800253, -0.11388287, -0.23314221,\n", + " -0.20017506, 0.17043568, -0.5916637 , -0.5033429 , -0.03982058,\n", + " -0.29196522, -0.06229761, -0.12120344, -0.04843295, 0.14077553,\n", + " -0.23975037, 0.25233614, -0.00446404, 0.6632397 , -0.32990777,\n", + " -0.42914438, -0.372548 , 0.30960974, 0.31027737, 0.3736987 ],\n", + " [-0.32519445, -0.0722824 , -0.06813759, 0.15726727, 0.52653533,\n", + " -0.39247712, -0.37830523, 0.20171025, -0.06937496, 0.24201019,\n", + " 0.1104718 , 0.62304336, 0.4803775 , -0.26503193, 0.5813743 ,\n", + " -0.22703817, 0.14889193, -0.09937828, 0.45811605, -0.53927666,\n", + " 0.38610622, 0.25877175, -0.57717675, -0.16893166, -0.17705517,\n", + " 0.2077132 , -0.24225888, -0.11191322, -0.00921882, -0.10405794],\n", + " [ 0.41278893, -0.27192885, 0.28467888, -0.21523082, 0.37667713,\n", + " 0.07426698, 0.22414407, -0.1354481 , -0.23419291, 0.2381074 ,\n", + " -0.24765436, 0.08778596, -0.00406975, -0.615931 , -0.09067997,\n", + " 0.26324016, -0.03728105, 0.29038942, 0.678011 , -0.6540893 ,\n", + " -0.5934551 , -0.16575795, 0.14227462, -0.0928836 , 0.24194399,\n", + " -0.04459891, 0.15232474, -0.21208623, -0.21339062, 0.07757895],\n", + " [-0.6379539 , 0.31518504, -0.11890189, -0.19096668, 0.21524261,\n", + " -0.06361473, 0.56184316, 0.028249 , -0.14510861, 0.08830918,\n", + " 0.08343762, -0.25384745, -0.33789673, 0.03700592, -0.19126455,\n", + " -0.01024354, -0.37079507, 0.24292567, 0.19478266, 0.5580041 ,\n", + " -0.35604435, 0.3915089 , -0.21796615, 0.0528199 , -0.13147084,\n", + " -0.05164728, -0.0625616 , 0.36192182, -0.05759151, 0.4186158 ],\n", + " [-0.04047865, 0.02108607, 0.41284686, 0.29146758, 0.20885086,\n", + " 0.20158692, -0.17301778, 0.27862224, 0.27474535, -0.19628745,\n", + " 0.15615414, 0.20871529, -0.314695 , -0.24115679, 0.33787283,\n", + " -0.14589988, -0.10813709, -0.039655 , -0.03082952, -0.66367936,\n", + " -0.2642637 , 0.2510051 , -0.08893799, 0.21589737, 0.51835227,\n", + " -0.44741842, -0.33786973, 0.6091706 , -0.3753065 , -0.37535354],\n", + " [ 0.11531412, 0.6267082 , -0.15149857, -0.3794238 , 0.55059415,\n", + " 0.23017633, -0.32434496, 0.2958217 , 0.41106105, 0.4731116 ,\n", + " -0.50055134, 0.01790522, -0.54518443, 0.04447998, -0.13089894,\n", + " -0.15774457, 0.09551436, -0.08697572, -0.05562068, -0.06885753,\n", + " 0.20314606, 0.14044988, -0.19203717, -0.4179157 , 0.18612123,\n", + " -0.14104603, -0.35670066, -0.24597271, 0.10614085, -0.12170368],\n", + " [ 0.23700227, 0.30524203, -0.3694181 , 0.33033338, 0.02095676,\n", + " -0.05125551, 0.11001365, -0.20992021, -0.05562193, -0.26372904,\n", + " -0.2967057 , -0.14012977, -0.14321879, -0.17379181, 0.5104145 ,\n", + " 0.11991877, -0.1430745 , -0.04331772, -0.41226274, 0.00449552,\n", + " -0.08277246, -0.12151891, -0.45340443, 0.12951623, -0.27139285,\n", + " 0.4472014 , 0.19157353, -0.4412653 , -0.04408614, 0.41542286],\n", + " [ 0.04913985, -0.04957955, -0.40214545, -0.24126607, -0.11509801,\n", + " -0.51304626, -0.3825655 , 0.34506062, -0.0222565 , -0.27472144,\n", + " -0.5477002 , -0.03630246, 0.17396483, 0.6892827 , 0.02867843,\n", + " 0.36273733, -0.34478036, 0.2839792 , 0.15002191, -0.20483544,\n", + " 0.15306501, -0.06504299, -0.00701311, 0.0804052 , 0.44663915,\n", + " 0.11938784, -0.05011488, 0.06942522, -0.1151372 , 0.2728172 ],\n", + " [-0.30464825, 0.11323573, 0.02953907, -0.7024937 , -0.04522578,\n", + " 0.10622236, -0.1298965 , 0.0872021 , -0.36016473, -0.11690426,\n", + " -0.07054564, -0.32576308, -0.30710763, -0.6661573 , 0.13130474,\n", + " 0.00769307, 0.00603968, -0.5331483 , -0.00946458, -0.08804175,\n", + " 0.01258891, 0.19920264, -0.52920264, 0.11547033, 0.0503376 ,\n", + " 0.2710771 , 0.20577058, -0.16118994, 0.03479335, 0.30332327],\n", + " [-0.11540684, -0.21528308, -0.09639532, -0.38324118, 0.08790598,\n", + " -0.05113763, -0.22907412, 0.08176684, -0.13504112, -0.14580515,\n", + " -0.10574839, -0.13816664, 0.25279123, -0.35016036, -0.02811426,\n", + " 0.1878024 , 0.33833987, -0.44787505, 0.05859555, -0.12482259,\n", + " 0.4109398 , -0.3567587 , 0.4436607 , -0.13256377, 0.42250675,\n", + " 0.33017033, 0.28086263, 0.33791474, 0.24015151, -0.23016477],\n", + " [ 0.46682912, -0.63216 , 0.43159592, 0.21971288, -0.07587896,\n", + " -0.25639635, -0.42970398, -0.4962936 , -0.21198583, 0.18351796,\n", + " 0.01911162, -0.3004833 , -0.41785267, -0.04077749, -0.20676233,\n", + " -0.11401828, 0.12992048, 0.03491049, 0.05013497, 0.57222587,\n", + " -0.12001502, -0.17038153, -0.31871405, -0.32121637, 0.66278815,\n", + " 0.61774564, -0.01240813, -0.06011448, 0.29245874, -0.3879291 ],\n", + " [ 0.02741514, 0.31249774, -0.15944321, 0.14222006, 0.611036 ,\n", + " 0.02716783, 0.48367155, -0.59191144, -0.260246 , 0.29856846,\n", + " 0.36217022, 0.26721174, 0.1436277 , 0.2510483 , 0.63455343,\n", + " 0.22804502, 0.21089312, -0.03622444, 0.24770333, 0.12762095,\n", + " -0.11348359, 0.71003526, -0.6399693 , 0.2956937 , -0.40721762,\n", + " 0.07830685, -0.12750737, 0.09320084, -0.37348104, 0.6469367 ],\n", + " [-0.21946031, 0.58491176, 0.6910229 , -0.38729444, -0.22691855,\n", + " 0.09827446, -0.27745098, 0.3286477 , -0.28397417, 0.3331472 ,\n", + " -0.10511833, 0.04856022, 0.6826674 , -0.19410591, -0.03848339,\n", + " 0.2877471 , 0.42053938, -0.3121656 , 0.1115057 , 0.3940428 ,\n", + " 0.22287792, -0.11617415, -0.15520288, -0.17891021, 0.08283449,\n", + " -0.45727572, -0.08755263, -0.30042952, 0.04397725, -0.32858402],\n", + " [-0.04652168, 0.22256051, 0.34796244, -0.57714033, -0.19478762,\n", + " -0.04000793, -0.22230573, -0.1784827 , 0.18552966, 0.3517072 ,\n", + " -0.43350866, 0.3370349 , 0.34543782, -0.25484002, -0.06113737,\n", + " -0.29600585, 0.55229264, 0.26264954, -0.12024187, 0.06554315,\n", + " 0.33039162, -0.4056347 , -0.22326599, -0.20423931, -0.20365807,\n", + " 0.5614395 , -0.33278635, 0.3678192 , -0.38601917, -0.12349749],\n", + " [ 0.21260151, -0.6383393 , -0.04182729, 0.21110533, -0.16549559,\n", + " 0.20241106, 0.42155504, 0.2782736 , -0.5695076 , 0.3197464 ,\n", + " 0.3593777 , 0.15281492, -0.16649725, -0.32258078, -0.19450592,\n", + " -0.5648749 , 0.14112377, -0.08617025, 0.2822599 , 0.65894157,\n", + " 0.06424519, -0.02703291, 0.41351956, -0.06962998, -0.03156902,\n", + " -0.3027034 , -0.15010884, 0.3097132 , -0.01670518, 0.13812247],\n", + " [-0.35231128, -0.06400244, -0.5534636 , 0.08153537, -0.1431605 ,\n", + " 0.19649687, -0.57627857, 0.14731233, -0.5345133 , 0.14830953,\n", + " 0.11090186, -0.5130216 , 0.07951056, 0.042261 , 0.0088584 ,\n", + " 0.0693031 , -0.25705618, 0.07637526, -0.2910843 , 0.26884285,\n", + " -0.3668523 , -0.51732624, 0.32633176, 0.4078384 , 0.07319385,\n", + " 0.24243955, -0.39059573, -0.14434972, -0.20902094, 0.03081408],\n", + " [-0.29074088, -0.340606 , 0.24403909, 0.28382063, 0.57466537,\n", + " 0.24103518, -0.53504395, -0.12040613, -0.21954668, -0.11855581,\n", + " 0.20805535, -0.6497588 , 0.03112273, -0.06355662, 0.22711465,\n", + " -0.00476316, -0.4368407 , -0.26775414, 0.02075309, -0.0473614 ,\n", + " -0.12880138, 0.15983032, 0.18893135, -0.06872427, -0.14535248,\n", + " 0.27104148, -0.31298438, 0.14454837, -0.1837953 , 0.4652801 ]], dtype=float32), 'bias': Array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32)}\n", + " )\n", + " )\n", + ")" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "SEED = 42\n", + "brainstate.random.seed(SEED) # set seed in brainstate\n", + "model1 = MLP(10, 20, 30) # create model\n", + "model1" + ] + }, + { + "cell_type": "markdown", + "id": "26ded981", + "metadata": {}, + "source": [ + "## Save the Model State\n", + "\n", + "### Save the Model State Using `orbax`\n", + "We save the model's parameters to a checkpoint file." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "14d1d552", + "metadata": {}, + "outputs": [], + "source": [ + "tmpdir = tempfile.mkdtemp() # create temporary directory\n", + "state_tree = brainstate.graph.treefy_states(model1) # convert model to state tree\n", + "checkpointer = orbax.PyTreeCheckpointer() # create checkpointer\n", + "checkpointer.save(os.path.join(tmpdir, 'state'), state_tree) # save state tree" + ] + }, + { + "cell_type": "markdown", + "id": "27209868", + "metadata": {}, + "source": [ + "Now, we've saved the model's parameters to the checkpoint files in `tmpdir/state` by using the `orbax` library." + ] + }, + { + "cell_type": "markdown", + "id": "fb36ffc3", + "metadata": {}, + "source": [ + "### Save the Model State Using `braintools`" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "2b03606b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving checkpoint into C:\\Users\\13107\\AppData\\Local\\Temp\\tmptjdpy0vf\\state.msgpack\n" + ] + } + ], + "source": [ + "checkpoint = brainstate.graph.states(model1).to_nest() # convert model to nest\n", + "braintools.file.msgpack_save(os.path.join(tmpdir, 'state.msgpack'), checkpoint) # save checkpoint" + ] + }, + { + "cell_type": "markdown", + "id": "76030ac1", + "metadata": {}, + "source": [ + "Now, we've saved the model's parameters to the checkpoint files in `tmpdir/state.msgpack` by using the `braintools` library." + ] + }, + { + "cell_type": "markdown", + "id": "6faf01ec", + "metadata": {}, + "source": [ + "## Load the Model State\n", + "\n", + "### Load the Model State Using `orbax`\n", + "Let's load the model's parameters from the checkpoint files." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "26ba3c3e", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\routhleck_app\\miniconda\\envs\\brainstate\\lib\\site-packages\\orbax\\checkpoint\\_src\\serialization\\type_handlers.py:1123: UserWarning: Couldn't find sharding info under RestoreArgs. Populating sharding info from sharding file. Please note restoration time will be slightly increased due to reading from file instead of directly from RestoreArgs. Note also that this option is unsafe when restoring on a different topology than the checkpoint was saved with.\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "# create that model with abstract shapes\n", + "brainstate.random.seed(0)\n", + "model2 = brainstate.augment.abstract_init(lambda: MLP(10, 20, 30))\n", + "state_tree = brainstate.graph.treefy_states(model2)\n", + "\n", + "# Load the parameters from checkpoint files\n", + "checkpointer = orbax.PyTreeCheckpointer()\n", + "state_tree = checkpointer.restore(os.path.join(tmpdir, 'state'), item=state_tree)\n", + "\n", + "# update the model with the loaded state\n", + "brainstate.graph.update_states(model2, state_tree)" + ] + }, + { + "cell_type": "markdown", + "id": "79929f4a", + "metadata": {}, + "source": [ + "### Load the Model State Using `braintools`\n", + "Let's load the model's parameters from the checkpoint files." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "7a6d1de0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading checkpoint from C:\\Users\\13107\\AppData\\Local\\Temp\\tmptjdpy0vf\\state.msgpack\n" + ] + }, + { + "data": { + "text/plain": [ + "{'dense1': {'weight': ParamState(\n", + " value={'bias': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0.], dtype=float32), 'weight': array([[ 0.74939334, 0.3148138 , 0.60089725, -0.7131149 , 0.6790908 ,\n", + " -0.44663328, 0.03113358, -0.5250644 , 0.1614144 , -0.39722365,\n", + " -0.23442519, 0.118144 , 0.7669531 , 0.06876656, 0.6045511 ,\n", + " 0.12086334, -0.88447595, -0.19188431, -0.85868365, 0.00500867],\n", + " [ 0.20412642, 0.07092498, 0.37392026, 0.34958398, -0.57214 ,\n", + " 0.71724516, -0.08160591, 0.50068825, -0.17175189, -0.08275215,\n", + " 0.6508336 , 0.28279537, 0.08821856, 0.83949256, 0.49844882,\n", + " -0.04159267, -0.47324428, 0.27084318, -0.58236146, -0.09787997],\n", + " [-0.04382031, -0.20300323, -0.04449642, 0.41578326, 0.5507486 ,\n", + " -0.15913244, -0.8612537 , 0.19072336, -0.16082875, -0.24696219,\n", + " -0.30372635, 0.6850187 , 0.32007053, 0.24253711, 0.28217098,\n", + " -0.8014343 , 0.48989874, -0.0160339 , 0.32790813, -0.49864978],\n", + " [-0.61840117, 0.21017133, 0.07593305, -0.02365256, -0.03401124,\n", + " -0.05115725, 0.6195931 , 0.15402867, 0.40200788, 0.34128165,\n", + " 0.00860781, -0.54993343, -0.5615623 , -0.09946032, -0.02702298,\n", + " 0.3336504 , -0.29341814, 0.3551176 , 0.20545702, -0.11665206],\n", + " [-0.16712527, -0.2531548 , 0.49188057, -0.1302325 , -0.12142995,\n", + " -0.03277557, 0.06477631, -0.30021554, -0.35658783, -0.5185722 ,\n", + " 0.15650164, -0.7464921 , -0.67454183, 0.09733332, -0.5153455 ,\n", + " 0.1480032 , -0.20877242, 0.16675173, 0.12827559, 0.5268865 ],\n", + " [-0.7994777 , -0.40662575, 0.28858158, -0.39780638, 0.6637344 ,\n", + " 0.09075797, -0.75130516, -0.26124355, 0.4175534 , -0.28502613,\n", + " -0.4241315 , 0.6746936 , 0.40870044, 0.94398546, -0.9198975 ,\n", + " -0.29775584, -0.09658122, -0.16053742, -0.05611025, 0.01059594],\n", + " [ 0.5480607 , -0.09164569, -0.7853424 , 0.74901533, -0.5906064 ,\n", + " -0.51409346, 0.10472732, -0.13107914, -0.45577446, -0.24654518,\n", + " 0.5399041 , -0.09071468, -0.5162382 , -0.01967659, -0.47176114,\n", + " -0.01017519, -0.5026951 , 0.05103482, 0.37542912, -0.25549397],\n", + " [-0.2706877 , 0.64187187, -0.505112 , -0.17481704, -0.88211423,\n", + " -0.8674219 , 0.5660908 , -0.20833156, 0.3285284 , 0.92883885,\n", + " -0.26592234, -0.47405127, 0.79681754, -0.5791843 , -0.27389136,\n", + " -0.3449671 , 0.509086 , 0.76971966, 0.10998839, -0.24425419],\n", + " [ 0.8046176 , -0.0295862 , 0.14252356, -0.1579972 , -0.20274054,\n", + " 0.01246137, -0.15756735, 0.32074738, 0.14097062, 0.03186554,\n", + " -0.1414449 , 0.4591949 , -0.21690284, -0.41089386, 0.26250118,\n", + " -0.0720875 , -0.05566718, -0.08271056, -0.37073353, 0.09257671],\n", + " [ 0.44894424, 0.22119072, -0.5117801 , -0.7407342 , -0.8777072 ,\n", + " 0.34723184, 0.0638053 , -0.10916334, 0.67356414, -0.21106955,\n", + " -0.24140975, 0.12431782, 0.2585294 , 0.06849731, -0.2997454 ,\n", + " -0.39390567, -0.25709096, -0.15120856, -0.10684931, 0.69015896]],\n", + " dtype=float32)}\n", + " )},\n", + " 'dense2': {'weight': ParamState(\n", + " value={'bias': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), 'weight': array([[ 0.62046814, 0.5301044 , -0.4739194 , -0.14099996, -0.14287984,\n", + " 0.1282555 , 0.3935479 , 0.21227883, 0.5402896 , -0.32984453,\n", + " 0.1054924 , -0.02015361, -0.24927817, 0.16467251, 0.5784846 ,\n", + " 0.2914683 , 0.35762057, 0.29866996, -0.19128309, 0.09088683,\n", + " -0.11386324, -0.22595015, 0.11267622, 0.5419977 , -0.37829107,\n", + " -0.09838869, -0.04575922, -0.7129366 , -0.32915255, 0.00509653],\n", + " [ 0.21818087, 0.08530099, 0.3571782 , 0.70128685, -0.04413987,\n", + " 0.5709911 , 0.12656331, 0.29721373, 0.47632915, -0.17275095,\n", + " -0.08733549, -0.22514656, -0.05714319, -0.27718347, -0.39045587,\n", + " 0.21975726, 0.18346666, -0.0382327 , 0.13839035, 0.1998283 ,\n", + " -0.09052311, 0.38183472, 0.4496051 , -0.23680712, -0.28785107,\n", + " 0.16122147, -0.33963904, 0.14983557, -0.43373275, -0.09495756],\n", + " [ 0.2568711 , 0.5197295 , -0.13442262, -0.6316247 , -0.6276094 ,\n", + " 0.396733 , 0.09978731, 0.37479848, 0.05811005, 0.38287428,\n", + " -0.23015432, 0.26524863, 0.40986276, 0.51085615, -0.16390967,\n", + " -0.08889349, 0.14242767, -0.04773026, 0.0186008 , 0.08168013,\n", + " 0.22218394, 0.45948145, 0.15798983, 0.11101982, -0.22625342,\n", + " -0.3179377 , 0.08289661, -0.35810882, -0.11701918, -0.07404168],\n", + " [ 0.3988777 , 0.09341867, -0.10675149, 0.24498817, 0.57484835,\n", + " 0.13964735, -0.09232395, 0.49800253, -0.11388287, -0.23314221,\n", + " -0.20017506, 0.17043568, -0.5916637 , -0.5033429 , -0.03982058,\n", + " -0.29196522, -0.06229761, -0.12120344, -0.04843295, 0.14077553,\n", + " -0.23975037, 0.25233614, -0.00446404, 0.6632397 , -0.32990777,\n", + " -0.42914438, -0.372548 , 0.30960974, 0.31027737, 0.3736987 ],\n", + " [-0.32519445, -0.0722824 , -0.06813759, 0.15726727, 0.52653533,\n", + " -0.39247712, -0.37830523, 0.20171025, -0.06937496, 0.24201019,\n", + " 0.1104718 , 0.62304336, 0.4803775 , -0.26503193, 0.5813743 ,\n", + " -0.22703817, 0.14889193, -0.09937828, 0.45811605, -0.53927666,\n", + " 0.38610622, 0.25877175, -0.57717675, -0.16893166, -0.17705517,\n", + " 0.2077132 , -0.24225888, -0.11191322, -0.00921882, -0.10405794],\n", + " [ 0.41278893, -0.27192885, 0.28467888, -0.21523082, 0.37667713,\n", + " 0.07426698, 0.22414407, -0.1354481 , -0.23419291, 0.2381074 ,\n", + " -0.24765436, 0.08778596, -0.00406975, -0.615931 , -0.09067997,\n", + " 0.26324016, -0.03728105, 0.29038942, 0.678011 , -0.6540893 ,\n", + " -0.5934551 , -0.16575795, 0.14227462, -0.0928836 , 0.24194399,\n", + " -0.04459891, 0.15232474, -0.21208623, -0.21339062, 0.07757895],\n", + " [-0.6379539 , 0.31518504, -0.11890189, -0.19096668, 0.21524261,\n", + " -0.06361473, 0.56184316, 0.028249 , -0.14510861, 0.08830918,\n", + " 0.08343762, -0.25384745, -0.33789673, 0.03700592, -0.19126455,\n", + " -0.01024354, -0.37079507, 0.24292567, 0.19478266, 0.5580041 ,\n", + " -0.35604435, 0.3915089 , -0.21796615, 0.0528199 , -0.13147084,\n", + " -0.05164728, -0.0625616 , 0.36192182, -0.05759151, 0.4186158 ],\n", + " [-0.04047865, 0.02108607, 0.41284686, 0.29146758, 0.20885086,\n", + " 0.20158692, -0.17301778, 0.27862224, 0.27474535, -0.19628745,\n", + " 0.15615414, 0.20871529, -0.314695 , -0.24115679, 0.33787283,\n", + " -0.14589988, -0.10813709, -0.039655 , -0.03082952, -0.66367936,\n", + " -0.2642637 , 0.2510051 , -0.08893799, 0.21589737, 0.51835227,\n", + " -0.44741842, -0.33786973, 0.6091706 , -0.3753065 , -0.37535354],\n", + " [ 0.11531412, 0.6267082 , -0.15149857, -0.3794238 , 0.55059415,\n", + " 0.23017633, -0.32434496, 0.2958217 , 0.41106105, 0.4731116 ,\n", + " -0.50055134, 0.01790522, -0.54518443, 0.04447998, -0.13089894,\n", + " -0.15774457, 0.09551436, -0.08697572, -0.05562068, -0.06885753,\n", + " 0.20314606, 0.14044988, -0.19203717, -0.4179157 , 0.18612123,\n", + " -0.14104603, -0.35670066, -0.24597271, 0.10614085, -0.12170368],\n", + " [ 0.23700227, 0.30524203, -0.3694181 , 0.33033338, 0.02095676,\n", + " -0.05125551, 0.11001365, -0.20992021, -0.05562193, -0.26372904,\n", + " -0.2967057 , -0.14012977, -0.14321879, -0.17379181, 0.5104145 ,\n", + " 0.11991877, -0.1430745 , -0.04331772, -0.41226274, 0.00449552,\n", + " -0.08277246, -0.12151891, -0.45340443, 0.12951623, -0.27139285,\n", + " 0.4472014 , 0.19157353, -0.4412653 , -0.04408614, 0.41542286],\n", + " [ 0.04913985, -0.04957955, -0.40214545, -0.24126607, -0.11509801,\n", + " -0.51304626, -0.3825655 , 0.34506062, -0.0222565 , -0.27472144,\n", + " -0.5477002 , -0.03630246, 0.17396483, 0.6892827 , 0.02867843,\n", + " 0.36273733, -0.34478036, 0.2839792 , 0.15002191, -0.20483544,\n", + " 0.15306501, -0.06504299, -0.00701311, 0.0804052 , 0.44663915,\n", + " 0.11938784, -0.05011488, 0.06942522, -0.1151372 , 0.2728172 ],\n", + " [-0.30464825, 0.11323573, 0.02953907, -0.7024937 , -0.04522578,\n", + " 0.10622236, -0.1298965 , 0.0872021 , -0.36016473, -0.11690426,\n", + " -0.07054564, -0.32576308, -0.30710763, -0.6661573 , 0.13130474,\n", + " 0.00769307, 0.00603968, -0.5331483 , -0.00946458, -0.08804175,\n", + " 0.01258891, 0.19920264, -0.52920264, 0.11547033, 0.0503376 ,\n", + " 0.2710771 , 0.20577058, -0.16118994, 0.03479335, 0.30332327],\n", + " [-0.11540684, -0.21528308, -0.09639532, -0.38324118, 0.08790598,\n", + " -0.05113763, -0.22907412, 0.08176684, -0.13504112, -0.14580515,\n", + " -0.10574839, -0.13816664, 0.25279123, -0.35016036, -0.02811426,\n", + " 0.1878024 , 0.33833987, -0.44787505, 0.05859555, -0.12482259,\n", + " 0.4109398 , -0.3567587 , 0.4436607 , -0.13256377, 0.42250675,\n", + " 0.33017033, 0.28086263, 0.33791474, 0.24015151, -0.23016477],\n", + " [ 0.46682912, -0.63216 , 0.43159592, 0.21971288, -0.07587896,\n", + " -0.25639635, -0.42970398, -0.4962936 , -0.21198583, 0.18351796,\n", + " 0.01911162, -0.3004833 , -0.41785267, -0.04077749, -0.20676233,\n", + " -0.11401828, 0.12992048, 0.03491049, 0.05013497, 0.57222587,\n", + " -0.12001502, -0.17038153, -0.31871405, -0.32121637, 0.66278815,\n", + " 0.61774564, -0.01240813, -0.06011448, 0.29245874, -0.3879291 ],\n", + " [ 0.02741514, 0.31249774, -0.15944321, 0.14222006, 0.611036 ,\n", + " 0.02716783, 0.48367155, -0.59191144, -0.260246 , 0.29856846,\n", + " 0.36217022, 0.26721174, 0.1436277 , 0.2510483 , 0.63455343,\n", + " 0.22804502, 0.21089312, -0.03622444, 0.24770333, 0.12762095,\n", + " -0.11348359, 0.71003526, -0.6399693 , 0.2956937 , -0.40721762,\n", + " 0.07830685, -0.12750737, 0.09320084, -0.37348104, 0.6469367 ],\n", + " [-0.21946031, 0.58491176, 0.6910229 , -0.38729444, -0.22691855,\n", + " 0.09827446, -0.27745098, 0.3286477 , -0.28397417, 0.3331472 ,\n", + " -0.10511833, 0.04856022, 0.6826674 , -0.19410591, -0.03848339,\n", + " 0.2877471 , 0.42053938, -0.3121656 , 0.1115057 , 0.3940428 ,\n", + " 0.22287792, -0.11617415, -0.15520288, -0.17891021, 0.08283449,\n", + " -0.45727572, -0.08755263, -0.30042952, 0.04397725, -0.32858402],\n", + " [-0.04652168, 0.22256051, 0.34796244, -0.57714033, -0.19478762,\n", + " -0.04000793, -0.22230573, -0.1784827 , 0.18552966, 0.3517072 ,\n", + " -0.43350866, 0.3370349 , 0.34543782, -0.25484002, -0.06113737,\n", + " -0.29600585, 0.55229264, 0.26264954, -0.12024187, 0.06554315,\n", + " 0.33039162, -0.4056347 , -0.22326599, -0.20423931, -0.20365807,\n", + " 0.5614395 , -0.33278635, 0.3678192 , -0.38601917, -0.12349749],\n", + " [ 0.21260151, -0.6383393 , -0.04182729, 0.21110533, -0.16549559,\n", + " 0.20241106, 0.42155504, 0.2782736 , -0.5695076 , 0.3197464 ,\n", + " 0.3593777 , 0.15281492, -0.16649725, -0.32258078, -0.19450592,\n", + " -0.5648749 , 0.14112377, -0.08617025, 0.2822599 , 0.65894157,\n", + " 0.06424519, -0.02703291, 0.41351956, -0.06962998, -0.03156902,\n", + " -0.3027034 , -0.15010884, 0.3097132 , -0.01670518, 0.13812247],\n", + " [-0.35231128, -0.06400244, -0.5534636 , 0.08153537, -0.1431605 ,\n", + " 0.19649687, -0.57627857, 0.14731233, -0.5345133 , 0.14830953,\n", + " 0.11090186, -0.5130216 , 0.07951056, 0.042261 , 0.0088584 ,\n", + " 0.0693031 , -0.25705618, 0.07637526, -0.2910843 , 0.26884285,\n", + " -0.3668523 , -0.51732624, 0.32633176, 0.4078384 , 0.07319385,\n", + " 0.24243955, -0.39059573, -0.14434972, -0.20902094, 0.03081408],\n", + " [-0.29074088, -0.340606 , 0.24403909, 0.28382063, 0.57466537,\n", + " 0.24103518, -0.53504395, -0.12040613, -0.21954668, -0.11855581,\n", + " 0.20805535, -0.6497588 , 0.03112273, -0.06355662, 0.22711465,\n", + " -0.00476316, -0.4368407 , -0.26775414, 0.02075309, -0.0473614 ,\n", + " -0.12880138, 0.15983032, 0.18893135, -0.06872427, -0.14535248,\n", + " 0.27104148, -0.31298438, 0.14454837, -0.1837953 , 0.4652801 ]],\n", + " dtype=float32)}\n", + " )}}" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 创建一个有着相同结构的模型\n", + "brainstate.random.seed(0)\n", + "model3 = brainstate.augment.abstract_init(lambda: MLP(10, 20, 30))\n", + "checkpoint = brainstate.graph.states(model3).to_nest()\n", + "\n", + "# 从msgpack文件读取模型参数\n", + "braintools.file.msgpack_load(os.path.join(tmpdir, 'state.msgpack'), checkpoint)" + ] + }, + { + "cell_type": "markdown", + "id": "29dc37c9", + "metadata": {}, + "source": [ + "## Demonstrate the Loaded Model\n", + "Let's run the loaded model and check if it produces the same output as the original model." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "dfe032ab", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n", + "True\n" + ] + } + ], + "source": [ + "y1 = model1(jnp.ones((1, 10)))\n", + "y2 = model2(jnp.ones((1, 10)))\n", + "y3 = model3(jnp.ones((1, 10)))\n", + "print(jnp.allclose(y1, y2)) # True\n", + "print(jnp.allclose(y1, y3)) # True" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "brainstate", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.15" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/checkpointing-zh.ipynb b/docs/checkpointing-zh.ipynb new file mode 100644 index 000000000..cae5420f8 --- /dev/null +++ b/docs/checkpointing-zh.ipynb @@ -0,0 +1,675 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "158db2bb300c7826", + "metadata": { + "collapsed": false + }, + "source": [ + "# 保存和加载检查点" + ] + }, + { + "cell_type": "markdown", + "id": "d775430d", + "metadata": {}, + "source": [ + "在本教程中,我们将探讨如何使用`orbax`库以及`braintools`的轻量级方法在`brainstate`中保存和加载检查点。这对于在训练过程中保存模型状态非常有用,这样您可以从中断的地方继续训练或稍后使用已训练的模型进行推理。以下示例演示了如何将`orbax`和`braintools`的检查点功能与一个简单的多层感知机(MLP)模型结合使用。" + ] + }, + { + "cell_type": "markdown", + "id": "d68c1c72", + "metadata": {}, + "source": [ + "首先,您可以通过运行以下命令安装`orbax`库:\n", + "\n", + "`pip install orbax-checkpoint`\n", + "\n", + "您也可以直接从 GitHub 安装,使用以下命令。这可以用来获取 Orbax 的最新版本。\n", + "\n", + "`pip install 'git+https://github.com/google/orbax/#subdirectory=checkpoint'`\n", + "\n", + "其次,您可以通过运行以下命令安装`braintools`库:\n", + "\n", + "`pip install braintools`" + ] + }, + { + "cell_type": "markdown", + "id": "d9b41392", + "metadata": {}, + "source": [ + "首先,我们将导入所需的库:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "8142091f", + "metadata": {}, + "outputs": [], + "source": [ + "import tempfile\n", + "import os\n", + "\n", + "import jax\n", + "import jax.numpy as jnp\n", + "import orbax.checkpoint as orbax\n", + "import braintools\n", + "\n", + "import brainstate" + ] + }, + { + "cell_type": "markdown", + "id": "3dede059", + "metadata": {}, + "source": [ + "## 定义模型\n", + "我们使用`brainstate`来定义一个简单的多层感知机(MLP)模型。" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "d090d2e3", + "metadata": {}, + "outputs": [], + "source": [ + "class MLP(brainstate.nn.Module):\n", + " def __init__(self, din: int, dmid: int, dout: int):\n", + " super().__init__()\n", + " self.dense1 = brainstate.nn.Linear(din, dmid)\n", + " self.dense2 = brainstate.nn.Linear(dmid, dout)\n", + "\n", + " def __call__(self, x: jax.Array) -> jax.Array:\n", + " x = self.dense1(x)\n", + " x = jax.nn.relu(x)\n", + " x = self.dense2(x)\n", + " return x" + ] + }, + { + "cell_type": "markdown", + "id": "066cc966", + "metadata": {}, + "source": [ + "## 创建模型\n", + "我们将设置随机数种子来实例化模型。" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "67ca04d3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "MLP(\n", + " dense1=Linear(\n", + " in_size=(10,),\n", + " out_size=(20,),\n", + " w_mask=None,\n", + " weight=ParamState(\n", + " value={'weight': Array([[ 0.74939334, 0.3148138 , 0.60089725, -0.7131149 , 0.6790908 ,\n", + " -0.44663328, 0.03113358, -0.5250644 , 0.1614144 , -0.39722365,\n", + " -0.23442519, 0.118144 , 0.7669531 , 0.06876656, 0.6045511 ,\n", + " 0.12086334, -0.88447595, -0.19188431, -0.85868365, 0.00500867],\n", + " [ 0.20412642, 0.07092498, 0.37392026, 0.34958398, -0.57214 ,\n", + " 0.71724516, -0.08160591, 0.50068825, -0.17175189, -0.08275215,\n", + " 0.6508336 , 0.28279537, 0.08821856, 0.83949256, 0.49844882,\n", + " -0.04159267, -0.47324428, 0.27084318, -0.58236146, -0.09787997],\n", + " [-0.04382031, -0.20300323, -0.04449642, 0.41578326, 0.5507486 ,\n", + " -0.15913244, -0.8612537 , 0.19072336, -0.16082875, -0.24696219,\n", + " -0.30372635, 0.6850187 , 0.32007053, 0.24253711, 0.28217098,\n", + " -0.8014343 , 0.48989874, -0.0160339 , 0.32790813, -0.49864978],\n", + " [-0.61840117, 0.21017133, 0.07593305, -0.02365256, -0.03401124,\n", + " -0.05115725, 0.6195931 , 0.15402867, 0.40200788, 0.34128165,\n", + " 0.00860781, -0.54993343, -0.5615623 , -0.09946032, -0.02702298,\n", + " 0.3336504 , -0.29341814, 0.3551176 , 0.20545702, -0.11665206],\n", + " [-0.16712527, -0.2531548 , 0.49188057, -0.1302325 , -0.12142995,\n", + " -0.03277557, 0.06477631, -0.30021554, -0.35658783, -0.5185722 ,\n", + " 0.15650164, -0.7464921 , -0.67454183, 0.09733332, -0.5153455 ,\n", + " 0.1480032 , -0.20877242, 0.16675173, 0.12827559, 0.5268865 ],\n", + " [-0.7994777 , -0.40662575, 0.28858158, -0.39780638, 0.6637344 ,\n", + " 0.09075797, -0.75130516, -0.26124355, 0.4175534 , -0.28502613,\n", + " -0.4241315 , 0.6746936 , 0.40870044, 0.94398546, -0.9198975 ,\n", + " -0.29775584, -0.09658122, -0.16053742, -0.05611025, 0.01059594],\n", + " [ 0.5480607 , -0.09164569, -0.7853424 , 0.74901533, -0.5906064 ,\n", + " -0.51409346, 0.10472732, -0.13107914, -0.45577446, -0.24654518,\n", + " 0.5399041 , -0.09071468, -0.5162382 , -0.01967659, -0.47176114,\n", + " -0.01017519, -0.5026951 , 0.05103482, 0.37542912, -0.25549397],\n", + " [-0.2706877 , 0.64187187, -0.505112 , -0.17481704, -0.88211423,\n", + " -0.8674219 , 0.5660908 , -0.20833156, 0.3285284 , 0.92883885,\n", + " -0.26592234, -0.47405127, 0.79681754, -0.5791843 , -0.27389136,\n", + " -0.3449671 , 0.509086 , 0.76971966, 0.10998839, -0.24425419],\n", + " [ 0.8046176 , -0.0295862 , 0.14252356, -0.1579972 , -0.20274054,\n", + " 0.01246137, -0.15756735, 0.32074738, 0.14097062, 0.03186554,\n", + " -0.1414449 , 0.4591949 , -0.21690284, -0.41089386, 0.26250118,\n", + " -0.0720875 , -0.05566718, -0.08271056, -0.37073353, 0.09257671],\n", + " [ 0.44894424, 0.22119072, -0.5117801 , -0.7407342 , -0.8777072 ,\n", + " 0.34723184, 0.0638053 , -0.10916334, 0.67356414, -0.21106955,\n", + " -0.24140975, 0.12431782, 0.2585294 , 0.06849731, -0.2997454 ,\n", + " -0.39390567, -0.25709096, -0.15120856, -0.10684931, 0.69015896]], dtype=float32), 'bias': Array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0.], dtype=float32)}\n", + " )\n", + " ),\n", + " dense2=Linear(\n", + " in_size=(20,),\n", + " out_size=(30,),\n", + " w_mask=None,\n", + " weight=ParamState(\n", + " value={'weight': Array([[ 0.62046814, 0.5301044 , -0.4739194 , -0.14099996, -0.14287984,\n", + " 0.1282555 , 0.3935479 , 0.21227883, 0.5402896 , -0.32984453,\n", + " 0.1054924 , -0.02015361, -0.24927817, 0.16467251, 0.5784846 ,\n", + " 0.2914683 , 0.35762057, 0.29866996, -0.19128309, 0.09088683,\n", + " -0.11386324, -0.22595015, 0.11267622, 0.5419977 , -0.37829107,\n", + " -0.09838869, -0.04575922, -0.7129366 , -0.32915255, 0.00509653],\n", + " [ 0.21818087, 0.08530099, 0.3571782 , 0.70128685, -0.04413987,\n", + " 0.5709911 , 0.12656331, 0.29721373, 0.47632915, -0.17275095,\n", + " -0.08733549, -0.22514656, -0.05714319, -0.27718347, -0.39045587,\n", + " 0.21975726, 0.18346666, -0.0382327 , 0.13839035, 0.1998283 ,\n", + " -0.09052311, 0.38183472, 0.4496051 , -0.23680712, -0.28785107,\n", + " 0.16122147, -0.33963904, 0.14983557, -0.43373275, -0.09495756],\n", + " [ 0.2568711 , 0.5197295 , -0.13442262, -0.6316247 , -0.6276094 ,\n", + " 0.396733 , 0.09978731, 0.37479848, 0.05811005, 0.38287428,\n", + " -0.23015432, 0.26524863, 0.40986276, 0.51085615, -0.16390967,\n", + " -0.08889349, 0.14242767, -0.04773026, 0.0186008 , 0.08168013,\n", + " 0.22218394, 0.45948145, 0.15798983, 0.11101982, -0.22625342,\n", + " -0.3179377 , 0.08289661, -0.35810882, -0.11701918, -0.07404168],\n", + " [ 0.3988777 , 0.09341867, -0.10675149, 0.24498817, 0.57484835,\n", + " 0.13964735, -0.09232395, 0.49800253, -0.11388287, -0.23314221,\n", + " -0.20017506, 0.17043568, -0.5916637 , -0.5033429 , -0.03982058,\n", + " -0.29196522, -0.06229761, -0.12120344, -0.04843295, 0.14077553,\n", + " -0.23975037, 0.25233614, -0.00446404, 0.6632397 , -0.32990777,\n", + " -0.42914438, -0.372548 , 0.30960974, 0.31027737, 0.3736987 ],\n", + " [-0.32519445, -0.0722824 , -0.06813759, 0.15726727, 0.52653533,\n", + " -0.39247712, -0.37830523, 0.20171025, -0.06937496, 0.24201019,\n", + " 0.1104718 , 0.62304336, 0.4803775 , -0.26503193, 0.5813743 ,\n", + " -0.22703817, 0.14889193, -0.09937828, 0.45811605, -0.53927666,\n", + " 0.38610622, 0.25877175, -0.57717675, -0.16893166, -0.17705517,\n", + " 0.2077132 , -0.24225888, -0.11191322, -0.00921882, -0.10405794],\n", + " [ 0.41278893, -0.27192885, 0.28467888, -0.21523082, 0.37667713,\n", + " 0.07426698, 0.22414407, -0.1354481 , -0.23419291, 0.2381074 ,\n", + " -0.24765436, 0.08778596, -0.00406975, -0.615931 , -0.09067997,\n", + " 0.26324016, -0.03728105, 0.29038942, 0.678011 , -0.6540893 ,\n", + " -0.5934551 , -0.16575795, 0.14227462, -0.0928836 , 0.24194399,\n", + " -0.04459891, 0.15232474, -0.21208623, -0.21339062, 0.07757895],\n", + " [-0.6379539 , 0.31518504, -0.11890189, -0.19096668, 0.21524261,\n", + " -0.06361473, 0.56184316, 0.028249 , -0.14510861, 0.08830918,\n", + " 0.08343762, -0.25384745, -0.33789673, 0.03700592, -0.19126455,\n", + " -0.01024354, -0.37079507, 0.24292567, 0.19478266, 0.5580041 ,\n", + " -0.35604435, 0.3915089 , -0.21796615, 0.0528199 , -0.13147084,\n", + " -0.05164728, -0.0625616 , 0.36192182, -0.05759151, 0.4186158 ],\n", + " [-0.04047865, 0.02108607, 0.41284686, 0.29146758, 0.20885086,\n", + " 0.20158692, -0.17301778, 0.27862224, 0.27474535, -0.19628745,\n", + " 0.15615414, 0.20871529, -0.314695 , -0.24115679, 0.33787283,\n", + " -0.14589988, -0.10813709, -0.039655 , -0.03082952, -0.66367936,\n", + " -0.2642637 , 0.2510051 , -0.08893799, 0.21589737, 0.51835227,\n", + " -0.44741842, -0.33786973, 0.6091706 , -0.3753065 , -0.37535354],\n", + " [ 0.11531412, 0.6267082 , -0.15149857, -0.3794238 , 0.55059415,\n", + " 0.23017633, -0.32434496, 0.2958217 , 0.41106105, 0.4731116 ,\n", + " -0.50055134, 0.01790522, -0.54518443, 0.04447998, -0.13089894,\n", + " -0.15774457, 0.09551436, -0.08697572, -0.05562068, -0.06885753,\n", + " 0.20314606, 0.14044988, -0.19203717, -0.4179157 , 0.18612123,\n", + " -0.14104603, -0.35670066, -0.24597271, 0.10614085, -0.12170368],\n", + " [ 0.23700227, 0.30524203, -0.3694181 , 0.33033338, 0.02095676,\n", + " -0.05125551, 0.11001365, -0.20992021, -0.05562193, -0.26372904,\n", + " -0.2967057 , -0.14012977, -0.14321879, -0.17379181, 0.5104145 ,\n", + " 0.11991877, -0.1430745 , -0.04331772, -0.41226274, 0.00449552,\n", + " -0.08277246, -0.12151891, -0.45340443, 0.12951623, -0.27139285,\n", + " 0.4472014 , 0.19157353, -0.4412653 , -0.04408614, 0.41542286],\n", + " [ 0.04913985, -0.04957955, -0.40214545, -0.24126607, -0.11509801,\n", + " -0.51304626, -0.3825655 , 0.34506062, -0.0222565 , -0.27472144,\n", + " -0.5477002 , -0.03630246, 0.17396483, 0.6892827 , 0.02867843,\n", + " 0.36273733, -0.34478036, 0.2839792 , 0.15002191, -0.20483544,\n", + " 0.15306501, -0.06504299, -0.00701311, 0.0804052 , 0.44663915,\n", + " 0.11938784, -0.05011488, 0.06942522, -0.1151372 , 0.2728172 ],\n", + " [-0.30464825, 0.11323573, 0.02953907, -0.7024937 , -0.04522578,\n", + " 0.10622236, -0.1298965 , 0.0872021 , -0.36016473, -0.11690426,\n", + " -0.07054564, -0.32576308, -0.30710763, -0.6661573 , 0.13130474,\n", + " 0.00769307, 0.00603968, -0.5331483 , -0.00946458, -0.08804175,\n", + " 0.01258891, 0.19920264, -0.52920264, 0.11547033, 0.0503376 ,\n", + " 0.2710771 , 0.20577058, -0.16118994, 0.03479335, 0.30332327],\n", + " [-0.11540684, -0.21528308, -0.09639532, -0.38324118, 0.08790598,\n", + " -0.05113763, -0.22907412, 0.08176684, -0.13504112, -0.14580515,\n", + " -0.10574839, -0.13816664, 0.25279123, -0.35016036, -0.02811426,\n", + " 0.1878024 , 0.33833987, -0.44787505, 0.05859555, -0.12482259,\n", + " 0.4109398 , -0.3567587 , 0.4436607 , -0.13256377, 0.42250675,\n", + " 0.33017033, 0.28086263, 0.33791474, 0.24015151, -0.23016477],\n", + " [ 0.46682912, -0.63216 , 0.43159592, 0.21971288, -0.07587896,\n", + " -0.25639635, -0.42970398, -0.4962936 , -0.21198583, 0.18351796,\n", + " 0.01911162, -0.3004833 , -0.41785267, -0.04077749, -0.20676233,\n", + " -0.11401828, 0.12992048, 0.03491049, 0.05013497, 0.57222587,\n", + " -0.12001502, -0.17038153, -0.31871405, -0.32121637, 0.66278815,\n", + " 0.61774564, -0.01240813, -0.06011448, 0.29245874, -0.3879291 ],\n", + " [ 0.02741514, 0.31249774, -0.15944321, 0.14222006, 0.611036 ,\n", + " 0.02716783, 0.48367155, -0.59191144, -0.260246 , 0.29856846,\n", + " 0.36217022, 0.26721174, 0.1436277 , 0.2510483 , 0.63455343,\n", + " 0.22804502, 0.21089312, -0.03622444, 0.24770333, 0.12762095,\n", + " -0.11348359, 0.71003526, -0.6399693 , 0.2956937 , -0.40721762,\n", + " 0.07830685, -0.12750737, 0.09320084, -0.37348104, 0.6469367 ],\n", + " [-0.21946031, 0.58491176, 0.6910229 , -0.38729444, -0.22691855,\n", + " 0.09827446, -0.27745098, 0.3286477 , -0.28397417, 0.3331472 ,\n", + " -0.10511833, 0.04856022, 0.6826674 , -0.19410591, -0.03848339,\n", + " 0.2877471 , 0.42053938, -0.3121656 , 0.1115057 , 0.3940428 ,\n", + " 0.22287792, -0.11617415, -0.15520288, -0.17891021, 0.08283449,\n", + " -0.45727572, -0.08755263, -0.30042952, 0.04397725, -0.32858402],\n", + " [-0.04652168, 0.22256051, 0.34796244, -0.57714033, -0.19478762,\n", + " -0.04000793, -0.22230573, -0.1784827 , 0.18552966, 0.3517072 ,\n", + " -0.43350866, 0.3370349 , 0.34543782, -0.25484002, -0.06113737,\n", + " -0.29600585, 0.55229264, 0.26264954, -0.12024187, 0.06554315,\n", + " 0.33039162, -0.4056347 , -0.22326599, -0.20423931, -0.20365807,\n", + " 0.5614395 , -0.33278635, 0.3678192 , -0.38601917, -0.12349749],\n", + " [ 0.21260151, -0.6383393 , -0.04182729, 0.21110533, -0.16549559,\n", + " 0.20241106, 0.42155504, 0.2782736 , -0.5695076 , 0.3197464 ,\n", + " 0.3593777 , 0.15281492, -0.16649725, -0.32258078, -0.19450592,\n", + " -0.5648749 , 0.14112377, -0.08617025, 0.2822599 , 0.65894157,\n", + " 0.06424519, -0.02703291, 0.41351956, -0.06962998, -0.03156902,\n", + " -0.3027034 , -0.15010884, 0.3097132 , -0.01670518, 0.13812247],\n", + " [-0.35231128, -0.06400244, -0.5534636 , 0.08153537, -0.1431605 ,\n", + " 0.19649687, -0.57627857, 0.14731233, -0.5345133 , 0.14830953,\n", + " 0.11090186, -0.5130216 , 0.07951056, 0.042261 , 0.0088584 ,\n", + " 0.0693031 , -0.25705618, 0.07637526, -0.2910843 , 0.26884285,\n", + " -0.3668523 , -0.51732624, 0.32633176, 0.4078384 , 0.07319385,\n", + " 0.24243955, -0.39059573, -0.14434972, -0.20902094, 0.03081408],\n", + " [-0.29074088, -0.340606 , 0.24403909, 0.28382063, 0.57466537,\n", + " 0.24103518, -0.53504395, -0.12040613, -0.21954668, -0.11855581,\n", + " 0.20805535, -0.6497588 , 0.03112273, -0.06355662, 0.22711465,\n", + " -0.00476316, -0.4368407 , -0.26775414, 0.02075309, -0.0473614 ,\n", + " -0.12880138, 0.15983032, 0.18893135, -0.06872427, -0.14535248,\n", + " 0.27104148, -0.31298438, 0.14454837, -0.1837953 , 0.4652801 ]], dtype=float32), 'bias': Array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32)}\n", + " )\n", + " )\n", + ")" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "SEED = 42\n", + "brainstate.random.seed(SEED) # 在brainstate中设置随机种子\n", + "model1 = MLP(10, 20, 30) # 创建模型\n", + "model1" + ] + }, + { + "cell_type": "markdown", + "id": "1d7e2cc4", + "metadata": {}, + "source": [ + "## 保存模型参数\n", + "\n", + "### 使用`orbax`保存检查点\n", + "我们将模型参数保存到检查点文件中。" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "c529099d", + "metadata": {}, + "outputs": [], + "source": [ + "tmpdir = tempfile.mkdtemp() # 创建临时目录\n", + "state_tree = brainstate.graph.treefy_states(model1) # 将模型的状态转换为树结构\n", + "checkpointer = orbax.PyTreeCheckpointer() # 创建检查点对象\n", + "checkpointer.save(os.path.join(tmpdir, 'state'), state_tree) # 保存模型的参数" + ] + }, + { + "cell_type": "markdown", + "id": "92448b34", + "metadata": {}, + "source": [ + "现在,我们已经将模型的参数通过`orbax`保存到`tmpdir/state`的检查点文件中。" + ] + }, + { + "cell_type": "markdown", + "id": "a8b032ba", + "metadata": {}, + "source": [ + "### 使用`braintools`保存检查点" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "ed7f1c6e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving checkpoint into C:\\Users\\13107\\AppData\\Local\\Temp\\tmp483fc4t1\\state.msgpack\n" + ] + } + ], + "source": [ + "checkpoint = brainstate.graph.states(model1).to_nest() # 将模型的状态转换为nest结构\n", + "braintools.file.msgpack_save(os.path.join(tmpdir, 'state.msgpack'), checkpoint) # 保存模型的参数" + ] + }, + { + "cell_type": "markdown", + "id": "18976368", + "metadata": {}, + "source": [ + "现在,我们已经将模型的参数通过`braintools`保存到`tmpdir/state.msgpack`的检查点文件中。" + ] + }, + { + "cell_type": "markdown", + "id": "2b4033c6", + "metadata": {}, + "source": [ + "## 加载模型参数\n", + "\n", + "### 使用`orbax`加载检查点\n", + "我们将从检查点文件中加载模型的参数。" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "db238309", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\routhleck_app\\miniconda\\envs\\brainstate\\lib\\site-packages\\orbax\\checkpoint\\_src\\serialization\\type_handlers.py:1123: UserWarning: Couldn't find sharding info under RestoreArgs. Populating sharding info from sharding file. Please note restoration time will be slightly increased due to reading from file instead of directly from RestoreArgs. Note also that this option is unsafe when restoring on a different topology than the checkpoint was saved with.\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "# 创建一个有着相同结构的模型\n", + "brainstate.random.seed(0)\n", + "model2 = brainstate.augment.abstract_init(lambda: MLP(10, 20, 30))\n", + "state_tree = brainstate.graph.treefy_states(model2)\n", + "\n", + "# 从检查点文件读取模型参数\n", + "checkpointer = orbax.PyTreeCheckpointer()\n", + "state_tree = checkpointer.restore(os.path.join(tmpdir, 'state'), item=state_tree)\n", + "\n", + "# 更新模型的状态\n", + "brainstate.graph.update_states(model2, state_tree)" + ] + }, + { + "cell_type": "markdown", + "id": "aa75ceb7", + "metadata": {}, + "source": [ + "### 使用`braintools`加载检查点\n", + "我们将从检查点文件中加载模型的参数。" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "b0fbd6f6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading checkpoint from C:\\Users\\13107\\AppData\\Local\\Temp\\tmp483fc4t1\\state.msgpack\n" + ] + }, + { + "data": { + "text/plain": [ + "{'dense1': {'weight': ParamState(\n", + " value={'bias': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0.], dtype=float32), 'weight': array([[ 0.74939334, 0.3148138 , 0.60089725, -0.7131149 , 0.6790908 ,\n", + " -0.44663328, 0.03113358, -0.5250644 , 0.1614144 , -0.39722365,\n", + " -0.23442519, 0.118144 , 0.7669531 , 0.06876656, 0.6045511 ,\n", + " 0.12086334, -0.88447595, -0.19188431, -0.85868365, 0.00500867],\n", + " [ 0.20412642, 0.07092498, 0.37392026, 0.34958398, -0.57214 ,\n", + " 0.71724516, -0.08160591, 0.50068825, -0.17175189, -0.08275215,\n", + " 0.6508336 , 0.28279537, 0.08821856, 0.83949256, 0.49844882,\n", + " -0.04159267, -0.47324428, 0.27084318, -0.58236146, -0.09787997],\n", + " [-0.04382031, -0.20300323, -0.04449642, 0.41578326, 0.5507486 ,\n", + " -0.15913244, -0.8612537 , 0.19072336, -0.16082875, -0.24696219,\n", + " -0.30372635, 0.6850187 , 0.32007053, 0.24253711, 0.28217098,\n", + " -0.8014343 , 0.48989874, -0.0160339 , 0.32790813, -0.49864978],\n", + " [-0.61840117, 0.21017133, 0.07593305, -0.02365256, -0.03401124,\n", + " -0.05115725, 0.6195931 , 0.15402867, 0.40200788, 0.34128165,\n", + " 0.00860781, -0.54993343, -0.5615623 , -0.09946032, -0.02702298,\n", + " 0.3336504 , -0.29341814, 0.3551176 , 0.20545702, -0.11665206],\n", + " [-0.16712527, -0.2531548 , 0.49188057, -0.1302325 , -0.12142995,\n", + " -0.03277557, 0.06477631, -0.30021554, -0.35658783, -0.5185722 ,\n", + " 0.15650164, -0.7464921 , -0.67454183, 0.09733332, -0.5153455 ,\n", + " 0.1480032 , -0.20877242, 0.16675173, 0.12827559, 0.5268865 ],\n", + " [-0.7994777 , -0.40662575, 0.28858158, -0.39780638, 0.6637344 ,\n", + " 0.09075797, -0.75130516, -0.26124355, 0.4175534 , -0.28502613,\n", + " -0.4241315 , 0.6746936 , 0.40870044, 0.94398546, -0.9198975 ,\n", + " -0.29775584, -0.09658122, -0.16053742, -0.05611025, 0.01059594],\n", + " [ 0.5480607 , -0.09164569, -0.7853424 , 0.74901533, -0.5906064 ,\n", + " -0.51409346, 0.10472732, -0.13107914, -0.45577446, -0.24654518,\n", + " 0.5399041 , -0.09071468, -0.5162382 , -0.01967659, -0.47176114,\n", + " -0.01017519, -0.5026951 , 0.05103482, 0.37542912, -0.25549397],\n", + " [-0.2706877 , 0.64187187, -0.505112 , -0.17481704, -0.88211423,\n", + " -0.8674219 , 0.5660908 , -0.20833156, 0.3285284 , 0.92883885,\n", + " -0.26592234, -0.47405127, 0.79681754, -0.5791843 , -0.27389136,\n", + " -0.3449671 , 0.509086 , 0.76971966, 0.10998839, -0.24425419],\n", + " [ 0.8046176 , -0.0295862 , 0.14252356, -0.1579972 , -0.20274054,\n", + " 0.01246137, -0.15756735, 0.32074738, 0.14097062, 0.03186554,\n", + " -0.1414449 , 0.4591949 , -0.21690284, -0.41089386, 0.26250118,\n", + " -0.0720875 , -0.05566718, -0.08271056, -0.37073353, 0.09257671],\n", + " [ 0.44894424, 0.22119072, -0.5117801 , -0.7407342 , -0.8777072 ,\n", + " 0.34723184, 0.0638053 , -0.10916334, 0.67356414, -0.21106955,\n", + " -0.24140975, 0.12431782, 0.2585294 , 0.06849731, -0.2997454 ,\n", + " -0.39390567, -0.25709096, -0.15120856, -0.10684931, 0.69015896]],\n", + " dtype=float32)}\n", + " )},\n", + " 'dense2': {'weight': ParamState(\n", + " value={'bias': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), 'weight': array([[ 0.62046814, 0.5301044 , -0.4739194 , -0.14099996, -0.14287984,\n", + " 0.1282555 , 0.3935479 , 0.21227883, 0.5402896 , -0.32984453,\n", + " 0.1054924 , -0.02015361, -0.24927817, 0.16467251, 0.5784846 ,\n", + " 0.2914683 , 0.35762057, 0.29866996, -0.19128309, 0.09088683,\n", + " -0.11386324, -0.22595015, 0.11267622, 0.5419977 , -0.37829107,\n", + " -0.09838869, -0.04575922, -0.7129366 , -0.32915255, 0.00509653],\n", + " [ 0.21818087, 0.08530099, 0.3571782 , 0.70128685, -0.04413987,\n", + " 0.5709911 , 0.12656331, 0.29721373, 0.47632915, -0.17275095,\n", + " -0.08733549, -0.22514656, -0.05714319, -0.27718347, -0.39045587,\n", + " 0.21975726, 0.18346666, -0.0382327 , 0.13839035, 0.1998283 ,\n", + " -0.09052311, 0.38183472, 0.4496051 , -0.23680712, -0.28785107,\n", + " 0.16122147, -0.33963904, 0.14983557, -0.43373275, -0.09495756],\n", + " [ 0.2568711 , 0.5197295 , -0.13442262, -0.6316247 , -0.6276094 ,\n", + " 0.396733 , 0.09978731, 0.37479848, 0.05811005, 0.38287428,\n", + " -0.23015432, 0.26524863, 0.40986276, 0.51085615, -0.16390967,\n", + " -0.08889349, 0.14242767, -0.04773026, 0.0186008 , 0.08168013,\n", + " 0.22218394, 0.45948145, 0.15798983, 0.11101982, -0.22625342,\n", + " -0.3179377 , 0.08289661, -0.35810882, -0.11701918, -0.07404168],\n", + " [ 0.3988777 , 0.09341867, -0.10675149, 0.24498817, 0.57484835,\n", + " 0.13964735, -0.09232395, 0.49800253, -0.11388287, -0.23314221,\n", + " -0.20017506, 0.17043568, -0.5916637 , -0.5033429 , -0.03982058,\n", + " -0.29196522, -0.06229761, -0.12120344, -0.04843295, 0.14077553,\n", + " -0.23975037, 0.25233614, -0.00446404, 0.6632397 , -0.32990777,\n", + " -0.42914438, -0.372548 , 0.30960974, 0.31027737, 0.3736987 ],\n", + " [-0.32519445, -0.0722824 , -0.06813759, 0.15726727, 0.52653533,\n", + " -0.39247712, -0.37830523, 0.20171025, -0.06937496, 0.24201019,\n", + " 0.1104718 , 0.62304336, 0.4803775 , -0.26503193, 0.5813743 ,\n", + " -0.22703817, 0.14889193, -0.09937828, 0.45811605, -0.53927666,\n", + " 0.38610622, 0.25877175, -0.57717675, -0.16893166, -0.17705517,\n", + " 0.2077132 , -0.24225888, -0.11191322, -0.00921882, -0.10405794],\n", + " [ 0.41278893, -0.27192885, 0.28467888, -0.21523082, 0.37667713,\n", + " 0.07426698, 0.22414407, -0.1354481 , -0.23419291, 0.2381074 ,\n", + " -0.24765436, 0.08778596, -0.00406975, -0.615931 , -0.09067997,\n", + " 0.26324016, -0.03728105, 0.29038942, 0.678011 , -0.6540893 ,\n", + " -0.5934551 , -0.16575795, 0.14227462, -0.0928836 , 0.24194399,\n", + " -0.04459891, 0.15232474, -0.21208623, -0.21339062, 0.07757895],\n", + " [-0.6379539 , 0.31518504, -0.11890189, -0.19096668, 0.21524261,\n", + " -0.06361473, 0.56184316, 0.028249 , -0.14510861, 0.08830918,\n", + " 0.08343762, -0.25384745, -0.33789673, 0.03700592, -0.19126455,\n", + " -0.01024354, -0.37079507, 0.24292567, 0.19478266, 0.5580041 ,\n", + " -0.35604435, 0.3915089 , -0.21796615, 0.0528199 , -0.13147084,\n", + " -0.05164728, -0.0625616 , 0.36192182, -0.05759151, 0.4186158 ],\n", + " [-0.04047865, 0.02108607, 0.41284686, 0.29146758, 0.20885086,\n", + " 0.20158692, -0.17301778, 0.27862224, 0.27474535, -0.19628745,\n", + " 0.15615414, 0.20871529, -0.314695 , -0.24115679, 0.33787283,\n", + " -0.14589988, -0.10813709, -0.039655 , -0.03082952, -0.66367936,\n", + " -0.2642637 , 0.2510051 , -0.08893799, 0.21589737, 0.51835227,\n", + " -0.44741842, -0.33786973, 0.6091706 , -0.3753065 , -0.37535354],\n", + " [ 0.11531412, 0.6267082 , -0.15149857, -0.3794238 , 0.55059415,\n", + " 0.23017633, -0.32434496, 0.2958217 , 0.41106105, 0.4731116 ,\n", + " -0.50055134, 0.01790522, -0.54518443, 0.04447998, -0.13089894,\n", + " -0.15774457, 0.09551436, -0.08697572, -0.05562068, -0.06885753,\n", + " 0.20314606, 0.14044988, -0.19203717, -0.4179157 , 0.18612123,\n", + " -0.14104603, -0.35670066, -0.24597271, 0.10614085, -0.12170368],\n", + " [ 0.23700227, 0.30524203, -0.3694181 , 0.33033338, 0.02095676,\n", + " -0.05125551, 0.11001365, -0.20992021, -0.05562193, -0.26372904,\n", + " -0.2967057 , -0.14012977, -0.14321879, -0.17379181, 0.5104145 ,\n", + " 0.11991877, -0.1430745 , -0.04331772, -0.41226274, 0.00449552,\n", + " -0.08277246, -0.12151891, -0.45340443, 0.12951623, -0.27139285,\n", + " 0.4472014 , 0.19157353, -0.4412653 , -0.04408614, 0.41542286],\n", + " [ 0.04913985, -0.04957955, -0.40214545, -0.24126607, -0.11509801,\n", + " -0.51304626, -0.3825655 , 0.34506062, -0.0222565 , -0.27472144,\n", + " -0.5477002 , -0.03630246, 0.17396483, 0.6892827 , 0.02867843,\n", + " 0.36273733, -0.34478036, 0.2839792 , 0.15002191, -0.20483544,\n", + " 0.15306501, -0.06504299, -0.00701311, 0.0804052 , 0.44663915,\n", + " 0.11938784, -0.05011488, 0.06942522, -0.1151372 , 0.2728172 ],\n", + " [-0.30464825, 0.11323573, 0.02953907, -0.7024937 , -0.04522578,\n", + " 0.10622236, -0.1298965 , 0.0872021 , -0.36016473, -0.11690426,\n", + " -0.07054564, -0.32576308, -0.30710763, -0.6661573 , 0.13130474,\n", + " 0.00769307, 0.00603968, -0.5331483 , -0.00946458, -0.08804175,\n", + " 0.01258891, 0.19920264, -0.52920264, 0.11547033, 0.0503376 ,\n", + " 0.2710771 , 0.20577058, -0.16118994, 0.03479335, 0.30332327],\n", + " [-0.11540684, -0.21528308, -0.09639532, -0.38324118, 0.08790598,\n", + " -0.05113763, -0.22907412, 0.08176684, -0.13504112, -0.14580515,\n", + " -0.10574839, -0.13816664, 0.25279123, -0.35016036, -0.02811426,\n", + " 0.1878024 , 0.33833987, -0.44787505, 0.05859555, -0.12482259,\n", + " 0.4109398 , -0.3567587 , 0.4436607 , -0.13256377, 0.42250675,\n", + " 0.33017033, 0.28086263, 0.33791474, 0.24015151, -0.23016477],\n", + " [ 0.46682912, -0.63216 , 0.43159592, 0.21971288, -0.07587896,\n", + " -0.25639635, -0.42970398, -0.4962936 , -0.21198583, 0.18351796,\n", + " 0.01911162, -0.3004833 , -0.41785267, -0.04077749, -0.20676233,\n", + " -0.11401828, 0.12992048, 0.03491049, 0.05013497, 0.57222587,\n", + " -0.12001502, -0.17038153, -0.31871405, -0.32121637, 0.66278815,\n", + " 0.61774564, -0.01240813, -0.06011448, 0.29245874, -0.3879291 ],\n", + " [ 0.02741514, 0.31249774, -0.15944321, 0.14222006, 0.611036 ,\n", + " 0.02716783, 0.48367155, -0.59191144, -0.260246 , 0.29856846,\n", + " 0.36217022, 0.26721174, 0.1436277 , 0.2510483 , 0.63455343,\n", + " 0.22804502, 0.21089312, -0.03622444, 0.24770333, 0.12762095,\n", + " -0.11348359, 0.71003526, -0.6399693 , 0.2956937 , -0.40721762,\n", + " 0.07830685, -0.12750737, 0.09320084, -0.37348104, 0.6469367 ],\n", + " [-0.21946031, 0.58491176, 0.6910229 , -0.38729444, -0.22691855,\n", + " 0.09827446, -0.27745098, 0.3286477 , -0.28397417, 0.3331472 ,\n", + " -0.10511833, 0.04856022, 0.6826674 , -0.19410591, -0.03848339,\n", + " 0.2877471 , 0.42053938, -0.3121656 , 0.1115057 , 0.3940428 ,\n", + " 0.22287792, -0.11617415, -0.15520288, -0.17891021, 0.08283449,\n", + " -0.45727572, -0.08755263, -0.30042952, 0.04397725, -0.32858402],\n", + " [-0.04652168, 0.22256051, 0.34796244, -0.57714033, -0.19478762,\n", + " -0.04000793, -0.22230573, -0.1784827 , 0.18552966, 0.3517072 ,\n", + " -0.43350866, 0.3370349 , 0.34543782, -0.25484002, -0.06113737,\n", + " -0.29600585, 0.55229264, 0.26264954, -0.12024187, 0.06554315,\n", + " 0.33039162, -0.4056347 , -0.22326599, -0.20423931, -0.20365807,\n", + " 0.5614395 , -0.33278635, 0.3678192 , -0.38601917, -0.12349749],\n", + " [ 0.21260151, -0.6383393 , -0.04182729, 0.21110533, -0.16549559,\n", + " 0.20241106, 0.42155504, 0.2782736 , -0.5695076 , 0.3197464 ,\n", + " 0.3593777 , 0.15281492, -0.16649725, -0.32258078, -0.19450592,\n", + " -0.5648749 , 0.14112377, -0.08617025, 0.2822599 , 0.65894157,\n", + " 0.06424519, -0.02703291, 0.41351956, -0.06962998, -0.03156902,\n", + " -0.3027034 , -0.15010884, 0.3097132 , -0.01670518, 0.13812247],\n", + " [-0.35231128, -0.06400244, -0.5534636 , 0.08153537, -0.1431605 ,\n", + " 0.19649687, -0.57627857, 0.14731233, -0.5345133 , 0.14830953,\n", + " 0.11090186, -0.5130216 , 0.07951056, 0.042261 , 0.0088584 ,\n", + " 0.0693031 , -0.25705618, 0.07637526, -0.2910843 , 0.26884285,\n", + " -0.3668523 , -0.51732624, 0.32633176, 0.4078384 , 0.07319385,\n", + " 0.24243955, -0.39059573, -0.14434972, -0.20902094, 0.03081408],\n", + " [-0.29074088, -0.340606 , 0.24403909, 0.28382063, 0.57466537,\n", + " 0.24103518, -0.53504395, -0.12040613, -0.21954668, -0.11855581,\n", + " 0.20805535, -0.6497588 , 0.03112273, -0.06355662, 0.22711465,\n", + " -0.00476316, -0.4368407 , -0.26775414, 0.02075309, -0.0473614 ,\n", + " -0.12880138, 0.15983032, 0.18893135, -0.06872427, -0.14535248,\n", + " 0.27104148, -0.31298438, 0.14454837, -0.1837953 , 0.4652801 ]],\n", + " dtype=float32)}\n", + " )}}" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 创建一个有着相同结构的模型\n", + "brainstate.random.seed(0)\n", + "model3 = brainstate.augment.abstract_init(lambda: MLP(10, 20, 30))\n", + "checkpoint = brainstate.graph.states(model3).to_nest()\n", + "\n", + "# 从msgpack文件读取模型参数\n", + "braintools.file.msgpack_load(os.path.join(tmpdir, 'state.msgpack'), checkpoint)" + ] + }, + { + "cell_type": "markdown", + "id": "11994171", + "metadata": {}, + "source": [ + "## 验证加载的模型\n", + "让我们运行加载的模型并检查它是否产生与原始模型相同的输出。" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "64810e26", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n", + "True\n" + ] + } + ], + "source": [ + "y1 = model1(jnp.ones((1, 10)))\n", + "y2 = model2(jnp.ones((1, 10)))\n", + "y3 = model3(jnp.ones((1, 10)))\n", + "print(jnp.allclose(y1, y2)) # True\n", + "print(jnp.allclose(y1, y3)) # True" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "brainstate", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.15" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/conf.py b/docs/conf.py index aeb13f630..6538d0999 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -22,6 +22,9 @@ import brainpy shutil.copytree('../images/', './_static/logos/', dirs_exist_ok=True) shutil.copyfile('../changelog.md', './changelog.md') +shutil.rmtree('./generated') +shutil.rmtree('./_build') + # -- Project information ----------------------------------------------------- @@ -29,6 +32,10 @@ copyright = '2020-, BrainPy' author = 'BrainPy Team' +from highlight_test_lexer import fix_ipython2_lexer_in_notebooks + +fix_ipython2_lexer_in_notebooks(os.path.dirname(os.path.abspath(__file__))) + # The full version, including alpha/beta/rc tags release = brainpy.__version__ @@ -48,7 +55,8 @@ 'myst_nb', 'matplotlib.sphinxext.plot_directive', 'sphinx_thebe', - 'sphinx_design' + 'sphinx_design', + 'sphinx_math_dollar', # 'sphinx-mathjax-offline', ] # Add any paths that contain custom static files (such as style sheets) here, diff --git a/docs/highlight_test_lexer.py b/docs/highlight_test_lexer.py new file mode 100644 index 000000000..91a53c34a --- /dev/null +++ b/docs/highlight_test_lexer.py @@ -0,0 +1,124 @@ +# Copyright 2024 Brain Simulation Ecosystem Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + + +import glob +import json +import os +import sys + + +def fix_ipython2_lexer_in_notebooks(directory_path): + """ + 批量修复指定目录中所有 Jupyter Notebook 文件的 ipython2 lexer 问题 + """ + # 查找所有.ipynb文件 + notebook_files = glob.glob(os.path.join(directory_path, "*.ipynb")) + + if not notebook_files: + print(f"在目录 {directory_path} 中未找到任何 .ipynb 文件") + return + + fixed_count = 0 + + for file_path in notebook_files: + try: + with open(file_path, 'r', encoding='utf-8') as f: + data = json.load(f) + + needs_fix = False + + # 检查并修复顶层元数据 + if 'metadata' in data: + # 修复 language_info + if 'language_info' in data['metadata']: + lang_info = data['metadata']['language_info'] + if lang_info.get('name') == 'ipython2': + lang_info['name'] = 'ipython3' + needs_fix = True + print(f"修复 {os.path.basename(file_path)}: 顶层 language_info.name") + + if lang_info.get('pygments_lexer') == 'ipython2': + lang_info['pygments_lexer'] = 'ipython3' + needs_fix = True + print(f"修复 {os.path.basename(file_path)}: 顶层 language_info.pygments_lexer") + + # 修复 kernelspec + if 'kernelspec' in data['metadata']: + kernelspec = data['metadata']['kernelspec'] + if kernelspec.get('language') == 'ipython2': + kernelspec['language'] = 'python' + needs_fix = True + print(f"修复 {os.path.basename(file_path)}: 顶层 kernelspec.language") + + if kernelspec.get('name') == 'ipython2': + kernelspec['name'] = 'python3' + needs_fix = True + print(f"修复 {os.path.basename(file_path)}: 顶层 kernelspec.name") + + # 检查并修复单元格元数据 + for i, cell in enumerate(data.get('cells', [])): + if 'metadata' in cell: + # 修复单元格级别的语言设置 + if 'language' in cell['metadata'] and cell['metadata']['language'] == 'ipython2': + cell['metadata']['language'] = 'ipython3' + needs_fix = True + print(f"修复 {os.path.basename(file_path)}: 单元格 {i} 的语言设置") + + # 修复其他可能的 lexer 设置 + if 'pygments_lexer' in cell['metadata'] and cell['metadata']['pygments_lexer'] == 'ipython2': + cell['metadata']['pygments_lexer'] = 'ipython3' + needs_fix = True + print(f"修复 {os.path.basename(file_path)}: 单元格 {i} 的 pygments_lexer 设置") + + # 如果需要修复,保存文件 + if needs_fix: + # 创建备份 + backup_path = file_path + '.backup' + with open(backup_path, 'w', encoding='utf-8') as f: + json.dump(data, f, indent=2, ensure_ascii=False) + + # 保存修复后的文件 + with open(file_path, 'w', encoding='utf-8') as f: + json.dump(data, f, indent=2, ensure_ascii=False) + + fixed_count += 1 + print(f"已修复并备份: {os.path.basename(file_path)}") + else: + print(f"无需修复: {os.path.basename(file_path)}") + + except Exception as e: + print(f"处理文件 {file_path} 时出错: {str(e)}") + + print(f"\n处理完成! 共修复了 {fixed_count} 个文件") + return fixed_count + + +if __name__ == "__main__": + import os + print(os.path.dirname(os.path.abspath(__file__))) + + # 使用当前目录,或者指定您的文档目录路径 + target_directory = input("请输入包含.ipynb文件的目录路径(直接回车使用当前目录): ").strip() + + if not target_directory: + target_directory = "." + + if not os.path.isdir(target_directory): + print(f"错误: 目录 '{target_directory}' 不存在") + sys.exit(1) + + print(f"开始处理目录: {os.path.abspath(target_directory)}") + fix_ipython2_lexer_in_notebooks(target_directory) diff --git a/docs/snn_simulation-en.ipynb b/docs/snn_simulation-en.ipynb new file mode 100644 index 000000000..ec0d5559c --- /dev/null +++ b/docs/snn_simulation-en.ipynb @@ -0,0 +1,680 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b78f6e1b6cb0dada", + "metadata": { + "collapsed": false + }, + "source": [ + "# Simulating Spiking Neural Networks\n", + "\n", + "Building and simulating brain dynamics models is one of the important methods for studying brain dynamics. In spiking neural network simulations, we specify the model and input parameters, and conduct simulation experiments. During this process, parameter learning and updates (such as synaptic weights) are not involved. The main purpose is to simulate and analyze the designed network.\n", + "\n", + "The spiking neural network models of brain dynamics can be divided into **single neuron models** and **neural network models**. We will demonstrate an example for each of these." + ] + }, + { + "cell_type": "markdown", + "id": "c5622779", + "metadata": {}, + "source": [ + "## Simulation of a Single Neuron Model\n", + "\n", + "The **Hodgkin-Huxley (HH) model** is a mathematical model proposed in 1952 by neurophysiologists Allen Hodgkin (1914-1998) and Andrew Huxley (1917-2012) to describe the generation and propagation of action potentials in neurons. The HH model is based on the classical electrical circuit model and links the dynamic changes of the neuron membrane potential with the biophysical properties of the membrane ion channels. It is one of the most important theoretical models in neuroscience and earned the two researchers the Nobel Prize in Physiology or Medicine in 1963. The mathematical definition of the HH model is:\n", + "\n", + "$$\n", + "\\begin{aligned}C \\frac {dV} {dt} = -(\\bar{g}_{Na} m^3 h (V &-E_{Na}) + \\bar{g}_K n^4 (V-E_K) + g_{leak} (V - E_{leak})) + I(t)\\\\\n", + "\\frac {dx} {dt} &= \\alpha_x (1-x) - \\beta_x, \\quad x\\in {\\rm{\\{m, h, n\\}}}\\\\\n", + "&\\alpha_m(V) = \\frac {0.1(V+40)}{1-\\exp(\\frac{-(V + 40)} {10})}\\\\\n", + "&\\beta_m(V) = 4.0 \\exp(\\frac{-(V + 65)} {18})\\\\\n", + "&\\alpha_h(V) = 0.07 \\exp(\\frac{-(V+65)}{20})\\\\\n", + "&\\beta_h(V) = \\frac 1 {1 + \\exp(\\frac{-(V + 35)} {10})}\\\\\n", + "&\\alpha_n(V) = \\frac {0.01(V+55)}{1-\\exp(-(V+55)/10)}\\\\\n", + "&\\beta_n(V) = 0.125 \\exp(\\frac{-(V + 65)} {80})\\end{aligned}\n", + "$$\n", + "\n", + "In this tutorial, we simulate the HH model as an example of a single neuron model.``brainstate`` can run multiple neuron models in parallel, which saves time. We will simulate a group of HH neurons." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "9dd07dd9", + "metadata": {}, + "outputs": [], + "source": [ + "import brainunit as u\n", + "import jax.numpy as jnp\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import brainstate" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "051f8f24", + "metadata": {}, + "outputs": [], + "source": "# brainstate.environ.set(platform='gpu')" + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "60058528", + "metadata": {}, + "outputs": [], + "source": "brainstate.random.seed(100)" + }, + { + "cell_type": "markdown", + "id": "a6ba5685", + "metadata": {}, + "source": [ + "## Defining the Single Neuron Model\n", + "\n", + "We can use ``brainstate`` to define custom neuron models. To define a custom neuron model, we need to inherit the base class ``brainstate.nn.Dynamics``.\n", + "\n", + "1. First, define the initialization method ``__init__()``. This method receives the number of neurons running in parallel, ``in_size``, and other model parameters. The base class is initialized with ``in_size``, and the model parameters are set as class attributes for easy access.\n", + "\n", + "2. Then, we can define some common calculations as class methods for later use. Here, we implement functions related to the calculations of m, h, and n. Note that for the drift term function of an ordinary differential equation, the order of the incoming parameters should be, the dynamic variable, the current moment t and the other parameters.\n", + "\n", + "3. Next, define the state initialization method ``init_state()``. Unlike ``__init__()``, this method initializes the model's state, not the model parameters. The state refers to variables that change during the model's operation. In ``brainstate``, all variables that need to change must be encapsulated in a ``State`` object. The hidden state variables, which change during the model's operation, must be encapsulated in a ``HiddenState`` object (a subclass of ``State``).\n", + "\n", + "4. Then, define the method to calculate dV. Similar to the functions for m, h, and n, this method defines some commonly used computations as class methods for easy access. However, in this case, the calculation of dV involves the current I. In this example, the neurons are not connected, but the same process can be used for defining neurons in a network. Therefore, ``I = self.sum_current_inputs(I, V)`` includes both external input currents and currents from other neurons.\n", + "\n", + "5. Finally, define the ``update()`` method, which receives the input for each time step and updates the model variables. ``bst.environ.get('t')`` is used to get the current time t. The ordinary differential equations are solved, and the current values of each variable are obtained using the exponential Euler method ``brainstate.nn.exp_euler_step()`` (where the first argument is the drift term of the ordinary differential equation, and the other arguments are the parameters the equation requires). For neurons in the network, ``V = self.sum_delta_inputs(init=V)`` allows the model to receive inputs from other neurons through delta synaptic transmission. Then, the updated spike information is computed, and the model variables are updated. The output indicates whether the neurons fired an action potential (1 if fired, 0 if not). When using the model, the ``update()`` method is automatically called when the model instance is invoked with input." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "f08c361a", + "metadata": {}, + "outputs": [], + "source": [ + "class HH(brainstate.nn.Dynamics):\n", + " def __init__(\n", + " self,\n", + " in_size,\n", + " ENa=50. * u.mV, gNa=120. * u.mS / u.cm ** 2,\n", + " EK=-77. * u.mV, gK=36. * u.mS / u.cm ** 2,\n", + " EL=-54.387 * u.mV, gL=0.03 * u.mS / u.cm ** 2,\n", + " V_th=20. * u.mV,\n", + " C=1.0 * u.uF / u.cm ** 2\n", + " ):\n", + " # Initialization of the neuron model parameters\n", + " super().__init__(in_size)\n", + "\n", + " # Set model parameters based on provided values or defaults\n", + " self.ENa = ENa # Sodium reversal potential (mV)\n", + " self.EK = EK # Potassium reversal potential (mV)\n", + " self.EL = EL # Leak reversal potential (mV)\n", + " self.gNa = gNa # Sodium conductance (mS/cm^2)\n", + " self.gK = gK # Potassium conductance (mS/cm^2)\n", + " self.gL = gL # Leak conductance (mS/cm^2)\n", + " self.C = C # Membrane capacitance (uF/cm^2)\n", + " self.V_th = V_th # Threshold for spike (mV)\n", + "\n", + " # m (sodium activation) channel kinetics\n", + " m_alpha = lambda self, V: 1. / u.math.exprel(-(V / u.mV + 40) / 10) # Alpha function for m\n", + " m_beta = lambda self, V: 4.0 * jnp.exp(-(V / u.mV + 65) / 18) # Beta function for m\n", + " m_inf = lambda self, V: self.m_alpha(V) / (self.m_alpha(V) + self.m_beta(V)) # Steady-state value for m\n", + " dm = lambda self, m, t, V: (self.m_alpha(V) * (1 - m) - self.m_beta(V) * m) / u.ms # Rate of change of m\n", + "\n", + " # h (sodium inactivation) channel kinetics\n", + " h_alpha = lambda self, V: 0.07 * jnp.exp(-(V / u.mV + 65) / 20.) # Alpha function for h\n", + " h_beta = lambda self, V: 1 / (1 + jnp.exp(-(V / u.mV + 35) / 10)) # Beta function for h\n", + " h_inf = lambda self, V: self.h_alpha(V) / (self.h_alpha(V) + self.h_beta(V)) # Steady-state value for h\n", + " dh = lambda self, h, t, V: (self.h_alpha(V) * (1 - h) - self.h_beta(V) * h) / u.ms # Rate of change of h\n", + "\n", + " # n (potassium activation) channel kinetics\n", + " n_alpha = lambda self, V: 0.1 / u.math.exprel(-(V / u.mV + 55) / 10) # Alpha function for n\n", + " n_beta = lambda self, V: 0.125 * jnp.exp(-(V / u.mV + 65) / 80) # Beta function for n\n", + " n_inf = lambda self, V: self.n_alpha(V) / (self.n_alpha(V) + self.n_beta(V)) # Steady-state value for n\n", + " dn = lambda self, n, t, V: (self.n_alpha(V) * (1 - n) - self.n_beta(V) * n) / u.ms # Rate of change of n\n", + "\n", + " def init_state(self, batch_size=None):\n", + " # Initialize the state variables for membrane potential (V) and gating variables (m, h, n)\n", + " self.V = brainstate.HiddenState(\n", + " jnp.ones(self.varshape, brainstate.environ.dftype()) * -65. * u.mV) # Resting potential (mV)\n", + " self.m = brainstate.HiddenState(self.m_inf(self.V.value)) # Sodium activation variable\n", + " self.h = brainstate.HiddenState(self.h_inf(self.V.value)) # Sodium inactivation variable\n", + " self.n = brainstate.HiddenState(self.n_inf(self.V.value)) # Potassium activation variable\n", + "\n", + " def dV(self, V, t, m, h, n, I):\n", + " # Compute the derivative of membrane potential (V) based on the currents and model parameters\n", + " I = self.sum_current_inputs(I, V) # Sum of all incoming currents\n", + " I_Na = (self.gNa * m * m * m * h) * (V - self.ENa) # Sodium current (I_Na)\n", + " n2 = n * n # Squared potassium activation variable\n", + " I_K = (self.gK * n2 * n2) * (V - self.EK) # Potassium current (I_K)\n", + " I_leak = self.gL * (V - self.EL) # Leak current (I_leak)\n", + " dVdt = (- I_Na - I_K - I_leak + I) / self.C # Membrane potential change rate (dV/dt)\n", + " return dVdt\n", + "\n", + " def update(self, x=0. * u.mA / u.cm ** 2):\n", + " # Update the state of the neuron based on current inputs and time\n", + " t = brainstate.environ.get('t') # Retrieve the current time\n", + " V = brainstate.nn.exp_euler_step(self.dV, self.V.value, t, self.m.value, self.h.value, self.n.value,\n", + " x) # Update membrane potential\n", + " m = brainstate.nn.exp_euler_step(self.dm, self.m.value, t, self.V.value) # Update m variable (activation)\n", + " h = brainstate.nn.exp_euler_step(self.dh, self.h.value, t, self.V.value) # Update h variable (inactivation)\n", + " n = brainstate.nn.exp_euler_step(self.dn, self.n.value, t, self.V.value) # Update n variable (activation)\n", + " V = self.sum_delta_inputs(init=V) # Sum the inputs for membrane potential\n", + " spike = jnp.logical_and(self.V.value < self.V_th, V >= self.V_th) # Check if a spike occurs\n", + " self.V.value = V # Update membrane potential\n", + " self.m.value = m # Update m variable\n", + " self.h.value = h # Update h variable\n", + " self.n.value = n # Update n variable\n", + " return spike # Return the spike event (True/False)" + ] + }, + { + "cell_type": "markdown", + "id": "4bd51608", + "metadata": {}, + "source": [ + "## Running the Model Simulation\n", + "\n", + "After instantiating the defined model, we need to initialize the instance with ``bst.nn.init_all_states()``.\n", + "\n", + "Define the model’s time step ``dt``." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "85dca7b9", + "metadata": {}, + "outputs": [], + "source": [ + "hh = HH(10)\n", + "brainstate.nn.init_all_states(hh)\n", + "dt = 0.01 * u.ms" + ] + }, + { + "cell_type": "markdown", + "id": "aab91f0f", + "metadata": {}, + "source": [ + "Define the function ``run()`` for running the model one step at a time.\n", + "\n", + "``with bst.environ.context(t=t, dt=dt):``is used to define environment variables within a code block, and variables can be accessed using ``bst.environ.get()`` (e.g., ``bst.environ.get('t')``). This is necessary because we use ``t = bst.environ.get('t')`` inside the ``update()`` method." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "ef0d23e0", + "metadata": {}, + "outputs": [], + "source": [ + "def run(t, inp):\n", + " # Run the simulation for a given time 't' and input current 'inp'\n", + " # `brainstate.environ.context` sets the environment context for this simulation step\n", + " with brainstate.environ.context(t=t, dt=dt):\n", + " hh(inp) # Update the Hodgkin-Huxley model using the input current at time 't'\n", + "\n", + " # Return the membrane potential at the current time step\n", + " return hh.V.value" + ] + }, + { + "cell_type": "markdown", + "id": "3602f2a4", + "metadata": {}, + "source": [ + "Use ``bst.compile.for_loop()`` to iterate the function and run the simulation for a period of time. The first argument is the function to iterate, followed by the parameters the function needs. You can also display a progress bar during the iteration.\n", + "\n", + "This completes the simulation of the single neuron model." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "da2ea460", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-12-15 18:46:31.392242: W external/xla/xla/service/gpu/ir_emitter_unnested.cc:1171] Unable to parse backend config for custom call: Could not convert JSON string to proto: : Root element must be a message.\n", + "Fall back to parse the raw backend config str.\n", + "2024-12-15 18:46:31.392310: W external/xla/xla/service/gpu/ir_emitter_unnested.cc:1171] Unable to parse backend config for custom call: Could not convert JSON string to proto: : Root element must be a message.\n", + "Fall back to parse the raw backend config str.\n", + "2024-12-15 18:46:31.392340: W external/xla/xla/service/gpu/ir_emitter_unnested.cc:1171] Unable to parse backend config for custom call: Could not convert JSON string to proto: : Root element must be a message.\n", + "Fall back to parse the raw backend config str.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "3e6597ac990046f3b6986029f3c87476", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/10000 [00:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Define the simulation times, from 0 to 100 ms with a time step of 'dt'\n", + "times = u.math.arange(0. * u.ms, 100. * u.ms, dt)\n", + "\n", + "# Run the simulation using `brainstate.compile.for_loop`:\n", + "# - `run` function is called iteratively with each time step and random input current\n", + "# - Random input current between 1 and 10 uA/cm² is generated at each time step\n", + "# - `pbar` is used to show a progress bar during the simulation\n", + "vs = brainstate.compile.for_loop(\n", + " run,\n", + " times, # Time steps as input\n", + " brainstate.random.uniform(1., 10., times.shape) * u.uA / u.cm ** 2, # Random input current (1 to 10 uA/cm²)\n", + " pbar=brainstate.compile.ProgressBar(count=10)\n", + ") # Show progress bar with 10 steps\n", + "\n", + "# Plot the membrane potential over time\n", + "plt.plot(times, vs)\n", + "plt.show() # Display the plot" + ] + }, + { + "cell_type": "markdown", + "id": "c3f5e7c3", + "metadata": {}, + "source": [ + "# Simulation of Spiking Neural Network Models\n", + "\n", + "One of the goals of neuroscience research is to uncover the possible principles by which the brain encodes information. As a potential encoding rule, we naturally expect neurons to produce the same response to the same stimulus. However, in the 1980s and 1990s, numerous experiments found that when the same external stimulus is presented repeatedly, the spike sequences produced by neurons in the cerebral cortex are different each time, and the spike sequences exhibit highly irregular statistical behaviors. Van Vreeswijk and Haim Sompolinsky proposed the **Excitatory-Inhibitory Balanced Network (E-I balanced network)**. They suggested that there should be both excitatory and inhibitory neurons in the network, and the inputs to both types of neurons must be balanced and counteracting. In this case, the mean input received by the neurons remains very small, and the variance (fluctuation) is large enough to induce irregular firing of neurons. Furthermore, the following conditions must also hold for the network:\n", + "+ Neuron connections are random and sparse, which reduces the statistical correlation between the internal inputs received by different neurons, leading to stronger macroscopic irregularity.\n", + "+ Statistically, the excitatory inputs and inhibitory inputs received by a neuron should approximately cancel each other out, meaning that the excitation and inhibition transmitted within the network are balanced.\n", + "+ The connection strength between neurons within the network is relatively strong, so the activity of the entire network is dominated not by external inputs but by synaptic currents generated by the internal network connections. The random fluctuations in synaptic currents determine the irregular firing of neurons.\n", + "\n", + "

\n", + " \"EI-balance\"\n", + "
\n", + "\n", + "Here, we simulate the Excitatory-Inhibitory Balanced Network model as an example of simulating a spiking neural network model.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "60bc3e45", + "metadata": {}, + "outputs": [], + "source": [ + "import brainunit as u\n", + "import brainstate as brainstate\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "2b06bb4b", + "metadata": {}, + "source": [ + "## Defining Spiking Neural Network Model\n", + "\n", + "We can use ``brainstate`` to define custom neuron models. To define a custom neuron model, we need to inherit the base class ``brainstate.nn.DynamicsGroup``.\n", + "\n", + "1. First, define the initialization method ``__init__()``, which receives model parameters and initializes the model. Note that we need to first call ``super().__init__()`` to initialize the base class. The model initialization mainly includes initializing neurons and synapses:\n", + " - **Initializing Neurons**: Neurons in the network can either use the pre-defined neuron models in ``brainstate.nn`` or use the custom neurons defined in the **Single Neuron Model Definition** section.\n", + " - **Initializing Synapses**: Here, we use ``brainstate.nn.AlignPostProj``, which is suitable for the align-post projection model. In the align-post projection, the dimensions of the synaptic variables and the postsynaptic neuron group are the same. The update order of align-post projection models is: action potential → synaptic communication → synaptic dynamics → output. The update order of align-pre projection models is: action potential → synaptic dynamics → synaptic communication → output. Several parameters need to be set:\n", + " - ``comm``: Describes the connections between the neuron groups.\n", + " - ``syn``: Specifies which synapse model is used.\n", + " - ``out``: Indicates whether the output is based on conductance or current.\n", + " - ``post``: Specifies the postsynaptic neuron group.\n", + "\n", + "2. Next, define the ``update()`` method, which receives the input for each time step and updates the model's current state. As a neuron network, neurons need to receive inputs not only from external sources but also from other neurons. Therefore, in this model, we first compute the inputs received from other neurons, then calculate the external inputs. Finally, we output the firing state of each neuron in the entire network." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "61efc944", + "metadata": {}, + "outputs": [], + "source": [ + "class EINet(brainstate.nn.DynamicsGroup):\n", + " def __init__(self, n_exc, n_inh, prob, JE, JI):\n", + " # Initialize the network with the following parameters:\n", + " # - n_exc: number of excitatory neurons\n", + " # - n_inh: number of inhibitory neurons\n", + " # - prob: connection probability between neurons\n", + " # - JE: synaptic weight for excitatory connections\n", + " # - JI: synaptic weight for inhibitory connections\n", + " super().__init__()\n", + "\n", + " self.n_exc = n_exc # Number of excitatory neurons\n", + " self.n_inh = n_inh # Number of inhibitory neurons\n", + " self.num = n_exc + n_inh # Total number of neurons (excitatory + inhibitory)\n", + "\n", + " # Initialize the neurons as LIF (Leaky Integrate-and-Fire) neurons\n", + " self.N = brainstate.nn.LIF(\n", + " n_exc + n_inh, # Total number of neurons\n", + " V_rest=-52. * u.mV, # Resting potential (mV)\n", + " V_th=-50. * u.mV, # Threshold potential for firing (mV)\n", + " V_reset=-60. * u.mV, # Reset potential after spike (mV)\n", + " tau=10. * u.ms, # Membrane time constant (ms)\n", + " V_initializer=brainstate.nn.Normal(-60., 10., unit=u.mV),\n", + " # Initialize membrane potential with a normal distribution\n", + " spk_reset='soft' # Soft reset for spiking (reset without forcing a specific value)\n", + " )\n", + "\n", + " # Synapse connections from excitatory neurons to all neurons\n", + " self.E = brainstate.nn.AlignPostProj(\n", + " comm=brainstate.nn.EventFixedProb(n_exc, self.num, prob, JE),\n", + " # Fixed probability of synaptic connection with strength JE\n", + " syn=brainstate.nn.Expon.desc(self.num, tau=2. * u.ms), # Exponential decay of synaptic weight\n", + " out=brainstate.nn.CUBA.desc(), # CUBA (Conductance-based) synaptic model\n", + " post=self.N, # Target neurons for these excitatory synapses\n", + " )\n", + "\n", + " # Synapse connections from inhibitory neurons to all neurons\n", + " self.I = brainstate.nn.AlignPostProj(\n", + " comm=brainstate.nn.EventFixedProb(n_inh, self.num, prob, JI),\n", + " # Fixed probability of synaptic connection with strength JI\n", + " syn=brainstate.nn.Expon.desc(self.num, tau=2. * u.ms), # Exponential decay of synaptic weight\n", + " out=brainstate.nn.CUBA.desc(), # CUBA (Conductance-based) synaptic model\n", + " post=self.N, # Target neurons for these inhibitory synapses\n", + " )\n", + "\n", + " def update(self, inp):\n", + " # Get the spike states of the neurons\n", + " spks = self.N.get_spike() != 0. # Non-zero spikes (spike detection)\n", + "\n", + " # Update the synaptic currents for excitatory and inhibitory neurons\n", + " self.E(spks[:self.n_exc]) # Apply excitatory synaptic input based on the excitatory neuron spikes\n", + " self.I(spks[self.n_exc:]) # Apply inhibitory synaptic input based on the inhibitory neuron spikes\n", + "\n", + " # Update the neurons with the provided input current (inp)\n", + " self.N(inp)\n", + "\n", + " # Return the spike states of the neurons (whether each neuron spiked)\n", + " return self.N.get_spike()" + ] + }, + { + "cell_type": "markdown", + "id": "3320eacc", + "metadata": {}, + "source": [ + "## Running the Simulation Experiment\n", + "\n", + "Set some model parameters. In this example, we use the sign (positive or negative) of the connection strength to set the excitatory or inhibitory nature of the neurons." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "3e1569f5", + "metadata": {}, + "outputs": [], + "source": [ + "# connectivity\n", + "num_exc = 500\n", + "num_inh = 500\n", + "prob = 0.1\n", + "# external current\n", + "Ib = 3. * u.mA\n", + "# excitatory and inhibitory synaptic weights\n", + "JE = 1 / u.math.sqrt(prob * num_exc) * u.mS\n", + "JI = -1 / u.math.sqrt(prob * num_inh) * u.mS" + ] + }, + { + "cell_type": "markdown", + "id": "f2c2db9e", + "metadata": {}, + "source": [ + "Define the time step ``dt`` for the simulation.\n", + "\n", + "After instantiating the defined model, initialize the instance with ``bst.nn.init_all_states()``." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "3aed3747", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "EINet(\n", + " layers_tuple=(),\n", + " layers_dict={},\n", + " n_exc=500,\n", + " n_inh=500,\n", + " num=1000,\n", + " N=LIF(\n", + " in_size=(1000,),\n", + " out_size=(1000,),\n", + " current_inputs={'AlignPostProj0': CUBA(\n", + " scale=volt\n", + " )},\n", + " before_updates={\"(, (1000,), {'tau': 2. * msecond}) // (, (), {})\": _AlignPost(\n", + " syn=Expon(\n", + " in_size=(1000,),\n", + " out_size=(1000,),\n", + " tau=2. * msecond,\n", + " g_initializer=ZeroInit(\n", + " unit=msiemens\n", + " ),\n", + " g=HiddenState(\n", + " value=ArrayImpl([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0.... * msiemens\n", + " )\n", + " ),\n", + " out=CUBA(...)\n", + " )},\n", + " spk_reset='soft',\n", + " spk_fun=ReluGrad(alpha=0.3, width=1.0),\n", + " R=1. * ohm,\n", + " tau=10. * msecond,\n", + " V_th=-50. * mvolt,\n", + " V_rest=-52. * mvolt,\n", + " V_reset=-60. * mvolt,\n", + " V_initializer=Normal(\n", + " scale=10.0,\n", + " mean=-60.0,\n", + " rng=RandomState([2647944946 1939377294]),\n", + " unit=mvolt\n", + " ),\n", + " V=HiddenState(\n", + " value=ArrayImpl([-44.94350815, -49.09746552, -54.77877045, -62.51665115,\n", + " -49.72640991, -53.0278... * mvolt\n", + " )\n", + " ),\n", + " E=AlignPostProj(\n", + " name='AlignPostProj0',\n", + " modules=(),\n", + " merging=True,\n", + " comm=FixedProb(\n", + " in_size=(500,),\n", + " out_size=(1000,),\n", + " n_conn=100,\n", + " float_as_event=True,\n", + " block_size=None,\n", + " indices=Array([[584, 311, 322, ..., 857, 171, 213],\n", + " [502, 87, 501, ..., 176, 239, 808],\n", + " [336, 860, 686, ..., 629, 932, 434],\n", + " ...,\n", + " [838, 631, 745, ..., 767, 427, 536],\n", + " [154, 597, 111, ..., 914, 601, 805],\n", + " [215, 279, 117, ..., 917, 335, 690]], dtype=int32),\n", + " weight=ParamState(\n", + " value=0.14142136 * msiemens\n", + " )\n", + " ),\n", + " syn=Expon(...),\n", + " out=CUBA(...),\n", + " post=LIF(...)\n", + " ),\n", + " I=AlignPostProj(\n", + " name='AlignPostProj1',\n", + " modules=(),\n", + " merging=True,\n", + " comm=FixedProb(\n", + " in_size=(500,),\n", + " out_size=(1000,),\n", + " n_conn=100,\n", + " float_as_event=True,\n", + " block_size=None,\n", + " indices=Array([[257, 901, 935, ..., 722, 965, 139],\n", + " [924, 131, 887, ..., 389, 554, 905],\n", + " [699, 799, 935, ..., 196, 311, 278],\n", + " ...,\n", + " [210, 74, 426, ..., 129, 101, 732],\n", + " [839, 371, 605, ..., 418, 668, 419],\n", + " [924, 822, 688, ..., 137, 877, 855]], dtype=int32),\n", + " weight=ParamState(\n", + " value=-0.14142136 * msiemens\n", + " )\n", + " ),\n", + " syn=Expon(...),\n", + " out=CUBA(...),\n", + " post=LIF(...)\n", + " )\n", + ")" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# network\n", + "brainstate.environ.set(dt=0.1 * u.ms)\n", + "net = EINet(num_exc, num_inh, prob=prob, JE=JE, JI=JI)\n", + "_ = brainstate.nn.init_all_states(net)" + ] + }, + { + "cell_type": "markdown", + "id": "0a52aac5", + "metadata": {}, + "source": [ + "The instantiated network model uses the ``update()`` method to input the current for each time step.\n", + "\n", + "Use ``bst.compile.for_loop()`` to iterate the function and run the simulation for a certain period of time. The first argument is the function to iterate, followed by the parameters that the function requires. You can also display a progress bar during the iteration.\n", + "\n", + "This completes the simulation of the spiking neural network model." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "32e8e8ee", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-12-15 18:46:36.710433: W external/xla/xla/service/gpu/ir_emitter_unnested.cc:1171] Unable to parse backend config for custom call: Could not convert JSON string to proto: : Root element must be a message.\n", + "Fall back to parse the raw backend config str.\n", + "2024-12-15 18:46:36.710492: W external/xla/xla/service/gpu/ir_emitter_unnested.cc:1171] Unable to parse backend config for custom call: Could not convert JSON string to proto: : Root element must be a message.\n", + "Fall back to parse the raw backend config str.\n", + "2024-12-15 18:46:36.710519: W external/xla/xla/service/gpu/ir_emitter_unnested.cc:1171] Unable to parse backend config for custom call: Could not convert JSON string to proto: : Root element must be a message.\n", + "Fall back to parse the raw backend config str.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "634f59000ce2482bbb528d119d41b4b5", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/10000 [00:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# visualization\n", + "times = times.to_decimal(u.ms)\n", + "t_indices, n_indices = u.math.where(spikes)\n", + "plt.plot(times[t_indices], n_indices, 'k.', markersize=1)\n", + "plt.xlabel('Time (ms)')\n", + "plt.ylabel('Neuron index')\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/snn_simulation-zh.ipynb b/docs/snn_simulation-zh.ipynb new file mode 100644 index 000000000..212ad1b2a --- /dev/null +++ b/docs/snn_simulation-zh.ipynb @@ -0,0 +1,723 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b78f6e1b6cb0dada", + "metadata": { + "collapsed": false + }, + "source": [ + "# 仿真脉冲神经网络\n", + "\n", + "建立脑动力学模型并进行仿真是研究脑动力学的重要方法之一。在进行脉冲神经网络仿真时,我们给定模型和输入的各项参数,进行仿真实验。在这个过程中,不涉及参数(如连接权重)的学习与更新。主要应用于对设计好的网络进行仿真与分析。\n", + "\n", + "脑动力学的脉冲神经网络模型可以分为**单个脉冲神经元模型**和**脉冲神经元网络模型**,我们将分别举一个例子进行演示。" + ] + }, + { + "cell_type": "markdown", + "id": "c5622779", + "metadata": {}, + "source": [ + "## 单个脉冲神经元模型的仿真\n", + "\n", + "**Hodgkin-Huxley模型(HH模型)** 是由神经生理学家艾伦·霍奇金(Allen Hodgkin,1914-1998)和安德鲁·赫胥黎(Andrew Huxley,1917-2012)于1952年提出的数学模型,用以描述神经元动作电位的产生和传播过程。HH模型以经典电路模型为基础,将神经元膜电位的动态变化与膜离子通道的生物物理特性联系起来,是神经科学中最重要的理论模型之一,曾为二人赢得1963年的诺贝尔生理学或医学奖。HH模型的数学定义是:\n", + "\n", + "$$\n", + "\\begin{aligned}C \\frac {dV} {dt} = -(\\bar{g}_{Na} m^3 h (V &-E_{Na}) + \\bar{g}_K n^4 (V-E_K) + g_{leak} (V - E_{leak})) + I(t)\\\\\n", + "\\frac {dx} {dt} &= \\alpha_x (1-x) - \\beta_x, \\quad x\\in {\\rm{\\{m, h, n\\}}}\\\\\n", + "&\\alpha_m(V) = \\frac {0.1(V+40)}{1-\\exp(\\frac{-(V + 40)} {10})}\\\\\n", + "&\\beta_m(V) = 4.0 \\exp(\\frac{-(V + 65)} {18})\\\\\n", + "&\\alpha_h(V) = 0.07 \\exp(\\frac{-(V+65)}{20})\\\\\n", + "&\\beta_h(V) = \\frac 1 {1 + \\exp(\\frac{-(V + 35)} {10})}\\\\&\\alpha_n(V) = \\frac {0.01(V+55)}{1-\\exp(-(V+55)/10)}\\\\\n", + "&\\beta_n(V) = 0.125 \\exp(\\frac{-(V + 65)} {80})\\end{aligned}\n", + "$$\n", + "\n", + "在这里我们对HH模型进行仿真,作为单个脉冲神经元模型仿真的示例。``brainstate``可以同时运行多个神经元模型,并行运行节省时间。我们对一群HH神经元进行仿真。" + ] + }, + { + "cell_type": "code", + "id": "9dd07dd9", + "metadata": { + "ExecuteTime": { + "end_time": "2025-05-11T02:51:18.527525Z", + "start_time": "2025-05-11T02:51:16.423057Z" + } + }, + "source": [ + "import brainunit as u\n", + "import jax.numpy as jnp\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import brainstate " + ], + "outputs": [], + "execution_count": 1 + }, + { + "cell_type": "code", + "id": "051f8f24", + "metadata": { + "ExecuteTime": { + "end_time": "2025-05-11T02:51:18.542843Z", + "start_time": "2025-05-11T02:51:18.537056Z" + } + }, + "source": "# brainstate.environ.set(platform='gpu')", + "outputs": [], + "execution_count": 2 + }, + { + "cell_type": "code", + "id": "60058528", + "metadata": { + "ExecuteTime": { + "end_time": "2025-05-11T02:51:18.815210Z", + "start_time": "2025-05-11T02:51:18.567003Z" + } + }, + "source": "brainstate.random.seed(100)", + "outputs": [], + "execution_count": 3 + }, + { + "cell_type": "markdown", + "id": "a6ba5685", + "metadata": {}, + "source": [ + "## 单神经元模型的定义\n", + "\n", + "我们可以使用``brainstate``自定义神经元模型。自定义神经元模型需要继承模型基类``brainstate.nn.Dynamics``。\n", + "\n", + "1. 首先定义初始化类方法``__init__()``,接收并行运行的神经元个数``in_size``,和其他模型参数。用``in_size``初始化基类,将模型参数设置为模型类属性,便于后续调用。\n", + "\n", + "2. 然后,可以设定一些模型常用计算为类方法,便于后续调用。在这里我们实现了一些计算m、h和n涉及的函数。注意常微分方程的漂移项函数,传入参数的顺序应为,动态变量,当前时刻t和其他参数。\n", + "\n", + "3. 接着,定义模型状态初始化方法``init_state()``。与``__init__()``不同,这里初始化的不是模型参数,而是模型状态,主要是模型运行中会改变的变量的初始化。在``brainstate``中,所有需要改变的量都需封装在 ``State`` 对象中。模型运行时会发生改变的隐变量需封装在``HiddenState``(是``State`` 的子类)对象中。\n", + "\n", + "4. 然后定义dV的计算方法。本质上和上文提到的计算m、h和n涉及的函数一样,都是设定一些模型常用计算为类方法,便于后续调用。但需要注意的地方是,dV的计算涉及到电流I。在这个例子中,我们仿真的神经元是相互之间没有连接的,但这套定义单神经元模型的流程也适用于,定义网络中的神经元。因此,``I = self.sum_current_inputs(I, V)``,I包括外界输入电流和来自其他神经元的电流。\n", + "\n", + "5. 最后定义``update()``方法,接收每个时间步模型的input,把模型中各个变量进行更新。``bst.environ.get('t')``获取当前时刻t。解常微分方程,求得每个变量当前时间步的值,这里使用了指数欧拉法``brainstate.nn.exp_euler_step()``求解方程(接收第一个参数是常微分方程的漂移项,其他参数是方程函数需要接收的参数)。对于网络中的神经元,``V = self.sum_delta_inputs(init=V)``使得模型接收其他神经元通过delta突触传导的输入。然后计算这步更新后哪些神经元产生了动作电位。最后用计算出的值更新模型变量的值。返回值输出神经元是否发放了动作电位,有发放为1,无发放为0。使用时,通过调用模型实例并传入输入,会自动调用``update()``方法。" + ] + }, + { + "cell_type": "code", + "id": "f08c361a", + "metadata": { + "ExecuteTime": { + "end_time": "2025-05-11T02:51:19.416821Z", + "start_time": "2025-05-11T02:51:19.404729Z" + } + }, + "source": [ + "class HH(brainstate.nn.Dynamics):\n", + " def __init__(\n", + " self,\n", + " in_size,\n", + " ENa=50. * u.mV, gNa=120. * u.mS / u.cm ** 2,\n", + " EK=-77. * u.mV, gK=36. * u.mS / u.cm ** 2,\n", + " EL=-54.387 * u.mV, gL=0.03 * u.mS / u.cm ** 2,\n", + " V_th=20. * u.mV,\n", + " C=1.0 * u.uF / u.cm ** 2\n", + " ):\n", + " # Initialization of the neuron model parameters\n", + " super().__init__(in_size)\n", + "\n", + " # Set model parameters based on provided values or defaults\n", + " self.ENa = ENa # Sodium reversal potential (mV)\n", + " self.EK = EK # Potassium reversal potential (mV)\n", + " self.EL = EL # Leak reversal potential (mV)\n", + " self.gNa = gNa # Sodium conductance (mS/cm^2)\n", + " self.gK = gK # Potassium conductance (mS/cm^2)\n", + " self.gL = gL # Leak conductance (mS/cm^2)\n", + " self.C = C # Membrane capacitance (uF/cm^2)\n", + " self.V_th = V_th # Threshold for spike (mV)\n", + "\n", + " # m (sodium activation) channel kinetics\n", + " m_alpha = lambda self, V: 1. / u.math.exprel(-(V / u.mV + 40) / 10) # Alpha function for m\n", + " m_beta = lambda self, V: 4.0 * jnp.exp(-(V / u.mV + 65) / 18) # Beta function for m\n", + " m_inf = lambda self, V: self.m_alpha(V) / (self.m_alpha(V) + self.m_beta(V)) # Steady-state value for m\n", + " dm = lambda self, m, t, V: (self.m_alpha(V) * (1 - m) - self.m_beta(V) * m) / u.ms # Rate of change of m\n", + "\n", + " # h (sodium inactivation) channel kinetics\n", + " h_alpha = lambda self, V: 0.07 * jnp.exp(-(V / u.mV + 65) / 20.) # Alpha function for h\n", + " h_beta = lambda self, V: 1 / (1 + jnp.exp(-(V / u.mV + 35) / 10)) # Beta function for h\n", + " h_inf = lambda self, V: self.h_alpha(V) / (self.h_alpha(V) + self.h_beta(V)) # Steady-state value for h\n", + " dh = lambda self, h, t, V: (self.h_alpha(V) * (1 - h) - self.h_beta(V) * h) / u.ms # Rate of change of h\n", + "\n", + " # n (potassium activation) channel kinetics\n", + " n_alpha = lambda self, V: 0.1 / u.math.exprel(-(V / u.mV + 55) / 10) # Alpha function for n\n", + " n_beta = lambda self, V: 0.125 * jnp.exp(-(V / u.mV + 65) / 80) # Beta function for n\n", + " n_inf = lambda self, V: self.n_alpha(V) / (self.n_alpha(V) + self.n_beta(V)) # Steady-state value for n\n", + " dn = lambda self, n, t, V: (self.n_alpha(V) * (1 - n) - self.n_beta(V) * n) / u.ms # Rate of change of n\n", + "\n", + " def init_state(self, batch_size=None):\n", + " # Initialize the state variables for membrane potential (V) and gating variables (m, h, n)\n", + " self.V = brainstate.HiddenState(jnp.ones(self.varshape, brainstate.environ.dftype()) * -65. * u.mV) # Resting potential (mV)\n", + " self.m = brainstate.HiddenState(self.m_inf(self.V.value)) # Sodium activation variable\n", + " self.h = brainstate.HiddenState(self.h_inf(self.V.value)) # Sodium inactivation variable\n", + " self.n = brainstate.HiddenState(self.n_inf(self.V.value)) # Potassium activation variable\n", + "\n", + " def dV(self, V, t, m, h, n, I):\n", + " # Compute the derivative of membrane potential (V) based on the currents and model parameters\n", + " I = self.sum_current_inputs(I, V) # Sum of all incoming currents\n", + " I_Na = (self.gNa * m * m * m * h) * (V - self.ENa) # Sodium current (I_Na)\n", + " n2 = n * n # Squared potassium activation variable\n", + " I_K = (self.gK * n2 * n2) * (V - self.EK) # Potassium current (I_K)\n", + " I_leak = self.gL * (V - self.EL) # Leak current (I_leak)\n", + " dVdt = (- I_Na - I_K - I_leak + I) / self.C # Membrane potential change rate (dV/dt)\n", + " return dVdt\n", + "\n", + " def update(self, x=0. * u.mA / u.cm ** 2):\n", + " # Update the state of the neuron based on current inputs and time\n", + " t = brainstate.environ.get('t') # Retrieve the current time\n", + " V = brainstate.nn.exp_euler_step(self.dV, self.V.value, t, self.m.value, self.h.value, self.n.value, x) # Update membrane potential\n", + " m = brainstate.nn.exp_euler_step(self.dm, self.m.value, t, self.V.value) # Update m variable (activation)\n", + " h = brainstate.nn.exp_euler_step(self.dh, self.h.value, t, self.V.value) # Update h variable (inactivation)\n", + " n = brainstate.nn.exp_euler_step(self.dn, self.n.value, t, self.V.value) # Update n variable (activation)\n", + " V = self.sum_delta_inputs(init=V) # Sum the inputs for membrane potential\n", + " spike = jnp.logical_and(self.V.value < self.V_th, V >= self.V_th) # Check if a spike occurs\n", + " self.V.value = V # Update membrane potential\n", + " self.m.value = m # Update m variable\n", + " self.h.value = h # Update h variable\n", + " self.n.value = n # Update n variable\n", + " return spike # Return the spike event (True/False)" + ], + "outputs": [], + "execution_count": 4 + }, + { + "cell_type": "markdown", + "id": "4bd51608", + "metadata": {}, + "source": [ + "## 模型仿真实验运行\n", + "\n", + "实例化定义好的模型后,要先``bst.nn.init_all_states()``初始化这个实例。\n", + "\n", + "定义模型``dt``对应的时间。" + ] + }, + { + "cell_type": "code", + "id": "85dca7b9", + "metadata": { + "ExecuteTime": { + "end_time": "2025-05-11T02:51:19.757507Z", + "start_time": "2025-05-11T02:51:19.474202Z" + } + }, + "source": [ + "hh = HH(10)\n", + "brainstate.nn.init_all_states(hh)\n", + "dt = 0.01 * u.ms" + ], + "outputs": [], + "execution_count": 5 + }, + { + "cell_type": "markdown", + "id": "aab91f0f", + "metadata": {}, + "source": [ + "定义模型单步运行函数``run()``。\n", + "\n", + "``with bst.environ.context(t=t, dt=dt):``可以定义代码块内的环境变量,代码块内都可以通过``bst.environ.get()``获取变量值(eg. ``bst.environ.get('t')``)。在这里需要用到是因为我们定义的模型``update()``方法中使用了``t = bst.environ.get('t')``。" + ] + }, + { + "cell_type": "code", + "id": "ef0d23e0", + "metadata": { + "ExecuteTime": { + "end_time": "2025-05-11T02:51:19.795400Z", + "start_time": "2025-05-11T02:51:19.790918Z" + } + }, + "source": [ + "def run(t, inp):\n", + " # Run the simulation for a given time 't' and input current 'inp'\n", + " # `brainstate.environ.context` sets the environment context for this simulation step\n", + " with brainstate.environ.context(t=t, dt=dt):\n", + " hh(inp) # Update the Hodgkin-Huxley model using the input current at time 't'\n", + " \n", + " # Return the membrane potential at the current time step\n", + " return hh.V.value" + ], + "outputs": [], + "execution_count": 6 + }, + { + "cell_type": "markdown", + "id": "3602f2a4", + "metadata": {}, + "source": [ + "使用``bst.compile.for_loop()``迭代运行函数,进行一段时间的仿真,第一个参数是要迭代的函数,随后是此函数所需要的参数。可以选择绘制迭代进度条。\n", + "\n", + "这样就完成了单个脉冲神经元模型的仿真。" + ] + }, + { + "cell_type": "code", + "id": "da2ea460", + "metadata": { + "ExecuteTime": { + "end_time": "2025-05-11T02:51:20.472914Z", + "start_time": "2025-05-11T02:51:19.840946Z" + } + }, + "source": [ + "# Define the simulation times, from 0 to 100 ms with a time step of 'dt'\n", + "times = u.math.arange(0. * u.ms, 100. * u.ms, dt)\n", + "\n", + "# Run the simulation using `brainstate.compile.for_loop`:\n", + "# - `run` function is called iteratively with each time step and random input current\n", + "# - Random input current between 1 and 10 uA/cm² is generated at each time step\n", + "# - `pbar` is used to show a progress bar during the simulation\n", + "vs = brainstate.compile.for_loop(run,\n", + " times, # Time steps as input\n", + " brainstate.random.uniform(1., 10., times.shape) * u.uA / u.cm ** 2, # Random input current (1 to 10 uA/cm²)\n", + " pbar=brainstate.compile.ProgressBar(count=10)) # Show progress bar with 10 steps\n", + "\n", + "# Plot the membrane potential over time\n", + "plt.plot(times, vs)\n", + "plt.show() # Display the plot" + ], + "outputs": [ + { + "data": { + "text/plain": [ + " 0%| | 0/10000 [00:00" + ], + "image/png": "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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 7 + }, + { + "cell_type": "markdown", + "id": "f4b57d2a", + "metadata": {}, + "source": [ + "## 脉冲神经元网络模型的仿真" + ] + }, + { + "cell_type": "markdown", + "id": "c3f5e7c3", + "metadata": {}, + "source": [ + "神经科学研究的目的之一是要解开大脑编码信息的可能法则。作为一种编码法则,我们很自然指望神经元在相同刺激下产生相同的反应。但上世纪 80 至 90 年代,大量实验发现,同样的外部刺激重复呈现,大脑皮层中的神经元每次产生的脉冲序列都不同,且单次脉冲序列表现出极不规律的统计行为。范·弗雷斯维克(Van Vreeswijk)和海姆·索姆林斯基(Haim Sompolinsky)提出了**兴奋-抑制平衡网络(E-I balanced network)**。他们提出网络中应同时存在兴奋性神经元和抑制性神经元,且两种神经元的输入必须是平衡的、相互抵消的,此时神经元接收到输入的均值维持在一个很小的值,方差(波动)才足够显著,从而促使神经元无规律发放。除此以外,对网络还有以下要求:\n", + "+ 神经元之间的连接是随机且稀疏的,这使得不同神经元接收到的内部输入的统计相关性很小,宏观上表\n", + "现出更强的不规律性;\n", + "+ 统计上,一个神经元接收到的兴奋性输入和抑制性输入应该能大致抵消,即网络中传递的兴奋和抑制是平衡的;\n", + "+ 网络内部神经元之间的连接强度相对较强,这使得整个网络的活动不是被外部输入而是被网络内部突触\n", + "连接产生的电流主导,突触电流的随机起伏决定了神经元的无规律发放。\n", + "\n", + "
\n", + " \"EI-balance\"\n", + "
\n", + "\n", + "在这里我们对兴奋-抑制平衡网络模型进行仿真,作为脉冲神经元网络模型仿真的示例。" + ] + }, + { + "cell_type": "code", + "id": "60bc3e45", + "metadata": { + "ExecuteTime": { + "end_time": "2025-05-11T02:51:20.607864Z", + "start_time": "2025-05-11T02:51:20.604365Z" + } + }, + "source": [ + "import brainunit as u\n", + "import brainstate as brainstate\n", + "import matplotlib.pyplot as plt" + ], + "outputs": [], + "execution_count": 8 + }, + { + "cell_type": "markdown", + "id": "2b06bb4b", + "metadata": {}, + "source": [ + "## 脉冲神经网络模型的定义\n", + "\n", + "我们可以使用``brainstate``自定义脉冲神经网络模型。自定义脉冲神经网络模型需要继承模型基类``brainstate.nn.DynamicsGroup``。\n", + "\n", + "1. 首先定义初始化类方法``__init__()``,接收模型参数,初始化模型。注意要先``super().__init__()``初始化基类。初始化模型主要包括初始化神经元和突触:\n", + " - **初始化神经元**:网络中神经元可以选择``brainstate.nn``中已经实现好的各种神经元,也可以选用我们在**单神经元模型的定义**部分自定义的神经元。\n", + " - **初始化突触**:这里使用了``brainstate.nn.AlignPostProj``,适用于align-post投射模型。align-post投射意味着突触变量和突触后神经元群的维度一致。align-post和align-pre模型的更新顺序不同,align-post投射模型更新顺序是动作电位 -> 突触通讯 -> 突触动力学 -> 输出;align-pre投射模型更新顺序是动作电位 -> 突触动力学 -> 突触通讯 -> 输出。它需要设置的几个参数分别是:\n", + " - ``comm``:神经元群之间的连接是怎样的\n", + " - ``syn``:使用哪种突触模型\n", + " - ``out``:设置输出是基于电导还是基于电流的\n", + " - ``post``:指出突触后神经元群。\n", + "\n", + "\n", + "2. 然后定义``update()``方法,接收每个时间步模型的input,更新模型当前状态。作为神经元群,神经元除了外界输入还要接收其它神经元的输入。因此在这个模型中,先计算神经元群接收神经元的输入,再计算接收外界输入。最后输出整个网络每个神经元的发放情况。" + ] + }, + { + "cell_type": "code", + "id": "61efc944", + "metadata": { + "ExecuteTime": { + "end_time": "2025-05-11T02:51:20.648750Z", + "start_time": "2025-05-11T02:51:20.641335Z" + } + }, + "source": [ + "class EINet(brainstate.nn.DynamicsGroup):\n", + " def __init__(self, n_exc, n_inh, prob, JE, JI):\n", + " # Initialize the network with the following parameters:\n", + " # - n_exc: number of excitatory neurons\n", + " # - n_inh: number of inhibitory neurons\n", + " # - prob: connection probability between neurons\n", + " # - JE: synaptic weight for excitatory connections\n", + " # - JI: synaptic weight for inhibitory connections\n", + " super().__init__()\n", + "\n", + " self.n_exc = n_exc # Number of excitatory neurons\n", + " self.n_inh = n_inh # Number of inhibitory neurons\n", + " self.num = n_exc + n_inh # Total number of neurons (excitatory + inhibitory)\n", + "\n", + " # Initialize the neurons as LIF (Leaky Integrate-and-Fire) neurons\n", + " self.N = brainstate.nn.LIF(\n", + " n_exc + n_inh, # Total number of neurons\n", + " V_rest=-52. * u.mV, # Resting potential (mV)\n", + " V_th=-50. * u.mV, # Threshold potential for firing (mV)\n", + " V_reset=-60. * u.mV, # Reset potential after spike (mV)\n", + " tau=10. * u.ms, # Membrane time constant (ms)\n", + " V_initializer=brainstate.nn.Normal(-60., 10., unit=u.mV), # Initialize membrane potential with a normal distribution\n", + " spk_reset='soft' # Soft reset for spiking (reset without forcing a specific value)\n", + " )\n", + "\n", + " # Synapse connections from excitatory neurons to all neurons\n", + " self.E = brainstate.nn.AlignPostProj(\n", + " comm=brainstate.nn.EventFixedProb(n_exc, self.num, prob, JE), # Fixed probability of synaptic connection with strength JE\n", + " syn=brainstate.nn.Expon.desc(self.num, tau=2. * u.ms), # Exponential decay of synaptic weight\n", + " out=brainstate.nn.CUBA.desc(), # CUBA (Conductance-based) synaptic model\n", + " post=self.N, # Target neurons for these excitatory synapses\n", + " )\n", + "\n", + " # Synapse connections from inhibitory neurons to all neurons\n", + " self.I = brainstate.nn.AlignPostProj(\n", + " comm=brainstate.nn.EventFixedProb(n_inh, self.num, prob, JI), # Fixed probability of synaptic connection with strength JI\n", + " syn=brainstate.nn.Expon.desc(self.num, tau=2. * u.ms), # Exponential decay of synaptic weight\n", + " out=brainstate.nn.CUBA.desc(), # CUBA (Conductance-based) synaptic model\n", + " post=self.N, # Target neurons for these inhibitory synapses\n", + " )\n", + "\n", + " def update(self, inp):\n", + " # Get the spike states of the neurons\n", + " spks = self.N.get_spike() != 0. # Non-zero spikes (spike detection)\n", + "\n", + " # Update the synaptic currents for excitatory and inhibitory neurons\n", + " self.E(spks[:self.n_exc]) # Apply excitatory synaptic input based on the excitatory neuron spikes\n", + " self.I(spks[self.n_exc:]) # Apply inhibitory synaptic input based on the inhibitory neuron spikes\n", + "\n", + " # Update the neurons with the provided input current (inp)\n", + " self.N(inp)\n", + "\n", + " # Return the spike states of the neurons (whether each neuron spiked)\n", + " return self.N.get_spike()" + ], + "outputs": [], + "execution_count": 9 + }, + { + "cell_type": "markdown", + "id": "3320eacc", + "metadata": {}, + "source": [ + "## 模型仿真实验运行\n", + "\n", + "设置一些模型参数。在这个例子中,我们用连接强度的正负来设置神经元的兴奋抑制性。" + ] + }, + { + "cell_type": "code", + "id": "3e1569f5", + "metadata": { + "ExecuteTime": { + "end_time": "2025-05-11T02:51:20.704820Z", + "start_time": "2025-05-11T02:51:20.678783Z" + } + }, + "source": [ + "# connectivity\n", + "num_exc = 500\n", + "num_inh = 500\n", + "prob = 0.1\n", + "# external current\n", + "Ib = 3. * u.mA\n", + "# excitatory and inhibitory synaptic weights\n", + "JE = 1 / u.math.sqrt(prob * num_exc) * u.mS\n", + "JI = -1 / u.math.sqrt(prob * num_inh) * u.mS" + ], + "outputs": [], + "execution_count": 10 + }, + { + "cell_type": "markdown", + "id": "f2c2db9e", + "metadata": {}, + "source": [ + "定义仿真实验中dt对应的时间。\n", + "\n", + "实例化定义好的模型后,要先``bst.nn.init_all_states()``初始化这个实例。" + ] + }, + { + "cell_type": "code", + "id": "3aed3747", + "metadata": { + "ExecuteTime": { + "end_time": "2025-05-11T02:51:20.892699Z", + "start_time": "2025-05-11T02:51:20.762936Z" + } + }, + "source": [ + "# network\n", + "brainstate.environ.set(dt=0.1 * u.ms)\n", + "net = EINet(num_exc, num_inh, prob=prob, JE=JE, JI=JI)\n", + "brainstate.nn.init_all_states(net)" + ], + "outputs": [ + { + "data": { + "text/plain": [ + "EINet(\n", + " layers_tuple=(),\n", + " layers_dict={},\n", + " n_exc=500,\n", + " n_inh=500,\n", + " num=1000,\n", + " N=LIF(\n", + " _name=None,\n", + " in_size=(1000,),\n", + " out_size=(1000,),\n", + " current_inputs={\n", + " 'AlignPostProj0': CUBA(\n", + " _conductance=None,\n", + " scale=volt\n", + " )\n", + " },\n", + " _delta_inputs=None,\n", + " before_updates={\n", + " \"(, (1000,), {'tau': 2. * msecond}) // (, (), {})\": _AlignPost(\n", + " syn=Expon(\n", + " _name=None,\n", + " in_size=(1000,),\n", + " out_size=(1000,),\n", + " _current_inputs=None,\n", + " _delta_inputs=None,\n", + " _before_updates=None,\n", + " _after_updates=None,\n", + " tau=2. * msecond,\n", + " g_initializer=ZeroInit(\n", + " unit=msiemens\n", + " ),\n", + " g=HiddenState(\n", + " value=ShapedArray(float32[1000]) * msiemens\n", + " )\n", + " ),\n", + " out=CUBA(...)\n", + " )\n", + " },\n", + " _after_updates=None,\n", + " spk_reset=soft,\n", + " spk_fun=ReluGrad(alpha=0.3, width=1.0),\n", + " R=1. * ohm,\n", + " tau=10. * msecond,\n", + " V_th=-50. * mvolt,\n", + " V_rest=-52. * mvolt,\n", + " V_reset=-60. * mvolt,\n", + " V_initializer=Normal(\n", + " scale=10.0,\n", + " mean=-60.0,\n", + " rng=RandomState([3549270403 1145628597]),\n", + " unit=mvolt\n", + " ),\n", + " V=HiddenState(\n", + " value=ShapedArray(float32[1000]) * mvolt\n", + " )\n", + " ),\n", + " E=AlignPostProj(\n", + " name=AlignPostProj0,\n", + " modules=(),\n", + " merging=True,\n", + " comm=EventFixedNumConn(\n", + " in_size=(500,),\n", + " out_size=(1000,),\n", + " conn_target=post,\n", + " conn_num=100,\n", + " seed=None,\n", + " allow_multi_conn=True,\n", + " weight=ParamState(\n", + " value=ShapedArray(float32[], weak_type=True) * msiemens\n", + " ),\n", + " conn=FixedPostNumConn(float32[500, 1000], nse=50000)\n", + " ),\n", + " syn=Expon(...),\n", + " out=CUBA(...),\n", + " post=LIF(...)\n", + " ),\n", + " I=AlignPostProj(\n", + " name=AlignPostProj1,\n", + " modules=(),\n", + " merging=True,\n", + " comm=EventFixedNumConn(\n", + " in_size=(500,),\n", + " out_size=(1000,),\n", + " conn_target=post,\n", + " conn_num=100,\n", + " seed=None,\n", + " allow_multi_conn=True,\n", + " weight=ParamState(\n", + " value=ShapedArray(float32[], weak_type=True) * msiemens\n", + " ),\n", + " conn=FixedPostNumConn(float32[500, 1000], nse=50000)\n", + " ),\n", + " syn=Expon(...),\n", + " out=CUBA(...),\n", + " post=LIF(...)\n", + " )\n", + ")" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 11 + }, + { + "cell_type": "markdown", + "id": "0a52aac5", + "metadata": {}, + "source": [ + "实例化的网络模型使用``update()``方法输入每步的输入电流。\n", + "\n", + "使用``bst.compile.for_loop()``迭代运行函数,进行一段时间的仿真,第一个参数是要迭代的函数,随后是此函数所需要的参数。可以选择绘制迭代进度条。\n", + "\n", + "这样就完成了脉冲神经元网络模型的仿真。" + ] + }, + { + "cell_type": "code", + "id": "32e8e8ee", + "metadata": { + "ExecuteTime": { + "end_time": "2025-05-11T02:51:22.295610Z", + "start_time": "2025-05-11T02:51:20.949200Z" + } + }, + "source": [ + "# Simulation\n", + "# Define the time array from 0 to 1000 ms with a step size of dt\n", + "times = u.math.arange(0. * u.ms, 1000. * u.ms, brainstate.environ.get_dt())\n", + "\n", + "# Run the simulation using `brainstate.compile.for_loop`, iterating over each time step\n", + "# The `lambda t: net.update(Ib)` applies the `update` method of the network `net`\n", + "# for each time step, with `Ib` as the input current at each time step.\n", + "spikes = brainstate.compile.for_loop(\n", + " lambda t: net.update(Ib), # Call net.update with input current Ib\n", + " times, # Time steps\n", + " pbar=brainstate.compile.ProgressBar(10) # Show a progress bar with 10 steps\n", + ")" + ], + "outputs": [ + { + "data": { + "text/plain": [ + " 0%| | 0/10000 [00:00" + ], + "image/png": "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/35UVFQgOjq6zrp3330XcXFxyMnJwfDhw5GUlIRx48Zh7Nix2Lt3Lzp37oxx48ZBGXxPSUnBP//8g61bt+LAgQN48803NSNfer0evXr1wrZt2+ycKSJqDBZERNSi9OzZE6+99hoiIiLw8ssvw8vLCwEBAZg4cSIiIiKQlpaGs2fPYv/+/QCAjz76CFFRUZg3bx4iIyMRFRWFL7/8EpmZmTh27Fi9beTn58Pd3R2BgYF11g0bNgzPPPOM2lZlZSX69u2L0aNH47bbbsPMmTNx+PBhlJSUAAAKCgoQFxcHs9mMW2+9FQ888ADuuecezTZDQkKQn59v50wRUWOwICKiFqVHjx7q3+7u7mjXrh3MZrO6zGQyAQBKS0sBXDk4OjMzUz0myWAwIDIyEgBw4sSJetu4cOECPD096z3w27Z9pa2G2n/++ecxZ84cxMXFYfbs2WqhZsvb21sd0SIi52BBREQtSqtWrTT/63Q6zTKliLFarQCA6upqJCQkIDc3V3M7fvx4nZEaRUBAAM6fP4+ampoG21faaqj9CRMm4OTJk0hKSsKBAwcQHR2NDz/8ULPNsrIytG/f/toSQETNggUREd3UevfujYMHDyI8PBxdunTR3Fq3bl3vfXr16gXgyjxB9hAaGopJkyZh5cqVmD59OhYuXKhZn5eXh6ioKLu0RUTXhwUREd3UUlJSUFZWhjFjxmDPnj04ceIENmzYgPHjx8NisdR7n/bt26N3797Yvn17k9tPTU3Fhg0bcOrUKezduxeZmZno1q2buv706dMoKipCfHx8k9siouvHgoiIbmohISHYsWMHLBYLBg8eDLPZjNTUVBiNRri5Xf0jcMKECVi0aFGT27dYLEhJSUG3bt1w//3347bbbsMnn3yirl+yZAkGDx6Mjh07NrktIrp+nJiRiKgeFy5cQNeuXbFs2TLExMQ0Sxs1NTWIiIjA4sWLERcX1yxtENG14QgREVE9vL298e233zY4gWNTFRQU4JVXXmExRHQD4AgRERERuTyOEBEREZHLY0FERERELo8FEREREbk8FkRERETk8lgQERERkctjQUREREQujwURERERuTwWREREROTyWBARERGRy/s/1EIk+TCYFCMAAAAASUVORK5CYII=" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 13 + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/snn_training-en.ipynb b/docs/snn_training-en.ipynb new file mode 100644 index 000000000..03d7a214e --- /dev/null +++ b/docs/snn_training-en.ipynb @@ -0,0 +1,709 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "de646938e4e80791", + "metadata": { + "collapsed": false + }, + "source": [ + "# Training Spiking Neural Networks" + ] + }, + { + "cell_type": "markdown", + "id": "e863dc68", + "metadata": {}, + "source": [ + "## Introduction\n", + "\n", + "In recent years, there has been a surge of interest in training Spiking Neural Networks (SNNs) for meaningful computation. On one hand, this surge is driven by the limited achievements of more traditional, often considered more biologically plausible, learning paradigms in creating functional neural networks that solve interesting computational problems. Deep Neural Networks have undeniably succeeded in solving a variety of challenging computational problems, bridging this limitation. This success has both raised the bar and posed the question of how this progress translates to Spiking Neural Networks.\n", + "\n", + "The rise of deep learning over the past decade is largely attributed to the advancements in GPUs and their computational power, the expansion of training datasets, and perhaps most importantly, the improved understanding of the characteristics and requirements of the backpropagation of error algorithm. For instance, we now know that we must avoid the vanishing and exploding gradient problems, an achievement that can be realized by choosing reasonable nonlinear functions, appropriate weight initialization, and suitable optimizers. Powerful software packages supporting automatic differentiation have made handling deep neural networks easier than ever before. This development raises the question: how much can we learn from deep learning and its tools and apply it to training Spiking Neural Networks? Although these questions cannot be fully answered at present, it seems that we can learn a lot.\n", + "\n", + "In this tutorial, we use [`brainstate`](https://brainstate.readthedocs.io/en/latest/) along with tools from the [Brain Dynamics Programming Ecosystem](https://ecosystem-for-brain-dynamics.readthedocs.io/en/latest/) to build a Spiking Neural Network step by step. To be clear, our goal is to build networks that solve (simple) real-world problems. To this end, we focus on classification problems and use supervised learning in conjunction with the backpropagation algorithm mentioned above. To do so, we must overcome the vanishing gradient problem caused by the binary nature of spikes themselves.\n", + "\n", + "In this tutorial, we will first show how a simple feedforward Leaky Integrate-and-Fire (LIF) neuron-based and conductance-based synaptic Spiking Neural Network (SNN) can be formally mapped to a discrete-time Recurrent Neural Network (RNN). We will leverage this formulation to explain why gradients vanish at the time of spikes and demonstrate a method to mitigate this issue. Specifically, we will introduce surrogate gradients and provide practical examples of how to implement them in Brainstate." + ] + }, + { + "cell_type": "markdown", + "id": "f5e4070f", + "metadata": {}, + "source": [ + "## Mapping LIF Neurons to RNN Dynamics\n", + "\n", + "The de facto standard neuron model in network simulations in computational neuroscience is the Leaky Integrate-and-Fire (LIF) neuron model, which is typically written formally as a time-continuous dynamical system in differential form:\n", + "\n", + "$$\\tau_\\mathrm{mem} \\frac{\\mathrm{d}U_i^{(l)}}{\\mathrm{d}t} = -(U_i^{(l)}-U_\\mathrm{rest}) + RI_i^{(l)}$$\n", + "\n", + "where $U_i$ is the membrane potential of neuron $i$ in layer $l$, $U_\\mathrm{rest}$ is the resting potential, $\\tau_\\mathrm{mem}$ is the membrane time constant, $R$ is the input resistance, and $I_i$ is the input current. The membrane potential $U_i$ characterizes the hidden state of each neuron and, importantly, it is not directly passed to downstream neurons. However, when the membrane voltage of a neuron exceeds a threshold $\\vartheta$, the neuron fires an action potential or spike at time $t$. After firing a spike, the neuron's membrane voltage is reset $U_i \\rightarrow U_\\mathrm{rest}$. We write\n", + "\n", + "$$S_i^{(l)}(t)=\\sum_{k \\in C_i^l} \\delta(t-t_j^k)$$ \n", + "\n", + "to denote the spike train (i.e., the sum of all spikes $C_i^l$ fired by neuron $i$ in layer $l$). Here, $\\delta$ is the Dirac delta function, and $t_i^k$ are the relevant firing times of the neuron.\n", + "\n", + "Spikes propagate along axons and generate postsynaptic currents in connected neurons. Using the above formalism, we can write\n", + "\n", + "$$\\frac{\\mathrm{d}I_i}{\\mathrm{d}t}= -\\frac{I_i(t)}{\\tau_\\mathrm{syn}} + \\sum_j W_{ij} S_j^{(0)}(t) + \\sum_j V_{ij} S_j^{(1)}(t)$$\n", + "\n", + "where we have introduced the synaptic weight matrices $W_{ij}$ (feedforward), $V_{ij}$ (recurrent), and the synaptic decay time constant $\\tau_\\mathrm{syn}$.\n", + "\n", + "To make an explicit connection with RNNs, we now express the above equations in discrete-time form. For brevity, we switch to natural units $U_\\mathrm{rest}=0$, $R=1$, and $\\vartheta=1$. Our argument is not affected by this choice, and all results can be rescaled to physical units. To highlight the nonlinearity of spikes, we first note that we can set\n", + "\n", + "$$S_i^{(l)}(t)=\\Theta(U_i^{(l)}(t)-\\vartheta)$$\n", + "\n", + "where $\\Theta$ denotes the Heaviside step function.\n", + "\n", + "Assuming a small simulation time step $\\Delta_t>0$, we can approximate the synaptic dynamics as follows:\n", + "\n", + "$$I_i^{(l)}(t+1) = \\alpha I_i^{(l)}(t) + \\sum_j W_{ij} S_j^{(l-1)}(t) +\\sum_j V_{ij} S_j^{(l)}(t)$$\n", + "\n", + "where the constant $\\alpha=\\exp\\left(-\\frac{\\Delta_t}{\\tau_\\mathrm{syn}} \\right)$. Additionally, the membrane dynamics can be written as\n", + "\n", + "$$U_i^{(l)}(t+1) = \\underbrace{\\beta U_i^{(l)}(t)}_{\\mathrm{leak}} + \\underbrace{I_i^{(l)}(t)}_{\\mathrm{input}} -\\underbrace{S_i^{(l)}(t)}_{\\mathrm{reset}}$$\n", + "\n", + "where the output $S_i(t) = \\Theta(U_i(t)-1)$ and the constant $\\beta=\\exp\\left(-\\frac{\\Delta_t}{\\tau_\\mathrm{mem}}\\right)$. Note the different terms on the right-hand side of the equation, which are responsible for: i) leakage, ii) synaptic input, and iii) spike reset.\n", + "\n", + "These equations can be succinctly summarized as a computational graph of an RNN with specific connectivity structures.\n", + "\n", + "

\n", + " \"snn_graph\"/\n", + "

\n", + "\n", + "Time flows from left to right. Inputs enter the network at each time step from the bottom of the graph ($S_i^{(0)}$). These inputs successively affect the synaptic currents $I_i^{(1)}$, the membrane potentials $U_i^{(1)}$, and finally the spike outputs $S_i^{(1)}$. Additionally, dynamic quantities are fed directly into future time steps. For clarity, the index $i$ is omitted in the figure.\n", + "\n", + "The computational graph showcases a concept called time unfolding, which emphasizes the duality between deep neural networks and recurrent neural networks, the latter being nothing but deep networks in time (with bound weights). Due to this fact, we can use backpropagation through time (BPTT) to train RNNs. Let us first implement the above dynamics in a three-layer spiking neural network in Brainstate." + ] + }, + { + "cell_type": "markdown", + "id": "ea0355a4", + "metadata": {}, + "source": [ + "## Example of Building and Training a Spiking Neural Network\n", + "\n", + "We start by importing the required libraries." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "efa4ca7d", + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "\n", + "import braintools as bts\n", + "import brainunit as u\n", + "import jax.numpy as jnp\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import seaborn as sns\n", + "\n", + "import brainstate " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "023064f2", + "metadata": {}, + "outputs": [], + "source": [ + "num_inputs = 100 # Number of input neurons\n", + "num_hidden = 4 # Number of hidden neurons\n", + "num_outputs = 2 # Number of output neurons" + ] + }, + { + "cell_type": "markdown", + "id": "fd204d11", + "metadata": {}, + "source": [ + "As we have seen above, we are technically simulating an RNN. Thus, we have to simulate our neurons for a certain number of timesteps. We will use 1ms timesteps, and we want to simulate our network for 200 timesteps." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "1ca98cde", + "metadata": {}, + "outputs": [], + "source": [ + "time_step = 1 * u.ms\n", + "brainstate.environ.set(dt=time_step) # Set the time step for the simulation\n", + "num_steps = 200" + ] + }, + { + "cell_type": "markdown", + "id": "64a3face", + "metadata": {}, + "source": [ + "To take advantage of parallelism, we will set up our code to work on batches of data like this is usually done for neural networks that are trained in a supervised manner.\n", + "To that end, we specify a batch size here." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "50f08663", + "metadata": {}, + "outputs": [], + "source": [ + "batch_size = 256" + ] + }, + { + "cell_type": "markdown", + "id": "cfea1a1c", + "metadata": {}, + "source": [ + "With these basic design choices made, we can now start building the actual network." + ] + }, + { + "cell_type": "markdown", + "id": "be04ea73", + "metadata": {}, + "source": [ + "### Defining the Spiking Neural Network (SNN)\n", + "\n", + "- **The class inherits from `bst.nn.DynamicsGroup`**:\n", + " - `bst.nn.DynamicsGroup` is a class that contains dynamic neural network components, used to simulate the dynamical behavior of neurons over time.\n", + " - By inheriting from `DynamicsGroup`, the `SNN` class can leverage the tools provided by the framework to manage state updates and activity simulations of the spiking neural network.\n", + "\n", + "- **`__init__` constructor method**:\n", + " - The `__init__` method initializes the network structure, including connections from the input to the recurrent layer, the spiking neuron model of the recurrent layer, connections from the recurrent layer to the output layer, and the processing units of the output layer.\n", + "\n", + "#### Connections from Input Layer to Recurrent Layer (`self.i2r`)\n", + "\n", + "- **`bst.nn.Sequential`**: Used to sequentially combine multiple layers. This contains two layers: a linear layer and an exponential decay layer.\n", + " \n", + "- **Linear Layer (`bst.nn.Linear`)**:\n", + " - **Function**: Transfers signals from the input layer to the recurrent layer.\n", + " - **Parameters**:\n", + " - `num_in`: Number of neurons in the input layer.\n", + " - `num_rec`: Number of neurons in the recurrent layer.\n", + " - `w_init`: Weight initialization method, using Kaiming Normal initialization, suitable for activation functions like ReLU.\n", + " - `b_init`: Bias initialization, set to zero initialization here.\n", + "\n", + "- **Exponential Decay Layer (`bst.nn.Expon`)**:\n", + " - **Function**: Simulates the exponential decay characteristics of input signals over time, making the input signals more consistent with the dynamical characteristics of biological neurons.\n", + " - **Parameters**:\n", + " - `num_rec`: Specifies the number of neurons in the recurrent layer.\n", + " - `tau`: Time constant, controlling the rate of exponential decay, set to `10 ms` here.\n", + " - `g_initializer`: Initializes the value of parameter `g`, set to 0 here, representing zero initial input current.\n", + "\n", + "#### Recurrent Layer (`self.r`)\n", + "\n", + "- **LIF Neuron Model (`bst.nn.LIF`)**:\n", + " - **Function**: The recurrent layer uses the Leaky Integrate-and-Fire (LIF) neuron model, a widely applied biological neuron model for spiking activity.\n", + " - **Parameters**:\n", + " - `num_rec`: Number of neurons in the recurrent layer.\n", + " - `tau`: Time constant, controlling the rate of potential leakage, set to `20 ms` here.\n", + " - `V_reset`: Reset value of the membrane potential after spiking, set to `0 mV` here.\n", + " - `V_rest`: Resting membrane potential value of the neuron, also `0 mV`.\n", + " - `V_th`: Threshold of the membrane potential, set to `1 mV`, exceeding which the neuron will fire a spike.\n", + " - `spk_fun`: Defines the activation function for spiking, using `bst.surrogate.ReluGrad()` as the approximate derivative method for the spike function.\n", + "\n", + "#### Connections from Recurrent Layer to Output Layer (`self.r2o`)\n", + "\n", + "- **Linear Layer**:\n", + " - **Function**: Transfers output signals from the recurrent layer to the output layer.\n", + " - **Parameters**:\n", + " - `num_rec`: Number of neurons in the recurrent layer.\n", + " - `num_out`: Number of neurons in the output layer.\n", + " - `w_init`: Weight initialization method, also using Kaiming Normal initialization.\n", + "\n", + "#### Output Layer (`self.o`)\n", + "\n", + "- **Exponential Decay Layer**:\n", + " - **Function**: Simulates the decay behavior of output layer signals over time.\n", + " - **Parameters**:\n", + " - `num_out`: Number of neurons in the output layer.\n", + " - `tau`: Time constant for decay, set to `10 ms` here.\n", + " - `g_initializer`: Initial value for output current set to zero." + ] + }, + { + "metadata": {}, + "cell_type": "code", + "outputs": [], + "execution_count": null, + "source": [ + "class SNN(brainstate.nn.DynamicsGroup):\n", + " def __init__(self, num_in, num_rec, num_out):\n", + " # Initialize the parent class DynamicsGroup\n", + " super(SNN, self).__init__()\n", + "\n", + " # Parameter definitions\n", + " self.num_in = num_in # Number of neurons in the input layer\n", + " self.num_rec = num_rec # Number of neurons in the recurrent layer\n", + " self.num_out = num_out # Number of neurons in the output layer\n", + "\n", + " # Define connections from the input layer to the recurrent layer (synapse: i->r)\n", + " # Use Sequential to connect the linear layer and the exponential decay layer together\n", + " self.i2r = brainstate.nn.Sequential(\n", + " # Linear layer: used to map input signals to the recurrent layer\n", + " brainstate.nn.Linear(\n", + " num_in, num_rec, # Connections from the input layer to the recurrent layer\n", + " w_init=brainstate.nn.KaimingNormal(scale=7 * (1 - (u.math.exp(-brainstate.environ.get_dt() / (1 * u.ms)))), unit=u.mA), # Use Kaiming Normal initialization for weights\n", + " b_init=brainstate.nn.ZeroInit(unit=u.mA) # Bias initialized to zero\n", + " ),\n", + " # Exponential decay layer: decays the signal over time to match biological neuron dynamics\n", + " brainstate.nn.Expon(num_rec, tau=10. * u.ms, g_initializer=brainstate.nn.Constant(0. * u.mA))\n", + " )\n", + "\n", + " # Define the recurrent layer (r), using the LIF neuron model\n", + " self.r = brainstate.nn.LIF(\n", + " num_rec, # Number of neurons in the recurrent layer\n", + " tau=20 * u.ms, # Time constant, controlling the rate of membrane potential decay\n", + " V_reset=0 * u.mV, # Reset value of the membrane potential\n", + " V_rest=0 * u.mV, # Resting membrane potential\n", + " V_th=1. * u.mV, # Threshold of the membrane potential, exceeding which the neuron fires a spike\n", + " spk_fun=braintools.surrogate.ReluGrad() # Approximate derivative function for spike implementation\n", + " )\n", + "\n", + " # Define connections from the recurrent layer to the output layer (synapse: r->o), using a linear layer\n", + " self.r2o = brainstate.nn.Linear(\n", + " num_rec, num_out, # Connections from the recurrent layer to the output layer\n", + " w_init=brainstate.nn.KaimingNormal() # Use Kaiming Normal initialization for weights\n", + " )\n", + "\n", + " # Define the output layer (o), using an exponential decay layer to simulate the time decay of output signals\n", + " self.o = brainstate.nn.Expon(\n", + " num_out, # Number of neurons in the output layer\n", + " tau=10. * u.ms, # Time constant, controlling the rate of output signal decay\n", + " g_initializer=brainstate.nn.Constant(0.) # Initialize current to zero\n", + " )\n", + "\n", + " # update method: used to perform one update of the network, returning the output of the output layer\n", + " def update(self, spike):\n", + " # Sequentially compute through i2r, r, r2o, and o\n", + " return self.o(self.r2o(self.r(self.i2r(spike))))\n", + "\n", + " # predict method: used to predict and obtain the membrane potential values of the recurrent layer, spike outputs, and final output\n", + " def predict(self, spike):\n", + " # Compute the spike outputs of the recurrent layer\n", + " rec_spikes = self.r(self.i2r(spike))\n", + " # Compute the final output\n", + " out = self.o(self.r2o(rec_spikes))\n", + " # Return the membrane potential values of the recurrent layer, recurrent layer spike outputs, and final output\n", + " return self.r.V.value, rec_spikes, out" + ], + "id": "b1f06d6671e6547" + }, + { + "metadata": {}, + "cell_type": "code", + "outputs": [], + "execution_count": null, + "source": "net = SNN(num_inputs, num_hidden, num_outputs)", + "id": "fa555b53ff2ebc08" + }, + { + "cell_type": "markdown", + "id": "7b2967cf", + "metadata": {}, + "source": [ + "### Simple Synthetic Dataset\n", + "\n", + "We start by generating some random spiking dataset, which we will use as input to our network. Initially, we will work with a single batch of data.\n", + "\n", + "Suppose we want our network to classify a set of different sparse input spike trains into two categories.\n", + "\n", + "To generate some synthetic data, we fill a tensor of shape (batch_size x num_steps x num_inputs) with random uniform numbers between 0 and 1 and use this to generate our input dataset:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "dba0ea3e", + "metadata": {}, + "outputs": [], + "source": [ + "freq = 5 * u.Hz\n", + "x_data = brainstate.random.rand(num_steps, batch_size, net.num_in) < freq * brainstate.environ.get_dt()\n", + "y_data = u.math.asarray(brainstate.random.rand(batch_size) < 0.5, dtype=int)" + ] + }, + { + "cell_type": "markdown", + "id": "ecd09023", + "metadata": {}, + "source": [ + "Note that there is no structure in the data (because it is entirely random). Thus, we won't worry about generalization now and only care about our ability to overfit these data with the spiking neural network we are going to build in a jiffy." + ] + }, + { + "cell_type": "markdown", + "id": "fab42d61", + "metadata": {}, + "source": [ + "If we plot the spike raster of the first input pattern, this synthetic dataset looks as follows." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "4023235e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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mz59uvj5z38uX6gQePLJJ0VlZeUZb+vv7xdqtVq8/fbbgWVff/21ACCamppGKeHo+fnPfy6KioqE3+8XQkTn9gYgli1bFvje7/cLi8Uifv3rXweW9ff3C61WK9566y0hhBB79+4VAMTWrVsD9/n000+FJEmitbV11LJfjL9/3WeyZcsWAUAcPXo0sCwvL0/85je/CW24EDrT677rrrvEtdde+52PiZXtfe2114rLLrts2LJI394XK6r3yLjdbjQ3N6OhoSGwTKFQoKGhAU1NTTImCx2r1QoASE5OHrb8jTfeQGpqKsaPH4/HHnsMdrtdjnhBtX//fmRmZqKwsBC33347jh07BgBobm6Gx+MZtt3LysqQm5sbddvd7Xbj9ddfx49+9KNhk6pF4/b+W4cPH0ZHR8ewbWwymVBXVxfYxk1NTUhMTMTEiRMD92loaIBCocDmzZtHPXOoWK1WSJKExMTEYcuffvpppKSkoLq6Gr/+9a/h9XrlCRhEa9asQXp6OkpLS/GTn/wEPT09gdtiYXt3dnbi448/xj333HPabdG4vc9VVE8a2d3dDZ/PB7PZPGy52WzGN998I1Oq0PH7/XjooYcwbdo0jB8/PrD8hz/8IfLy8pCZmYldu3bh0UcfRUtLC9577z0Z016curo6vPrqqygtLUV7ezt++ctf4nvf+x727NmDjo4OaDSa036xm81mdHR0yBM4RN5//3309/fj7rvvDiyLxu39905txzP93z51W0dHB9LT04fdrlKpkJycHDXvA6fTiUcffRS33XbbsIkEf/azn6GmpgbJycnYuHEjHnvsMbS3t+O5556TMe3FueKKK3DDDTegoKAABw8exD//8z/jyiuvRFNTE5RKZUxs79deew1Go/G0w+TRuL3PR1QXmVizYMEC7NmzZ9i5IgCGHSOuqKhARkYGLr/8chw8eBBFRUWjHTMorrzyysC/J0yYgLq6OuTl5eF//ud/oNPpZEw2ul5++WVceeWVyMzMDCyLxu1Np/N4PLj55pshhMAf/vCHYbctXLgw8O8JEyZAo9HgH/7hH7Bo0aKIHeL+1ltvDfy7oqICEyZMQFFREdasWYPLL79cxmSj55VXXsHtt9+OuLi4YcujcXufj6g+tJSamgqlUnna1SqdnZ2wWCwypQqNBx54AB999BFWr16N7OzsEe9bV1cHADhw4MBo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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "data_id = 0\n", + "plt.imshow(x_data.swapaxes(0, 1)[data_id].transpose(), cmap=plt.cm.gray_r, aspect=\"auto\")\n", + "plt.xlabel(\"Time (ms)\")\n", + "plt.ylabel(\"Unit\")\n", + "sns.despine()" + ] + }, + { + "cell_type": "markdown", + "id": "cb32724d", + "metadata": {}, + "source": [ + "### Visualizing Neuron Membrane Potentials\n", + "\n", + "Define a helper function `plot_voltage_traces` to plot the membrane potentials and spike activities of neurons." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "ebb6771f", + "metadata": {}, + "outputs": [], + "source": [ + "def plot_voltage_traces(mem, spk=None, dim=(3, 5), spike_height=5, show=True):\n", + " fig, gs = bts.visualize.get_figure(*dim, 3, 3)\n", + " if spk is not None:\n", + " mem[spk > 0.0] = spike_height\n", + " if isinstance(mem, u.Quantity):\n", + " mem = mem.to_decimal(u.mV)\n", + " for i in range(np.prod(dim)):\n", + " if i == 0:\n", + " a0 = ax = plt.subplot(gs[i])\n", + " else:\n", + " ax = plt.subplot(gs[i], sharey=a0)\n", + " ax.plot(mem[:, i])\n", + " if show:\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "d619b651", + "metadata": {}, + "source": [ + "### Testing the Untrained Network Performance\n", + "\n", + "Test the network before training and visualize the changes in membrane potentials using `plot_voltage_traces`." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "62367233", + "metadata": {}, + "outputs": [], + "source": [ + "def print_classification_accuracy(output, target):\n", + " \"\"\" Dirty little helper function to compute classification accuracy. \"\"\"\n", + " m = u.math.max(output, axis=0) # max over time\n", + " am = u.math.argmax(m, axis=1) # argmax over output units\n", + " acc = u.math.mean(target == am) # compare to labels\n", + " print(\"Accuracy %.3f\" % acc)\n", + "\n", + "def predict_and_visualize_net_activity(net):\n", + " brainstate.nn.init_all_states(net, batch_size=batch_size)\n", + " vs, spikes, outs = brainstate.compile.for_loop(net.predict, x_data, pbar=brainstate.compile.ProgressBar(10))\n", + " plot_voltage_traces(vs, spikes, spike_height=5 * u.mV, show=False)\n", + " plot_voltage_traces(outs)\n", + " print_classification_accuracy(outs, y_data)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "8d6a6bdb", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "0cffa64d16a04a5c8a9e8bbf31ac7681", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/200 [00:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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L79cqFnPPffcmDZtWvzyl7+MiOqe6xOf+ESsX78+7r///jjzzDPL14/l866trW3YP883nmMoeVWcGeVVdc4lr/KRV8WZUV5V51zyKh95VZwZ5VV1ziWv8pFXxZlRXlXnXNWQV8r5YTQ0NMS8efOiu7u7fG1wcDC6u7ujs7NzHHf223nllVfiv//7v+P000+PefPmxcSJE4fMuH379ti5c2ehZjznnHOira1tyBwDAwOxadOm8hydnZ2xd+/e6O3tLa/ZuHFjDA4ORkdHR/Y9H6/nn38+XnrppTj99NMjojrnSinFJz7xifje974XGzdujHPOOWfI88fyedfZ2RlPPfXUkODesGFDNDU1xe/8zu/kGaRA5FVxZpRX1TWXvMpPXhVnRnlVXXPJq/zkVXFmlFfVNZe8yk9eFWdGeVVdc1VVXv32P8/2xHTXXXelxsbGtHbt2rRt27a0bNmy1NLSMuQn8Fa7lStXpgceeCDt2LEj/exnP0tdXV1p2rRpac+ePSmllG644YY0a9astHHjxvTEE0+kzs7O1NnZOc67fqt9+/alLVu2pC1btqSISP/wD/+QtmzZkp577rmUUkpf+MIXUktLS/r+97+fnnzyyXTVVVelc845J7322mvlj3HFFVek9773vWnTpk3p4YcfTuedd15atGjReI2UUhp5rn379qXPfOYzqaenJ+3YsSP95Cc/Sb/7u7+bzjvvvHTgwIHyx6i2uT72sY+l5ubm9MADD6QXXnih/Hj11VfLa0b7vHv99dfTu9/97nT55Zenn//85+nHP/5xmj59elq1atV4jFQI8qp6yCt5Ja9GJq+qh7ySV/JqZPKqesgreSWvRiavqoe8klfHk1fK+RHcdtttadasWamhoSHNnz8/Pfroo+O9pTG55ppr0umnn54aGhrSGWecka655pr0y1/+svz8a6+9lj7+8Y+nd7zjHenkk09OH/jAB9ILL7wwjjse3v33358i4i2PJUuWpJRSGhwcTDfffHNqbW1NjY2N6bLLLkvbt28f8jFeeumltGjRonTqqaempqamdP3116d9+/aNwzRvGmmuV199NV1++eVp+vTpaeLEiemss85Kf/7nf/6W/3OttrmGmyci0j/+4z+W1xzL593//M//pPe///1p8uTJadq0aWnlypXp8OHDmacpFnlVHeSVvJJXo5NX1UFeySt5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AACAjBnOAwAAAABAxgznAQAAAAAgY8M2nD979mysWrUqqqqqorq6OtasWRPnzp0b8JqLFy/G+vXr47bbbosJEybEypUr49SpU/2uPXPmTMycOTPKysqis7NzGBIAo4W+AvJCXwF5oa+AvNBXQDEN23B+1apVcejQodi+fXts27Ytdu/eHWvXrh3wmsceeyxefPHF2Lp1a+zatStOnDgR999/f79r16xZEwsXLhyOrQOjjL4C8kJfAXmhr4C80FdAUaVhcPjw4RQRae/evYVjL730UiorK0tvvPFGv9d0dnamioqKtHXr1sKxV199NUVEam1t7bP2mWeeSZ/+9KdTc3Nzioj03//+d0j76+rqShGRurq6hnQdkL3hvl/1FfBe0Vf6CvJCX+kryAt9pa8gL272fh2Wd863trZGdXV13HXXXYVjDQ0NUV5eHm1tbf1es3///rhy5Uo0NDQUji1YsCBqa2ujtbW1cOzw4cPx7W9/O5577rkoLx/c9i9duhTd3d19HgAR+grID30F5IW+AvJCXwHFNizD+Y6Ojpg6dWqfY2PGjIlJkyZFR0fHO14zduzYqK6u7nN82rRphWsuXboUTU1N8eSTT0Ztbe2g97N58+aYOHFi4TFr1qyhBQJGLH0F5IW+AvJCXwF5oa+AYhvScP5rX/talJWVDfj4xz/+MVx7jccffzw+8pGPxIMPPjjk67q6ugqP119/fZh2CJQKfQXkhb4C8kJfAXmhr4C8GDOUxRs3boyHHnpowDVz586NmpqaOH36dJ/jV69ejbNnz0ZNTU2/19XU1MTly5ejs7Ozz08fT506VbimpaUlDh48GL/61a8iIiKlFBERkydPjq9//evxrW99q9+vXVlZGZWVlYOJCIwQ+grIC30F5IW+AvJCXwF5MaTh/JQpU2LKlCk3XFdfXx+dnZ2xf//+WLJkSUT8bzH19vZGXV1dv9csWbIkKioqorm5OVauXBkREe3t7XHs2LGor6+PiIhf//rXceHChcI1e/fujS984Qvxhz/8IW6//fahRAFGOH0F5IW+AvJCXwF5oa+A3HjvP5v2fzU2NqbFixentra2tGfPnjRv3rzU1NRUOH/8+PE0f/781NbWVji2bt26VFtbm1paWtK+fftSfX19qq+vf8d/Y8eOHT7tGka4LO5XfQW8F/SVvoK80Ff6CvJCX+kryIubvV+H9M75ofjZz34WGzZsiKVLl0Z5eXmsXLkynnrqqcL5K1euRHt7e5w/f75w7Ic//GFh7aVLl2L58uXxzDPPDNcWASJCXwH5oa+AvNBXQF7oK6CYylL6v198NYp0d3fHxIkTo6urK6qqqoq9HWAAo/1+He35IU9G+/062vNDnoz2+3W054c8Ge3362jPD3lys/dr+TDuCQAAAAAA6IfhPAAAAAAAZMxwHgAAAAAAMmY4DwAAAAAAGTOcBwAAAACAjBnOAwAAAABAxgznAQAAAAAgY4bzAAAAAACQMcN5AAAAAADImOE8AAAAAABkzHAeAAAAAAAyZjgPAAAAAAAZM5wHAAAAAICMGc4DAAAAAEDGDOcBAAAAACBjhvMAAAAAAJAxw3kAAAAAAMiY4TwAAAAAAGTMcB4AAAAAADJmOA8AAAAAABkznAcAAAAAgIwZzgMAAAAAQMYM5wEAAAAAIGOG8wAAAAAAkDHDeQAAAAAAyJjhPAAAAAAAZMxwHgAAAAAAMmY4DwAAAAAAGRtT7A0UQ0opIiK6u7uLvBPgRt66T9+6b0cbfQX5oa/0FeSFvtJXkBf6Sl9BXtxsX43K4XxPT09ERMyaNavIOwEGq6enJyZOnFjsbWROX0H+6Ct9BXmhr/QV5IW+0leQF0Ptq7I0Cn/82NvbGydOnIhbbrklysrKBlzb3d0ds2bNitdffz2qqqoy2uHwkytfRmKuwWZKKUVPT0/MmDEjystH32/i0ldy5c1IzKWvBkdfyZU3IzGXvhocfSVX3ozEXPpqcPSVXHkzEnMNd1+NynfOl5eXx8yZM4d0TVVV1Yh5Uf2/5MqXkZhrMJlG4zsk3qKvrpMrX0ZiLn01MH11nVz5MhJz6auB6avr5MqXkZhLXw1MX10nV76MxFzD1Vej78eOAAAAAABQZIbzAAAAAACQMcP5G6isrIxNmzZFZWVlsbfynpIrX0ZirpGYqdhG6vdUrnwZiblGYqZiG6nfU7nyZSTmGomZim2kfk/lypeRmGskZiq2kfo9lStfRmKu4c40Kj8QFgAAAAAAisk75wEAAAAAIGOG8wAAAAAAkDHDeQAAAAAAyJjhPAAAAAAAZMxwHgAAAAAAMmY4P4Cnn346PvShD8X73//+qKuriz//+c/F3tKQfPOb34yysrI+jwULFhTOX7x4MdavXx+33XZbTJgwIVauXBmnTp0q4o77t3v37vjsZz8bM2bMiLKysvjNb37T53xKKZ544omYPn16jBs3LhoaGuK1117rs+bs2bOxatWqqKqqiurq6lizZk2cO3cuwxRvd6NcDz300Nuev8bGxj5rSi3X5s2b4xOf+ETccsstMXXq1Pjc5z4X7e3tfdYM5nV37NixuOeee2L8+PExderU+OpXvxpXr17NMkru6KvSoK/0lb66MX1VGvSVvtJXN6avSoO+0lf66sb0VWnQV/rqZvrKcP4d/OIXv4gvf/nLsWnTpvjLX/4SixYtiuXLl8fp06eLvbUh+djHPhYnT54sPPbs2VM499hjj8WLL74YW7dujV27dsWJEyfi/vvvL+Ju+/fmm2/GokWL4umnn+73/Pe///146qmn4sc//nG0tbXFBz7wgVi+fHlcvHixsGbVqlVx6NCh2L59e2zbti12794da9euzSpCv26UKyKisbGxz/P3/PPP9zlfarl27doV69evj1deeSW2b98eV65ciWXLlsWbb75ZWHOj1921a9finnvuicuXL8ef/vSn+OlPfxpbtmyJJ554ohiRckFflQ59pa/01cD0VenQV/pKXw1MX5UOfaWv9NXA9FXp0Ff66qb6KtGvu+++O61fv77w92vXrqUZM2akzZs3F3FXQ7Np06a0aNGifs91dnamioqKtHXr1sKxV199NUVEam1tzWiHQxcR6YUXXij8vbe3N9XU1KQnn3yycKyzszNVVlam559/PqWU0uHDh1NEpL179xbWvPTSS6msrCy98cYbme19IP9/rpRSWr16dbr33nvf8Zo85Dp9+nSKiLRr166U0uBed7/73e9SeXl56ujoKKx59tlnU1VVVbp06VK2AXJCX5UmfXVdHnLpq2zoq9Kkr67LQy59lQ19VZr01XV5yKWvsqGvSpO+ui4PuYrZV94534/Lly/H/v37o6GhoXCsvLw8GhoaorW1tYg7G7rXXnstZsyYEXPnzo1Vq1bFsWPHIiJi//79ceXKlT4ZFyxYELW1tbnKePTo0ejo6OiTY+LEiVFXV1fI0draGtXV1XHXXXcV1jQ0NER5eXm0tbVlvueh2LlzZ0ydOjXmz58fjzzySJw5c6ZwLg+5urq6IiJi0qRJETG4111ra2vceeedMW3atMKa5cuXR3d3dxw6dCjD3eeDvspPRn1V2rn01fDTV/nJqK9KO5e+Gn76Kj8Z9VVp59JXw09f5SejvirtXMXsK8P5fvznP/+Ja9eu9fnmRkRMmzYtOjo6irSroaurq4stW7bEyy+/HM8++2wcPXo0PvWpT0VPT090dHTE2LFjo7q6us81ecv41l4Heq46Ojpi6tSpfc6PGTMmJk2aVNJZGxsb47nnnovm5ub43ve+F7t27YoVK1bEtWvXIqL0c/X29saXvvSl+OQnPxl33HFHRMSgXncdHR39Pp9vnaMvfZWfjPqqdHPpq2zoq/xk1Felm0tfZUNf5SejvirdXPoqG/oqPxn1VenmKnZfjXkXe6fErVixovDnhQsXRl1dXcyePTt++ctfxrhx44q4Mwbj85//fOHPd955ZyxcuDBuv/322LlzZyxdurSIOxuc9evXx9///vc+vycO3om+yjd9xWiir/JNXzGa6Kt801eMJvoq3/TVu+Od8/2YPHlyvO9973vbJ/CeOnUqampqirSrd6+6ujo+/OEPx5EjR6KmpiYuX74cnZ2dfdbkLeNbex3ouaqpqXnbB6FcvXo1zp49m6usc+fOjcmTJ8eRI0ciorRzbdiwIbZt2xY7duyImTNnFo4P5nVXU1PT7/P51jn60lf5yaivSjOXvsqOvspPRn1Vmrn0VXb0VX4y6qvSzKWvsqOv8pNRX5VmrlLoK8P5fowdOzaWLFkSzc3NhWO9vb3R3Nwc9fX1RdzZu3Pu3Ln45z//GdOnT48lS5ZERUVFn4zt7e1x7NixXGWcM2dO1NTU9MnR3d0dbW1thRz19fXR2dkZ+/fvL6xpaWmJ3t7eqKury3zPN+v48eNx5syZmD59ekSUZq6UUmzYsCFeeOGFaGlpiTlz5vQ5P5jXXX19fRw8eLBPcW/fvj2qqqriox/9aDZBckRf5SejviqtXPoqe/oqPxn1VWnl0lfZ01f5yaivSiuXvsqevspPRn1VWrlKqq/e/efZjkw///nPU2VlZdqyZUs6fPhwWrt2baquru7zCbylbuPGjWnnzp3p6NGj6Y9//GNqaGhIkydPTqdPn04ppbRu3bpUW1ubWlpa0r59+1J9fX2qr68v8q7frqenJx04cCAdOHAgRUT6wQ9+kA4cOJD+/e9/p5RS+u53v5uqq6vTb3/72/S3v/0t3XvvvWnOnDnpwoULha/R2NiYFi9enNra2tKePXvSvHnzUlNTU7EipZQGztXT05O+8pWvpNbW1nT06NH0+9//Pn384x9P8+bNSxcvXix8jVLL9cgjj6SJEyemnTt3ppMnTxYe58+fL6y50evu6tWr6Y477kjLli1Lf/3rX9PLL7+cpkyZkh5//PFiRMoFfVU69JW+0lcD01elQ1/pK301MH1VOvSVvtJXA9NXpUNf6aub6SvD+QH86Ec/SrW1tWns2LHp7rvvTq+88kqxtzQkDzzwQJo+fXoaO3Zs+uAHP5geeOCBdOTIkcL5CxcupEcffTTdeuutafz48em+++5LJ0+eLOKO+7djx44UEW97rF69OqWUUm9vb/rGN76Rpk2bliorK9PSpUtTe3t7n69x5syZ1NTUlCZMmJCqqqrSww8/nHp6eoqQ5rqBcp0/fz4tW7YsTZkyJVVUVKTZs2enL37xi2/7z7XUcvWXJyLST37yk8Kawbzu/vWvf6UVK1akcePGpcmTJ6eNGzemK1euZJwmX/RVadBX+kpf3Zi+Kg36Sl/pqxvTV6VBX+krfXVj+qo06Ct9dTN9VfZ/GwIAAAAAADLid84DAAAAAEDGDOcBAAAAACBjhvMAAAAAAJAxw3kAAAAAAMiY4TwAAAAAAGTMcB4AAAAAADJmOA8AAAAAABkznAcAAAAAgIwZzgMAAAAAQMYM5wEAAAAAIGOG8wAAAAAAkLH/AT8kNjJ7W3WnAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy 0.496\n" + ] + } + ], + "source": [ + "predict_and_visualize_net_activity(net)" + ] + }, + { + "cell_type": "markdown", + "id": "a8c2b98d", + "metadata": {}, + "source": [ + "As you can see, our random initialization gives us some sporadic spikes. And calculate the classification accuracy of this random network. We will see that this accuracy is around 50%, as it should be since that corresponds to the chance level of our synthetic task." + ] + }, + { + "cell_type": "markdown", + "id": "757151c6", + "metadata": {}, + "source": [ + "### Defining the Optimizer and Loss Function\n", + "\n", + "Use the Adam optimizer and define the loss function as cross-entropy loss." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "166e0c28", + "metadata": {}, + "outputs": [], + "source": [ + "optimizer = brainstate.optim.Adam(lr=3e-3, beta1=0.9, beta2=0.999)\n", + "optimizer.register_trainable_weights(net.states(brainstate.ParamState))\n", + "\n", + "def loss_fn():\n", + " predictions = brainstate.compile.for_loop(net.update, x_data)\n", + " predictions = u.math.mean(predictions, axis=0)\n", + " return bts.metric.softmax_cross_entropy_with_integer_labels(predictions, y_data).mean()" + ] + }, + { + "cell_type": "markdown", + "id": "22456aa4", + "metadata": {}, + "source": [ + "### Training the Network\n", + "\n", + "Define the training function and train the network." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "8e4a0a93", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 100, Loss = 0.5864\n", + "Epoch 200, Loss = 0.5374\n", + "Epoch 300, Loss = 0.5120\n", + "Epoch 400, Loss = 0.4886\n", + "Epoch 500, Loss = 0.4733\n", + "Epoch 600, Loss = 0.4521\n", + "Epoch 700, Loss = 0.4292\n", + "Epoch 800, Loss = 0.4113\n", + "Epoch 900, Loss = 0.3859\n", + "Epoch 1000, Loss = 0.3626\n", + "Epoch 1100, Loss = 0.3427\n", + "Epoch 1200, Loss = 0.3142\n", + "Epoch 1300, Loss = 0.2934\n", + "Epoch 1400, Loss = 0.2753\n", + "Epoch 1500, Loss = 0.2541\n", + "Epoch 1600, Loss = 0.2364\n", + "Epoch 1700, Loss = 0.2169\n", + "Epoch 1800, Loss = 0.2026\n", + "Epoch 1900, Loss = 0.1876\n", + "Epoch 2000, Loss = 0.1705\n", + "Epoch 2100, Loss = 0.1524\n", + "Epoch 2200, Loss = 0.1412\n", + "Epoch 2300, Loss = 0.1283\n", + "Epoch 2400, Loss = 0.1178\n", + "Epoch 2500, Loss = 0.1072\n", + "Epoch 2600, Loss = 0.0983\n", + "Epoch 2700, Loss = 0.0881\n", + "Epoch 2800, Loss = 0.0861\n", + "Epoch 2900, Loss = 0.0772\n", + "Epoch 3000, Loss = 0.0709\n" + ] + } + ], + "source": [ + "@brainstate.compile.jit\n", + "def train_fn():\n", + " brainstate.nn.init_all_states(net, batch_size=batch_size)\n", + " grads, l = brainstate.augment.grad(loss_fn, net.states(brainstate.ParamState), return_value=True)()\n", + " optimizer.update(grads)\n", + " return l\n", + "\n", + "train_losses = []\n", + "for i in range(1, 3001):\n", + " loss = train_fn()\n", + " train_losses.append(loss)\n", + " if i % 100 == 0:\n", + " print(f'Epoch {i}, Loss = {loss:.4f}')" + ] + }, + { + "cell_type": "markdown", + "id": "682c4cf0", + "metadata": {}, + "source": [ + "### Visualizing Training Loss" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "98a6781f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(np.asarray(jnp.asarray(train_losses)))\n", + "plt.xlabel(\"Epoch\")\n", + "plt.ylabel(\"Training Loss\")\n", + "plt.title(\"Training Loss vs Epoch\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "f8bcdcdd", + "metadata": {}, + "source": [ + "### Testing Network Performance" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "dfeacdd6", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "1b6460c4d972456488da81e00f0684dd", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/200 [00:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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UUKMVwlYK+cBAC6gvD7rmxJlvJXzRA7FeEVETsF4RUROwXhFRLmU857zW7duRX19PVatWoX//M//hKZpce8fDAbR19dn+iIiyoaijVcum4+KigbAk7Hzu8lrWy22r3V5rreEKK8UbbwiIsdhvCIip2C8IqJMyGlm5Rvf+AbOOusslJeX47HHHsN1112HgYEBfPazn435O3fccUfkrCYRUbYUdbwKDUVflw8tbQBg+WXAovOMCnoiKu54RUSOwnhFRE7BeEVEmZJS5fxNN91kuwiG+rV3796kH++rX/0qTjnlFHR0dODLX/4yvvSlL+E73/lO3N+5+eab0dvbG/k6cOBAKrtAREWC8SqNRuyS83mwGKzExDw5HOMVETkF4xUROQXjFRE5RUqV8zfeeCOuuOKKuPeZMWPGuDdm9erVuO222xAMBuH32/cP9vv9MW8jIpIYr9KopDT6unypnCcqAIxXROQUjFdE5BSMV0TkFCkl5xsaGtDQ0JCpbcHu3btRW1vL4EVEE8Z4lUZn/R3Q9QoAF3Bkj7gunyrniRyO8YqInILxioicgvGKiJwiYz3n9+/fj+PHj2P//v0Ih8PYvXs3AGDWrFmorKzEQw89hMOHD+Pkk09GaWkptm/fjm9+85v4whe+kKlNIiKyxXiVQKAduG4X8Kf7gQc/I65j5TxRTjBeEZFTMF4RkVMwXhFRLmUsOX/LLbfgvvvui/zc0dEBANixYwfOOOMMeL1e3HXXXbjhhhugaRpmzZqF733ve7jqqqsytUlERLYYr5JUWmNcZuU8UU4wXhGRUzBeEZFTMF4RUS65NE3Tcr0RE9HX14eamhr09vaiuro615tDRBlQKO9zx+/Hu88C924Sly9/GJh+Wm63hygPOf59riuU/SCi2ArlfV4o+0FEsRXK+7xQ9oOIYhvP+9yd4W0iIqJCYaqcZ1sbIiIiIiIiIqKJYHKeiIiSw7Y2RERERERERERpk7Ge80REVGAqm4H6uYC/ypyoJyIiIiIiIiKilDE5T0REyfGUANc+C7jcgMuV660hIiIiIiIiInI0JueJiCh5Hn5sEBERERERERGlA3vOExERERERERERERFlGZPzRERERERERERERERZxuQ8EREREREREREREVGWMTlPRERERERERERERJRlTM4TEREREREREREREWUZk/NERERERERERERERFnG5DwRERERERERERERUZYxOU9ERERERERERERElGVMzhMRERERERERERERZRmT80REREREREREREREWcbkPBERERERERERERFRljE5T0RERERERERERESUZUzOExERERERERERERFlGZPzRERERERERERERERZxuQ8EREREREREREREVGWMTlPRERERERERERERJRlTM4TEREREREREREREWVZSa43YKI0TQMA9PX15XhLiChT5Ptbvt+divGKqPAxXhGRUzBeEZFTMF4RkVOMJ145Pjnf398PAGhra8vxlhBRpvX396OmpibXmzFujFdExYPxioicgvGKiJyC8YqInCKVeOXSHH7qcWxsDAcPHkRVVRVcLlfc+/b19aGtrQ0HDhxAdXV1lrYwu7iPhYH7aKZpGvr7+9Ha2gq327nduBivzLiPhYH7aMZ4xdeAU3EfCwPjFeMV97EwcB/NGK/4GnAq7mNhyHS8cnzlvNvtxpQpU1L6nerq6oJ9wUjcx8LAfTQ4uUJCYryyx30sDNxHA+NV4eI+Fgbuo4HxqnBxHwsD99HAeFW4uI+FgftoSDVeOfeUIxERERERERERERGRQzE5T0RERERERERERESUZUWVnPf7/bj11lvh9/tzvSkZw30sDNxHKoa/D/exMHAfqRj+PtzHwsB9pGL4+3AfCwP3kYrh78N9LAzcx4lz/IKwREREREREREREREROU1SV80RERERERERERERE+YDJeSIiIiIiIiIiIiKiLGNynoiIiIiIiIiIiIgoy5icJyIiIiIiIiIiIiLKMibniYiIiIiIiIiIiIiyrKiS83fddRemTZuG0tJSrF69Gi+88EKuN2ncvva1r8Hlcpm+5s2bF7l9eHgYW7duxaRJk1BZWYnzzz8fhw8fzuEWJ/b000/jnHPOQWtrK1wuF371q1+Zbtc0DbfccgtaWlpQVlaGdevW4Y033jDd5/jx47j00ktRXV2NQCCAK6+8EgMDA1nci/gS7eMVV1wR9X/duHGj6T75vI933HEHVq5ciaqqKjQ2NuKjH/0oXn/9ddN9knlt7t+/H5s3b0Z5eTkaGxvxxS9+EaOjo9nclZxjvGK8yjXGK8arZDFeMV7lGuMV41WyGK8Yr3KN8YrxKlmMV4xXucZ4lb14VTTJ+Z/+9Kf4/Oc/j1tvvRUvvfQSli5dig0bNuDIkSO53rRxW7hwIQ4dOhT5+v3vfx+57YYbbsBDDz2EBx54AE899RQOHjyI8847L4dbm9jg4CCWLl2Ku+66y/b2O++8E9///vfxr//6r3j++edRUVGBDRs2YHh4OHKfSy+9FHv27MH27dvx8MMP4+mnn8bVV1+drV1IKNE+AsDGjRtN/9ef/OQnptvzeR+feuopbN26Fc899xy2b9+OkZERrF+/HoODg5H7JHpthsNhbN68GaFQCM8++yzuu+8+bNu2DbfccksudiknGK8Yr/IB4xXjVTIYrxiv8gHjFeNVMhivGK/yAeMV41UyGK8Yr/IB41UW45VWJFatWqVt3bo18nM4HNZaW1u1O+64I4dbNX633nqrtnTpUtvbenp6NK/Xqz3wwAOR61577TUNgLZr164sbeHEANAefPDByM9jY2Nac3Oz9p3vfCdyXU9Pj+b3+7Wf/OQnmqZp2quvvqoB0P7whz9E7vPb3/5Wc7lc2vvvv5+1bU+WdR81TdMuv/xybcuWLTF/x2n7eOTIEQ2A9tRTT2maltxr85FHHtHcbrfW1dUVuc/dd9+tVVdXa8FgMLs7kCOMV4xX+YbxSmC8isZ4xXiVbxivBMaraIxXjFf5hvFKYLyKxnjFeJVvGK+ETMWroqicD4VCePHFF7Fu3brIdW63G+vWrcOuXbtyuGUT88Ybb6C1tRUzZszApZdeiv379wMAXnzxRYyMjJj2d968eWhvb3fs/r799tvo6uoy7VNNTQ1Wr14d2addu3YhEAhgxYoVkfusW7cObrcbzz//fNa3ebx27tyJxsZGzJ07F9deey26u7sjtzltH3t7ewEAdXV1AJJ7be7atQuLFy9GU1NT5D4bNmxAX18f9uzZk8Wtzw3GK8arfHwvx8J4xXjFeMV45RSMV4xXjFeMV07BeMV4xXjFeOUUjFfpiVdFkZw/duwYwuGw6Y8FAE1NTejq6srRVk3M6tWrsW3bNjz66KO4++678fbbb+O0005Df38/urq64PP5EAgETL/j5P2V2x3vf9jV1YXGxkbT7SUlJairq3PMfm/cuBE//OEP8cQTT+Db3/42nnrqKWzatAnhcBiAs/ZxbGwMn/vc53DKKadg0aJFAJDUa7Orq8v2/yxvK3SMV4KT95fxivFK3lboGK8EJ+8v4xXjlbyt0DFeCU7eX8Yrxit5W6FjvBKcvL+MV4xX8rZklUxg2ymHNm3aFLm8ZMkSrF69GlOnTsXPfvYzlJWV5XDLaCI+/vGPRy4vXrwYS5YswcyZM7Fz506sXbs2h1uWuq1bt+Ivf/mLqZccFSfGq8LEeEWFiPGqMDFeUSFivCpMjFdUiBivChPjVfoUReV8fX09PB5P1Iq6hw8fRnNzc462Kr0CgQDmzJmDffv2obm5GaFQCD09Pab7OHl/5XbH+x82NzdHLZAyOjqK48ePO3a/Z8yYgfr6euzbtw+Ac/bx+uuvx8MPP4wdO3ZgypQpkeuTeW02Nzfb/p/lbYWO8Upw8v4yXjFeydsKHeOV4OT9ZbxivJK3FTrGK8HJ+8t4xXglbyt0jFeCk/eX8YrxSt6WrKJIzvt8Ppx00kl44oknIteNjY3hiSeeQGdnZw63LH0GBgbw5ptvoqWlBSeddBK8Xq9pf19//XXs37/fsfs7ffp0NDc3m/apr68Pzz//fGSfOjs70dPTgxdffDFynyeffBJjY2NYvXp11rc5Hd577z10d3ejpaUFQP7vo6ZpuP766/Hggw/iySefxPTp0023J/Pa7OzsxJ///GdTEN++fTuqq6uxYMGC7OxIDjFeMV7lw3t5PBivBMYrxisnYbxivGK8YrxyCsYrxivGK8Yrp2C8YrxKOV5NfD1bZ7j//vs1v9+vbdu2TXv11Ve1q6++WgsEAqYVdZ3kxhtv1Hbu3Km9/fbb2jPPPKOtW7dOq6+v144cOaJpmqZdc801Wnt7u/bkk09qf/zjH7XOzk6ts7Mzx1sdX39/v/byyy9rL7/8sgZA+973vqe9/PLL2rvvvqtpmqZ961vf0gKBgPbrX/9ae+WVV7QtW7Zo06dP106cOBF5jI0bN2odHR3a888/r/3+97/XZs+erV1yySW52qUo8faxv79f+8IXvqDt2rVLe/vtt7XHH39cW758uTZ79mxteHg48hj5vI/XXnutVlNTo+3cuVM7dOhQ5GtoaChyn0SvzdHRUW3RokXa+vXrtd27d2uPPvqo1tDQoN1888252KWcYLxivMoHjFeMV8lgvGK8ygeMV4xXyWC8YrzKB4xXjFfJYLxivMoHjFfZi1dFk5zXNE37wQ9+oLW3t2s+n09btWqV9txzz+V6k8bt4osv1lpaWjSfz6dNnjxZu/jii7V9+/ZFbj9x4oR23XXXabW1tVp5ebn2sY99TDt06FAOtzixHTt2aACivi6//HJN0zRtbGxM++pXv6o1NTVpfr9fW7t2rfb666+bHqO7u1u75JJLtMrKSq26ulr71Kc+pfX39+dgb+zF28ehoSFt/fr1WkNDg+b1erWpU6dqV111VdQHcD7vo92+AdDuvffeyH2SeW2+88472qZNm7SysjKtvr5eu/HGG7WRkZEs701uMV4xXuUa4xXjVbIYrxivco3xivEqWYxXjFe5xnjFeJUsxivGq1xjvMpevHLpG0RERERERERERERERFlSFD3niYiIiIiIiIiIiIjyCZPzRERERERERERERERZxuQ8EREREREREREREVGWMTlPRERERERERERERJRlTM4TEREREREREREREWUZk/NERERERERERERERFnG5DwRERERERERERERUZYxOU9ERERERERERERElGVMzhMRERERERERERERZRmT80REREREREREREREWcbkPBERERERERERERFRlv1/1H+gRlRcR5MAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy 0.852\n" + ] + } + ], + "source": [ + "predict_and_visualize_net_activity(net)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "brainpy-dev", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/snn_training-zh.ipynb b/docs/snn_training-zh.ipynb new file mode 100644 index 000000000..37f60222f --- /dev/null +++ b/docs/snn_training-zh.ipynb @@ -0,0 +1,709 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "de646938e4e80791", + "metadata": { + "collapsed": false + }, + "source": [ + "# 训练脉冲神经网络" + ] + }, + { + "cell_type": "markdown", + "id": "576ef80e", + "metadata": {}, + "source": [ + "## 介绍\n", + "近几年,人们对训练脉冲神经网络(SNN)进行有意义的计算的兴趣激增。一方面,这种激增是由于更传统的、通常被认为在生物学上更合理的学习范式在创建解决有趣计算问题的功能神经网络方面取得的有限成就所推动的。深度神经网络在解决各种具有挑战性的计算问题方面取得了不可否认的成功,弥补了这一限制。这一成功既提高了标准,也提出了这一进展如何转化为脉冲神经网络的问题。\n", + "\n", + "过去十年深度学习的兴起在很大程度上归功于GPU及其计算能力的提升、训练数据集的扩大,以及——或许最重要的是——对误差反向传播算法的特点和需求的理解进步。例如,我们现在知道必须避免梯度消失和爆炸问题,这一成就可以通过选择合理的非线性函数、适当的权重初始化和合适的优化器来实现。支持自动微分的强大软件包使得处理深度神经网络变得比以往更加轻松。这一发展提出了一个问题:我们能从深度学习和其工具中获得多少知识,并将其用于训练脉冲神经网络。尽管目前无法完全回答这些问题,但似乎我们可以从中学习很多。\n", + "\n", + "在本教程中,我们使用[`brainstate`](https://brainstate.readthedocs.io/en/latest/)以及[Brain Dynamics Programming Ecosystem](https://ecosystem-for-brain-dynamics.readthedocs.io/en/latest/)中的工具,逐步构建一个脉冲神经网络。明确地说,我们的目标是构建解决(简单)现实世界问题的网络。为此,我们专注于分类问题,并结合上述的反向传播算法使用监督学习。为此,我们必须克服由脉冲本身的二元性质引起的梯度消失问题。\n", + "\n", + "在本教程中,我们将首先展示如何将一个简单的前向传播的基于泄露整合发放(LIF)神经元和基于电导的突触脉冲神经网络(SNN)形式化地映射到离散时间循环神经网络 (RNN)。我们将利用这一公式来解释为什么在脉冲时梯度会消失,并展示一种缓解该问题的方法。具体来说,我们将引入代理梯度,并提供在Brainstate中如何实现它们的实际示例。" + ] + }, + { + "cell_type": "markdown", + "id": "d23db264", + "metadata": {}, + "source": [ + "## 将LIF神经元映射到RNN动力学\n", + "\n", + "计算神经科学中网络模拟的事实上的标准神经元模型是LIF神经元模型,它通常被正式写成微分形式的时间连续动力系统:\n", + "\n", + "$$\\tau_\\mathrm{mem} \\frac{\\mathrm{d}U_i^{(l)}}{\\mathrm{d}t} = -(U_i^{(l)}-U_\\mathrm{rest}) + RI_i^{(l)}$$\n", + "\n", + "其中 $U_i$ 是第 $l$ 层神经元 $i$ 的膜电位,$U_\\mathrm{rest}$ 是静息电位,$\\tau_\\mathrm{mem}$ 是膜时间常数,$R$ 是输入电阻,$I_i$ 是输入电流。膜电位 $U_i$ 表征每个神经元的隐藏状态,并且重要的是,它不会直接传递给下游神经元。然而,当神经元的膜电压超过阈值 $\\vartheta$ 时,神经元会在时间 $t$ 发射动作电位或脉冲。发射脉冲后,神经元的膜电压被重置 $U_i \\rightarrow U_\\mathrm{rest}$。我们写作\n", + "\n", + "$$S_i^{(l)}(t)=\\sum_{k \\in C_i^l} \\delta(t-t_j^k)$$ \n", + "\n", + "表示脉冲序列(即神经元 $i$ 在第 $l$ 层发射的所有脉冲 $C_i^l$ 的总和)。这里 $\\delta$ 是狄拉克δ函数,$t_i^k$ 是神经元的相关发射时间。\n", + "\n", + "脉冲沿着轴突传播并在连接的神经元中产生突触后电流。使用上述形式,我们可以写作\n", + "\n", + "$$\\frac{\\mathrm{d}I_i}{\\mathrm{d}t}= -\\frac{I_i(t)}{\\tau_\\mathrm{syn}} + \\sum_j W_{ij} S_j^{(0)}(t) + \\sum_j V_{ij} S_j^{(1)}(t)$$\n", + "\n", + "其中我们引入了突触权重矩阵 $W_{ij}$(前馈),$V_{ij}$(递归),以及突触衰减时间常数 $\\tau_\\mathrm{syn}$。\n", + "\n", + "为了与RNN明显联系起来,我们现在将上述方程表达为离散时间形式。为了简洁起见,我们切换到自然单位 $U_\\mathrm{rest}=0$,$R=1$,和 $\\vartheta=1$。我们的论点不受此选择的影响,所有结果都可以重新缩放到物理单位。为了突出脉冲的非线性特征,我们首先注意到可以设置\n", + "\n", + "$$S_i^{(l)}(t)=\\Theta(U_i^{(l)}(t)-\\vartheta)$$\n", + "\n", + "其中 $\\Theta$ 表示赫维赛德阶跃函数。\n", + "\n", + "假设一个小的模拟时间步长 $\\Delta_t>0$,我们可以通过以下方式近似突触动力学:\n", + "\n", + "$$I_i^{(l)}(t+1) = \\alpha I_i^{(l)}(t) + \\sum_j W_{ij} S_j^{(l-1)}(t) +\\sum_j V_{ij} S_j^{(l)}(t)$$\n", + "\n", + "其中常数 $\\alpha=\\exp\\left(-\\frac{\\Delta_t}{\\tau_\\mathrm{syn}} \\right)$。此外,膜动力学可以写成\n", + "\n", + "$$U_i^{(l)}(t+1) = \\underbrace{\\beta U_i^{(l)}(t)}_{\\mathrm{leak}} + \\underbrace{I_i^{(l)}(t)}_{\\mathrm{input}} -\\underbrace{S_i^{(l)}(t)}_{\\mathrm{reset}}$$\n", + "\n", + "其中输出 $S_i(t) = \\Theta(U_i(t)-1)$ 和常数 $\\beta=\\exp\\left(-\\frac{\\Delta_t}{\\tau_\\mathrm{mem}}\\right)$。注意方程右侧的不同项,它们分别负责:i) 泄漏,ii) 突触输入,和 iii) 脉冲重置。\n", + "\n", + "这些方程可以简洁地总结为具有特定连接结构的RNN的计算图。\n", + "\n", + "

\n", + " \"snn_graph\"/\n", + "

\n", + "\n", + "\n", + "时间从左到右流动。输入在每个时间步从图的底部进入网络($S_i^{(0)}$)。这些输入依次影响突触电流 $I_i^{(1)}$,膜电位 $U_i^{(1)}$,最后是脉冲输出 $S_i^{(1)}$。此外,动态量直接输入到未来的时间步。为了清晰起见,在图中省略了索引 $i$。\n", + "\n", + "计算图展示了一个称为时间展开的概念,它强调了深度神经网络和循环神经网络之间的对偶性,后者只不过是时间上的深度网络(具有绑定权重)。由于这一事实,我们可以使用时间反向传播(BPTT)来训练RNN。让我们首先在Brainstate中实现上述动力学的三层脉冲神经网络。" + ] + }, + { + "cell_type": "markdown", + "id": "89169346", + "metadata": {}, + "source": [ + "## 脉冲神经网络构建与训练示例\n", + "\n", + "我们首先导入所需的库。" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5b5143f3", + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "\n", + "import braintools as bts\n", + "import brainunit as u\n", + "import jax.numpy as jnp\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import seaborn as sns\n", + "\n", + "import brainstate" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bce4a582", + "metadata": {}, + "outputs": [], + "source": [ + "num_inputs = 100 # 输入层神经元个数\n", + "num_hidden = 4 # 隐藏层神经元个数\n", + "num_outputs = 2 # 输出层神经元个数" + ] + }, + { + "cell_type": "markdown", + "id": "10251302", + "metadata": {}, + "source": [ + "正如我们上面所看到的,我们实际上是在模拟一个RNN。因此,我们必须为一定数量的时间步长模拟我们的神经元。我们将使用1毫秒的时间步长,并且我们希望模拟我们的网络200个时间步长。" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "72c128c1", + "metadata": {}, + "outputs": [], + "source": [ + "time_step = 1 * u.ms\n", + "brainstate.environ.set(dt=time_step) # 设置仿真时间步长\n", + "num_steps = 200" + ] + }, + { + "cell_type": "markdown", + "id": "f42b8e71", + "metadata": {}, + "source": [ + "为了利用并行性,我们将设置代码以处理数据批次,就像通常对以监督方式训练的神经网络所做的那样。\n", + "为此,我们在这里指定一个批次大小。" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "0592f1f0", + "metadata": {}, + "outputs": [], + "source": [ + "batch_size = 256" + ] + }, + { + "cell_type": "markdown", + "id": "7556e61a", + "metadata": {}, + "source": [ + "在做出这些基本设计选择之后,我们现在可以开始构建实际的网络了" + ] + }, + { + "cell_type": "markdown", + "id": "f7ffda5a", + "metadata": {}, + "source": [ + "### 定义脉冲神经网络(SNN)\n", + "\n", + "- **该类继承自`bst.nn.DynamicsGroup`**:\n", + " - `bst.nn.DynamicsGroup` 是一个包含动态神经网络组件的类,用于在时间维度上模拟神经元的动力学行为。\n", + " - 通过继承`DynamicsGroup`,`SNN`类可以利用框架提供的工具来管理脉冲神经网络的状态更新和活动模拟。\n", + "\n", + "- **`__init__`构造方法**:\n", + " - `__init__`方法初始化网络结构,包括输入到递归层的连接、递归层的脉冲神经元模型、递归层到输出层的连接,以及输出层的处理单元。\n", + "\n", + "#### 输入层到递归层的连接 (`self.i2r`)\n", + "\n", + "- **`bst.nn.Sequential`**:用于顺序地组合多个层。这里包含两个层:一个线性层和一个指数衰减层。\n", + " \n", + "- **线性层 (`bst.nn.Linear`)**:\n", + " - 作用:将输入层的信号传递到递归层。\n", + " - 参数:\n", + " - `num_in`: 输入层的神经元数量。\n", + " - `num_rec`: 递归层的神经元数量。\n", + " - `w_init`:权重初始化方法,采用Kaiming Normal初始化,适用于ReLU等激活函数。\n", + " - `b_init`:偏置初始化,这里设为零初始化。\n", + "\n", + "- **指数衰减层 (`bst.nn.Expon`)**:\n", + " - 作用:模拟输入信号随时间的指数衰减特性,使输入信号更符合生物神经元的动力学特性。\n", + " - 参数:\n", + " - `num_rec`: 指定递归层的神经元数量。\n", + " - `tau`: 时间常数,控制指数衰减的速率,这里设置为`10 ms`。\n", + " - `g_initializer`:初始化参数`g`的值,这里设为0,代表初始输入电流为零。\n", + "\n", + "#### 递归层 (`self.r`)\n", + "\n", + "- **LIF神经元模型 (`bst.nn.LIF`)**:\n", + " - 作用:递归层使用脉冲发放的Leaky Integrate-and-Fire(LIF)神经元模型,这是一种广泛应用的生物神经元模型。\n", + " - 参数:\n", + " - `num_rec`: 递归层的神经元数量。\n", + " - `tau`: 时间常数,控制电位的泄露速度,设为`20 ms`。\n", + " - `V_reset`:脉冲发放后膜电位的复位值,这里设为`0 mV`。\n", + " - `V_rest`:神经元静息膜电位值,也是`0 mV`。\n", + " - `V_th`:膜电位的阈值,设为`1 mV`,超过此值神经元会发放脉冲。\n", + " - `spk_fun`:定义脉冲发放的激活函数,这里使用`bst.surrogate.ReluGrad()`作为脉冲函数的近似求导方法。\n", + "\n", + "#### 递归层到输出层的连接 (`self.r2o`)\n", + "\n", + "- **线性层**:\n", + " - 作用:将递归层的输出信号传递到输出层。\n", + " - 参数:\n", + " - `num_rec`: 递归层神经元数。\n", + " - `num_out`: 输出层神经元数。\n", + " - `w_init`:权重初始化方法,同样使用Kaiming Normal初始化。\n", + "\n", + "#### 输出层 (`self.o`)\n", + "\n", + "- **指数衰减层**:\n", + " - 作用:模拟输出层信号随时间的衰减行为。\n", + " - 参数:\n", + " - `num_out`: 输出层神经元数。\n", + " - `tau`: 衰减的时间常数,这里为`10 ms`。\n", + " - `g_initializer`:输出电流初始化值设为零。" + ] + }, + { + "metadata": {}, + "cell_type": "code", + "outputs": [], + "execution_count": null, + "source": [ + "class SNN(brainstate.nn.DynamicsGroup):\n", + " def __init__(self, num_in, num_rec, num_out):\n", + " # 初始化父类DynamicsGroup\n", + " super(SNN, self).__init__()\n", + "\n", + " # 参数定义\n", + " self.num_in = num_in # 输入层神经元数量\n", + " self.num_rec = num_rec # 递归层神经元数量\n", + " self.num_out = num_out # 输出层神经元数量\n", + "\n", + " # 定义从输入层到递归层的连接(突触: i->r)\n", + " # 使用Sequential将线性层和指数衰减层连接在一起\n", + " self.i2r = brainstate.nn.Sequential(\n", + " # 线性层:用于将输入信号映射到递归层\n", + " brainstate.nn.Linear(\n", + " num_in, num_rec, # 从输入层到递归层的连接数\n", + " w_init=brainstate.nn.KaimingNormal(scale=7 * (1 - (u.math.exp(-brainstate.environ.get_dt() / (1 * u.ms)))), unit=u.mA), # 使用Kaiming Normal初始化权重\n", + " b_init=brainstate.nn.ZeroInit(unit=u.mA) # 偏置初始化为零\n", + " ),\n", + " # 指数衰减层:对信号进行时间上的衰减,使其符合生物神经元动力学\n", + " brainstate.nn.Expon(num_rec, tau=10. * u.ms, g_initializer=brainstate.nn.Constant(0. * u.mA))\n", + " )\n", + "\n", + " # 定义递归层(r),采用LIF神经元模型\n", + " self.r = brainstate.nn.LIF(\n", + " num_rec, # 递归层神经元数量\n", + " tau=20 * u.ms, # 时间常数,控制膜电位衰减速率\n", + " V_reset=0 * u.mV, # 膜电位复位值\n", + " V_rest=0 * u.mV, # 静息膜电位\n", + " V_th=1. * u.mV, # 膜电位阈值,超过此值时神经元发放脉冲\n", + " spk_fun=braintools.surrogate.ReluGrad() # 近似求导函数,用于实现脉冲发放\n", + " )\n", + "\n", + " # 定义从递归层到输出层的连接(突触: r->o),采用线性层\n", + " self.r2o = brainstate.nn.Linear(\n", + " num_rec, num_out, # 从递归层到输出层的连接数\n", + " w_init=brainstate.nn.KaimingNormal() # 使用Kaiming Normal初始化权重\n", + " )\n", + "\n", + " # 定义输出层(o),使用指数衰减层模拟输出信号的时间衰减\n", + " self.o = brainstate.nn.Expon(\n", + " num_out, # 输出层神经元数量\n", + " tau=10. * u.ms, # 时间常数,控制输出信号的衰减速率\n", + " g_initializer=brainstate.nn.Constant(0.) # 初始化电流为零\n", + " )\n", + "\n", + " # update方法:用于执行网络的一次更新,返回输出层的输出\n", + " def update(self, spike):\n", + " # 依次通过 i2r、r、r2o 和 o 计算输出\n", + " return self.o(self.r2o(self.r(self.i2r(spike))))\n", + "\n", + " # predict方法:用于预测并获取递归层的膜电位值、脉冲输出和最终输出\n", + " def predict(self, spike):\n", + " # 计算递归层的脉冲输出\n", + " rec_spikes = self.r(self.i2r(spike))\n", + " # 计算最终输出\n", + " out = self.o(self.r2o(rec_spikes))\n", + " # 返回递归层的膜电位值、递归层脉冲输出和最终输出\n", + " return self.r.V.value, rec_spikes, out" + ], + "id": "6e64b8fa9effc5fa" + }, + { + "metadata": {}, + "cell_type": "code", + "outputs": [], + "execution_count": null, + "source": "net = SNN(num_inputs, num_hidden, num_outputs)", + "id": "57595eb27e88376b" + }, + { + "cell_type": "markdown", + "id": "b150b27d", + "metadata": {}, + "source": [ + "### 简单的合成数据集\n", + "\n", + "我们首先生成一些随机的脉冲数据集,我们将用它作为网络的输入。最初,我们将使用单个批次的数据。\n", + "\n", + "假设我们希望网络将一组不同的稀疏输入脉冲序列分类为两个类别。\n", + "\n", + "为了生成一些合成数据,我们用0到1之间的随机均匀数填充一个形状为 (batch_size x num_steps x num_inputs) 的张量,并使用它来生成我们的输入数据集:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "309544fc", + "metadata": {}, + "outputs": [], + "source": [ + "freq = 5 * u.Hz\n", + "x_data = brainstate.random.rand(num_steps, batch_size, net.num_in) < freq * brainstate.environ.get_dt()\n", + "y_data = u.math.asarray(brainstate.random.rand(batch_size) < 0.5, dtype=int)" + ] + }, + { + "cell_type": "markdown", + "id": "ac38ce7e", + "metadata": {}, + "source": [ + "请注意,数据中没有结构(因为它是完全随机的)。因此,我们现在不会担心泛化问题,只关心我们能否用即将构建的脉冲神经网络过度拟合这些数据。" + ] + }, + { + "cell_type": "markdown", + "id": "8a19dbff", + "metadata": {}, + "source": [ + "如果绘制第一个输入模式的脉冲光栅图,这个合成数据集看起来如下所示。" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "4ff6cfeb", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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/u3fhNlslrbwy3TrrbeKrKwsoVarRU5Ojrj11lvFoUOHAvc7HA7xr//6ryIlJUXEx8eLG2+8UbS0tEhYcXCtWrVKABBNTU19tkfT+f7888/P+tqeO3euEOK7IdhPPfWUMBqNQqPRiGuuueaM30dXV5e4/fbbhU6nE0lJSWLevHmit7dXgmdz8c73vI8ePXrOv/nPP/9cCCHEzp07xejRo4VerxdarVaUl5eL3/3ud30+8MPR+Z633W4XU6ZMEenp6UKlUomCggLxwAMPnPEPabSd7x+8/PLLIi4uTphMpjN+PlLPdzDJhBAipE0+RERERCES1X1kiIiIKLoxyBAREVHEYpAhIiKiiMUgQ0RERBGLQYaIiIgiFoMMERERRSwGGSIiIopYDDJEREQUsRhkiCgk7rnnHsycOVOy499111343e9+F7L979+/H7m5ubDZbCE7BhFdGGf2JaJLJpPJznv/M888g5///OcQQiA5OXlgivqRr776CpMmTcLx48eh0+lCdpybbroJNTU1eOqpp0J2DCI6PwYZIrpkra2tga+XLFmCp59+Gk1NTYFtOp0upAHiQu6//34olUq89NJLIT3OJ598ggceeAAnTpyAUqkM6bGI6Ox4aYmILllmZmbgptfrIZPJ+mzT6XRnXFqaOHEiHnnkETz22GNISUmB0WjEq6++CpvNhnnz5iExMRGDBw/GypUr+xxr3759mDZtGnQ6HYxGI+666y50dnaeszafz4f3338fM2bM6LO9sLAQzz77LO6++27odDoUFBTgww8/REdHB2644QbodDpUV1djx44dgZ85fvw4ZsyYgZSUFCQkJKCiogIrVqwI3D958mR0d3djw4YNl/kbJaL+YpAhogGzePFipKWlYdu2bXjkkUfw0EMP4eabb8bYsWPR2NiIKVOm4K677oLdbgcAmEwmTJo0CXV1ddixYwc+/fRTtLW14ZZbbjnnMfbs2QOz2YwRI0accd+f//xnXHnlldi1axeuu+463HXXXbj77rtx5513orGxEcXFxbj77rvxQ0P1/Pnz4XK5sHHjRuzduxf/9V//1aelSa1Wo7a2Fl988UWQf1NEdNGkW3ibiKLBG2+8IfR6/Rnb586dK2644YbA9xMmTBDjxo0LfO/1ekVCQoK46667AttaWloEANHQ0CCEEOI///M/xZQpU/rst7m5WQAQTU1NZ61n2bJlQqFQCL/f32d7QUGBuPPOO8841lNPPRXY1tDQIACIlpYWIYQQVVVV4j/+4z/O+/xvvPFGcc8995z3MUQUOmyRIaIBU11dHfhaoVDAYDCgqqoqsM1oNAIA2tvbAXzXaffzzz8P9LnR6XQoKysDABw+fPisx3A4HNBoNGftkPzj4/9wrPMd/9FHH8Wzzz6LK6+8Es888wz27Nlzxj7j4uICLUhENPAYZIhowKhUqj7fy2SyPtt+CB9+vx8AYLVaMWPGDOzevbvP7eDBg7jqqqvOeoy0tDTY7Xa43e7zHv+HY53v+Pfffz+OHDmCu+66C3v37sWIESPw17/+tc8+u7u7kZ6efnG/ACIKOgYZIgpbw4YNw9dff43CwkIMHjy4zy0hIeGsP1NbWwvgu3legiEvLw8//elPsXTpUjz++ON49dVX+9y/b98+1NXVBeVYRHTpGGSIKGzNnz8f3d3duP3227F9+3YcPnwYq1atwrx58+Dz+c76M+np6Rg2bBg2bdp02cd/7LHHsGrVKhw9ehSNjY34/PPPUV5eHrj/2LFjOHXqFOrr6y/7WETUPwwyRBS2srOz8eWXX8Ln82HKlCmoqqrCY489huTkZMjl5377uv/++/H3v//9so/v8/kwf/58lJeX49prr8WQIUPwwgsvBO5/++23MWXKFBQUFFz2sYiofzghHhFFHYfDgdLSUixZsgRjxowJyTHcbjdKSkrw1ltv4corrwzJMYjowtgiQ0RRJy4uDn/729/OO3He5Tpx4gR+9atfMcQQSYwtMkRERBSx2CJDREREEYtBhoiIiCIWgwwRERFFLAYZIiIiilgMMkRERBSxGGSIiIgoYjHIEBERUcRikCEiIqKIxSBDREREEev/A9kduGLkT4gZAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "data_id = 0\n", + "plt.imshow(x_data.swapaxes(0, 1)[data_id].transpose(), cmap=plt.cm.gray_r, aspect=\"auto\")\n", + "plt.xlabel(\"Time (ms)\")\n", + "plt.ylabel(\"Unit\")\n", + "sns.despine()" + ] + }, + { + "cell_type": "markdown", + "id": "9ed7f8c4", + "metadata": {}, + "source": [ + "### 可视化神经元膜电位\n", + "\n", + "定义一个辅助函数`plot_voltage_traces`,用于绘制神经元的膜电位和脉冲活动。" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "0796f03d", + "metadata": {}, + "outputs": [], + "source": [ + "def plot_voltage_traces(mem, spk=None, dim=(3, 5), spike_height=5, show=True):\n", + " fig, gs = bts.visualize.get_figure(*dim, 3, 3)\n", + " if spk is not None:\n", + " mem[spk > 0.0] = spike_height\n", + " if isinstance(mem, u.Quantity):\n", + " mem = mem.to_decimal(u.mV)\n", + " for i in range(np.prod(dim)):\n", + " if i == 0:\n", + " a0 = ax = plt.subplot(gs[i])\n", + " else:\n", + " ax = plt.subplot(gs[i], sharey=a0)\n", + " ax.plot(mem[:, i])\n", + " if show:\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "e31fd03c", + "metadata": {}, + "source": [ + "### 测试未训练的网络性能\n", + "\n", + "在训练前测试网络,并用`plot_voltage_traces`可视化膜电位变化。" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cd6ed2fb", + "metadata": {}, + "outputs": [], + "source": [ + "def print_classification_accuracy(output, target):\n", + " \"\"\"一个简易的小工具函数,用于计算分类准确率\"\"\"\n", + " m = u.math.max(output, axis=0) # 获取最大值\n", + " am = u.math.argmax(m, axis=1) # 获取最大值的索引\n", + " acc = u.math.mean(target == am) # 与目标值比较\n", + " print(\"准确率 %.3f\" % acc)\n", + "\n", + "def predict_and_visualize_net_activity(net):\n", + " brainstate.nn.init_all_states(net, batch_size=batch_size)\n", + " vs, spikes, outs = brainstate.compile.for_loop(net.predict, x_data, pbar=brainstate.compile.ProgressBar(10))\n", + " plot_voltage_traces(vs, spikes, spike_height=5 * u.mV, show=False)\n", + " plot_voltage_traces(outs)\n", + " print_classification_accuracy(outs, y_data)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "7923aa08", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "0b6e7e32acf74ca7a0d6259ba3e97bc2", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/200 [00:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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L79cqFnPPffcmDZtWvzyl7+MiOqe6xOf+ESsX78+7r///jjzzDPL14/l866trW3YP883nmMoeVWcGeVVdc4lr/KRV8WZUV5V51zyKh95VZwZ5VV1ziWv8pFXxZlRXlXnXNWQV8r5YTQ0NMS8efOiu7u7fG1wcDC6u7ujs7NzHHf223nllVfiv//7v+P000+PefPmxcSJE4fMuH379ti5c2ehZjznnHOira1tyBwDAwOxadOm8hydnZ2xd+/e6O3tLa/ZuHFjDA4ORkdHR/Y9H6/nn38+XnrppTj99NMjojrnSinFJz7xifje974XGzdujHPOOWfI88fyedfZ2RlPPfXUkODesGFDNDU1xe/8zu/kGaRA5FVxZpRX1TWXvMpPXhVnRnlVXXPJq/zkVXFmlFfVNZe8yk9eFWdGeVVdc1VVXv32P8/2xHTXXXelxsbGtHbt2rRt27a0bNmy1NLSMuQn8Fa7lStXpgceeCDt2LEj/exnP0tdXV1p2rRpac+ePSmllG644YY0a9astHHjxvTEE0+kzs7O1NnZOc67fqt9+/alLVu2pC1btqSISP/wD/+QtmzZkp577rmUUkpf+MIXUktLS/r+97+fnnzyyXTVVVelc845J7322mvlj3HFFVek9773vWnTpk3p4YcfTuedd15atGjReI2UUhp5rn379qXPfOYzqaenJ+3YsSP95Cc/Sb/7u7+bzjvvvHTgwIHyx6i2uT72sY+l5ubm9MADD6QXXnih/Hj11VfLa0b7vHv99dfTu9/97nT55Zenn//85+nHP/5xmj59elq1atV4jFQI8qp6yCt5Ja9GJq+qh7ySV/JqZPKqesgreSWvRiavqoe8klfHk1fK+RHcdtttadasWamhoSHNnz8/Pfroo+O9pTG55ppr0umnn54aGhrSGWecka655pr0y1/+svz8a6+9lj7+8Y+nd7zjHenkk09OH/jAB9ILL7wwjjse3v33358i4i2PJUuWpJRSGhwcTDfffHNqbW1NjY2N6bLLLkvbt28f8jFeeumltGjRonTqqaempqamdP3116d9+/aNwzRvGmmuV199NV1++eVp+vTpaeLEiemss85Kf/7nf/6W/3OttrmGmyci0j/+4z+W1xzL593//M//pPe///1p8uTJadq0aWnlypXp8OHDmacpFnlVHeSVvJJXo5NX1UFeySt5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AACAjBnOAwAAAABAxgznAQAAAAAgY8M2nD979mysWrUqqqqqorq6OtasWRPnzp0b8JqLFy/G+vXr47bbbosJEybEypUr49SpU/2uPXPmTMycOTPKysqis7NzGBIAo4W+AvJCXwF5oa+AvNBXQDEN23B+1apVcejQodi+fXts27Ytdu/eHWvXrh3wmsceeyxefPHF2Lp1a+zatStOnDgR999/f79r16xZEwsXLhyOrQOjjL4C8kJfAXmhr4C80FdAUaVhcPjw4RQRae/evYVjL730UiorK0tvvPFGv9d0dnamioqKtHXr1sKxV199NUVEam1t7bP2mWeeSZ/+9KdTc3Nzioj03//+d0j76+rqShGRurq6hnQdkL3hvl/1FfBe0Vf6CvJCX+kryAt9pa8gL272fh2Wd863trZGdXV13HXXXYVjDQ0NUV5eHm1tbf1es3///rhy5Uo0NDQUji1YsCBqa2ujtbW1cOzw4cPx7W9/O5577rkoLx/c9i9duhTd3d19HgAR+grID30F5IW+AvJCXwHFNizD+Y6Ojpg6dWqfY2PGjIlJkyZFR0fHO14zduzYqK6u7nN82rRphWsuXboUTU1N8eSTT0Ztbe2g97N58+aYOHFi4TFr1qyhBQJGLH0F5IW+AvJCXwF5oa+AYhvScP5rX/talJWVDfj4xz/+MVx7jccffzw+8pGPxIMPPjjk67q6ugqP119/fZh2CJQKfQXkhb4C8kJfAXmhr4C8GDOUxRs3boyHHnpowDVz586NmpqaOH36dJ/jV69ejbNnz0ZNTU2/19XU1MTly5ejs7Ozz08fT506VbimpaUlDh48GL/61a8iIiKlFBERkydPjq9//evxrW99q9+vXVlZGZWVlYOJCIwQ+grIC30F5IW+AvJCXwF5MaTh/JQpU2LKlCk3XFdfXx+dnZ2xf//+WLJkSUT8bzH19vZGXV1dv9csWbIkKioqorm5OVauXBkREe3t7XHs2LGor6+PiIhf//rXceHChcI1e/fujS984Qvxhz/8IW6//fahRAFGOH0F5IW+AvJCXwF5oa+A3HjvP5v2fzU2NqbFixentra2tGfPnjRv3rzU1NRUOH/8+PE0f/781NbWVji2bt26VFtbm1paWtK+fftSfX19qq+vf8d/Y8eOHT7tGka4LO5XfQW8F/SVvoK80Ff6CvJCX+kryIubvV+H9M75ofjZz34WGzZsiKVLl0Z5eXmsXLkynnrqqcL5K1euRHt7e5w/f75w7Ic//GFh7aVLl2L58uXxzDPPDNcWASJCXwH5oa+AvNBXQF7oK6CYylL6v198NYp0d3fHxIkTo6urK6qqqoq9HWAAo/1+He35IU9G+/062vNDnoz2+3W054c8Ge3362jPD3lys/dr+TDuCQAAAAAA6IfhPAAAAAAAZMxwHgAAAAAAMmY4DwAAAAAAGTOcBwAAAACAjBnOAwAAAABAxgznAQAAAAAgY4bzAAAAAACQMcN5AAAAAADImOE8AAAAAABkzHAeAAAAAAAyZjgPAAAAAAAZM5wHAAAAAICMGc4DAAAAAEDGDOcBAAAAACBjhvMAAAAAAJAxw3kAAAAAAMiY4TwAAAAAAGTMcB4AAAAAADJmOA8AAAAAABkznAcAAAAAgIwZzgMAAAAAQMYM5wEAAAAAIGOG8wAAAAAAkDHDeQAAAAAAyJjhPAAAAAAAZMxwHgAAAAAAMmY4DwAAAAAAGRtT7A0UQ0opIiK6u7uLvBPgRt66T9+6b0cbfQX5oa/0FeSFvtJXkBf6Sl9BXtxsX43K4XxPT09ERMyaNavIOwEGq6enJyZOnFjsbWROX0H+6Ct9BXmhr/QV5IW+0leQF0Ptq7I0Cn/82NvbGydOnIhbbrklysrKBlzb3d0ds2bNitdffz2qqqoy2uHwkytfRmKuwWZKKUVPT0/MmDEjystH32/i0ldy5c1IzKWvBkdfyZU3IzGXvhocfSVX3ozEXPpqcPSVXHkzEnMNd1+NynfOl5eXx8yZM4d0TVVV1Yh5Uf2/5MqXkZhrMJlG4zsk3qKvrpMrX0ZiLn01MH11nVz5MhJz6auB6avr5MqXkZhLXw1MX10nV76MxFzD1Vej78eOAAAAAABQZIbzAAAAAACQMcP5G6isrIxNmzZFZWVlsbfynpIrX0ZirpGYqdhG6vdUrnwZiblGYqZiG6nfU7nyZSTmGomZim2kfk/lypeRmGskZiq2kfo9lStfRmKu4c40Kj8QFgAAAAAAisk75wEAAAAAIGOG8wAAAAAAkDHDeQAAAAAAyJjhPAAAAAAAZMxwHgAAAAAAMmY4P4Cnn346PvShD8X73//+qKuriz//+c/F3tKQfPOb34yysrI+jwULFhTOX7x4MdavXx+33XZbTJgwIVauXBmnTp0q4o77t3v37vjsZz8bM2bMiLKysvjNb37T53xKKZ544omYPn16jBs3LhoaGuK1117rs+bs2bOxatWqqKqqiurq6lizZk2cO3cuwxRvd6NcDz300Nuev8bGxj5rSi3X5s2b4xOf+ETccsstMXXq1Pjc5z4X7e3tfdYM5nV37NixuOeee2L8+PExderU+OpXvxpXr17NMkru6KvSoK/0lb66MX1VGvSVvtJXN6avSoO+0lf66sb0VWnQV/rqZvrKcP4d/OIXv4gvf/nLsWnTpvjLX/4SixYtiuXLl8fp06eLvbUh+djHPhYnT54sPPbs2VM499hjj8WLL74YW7dujV27dsWJEyfi/vvvL+Ju+/fmm2/GokWL4umnn+73/Pe///146qmn4sc//nG0tbXFBz7wgVi+fHlcvHixsGbVqlVx6NCh2L59e2zbti12794da9euzSpCv26UKyKisbGxz/P3/PPP9zlfarl27doV69evj1deeSW2b98eV65ciWXLlsWbb75ZWHOj1921a9finnvuicuXL8ef/vSn+OlPfxpbtmyJJ554ohiRckFflQ59pa/01cD0VenQV/pKXw1MX5UOfaWv9NXA9FXp0Ff66qb6KtGvu+++O61fv77w92vXrqUZM2akzZs3F3FXQ7Np06a0aNGifs91dnamioqKtHXr1sKxV199NUVEam1tzWiHQxcR6YUXXij8vbe3N9XU1KQnn3yycKyzszNVVlam559/PqWU0uHDh1NEpL179xbWvPTSS6msrCy98cYbme19IP9/rpRSWr16dbr33nvf8Zo85Dp9+nSKiLRr166U0uBed7/73e9SeXl56ujoKKx59tlnU1VVVbp06VK2AXJCX5UmfXVdHnLpq2zoq9Kkr67LQy59lQ19VZr01XV5yKWvsqGvSpO+ui4PuYrZV94534/Lly/H/v37o6GhoXCsvLw8GhoaorW1tYg7G7rXXnstZsyYEXPnzo1Vq1bFsWPHIiJi//79ceXKlT4ZFyxYELW1tbnKePTo0ejo6OiTY+LEiVFXV1fI0draGtXV1XHXXXcV1jQ0NER5eXm0tbVlvueh2LlzZ0ydOjXmz58fjzzySJw5c6ZwLg+5urq6IiJi0qRJETG4111ra2vceeedMW3atMKa5cuXR3d3dxw6dCjD3eeDvspPRn1V2rn01fDTV/nJqK9KO5e+Gn76Kj8Z9VVp59JXw09f5SejvirtXMXsK8P5fvznP/+Ja9eu9fnmRkRMmzYtOjo6irSroaurq4stW7bEyy+/HM8++2wcPXo0PvWpT0VPT090dHTE2LFjo7q6us81ecv41l4Heq46Ojpi6tSpfc6PGTMmJk2aVNJZGxsb47nnnovm5ub43ve+F7t27YoVK1bEtWvXIqL0c/X29saXvvSl+OQnPxl33HFHRMSgXncdHR39Pp9vnaMvfZWfjPqqdHPpq2zoq/xk1Felm0tfZUNf5SejvirdXPoqG/oqPxn1VenmKnZfjXkXe6fErVixovDnhQsXRl1dXcyePTt++ctfxrhx44q4Mwbj85//fOHPd955ZyxcuDBuv/322LlzZyxdurSIOxuc9evXx9///vc+vycO3om+yjd9xWiir/JNXzGa6Kt801eMJvoq3/TVu+Od8/2YPHlyvO9973vbJ/CeOnUqampqirSrd6+6ujo+/OEPx5EjR6KmpiYuX74cnZ2dfdbkLeNbex3ouaqpqXnbB6FcvXo1zp49m6usc+fOjcmTJ8eRI0ciorRzbdiwIbZt2xY7duyImTNnFo4P5nVXU1PT7/P51jn60lf5yaivSjOXvsqOvspPRn1Vmrn0VXb0VX4y6qvSzKWvsqOv8pNRX5VmrlLoK8P5fowdOzaWLFkSzc3NhWO9vb3R3Nwc9fX1RdzZu3Pu3Ln45z//GdOnT48lS5ZERUVFn4zt7e1x7NixXGWcM2dO1NTU9MnR3d0dbW1thRz19fXR2dkZ+/fvL6xpaWmJ3t7eqKury3zPN+v48eNx5syZmD59ekSUZq6UUmzYsCFeeOGFaGlpiTlz5vQ5P5jXXX19fRw8eLBPcW/fvj2qqqriox/9aDZBckRf5SejviqtXPoqe/oqPxn1VWnl0lfZ01f5yaivSiuXvsqevspPRn1VWrlKqq/e/efZjkw///nPU2VlZdqyZUs6fPhwWrt2baquru7zCbylbuPGjWnnzp3p6NGj6Y9//GNqaGhIkydPTqdPn04ppbRu3bpUW1ubWlpa0r59+1J9fX2qr68v8q7frqenJx04cCAdOHAgRUT6wQ9+kA4cOJD+/e9/p5RS+u53v5uqq6vTb3/72/S3v/0t3XvvvWnOnDnpwoULha/R2NiYFi9enNra2tKePXvSvHnzUlNTU7EipZQGztXT05O+8pWvpNbW1nT06NH0+9//Pn384x9P8+bNSxcvXix8jVLL9cgjj6SJEyemnTt3ppMnTxYe58+fL6y50evu6tWr6Y477kjLli1Lf/3rX9PLL7+cpkyZkh5//PFiRMoFfVU69JW+0lcD01elQ1/pK301MH1VOvSVvtJXA9NXpUNf6aub6SvD+QH86Ec/SrW1tWns2LHp7rvvTq+88kqxtzQkDzzwQJo+fXoaO3Zs+uAHP5geeOCBdOTIkcL5CxcupEcffTTdeuutafz48em+++5LJ0+eLOKO+7djx44UEW97rF69OqWUUm9vb/rGN76Rpk2bliorK9PSpUtTe3t7n69x5syZ1NTUlCZMmJCqqqrSww8/nHp6eoqQ5rqBcp0/fz4tW7YsTZkyJVVUVKTZs2enL37xi2/7z7XUcvWXJyLST37yk8Kawbzu/vWvf6UVK1akcePGpcmTJ6eNGzemK1euZJwmX/RVadBX+kpf3Zi+Kg36Sl/pqxvTV6VBX+krfXVj+qo06Ct9dTN9VfZ/GwIAAAAAADLid84DAAAAAEDGDOcBAAAAACBjhvMAAAAAAJAxw3kAAAAAAMiY4TwAAAAAAGTMcB4AAAAAADJmOA8AAAAAABkznAcAAAAAgIwZzgMAAAAAQMYM5wEAAAAAIGOG8wAAAAAAkLH/AT8kNjJ7W3WnAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "准确率 0.488\n" + ] + } + ], + "source": [ + "predict_and_visualize_net_activity(net)" + ] + }, + { + "cell_type": "markdown", + "id": "6c1489e2", + "metadata": {}, + "source": [ + "如您所见,我们的随机初始化给了我们一些零星的脉冲。并且计算出这个随机网络的分类准确率。我们将看到这个准确率大约在50%左右,因为这对应于我们合成任务的随机水平。" + ] + }, + { + "cell_type": "markdown", + "id": "8b6ada2f", + "metadata": {}, + "source": [ + "### 定义优化器和损失函数\n", + "\n", + "使用Adam优化器,并定义损失函数为交叉熵损失。" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "3e2f0329", + "metadata": {}, + "outputs": [], + "source": [ + "optimizer = brainstate.optim.Adam(lr=3e-3, beta1=0.9, beta2=0.999)\n", + "optimizer.register_trainable_weights(net.states(brainstate.ParamState))\n", + "\n", + "def loss_fn():\n", + " predictions = brainstate.compile.for_loop(net.update, x_data)\n", + " predictions = u.math.mean(predictions, axis=0)\n", + " return bts.metric.softmax_cross_entropy_with_integer_labels(predictions, y_data).mean()" + ] + }, + { + "cell_type": "markdown", + "id": "9beeb216", + "metadata": {}, + "source": [ + "### 训练网络\n", + "\n", + "定义训练函数并训练网络。" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "0f8d8238", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 100, Loss = 0.5674\n", + "Epoch 200, Loss = 0.5032\n", + "Epoch 300, Loss = 0.4646\n", + "Epoch 400, Loss = 0.4378\n", + "Epoch 500, Loss = 0.4075\n", + "Epoch 600, Loss = 0.3852\n", + "Epoch 700, Loss = 0.3579\n", + "Epoch 800, Loss = 0.3289\n", + "Epoch 900, Loss = 0.3047\n", + "Epoch 1000, Loss = 0.2796\n", + "Epoch 1100, Loss = 0.2526\n", + "Epoch 1200, Loss = 0.2323\n", + "Epoch 1300, Loss = 0.2134\n", + "Epoch 1400, Loss = 0.1925\n", + "Epoch 1500, Loss = 0.1792\n", + "Epoch 1600, Loss = 0.1626\n", + "Epoch 1700, Loss = 0.1468\n", + "Epoch 1800, Loss = 0.1360\n", + "Epoch 1900, Loss = 0.1211\n", + "Epoch 2000, Loss = 0.1116\n", + "Epoch 2100, Loss = 0.1035\n", + "Epoch 2200, Loss = 0.0945\n", + "Epoch 2300, Loss = 0.0868\n", + "Epoch 2400, Loss = 0.0770\n", + "Epoch 2500, Loss = 0.0700\n", + "Epoch 2600, Loss = 0.0657\n", + "Epoch 2700, Loss = 0.0593\n", + "Epoch 2800, Loss = 0.0555\n", + "Epoch 2900, Loss = 0.0504\n", + "Epoch 3000, Loss = 0.0465\n" + ] + } + ], + "source": [ + "@brainstate.compile.jit\n", + "def train_fn():\n", + " brainstate.nn.init_all_states(net, batch_size=batch_size)\n", + " grads, l = brainstate.augment.grad(loss_fn, net.states(brainstate.ParamState), return_value=True)()\n", + " optimizer.update(grads)\n", + " return l\n", + "\n", + "train_losses = []\n", + "for i in range(1, 3001):\n", + " loss = train_fn()\n", + " train_losses.append(loss)\n", + " if i % 100 == 0:\n", + " print(f'Epoch {i}, Loss = {loss:.4f}')" + ] + }, + { + "cell_type": "markdown", + "id": "a65a495e", + "metadata": {}, + "source": [ + "### 可视化训练损失" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "79b0c8fd", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(np.asarray(jnp.asarray(train_losses)))\n", + "plt.xlabel(\"Epoch\")\n", + "plt.ylabel(\"Training Loss\")\n", + "plt.title(\"Training Loss vs Epoch\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "9ce3b843", + "metadata": {}, + "source": [ + "### 测试网络性能\n" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "f7dde304", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "7830b10243a94ecd94c36bbc33ebe5d4", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/200 [00:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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wWCAwWAI97Cpmyb1L0j0IRCFjfGKiFIF4xURpQrGKyJKFYxXRJQKwk7Ol5SUoKSkJKT7Hj9+HKeddhqmTJmC5557Dlqtd6H+rFmz8Mtf/hJ2ux3p6aIie+nSpRgxYgQKCpgMJqLuYbwiolTBeEVEqYLxiohSBeMVEaWCmPWcP378OObOnYv+/fvjkUceQV1dHaqrq716cV155ZXQ6/W46aabsGPHDrz++uv4+9//jrvuuitWh0VE1AnjFRGlCsYrIkoVjFdElCoYr4gokcKunA/V0qVLsW/fPuzbtw/9+vXzuk2SJABAXl4ePvvsMyxZsgRTpkxBcXEx7rvvPtx6662xOiwiok4Yr4goVTBeEVGqYLwiolTBeEVEiaSR5EiTokwmE/Ly8tDS0gKj0ZjowyGiGOgp7/Oe8jyIKLCe8j7vKc+DiALrKe/znvI8iCiwnvI+7ynPg4gCi+R9HrO2NkRERERERERERERE5B+T80REREREREREREREccbkPBERERERERERERFRnDE5T0REREREREREREQUZ0zOExERERERERERERHFGZPzRERERERERERERERxxuQ8EREREREREREREVGcMTlPRERERERERERERBRnTM4TEREREREREREREcUZk/NERERERERERERERHHG5DwRERERERERERERUZwxOU9EREREREREREREFGdMzhMRERERERERERERxRmT80REREREREREREREccbkPBERERERERERERFRnDE5T0REREREREREREQUZ0zOExERERERERERERHFGZPzRERERERERERERERxxuQ8EREREREREREREVGcMTlPRERERERERERERBRnTM4TEREREREREREREcUZk/NERERERERERERERHHG5DwRERERERERERERUZwxOU9EREREREREREREFGdMzhMRERERERERERERxRmT80REREREREREREREcaZL9AF0lyRJAACTyZTgIyGiWJHf3/L7PVUxXhH1fIxXRJQqGK+IKFUwXhFRqogkXqV8cr61tRUAUFlZmeAjIaJYa21tRV5eXqIPI2KMV0S9B+MVEaUKxisiShWMV0SUKsKJVxopxaceXS4XqqqqkJubC41GE/S+JpMJlZWVOHr0KIxGY5yOML74HHsGPkdvkiShtbUVffr0gVabut24GK+88Tn2DHyO3hiv+BpIVXyOPQPjFeMVn2PPwOfojfGKr4FUxefYM8Q6XqV85bxWq0W/fv3C+hmj0dhjXzAyPseegc/RI5UrJGSMV/7xOfYMfI4ejFc9F59jz8Dn6MF41XPxOfYMfI4ejFc9F59jz8Dn6BFuvErdKUciIiIiIiIiIiIiohTF5DwRERERERERERERUZz1quS8wWDA/fffD4PBkOhDiRk+x56Bz5F6w/8Pn2PPwOdIveH/h8+xZ+BzpN7w/8Pn2DPwOVJv+P/hc+wZ+By7L+U3hCUiIiIiIiIiIiIiSjW9qnKeiIiIiIiIiIiIiCgZMDlPRERERERERERERBRnTM4TEREREREREREREcUZk/NERERERERERERERHHG5DwRERERERERERERUZz1quT8Y489hoEDByIjIwMzZszA+vXrE31IEfvNb34DjUbj9W/kyJHK7RaLBUuWLEFRURFycnJw0UUXoaamJoFH3LVVq1bhnHPOQZ8+faDRaPDuu+963S5JEu677z5UVFQgMzMT8+bNw969e73u09jYiKuuugpGoxH5+fm46aab0NbWFsdnEVxXz/H666/v9HdduHCh132S+Tk++OCDmDZtGnJzc1FaWorzzz8fu3fv9rpPKK/NI0eOYPHixcjKykJpaSl++tOfwuFwxPOpJBzjFeNVojFeMV6FivGK8SrRGK8Yr0LFeMV4lWiMV4xXoWK8YrxKNMar+MWrXpOcf/3113HXXXfh/vvvx6ZNmzBhwgQsWLAAtbW1iT60iI0ZMwYnTpxQ/q1evVq57c4778T777+PN998EytXrkRVVRUuvPDCBB5t18xmMyZMmIDHHnvM7+0PPfQQHn30UTz55JNYt24dsrOzsWDBAlgsFuU+V111FXbs2IGlS5figw8+wKpVq3DrrbfG6yl0qavnCAALFy70+ru++uqrXrcn83NcuXIllixZgq+//hpLly6F3W7H/PnzYTablft09dp0Op1YvHgxbDYb1qxZgxdeeAHPP/887rvvvkQ8pYRgvGK8SgaMV4xXoWC8YrxKBoxXjFehYLxivEoGjFeMV6FgvGK8SgaMV3GMV1IvMX36dGnJkiXK906nU+rTp4/04IMPJvCoInf//fdLEyZM8Htbc3OzlJ6eLr355pvKdd99950EQFq7dm2cjrB7AEjvvPOO8r3L5ZLKy8ulhx9+WLmu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KfLy8nDTTTfhrrvuQmFhIYxGI374wx9i1qxZIe90TUQULYxXRJQqGK+IKFUwXhFRqmC8IqJEiWlyvra2Ftdeey1OnDiBvLw8jB8/Hp9++inOPPNMAMBf//pXaLVaXHTRRbBarViwYAEef/zxWB4SEZFfjFdElCoYr4goVTBeEVGqYLwiokTRSJIkJfogusNkMiEvLw8tLS0wGo2JPhwiioGe8j7vKc+DiALrKe/znvI8iCiwnvI+7ynPg4gC6ynv857yPIgosEje53HvOU9ERERERERERERE1NsxOU9EREREREREREREFGdMzhMRERERERERERERxRmT80REREREREREREREccbkPBERERERERERERFRnDE5T0REREREREREREQUZ0zOExERERERERERERHFGZPzRERERERERERERERxxuQ8EREREREREREREVGcMTlPRERERERERERERBRnTM4TEREREREREREREcUZk/NERERERERERERERHHG5DwRERERERERERERUZwxOU9EREREREREREREFGdMzhMRERERERERERERxRmT80REREREREREREREccbkPBERERERERERERFRnDE5T0REREREREREREQUZ0zOExERERERERERERHFGZPzRERERERERERERERxxuQ8EREREREREREREVGcMTlPRERERERERERERBRnTM4TEREREREREREREcUZk/NERERERERERERERHHG5DwRERERERERERERUZwxOU9EREREREREREREFGdMzhMRERERERERERERxRmT80REREREREREREREccbkPBERERERERERERFRnDE5T0REREREREREREQUZ0zOExERERERERERERHFGZPzRERERERERERERERxxuQ8EREREREREREREVGcMTlPRERERERERERERBRnMU3OP/jgg5g2bRpyc3NRWlqK888/H7t37/a6j8ViwZIlS1BUVIScnBxcdNFFqKmpieVhERF1wnhFRKmC8YqIUgXjFRGlCsYrIkqUmCbnV65ciSVLluDrr7/G0qVLYbfbMX/+fJjNZuU+d955J95//328+eabWLlyJaqqqnDhhRfG8rCIiDphvCKiVMF4RUSpgvGKiFIF4xURJYpGkiQpXr+srq4OpaWlWLlyJU455RS0tLSgpKQEr7zyCi6++GIAwK5duzBq1CisXbsWM2fO7PQYVqsVVqtV+d5kMqGyshItLS0wGo3xeipEFEcmkwl5eXlxfZ8zXhFRJBiviChVMF4RUapgvCKiVBFJvIprz/mWlhYAQGFhIQBg48aNsNvtmDdvnnKfkSNHon///li7dq3fx3jwwQeRl5en/KusrIz9gRNRr8N4RUSpgvGKiFIF4xURpQrGKyKKl7gl510uF3784x9j9uzZGDt2LACguroaer0e+fn5XvctKytDdXW138e599570dLSovw7evRorA+diHoZxisiShWMV0SUKhiviChVMF4RUTzp4vWLlixZgu3bt2P16tXdehyDwQCDwRCloyIi6ozxiohSBeMVEaUKxisiShWMV0QUT3GpnL/99tvxwQcfYPny5ejXr59yfXl5OWw2G5qbm73uX1NTg/Ly8ngcGhGRF8YrIkoVjFdElCoYr4goVTBeEVG8xTQ5L0kSbr/9drzzzjv44osvMGjQIK/bp0yZgvT0dCxbtky5bvfu3Thy5AhmzZoVy0MjIvLCeEVEqYLxiohSBeMVEaUKxisiSpSYtrVZsmQJXnnlFbz33nvIzc1V+nDl5eUhMzMTeXl5uOmmm3DXXXehsLAQRqMRP/zhDzFr1iy/O10TEcUK4xURpQrGKyJKFYxXRJQqGK+IKFE0kiRJMXtwjcbv9c899xyuv/56AIDFYsHdd9+NV199FVarFQsWLMDjjz8e8rIgk8mEvLw8tLS0wGg0RuvQiSiJxON9znhFRNHAeEVEqYLxiohSBeMVEaWKSN7nMU3OxwODG1HP11Pe5z3leRBRYD3lfd5Tnkdv8OiyvdhytBlPXj0Fel1ctpOiHqKnvM97yvMgosB6yvu8pzwPIgoskvc5R/BERERERCnqmS8P4Itdtdh0pCnRh0JERERERGFicp6IiIiIKAVZHU60WhwAgIP15gQfDRERERERhYvJeSIiIiKiFNRotimXD9S1JfBIiIgo2Ww83Igz/rwCy3fXJvpQiIgoCCbniYiIiIhSUEObJznPynkiIlL7aFs19teZ8fam44k+FCIiCoLJeSIiIiKiFONySahvsyrfH6hjcp6IiDxqTBYAwP5arqwiIkpmukQfABERERERha7N6sCCv67C8eYO5bojje2wO11IT2PtDRFRbydJEmpNYgL3QH0bXC4JWq0mwUdFRET+cPRORERE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UNPWg0nFmYPfmYbGO3Pe2QvUbhfnJy4Hdr0uzo+aCxyUa8/r69ETEVHYMThPREThVzBB/CMiosAowfn2o6KuqtLYWAnGA4DHBTTsFueV4PzYE8U/IqIImVySicklDMyHVGqu8fKRTYDbDiSnA2OWaNePmqcLzneFb3xERNQHy9oQEREREcUKJTjv6gF6WkSAHgBqt/W9b3ohy9gQESUS5YCtwi2XrCmZCWSO1K4fpWvI63GFflxERNQvBueJiIiIiGJFcorWVPv3s4C/Lwc8HqBuV9/7jpjdN1BDRETxrcxH2cgRswGLFSiaDlgzgLJF4R8XERH5xOA8EREREVEsUbIfHR1A9XqgeT/QViWuGzlXu593M1giIop/V/4TuHmNaA6uUH4PbngH+NYmID0fGHmMuK54RvjHSEREKgbniYiIiIhiSZZXqZr9H4jTzJFA4RTtegbniYgST0o2MHKOsYyN8nuQkqU1jb3sH8DibwGX/yPsQyQiIg2D80REREREscS7jnzFanFaPA3ILNauZ3CeiChxKUH4JBtQOLnv7dmjgGU/B3LHhHVYRERkxOA8EREREVEsyRplvHzoE3FaNA3IkIMxKdlATnl4x0VERNEjS86cL54GJCVHdixERNQvS6QHQEREREREAfAua+PsFqfFM7RmsaUL2QyWiCiR5Y4Vp6PmRXYcREQ0IAbniYiIiIhiiS3T9/XF04Ci6aKO8Ki5vu9DRESJYf6NgMUGzLo00iMhIqIBMDhPRERERBRLimf2vc6UBBRMAsxmYOo54R8TERFFl7Q8YMm3Iz0KIiIaBGvOExERERHFkoIJwA3vAmf/VnfdRJEhSUREREREMYOZ80REREREsabsOGN5m6JpkRsLERERERENCTPniYiIiIhiUaauMWwxg/NERERERLGGwXkiIiIioliUmgskyaVsimdEdixERERERBQwBueJiIiIiGKRyQSMPVEE6UsXRno0REREREQUINacJyIiIiKKVVe+DLjtQHJqpEdCREREREQBYnCeiIiIiChWmc2AmYF5IiIiIqJYxLI2RERERERERERERERhxuA8EREREREREREREVGYMThPRERERERERERERBRmDM4TEREREREREREREYUZg/NERERERERERERERGHG4DwRERERERERERERUZgxOE9EREREREREREREFGYMzhMRERERERERERERhRmD80REREREREREREREYcbgPBERERERERERERFRmDE4T0REREREREREREQUZgzOExERERERERERERGFGYPzRERERERERERERERhFrLg/KFDh3DjjTdi7NixSE1Nxfjx43HvvffC4XAY7rdt2zaccMIJSElJQWlpKR566KFQDYmIyCfOV0QUKzhfEVGs4HxFRLGC8xURRZIlVE+8e/dueDwePP7445gwYQJ27NiBm266CV1dXfj1r38NAGhvb8eyZcuwdOlSPPbYY9i+fTtuuOEG5OTk4Oabbw7V0IiIDDhfEVGs4HxFRLGC8xURxQrOV0QUSSZJkqRwvdjDDz+MRx99FAcOHAAAPProo/jRj36E2tpaWK1WAMBdd92F1157Dbt37/brOdvb25GdnY22tjZkZWWFbOxEFDmR+J5zviKioeB8RUSxgvMVEcUKzldEFCuG8j0Pa835trY25OXlqZfXrVuHE088UZ3YAGD58uXYs2cPWlpafD6H3W5He3u74R8RUbBxviKiWMH5iohiBecrIooVnK+IKFzCFpyvqKjAn/70J3zjG99Qr6utrUVxcbHhfsrl2tpan8/zwAMPIDs7W/1XWloaukETUULifEVEsYLzFRHFCs5XRBQrOF8RUTgFHJy/6667YDKZBvznvaTnyJEjOOOMM3DJJZfgpptuGtaA7777brS1tan/qqurh/V8RBS/OF8RUazgfEVEsYLzFRHFCs5XRBQLAm4Ie+edd+K6664b8D7jxo1Tz9fU1OCUU07B4sWL8cQTTxjuV1JSgrq6OsN1yuWSkhKfz22z2WCz2QIdNhElIM5XRBQrOF8RUazgfEVEsYLzFRHFgoCD84WFhSgsLPTrvkeOHMEpp5yCefPm4amnnoLZbEzUX7RoEX70ox/B6XQiOTkZALBq1SpMnjwZubm5gQ6NiMiA8xURxQrOV0QUKzhfEVGs4HxFRLEgZDXnjxw5gpNPPhllZWX49a9/jYaGBtTW1hpqcV155ZWwWq248cYbsXPnTrz00kv4wx/+gDvuuCNUwyIi6oPzFRHFCs5XRBQrOF8RUazgfEVEkRRw5ry/Vq1ahYqKClRUVGD06NGG2yRJAgBkZ2fjvffew8qVKzFv3jwUFBTgnnvuwc033xyqYRER9cH5iohiBecrIooVnK+IKFZwviKiSDJJykwTo9rb25GdnY22tjZkZWVFejhEFALx8j2Pl/dBRP2Ll+95vLwPIupfvHzP4+V9EFH/4uV7Hi/vg4j6N5TvecjK2hARERERERERERERkW8MzhMRERERERERERERhRmD80REREREREREREREYcbgPBERERERERERERFRmDE4T0REREREREREREQUZgzOExERERERERERERGFGYPzRERERERERERERERhxuA8EREREREREREREVGYMThPRERERERERERERBRmDM4TEREREREREREREYUZg/NERERERERERERERGHG4DwRERERERERERERUZgxOE9EREREREREREREFGYMzhMRERERERERERERhRmD80REREREREREREREYcbgPBERERERERERERFRmDE4T0REREREREREREQUZgzOExERERERERERERGFGYPzRERERERERERERERhxuA8EREREREREREREVGYMThPRERERERERERERBRmDM4TEREREREREREREYUZg/NERERERERERERERGHG4DwRERERERERERERUZgxOE9EREREREREREREFGYMzhMRERERERERERERhZkl0gMYLkmSAADt7e0RHgkRhYry/Va+77GK8xVR/ON8RUSxgvMVEcUKzldEFCuGMl/FfHC+o6MDAFBaWhrhkRBRqHV0dCA7OzvSwxgyzldEiYPzFRHFCs5XRBQrOF8RUawIZL4ySTF+6NHj8aCmpgaZmZkwmUwD3re9vR2lpaWorq5GVlZWmEYYXnyP8YHv0UiSJHR0dGDkyJEwm2O3GhfnKyO+x/jA92jE+YqfgVjF9xgfOF9xvuJ7jA98j0acr/gZiFV8j/Eh1PNVzGfOm81mjB49OqDHZGVlxe0HRsH3GB/4HjWxnCGh4HzlG99jfOB71HC+il98j/GB71HD+Sp+8T3GB75HDeer+MX3GB/4HjWBzlexe8iRiIiIiIiIiIiIiChGMThPRERERERERERERBRmCRWct9lsuPfee2Gz2SI9lJDhe4wPfI+UCP8/fI/xge+REuH/h+8xPvA9UiL8//A9xge+R0qE/x++x/jA9zh8Md8QloiIiIiIiIiIiIgo1iRU5jwRERERERERERERUTRgcJ6IiIiIiIiIiIiIKMwYnCciIiIiIiIiIiIiCjMG54mIiIiIiIiIiIiIwozBeSIiIiIi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rbR582apsrJSkiRJevDBB6WcnBzp9ddfl7Zt2yadf/750tixY6Wenh71Oc444wzpmGOOkdavXy99+umn0sSJE6UrrrgiUm+pj4HeY0dHh/S9731PWrdunXTw4EHp/fffl+bOnStNnDhR6u3tVZ8jmt/jLbfcImVnZ0sfffSRdPToUfVfd3e3ep/BPpsul0uaMWOGtGzZMmnLli3SO++8IxUWFkp33313JN5SRHC+4nwVDThfcb7yB+crzlfRgPMV5yt/cL7ifBUNOF9xvvIH5yvOV9GA81X45quECc5LkiT96U9/ksrKyiSr1SotWLBA+vzzzyM9pCG77LLLpBEjRkhWq1UaNWqUdNlll0kVFRXq7T09PdKtt94q5ebmSmlpadKFF14oHT16NIIjHtyHH34oAejz79prr5UkSZI8Ho/0k5/8RCouLpZsNpt02mmnSXv27DE8R1NTk3TFFVdIGRkZUlZWlnT99ddLHR0dEXg3vg30Hru7u6Vly5ZJhYWFUnJyslReXi7ddNNNfX6Ao/k9+npvAKSnnnpKvY8/n81Dhw5JZ555ppSamioVFBRId955p+R0OsP8biKL8xXnq0jjfMX5yl+crzhfRRrnK85X/uJ8xfkq0jhfcb7yF+crzleRxvkqfPOVSR4QERERERERERERERGFSULUnCciIiIiIiIiIiIiiiYMzhMRERERERERERERhRmD80REREREREREREREYcbgPBERERERERERERFRmDE4T0REREREREREREQUZgzOExERERERERERERGFGYPzRERERERERERERERhxuA8EREREREREREREVGYWSI9gOHyeDyoqalBZmYmTCZTpIdDRCEgSRI6OjowcuRImM2xe0yR8xVR/ON8RUSxgvMVEcUKzldEFCuGMl/FfHC+pqYGpaWlkR4GEYVBdXU1Ro8eHelhDBnnK6LEwfmKiGIF5ysiihWcr4goVgQyX8V8cD4zMxOAeNNZWVkRHg0RhUJ7eztKS0vV73us4nxFFP84XxFRrOB8RUSxgvMVEcWKocxXMR+cV5YCZWVlcXIjinOxvvSP8xVR4uB8RUSxgvMVEcUKzldEFCsCma9it1gXEREREREREREREVGMYnCeiIiIiIiIiIiIiCjMGJwnIiIiIiIiIiIiIgozBueJiIiIiIiIiIiIiMIspMH5Rx99FLNmzVKbXSxatAhvv/22entvby9WrlyJ/Px8ZGRkYMWKFairqwvlkIiIfOJ8RUSxgvMVEcUKzldEFCs4XxFRpIQ0OD969Gg8+OCD2LRpEzZu3IhTTz0V559/Pnbu3AkAuP322/HGG2/glVdewZo1a1BTU4OLLroolEMiIvKJ8xURxQrOV0QUKzhfEVGs4HxFRJFikiRJCucL5uXl4eGHH8bFF1+MwsJCvPDCC7j44osBALt378bUqVOxbt06HHfccX49X3t7O7Kzs9HW1oasrKxQDp2IIiRS33POV0QUKM5XRBQrOF8RUazgfEVEsWIo3/Ow1Zx3u9345z//ia6uLixatAibNm2C0+nE0qVL1ftMmTIFZWVlWLduXb/PY7fb0d7ebvhHRBRMnK+IKFZwviKiWMH5iohiBecrIgqnkAfnt2/fjoyMDNhsNnzzm9/Eq6++imnTpqG2thZWqxU5OTmG+xcXF6O2trbf53vggQeQnZ2t/istLQ3xOyCiRMH5iohiBecrIooVnK+IKFZwviIKj/d21uKjPfWRHkbUCHlwfvLkydiyZQvWr1+PW265Bddeey127do15Oe7++670dbWpv6rrq4O4miJKJFxviKiWMH5iohiBecrIooVnK+IQq+x046bn9uE6576Ag6XJ9LDiQqWUL+A1WrFhAkTAADz5s3DF198gT/84Q+47LLL4HA40Nraajj6WFdXh5KSkn6fz2azwWazhXrYRJSAOF8RUazgfEVEsYLzFRHFCs5XRKFX2dSlnm/qsmNEdmoERxMdwlZzXuHxeGC32zFv3jwkJydj9erV6m179uxBVVUVFi1aFO5hERH1wfmKiGIF5ysiihWcr4goVnC+Igq+Q43d6vnGDkcERxI9Qpo5f/fdd+PMM89EWVkZOjo68MILL+Cjjz7Cu+++i+zsbNx444244447kJeXh6ysLHzrW9/CokWL/O50TUQULJyviChWcL4ioljB+YqIYgXnK6LwOKTLnG/stKPX6UZKclIERxR5IQ3O19fX42tf+xqOHj2K7OxszJo1C++++y5OP/10AMDvfvc7mM1mrFixAna7HcuXL8df/vKXUA6JiMgnzldEFCs4XxFRrOB8RUSxgvMVUXgcaNSC8998fhNMJuCd75yIMQXpERxVZJkkSZIiPYjhaG9vR3Z2Ntra2pCVlRXp4RBRCMTL9zxe3gcR9S9evufx8j6IqH/x8j2Pl/dBRP2Ll+95vLwPouE4+4+fYGdNu+G66xaPwX3nTY/QiIJrKN/zsNecJyIiIiIiIiIiIqLEIUkSDuky5xXJSaYIjCZ6MDhPRERERERERERERCHT0GlHl8Pd53pPTNd0GT4G54mIiIiIiIiIiIgoZKqaun1e39BhD/NIoguD80REREREREREREQUModbenxeX9/RG+aRRBcG54mIiIiIiIiIiIgoZA63iMz56SONjVLrmTlPRERERERERERERBQaSub8nNIcw/UN7QzOExERERERERERERGFhBKcnzU623B9h92FHh+NYhMFg/NEREQUtaqauvH4mv3osrsiPRQiIiIiIiIaIqWsTXl+OmwWY0g6kevOWyI9ACIiIqL+XPToWjR22lHfYcdPzpkW6eEQERERERFRgDweCUdaReb86NxUfPLDU9DW7cQNz3yB6uYeNHTYUZ6fHuFRRgaD80RERBS1GjtF/cG3th+F2yPh/DkjcUxZboRHRURERERERP6q77DD6ZaQZDahJCsFliQzijJTUJSZgurmnoRuCsuyNkRERBT1jrb14um1h/D79/dFeihEREREREQUgCOtoqTNiGwRmFcUZdoAAPXtiVvWhsF5IiIiikrdjr515mvkpZBEREREREQUG5RmsKNyUg3XK8H52nY7Ptxdj6bOxMugZ3CeiIiIopKvQHxtAmdUEBERERERxSIlOD86N81wfVFWCgDg318exvVPf4H73tgV9rFFGoPzREREFJWqW/oG5zt6XT4z6omIiIiIiCg6HW4RZW1G5xoz5wvlzPkGueb8vrqO8A4sCjA4T0RERFHpiI/gPADUtjF7noiIiIiIKFZomfO+g/OKRFwpzeA8ERERRaUj/dSXZ3CeiIiIiIgodvRb1sYrON/a7USPwx22cUUDBueJiIgoKvWbOZ+A2RRERERERESxyOOR1H0778z5osyUPvdPtP09BueJiIgoKil1Cb0l2sYaERERERFRrGrstMPh9iDJbMKIbGMwPj/diiSzyXBdoq2UZnCeiIiIolJVswjOl+YZsyvqEmxjjYiIiIiIKFZVy1nzJVkpsCQZQ9FmswkFGVbDdbXtvldQxysG54mIiCjqdPQ60djpAADMH5MHAFASKvSZ890OFzZVNqOt24mfvrEL2w+3hX2sRERERERE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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "准确率 0.836\n" + ] + } + ], + "source": [ + "predict_and_visualize_net_activity(net)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "brainpy-dev", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/spiking_neural_networks-en.ipynb b/docs/spiking_neural_networks-en.ipynb new file mode 100644 index 000000000..c548e5217 --- /dev/null +++ b/docs/spiking_neural_networks-en.ipynb @@ -0,0 +1,35 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Building Spiking Neural Networks" + ], + "metadata": { + "collapsed": false + }, + "id": "a39cf07d62caa659" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/docs/spiking_neural_networks-zh.ipynb b/docs/spiking_neural_networks-zh.ipynb new file mode 100644 index 000000000..41b5854cd --- /dev/null +++ b/docs/spiking_neural_networks-zh.ipynb @@ -0,0 +1,35 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# 构建脉冲神经网络" + ], + "metadata": { + "collapsed": false + }, + "id": "540ea47d24c27831" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/requirements-doc.txt b/requirements-doc.txt index eded93d73..453a5c79f 100644 --- a/requirements-doc.txt +++ b/requirements-doc.txt @@ -15,3 +15,4 @@ sphinx-copybutton>=0.5.0 sphinx-remove-toctrees jupyter-sphinx>=0.3.2 sphinx-design +sphinx_math_dollar From 9aa4e12b642a89273e292de42f78a2006bba4ce9 Mon Sep 17 00:00:00 2001 From: oujago Date: Tue, 7 Oct 2025 17:21:07 +0800 Subject: [PATCH 16/18] refactor(docs): update neuron imports to use brainpy.version2.dynold and improve module structure --- brainpy/version2/neurons.py | 69 +++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/brainpy/version2/neurons.py b/brainpy/version2/neurons.py index 19190fd86..d7968f264 100644 --- a/brainpy/version2/neurons.py +++ b/brainpy/version2/neurons.py @@ -17,3 +17,72 @@ This module has been deprecated since brainpy>=2.4.0. Use ``brainpy.version2.dyn`` module instead. """ + +from brainpy.version2.dynold.neurons.biological_models import ( + HH as HH, + MorrisLecar as MorrisLecar, + PinskyRinzelModel as PinskyRinzelModel, + WangBuzsakiModel as WangBuzsakiModel, +) + +from brainpy.version2.dynold.neurons.fractional_models import ( + FractionalNeuron as FractionalNeuron, + FractionalFHR as FractionalFHR, + FractionalIzhikevich as FractionalIzhikevich, +) + +from brainpy.version2.dynold.neurons.reduced_models import ( + LeakyIntegrator as LeakyIntegrator, + LIF as LIF, + ExpIF as ExpIF, + AdExIF as AdExIF, + QuaIF as QuaIF, + AdQuaIF as AdQuaIF, + GIF as GIF, + ALIFBellec2020 as ALIFBellec2020, + Izhikevich as Izhikevich, + HindmarshRose as HindmarshRose, + FHN as FHN, + LIF_SFA_Bellec2020, +) +from brainpy.version2.dyn.others import ( + InputGroup as InputGroup, + OutputGroup as OutputGroup, + SpikeTimeGroup as SpikeTimeGroup, + PoissonGroup as PoissonGroup, + Leaky as Leaky, + Integrator as Integrator, + OUProcess as OUProcess, +) + +if __name__ == '__main__': + HH + MorrisLecar + PinskyRinzelModel + WangBuzsakiModel + + FractionalNeuron + FractionalFHR + FractionalIzhikevich + + LeakyIntegrator + LIF + ExpIF + AdExIF + QuaIF + AdQuaIF + GIF + ALIFBellec2020 + Izhikevich + HindmarshRose + FHN + LIF_SFA_Bellec2020 + + InputGroup + OutputGroup + SpikeTimeGroup + PoissonGroup + Leaky + Integrator + OUProcess + From ec55a660bfe7a8c481fa44f4bef4ad346f5d4f46 Mon Sep 17 00:00:00 2001 From: oujago Date: Tue, 7 Oct 2025 17:26:46 +0800 Subject: [PATCH 17/18] refactor(mixin): initialize bm with brainpy.version2.math if None --- brainpy/mixin.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/brainpy/mixin.py b/brainpy/mixin.py index b8ba9efa9..90a4d4802 100644 --- a/brainpy/mixin.py +++ b/brainpy/mixin.py @@ -47,6 +47,10 @@ def _get_bm(): global bm + if bm is None: + from brainpy.version2 import math + bm = math + return bm class AlignPost(brainstate.mixin.Mixin): From ab53c37ffbbdf1b8e9e87397c6c64feb6b3c85ec Mon Sep 17 00:00:00 2001 From: oujago Date: Tue, 7 Oct 2025 17:30:31 +0800 Subject: [PATCH 18/18] refactor(mixin): add DynamicalSystem variable initialization --- brainpy/mixin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/brainpy/mixin.py b/brainpy/mixin.py index 90a4d4802..df0eedec7 100644 --- a/brainpy/mixin.py +++ b/brainpy/mixin.py @@ -21,7 +21,7 @@ import brainstate -bm, delay_identifier, init_delay_by_return = None, None, None +bm, delay_identifier, init_delay_by_return, DynamicalSystem = None, None, None, None __all__ = [ 'MixIn',