From 11d8fba59d641817947ff6968bdc2d0704e1ee3f Mon Sep 17 00:00:00 2001 From: carlos Date: Wed, 6 Mar 2024 12:40:36 -0500 Subject: [PATCH 1/4] Jupyter: Tunnel modified --- doc/images/putty1-old.png | Bin 0 -> 20370 bytes doc/images/putty1.png | Bin 20370 -> 25799 bytes doc/images/putty2-old.png | Bin 0 -> 22675 bytes doc/images/putty2.png | Bin 22675 -> 26211 bytes doc/speed-manual.pdf | Bin 1875927 -> 1881212 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/images/putty1-old.png create mode 100644 doc/images/putty2-old.png diff --git a/doc/images/putty1-old.png b/doc/images/putty1-old.png new file mode 100644 index 0000000000000000000000000000000000000000..c2411c4b46ed968d7dfa7af8682b94b9b2bf0392 GIT binary patch literal 20370 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

h-8}|QD~P|dVO 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 W>D>87;Gd5i(Ym3lmUG?m#eV^!7J{$< literal 20370 zcma&Nby!sG*EWo|!FWrJ81x9EgmgZ=AtPlMNm3ObM@thjiibs0YOFdoinqW!1vp)($2uM1w{;qX9 z6<87ws4*$XNNRf;W7CGh*%b_q?GN@_mFjlq8p%0cC@x8THQ{YxEkmnx$xr8cZBa>7{C! z9?`#dyx+jY%fQ3HtCs$IlAKAcYohF|uZ)lEh9p_FZaat`6!^*L4h$qob^~j`B?St6 zWIGiImI7`!Om8yhRjJ&mphJ^}?!mMXxeQ(h|d?OdD;azL~t80+I9w_dd~Wb+2vxUeS?i;Uldx$72X%o%0IBO1D=t8wNxte>7TR$Zi-J2Hev)1eNuGQ%`srFAoAPGwgy3o3;4hws8aM3{dGnWv)d~lj_Opl6%(X zVcp)n9L(UQt){-EE10+3sw^d4E~Ppo$;P^n|Eyqd@bk0~FipD@$Vm*OqN`p99;`ci zLm}2FfqvOSiuds>PYFxj0M|}VzWZ#&ey8hu20v|z$Xgis@@6xm(Fl$ifg6(c4`c(! zB?69$Ox#$u*Ils~xc5AbAC2H)~b2j}hURj3*(PSf$I7LYs7C0c$jPKp?bJRSwB9l%{N@Eztu4ux*PwX4V z{(Hwe>nX^+460a6K+3dkIc!B)u4$SsSYma zL0KtlmvP;(XP8q(twUAtX^&8L^%Bl4Ci!B7EzO7SjY98MN8OYq=s15KNQ-ez zk}5^~9h1Kes_qPYP(ZuY(#?$I3BO86fW6OYqSo>4hV)TMW>x9#mo&^G$1fQ7Z>^yk z<{u4(I`vdoj=$dj^_)z*sUYJMwT&Ga>QPJI>PKLxAs(Tc#}+$`MsP zf!gzNS9*3kzTlAsenm`pb9xNY4SiJ6TsoMzFl@U;bHh!Oj{5U_nS6r`=A`?&q&hZB zM0Sb}oJUkvO{vNwCD2YW*8eKUC0^REJ6rRrxx?p^WQI-1h-q)H%F=Q~LwaBK#O^b^ zAo}p&bp26r6~D^M-N`s|3DQjFviWp2j_KW;<+qOt+(&FKUOlU?aeI&BwsMV=vr=S6 zgDfK9FnMJNm>8^AO4 z8c^kw*=!0PehmiVX;%cNoS|zk9X}nv}G_vr@*L_95;)sFUNw9IyvPWcX=SK&bL-KG*nI7r1<4t;XyixYY1!}4zx4U_c zT7v;)z@ibPDvX1|7WP2%D%@tLk!?$>BPlcY*W*q{NZ4V8f$kJYB?R&Z@+ zwxC0K!eo*o3V85~%tzQW!J*i;ZK%t;O<sN1M`mdU zWyHVdBYp;vO4u2<`P07JAM>`0((O7k zp8L%IEn7iMOM3__-8mt3a0j+gt|loQN;s(%BFba&ekXKlfkkazf&BrMEPJn ze(Pw6R&@oAeTd1YjKS-5UX&tbBR=%+jtz;2OPwgRmkU5C=p}gznezm3hVv=HwT1Y; zRV9eU=hi~6++#-)yXo%xnjv7SJHGWTc2T5i14GTP78jmF4d~=#;lAy zAsNkSzjZWiJGO=rjy4w|>P>$_k@;4b)luM{YF*k)rXVjm8x>q^BuJaK^RwT%t+*&W z_~p5a58z#DX+_>q=EH|p5s|&p*$=?m{rEY->c>xp7!^1u)294fbih%1A(B&FR-G(ONfhvW~oY$h7n zln#u+MFgh8Mvh}@o9%CjbJO@l9=A_Lc1y;Ix$dzVQue)rbt*-%ZK*;73@y?)SQ>v_(}T$2ga^Gye2 z+ZnoT&L?v78^!2-%8&e?f0{qBaEOdVeBR8Ge-arvOr15R*ZA^X-W`~2s2fM>t_W9* z>Nby&5?a9{jX_p@Cgwwe_+*rFG`sz(MOnqZnQ)n0`B0Uhgjq8#25u4jP|2fc*tH!L_PxwESlFDB z_I2arYdBnJ(?1QG`Q<~WbH!nWyQQ~-J}bm0GM;qIOYD89yQY_cUjy7gxGdu%9X?wj zVQSQhwxY4dwT-R;CeULJ`@J@RVzz)yle}=hwE~qoC_CRBUiHlW=#jktv+yJC>#C91 z>@aggd4VaCghy=4G?h|(%;fiBqIii`h~@q?Ght^)b&H8AkxyY74e7i_qjgVdD~q(B zfe25Fu60iOw7p({x|(3|dY{njX_G7EQSSb&?)yrpW#8UI$@2==son8RjhcZ9drKc} zGo+=V+67+n`h0%}Lgtp7bUH`N!PjhvK#N;g5FgyZx}hjvDF~c!KcXCZDk6oUpASV* z*H`^O(f2&Z(=L2+sE*B!D!127`Y}6{bkaFQ6(=c0&p2;@gw@P;k`z{eK;G|2UQBG9dP+KU zvCbVaQ3q)Uf*HT2tjsgqR&KId5+gA-?ywNkFd+s4hE))Ql|yPp+Ozp>xg*?2pIRe_ zJO*lL-K|TT@-Lij3lDBLISUj+@AFH|WJ*W~ zcueUI92s>G<)?h1QkKSqxI|eHci(va&ViF*NA~V5!P|SL;!+>kAaiWI@;05zx-Z|x z7)DRjkq=lSEBJbaZaK543JsF!`~Q82l|fY6-P$(*Z;NnXnKf zGGOf8mMxy7I(a$LPFp+&V_n|1JMiu#D}dmt!f+mnOpmDkSdohC$5dCBYgYn7%s6npetW$`U+U07h7T92X?<$)OO~zYXWb47s z?#{sCgEtM5fEnav!6=9dPxe}fEFDr8=U$?kJx^kGcUqxFLDOy@T5CE~0Jq&++I1_bd1-(cc zBs$WLk-xUsQF?#d5oJU!Cxf)PGI>4ded^4Sa0M-=gxA1*npRCZh2q$gUt~Lu&yG!B zQuW>Y??rTOgCgy8uYj%-;yNZS?^@h#B49aS4sO0SiO1V+Vgrj%t;xi*f(R)#KR*o23pzY>p?U63X5-NP->Gt6i4D z&%kFbeQOn(IsCX+lNtVJ`}mJ-Y5AIL?B`^|9jV(bvj(areQuZdov$rwO-nM*OrKa6*o^9~|3s(J0$2 zl92bItmXv5RuLkl8No&@1G0ez^R=nZ6Ji#};78HeDZN&G#)D=0mjMUiY(=;pM{XH$IvYthjF_T?L?9bN`s;gmLHXLk+pxnwzijsi1mrY03e|Ph_EOIgjfwfS!S7VP=!C zOaDFS@Oew4mvy-5OCGzc1dOeNk)fkPms0@ZOaT`VNP`OGvD;)n-{*a*cE`c8npS}d zm9U!->q3=RJOAM-O7d5>g$`3k)LX=jc4lfO@P5h9<{eIge;ajt+#8c2pSYThK`1?m z{3+w2E|$2=?LDpp|uzFCq&_f@0Ev-Z+6 zI=kyI?b$0b$=sj@Y^T@!H4TGF_DDQ%Np*IHaKwBqLGx~cC%HS29eN$wYn zZ@77tnHngDg2LYu@$fkOs{(kMz)!iz(DJwqyyW{~OHWW5+f@>)bQ^HOibmt0c(Y#` zR){fTzeV>&Ug~(oI$^6ztskd~Q$@Bh2UR&;gUP*h5;glpb=Dd1wkH%;DKA4onJ?^O zVe(c5TG>*EVpW?tju4}#Y4KH@T3?Ui3j|-t?bIvgnn;Z-J34t&^9#=|EXWfMumHRK zX^lSgp4Hi&s#0#1GtTOLee2z$ysc1L-NHj9X18V?fUAHWN_-2nzRw_K8=ry(HD%@_ zdK^AjiaTq4bUuff0cwA*@nKp7HnBTMw+xqC)eDN6wo za2iG9hOiA0+AYhS%8k%x1Fg5#xF+dW-3@AK&R1lUK!w`Ey?b{k|B;o(8qW+aK5*Zh zbBWbYT0Wu`3g3&JbR-$rwljSs;A4M!(O5iYC~Xw>FSvCA8y{OE=$}; zVoyeEy!*}fynnr?%v4C!VBsqw19w?U5d4rL;{2(;9~AqP&yu%i!?JWm?S@F z4H4Rd!zfShm|QdmPbua4d@KE?*Z9z_Z#=mvwcHos7j*Qs;eLvDv(^}4pV!dl3uC5Y zZSO5Zq8w^7*NjYkWGGi&`#U;FNBNIC{)ZhQ&U}ercj-4YEcJsXc~34rM?cM1c1kLa zRCIWy{xog%_}zh_!dOFI2n=IC$0SkjZa#&x6`@?$u`4_v$CNEpbPv9G)nDQ2#c|eZ zYd7TObnHOe958%WN``{mXnOyjc!+7N;O~#A|5?0pyr2H@&mc*I-*juu`Py9*OPj~7 zI<5~Nt)nqN&^b-2FLulHcS~P*Dd(}}Q)_JqBVKbT+c?xMopv027#aNOdqB*4HnTgRK>`!ZYKJ$W=z7LRco)a^HoOX2{2j4*W7jLHfFr10VS_( z$XXj6HuwgtkYqXkW?+o$J-|!TMTz`UzY?j+FuL#$B?_nX5Z_Plfw0K_)ED8wE`#KL z2kVLXgy%5hdeshj{P&*Zu;#3hOj5}(=-hin$(h1T!ZehK_cCS?To3l>LkIfeUvfBD$lu)c|6PKplz+2bm!slK=UP z4+W_-3KPy~3ARxV?M)6g!B&;U%>0@WCeZ^UgBg>9h|CEmrr#@#9$Yea{$veZZO|1$ z1gi_U@kLpBZ^K!6F`GsH>#S70bMt-Gm&T$*zS&oUw##`R`f6u_m5<{iKRrAO$;%Pz z!N<5ZHnUP6RW5E!iay+8EbxD5lyVwP+7;y^Qls)G^{71G1C?mNM<`?+XeKDXDXUIC zWQ~1~Gfqz-q?2+}czOTNsEeXNOhC&;J%-3h(CV?5+^SFeCnCT6XUwsmGeVSumc}Bl zh?+n7%40_kDMf*`?#`4tKAA0|;uf>K$nV~Q%{2T_zP`eMZ4O)Qeo)3=kEct^z|35-WE6?rXiUcxKEj_FJaiUq!oMdyJdZCu&fD7XjM;a zQJRVfG0yPA1nsw9cxG7*h~q|s&OaVK*{ZMVR`8l1{&|ol-{gWPB6xP^PYytliPQG% zN`yko)BJ46Jcd&J=jZgt>;~Qu_fvgc8c7DBbaIIDt71N|XtoRqx$%TmcI99%y0(6z z3x$zF2atbwc-*m`7J|0x_XvhNGRTSllUYcoz}UptI=8jZ@_BJX>_xe1EUaT`uZ@kg z_}*)mh4qCUHyqJHx36lA^}F2QhvVB-&f$$}+O>CmutZramP#bZz0 z7Ss?KiPs2NbRb}H+Om{v&lN>{li10<2Pd6}x8I-Vk)^1hsmz)d=50GR84W7o^B(X{ zp15?EstDGMX-G?Pq0?~QG^f6as*m~k$*yTcEqg#D%8H=J+#P!My)!yxs?0<#^DM6C zcOwKN^h}pO5Nn)i~`Vk1G0t~7+>WDg%_S986)4|))eDKWoYfqQ8N%XGdB%h4T0cbX> zmPlf&*vHa9B8~2?b-0$8KS*as+KDoS;p&}7YMUbGuNU?n8fe)=J0HeO@k-hIb4)H1 znqevr{VY(bq&mkx|!|AzYru8-0Fu{IB4)_<9jnY13E!y zVoOIS3Epvg#oirB=97YJ=jWkhTQ$~uWfDnA8C#5IzFn_eCj(5O9QJ^>gJKz+2~HmR zwUPBjXOae98zLZ+`VI7QEZa=Wz$tr}5E3t?b;S)7#{m4}07_7!GGf@D(_^BIrHfei zbi-kMI*xu=uhA*rF%k2rXE-1Pq;lmb%3-j`pM(LY-4hX3k>&hF7atxc-y@BuiloYX z$teBAg*T6JtO;fHwYGGA@S$3>^!>`eiA4eU;kX@U}EdRKlHQlFW}JBt2KOd>&nTM^Z}-bqCWO}jaE4p9U=E@ZG$6rS-oqS zXfFr+F31t}XXDt~FR9(l>j#YtpQAuvqsiO}%FG?lbO;KMDvBNGr&?P2u$ZiZ{jKN` zmtSk*En#Qc$GzOFbNf&Gvmgt2gD71}=Q$FqhUKbh)_PWRK8n}4t`$YOUZV)icy19K zEG1KKQnCQT0yZo*=I6o%&Y~4)*&Idm@1HNhi1PPqhXk@5(4-=K?{W&qEk~5SzA5bDnDvb$??jC9qv~1|d$Mx;iu#Xz)pVNe%b8UXEP_Rt1unH^p z-E}v8;7$o1B{$z$p81Xp|C|!a)gSJrW3ioHYth1UOM2vc)uaOI=(;Q&4L1@iyNx)w zg~9c$)HqFT#&7?ku<*KfVs>8G*ip$7z-Ck=_mU3nf$lw^F5)bf`>17uI2m_0b$6!# zkB*sdaKo`x(q`|_@FN(-c3jt}#WuaGbQEpyoqF z%v#7%{?@-Csl)U`y<#dcXv1$a=MFWx^rUa8<#Zj6awA_ zb$BI}L4|_cSnp^n5%UfMYd^G{LH82f;%5l##`f2m4xJxO2C3H5Z@DItvJ4rQ!_`;?c<#rGsyM!!Q} z1xxDvx#)>(_UKjA>aT+$2lT4Sy?NI4;UWCj<1h@-@lCeAt3+x_wWM&Gl(LiYv5HKJ z7Msze*=80xo4cUm)TOTg|0TK8rJo;@FH zCzLtzm4~LY1koG#a-BbL$x;_=rk#1a!hCaB;jeRwV(37cBE$bu8$cfP?N5#gzJgi+ z>Y6pmw741@!IiH72Fh~vkolkZ_BldbR7mDW{!;G~oD7*L%Z)d7SJZ9Z1f|*S?Aao4 z$3}bbw62W2$J;)T=}w(Ty?yl`dX~SkEOeME)00jAw{4AjZUkAd-HUhN*~1`ldoS1E zUkLZZi{hQ2x4ZOEILuWE!`HkF!YZgBeZ{%s+b}D0=e`*4v}eYPGrPas)bE zBv7dn-$C4Kn~`<5jxX=+++emMwhHznr^T!0FBj5BgZ4WMgKQNc>HjD=Fl`H488D#s zwqnu#8UI+sVrEXw@e`^KR|fu+O?=o~^fCcf?P2a~WannZ{(gLRA%z)j#bNnwc|=0SEJuwAq+n`w$T1zVg;20=anzpLkH0{1Fq2m3}A!oDx~%-#z;$x%fjvUh%Swe<0446hsA#{C4Y4k2axC}HUY+v{)cSB{02`+Zb0!*BChBil)Lj?GhKBe^EvY6Gl} z1TGYPG;aS8ur<90iInt!JaQ_*^b&k2`TzFyqxq#!0)EaIxheOi-7T89B?0Gj&XiC~ zIR+E`5O$004cvJ;-G>23rVPl_<93I9)mkMyLlp6w_s?bIE4v=AosX?ixmr~>-1do< z%U=JikWD>4A?`F@szs?k$+qosAGRh_tZWrIY#Jfs-nT%e={25=sU{cz^|H;mFCnYu zS86SIIc54htE>+!w9tiB%fB8$BG|V{qLOQ|*d{Ix6e7WoI?Rs?xpj%6f>Xf!&M+XZqLf8)6dK%%9VaznM( zs3NF7@`|7&N9ZXt`l$=ioJ_&61~wMMGI=X#$NJhx0HN(CYT@4^724^OUUFlIuf$Le z6Yd~MN(&y##{zxt6Ea;bV5uB!K4X0$SViU`6jgp$+mGA`c#C1&T`9LoaQ!J9B41f|s6q(J_1&q!Qi*@D^`DRG zFMzE+P5ghx3V_*aJ6q)xY{S{NO`h!xT{s+ANZ>4R@slh@tfaW>rNkeu|5psDb6ONI zIs5St<+12jcakk}n!UDodA^8JlQix?sxi%|ejY-YF&Ky7?y%IU?ImP;E13 zIHybZgSJb2Tj{%2=5r7Kbq@z2N1qe&@LfSq(>tj?j(QtRk9#waq5_1cEuWh!-X{=B zSlvc6S6a=@FX4_+ij8kF)}IFKnrDE%O4MltG%}2id&7Nn1!i|$Tmq)M)y%I6H>S2wG@(vuXZ9MEpW_j$Eq(ZUHA$6kNbE!omMoS>z2qq_?btoo?q2Ye z;eX|b)hk-25ydR;A(J7(6QEUhF0HbUu-{q|M_M?aM|Wl4q<}SrH=7pE5eK{y2fTJ- z?4h7KWV1k5T&uucn62Es4Gk}AeO_Vq0mOD`%^XXI=4SdPEQuCOWg8q@5+LyTJy0EL zy*%Fo($So}6wTXEWV0d_Jtb{;u(UM!W9Bp&L51N;9n$tr)n8G!#&5J7HvqGE4c&=+ zBo76n4`~lgH^vi^d1RB|0bdI$Be;qMeRoWgIJYpJwhAx6X0}L)v)H!Tmk@p_3l*GK zx~LK|j+;~H;ipKd+)Vh1z`RUyDk5L$M|Zx4P?cjA33b@)nPb1;vpjwn5+_YUK6g(^ z1}Oxyt;=6U#zcyfiO28ua!ECaQC76f1W%0}b%Jy$!2YK*Hgr5v4dMtS%s(M?($zrP zg%pijTkA)o^d2wf#a1*D@yLE2lW;|i23At1JH1kV68WKZDiiZv0pkBV(+(N1&lF&O zP?(AnBlG(LzKtODa*SYccdSmeN0!b>5=oQDQzY2zh)6w=s8CCo9xnYS;?+AaJ>|ms z!ucox968se_mZ>A)py)FQiFlWk!^8eeRV*M4b3+S$Ry@J0t-67Dc5!rpK*Btc`2B@ zFm!n~Bna4&gq_LE4VH{P;$5N~(tw=U>u%)6)ZDUV#Az=;En+9CHK>Z2qnnw1w`OC`%=QQ_1O)13bTIsds=4X_G7R- z5cw3ebINMZ1Bvr^v+vEXky$u3sH6a@nut`DiRpDOG~A(a2-#xj5OiAb>;bKwCILdH zn6%#Cp~Gj}q_2Y+@ApD-GM@4ESt%@?1_O13&B90foAif%r1NLb%c@m3J-vIx^?%Gh z3c{SFbum^pFZDQgYCi;csymd?Ad?iP%kxif5qf6bF@h}xf@tOwv&PF(r;G#QsKRP6 z4_~$H;=!;AsVm{5mQioto;y45yvm5l@AviCyQl-$!}bGULZX)*$l)jai2wxtBBTwl zU2cFT7AOe5kVR%HPTm~g{QrOjEK@*{(-dBP5efi@`&v;~&&~ok`Tk$F5fu(pg`(z{ zM-kt6#rYk73;O->wCYgQdk}WaFrwnfUq($WFieQ{k8jX zCA1zZ^7}2YI{dSUOV#l~c-mh*!_%v3QPFU9j%F~Ui4pG6;*;&olCW87m+ItS9*=_tr)&FXjRE$9-43)k0@VUV@D*gbRHPFUM%mnGh<<|eu%oqqCbuN6 zJj>L`XimQV)Jxlglf6E#zQ1tYl6c*PQQ#pE{Is~C5q{t8E+6IL0_=>5*Ru}ARZET)}m-PZJRxqv0tPP z;R9EQ7C?18Pzgur80UHXq4JcPr+Az*d*e**LF%=X^TyiXXZ;83$k9NHgCqE+IizH1 z|85LXafEcq zOCAFo_4MH=d$yrTHTbn4fobIvih`;f@6+zJ?BHpCx#*Cs+c?QMQYKR-wrJ5seVXPU3>d3t~%{TpD zj?|7O;AV`kHwRGt86v+FyV%Y1`(mL_K@Erm(!9>CWSI|6i56~ON4<=4m@u!c#vQMp zy^dUkAFbxWH=F$xg&}oJT%uvcO!)}*w5b}t2FEV{kw`{M|LC>o$R?3kxik?<3QEt< zQF^D-7pe-n=rl8=0m{tS0RkI)nVq9S?&oUZ$A&--`vY#^l+^GZBb9)_KaOf1eb9!m`+F8n! z2s!q550{Rd>ip8_xND8!+7bA!J#T+FR@z-S+Vm^#wb)gnp~V7q2r+LYo%58LcK=t@ z_sBOtF4{lIt3`q)ht$ogS{k_>wedP~rSPcGvECwyhwth3_anX2PZxTP_8wcq1+#fC z*Q*y!JTP52dv!vruE+J;vcdDm<_+Bs3Vntr<-I-GpOn_kL~!AZBUlBV5 zpeeDKWh(U8R(Ophqor^~E!{8L1eV45v+uRxSP!;&j_}hHd@0v_9a^w|xS~gxapz8% zOG+VLcy4kHj(;*+w^|?Mfff(LLY7-FKV2ymIv56r{ z(Z~45IF>6lBzAW9Z`~dso3R+Rl%W=U?zOl+-*}uWx|wV%e@UV%Nm?X}SV!9ivy__}cLc zov+JFUFjlj408>kEu@|SpFi0_zbZd)gB!u*NuLNXE<;k4*Q7}UjI);CSBnAe8N-10 zVRVM9&zhJxZAp&ve!+G{*_STgl>H-$dO^ALM5I)kTI(QTdeKGS8N%r%ZjPP&c|ic= z3eE<)GQa2M77h7B@TRvMF|TP;d<2`_t+IH9*rOqpE3Ud1rsz8GYWp~b#6HD)oX|yX zmJU58JfSD2q;>t5|FqxgX2L0cN;ajByL&X=yAdSda6Ce%_HuA1e{PWlZ@!4llc|LAuV0-I%&ne*^y>wCUlCW3c|}bT@OR zh6Bo%r25jmzSbfu3hmxnn*HQJD-!1Vrn-b(jqw4Iy&Yy&G#6VTig{qt6evmUkhe?G zljJ zd!kayifi%^z3{AYS(|K^ozazf_WP|5e);#yBT9s-$R*fU0ibDay8BC(K;yTqPfUfY z(y!e-kv!LaAyaBAB?3$4$Bc#kPNJ8*$j=S4v)O1k|T;Gi-A4moU3E` zE1@mLI_ViJ{oTgr!g6RydR^a#l}l|AmN+>HQrMhUzSv(8dtN7@xvL zS&jR2wO?w=+dAsFOc`c5d!7#WjnCWlUC@rn4~?1pCC${<2hu^3Mp3pHsF$6e9rcp` zGjcWJ$Ub3Du>?A?LHQ=F5ZHvk2?cXnEpZkL$3q0?fzMusJ!dV%&PS07^0L^!O`O4?E&I*&n0COo#fH1y}pYL3k2e!`+TAGhtqVXjwR6`W=`|Wf(d5sThJA8K3H@Z~H-k4%@LA6w ze!}(;v4|GLlh^+D7IK)P*;Co_tSlvdbz1-oj%x9altnUL+A5D27a*;X29$|6bAgR? zqe+VDF2S`>K(eS-wc;$)Qm2xm+;l6lpc#!W#;RKCKzV#WVWXq zmGHAb1{uSHeae^h5df|Pxzi@Vk%W{4K&ZRg98$-323Jw-m!M$3zWSF92DWeJUwuFH ze|`Kv^Zq|1@}F`%pk>8hw{G1G`vh@fUFGO4tlOD-Rdjh5ADSWh=G`A^_y>$xr1xVQ zArCxF?Pym+k6*D_z*~S_vE>HDs{2dhxzFliMQSXHGo_8pA+PDa zNbRsPXa~q`?0=f!&j*io7M?c({Os6B!k$`cA6oEO6!peOfHCpD8&SG!VGTG3zaG=* zw}V4r5E(5j+Z8YbItNoh>XyehyT0NgI3RE_lN+;SA?zU_VQf8Y{25UquIummk3~#r zy2MMyb)nDuhEMU7O1fK{ICh7`j7-JV-@e;>FP%-8ouVXGo(ljALa3H-dool1#T>}d zX4Fl-vXA6qsEB&_SPIGuEA#khQR|F{k^RLVJ?MO8`n!YU>tQl zIi02Kuefm!!MF%D(O1+dMlLX9i!1y?f?mjdeG-!zXA4Ip#ujcSUWV2!p`F@POV1H7 ze7G5OJH*E-4yWm6e{}OicF^SM6)YK=se9E_9;G)Ah}wg~E4D*_zFT{c}Zr z(Ln)J=uf>sO%4B^FOL_9in$!N$33(tQj_yXu;jpnpxVJnmM0afKVPs4P6pS~<$deB z>at7b36|@nI%6@Da-x-EwH&ROoUj39hy$mAM~=9DdV*4FoA#B4KE2Axps^ULQwOkW z-_3#AR9wI&Wo#AcaP6jOk&Fl>r$o@9Y!WTyJodVn&$wUR2GPhWLnF-y1MC?^ho*35 z#cGA4xudPLxj%J?PP71$ahtljv-7PXA*V>aVHtbO;P!*hMR>Y?wP&KtXAAa;w%W2_6qxY+UQFX7EaFrxOKExjf3$Py|ZU3}a14 zr8ZeIr{Wq#54ZlChE_0Z)ZarSz{gfS-eJk$53kiO(stbH{)-p&3{rECV}V04 zK(QV$EjIR3|6!TP&|3%pQ~&uN+x}ZSdI(;cSZ}KUsT%*Pys_n;B$Bh8dSsNHI8#7t!g9um2-EP$@e2#)9~~BwV{FYYidQkW&z-(PNw<2 zn{D{TfzCaf6^&C52{@v`@G-HXJsf&A6>vVaw(h^Xo+1I9{!AYNaZYcJ@Uk_X?C1oF zLY@o`j0-E)1^k<6ryG>#{V$}Q@Rqg}65{(?ntm7d5qhS>k0E(Jof+X777B zL({!)ij=L+0axC>809?IJTSRDGNI<{Aji4gR?LVlJnG#~^mgKKSFs(w{zca_tvKTI z)d?c};-&w+zNt8#ve*MtWNb|wIG9mB#S&Qy-5ydOTHR6pCk{qxl$VTM4T|>?;eHWw z`qTQ9b$(K^zM!;@U2HlfU-T|%d_t1&PQgC7&_22s2*(<5Xb!y^k0_6Lf^}d{ zFU;1s;o#TUMvr5?bS16YltT1S$L=Jh>bheCZ!9`SwT5=zPUKQy>~6BJQ-Y`xpwacF ziE*!ihkbPOz!%WjbFw=tR{;9_8Vl!bb4=_aTC&v{`*o}4WX|2*QnY!7)@7l#nK)Q( zOxp&T;g3rWiBK<%rlzNyZsR94!8;{FgQc{*EWJ5um?)MW#|udD2=j;vbSB;Ym?wwK zf*x!;%F(11iW$}h3@90PTkXSaUQH$3Y;_4=AszKPk2_r8CL15Qwc3g8_?u4A<;6c$ zE1Tu607|G|`%uj*KAT~NA}zwVSLaSokteGN`#0bytz5AG?mQ>)hbzpzUnJQ02D5lM z^ftNB3s98;A@gGnWtZ{?KE96coOXdCspU}W;)C+syWqanwJ%nA(ScTx z>OxWF%?TXap%W#!2i{3nX9+&Es72Zh^`Kp$89?NI7sH)s1%I%NJBQ5tI&n-i5oO=Wf9nieZ8Ewql# zlpeIt9xO#z-8!DGL>{{hlk8jc0?7f9Fx~_U#!NsoL zjRlq@syCiG=Ubmmb0Xd9?9wrFvF^-5O7ct|Z}piYz}`Fq#)cAf617A+`}KpIE)UyK zYxZegy#<`{gitm>v&kiw0-hcGdgg`@p$H6!wGoL0_*to`3LGy@b`0AnFkeG3yMBVJRF2d6(Bs9qyb1Qa;`5Ikr3EFdLnU(NBy z(cJ)>Nq(ySt3(P1RD~h`?~i|~flngUn^;|mO6Y*|uO>3T_lM{9v9on`1D&x-61v)Z z*q{q#&7RKy9s>h4LNW^*@RF8GGtXK#!b;_rttKy@wJTSL1|aXj#tP3tWFGvINf^+& z+#|KgO<9b206SM^UcGVnySB9X`_H7FCMUYR_{9kE1;G%X&YS-DdO+>2S``S6vV%ic zW|+q*w>k%R8~pgD%t@JAO>LU`m_~aJG=9t}mt?!**IyOlI^CJDAt%f4Awh|;a&E_? z1ra_-8ZlyLIy;T;Nsxc(5j+AUq zLfv=9-W8BTY_1l1nOYol=2(7c|G<(=)uNfq6bt4R)_(v?8rOss3@9a8A@{G_@2_5u z6e_{9>iE~sSC$-n8Vp599Hs^*V}soP<1qJH97J?XGAcQ-_y;T*^QF%iyAZ6ncT+}b zv*N{Tv)}#Pwhwov5R35^KitC4M3GCwA^iM;msYB7P()%^h@^Z zhim`3#KLS6qPw2?=~I{`C{i!!^NtrmtWQnfZ@xCP8M#E)P`73tw{E{O451gH+?D?) zsK)v!#siZkN-gZDwAyK9B_f=F<8<u7Jlpws@z33} zO5rqG#lDqB*rd6}gs$z{!NK}QKfR%vkp!^cBWg!I<9Tswcc@qGfSIvJ8g6XeJOFH_ z=6cXy;Z+GMnByZ)GHKdD)MqklVUHRDAkm$&7Qnt zQ7--nZ9+Y>X(vQsCd(tR)&}95)8y;X@A^KDvXX*23`B=$I>AHl!IE-?B0hYzrr?zv zEdXoES%wVRit)$6AX~fPej<@%0gL2VE<-shD4}5UyJRdLi?FiB|MdIemtEO%9DQsi zI|T?k-IW!SyNwNC#yKj!a?d2Spi&!^Knc?&hbj|qktgfRw6foXy1POcFY=;pH!^oV z?>O_pcIQm*NgilSlBkxKHpHoEvHe8YmLj4y2Gf<`6RN6E3yofM5P61c7jL{u_$H&J zopgmDy^RBv^XXge>w#!}8NbrA?@8vXu~=A?f~iVWH1<)%@J@a$X;FiK`R1*oByX#J z|6dJsA9}PfIYWBIrC!tefE+=yh^K>AI&Jo2fa8$LeO?Tc@~s={UmJen!>%OHxsk7) z8i?V)p1q4o#wOl`C546E`ejLJi~j#3nyxGg{kgf(YDik4HlTxCy!GHpPFxNH>b#9| zMGZ9ts{B$E1)mMC6i2xur%>zcMQ{g*GxNU=U1o$1C+Qx7?Qs)1VVkHk+bz>3TthBa zxL^IR*f>oF8Fm6XnMlcCeNKL0@c*=P?QcnDTR1(FF*)UsDWu1&C~c+^a=c&56e}}t zV@2gHHPH$*3?)TNNvl!I%xj8aj%J=T?2M*jUeYOVQIPe&%rdlQ2pyB-Y7`t=f1~-M*#jpeZX$hGF zY>mW|ifO?u020cX$zvF?9>Vo1Nu{p4yRo6amUNTcMH5eJuEq;TB@k z^br20q9U)Py3P-KLo))9Lcp5I%JkY5rJW38ILXHx0N&&($B!F>QvN;EYP%1CION!; zF9@U1$VM@z83dgiQEc5y2K=Mazye(I0s3zo5^xI6I73EDR!w;%f2)!Mq!hqDl?eFy zBkk6KDhVdFa##Cy=%~DpSR|!TNM~}PkWkwxi{xSuJ<_iU1O(VykYhPGrDRmw8z<6@ zR*TcyxvOt0^uS?&w6HWLXF;eJ%t3st&CEf2BQ@2BH zW_(l8@y^G@@y|~I3-#8WEx_#%CS48=>Z#kRh$QoRmo<8pTSD3NjBE6CMu;5HXn{q| z<++Ixpi529E0uaww7{7@Xsx67;$LH;$eC8dNAQ}Utbyhq1ROd0Ns*Vytv2W$?Gp*O zmI5PVm);2Mur@?*loJJ_?x^fQndt|+dL%!|B!6DH2YOM2Mt0~TXx6qo$Rc(lZk(6bfmfFx}!RLeSwsY^&h+GV&6cBoc#UiiJW^kqdW^y&wK2AmtNl#HEx5 zSQ2B=290slgTPyFRAE{mI`q$ke)WZv8yh-(3<>x#s@rnj@!{JyoYh>+h@aZ`3^Iy2 zcO72uQK#o)_Lvn9NBPdI;k&aC2t^P&U=x=g;4vBWn$6Di7@d28ADxbDpJgwVN$gJd zz^4AxU$iy((C>!y6jdvt|p0B)589^F)M2@ez6C9>P&X)3oxP%z7(=-(yTqQEP*NWOj47hMw?i)%LEOebgMJpZ=DG>}Q!^&30h%8{Ak zXqkA@OZAT2=Cd@vfS1z|H0ETgw?|*td8(2@2#qNW4uj_*IkS92a>_3x#|d+O4EEyE zHBT*u?%H+TOYt7P(B=GVQ5Q7~bfjd46kEmYI13AZQ*ot40_ z6bEaZ!q2yy-A^6diH9%o=aqFFZ$e*qU@$7FqGEDyqA`-&3$osqrV4W6k!2Oe&i4wO zzCI~5=Hk+7BsZ>*voUv2_^NJnKkk@6O+y)#n?DqzgnhQ9#B?=(-s&Pc(p3}5ooImZ z|E`LJS`1Kjbm`}U?;q0-YovTpq<-pU#)E2=-c=Tc(U}@bIARD%HTj23jW07W_#hK@lLR7#`-q`SL@76mEkW(biO zx;x$rKF{;L?^@plFa#u`5VR zYP%Y)#w&f`Zu6SAei-C3L`>afb*+>y;k~5#gr>{PdoznP-%08_G+Mb*f{xTp)HW<6 z!4g_e-WmkK*D!P*FYpJsr0Lp&Dfc4OT^_zkuE;mnw`#L0&q*H|EKgh8tFzPhmS59V z^$gn#Ju!bJE%v)jgl+rpKC<3JRaRP7OzmWeF@~l(TH}U{#sKloc*E)Vs7u2!cI9`x z@Ms`!{a14I#S<<#;JqL`)n+$UAAhxV1R@d7mFovHkb$ld<9YD6ix3sS0e82C%le zsvr1D$n4X_3vYqOhNIku_WIp?`%$}|t4(jR<_i2K5>H1HO&Je=$q`C|!>q1Dfrg{O zLNlM!VV`)Ukx?{+ov(R8PE1pRPmKcR&UpKhlEM|>q+PfEi`OjO)UO1OwQ49DT1O3c z?3vqWMnL2>Zt$ztZG0yh9iQA27#C<>_goMz)irecITxa&Cl1_W{kz*n4QzB6ot4y) z;}1i;y7WGT9BsW{!a==%SrIe_+TfPjy}rg9*5uJ5xpqZXJ*l617I*GNQQ0vMpq$;a z=EX($?^$2%2*(ttl{QC>kJVIE+k8r?DCqWDa~$2=EPg+kDSm1>&LeuXn9Aew96EhA z*l_lq9lpHv^d@ldlh^zH@zHRDT_OQjFOje!Q&v8UB=v?hS!2rmdNI)z!nm!I_ivrX z7kO232+>LsjZxSRMH_@==DnvCnxsc}>znlG9n-hywikM2O+~NQ#`H4Vb^FQrkJ$NWPUpgm&XdOOzPns?3zxLF zMdIs)*{|uof;Uc>fDPXBE#B3$#$Z0yH&=dXUL$U*WB``8q_bN@zl8kyEgQ}MIam4< zc{L&VIGk#?$}|B}pgMc2N}ji!%F^moJ3b&YlY@7HR5aelh(~2$WvF_9-$pmDc7>U{ z-lodUgZZ2hK6#p;9L_{s1aa8C7UA}XL$GByou?-$xjn2uGHhcolm^oU+y@_{bjM!RQ2$Z_VrE4U&znaW$ zwdCGmF!^B2+UI^SDf;oon_us*-5BoRFPX&n=37_EfYXMp*-3Abc(W6sV`as@*e6?2 zEDcrOErepDwsp3G{>suVQ=;-}MQ_NcAT8J&q&jch*=Wu@o2+~WEpl&V+j>GMkXxW( z+Ye;UugCIORpCD}1EPjhrv7Sa5rFzvdUHBJj=80Pdc*&%F$*xarmDBLH{jyw>}QNj zrEUBrEBIn`-~`zp`BEbVBI8ZPKCkP>ihhS$#%0u|{9e|ivcQTFE=eb#2MTmko_Cdu z+mp#?Xi=@5-130y5nygJjSx!s8nt7YMtZWAc;yfFQ@h14*dCDC0I+ZRjBbc zndy<{b#(Uo9{{1tI%#^Iq6W2$#*OlOgHUxBpO!qy%-ixnMRf3x)w*;#`==CtbrUL! zc&YThd)$L4%dW*x@C?)C;4y*k$gJiNN?e@jsDH*q{}Ye~zF~Inp8-k#|9zN!74QLd z;}t@sA5ph_7qE=Y!0E>VY2dfHCG>NKWo$zF6^YmkOZTY%_aW{oP^d~d>RX$;HqB)4 z%}B=l;vL+*8faskU--&N`^_q$Zb}b=(T~aj^+Ii=%7?jn3?LDe(2<+K-4|33A@bl4 zwShsN9{JnLj)VMGDNme&6K=`tX8R>U{(R5m{`9Lj!uvCq&sra8=l;*{5mHBgCJLJm zUv_g*O_9f7wl0_ab{wW|z$|`Ph67TTcy`?$v!9m#kUkpx2w^Y|@N}wS#(Gorkh_Cp zoqX)bBw(p{DT30b0xyXGix+cSwU7rovhDA;htiI-x}}qZXfJs{O>EI7)zI7x`h&>Z z5T#7UlUTkg0hu~XnK!!yN+Nb`@hULu;yaHGg))h7XnX|HmA2FBbNdaIg3_Wf5?=8| z`W5#U3hDYTsFD>p`z|d2*e)LStbVeSV6Fwqmmb#-Ara1FkE*W7iW@AxFzXB4l6gjh zb`xCmMGp!QykQ-?Tt`#^!1pvu%?MQ=MUZvf`C_()NkZWDDNiUnIWGHGQ5!lvCiB*5 zFZg8VXwnsaA<=#lzDvn=_raM!af>SH0tda}{XrQukDOmxCdS8uqwNRO^F;d!fS%tn z8r*}F7Y-_}j~!CA|En}ra8LyaPvaHKV@J(g391-a~IG>460mAX|jC)adj80 zamI~yhNY72HTpxwVV6u?ARKARQ=o_NKxym9qh*$4@H(@yPP%wA|iFc+FO zUJEM5oi{7pY9&A09=G0~EF!?0rce`$#9~mKmVaBd(enYLGG<9GOBvk6KC#?hXP;z6 zd8fKaP29LuP!y04_)kd&sp`*igIQ*$_RNs`#vL@9BegREE@K3!@tbW@*mOk1XrqA* zzHmYRZV~|hYv{FFo)*R!PM|`TMBA<{NRBR+wU_1_k)C}tk6%?{hYV4Z189#c$Eqr^ z4%Dryt`mUgUyo5-hraXXx%XFk#T)Db4z+x4PkGM=oI*5lWm*CF|`=X|jq(J?&EsbP|5b9&gnTD6uVM=CMf&ln{U;YVsrjFIK; z=`qb=GHa0Q^K>H^5!XyQnI}U&mf%&JI!;Y|%B+zSM<~%>H6knX&EmNyOFFHpaN*(F z_Jr^Quhb7EFQ}e%c_37f>Hb=MIN{OSEZJaogZL4(fGjbHD?5KQd=Gf|d0@RAfU!KEb~9EN}-5hNSPYGIV=w6M~E zV)Km{fhj82^K^U9K-sJ7Kg$H=7F+bh(hI&eKgf17!6Dn1c1DDhVl=C#YZ6HNBfSO! zDjN{K1t!=?j3%!4jWxhmE|xu8c-xkQsb$Y2U_0|3GQ*{Z4r1J%&)oP0i6CH7(55O4 zrPZN{AA)1F|3f#nC2inZitm%z_xPGJtdX*d6DWlkH!TvK&Pey`+bw-H5ra7IXZfXR z@8`yb@>d%JgcYn)OLdl1=hBz@Oz|N}j;<%+9rr_4_XQTzKxWpH2neR*goZ);77y06;5 zz0!y1>D*6AU=9XWbm2*s%5MvD|Fn?zXJK|={pt!ZBgMjrAI7wg8XJe_Xk~1*>Z^Js z=cVW~Jipq}Y9KzP%O_Wm#uSPm_08{5MC2NY>)hqTNGk2NEb&zYV~}K}`GF|lYgVpy z2L2mP7+*2(?rUBwT#MVl=gdjCz}cNZlpPrMA$6$Dz*z19w*uL)S;?DfzWy0C9_m0r z4z)vz8K}pNVXisAk6rPb*d8awNp@h4r~B?t^h1FQrRhV63Os~92aOat8gxHhsX@Sa zRyQVV2DE&jy^KTLunsK~q=jhKWC~n(%rXC$t6>5x5?0*h5YXQ3P>Y@tZX6+mMMQ#$ zlVxq6To^&E-5r+3+YtFG0no`>y62d|R$F-=|}u}s<1AU828PO5OmF%OV}Ww2AX@XZrRiB4e8QN zw60(&T}9yNK}+z8*-F=v=z-_!W*(NK`Mro@J3+g>heKwGs9r=}i5wNg`RNTI?ivX# zWXzXILX5W8wuTSzW7(8=XTsX}4fWoEKR_0b(Vc(~C5;IH$9mDp73O)WwzC73Ub>am zM3cdU>M8j5jm`T4e$;%Mo2-jHAV4U*bDvaoxAx$QxStkaMws|ZE-ZWU4pspb-eF; za&^Bb?{=Ssy{JE4?D~t_VRlDoB&5Y<_0?++4LPPRzU0@K?urwfh-=wC+|V3KF+dn4 z*4p)FRqa;cFlyWGrfwg1d!CvWF;x7Hbt^2gE4fvwmb2Vfq`E*gdfcb&XkzPS|CjkxNBZpC^~lvX+d4!1BZm62uFu0L4W@dE9osWpMqILY3Zte+U?zV#XM~C$DkYDZ<{jPz+Nb>v?qtke080MwaBvNJ*_kQyGv6+O7_@b$PsZ znI8O|J0vr7|2dUsrCTxT&F)9kVNr+!_SJbs_IT8leIpew_cMpFXRBl@ERGB}rU^T8 zoN5@tP`0t%s%%5L(a{fP9-{_dPo?+mI*%Wjo?h>WbfmEyqp#%L^O)dYUJZ5|B4;YE zAA|Bm8Jd%Q>1bGETz*ZT;*dzgjSK}08p6!=>BS~Tsxf#qcF=J#L;G3FuE z;-SedW}WC^L!ltol(rlPG9#YzxG?j`A+@h7E`xXp&MpF{t>}pS$n&t1tf4hS%d*%h z#*h_R(OSd3cpaB*+O|Vndmqr;9#jW*$YquSg47tj*fYHs-NoY9Y3;_Rtt@bE-`Cw~ z6N`6y3{i%RmJOsyF+>(5HN79-|V zmYJ_4&gXUbZ?i^I4Ux%VQmqzH%QlrXrUOUIZ`x4bPuvr;y=aEW4JtA6su^|7r_ouw z&)LvCI*A|Acm9-y<{d2Sa#s*V;Rb}F`?QvG7p{a-48dA6XX};Hb(hrAYv%R_@G#4u z@gONUV{Xi?Ee_{lLbzKju7r+B1M{ulGMDjxAPB|kEU1-m8BImOXas4xEVCd6>q%wM z_NH0#ns1Z4P&vaGyZvx0SBH&xf33xYms^cp7%E#ov+rc_K^gAj>isFsfFoY*4f$K z>OpY|j@&gCKrr>KZ_y*Mvx~%fX9I)wqnlD~*u@ zQ~>MP^{V7znbg3R;ah1Mhr33ngV*`uf^4t5R`R16$JLOxa;eTT)x0<`2^$T!=npM6 zgMH4|Q^y&fHItJ+i0W-U>faGcU;^$}?Yy`j`^i5BGMEjJPT>U|)esonSDTd>oblv| zvC8BDPL3B6I?gsj&qo9z3dIhRY#&XX{4@#@$VoP8c-A4>NBdB&nL?sGU zPEvPBsuwU`wS0z)uGbz5fVQttdEa)g{o&jox`B=-&?vtZm?*Zb?DQCcjRu46IuDmp z0!Ht=muW;`w%oIWOo0I0Wp^HMGMDue;jxkAjO=evxT&ii^pX{ux$TKN%BCc6|uI!Wo*7JqxxQ^KUAspFz2>0z%P z4ShI+hrIkoc69QAX6_nloKO?R+8QO(KjsJB04r+>g~SqmjK|)hI9PB~HqOI_;g{M% z2Nz}WD|nUvO8|b7W=(O;6X$cv`#q$f+^KlXx^Yc)Q~)~*)#@}!mD_o=F@I~!^(}zF z2w3*U8Q=OATOW}4%WnXY#D>fdn5jA6>eE(w4@mE)Bc5ACd>)#YPQ!g&MVY{4&kx#; zr=~dErD>$&R}|w531G%P-4IQ!Xy96K#M+j$2`ihvHDDP3ihzJ^E@0Bca+!K}mHri* zdsRt&w8rwbO|jk!eRuj*fhzIq`DCAxn=wM=t9~otxht=Fx3lgqZBl=8ta{8AbnA66 zP1v03?voui(v>U%7?aG$vu>Z$^}Rw{OB6`SsQ<5gepjL<@(daLuRNowFRQREd?Hfjq{57^KjW= z%N5nXf>TFNJ;F)sI%98K8-7fHFI+MEfJGulTy#&5w063>Q1`5>p?vuCC0lfrAP~DA z2pgVDrPYwusi#}~JAo+Dyt~B`ee~A-)J2-Tf=8E;$#R=&^t%KFjzG`jE6Pd=SVc*!OqM4j-lVW!y+LY&JyuhA;JB-&>e<(<2G7+KHx_!lw-K-17OvxEv@2oq zhmnHB4aX?0;hPk@FXFe?8h%vBW1%{>$V~3ceKly+SUO6l13zN9PiZ+~?DwzxA2Q~) zZyq-dmYR+?(OkQYpGtcBrLL~U2F9GMomfyaV3sK^BlJUZ3vgm=Mqn%8mMX?xY5c_=nLOFkkJ0WN=r!|xI(PibUE*VP~>6Z^c#jO)bi`T!%p4Y9P)oSLg z|0tbTW&xYkJR7N~M&CM8`)?VT_4--}K*%yC2ADp>u#U^2zg7fqKEZ@uE0-@zZC`SG zIklP1{4GL|sF8BKkDq>Oxk8K4FShJHOr6dpIK_i;n6SCPXI$s#7t45!9W_Itw)@hf zmU-;`ZWd^sNJF%^vJbl&rn2{L0_58tM}OYh&*#%VbGpx;=+ME8bFAfP-5F6yy@iLq zx>3G|4q9qxNKbsvAGlH7)sSf$x7@|IjI6$1#86$W~Z-2^MX;= za5q+Nqi9=0*z?xZL<3`rrQ`lCt#f0*DkRraWa zeeF#al%P{#fiQux;c2zb_VLK=ZXRf@7%CO>_wlL>(1P;(c3yNoO$JJ%4(fo9Z<9%V zx??txZ;?7JKPgQz4e`Xp-7uCed-Q4f{lnc_=ElJE$Lrr;4Cbs;mVMSHXJ&4hySK#N zVBZr>xU_+5bGfQ0nvoYfOjaG$ElM(@s#dyI9A_jAH`a|Kw2BNfcK&|%XxZb=S8^I; zQk7X2fj|0nU5^;Y50^W31KS^gE`r{dD~~3YmLw^b`EQb?n#>1 zt&ESxhJd>wa5CDx)nM_$Q|$wghRb;kBUz&!41H?+LBJ_a)g2yt#jTIrxIZ&mg5Xu} z=VILTI_D3*eb=^5R^sy6^O!1RTdT;I98+1}rg?)U?-3 zB9?eGMKp`UtlvM}^JJDFqeKy~_cilqgu$kM_W3@<%hkpN-(v04!eKn$OkN=*pK3UE zISd{AMvYpcKrPHJ}c;S0NUEC2x9ECQ)D{PfOpD#s<{q<#hkOiMoNy zpS)+Wj51X&qbXQmAH018CUu{lNx2RUA-+4Ov7XEuqkDZn16I={!y}vlY z+I?33;fx6^?Yj4H7XB6Gwf8U}Cl}k2-xEJ?J)gFhv5Ww|ML3*xe>0Ak{S*`4L*mEC zBryUeuQI#rJB{DI9emiRKHp$W301p>?gArF6ot3v!OTpd+KJ5AlW+p#G@`ojq4>m< zmq(kSr7NrUmDheWPR#IG&)DM$?u>RIni%)9ce1S_fHY_6Dn5H}_EDchUY=xqux7a3 z;R$Dt{Bp>$BWIVzAA|@$$seg1o4fTTZr!SnEl&gbnS45AF+8yoVxjt}f*Gh35ijrm zK1=@Kpu*d(Xsz;X9AMIG$l;|(%L-)EhXtK}w7$m8e*;*JuQfxi@HrmzK2zsXa@jo+ zH&Zd(v74gAW#3-<)1f=}YRp^Kzn7?wOpUih>lhpS=+2?{DWPNz$I0Cdd=JMj5h;xb zKr4)arSU5m(!M_%_vwIqkS|L2hbGadkQxD3#h)XW^i>3tAg`LBUkB227asPiX#1+2 zeKR*b#C%g8Kl#Py&V%IYH0Q<#^c~{xqKXkLgMOd4UfuSr(nMu47^^qb~h^pimI~|LI+Li z$8;@|C$`GQx8nLtrcCD8IX)u}_R?$TCw>%J&DhJpfBpQOu6=ZaUlFk5hf2ekee$JV zz^Fcvs67K)ZWe$AiW}>%LjG0gECsWpCu&!cR?%Uv80r-onVKchH+|lTOlSngi>KNP zW+^b_FU;(>}eH9+@h6RABSgV`e)^GO=ZwjjUq}Jlt?57Zg;#! z;kG&Vu$eLJ{l9ArNNx^>rZu%XqUY}vyS(#nxH*L?4005R6f+IJjy8z2Mej(qkX#XH zKAp2u(xGFR0yGRCTEe|&rr z(Cw1|*v!z#py%vvT6B`~8wK=#@fUFH|YE0mx`b$2}$d?IpS zj7Thq1t&ySk$&J&KLCx_%V%Jni_DrBZ99ek0yqfuIce>E;4}!nJ@`uXDji;h>q8N6 z=H|mhpY{DMaoMi*&4o~r>)cWo#Gk2rfKKgI+88ozM2 zbB`NwWCuc5W5QEZbSXhA5Suer!UOf8Yw_g0fscwNBvbQNA z%=js^qt35WjOw5?vHC~J5qx^E&DVEQ!P$GRui$s-&q+yV=Ki?7K?P^yp#_eU`kdn| zzsY;EM+}(95Rqb$HHm}#g+pmHeA?lQ3;d7mCOP5Wl|~AROb`nKgK9q_p$7{PBV{1I2oKx0Q&7Q zyL}r=B|N`M>p2EpLM&WfuWffzd5r$KQ<$nL`0d$xB9r3NxkU}S)T-LOMi_$=HC9H> zXG7d;NvqclXP2M`{~+6Bfd4(DmZ(R?J#u<}tGNUdf27GOnDj*mu&}@YD6eqnNzS2$QMxX6u5c=r>nEufNZ|2gMcb{*u zn2r|^)dzafuhkGl`+Zdk-`z&B4UenzrwX>LpG2p!oYT2)=iAS*kia}HeYq|n*RSt# zQsmB!58RYsyoo#x;X>b!UI}q&<cSQ*il1k3i7ilBcDY2 zbY|x_ABXXcN2WV=IB@AE_ykG)L%U_!!cjc^VF`ow(%TeJ~0j;ra#Tp!B-^B%J*>JDwoYC`TFT7#LoT3S0J;q<(r*DQ1~Sg#GmLnu@jon*`9K2r-Wi>z8xam0Pe?rqbXIaz8KFEEhZ#r!HO z&*@GFg_i^uC|xPCi;LE?pM>|<;Jw*$h5j~hqx1O5gOPgN*<8@I=?Yq;a-E;x1o3v~ zC&vwmr(hW%oi60V{XS8qqte;gm&@Oh`e(IQ#GW1yD^?Fh#=-f=4_ zuqAu3g=+c(zB;D(QQ1II zl%3s*BbvCC>E`I@a^2mn(qWIoRw7aK1u5%rfS6lw9B{I*shMzK`COLdd49~<`!<+b z`LuZMch?);w8k#zZ)A;aX}9ew^LChXmfvvyqRLltCjP35D~&=*e!;R-BmxEdBltCD zz@KNc&MtT=dVX3#Gx@JZH!M=}m;@Lzz1HX*8`lMvGIW)To@f4^ib{cIuTGRe$H$76`n#|Sl{AVw@y!!*@M_jOD znZ2-;%IfF39w(cvxUfggo-Y}Q(P|=x+Rn>E`DtNBY(Sx_ya?lcJhF5u1^idQOWh=L zG~I9nWMt4{C4Gh}AQaVDB})V4z>f;9mf88V+B5!hG2aGJTWLR)QMsZ4T>I>?TR!|n z);phP;@Yc2=?cUYFXBd6q0|pBRun9F3~?|CaniNgHcRM=18xPlz|a+e{V2DqD*!Kn zDC6y`Ju3@+Bz(a$NgE8}1_M!Hx7$7?ceUfFb2=&IMC)^P@}+RXgEDX?Q349|>_!Ms zM9ofH)bS!p?(Hx~AzXq;lxn;U7_8tbV4KHLR|ydqe-5z@a=x8o7s2n)8IFCU{&guW z893PKS2JfkXe21PKzogP?PJZw?+5Sb9cH^lSK3om27^nJgEe~WubGjFo#_3Prvlos z$;CC&jvM!w+#Y3HD8tlYR)bF4I(CiKe7%2h*$UlkX7@o%4wy^quVFjHj(S7Q$iz<^ z_F}p{?|R_Uqf2y+yav5r(&BzKcWsyQGs3dt^H-# zzb&o}OoorfBdF;79Ftx@CcxICCYtvOYHW2~1M8;*PFslPd_$DNrGNzb>Rn7hX zUT)u3*BQ;Di$yTyAjiTkYj?0$(R-M<$1f0W&nweHTWEbLaZAeS$8&!>B2AgD?+g=W z{{~aBMP`r1Zeo}1}O>0Q+IlA%AIcOIG!_X+qL_A5J$MdB|IkF{yW93Js0|Un#(N! z_$rk%u}k-vt6T z6HnR_rTb^}z~*Dsnj?B(ElUj$+h~N*6tGBsICu$23+-%m@S3l?57)dE`rCzD7}Xj1 zIyCo_cJP0bn|X2ac9xG9{h|znMXy!Jx$uugpDT_IR=Qwq17%C}*h;+#ylXm-s%?eB zY`^Tf%q{OjqKe0e-U&l`B$h3v@>|a|oIPVQ^*@iQg*%t65BZ1-3n_KE#Lyq(uzpPF zZMud{x>3fn8OEnupZ!H5dU2@$SXMlOGXZQ*D$NPSsd3lr3L5tnMRga_TZ(V!q;1(q zEz{DjCO|&y+UMGh6Y$}WvlL0t)M5?$ICis3tZmjY&@k@FRHHT&4^;Rb^cNj^Mr*9hRRUefkp6?0?BYb}|p zFVk!FW*LdgoCZ?!=ktKxY#K9|gv=-CJ5-7yzG){hH) z6KVbG<}k`7yS7L}B|YErVrR>|DmK*s>53+wRuK;7FFX7fGB-G+O)@;s@GA1Jf$+Ui zQTOAy(inUAeTTkO0;I62~T)>V}6S1HRnStY98#Dq?!!>qHd=Z9CenvGGWB{P>h{+V60Y;WmKz~#=U5@=7DkGB=Dy~(u-gxt!4v2 zCd;qC@E9JixV2bMr&ZB3A8$}KhbA5>Eej?&ZXAqUyD48I3Iy}2JX=-ayARx*f4IAF zQ2}eF0aFEjj$IOopzA4e6ivI#69`{5WfrfT)Q^odwO%!~ww6F&9D=1WVnu3aiROtF z3ux0`I)%*$k=sQz()%6!a7tgcNtv8m9sg;|0<^x6MPGR#O(h&ed!-+f=@r{B;>nG9AFmk5Jrd;%%bNZ@w2T7Y(I)e7dvGk zJjY5FReu6w@}L1{*$$=bxfs_tcf@NeJjYoVe@FT=MXsCq#A(Xj5BFKVe zPdLJ}f%$JrR$$adFK&x@^2>9l3=DhjZrMGP2t}&fq8QTIn_y}M0uR8{GT$>g^NUI| zeR6z_1gbJk;;KXcTy)rCfeH5`qwvAPHYgsr!5l2w3$O(H4w&^jR-U zy6?7^$tMg1Pa?cPp_9(fAnpNc607~&kA=;8|3N=EgGjIhPxx1DLPiaa_-6{X0Ei+J zl~p^ZHCBXA%U;4Kbk^S)BWGS+`!<*i^Cb$H|l0a)~+3AQttllf6_PnTdEgw00^{ znUb_zt-mw2Z^u+5E{VS7@c_Gng3~BSRrV?0z?+QvvmJ{%k6}Qx>h0?%{OFyLxHEb$ z-?Z98_u`3dm|ZmfV8x*wV6AJ!KXp&fdq?yw#SKUm1f+~P^m5CZTWNotCb!Tli&jZA zq-5v#^2PEvyXkB5{lnNh`*mBY4VpA~Itu;UQpkR`f+mPXAC=(5W>xX8->j#eVc3n< zUD=99g;5Q!XZ>R`>t|{)mhJNNf`wZ<7TAT+@16~AbMrrs)~a`}4E09$hS(A;@l8m9He!W1)$n}*4lJ+>+S_U*a)@tGjp#mm%*7F6e3D$KC)${Q0a3AzI;=- z6}PG%qSRjFLeisFQ=ou@sX)NqonZHkpIG73Ero|(AY|5s?C9`1GUKcg7xVe#y@Qjvco*Qs~k9*<$D7bs1 zWNf};KVvr^OW?a(PZXWH5QZyK?mueDC~uw{wl%;#lIwf*ID0O$&oq`H60Cn{8Vn`@ zPCn_nn3U)Hk<#3{f+(sN>h%@AZ%FDw2{%M_DwU`BmMyu4zrBiCqSanrl^00LUX|zS z819cKTq;0L9eJroT-ih3dlP6QWg4fod_AVJYYUmCo6n2-=7(rF3!7^V(RG^YHQBt( z#6T1g&(WT9uhz@pt3%1 zo6@x=geV7SOYn8=fm;(6)T4U6JI^~W;2HfF04ztasc7YJVLU>6L2uXe&yHSsL};Q>%KcBxp6W% z#6cD;OvN&!F3>}sF=g+s{hZugX#X)uqDR|8Jez3QsI%1G3M=ntPwj|Z-*mydJE`#K z{=ZdhgB@)eSk$7&K3u&(c^8Y$;W23OjCQk;WJN~5H9Ql&uU?V=uwnvtiJc8faDtEQ z=<9Gnwbk$UN4lKKv|Bi=#%y);6KSa~%uQJ@e_0nIu~Kvi*Sa*O)Ln!szM!XW9g3YXK^l4(vtAoMvp$3(trCAAUFQky$6ArwzL>qkm&e@Xr}W1@v`I2lSI&pcG9vLfDp$6d)b0usyvMPYQ}Ob?i}=^HVEY>-Di z?gNnM44h#Xp}HjNQ9%Rkwa9h?!KNQmbQUQx9;JaHl-oj_>sRyi*9HbS0YQ=v16za~ zu?e;2ln~8v^#<~39p^Vi(cG#7N`u?JW0`#-vn8X$@7lL!r~*#SXB=*u#!Ns>qD|p3kS#w zG-IH57KmUENNyc}e-3Z~sod+0cX@^Q)q`Qzwtoz<=?{hmX_dK3^QvFT?7fQ!}2iWFO{g?spQPD(7+y)Kk0Yl)IFK7+Z6ld^N z-IY{X9ofvbEzRXH#r^&;kc*IuAgKy02u|MALmbG!zry4(427!g$mp+R!`o?`WmW!E z(Ejx00yz@ug&p^_B@}uujIkaB>%wXE$#BrYWi5jS&i~RM+*jdSIK$9kPOkCKxuFxB z#Gl$3LfA!^?sQ4Ou>J)MiRK*`_s$Z<#!b~ixtz(qqeJU2lCk*T4h;vi(tbjy3llSN zWtUZl5gv6As6Qx@NO-Ngx4I$ZzUOGR4>e!P6>&#F*?$Ti{sBmI-O64W$~OQ(Hiqs4 zlq^J2yAqyRI*_ad7U{Zw$4fyPjhuy_BE~cU|~RZx5)e34&-cXRhf#EE3y=6OlCE?}ZsD7!?y~w?CQLAq8zg z){Hbzu+}Dxrgcq@V`*Go`EGRnuqBxN39Z*drJcK9<-NbI70z{Sd-1p)80ZaxheXDlgo5TgNwd|oCO=gUPZI>KO{%z#$D*@e>u8*I8!4L z*s3*xr`V-(!K4b@)eFPr&o8WP;?VMgJw?~{5AF1egKw<==1Y))Tckq!`Jx!STYqt9 zM|}ZSbo`(_UYS|dpMdAshaZ6ZH}pwXUNQq7gT}y$llna?!3!p^p+KCm+1Bj(lH)dF zPU?ZJ_*_hxsq?2_{mwNEl(YW7)ukZd^*5*k{kk`t`g=}VhHs8A>8oHhr~I+4MKhho zpgNtGcftEER*yg~{?(#&2s!hGKI7D)k!>z*n>)7>_Wa{U;ug*CfX&iNS-FTq%a|0O z!)z|JKuI-2YIy6eyDS>D1_ixFN66{ZMKiSr(3PAWWD=*dFJ?`}mt&Gw4=<^{zYPET zL-mVZOYB+)$dhAa0_=y%y(dzz{4tl^pIf#MQiODeAK*7`Jy`H;W&W>s`aD+f@4$?L zTef!@QOjPsyF@@5iBO5AKhE#DXu*;c2#ELafDq&yb?o}`W-DW2yvgxx(~Ir91RqKiD&2~?KhP_z9SIh8k4Mk0SSQv>HtD?Ar;30}JGi!U*v z6ch`GPxsA3f1_@|FFfgc7Y^vk4ym|R8K@St^21c4sr&1u`{K`B3bI~5t5J;7C3-So zpTrhJ>CfNMk4mrC(tZLrp6LZPKC&gY+hH-0h^^%ahPt0B_RpG{H;;T>at!J4m zs7B`Pp~2pAZ=`oTDiyqXRJ397KeV2BJ~=79>|%aiFic&}^{$U4^Y>cLHM*U3m~ynFD$fL0|+<7tZJ-H`PZX5-j2rGn6JJDaue~afcNf z)lg*ec7CqY9k;t&!t-!&9zvLvM5HOkst;rR)_PCpu5w{6?1^q3^l3dQ_Ym72JqX0M zlLf}3UMKA~AGOuai33(OM%itF0G9|17$P>dmDEC9uL#k`%O$D5u zVG;yTt$oN23}Q>*Ir`D~oy0ynTG8I!k8(@r(hb%YkAHbBqJSXjaP;mv zG#}@@0#7ZjH5c`J*1<~=mAzh)XY8f49J=oP*d0445aunMpAX?vzQ`%a znMEE8h8gPCv#k>Y$so@JZBFz-J=BL64G~HI2|_=Ah2h>8$O#a*#tz)$rL&w*=H+Jz zCPSN#_D*^`uP}=yCUC81c!28uul)A`xTX3ct!dXaQ%Fkcw0ep%oVIR$!P5%CCU zj+17$0wY(VZYbKb^hX(j8qji4&>RSo1}H%r60GV6QI`fZA5uc}F8TyQB>0V*@T$(J zH*$9pY8++Qt%hYT22xWbG&{O5%suVC0X8C70By3y1(xD#z5^ly@W$%L6^xn*a&SF2 zK2e{nQ$C@g*#1sN!*wk>NYWaVB=eqCz~KD8Osi-jA>TWFifO{eNs#1#0|><37h#d$ z4BEsM+(c>zJnsk)eHeAfVftCVyjK>m2uTlm`<+MKO7&u(CyT_xn_jc;BJu+P8hYnG zGr+asaP3Uu#g1H;{DsT8h?;SOHz2Vm>Ao)*ur#dzHRo(emOBZlgrI_kBbbH z2=ui=;WyP^3}e|e?k1+tA_#%adDwOUq0z2X7xF(7J-b~rflN9yO%b`yWk_T}JH!sK zm~JWLNcsVwd*K8_g>E)zM1j)s7T6c7^9xvfV~^3^O?~Hk8c7E$S&Ov% z8h^r8Y4bl)ckQ!i=}tzvYe(R~BBDtSphogeg@or)-^>6DPq!#~##N6VnWl8+pQWjF zHs=R@8Ac3ohatZ^UC;=?Bs7c_#L++j!&$8N*9u&RP4y202I6a7JADlVMXtI@jC;g$ z_wO!d-zz*)=Z$($z<%?;3~SdTG^P^J9kNbPS!tAvJEg@V+8kU`BlB8&1k)I<;Yh%f<hd~8sUL+(m$7utho{IlQ?w^O8SN&ETXbdZeKhif!vgBO60nX)UuJn}14fF3f> z6hXMQr6=QWSMLRr#9iesU~NHH*V8~+%6NcHtZWF!l<)dW8n;{#9WXxww~PXSSN%TO z6`%E@_<3(pq4KVACgiJ}rzF)vy6;{4xBAFP!a}f)W^oqk;>#@R<8|HGWzo_+<;ip2 zph2a`%abxj3}k{;&->-jq_7wsySHuqyXB3woMj&lwygbr7=`}}#f-rrbQH`IlP7($ z|I?yI6~f_j<%nO4h5wWUelcob@jnNU2n;M_*)C+GMFA|#k9f<+{4cb#^)_;v_?JQd zJFJ5L66^m2z8CqxNpCS)jUD0O3n$%SGU;0NoHjTbSZj5rpEZ6FT?+eW}ORI$JQ)^cb3#DKLJW0%ro0J zPlo|A68Il+&&1SA^=7lcJkpPi|gw0eFaiXNYxSCdd0Vli3 z_S1(KA>-wS*;1l;pwbC-_hrW$SCoAVc#M`pBlTIXzPj)u7d&MKL)H7ZYM<*aavW}n zJ~bnG2vxq)z20U-Gjj|KlP40{-1v_Xb8_)zh<_o}kl=F1<(<{Ws9Wro^-_^rZVXt& zN3Fwb)GxdQm|cRphL305BdYIC+5;4yfjQ6F>a7%yGuc?Zn87YWzKq+qWq^xIby+i@ z{MamH(Hesd+xC`QD@IHK9U_Wl>IP;?G|Vc1OR;vLoKR;J;q5E`nU}B;w7puN>bJ=* zF26z^dZrNLxdPoh+1bIuUXKxq@JaqK5d6tw{pn1LoKM5eLYJ!OyoSom#MGlDp3j zz{|KU20W<#>n{F}D(#{m$d8`fzCh@BCpKCfQbiwE+ExU}*j;v*Vp8{8=pRa%zrGHD zG4N~_{P`QjlOA@>^8{?mv9sGbF*x7R4jXLI5uC!^{j)^ScOL7uEoh?aLi^$B10GTX z0^hwpnbHpt`m6L9pxglkj<1YgF1iwDLXgM5!lq`vdo|=*{One{3V4j&x8Utg*JCWW zqpo;q;#b>%S>)G%)^sMa@iVp=ee{nPnfNh}W^0vVns4Spke8s*AY1h-UVs4ek8>{y zf4QpbAYP#r!UWL1A{*Rcbidqv@O*yL##JIkQ#jcA8$|KPAc9;95_d8iDb=x6`vuQi}m2!`YXs}7@Tfb!i5r}POU-M@TmFm)Ux0Uhd_zQLJIMqriFuKwu5vMXyvZLB4TN(4je@HZiTY;8dU?tO43c=b2iK zQ6&3iBGs^TFKqR{hVQ>4xBpXcC0Mk2_&WB=?mxnVM2H3xCXRvX&hmXeFry(+w9cRk zfOPzQikdlX(~cdry}z7CmN1j(uc^7@d-$ZrDI+^I$3WK9OU&$3{8Rf-lK#y4QX)x# zU#p%(ozYn<(!!<7&k&DO_EqO4Ffmopv?;RSFYWJFg_FmF^{l7&mz-q0{4IGQ+wb#o zG~`^<$zxI)pp#YdqY@wpzGUAn$>~%w`dyS+q{;?-XsU5pwW|5U=|g1Jle?<3 zUuAWdZTeKJ-7;fzK!EMq6$P}qkZdl+#XQwYM#)&$6J8rIMhL~qrmHJ|+~{zX>e1@z zq5vvWR|Ks4{xHinu(iRk!h0=I(y9l9z42j|}ejZSue z>mRA4yNsa9q?s&nRmQ+*pct~I-o-J(CfL6YyXO+u>`ep5wD=%2Mw60x@N{pL7N7>S z`GsYpkHD2x(!6&oie>_>E5q8wL}RMClaum4UK}3I5hGo}q;j;LR;G=O=<>C)W77d^ zC!gLFoakJsS4&`DKriV;b&ds!3-_{d8I;_4Z{5$XncH;Q+IZRJuo(_yuRO(7|s_GJKaE&D-%45pg}nAEoh+UGwjm z?|Ouh?wyd4)d{`No|3IQlMFq=XK%6sN8~Lm{woLq-h==eqB)>_zd|I;0LhDF9PTpG zco{OxB-~8gne($>8}v)tsfTsiO!y5B2uD=NOexS>=~1NJh@OS4WD2(lg|3f~<B3N|ZO%%$47$)xM-15l629zDEAHUo>tf1WW1!pthW9n;a$S21r01 z5tOf5Tooy#2+v$;8P)MBbL;w~h4Twe{bzz^cWyC6H(I)G#gXqzr22~jiV)Erqq!L4 zXzXp(rxAO^=@APVH5?!Ql`vptqik3t#H;GY4u%43b|9S<-ro=*;FP0tB8sHm6S$DB zEHvC0K0L>!QX?!=xk_~>JRBL>4qsC#kVy@k$#p>>aJR#(U97aD`tt<;f{5R-0tAng z;Q%cN@CoD+iDNp^Coleacc{LFuz5s$v=M8b_-rVXg4L|&V-o3n z)rXCadw7cQz3kOe>`7GUla~^42=iw|#UdQO3cVlkt|GuS8Ql?Y+Uq)Q;fnkG$IJC_ z%`^$8p+k0XDzpBcnHfCJrw6u?bNL0FnwLTs)-46*O|&|EV=5v)Px4XB_0TX@1-Nx? z`t_FicISDnQh3?T@{;#XR;DdS>OLJ_FiQMLxZ64SJWK2P`~jC7O(VhS%Pv;UWz#T( z2;P1}6J7g(_M;1E+Pk zvjvYe@%cDn<1NlSTv#cz54y18qn%Bz-CoyQ&fAbwQsaK)Ca^z%CBZ5_bl@hlLyke+ z+cg$-N@$Vq!;CZ|`NZ5M>?_~aqs?`?NGCzt8(C)YxYK#9QC+#-$%a|e-ocHl7!~m( zFZp*e*AVcRM;7kfC^H70Mb4AHRsjX*ZaATzz&?@DTlwe11m|iWG1psBkxX66hhlqq zK3NU19Haz09FkO$Cx5mgQxEGu`IZpWFZ{Nni08~*&ITC#$tD1R!&YFPFmOy1Z>YGWp^$9u4WjsXHt>jCpjoFz=UF0 zP1~A)Z8bMgS8U-{xfq$JCOw{M;h&Q>zjUzcb;n1?4Xbh!PL34Z9h>D?XG#A$ZI3pl z0#lA~m}c3#*hCjg4NE_SsUR+xu6OK}1>7+?@H+5sp?s@- zdX^=r9w-PzWPuOUSS^h2x35S^rCg|RC!Y9gp{@tfvDw%%p?7Gw<(Xxk?MxR(Dpujz z$-K_3m2+ES-`4vZuXl>(>z`^PF~~SRUJ`WS@5S>qewu{pTpvw~sHsx_i7HAGyl6sc zDKRqJ>LGg_Fo7$0yvUfGIo0az6X;GjD~@9xUGTX+rpN$LaV$f$vFeJ0aCvGtN?;+z z@wJ|UFAP6*KtR18+!zDM#F-ulehVxt-6Pb1rFmoT z(gz&(54z0%qd7Aun)M-F;R&ca#Sb2a8u!yhp*|$jdiZxrUOJFEb$x6lg>x-e>Dtpd z02*XPQHWygozCaVtVa5j4gLIFh8hRGw;EgVJy5IZs?8HXcF*7gLls1JE#II zrsM$gFnGN44}2t5w8j{&**n(TH2w8KkwK~Q|NajkZoJ4kj2=c4;v}QPYeF!om={yt z2%t0dHx*>n0r%7{C4rq4`yW_0ZYbU~Fc z*IFtu)sgSPT6}ETt$RXD;89MY4z$O8kV{)m$(v zU~#!G_*q%Kwz{tUhwaG9s}O!R-*MO5teA{KheS>puNE4}1kOHjjkY9e&VgR+N3yru zO^#w_SsUW6sPslI2t5hvS#j5GU18-y`VQ9gjbkZgTUQKk*kRo6;kfHU>?eIBN?mMRLHJgt!{UlDfnq$)J=TOsIG?gg&p?rnUzmSj$o`@m{Ox5^?lgyg9;82O zBa3`qr4xdKlT?pxZeYsb^~py^gP7`*YPL%{CeuzKISB*(#=m zysrKJvY*KYp?`Lll{SLKZcI&v+Ap(ZT%!02W^?*;3T+Bmeol{oL>kjO6=BjB8!PeW zMC3;f&GMC_BKSXqwGU1A#JV2$Pbm1Kp}1<6K2j@|L)Ll$dWSvqu*COGMEL2pxsd!swf7HZozJ}x&4L=0fpR$ zKJ2vtXyf}*prb@Mo`uofy7$<@IRb^gfaQKQ0A9vm$^G&?dSZt8bA6!^{o?QDrDreX zIU`pB|J{H20OdrC^1r(;nx}S5Azoynt9BOUhs-+nf5cLx_CyY&7^-DL7w`A?;;0mm zyKCSrbXuFHrU&vWXu74ItDoiCZHK6797-PB2<^>hf?xZJJ=pj?>Qr)sSDgYLUWPl zS%nU2ALr-WcZQdyt!UI>{mh+ST1h*^pUm($t$N;#`rWNaZ6#v#p2+^;FZ}#+>1l~H zGjeVh=qa&ghq+o0P$;EU(-YuwofpwEKKA}lFnx=Ej*IAy1IUZlP3|?#?Pdu~wGDoaJ4PyLc2wI|N z5$kor_%Yca_7p@p~He-l|B^r!4OilhkQ#Gu> mAe_q>^j<<^P;9=GniVKN9=PCg6)z5yhQ5mM6Az-{Pa6-pG;3lJ+&X zTZvjqG6UDXG%=BEk)C=A%bCFM>=jZpqw$J4d>#;5F%RpqGF|SyNA71QRAu}-txrnv zEdj3C_nSdcey=R@9G?Do-Y`=H|6J!$xLsMRDcnD}^W_Kd$FOok+rh={Kv7bKP(p=Z z(BT5@U}<>1mr!mqR%FgC5|+jAg7XbnXs?rY;>TxAYhU245oZj@>FJ7ay7v;ZVJ27= zcr=WUy~~w;B#+Kz^A3ed18XTru{Q@(!N*-or4gX=X1nP@nikt4_f-jTddGDk1;D|E9w z{mk|Us3B<{HRDN4mzeKvGuye}ScbU*fdZ!@eVwYAJwHXo-o5Il6zosC51fA%`ot>kDk!GIu^2HI=1#;W7&1s#MV?RPc(lyX&>5k&%^o^% zTT5{i%d6V&t2AvrFEtfcA&fKc_uhV0c>nJ6Hf9QVtwmGx_#{-sh-ic>`m0edJKqJ3B^*6t zZ*Ds6X{zYR{;4z5X+lQ=n|%S*;_GJ~t!7>e*|c@mHg$@VR*4D6D^)U5d8@k;v$4*- z7!v!NniF1w*O>DFOzRzc}ThtFvTrstN@@EkTf zU;WggD8c?n4^P?6GQUEb>V^t#hIiZc;*79Uz*!Aq;JWW6sh3!c1rRY&y4Tc z4F^^*43bE|i5cRFQL@m#;#u-jmRY(5*Pw+)gPt4`%6E8NYV#* zmZDtv$5V_T!mj*->XmbOm-XlIdqSM(EQYY;9IHPb=79v{((LIN0oJJy^2o$t@21S2 zT1aBu50D4LsP6|v%ZNfA1mJPXSosFviPGJ|iN+J{e2@wLOB5^V0k?=K*8TT6Ccc)z z<+lAzpY0vkQc^#ByaW95zGd=D~3O#Z7i3*HM3kJFr}* zFC*z(X6WxMi~MJQc2SjuYS~!OXW5L12d=`NPNDR3?Vp&2l+)ND*oRd;D9v9SDd|n7 z9SNl*c}b_I5+WTrksKRsZsK{Y!uJF4$}rZT48LO1FDlm9#qpmJp`5ZG6+M(3vO8q% zy^9*$3UfZ0CZkY@!V{Ht%OT6)$R^F=6F28Ixr05B9G9XAq9t(mYIK}P-ltjT!Y_z` z-U815T)G~*Y9Dkf`?0mg?;;5+zsyP=5eF~&@^J({aLg@6QlnGWf%=m{GCaz-0&(9) zIaEpG=V1dm^&vU^42h)XFUUpaBC<=CP$+YXJcvz$IP=v7ta-LYKB6D}=IXVGnO!j) zG)G5rWNU0}LFXOg6QjY~Tucq?V9~qhX9#T-62UJLW)_S+FU<$m*96d@Y z!vyGvUF?fXUDz0+#!*K4W^z2VKAD9UM1o(SuyL|PS+Z_^nFh06O1bJ$U4=)Kn^-hJ*2nxHtmU@^D5@TcC zyR(^bDqEZCmY7P;v~s@4o(HuGXAw3>y#W3??VaB!9 zn4GV*1gGS+%aDvK(K$coJq^$7fI=-qopJH&CDn%t8t4piU6m~_H46@2>q-GL*>@)t zoGE=H&bP!N+%B@b0h~9!eQvUS$~;zi>|q1bFm%}Bl!fT1RrRbL&1wtTb+Z-bPtOLU z4-+7?j!VB6l&icEwh0zmB$7h<^&kPAASC<=1!G-ohk_~lc^jv!Hhgku26ShE3t2`? zx^MV2-r~&3XKZ@gjts&l;(sKTK>t8^zCiHVSi#fMtg`!kaLu8x)9*%=Za9QwZ<+UKEYUC8C>?HhEcD_+BmMm60+>+Mvz%5;xi?83XAM9aq^W8T?F-%_WsaT z+(9!osOSm57B~GzR@ksBuA61 zd*7ACBWa@KZTRO)orUcZ-<=A1iVok&7o&z{d=$&&4~O24Bwnuwk!5mW%baMI4N9a41wV@7|c9-jk2|3|D7HTUkg!Y(Xvs zBkV_O^?v))I+nqWZ|O&n3a)LW7uDC6 zWus`!8Qm3St#6@{(Une*rqAt5rjfi*JKx7I=jEJ~^du^L_J5l?u1VbF!3o)++jY}; zKC~FhGfTYmXegQKE1(n;1YGY5U*_O*J;VBp36sUbP;k zCBF%0JKq@7nt4|TQ&UMXX-^NHX7gOT=7Gd( zk3x=R$|It8jyH&NU%x~HvhU{3EAx*>y7E5}pae77A#@WC9uSE*xuK-syn>#x0uSqZ zSvbm{0GHRv?^l7AE*r&)hQ$MktkNSKCfrz)O9z*7>F`LvidxB~xo^55xgQInE0luN41R3P|gZH;y+FxuKz*S_fL{Xx*J`=){Ta{>Q-2f=rPdkqzC zFP#yN+8lY9Fw6#`dMN*v_p;Hg* z>AU%;yw&yJ;&DvV_-IM;5R!F;E||4%T=m(K zA3slX`APYmc4}LTvuu9y+OPKrIA zqo-$2Rwf)yryL3qEZ$rF%As2eh5hc*yfDGV!E*y%DMX7BeLHhaZey*(>;?B9IM z@ytf0BS5rIDE<+90T+bOr#=MU3$_d95)ju8S$8Cm8}=AE`YWlbr(J@%M?8IWqz^%y zN6FEi$2z%NYl^SnT7zp!jc76zzKg6iBr`h2pS#V^hp$UX8h=mDVW_OfPWDPKU5LSH z=7)ykT^5JwX6dK9*=Sgj-GI-p{PHN_1?`EI^wReYv)t!9e6vm4WJj8(FVH7GKJ+J~ z?;BqkYlugom$LF6on(I#k3;8{AzoIOteWts%$*$?Iy%7m6I$i8&w6an(Bt)1>YIBO zNlDsy3}eMR=WWM}uF~R^w!tjr786{yDKehu@BNk+V?F0ln`*)_I~RQC3A*ZP^7ARe z?-G7Bb6u#Q`Ig7;-#+`f)Dve{GWc@(oPU$|MF*Qsn$?F^>vRqA6;4&+StW~~y` z!pr$%y2@c-_?nzym};BBpPl){Hn^

SyucWH{7#WJ53 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 mAe_q>^j<<^^$NH-`WBo)aKLpmh~ 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±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 TJix4l_lgIvyz<(YUw`mFI5(Z_ From 19f7d66c4ff07ab3bb9e3464ba3b340deeaa798d Mon Sep 17 00:00:00 2001 From: carlos Date: Wed, 6 Mar 2024 13:17:53 -0500 Subject: [PATCH 2/4] Jupyter: Web generation --- doc/web/images/putty1.png | Bin 20370 -> 25799 bytes doc/web/images/putty2.png | Bin 22675 -> 26211 bytes doc/web/index.html | 667 ++++++++++++++++++++------------------ doc/web/speed-manual.css | 14 +- 4 files changed, 356 insertions(+), 325 deletions(-) diff --git a/doc/web/images/putty1.png b/doc/web/images/putty1.png index c2411c4b46ed968d7dfa7af8682b94b9b2bf0392..4d9a21b0fcda6b533a94537e639034dbabeac143 100644 GIT binary patch literal 25799 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

h-8}|QD~P|dVO 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 W>D>87;Gd5i(Ym3lmUG?m#eV^!7J{$< literal 20370 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

SyucWH{7#WJ53 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 mAe_q>^j<<^ Services (AITS) at GCS, Concordia University, Montreal, Canada.

-

Contents

+

Contents

- 1 Introduction -
 1.1 Resources -
 1.2 Team -
 1.3 What Speed Consists of -
 1.4 What Speed Is Ideal For -
 1.5 What Speed Is Not -
 1.6 Available Software -
 1.7 Requesting Access -
2 Job Management -
 2.1 Getting Started -
  2.1.1 SSH Connections -
  2.1.2 Environment Set Up -
 2.2 Job Submission Basics -
  2.2.1 Directives -
  2.2.2 Module Loads -
  2.2.3 User Scripting -
 2.3 Sample Job Script -
 2.4 Common Job Management Commands Summary -
 2.5 Advanced sbatch Options - - - -
 2.6 Array Jobs -
 2.7 Requesting Multiple Cores (i.e., Multithreading Jobs) -
 2.8 Interactive Jobs -
  2.8.1 Command Line -
  2.8.2 Graphical Applications -
  2.8.3 Jupyter Notebooks -
 2.9 Scheduler Environment Variables -
 2.10 SSH Keys For MPI -
 2.11 Creating Virtual Environments -
  2.11.1 Anaconda -
  2.11.2 Python -
 2.12 Example Job Script: Fluent -
 2.13 Example Job: efficientdet -
 2.14 Java Jobs -
 2.15 Scheduling On The GPU Nodes -
  2.15.1 CUDA -
  2.15.2 Special Notes for sending CUDA jobs to the GPU Queue -
  2.15.3 OpenISS Examples -
 2.16 Singularity Containers -
3 Conclusion -
 3.1 Important Limitations -
 3.2 Tips/Tricks -
 3.3 Use Cases -
A History -
 A.1 Acknowledgments -
 A.2 Migration from UGE to SLURM -
 A.3 Phases -
  A.3.1 Phase 4 -
  A.3.2 Phase 3 -
  A.3.3 Phase 2 -
  A.3.4 Phase 1 -
B Frequently Asked Questions -
 B.1 Where do I learn about Linux? -
 B.2 How to use the “bash shell” on Speed? -
  B.2.1 How do I set bash as my login shell? -
  B.2.2 How do I move into a bash shell on Speed? -
  B.2.3 How do I use the bash shell in an interactive session on Speed? -
  B.2.4 How do I run scripts written in bash on Speed? -
 B.3 How to resolve “Disk quota exceeded” errors? -
  B.3.1 Probable Cause -
  B.3.2 Possible Solutions -
  B.3.3 Example of setting working directories for COMSOL -
  B.3.4 Example of setting working directories for Python Modules -
 B.4 How do I check my job’s status? -
 B.5 Why is my job pending when nodes are empty? -
  B.5.1 Disabled nodes -
  B.5.2 Error in job submit request. -
C Sister Facilities - - - -
Annotated Bibliography + 1 Introduction +
1.1 Resources +
1.2 Team +
1.3 What Speed Consists of +
1.4 What Speed Is Ideal For +
1.5 What Speed Is Not +
1.6 Available Software +
1.7 Requesting Access +
2 Job Management +
2.1 Getting Started +
2.1.1 SSH Connections +
2.1.2 Environment Set Up +
2.2 Job Submission Basics +
2.2.1 Directives +
2.2.2 Module Loads +
2.2.3 User Scripting +
2.3 Sample Job Script +
2.4 Common Job Management Commands Summary +
2.5 Advanced sbatch Options + + + +
2.6 Array Jobs +
2.7 Requesting Multiple Cores (i.e., Multithreading Jobs) +
2.8 Interactive Jobs +
2.8.1 Command Line +
2.8.2 Graphical Applications +
2.8.3 Jupyter Notebooks +
2.9 Scheduler Environment Variables +
2.10 SSH Keys For MPI +
2.11 Creating Virtual Environments +
2.11.1 Anaconda +
2.11.2 Python +
2.12 Example Job Script: Fluent +
2.13 Example Job: efficientdet +
2.14 Java Jobs +
2.15 Scheduling On The GPU Nodes +
2.15.1 P6 on Multi-GPU, Multi-Node +
2.15.2 CUDA +
2.15.3 Special Notes for sending CUDA jobs to the GPU Queue +
2.15.4 OpenISS Examples +
2.16 Singularity Containers +
3 Conclusion +
3.1 Important Limitations +
3.2 Tips/Tricks +
3.3 Use Cases +
A History +
A.1 Acknowledgments +
A.2 Migration from UGE to SLURM +
A.3 Phases +
A.3.1 Phase 4 +
A.3.2 Phase 3 +
A.3.3 Phase 2 +
A.3.4 Phase 1 +
B Frequently Asked Questions +
B.1 Where do I learn about Linux? +
B.2 How to use the “bash shell” on Speed? +
B.2.1 How do I set bash as my login shell? +
B.2.2 How do I move into a bash shell on Speed? +
B.2.3 How do I use the bash shell in an interactive session on Speed? +
B.2.4 How do I run scripts written in bash on Speed? +
B.3 How to resolve “Disk quota exceeded” errors? +
B.3.1 Probable Cause +
B.3.2 Possible Solutions +
B.3.3 Example of setting working directories for COMSOL +
B.3.4 Example of setting working directories for Python Modules +
B.4 How do I check my job’s status? +
B.5 Why is my job pending when nodes are empty? +
B.5.1 Disabled nodes +
B.5.2 Error in job submit request. + + + +
C Sister Facilities +
Annotated Bibliography
-

1 Introduction

+

1 Introduction

This document contains basic information required to use “Speed” as well as tips and tricks, examples, and references to projects and papers that have used Speed. User contributions of sample jobs and/ or references are welcome. Details are sent to the hpc-ml mailing list.

Note: On October 20, 2023 with workshops prior, we have completed migration to SLURM (see -Figure 2) from Grid Engine (UGE/AGE) as our job scheduler, so this manual has been ported to use -SLURM’s syntax and commands. If you are a long-time GE user, see Appendix A.2 key highlights of +Figure 2) from Grid Engine (UGE/AGE) as our job scheduler, so this manual has been ported to use +SLURM’s syntax and commands. If you are a long-time GE user, see Appendix A.2 key highlights of the move needed to translate your GE jobs to SLURM as well as environment changes. These are also elaborated throughout this document and our examples as well in case you desire to re-read it. @@ -134,7 +135,7 @@

1

-

1.1 Resources

+

1.1 Resources

  • Our public GitHub page where the manual and sample job scripts are maintained (pull-requests (PRs), subject to review, are welcome):
    https://github.com/NAG-DevOps/speed-hpc
    https://github.com/NAG-DevOps/speed-hpc/pulls @@ -150,7 +151,7 @@

    1.1

    -

    1.2 Team

    +

    1.2 Team

    Speed is supported by:

      @@ -162,10 +163,10 @@

      1.2

      We receive support from the rest of AITS teams, such as NAG, SAG, FIS, and DOG.
      https://www.concordia.ca/ginacody/aits.html

      -

      1.3 What Speed Consists of

      +

      1.3 What Speed Consists of

      • Twenty four (24) 32-core compute nodes, each with 512 GB of memory and approximately - 1 TB of local volatile-scratch disk space (pictured in Figure 1). + 1 TB of local volatile-scratch disk space (pictured in Figure 1).
      • Twelve (12) NVIDIA Tesla P6 GPUs, with 16 GB of memory (compatible with the CUDA, OpenGL, OpenCL, and Vulkan APIs). @@ -180,7 +181,7 @@

        1

      • One AMD FirePro S7150 GPU, with 8 GB of memory (compatible with the Direct X, OpenGL, OpenCL, and Vulkan APIs).
      -
      +
      @@ -196,7 +197,7 @@

      1

      -
      +
      @@ -212,7 +213,7 @@

      1

      -

      1.4 What Speed Is Ideal For

      +

      1.4 What Speed Is Ideal For

      • To design and develop, test and run parallel, batch, and other algorithms, scripts with partial data sets. “Speed” has been optimised for compute jobs that are multi-core aware, @@ -245,7 +246,7 @@

      • Non-CUDA GPU jobs using OpenCL (speed-19 and -01|03|05|17|25|27|37-43).

      -

      1.5 What Speed Is Not

      +

      1.5 What Speed Is Not

      • Speed is not a web host and does not host websites.
      • @@ -255,13 +256,13 @@

        1.5
      • Does not run Kubernetes or other container orchestration software.
      • Does not run Docker. (Note: Speed does run Singularity and many Docker containers - can be converted to Singularity containers with a single command. See Section 2.16.) + can be converted to Singularity containers with a single command. See Section 2.16.)
      • Speed is not for jobs executed outside of the scheduler. (Jobs running outside of the scheduler will be killed and all data lost.)

      -

      1.6 Available Software

      +

      1.6 Available Software

      We have a great number of open-source software available and installed on “Speed” – various Python, CUDA versions, C++/Java compilers, OpenGL, OpenFOAM, OpenCV, TensorFlow, OpenMPI, OpenISS, MARF [24], etc. There are also a number of commercial packages, subject to @@ -282,7 +283,7 @@

      1.6
    • Fluent (19.2, ...)
    • -
    • Singularity containers (see Section 2.16) can run other operating systems and Linux +
    • Singularity containers (see Section 2.16) can run other operating systems and Linux distributions, like Ubuntu’s, as well as converted Docker containers.
  • We do our best to accommodate custom software requests. Python environments can use @@ -309,8 +310,8 @@

    1.6

    -

    1.7 Requesting Access

    -

    After reviewing the “What Speed is” (Section 1.4) and “What Speed is Not” (Section 1.5), request +

    1.7 Requesting Access

    +

    After reviewing the “What Speed is” (Section 1.4) and “What Speed is Not” (Section 1.5), request access to the “Speed” cluster by emailing: rt-ex-hpc AT encs.concordia.ca. CGS ENCS faculty and staff may request access directly. Students must include the following in their message: @@ -331,7 +332,7 @@

    1.7 service.

    -

    2 Job Management

    +

    2 Job Management

    In these instructions, anything bracketed like so, <>, indicates a label/value to be replaced (the entire bracketed term needs replacement). We use SLURM as the Workload Manager. It supports primarily two types of jobs: batch and interactive. Batch jobs are used to run unattended @@ -347,23 +348,23 @@

    2

    We use srun for every complex compute step inside the script. Use interactive jobs to set up virtual environments, compilation, and debugging. salloc is preferred; allows multiple steps. srun can start -interactive jobs as well (see Section 2.8). Required and common job parameters: job-name (J), +interactive jobs as well (see Section 2.8). Required and common job parameters: job-name (J), mail-type, mem, ntasks (n), cpus-per-task, account, -p (partition).

    -

    2.1 Getting Started

    -

    Before getting started, please review the “What Speed is” (Section 1.4) and “What Speed is Not” -(Section 1.5). Once your GCS ENCS account has been granted access to “Speed”, use +

    2.1 Getting Started

    +

    Before getting started, please review the “What Speed is” (Section 1.4) and “What Speed is Not” +(Section 1.5). Once your GCS ENCS account has been granted access to “Speed”, use your GCS ENCS account credentials to create an SSH connection to speed (an alias for speed-submit.encs.concordia.ca). All users are expected to have a basic understanding of Linux -and its commonly used commands (see Appendix B.1 for resources). +and its commonly used commands (see Appendix B.1 for resources).

    -
    2.1.1 SSH Connections
    +
    2.1.1 SSH Connections

    Requirements to create connections to Speed:

    1. An active GCS ENCS user account, which has permission to connect to Speed (see - Section 1.7). + Section 1.7).
    2. If you are off campus, an active connection to Concordia’s VPN. Accessing Concordia’s VPN requires a Concordia netname. @@ -387,7 +388,7 @@
      2.1.1

      Read the AITS FAQ: How do I securely connect to a GCS server?

      -
      2.1.2 Environment Set Up
      +
      2.1.2 Environment Set Up

      After creating an SSH connection to Speed, you will need to make sure the srun, sbatch, and salloc commands are available to you. Type the command name at the command prompt and press enter. If the command is not available, e.g., (“command not found”) is returned, you need to @@ -407,11 +408,11 @@

      2.

      Tip: the default shell for GCS ENCS users is tcsh. If you would like to use bash, please contact rt-ex-hpc AT encs.concordia.ca.

      Note: If a “command not found” error appears after you log in to speed, your user account many -have probably have defunct Grid Engine environment commands. See Appendix A.2 to learn how to +have probably have defunct Grid Engine environment commands. See Appendix A.2 to learn how to prevent this error on login.

      -

      2.2 Job Submission Basics

      +

      2.2 Job Submission Basics

      Preparing your job for submission is fairly straightforward. Start by basing your job script on one of the examples available in the src/ directory of our GitHub’s (https://github.com/NAG-DevOps/speed-hpc). Job scripts are broken into four main sections: @@ -447,7 +448,7 @@

      2.

      -
      2.2.1 Directives
      +
      2.2.1 Directives

      Directives are comments included at the beginning of a job script that set the shell and the options for the job scheduler. The shebang directive is always the first line of a script. In your job script, this directive sets which shell your script’s commands will run in. On “Speed”, we recommend that your @@ -548,7 +549,7 @@

      2.2.1

-
2.2.2 Module Loads
+
2.2.2 Module Loads

As your job will run on a compute or GPU “Speed” node, and not the submit node, any software that is needed must be loaded by the job script. Software is loaded within the script just as it would be from the command line. @@ -611,7 +612,7 @@

2.2.2

Typically, only the module load command will be used in your script.

-
2.2.3 User Scripting
+
2.2.3 User Scripting

The last part the job script is the scripting that will be executed by the job. This part of the job script includes all commands required to set up and execute the task your script has been written to do. Any Linux command can be used at this step. This section can @@ -638,11 +639,11 @@

2.2.3 job’s end.

-

2.3 Sample Job Script

-

Now, let’s look at a basic job script, tcsh.sh in Figure 3 (you can copy it from our GitHub page or +

2.3 Sample Job Script

+

Now, let’s look at a basic job script, tcsh.sh in Figure 3 (you can copy it from our GitHub page or from /home/n/nul-uge).

-
+
@@ -721,7 +722,7 @@

2.3 output of the, module list command. Important information is often written to this file.

-

2.4 Common Job Management Commands Summary

+

2.4 Common Job Management Commands Summary

Here are useful job-management commands:

    @@ -782,7 +783,7 @@

-

2.5 Advanced sbatch Options

+

2.5 Advanced sbatch Options

In addition to the basic sbatch options presented earlier, there are a few additional options that are generally useful:

@@ -815,7 +816,7 @@

./tcsh.sh).

-

2.6 Array Jobs

+

2.6 Array Jobs

Array jobs are those that start a batch job or a parallel job multiple times. Each iteration of the job array is called a task and receives a unique job ID. Only supported for batch jobs; submit time \(< 1\) second, compared to repeatedly submitting the same regular job over and over even from a @@ -860,7 +861,7 @@

2.6

-

2.7 Requesting Multiple Cores (i.e., Multithreading Jobs)

+

2.7 Requesting Multiple Cores (i.e., Multithreading Jobs)

For jobs that can take advantage of multiple machine cores, up to 32 cores (per job) can be requested in your script with: @@ -920,13 +921,13 @@

-

2.8 Interactive Jobs

+

2.8 Interactive Jobs

Job sessions can be interactive, instead of batch (script) based. Such sessions can be useful for testing, debugging, and optimising code and resource requirements, conda or python virtual environments setup, or any likewise preparatory work prior to batch submission.

-
2.8.1 Command Line
+
2.8.1 Command Line

To request an interactive job session, use, salloc [options], similarly to a sbatch command-line job, e.g., @@ -960,7 +961,7 @@

2.8.1

-
2.8.2 Graphical Applications
+
2.8.2 Graphical Applications

If you need to run an on-Speed graphical-based UI application (e.g., MALTLAB, Abaqus CME, etc.), or an IDE (PyCharm, VSCode, Eclipse) to develop and test your job’s code interactively you need to enable X11-forwarding from your client machine to speed then to the compute node. To do @@ -998,7 +999,7 @@

Launch your graphical application:

module load the required version, then matlab, or abaqus cme, etc.

-

Here’s an example of starting PyCharm (see Figure 4), of which we made a sample local +

Here’s an example of starting PyCharm (see Figure 4), of which we made a sample local installation. You can make a similar install under your own directory. If using VSCode, it’s currently only supported with the --no-sandbox option. @@ -1020,7 +1021,7 @@

-
+
@@ -1036,9 +1037,9 @@
2.8.3 Jupyter Notebooks
+
2.8.3 Jupyter Notebooks

This is an example of running Jupyter notebooks together with Singularity (more on Singularity see -Section 2.16). Here we are using one of the OpenISS-derived containers (see Section 2.15.3 as +Section 2.16). Here we are using one of the OpenISS-derived containers (see Section 2.15.4 as well).

    @@ -1063,19 +1064,19 @@
    2.8

  1. Create an ssh tunnel between your computer and the node (speed-XX) where Jupyter is - running (Using speed-submit as a “jump server”) (Preferably: PuTTY, see Figure 5 and - Figure 6) + running (Using speed-submit as a “jump server”) (Preferably: PuTTY, see Figure 5 and + Figure 6)

    -     ssh -L 8888:localhost:8888 speed-XX
    +     ssh -L 8888:speed-XX:8888 YOUR_USER@speed-submit.encs.concordia.ca
     

    Don’t close the tunnel.

  2. -

    Open a browser, and copy your Jupyter’s token, in the screenshot example in Figure 7; each +

    Open a browser, and copy your Jupyter’s token, in the screenshot example in Figure 7; each time the token will be different, as it printed to you in the terminal. @@ -1088,7 +1089,7 @@

    2.8

  3. Work with your notebook.
-
+
@@ -1103,7 +1104,7 @@
2.8
-
+
@@ -1118,7 +1119,7 @@
2.8
-
+
@@ -1133,7 +1134,7 @@
2.8
-

2.9 Scheduler Environment Variables

+

2.9 Scheduler Environment Variables

The scheduler presents a number of environment variables that can be used in your jobs. You can invoke env or printenv in your job to know what hose are (most begin with the prefix SLURM). Some of the more useful ones are: @@ -1151,7 +1152,7 @@

$SLURM_JOB_NODELIST=nodes participating in your job. -
  • $SLURM_ARRAY_TASK_ID=for array jobs (see Section 2.6). +
  • $SLURM_ARRAY_TASK_ID=for array jobs (see Section 2.6).
  • See a more complete list here: @@ -1161,9 +1162,9 @@

    https://slurm.schedmd.com/srun.html#SECTION_OUTPUT-ENVIRONMENT-VARIABLES

  • -

    In Figure 8 is a sample script, using some of these. +

    In Figure 8 is a sample script, using some of these.

    -
    +
    @@ -1195,7 +1196,7 @@

    2.10 SSH Keys For MPI

    +

    2.10 SSH Keys For MPI

    Some programs effect their parallel processing via MPI (which is a communication protocol). An example of such software is Fluent. MPI needs to have ‘passwordless login’ set up, which means SSH keys. In your NFS-mounted home directory: @@ -1213,16 +1214,16 @@

    2.10 permissions by default).

    -

    2.11 Creating Virtual Environments

    +

    2.11 Creating Virtual Environments

    The following documentation is specific to the Speed HPC Facility at the Gina Cody School of Engineering and Computer Science. Virtual environments typically instantiated via Conda or Python. -Another option is Singularity detailed in Section 2.16. Usually, virtual environments are +Another option is Singularity detailed in Section 2.16. Usually, virtual environments are created once and before sending any job to the scheduler, so when sending the job to the scheduler we (1) activate the virtual environment, (2) use it, and (3) close it at the end of the job.

    -
    2.11.1 Anaconda
    +
    2.11.1 Anaconda

    To create an anaconda environment in your speed-scratch directory, use the prefix option when executing conda create. For example, to create an anaconda environment for a_user, execute the following at the command line: @@ -1231,13 +1232,14 @@

    2.11.1
    +module load anaconda3/2023.03/default
     conda create --prefix /speed-scratch/a_user/myconda
     
    -

    -

    Note: Without the prefix option, the conda create command creates the environment in a_user’s +

    +

    Note: Without the prefix option, the conda create command creates the environment in a_user’s home directory by default.

    -

    List Environments. +

    List Environments. To view your conda environments, type: conda info --envs @@ -1246,12 +1248,12 @@

    2.11.1 # conda environments: # -base                  *  /encs/pkg/anaconda3-2019.07/root +base                  *  /encs/pkg/anaconda3-2023.03/root                          /speed-scratch/a_user/myconda -

    +

    -

    Activate an Environment. +

    Activate an Environment. Activate the environment speedscratcha_usermyconda as follows @@ -1260,7 +1262,7 @@

    2.11.1 conda activate /speed-scratch/a_user/myconda -

    After activating your environment, add pip to your environment by using +

    After activating your environment, add pip to your environment by using @@ -1268,66 +1270,68 @@

    2.11.1 conda install pip -

    This will install pip and pip’s dependencies, including python, into the environment. +

    This will install pip and pip’s dependencies, including python, into the environment.

    • -

      A consolidated example using Conda: +

      A consolidated example using Conda:

      -     cd /speed-scratch/$USER
      -     srun --partition=p(s/g) -A Your_account --mem=10Gb --gpus=1 --pty /encs/bin/tcsh
      -     module load python/3.11.0/default
      -     conda create -p /speed-scratch/$USER/pytorch-env
      -     conda activate /speed-scratch/$USER/pytorch-env
      -     conda install python=3.11.0
      -     pip3 install torch torchvision torchaudio --index-url \
      -       https://download.pytorch.org/whl/cu117
      -     ....
      -     conda deactivate
      -     exit
      +        cd /speed-scratch/$USER
      +        srun --partition=p(s/g) -A Your_account --mem=10Gb --gpus=1 --pty /encs/bin/tcsh
      +        module load python/3.11.0/default
      +        conda create -p /speed-scratch/$USER/pytorch-env
      +        conda activate /speed-scratch/$USER/pytorch-env
      +        conda install python=3.11.0
      +        pip3 install torch torchvision torchaudio --index-url \
      +          https://download.pytorch.org/whl/cu117
      +        ....
      +        conda deactivate
      +        exit
      +       
       
      -

    -

    Important Note: pip (and pip3) are used to install modules from the python distribution while +

    +

    Important Note: pip (and pip3) are used to install modules from the python distribution while conda install installs modules from anaconda’s repository. -

    +

    -
    2.11.2 Python
    -

    Setting up a Python virtual environment is fairly straightforward. We have a simple example that use +

    2.11.2 Python
    +

    Setting up a Python virtual environment is fairly straightforward. We have a simple example that use a Python virtual environment:

    • -

      Using Python Venv +

      Using Python Venv

      -     cd /speed-scratch/$USER
      -     srun --partition=p(s/g) -A Your_account --mem=10Gb --gpus=1 --pty /encs/bin/tcsh
      -     module load python/3.9.1/default
      -     mkdir -p /speed-scratch/$USER/tmp
      -     setenv TMPDIR /speed-scratch/$USER/tmp
      -     setenv TMP /speed-scratch/$USER/tmp
      -     python -m venv $TMPDIR/testenv (testenv=name of the virtualEnv)
      -     source /speed-scratch/$USER/tmp/testenv/bin/activate.csh
      -     pip install modules…
      -     deactivate
      -     exit
      +        cd /speed-scratch/$USER
      +        srun --partition=p(s/g) -A Your_account --mem=10Gb --gpus=1 --pty /encs/bin/tcsh
      +        module load python/3.9.1/default
      +        mkdir -p /speed-scratch/$USER/tmp
      +        setenv TMPDIR /speed-scratch/$USER/tmp
      +        setenv TMP /speed-scratch/$USER/tmp
      +        python -m venv $TMPDIR/testenv (testenv=name of the virtualEnv)
      +        source /speed-scratch/$USER/tmp/testenv/bin/activate.csh
      +        pip install modules…
      +        deactivate
      +        exit
      +       
       
      -

      +

    • See, e.g., gurobi-with-python.sh
    -

    Important Note: partition ps is used for CPU jobs, partitions pg, pt are used for GPU jobs, no +

    Important Note: partition ps is used for CPU jobs, partitions pg, pt are used for GPU jobs, no need to use --gpus= when preparing environments for CPU jobs.

    -

    2.12 Example Job Script: Fluent

    -
    +

    2.12 Example Job Script: Fluent

    +
    @@ -1375,7 +1379,7 @@

    The job script in Figure 9 runs Fluent in parallel over 32 cores. Of note, we have requested +

    The job script in Figure 9 runs Fluent in parallel over 32 cores. Of note, we have requested e-mail notifications (--mail-type), are defining the parallel environment for, fluent, with, -t$SLURM_NTASKS and -g-cnf=$FLUENTNODES (very important), and are setting $TMPDIR as the in-job location for the “moment” rfile.out file (in-job, because the last line of the @@ -1385,7 +1389,7 @@

    Caveat: take care with journal-file file paths.

    -

    2.13 Example Job: efficientdet

    +

    2.13 Example Job: efficientdet

    The following steps describing how to create an efficientdet environment on Speed, were submitted by a member of Dr. Amer’s research group.

    @@ -1425,7 +1429,7 @@

    -

    2.14 Java Jobs

    +

    2.14 Java Jobs

    Jobs that call java have a memory overhead, which needs to be taken into account when assigning a value to --mem. Even the most basic java call, java -Xmx1G -version, will need to have, --mem=5G, with the 4-GB difference representing the memory overhead. Note that this memory @@ -1434,7 +1438,7 @@

    2.14 314G.

    -

    2.15 Scheduling On The GPU Nodes

    +

    2.15 Scheduling On The GPU Nodes

    The primary cluster has two GPU nodes, each with six Tesla (CUDA-compatible) P6 cards: each card has 2048 cores and 16GB of RAM. Though note that the P6 is mainly a single-precision card, so unless you need the GPU double precision, double-precision calculations will be faster on a CPU @@ -1530,48 +1534,66 @@

    -
    2.15.1 CUDA
    -

    When calling CUDA within job scripts, it is important to create a link to the desired CUDA libraries and +

    2.15.1 P6 on Multi-GPU, Multi-Node
    +

    As described lines above, P6 cards are not compatible with Distribute and DataParallel functions +(Pytorch, Tensorflow) when running on Multi-GPUs. One workaround is to run the job in +Multi-node, single GPU per node; per example: + + + +

    +
    +#SBATCH --nodes=2
    +#SBATCH --gpus-per-node=1
    +
    +

    +

    On P6 nodes: speed-05, speed-17, speed-01 +

    The example: pytorch-multinode-multigpu.sh illustrates a job for training on Multi-nodes, +Multi-GPUs +

    +

    +
    2.15.2 CUDA
    +

    When calling CUDA within job scripts, it is important to create a link to the desired CUDA libraries and set the runtime link path to the same libraries. For example, to use the cuda-11.5 libraries, specify the following in your Makefile.

    -
    +   
     -L/encs/pkg/cuda-11.5/root/lib64 -Wl,-rpath,/encs/pkg/cuda-11.5/root/lib64
     
    -

    -

    In your job script, specify the version of gcc to use prior to calling cuda. For example: module +

    +

    In your job script, specify the version of gcc to use prior to calling cuda. For example: module load gcc/8.4 or module load gcc/9.3 -

    +

    -
    2.15.2 Special Notes for sending CUDA jobs to the GPU Queue
    -

    Interactive jobs (Section 2.8) must be submitted to the GPU partition in order to compile and link. +

    2.15.3 Special Notes for sending CUDA jobs to the GPU Queue
    +

    Interactive jobs (Section 2.8) must be submitted to the GPU partition in order to compile and link. We have several versions of CUDA installed in:

    -
    +   
     /encs/pkg/cuda-11.5/root/
     /encs/pkg/cuda-10.2/root/
     /encs/pkg/cuda-9.2/root
     
    -

    -

    For CUDA to compile properly for the GPU partition, edit your Makefile replacing +

    +

    For CUDA to compile properly for the GPU partition, edit your Makefile replacing usrlocalcuda with one of the above. -

    +

    -
    2.15.3 OpenISS Examples
    -

    These represent more comprehensive research-like examples of jobs for computer vision and other +

    2.15.4 OpenISS Examples
    +

    These represent more comprehensive research-like examples of jobs for computer vision and other tasks with a lot longer runtime (a subject to the number of epochs and other parameters) derive from the actual research works of students and their theses. These jobs require the use of CUDA and GPUs. These examples are available as “native” jobs on Speed and as Singularity containers.

    -

    OpenISS and REID - +

    OpenISS and REID + The example openiss-reid-speed.sh illustrates a job for a computer-vision based person re-identification (e.g., motion capture-based tracking for stage performance) part of the OpenISS project by Haotao Lai [10] using TensorFlow and Keras. The fork of the original repo [12] adjusted to @@ -1579,21 +1601,21 @@

    2.15

    -

    and its detailed description on how to run it on Speed is in the README: +

    and its detailed description on how to run it on Speed is in the README:

    -

    OpenISS and YOLOv3 - +

    OpenISS and YOLOv3 + The related code using YOLOv3 framework is in the the fork of the original repo [11] adjusted to to run on Speed is here:

    -

    Its example job scripts can run on both CPUs and GPUs, as well as interactively using +

    Its example job scripts can run on both CPUs and GPUs, as well as interactively using TensorFlow:

    -

    The detailed description on how to run these on Speed is in the README at: +

    The detailed description on how to run these on Speed is in the README at:

    -

    +

    -

    2.16 Singularity Containers

    -

    If the /encs software tree does not have a required software instantaneously available, another option +

    2.16 Singularity Containers

    +

    If the /encs software tree does not have a required software instantaneously available, another option is to run Singularity containers. We run EL7 flavor of Linux, and if some projects require Ubuntu or other distributions, there is a possibility to run that software as a container, including the ones translated from Docker. -

    The example lambdal-singularity.sh showcases an immediate use of a container built for the +

    The example lambdal-singularity.sh showcases an immediate use of a container built for the Ubuntu-based LambdaLabs software stack, originally built as a Docker image then pulled in as a Singularity container that is immediately available for use as that job example illustrates. The source material used for the docker image was our fork of their official repo: @@ -1621,12 +1643,12 @@

    2 -

    NOTE: It is important if you make your own containers or pull from DockerHub, use your +

    NOTE: It is important if you make your own containers or pull from DockerHub, use your /speed-scratch/$USER directory as these images may easily consume gigs of space in your home directory and you’d run out of quota there very fast. -

    TIP: To check for your quota, and the corresponding commands to find big files, see: +

    TIP: To check for your quota, and the corresponding commands to find big files, see: https://www.concordia.ca/ginacody/aits/encs-data-storage.html -

    We likewise built equivalent OpenISS (Section 2.15.3) containers from their Docker +

    We likewise built equivalent OpenISS (Section 2.15.4) containers from their Docker counter parts as they were used for teaching and research [14]. The images from https://github.com/NAG-DevOps/openiss-dockerfiles and their DockerHub equivalents https://hub.docker.com/u/openiss are found in the same public directory on @@ -1640,7 +1662,7 @@

    2

    -
    +   
     /speed-scratch/nag-public:
     
     openiss-cuda-conda-jupyter.sif
    @@ -1651,14 +1673,14 @@ 

    2 openiss-reid.sif openiss-xeyes.sif

    -

    -

    The currently recommended version of Singularity is singularity/3.10.4/default. -

    This section comprises an introduction to working with Singularity, its containers, and what can +

    +

    The currently recommended version of Singularity is singularity/3.10.4/default. +

    This section comprises an introduction to working with Singularity, its containers, and what can and cannot be done with Singularity on the ENCS infrastructure. It is not intended to be an exhaustive presentation of Singularity: the program’s authors do a good job of that here: https://www.sylabs.io/docs/. It also assumes that you have successfully installed Singularity on a user-managed/personal system (see next paragraph as to why). -

    Singularity containers are essentially either built from an existing container, or are built from +

    Singularity containers are essentially either built from an existing container, or are built from scratch. Building from scratch requires a recipe file (think of like a Dockerfile), and the operation must be effected as root. You will not have root on the ENCS infrastructure, so any built-from-scratch containers must be created on a user-managed/personal system. Root-level permissions are also @@ -1669,51 +1691,51 @@

    2 containers are essentially a directory in an existing read-write space, and squashfs containers are a read-only compressed “file”. Note that file-system containers cannot be resized once built. -

    Note that the default build is a squashfs one. Also note what Singularity’s authors have to say +

    Note that the default build is a squashfs one. Also note what Singularity’s authors have to say about the builds, “A common workflow is to use the “sandbox” mode for development of the container, and then build it as a default (squashfs) Singularity image when done.” File-system containers are considered to be, “legacy”, at this point in time. When built, a very small overhead is allotted to a file-system container (think, MB), and that cannot be changed. -

    Probably for the most of your workflows you might find there is a Docker container exists for your +

    Probably for the most of your workflows you might find there is a Docker container exists for your tasks, in this case you can use the docker pull function of Singularity as a part of you virtual environment setup as an interactive job allocation:

    -
    +   
     salloc --gpus=1 -n8 --mem=4Gb -t60
     cd /speed-scratch/$USER/
     singularity pull openiss-cuda-devicequery.sif docker://openiss/openiss-cuda-devicequery
     INFO:    Converting OCI blobs to SIF format
     INFO:    Starting build...
     
    -

    -

    This method can be used for converting Docker containers directly on Speed. On GPU nodes make +

    +

    This method can be used for converting Docker containers directly on Speed. On GPU nodes make sure to pass on the --nv flag to Singularity, so its containers could access the GPUs. See the linked example. -

    +

    -

    3 Conclusion

    -

    The cluster is, “first come, first served”, until it fills, and then job position in the queue is +

    3 Conclusion

    +

    The cluster is, “first come, first served”, until it fills, and then job position in the queue is based upon past usage. The scheduler does attempt to fill gaps, though, so sometimes a single-core job of lower priority will schedule before a multi-core job of higher priority, for example. -

    +

    -

    3.1 Important Limitations

    +

    3.1 Important Limitations

    • New users are restricted to a total of 32 cores: write to rt-ex-hpc@encs.concordia.ca if you need more temporarily (192 is the maximum, or, 6 jobs of 32 cores each).
    • Batch job sessions are a maximum of one week in length (only 24 hours, though, for - interactive jobs, see Section 2.8). + interactive jobs, see Section 2.8).
    • -

      Scripts can live in your NFS-provided home, but any substantial data need to be in your +

      Scripts can live in your NFS-provided home, but any substantial data need to be in your cluster-specific directory (located at /speed-scratch/<ENCSusername>/). -

      NFS is great for acute activity, but is not ideal for chronic activity. Any data that a job will +

      NFS is great for acute activity, but is not ideal for chronic activity. Any data that a job will read more than once should be copied at the start to the scratch disk of a compute node using $TMPDIR (and, perhaps, $SLURM_SUBMIT_DIR), any intermediary job data should be produced in $TMPDIR, and once a job is near to finishing, those data should be copied @@ -1733,7 +1755,7 @@

      3.

    -

    3.2 Tips/Tricks

    +

    3.2 Tips/Tricks

    • Files/scripts must have Linux line breaks in them (not Windows ones). Use file command to verify; and dos2unix command to convert. @@ -1754,24 +1776,24 @@

      3.2

    • E-mail, rt-ex-hpc AT encs.concordia.ca, with any concerns/questions.
    -

    +

    -

    3.3 Use Cases

    +

    3.3 Use Cases

    • -

      HPC Committee’s initial batch about 6 students (end of 2019):

      +

      HPC Committee’s initial batch about 6 students (end of 2019):

      • 10000 iterations job in Fluent finished in \(<26\) hours vs. 46 hours in Calcul Quebec
    • -

      NAG’s MAC spoofer analyzer [1817], such as https://github.com/smokhov/atsm/tree/master/examples/flucid +

      NAG’s MAC spoofer analyzer [1817], such as https://github.com/smokhov/atsm/tree/master/examples/flucid

      • compilation of forensic computing reasoning cases about false or true positives of hardware address spoofing in the labs
    • -

      S4 LAB/GIPSY R&D Group’s:

      +

      S4 LAB/GIPSY R&D Group’s:

      • MARFCAT and MARFPCAT (OSS signal processing and machine learning tools for vulnerable and weak code analysis and network packet capture analysis) [20156] @@ -1816,7 +1838,7 @@

        3.3 https://doi.org/10.1177/0278364920913945

      • -

        The work “Haotao Lai. An OpenISS framework specialization for deep learning-based +

        The work “Haotao Lai. An OpenISS framework specialization for deep learning-based person re-identification. Master’s thesis, Department of Computer Science and Software Engineering, Concordia University, Montreal, Canada, August 2019. https://spectrum.library.concordia.ca/id/eprint/985788/” using TensorFlow and Keras @@ -1830,15 +1852,15 @@

        3.3

      • Haotao Lai et al. OpenISS keras-yolo3 v0.1.0, June 2021. https://github.com/OpenISS/openiss-yolov3
      -

      and theirs forks by the team. +

      and theirs forks by the team.

    -

    +

    -

    A History

    -

    +

    A History

    +

    -

    A.1 Acknowledgments

    +

    A.1 Acknowledgments

    • The first 6 (to 6.5) versions of this manual and early UGE job script samples, Singularity testing and user support were produced/done by Dr. Scott Bunnell during his time at @@ -1848,102 +1870,102 @@

      A.1
    • Dr. Tariq Daradkeh, was our IT Instructional Specialist August 2022 to September 2023; working on the scheduler, scheduling research, end user support, and integration - of examples, such as YOLOv3 in Section 2.15.3.0 other tasks. We have a continued + of examples, such as YOLOv3 in Section 2.15.4.0 other tasks. We have a continued collaboration on HPC/scheduling research.
    -

    +

    -

    A.2 Migration from UGE to SLURM

    -

    For long term users who started off with Grid Engine here are some resources to make a transition +

    A.2 Migration from UGE to SLURM

    +

    For long term users who started off with Grid Engine here are some resources to make a transition and mapping to the job submission process.

    • -

      Queues are called “partitions” in SLURM. Our mapping from the GE queues to SLURM +

      Queues are called “partitions” in SLURM. Our mapping from the GE queues to SLURM partitions is as follows:

      -
      +     
            GE  => SLURM
            s.q    ps
            g.q    pg
            a.q    pa
       
      -

      We also have a new partition pt that covers SPEED2 nodes, which previously did not +

      We also have a new partition pt that covers SPEED2 nodes, which previously did not exist.

    • -

      Commands and command options mappings are found in Figure 10 from
      https://slurm.schedmd.com/rosetta.pdf
      https://slurm.schedmd.com/pdfs/summary.pdf
      Other related helpful resources from similar organizations who either used SLURM for awhile or +

      Commands and command options mappings are found in Figure 10 from
      https://slurm.schedmd.com/rosetta.pdf
      https://slurm.schedmd.com/pdfs/summary.pdf
      Other related helpful resources from similar organizations who either used SLURM for awhile or also transitioned to it:
      https://docs.alliancecan.ca/wiki/Running_jobs
      https://www.depts.ttu.edu/hpcc/userguides/general_guides/Conversion_Table_1.pdf
      https://docs.mpcdf.mpg.de/doc/computing/clusters/aux/migration-from-sge-to-slurm

      -
      - PIC -
      Figure 10: Rosetta Mappings of Scheduler Commands from SchedMD
      +
      + PIC +
      Figure 10: Rosetta Mappings of Scheduler Commands from SchedMD
    • -

      NOTE: If you have used UGE commands in the past you probably still have these lines there; +

      NOTE: If you have used UGE commands in the past you probably still have these lines there; they should now be removed, as they have no use in SLURM and will start giving “command not found” errors on login when the software is removed: -

      csh/tcsh: Sample .tcshrc file: +

      csh/tcsh: Sample .tcshrc file:

      -
      +     
            # Speed environment set up
            if ($HOSTNAME == speed-submit.encs.concordia.ca) then
               source /local/pkg/uge-8.6.3/root/default/common/settings.csh
            endif
       
      -

      -

      Bourne shell/bash: Sample .bashrc file: +

      +

      Bourne shell/bash: Sample .bashrc file:

      -
      +     
            # Speed environment set up
            if [ $HOSTNAME = "speed-submit.encs.concordia.ca" ]; then
                . /local/pkg/uge-8.6.3/root/default/common/settings.sh
                printenv ORGANIZATION | grep -qw ENCS || . /encs/Share/bash/profile
            fi
       
      -

      -

      Note that you will need to either log out and back in, or execute a new shell, for the +

      +

      Note that you will need to either log out and back in, or execute a new shell, for the environment changes in the updated .tcshrc or .bashrc file to be applied (important).

    -

    +

    -

    A.3 Phases

    -

    Brief summary of Speed evolution phases. -

    +

    A.3 Phases

    +

    Brief summary of Speed evolution phases. +

    -
    A.3.1 Phase 4
    -

    Phase 4 had 7 SuperMicro servers with 4x A100 80GB GPUs each added, dubbed as “SPEED2”. We +

    A.3.1 Phase 4
    +

    Phase 4 had 7 SuperMicro servers with 4x A100 80GB GPUs each added, dubbed as “SPEED2”. We also moved from Grid Engine to SLURM. -

    +

    -
    A.3.2 Phase 3
    -

    Phase 3 had 4 vidpro nodes added from Dr. Amer totalling 6x P6 and 6x V100 GPUs +

    A.3.2 Phase 3
    +

    Phase 3 had 4 vidpro nodes added from Dr. Amer totalling 6x P6 and 6x V100 GPUs added. -

    +

    -
    A.3.3 Phase 2
    -

    Phase 2 saw 6x NVIDIA Tesla P6 added and 8x more compute nodes. The P6s replaced 4x of FirePro +

    A.3.3 Phase 2
    +

    Phase 2 saw 6x NVIDIA Tesla P6 added and 8x more compute nodes. The P6s replaced 4x of FirePro S7150. -

    +

    -
    A.3.4 Phase 1
    -

    Phase 1 of Speed was of the following configuration: +

    A.3.4 Phase 1
    +

    Phase 1 of Speed was of the following configuration:

    • Sixteen, 32-core nodes, each with 512 GB of memory and approximately 1 TB of @@ -1953,20 +1975,20 @@
      A.3.4

    -

    B Frequently Asked Questions

    +

    B Frequently Asked Questions

    -

    B.1 Where do I learn about Linux?

    +

    B.1 Where do I learn about Linux?

    All Speed users are expected to have a basic understanding of Linux and its commonly used commands.

    -
    Software Carpentry
    +
    Software Carpentry

    Software Carpentry provides free resources to learn software, including a workshop on the Unix shell. https://software-carpentry.org/lessons/

    -
    Udemy
    +
    Udemy

    There are a number of Udemy courses, including free ones, that will assist you in learning Linux. Active Concordia faculty, staff and students have access to Udemy courses. The course Linux Mastery: Master the Linux Command Line in 11.5 Hours is a good starting point for @@ -1977,35 +1999,35 @@

    Udemy

    -

    B.2 How to use the “bash shell” on Speed?

    -

    This section describes how to use the “bash shell” on Speed. Review Section 2.1.2 to ensure that your +

    B.2 How to use the “bash shell” on Speed?

    +

    This section describes how to use the “bash shell” on Speed. Review Section 2.1.2 to ensure that your bash environment is set up.

    -
    B.2.1 How do I set bash as my login shell?
    +
    B.2.1 How do I set bash as my login shell?

    In order to set your default login shell to bash on Speed, your login shell on all GCS servers must be changed to bash. To make this change, create a ticket with the Service Desk (or email help at concordia.ca) to request that bash become your default login shell for your ENCS user account on all GCS servers.

    -
    B.2.2 How do I move into a bash shell on Speed?
    +
    B.2.2 How do I move into a bash shell on Speed?

    To move to the bash shell, type bash at the command prompt. For example:

    -
    -[speed-submit] [/home/a/a_user] > bash
    -bash-4.4$ echo $0
    -bash
    +   
    + [speed-submit] [/home/a/a_user] > bash
    + bash-4.4$ echo $0
    + bash
     

    Note how the command prompt changed from [speed-submit] [/home/a/a_user] > to bash-4.4$ after entering the bash shell.

    -
    B.2.3 How do I use the bash shell in an interactive session on Speed?
    +
    B.2.3 How do I use the bash shell in an interactive session on Speed?

    Below are examples of how to use bash as a shell in your interactive job sessions with both the salloc and srun commands.

    @@ -2015,41 +2037,41 @@
    srun --mem=50G -n 5 --pty /encs/bin/bash

    Note: Make sure the interactive job requests memory, cores, etc.

    -
    B.2.4 How do I run scripts written in bash on Speed?
    +
    B.2.4 How do I run scripts written in bash on Speed?

    To execute bash scripts on Speed:

      -
    1. Ensure that the shebang of your bash job script is #!/encs/bin/bash +
    2. Ensure that the shebang of your bash job script is #!/encs/bin/bash
    3. -
    4. Use the sbatch command to submit your job script to the scheduler.
    +
  • Use the sbatch command to submit your job script to the scheduler.
  • The Speed GitHub contains a sample bash job script.

    -

    B.3 How to resolve “Disk quota exceeded” errors?

    +

    B.3 How to resolve “Disk quota exceeded” errors?

    -
    B.3.1 Probable Cause
    +
    B.3.1 Probable Cause

    The “Disk quota exceeded” Error occurs when your application has run out of disk space to write to. On Speed this error can be returned when:

      -
    1. Your NFS-provided home is full and cannot be written to. You can verify this using quota +
    2. Your NFS-provided home is full and cannot be written to. You can verify this using quota and bigfiles commands.
    3. -
    4. The /tmp directory on the speed node your application is running on is full and cannot +
    5. The /tmp directory on the speed node your application is running on is full and cannot be written to.

    -
    B.3.2 Possible Solutions
    +
    B.3.2 Possible Solutions

      -
    1. Use the --chdir job script option to set the directory that the job script is submitted +
    2. Use the --chdir job script option to set the directory that the job script is submitted from the job working directory. The job working directory is the directory that the job will write output files in.
    3. -
    4. +
    5. The use local disk space is generally recommended for IO intensive operations. However, as the size of /tmp on speed nodes is 1TB it can be necessary for scripts to store temporary data elsewhere. Review the documentation for each module called within your script to determine @@ -2070,9 +2092,9 @@

      B.

      -
      -         mkdir -m 750 /speed-scratch/$USER/output
      -          
      +         
      +           mkdir -m 750 /speed-scratch/$USER/output
      +           
       

    6. @@ -2082,8 +2104,9 @@
      B.

      -
      -         mkdir -m 750 /speed-scratch/$USER/recovery
      +         
      +           mkdir -m 750 /speed-scratch/$USER/recovery
      +          
       

      @@ -2093,7 +2116,7 @@
      B.

      In the above example, $USER is an environment variable containing your ENCS username.

      -
      B.3.3 Example of setting working directories for COMSOL
      +
      B.3.3 Example of setting working directories for COMSOL
      • Create directories for recovery, temporary, and configuration files. For example, to create these @@ -2102,8 +2125,9 @@

        - mkdir -m 750 -p /speed-scratch/$USER/comsol/{recovery,tmp,config} +
        +      mkdir -m 750 -p /speed-scratch/$USER/comsol/{recovery,tmp,config}
        +      
         

      • @@ -2114,16 +2138,17 @@
        - -recoverydir /speed-scratch/$USER/comsol/recovery - -tmpdir /speed-scratch/$USER/comsol/tmp - -configuration/speed-scratch/$USER/comsol/config +
        +      -recoverydir /speed-scratch/$USER/comsol/recovery
        +      -tmpdir /speed-scratch/$USER/comsol/tmp
        +      -configuration/speed-scratch/$USER/comsol/config
        +      
         

      In the above example, $USER is an environment variable containing your ENCS username.

      -
      B.3.4 Example of setting working directories for Python Modules
      +
      B.3.4 Example of setting working directories for Python Modules

      By default when adding a python module the /tmp directory is set as the temporary repository for files downloads. The size of the /tmp directory on speed-submit is too small for pytorch. To add a python module

      @@ -2134,8 +2159,9 @@
      +
              mkdir /speed-scratch/$USER/tmp
      +      
       

      @@ -2145,8 +2171,9 @@
      +
              setenv TMPDIR /speed-scratch/$USER/tmp
      +      
       

      @@ -2154,17 +2181,17 @@
      In the above example, $USER is an environment variable containing your ENCS username.

      -

      B.4 How do I check my job’s status?

      +

      B.4 How do I check my job’s status?

      When a job with a job id of 1234 is running or terminated, the status of that job can be tracked using ‘sacct -j 1234’. squeue -j 1234 can show while the job is sitting in the queue as well. Long term statistics on the job after its terminated can be found using sstat -j 1234 after slurmctld purges it its tracking state into the database.

      -

      B.5 Why is my job pending when nodes are empty?

      +

      B.5 Why is my job pending when nodes are empty?

      -
      B.5.1 Disabled nodes
      +
      B.5.1 Disabled nodes

      It is possible that one or a number of the Speed nodes are disabled. Nodes are disabled if they require maintenance. To verify if Speed nodes are disabled, see if they are in a draining or drained state: @@ -2172,7 +2199,7 @@

      B.5.1

      -
      +   
       [serguei@speed-submit src] % sinfo --long --Node
       Thu Oct 19 21:25:12 2023
       NODELIST   NODES PARTITION       STATE CPUS    S:C:T MEMORY TMP_DISK WEIGHT AVAIL_FE REASON
      @@ -2221,17 +2248,17 @@ 
      B.5.1 and the disabled nodes have a state of idle.

      -
      B.5.2 Error in job submit request.
      +
      B.5.2 Error in job submit request.

      It is possible that your job is pending, because the job requested resources that are not available within Speed. To verify why job id 1234 is not running, execute ‘sacct -j 1234’. A summary of the reasons is available via the squeue command. -

      +

      -

      C Sister Facilities

      -

      Below is a list of resources and facilities similar to Speed at various capacities. Depending on your +

      C Sister Facilities

      +

      Below is a list of resources and facilities similar to Speed at various capacities. Depending on your research group and needs, they might be available to you. They are not managed by HPC/NAG of AITS, so contact their respective representatives.

      @@ -2250,7 +2277,7 @@

      C
    7. -

      There are various Lambda Labs other GPU servers and like computers acquired by individual +

      There are various Lambda Labs other GPU servers and like computers acquired by individual researchers; if you are member of their research group, contact them directly. These resources are not managed by us.

        @@ -2285,8 +2312,8 @@

        C -

        References

        +

        +

        References

        diff --git a/doc/web/speed-manual.css b/doc/web/speed-manual.css index d521c14..7166477 100644 --- a/doc/web/speed-manual.css +++ b/doc/web/speed-manual.css @@ -62,11 +62,11 @@ div.par-math-display, div.math-display{text-align:center;} body{ margin:1em auto; max-width:80ch; padding:0 .62em; } h1,h2,h3,h4,h5 { line-height:1.2; } @media print{ body{ max-width:none } } -.partHead, likepartHead { font-size: 2em; } -.chapterHead, likechapterHead { font-size: 1.7411em; } -.sectionHead, likesectionHead { font-size: 1.5157em; } -.subsectionHead, likesubsectionHead { font-size: 1.3195em; } -.subsubsectionHead, likesubsubsectionHead { font-size: 1.1487em; } +.partHead, .likepartHead { font-size: 2em; } +.chapterHead, .likechapterHead { font-size: 1.7411em; } +.sectionHead, .likesectionHead { font-size: 1.5157em; } +.subsectionHead, .likesubsectionHead { font-size: 1.3195em; } +.subsubsectionHead, .likesubsubsectionHead { font-size: 1.1487em; } @media (prefers-color-scheme: dark) { img[src^="speed-manual"]{filter: invert(1); } } li p.indent { text-indent: 0em } li p:first-child{ margin-top:0em; } @@ -168,6 +168,10 @@ div.author{white-space: nowrap;} div.abstract p {margin-left:5%; margin-right:5%;} div.abstract {width:100%;} .abstracttitle{text-align:center;margin-bottom:1em;} +.subsectionToc, .likesubsectionToc {margin-left:1em;} +.subsubsectionToc, .likesubsubsectionToc {margin-left:2em;} +.paragraphToc, .likeparagraphToc {margin-left:3em;} +.subparagraphToc, .likesubparagraphToc {margin-left:4em;} figure.float, div.figure {margin-left: auto; margin-right: auto;} figure.figure {text-align:center;} figcaption.caption {text-indent:-2em; margin-left:3em; margin-right:1em; text-align:center;} From a4cb04f57387edbd16cb14086eb162cb2a1572e5 Mon Sep 17 00:00:00 2001 From: carlos-encs <110119864+carlos-encs@users.noreply.github.com> Date: Wed, 6 Mar 2024 13:43:09 -0500 Subject: [PATCH 3/4] Jupyter example --- src/README.md | 16 ++ src/gpu-ml-model.ipynb | 467 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 483 insertions(+) create mode 100644 src/gpu-ml-model.ipynb diff --git a/src/README.md b/src/README.md index 3cf3ebe..57b3439 100644 --- a/src/README.md +++ b/src/README.md @@ -35,6 +35,7 @@ run certcain things. + [Configuration and execution](#configuration-and-execution) * [CUDA](#cuda) + [Special Notes for sending CUDA jobs to the GPU Partition (`pg`)](#special-notes-for-sending-cuda-jobs-to-the-gpu-partition-pg) + + [Jupyter notebook example: Jupyter-Pytorch-CUDA](#jupyter-example-gpu-pytorch) * [Python Modules](#python-modules) @@ -405,6 +406,21 @@ We have several versions of CUDA installed in: For CUDA to compile properly for the GPU queue, edit your `Makefile` replacing `/usr/local/cuda` with one of the above. + +### Jupyter notebook example: Jupyter-Pytorch-CUDA + +Example prepared to run on speed, extracted from: https://developers.redhat.com/learning/learn:openshift-data-science:configure-jupyter-notebook-use-gpus-aiml-modeling/resource/resources:how-examine-gpu-resources-pytorch + +From speed-submit: +- Download `gpu-ml-model.ipynb` from this github to your `/speed-scratch/$USER space` +- `salloc --mem=10Gb --gpus=1` + +From the node (interactive session): +- `module load singularity/3.10.4/default` +- `srun singularity exec -B $PWD\:/speed-pwd,/speed-scratch/$USER\:/my-speed-scratch,/nettemp --env SHELL=/bin/bash --nv /speed-scratch/nag-public/jupyter-pytorch-cuda.sif /bin/bash -c '/opt/conda/bin/jupyter notebook --no-browser --notebook-dir=/speed-pwd --ip="*" --port=8888 --allow-root'` +- Follow the steps described in: https://nag-devops.github.io/speed-hpc/#jupyter-notebooks +- When Jupyter is running on the browser, open `gpu-ml-model.ipynb` and run each cell + ## Python Modules diff --git a/src/gpu-ml-model.ipynb b/src/gpu-ml-model.ipynb new file mode 100644 index 0000000..b03dc70 --- /dev/null +++ b/src/gpu-ml-model.ipynb @@ -0,0 +1,467 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "{\n", + " \"cells\": [\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 1,\n", + " \"id\": \"5596f562-286a-4e39-aa35-723f210a84f3\",\n", + " \"metadata\": {},\n", + " \"outputs\": [],\n", + " \"source\": [\n", + " \"import torch\\n\",\n", + " \"import torch.nn as nn\\n\",\n", + " \"import torch.nn.functional as F\\n\",\n", + " \"from torch.utils.data import TensorDataset\\n\",\n", + " \"import torch.optim as optim\\n\",\n", + " \"import torchvision\\n\",\n", + " \"from torchvision import datasets\\n\",\n", + " \"import torchvision.transforms as transforms\\n\",\n", + " \"import matplotlib.pyplot as plt\\n\",\n", + " \"from tqdm import tqdm\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 2,\n", + " \"id\": \"5f8981b6-5194-4dce-891a-febe26d26ac3\",\n", + " \"metadata\": {},\n", + " \"outputs\": [\n", + " {\n", + " \"name\": \"stdout\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"cuda:0\\n\"\n", + " ]\n", + " }\n", + " ],\n", + " \"source\": [\n", + " \"device = torch.device(\\\"cuda:0\\\" if torch.cuda.is_available() else \\\"cpu\\\")\\n\",\n", + " \"print(device)\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 3,\n", + " \"id\": \"8462da36-52db-4fdb-8e0d-4b78aa5d2435\",\n", + " \"metadata\": {},\n", + " \"outputs\": [\n", + " {\n", + " \"data\": {\n", + " \"text/plain\": [\n", + " \"'NVIDIA A100-SXM4-80GB MIG 1g.20gb'\"\n", + " ]\n", + " },\n", + " \"execution_count\": 3,\n", + " \"metadata\": {},\n", + " \"output_type\": \"execute_result\"\n", + " }\n", + " ],\n", + " \"source\": [\n", + " \"torch.cuda.get_device_name(0)\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 4,\n", + " \"id\": \"afe4c059-c3dc-4a57-a657-a72fdf573b66\",\n", + " \"metadata\": {},\n", + " \"outputs\": [\n", + " {\n", + " \"name\": \"stdout\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"False , cpu\\n\"\n", + " ]\n", + " }\n", + " ],\n", + " \"source\": [\n", + " \"X_train = torch.IntTensor([0, 30, 50, 75, 70])\\n\",\n", + " \"print(X_train.is_cuda, \\\",\\\", X_train.device)\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 5,\n", + " \"id\": \"eda6746c-6c18-4350-888c-8651abad09af\",\n", + " \"metadata\": {},\n", + " \"outputs\": [\n", + " {\n", + " \"name\": \"stdout\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"True , cuda:0\\n\"\n", + " ]\n", + " }\n", + " ],\n", + " \"source\": [\n", + " \"X_train = X_train.cuda()\\n\",\n", + " \"# Alternative method: specify the device using the variable\\n\",\n", + " \"# X_train = X_train.to(device)\\n\",\n", + " \"# Confirm that the Tensor is on the GPU now\\n\",\n", + " \"print(X_train.is_cuda, \\\",\\\", X_train.device)\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 6,\n", + " \"id\": \"fa4778e3-4b9f-417f-bfc5-c317fc517066\",\n", + " \"metadata\": {},\n", + " \"outputs\": [],\n", + " \"source\": [\n", + " \"batch_size = 100\\n\",\n", + " \"\\n\",\n", + " \"class SimpleNet(nn.Module):\\n\",\n", + " \" def __init__(self):\\n\",\n", + " \" super(SimpleNet, self).__init__()\\n\",\n", + " \" self.fc1 = nn.Linear(784, 784)\\n\",\n", + " \" self.fc2 = nn.Linear(784, 10)\\n\",\n", + " \"\\n\",\n", + " \" def forward(self, x):\\n\",\n", + " \" x = x.view(batch_size, -1)\\n\",\n", + " \" x = self.fc1(x)\\n\",\n", + " \" x = F.relu(x)\\n\",\n", + " \" x = self.fc2(x)\\n\",\n", + " \" output = F.softmax(x, dim=1)\\n\",\n", + " \" return output\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 7,\n", + " \"id\": \"d4ad8baa-9e75-4c69-aca3-dd2fd82e0c38\",\n", + " \"metadata\": {},\n", + " \"outputs\": [],\n", + " \"source\": [\n", + " \"model = SimpleNet().to(device)\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 8,\n", + " \"id\": \"0b9f3e4c-d4d7-4894-b118-7fa10e220a58\",\n", + " \"metadata\": {},\n", + " \"outputs\": [],\n", + " \"source\": [\n", + " \"train_transform=transforms.Compose([\\n\",\n", + " \" transforms.ToTensor(),\\n\",\n", + " \" transforms.Normalize((0.1307,), (0.3081,))\\n\",\n", + " \" ])\\n\",\n", + " \"\\n\",\n", + " \"test_transform=transforms.Compose([\\n\",\n", + " \" transforms.ToTensor(),\\n\",\n", + " \" transforms.Normalize((0.1307,), (0.3081,)),\\n\",\n", + " \" ])\\n\",\n", + " \"\\n\",\n", + " \"# Set up a training data set\\n\",\n", + " \"trainset = datasets.FashionMNIST('./data', train=True, download=True,\\n\",\n", + " \" transform=train_transform)\\n\",\n", + " \"train_loader = torch.utils.data.DataLoader(trainset, batch_size=batch_size,\\n\",\n", + " \" shuffle=False, num_workers=2)\\n\",\n", + " \"\\n\",\n", + " \"# Set up a test data set\\n\",\n", + " \"testset = datasets.FashionMNIST('./data', train=False,\\n\",\n", + " \" transform=test_transform)\\n\",\n", + " \"test_loader = torch.utils.data.DataLoader(testset, batch_size=batch_size,\\n\",\n", + " \" shuffle=False, num_workers=2)\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 9,\n", + " \"id\": \"bcbdb9d0-2129-4ac5-a189-08489f19a63a\",\n", + " \"metadata\": {},\n", + " \"outputs\": [\n", + " {\n", + " \"data\": {\n", + " \"image/png\": \"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VM/zPO/gwYNecHCwd+2115bu+57nea+//ronIt4///lPz/NOnh8aNmzoDR48uMzzz5w50xMR7+uvv/Y87+SxVLNmTW/MmDFlHnfgwAGvRo0aZeKnjtvHHnvM17cJqBJOHU+n/y8kJMR79913yzw2Ly+vzH8XFRV57dq1866++urS2Jo1azwR8R566KEyj01OTuY6cw45843ftGnTJC4uTvr27SsiJ8c+DB8+XKZPn17mTzanDB8+XGrVqlX63z179hSRk382Pd3SpUslKSlJrrnmGpk1a5aEhIRYt+XDDz+U1q1bS6tWrUq/tcvIyCj989bSpUvP+HpCQ0NlyZIlsmTJElm8eLG8+eabEhkZKf3795dt27aVPm7BggVyxRVXSI8ePUpjkZGRcs8990haWlppF/CCBQukXr16ZX5PFRQUJA888IDk5OTIV199dcZtAvzVr18/iY2NLe1Oj4yMlNmzZ0vDhg0rdD2ff/65FBUVyUMPPSTVqv3f6W/MmDESHR1d+m1EQECADB06VBYsWFDmJxszZsyQhg0blh5PS5YskczMTBk5cmSZYzkwMFC6du1qPJbHjh1boa8JON/eeOON0uvP+++/L3379pXRo0fLrFmzSh8TFhZW+v8fPXpUsrKypGfPnrJ27drS+KJFi0RE5Le//W2Z57///vvP8StwmxPNHSdOnJDp06dL3759JTU1tTTetWtX+dvf/ib/+c9/5Nprry2Tc8kll5T571NF4NGjR8vECwoKZMCAAdKpUyeZOXNmud/XmWzfvl22bNlS+nu50x08ePCMzxEYGCj9+vUrE+vfv780b95cHn/8cfn4449FRGT37t3G0TWtW7cuXd6uXTvZvXu3NG/evMzF8PTHAefKG2+8IS1atJDq1atLXFyctGzZsty+WBFO7cctW7YsEw8ODpamTZuW2c+HDx8ur7zyisydO1duvfVWycnJkQULFsi9994rAQEBInLyWBb5v98kni46OrrMf1evXl0aNWpUYa8HqAxXXHFFmeaOkSNHSseOHeW+++6TgQMHSnBwsHz66afy5z//WdatW1fmt+unjh2Rk8djtWrVpEmTJmWe/0KdtnGhcKLw++KLL+Snn36S6dOny/Tp08stnzZtWrnC79Tvd07neV6Z/w4JCZH+/fvLnDlzZNGiRWfV0VRSUiKXXnqpvPTSS8bljRs3PuNzmDRq1EhatmwpX3/9tV/5QGU5/ULycwEBAeWOOxExflNfkbp16yYJCQkyc+ZMufXWW2XevHmSn59f5ne4JSUlInLyd36nmqt+7vR/CIaEhJyTghaoTNWqVZO+ffvKq6++Ktu3b5cjR47IoEGDpFevXjJp0iSpX7++BAUFyTvvvCMffPBBZW+u85wo/KZNmyZ169aVN954o9yyWbNmyezZs2XKlCllvpo+WwEBATJt2jS58cYbZejQobJw4cIzzrdLTEyU9evXyzXXXFPmXz8Vobi4uMyfpuLj4yUlJaXc47Zu3Vq6/NT/3bBhg5SUlJS5MJ3+uIreXuBMatWqZfyJhT/fQp/aj1NSUqRp06al8aKiIklNTS33LfqwYcPk1VdflWPHjsmMGTMkISFBunXrVro8MTFRRETq1q1bLhdwSXFxsYiI5OTkyMcffyyhoaGyePHiMj99euedd8rkxMfHS0lJiaSmpkrz5s1L4zt27Dg/G+2oi/6fnvn5+TJr1iwZOHCgDBkypNz/7rvvPsnOzpa5c+f6vY7g4GCZNWuWdOnSRW644QZZuXKl9fHDhg2T/fv3y9///nfj9ubm5vq1Hdu2bZOUlBS57LLLSmP9+/eXlStXyjfffFMay83NlbfeeksSEhKkTZs2pY87cOCAzJgxo/RxxcXFMnHiRImMjJTevXuLiJQO0/356AvgXEpMTJStW7fKoUOHSmPr16+X5cuX+/xc/fr1k+DgYHnttdfKfIv49ttvS1ZWVrluwuHDh0thYaFMnTpVFi1aJMOGDSuzPCkpSaKjo+XZZ581dvz/fJuBi9Xx48fls88+k+DgYGndurUEBgZKQEBAmW/l09LS5JNPPimTl5SUJCInxyv93MSJE8/5Nrvsov/Gb+7cuZKdnS2DBg0yLu/WrZvExsbKtGnTfBqlcrqwsDD59NNP5eqrr5brr79evvrqK2nXrp3xsXfccYfMnDlTfvOb38jSpUvlqquukhMnTsjWrVtl5syZsnjxYvXPXqcUFxfL+++/LyIn/9yUlpYmU6ZMkZKSkjJDqR977DH597//Lddff7088MADUrt2bZk6daqkpqbKxx9/XPrt3j333CNvvvmmJCcny5o1ayQhIUE++ugjWb58ubzyyisSFRVV+jrbtGkjM2bMkBYtWkjt2rWlXbt26msFfqm77rpLXnrpJUlKSpK7775bDh48KFOmTJG2bdvKsWPHfHqu2NhYefzxx2XChAly3XXXyaBBgyQlJUUmTZokXbp0KTcU/fLLL5dmzZrJk08+KYWFheXOEdHR0TJ58mS544475PLLL5cRI0ZIbGys7NmzR+bPny9XXXWVvP7667/4PQCqkoULF5b+NejgwYPywQcfyPbt2+Wxxx6T6OhoGTBggLz00kty3XXXya233ioHDx6UN954Q5o1ayYbNmwofZ5OnTrJ4MGD5ZVXXpHDhw9Lt27d5KuvviptUOQvTOdIJXcVn3M33HCDFxoa6uXm5qqPSU5O9oKCgryMjIzScS4vvPBCucfJae3lPx/nckpGRobXpk0br169et727ds9zys/zsXzTra2P/fcc17btm29kJAQr1atWl6nTp28CRMmeFlZWdbXZBrnEh0d7V1zzTXe559/Xu7xO3fu9IYMGeLVrFnTCw0N9a644grv008/Lfe49PR078477/Tq1KnjBQcHe5deeqn3zjvvlHvcihUrvE6dOnnBwcG03OMXOTUeYtWqVdbHvf/++17Tpk294OBgr0OHDt7ixYv9Gudyyuuvv+61atXKCwoK8uLi4ryxY8d6R48eNa77ySef9ETEa9asmbp9S5cu9ZKSkrwaNWp4oaGhXmJiopecnOytXr269DGm8wVwITGNcwkNDfU6dOjgTZ482SspKSl97Ntvv+01b97cCwkJ8Vq1auW988473tNPP+2dXnbk5uZ648aN82rXru1FRkZ6N910k5eSkuKJiPe///u/5/slOiHA8wy/mgYAAKgE69atk44dO8r777/P3W3OgYv+N34AAKBqys/PLxd75ZVXpFq1atKrV69K2KKL30X/Gz8AAFA1Pf/887JmzRrp27evVK9eXRYuXCgLFy6Ue+65x+/RZrDjT70AAKBSLFmyRCZMmCCbN2+WnJwcueSSS+SOO+6QJ5988qxuiADfUfgBAAA4gt/4AQAAOILCDwAAwBEUfgAAAI44619OMkEbF6Oq+BPXqnysBQYGGuM/vzVTZbnnnnuM8by8PDVn48aNxnijRo3UnJ49exrjp9+H9OdM98s+F7R9pyrs51VhG05XlY+1qqxly5bG+OWXX67mhIaGGuP79+9Xcz777DPfNkyq9jFwvpzptfKNHwAAgCMo/AAAABxB4QcAAOAICj8AAABHnPUAZ34E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eku++eYbufLKK9XHxcfHS0lJiWzfvl1at25dGk9PT5fMzEyJj48XEZEvv/xSDh8+LLNmzZJevXqVPi41NbXcc57N/DHgYubP9dAfHGvnBr/xO83SpUuN/0I59Vuhli1bnvVzBQYGyuDBg+Xjjz82fjtx6NChMo8VKfuvo++++06++eYb9fn79esn06dPl0WLFskdd9xR+q3ELbfcIoGBgTJhwoRyr8XzPDl8+PBZvwagKnr00UclIiJCRo8eLenp6eWW79y5U1599VXp37+/iEi5O2289NJLIiKlXfCm46+oqEgmTZpU7rkjIiL40y+cUJHXQ39ERERIZmbmOV2Hi/jG7zT333+/5OXlyc033yytWrWSoqIiWbFihcyYMUMSEhJ8boL43//9X1m6dKl07dpVxowZI23atJEjR47I2rVr5fPPP5cjR46IyMlvMGbNmiU333yzDBgwQFJTU2XKlCnSpk0bycnJUZ//pptuknfeeUd+/etfS3R0tLz55puSmJgof/7zn+Xxxx+XtLQ0uemmmyQqKkpSU1Nl9uzZcs8993DXD1zQEhMT5YMPPpDhw4dL69aty9y5Y8WKFfLhhx9KcnKyPPjggzJq1Ch56623Sv+cu3LlSpk6darcdNNN0rdvXxER6d69u9SqVUtGjRolDzzwgAQEBMh7771nvOh16tRJZsyYIQ8//LB06dJFIiMj5YYbbjjfbwFwzlX09dBXnTp1ks8//1xeeukladCggTRp0kS6du16TtfphErpJa7CFi5c6N11111eq1atvMjISC84ONhr1qyZd//993vp6emljxMRb9y4ceXy4+Pjy7Wfp6ene+PGjfMaN27sBQUFefXq1fOuueYa76233ip9TElJiffss8968fHxXkhIiNexY0fv008/9UaNGlVmdMTPx7n83KRJkzwR8X7/+9+Xxj7++GOvR48eXkREhBcREeG1atXKGzdunJeSklL6mN69e3tt27b19+0CKtW2bdu8MWPGeAkJCV5wcLAXFRXlXXXVVd7EiRNLR7AcP37cmzBhgtekSRMvKCjIa9y4sff444+XGdHieZ63fPlyr1u3bl5YWJjXoEGD0tEVIuItXbq09HE5OTnerbfe6tWsWdMTEUa74KJV0ddDbZzLgAEDjOvfunWr16tXLy8sLMwTEUa7VBDu1QsAAOAIfuMHAADgCAo/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ftnBtcyMP/X64OqrrxaRkxc27fdEycnJkpCQ4NfzT5o0Sdq2bSshISHSoEEDGTdunGRmZpYuv++++yQyMlLy8vLK5Y4cOVLq1asnJ06cKI0tXLhQevbsKRERERIVFSUDBgyQH374odz2RkZGys6dO6V///4SFRUlt912m1/bD4ic/LavVq1aMmDAABkyZIhMmzat3GPS0tIkICBAXnzxRXnrrbckMTFRQkJCpEuXLrJq1aozrmPdunUSGxsrffr0kZycHPVxhYWF8vTTT0uzZs0kJCREGjduLI8++qgUFhb6/frq1asnIieLwp/btWuXDB06VGrXri3h4eHSrVs3mT9/frn8gwcPyt133y1xcXESGhoql112mUydOrV0eVpamsTGxoqIyIQJE0r//Pbz3wkD50qfPn2kXbt2smbNGunVq5eEh4fLE088ISJn3ndFRL788kvjn4tPHfPvvvtuaezAgQNy5513SqNGjSQkJETq168vN954Y7nfv3Mtq1h84+eDnTt3iohITExMhT/3+PHjZcKECdKvXz8ZO3aspKSkyOTJk2XVqlWyfPlyCQoKkuHDh8sbb7wh8+fPl6FDh5bm5uXlybx58yQ5OVkCAwNF5ORX+qNGjZKkpCR57rnnJC8vTyZPniw9evSQ77//vkxxWlxcLElJSdKjRw958cUXL8h/2aHqmDZtmtxyyy0SHBwsI0eOLN2Pu3TpUu6xH3zwgWRnZ8u9994rAQEB8vzzz8stt9wiu3btkqCgIOPzr1q1SpKSkqRz584yZ84cCQsLMz6upKREBg0aJMuWLZN77rlHWrduLRs3bpSXX35Ztm3bJp988slZvZ6MjAwRETlx4oTs2rVL/ud//kdiYmJk4MCBpY9JT0+X7t27S15enjzwwAMSExMjU6dOlUGDBslHH30kN998s4iI5OfnS58+fWTHjh1y3333SZMmTeTDDz+U5ORkyczMlAcffFBiY2Nl8uTJMnbsWLn55pvllltuERGR9u3bn9X2Ar/U4cOH5frrr5cRI0bI7bffLnFxcWe17/pq8ODB8sMPP8j9998vCQkJcvDgQVmyZIns2bOn9BrFtewc8FDOO++844mI9/nnn3uHDh3y9u7d602fPt2LiYnxwsLCvH379nm9e/f2evfuXS531KhRXnx8fJmYiHhPP/10uedPTU31PM/zDh486AUH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\",\n", + " \"text/plain\": [\n", + " \"

        \"\n", + " ]\n", + " },\n", + " \"metadata\": {},\n", + " \"output_type\": \"display_data\"\n", + " }\n", + " ],\n", + " \"source\": [\n", + " \"labels_map = {\\n\",\n", + " \" 0: \\\"T-Shirt\\\",\\n\",\n", + " \" 1: \\\"Trouser\\\",\\n\",\n", + " \" 2: \\\"Pullover\\\",\\n\",\n", + " \" 3: \\\"Dress\\\",\\n\",\n", + " \" 4: \\\"Coat\\\",\\n\",\n", + " \" 5: \\\"Sandal\\\",\\n\",\n", + " \" 6: \\\"Shirt\\\",\\n\",\n", + " \" 7: \\\"Sneaker\\\",\\n\",\n", + " \" 8: \\\"Bag\\\",\\n\",\n", + " \" 9: \\\"Ankle Boot\\\",\\n\",\n", + " \"}\\n\",\n", + " \"\\n\",\n", + " \"# Plotting 9 random different items from the training data set, trainset.\\n\",\n", + " \"figure = plt.figure(figsize=(8, 8))\\n\",\n", + " \"for i in range(1, 3 * 3 + 1):\\n\",\n", + " \" sample_idx = torch.randint(len(trainset), size=(1,)).item()\\n\",\n", + " \" img, label = trainset[sample_idx]\\n\",\n", + " \" figure.add_subplot(3, 3, i)\\n\",\n", + " \" plt.title(labels_map[label])\\n\",\n", + " \" plt.axis(\\\"off\\\")\\n\",\n", + " \" plt.imshow(img.view(28,28), cmap=\\\"gray\\\")\\n\",\n", + " \"plt.show()\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 10,\n", + " \"id\": \"9ef4f746-f342-4adf-bce6-cfdef0c8a1df\",\n", + " \"metadata\": {},\n", + " \"outputs\": [],\n", + " \"source\": [\n", + " \"def train(model, device, train_loader, optimizer, epoch):\\n\",\n", + " \" \\\"\\\"\\\"Model training function\\\"\\\"\\\"\\n\",\n", + " \" model.train()\\n\",\n", + " \" print(device)\\n\",\n", + " \" for batch_idx, (data, target) in tqdm(enumerate(train_loader)):\\n\",\n", + " \" data, target = data.to(device), target.to(device)\\n\",\n", + " \" optimizer.zero_grad()\\n\",\n", + " \" output = model(data)\\n\",\n", + " \" loss = F.nll_loss(output, target)\\n\",\n", + " \" loss.backward()\\n\",\n", + " \" optimizer.step()\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 11,\n", + " \"id\": \"fd843896-03b1-4cb7-a5c0-b420bba2cff9\",\n", + " \"metadata\": {},\n", + " \"outputs\": [],\n", + " \"source\": [\n", + " \"def test(model, device, test_loader):\\n\",\n", + " \" \\\"\\\"\\\"Model evaluating function\\\"\\\"\\\"\\n\",\n", + " \" model.eval()\\n\",\n", + " \" test_loss = 0\\n\",\n", + " \" correct = 0\\n\",\n", + " \" with torch.no_grad():\\n\",\n", + " \" for data, target in test_loader:\\n\",\n", + " \" data, target = data.to(device), target.to(device)\\n\",\n", + " \" output = model(data)\\n\",\n", + " \" test_loss += F.nll_loss(output, target, reduction='sum').item() # sum up batch loss\\n\",\n", + " \" pred = output.argmax(dim=1, keepdim=True) # get the index of the max log-probability\\n\",\n", + " \" correct += pred.eq(target.view_as(pred)).sum().item()\\n\",\n", + " \"\\n\",\n", + " \" test_loss /= len(test_loader.dataset)\\n\",\n", + " \"\\n\",\n", + " \" print('\\\\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\\\\n'.format(\\n\",\n", + " \" test_loss, correct, len(test_loader.dataset),\\n\",\n", + " \" 100. * correct / len(test_loader.dataset)))\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 12,\n", + " \"id\": \"f47b42fe-4905-48fe-ad88-7f903e281ea1\",\n", + " \"metadata\": {},\n", + " \"outputs\": [],\n", + " \"source\": [\n", + " \"def test(model, device, test_loader):\\n\",\n", + " \" model.eval()\\n\",\n", + " \" test_loss = 0\\n\",\n", + " \" correct = 0\\n\",\n", + " \" # Use the no_grad method to increase computation speed\\n\",\n", + " \" # since computing the gradient is not necessary in this step.\\n\",\n", + " \" with torch.no_grad():\\n\",\n", + " \" for data, target in test_loader:\\n\",\n", + " \" data, target = data.to(device), target.to(device)\\n\",\n", + " \" output = model(data)\\n\",\n", + " \" test_loss += F.nll_loss(output, target, reduction='sum').item() # sum up batch loss\\n\",\n", + " \" pred = output.argmax(dim=1, keepdim=True) # get the index of the max log-probability\\n\",\n", + " \" correct += pred.eq(target.view_as(pred)).sum().item()\\n\",\n", + " \"\\n\",\n", + " \" test_loss /= len(test_loader.dataset)\\n\",\n", + " \"\\n\",\n", + " \" print('\\\\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\\\\n'.format(\\n\",\n", + " \" test_loss, correct, len(test_loader.dataset),\\n\",\n", + " \" 100. * correct / len(test_loader.dataset)))\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 13,\n", + " \"id\": \"a4d951f1-ade1-44be-93f1-de53051109eb\",\n", + " \"metadata\": {},\n", + " \"outputs\": [],\n", + " \"source\": [\n", + " \"EPOCHS = 5\\n\",\n", + " \"# our optimization strategy used in training.\\n\",\n", + " \"optimizer = optim.Adadelta(model.parameters(), lr=0.01)\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 14,\n", + " \"id\": \"c6072415-652e-4fb7-a0e4-57467ae23d23\",\n", + " \"metadata\": {},\n", + " \"outputs\": [\n", + " {\n", + " \"name\": \"stdout\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"EPOCH: 1\\n\",\n", + " \"cuda:0\\n\"\n", + " ]\n", + " },\n", + " {\n", + " \"name\": \"stderr\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"600it [00:06, 89.07it/s]\\n\"\n", + " ]\n", + " },\n", + " {\n", + " \"name\": \"stdout\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"\\n\",\n", + " \"Test set: Average loss: -0.5645, Accuracy: 6205/10000 (62%)\\n\",\n", + " \"\\n\",\n", + " \"EPOCH: 2\\n\",\n", + " \"cuda:0\\n\"\n", + " ]\n", + " },\n", + " {\n", + " \"name\": \"stderr\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"600it [00:06, 91.25it/s]\\n\"\n", + " ]\n", + " },\n", + " {\n", + " \"name\": \"stdout\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"\\n\",\n", + " \"Test set: Average loss: -0.6295, Accuracy: 6881/10000 (69%)\\n\",\n", + " \"\\n\",\n", + " \"EPOCH: 3\\n\",\n", + " \"cuda:0\\n\"\n", + " ]\n", + " },\n", + " {\n", + " \"name\": \"stderr\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"600it [00:06, 94.15it/s]\\n\"\n", + " ]\n", + " },\n", + " {\n", + " \"name\": \"stdout\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"\\n\",\n", + " \"Test set: Average loss: -0.6669, Accuracy: 7086/10000 (71%)\\n\",\n", + " \"\\n\",\n", + " \"EPOCH: 4\\n\",\n", + " \"cuda:0\\n\"\n", + " ]\n", + " },\n", + " {\n", + " \"name\": \"stderr\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"600it [00:06, 91.84it/s]\\n\"\n", + " ]\n", + " },\n", + " {\n", + " \"name\": \"stdout\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"\\n\",\n", + " \"Test set: Average loss: -0.6833, Accuracy: 7143/10000 (71%)\\n\",\n", + " \"\\n\",\n", + " \"EPOCH: 5\\n\",\n", + " \"cuda:0\\n\"\n", + " ]\n", + " },\n", + " {\n", + " \"name\": \"stderr\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"600it [00:06, 90.96it/s] \\n\"\n", + " ]\n", + " },\n", + " {\n", + " \"name\": \"stdout\",\n", + " \"output_type\": \"stream\",\n", + " \"text\": [\n", + " \"\\n\",\n", + " \"Test set: Average loss: -0.6974, Accuracy: 7196/10000 (72%)\\n\",\n", + " \"\\n\"\n", + " ]\n", + " }\n", + " ],\n", + " \"source\": [\n", + " \"for epoch in range(1, EPOCHS + 1):\\n\",\n", + " \" print( f\\\"EPOCH: {epoch}\\\")\\n\",\n", + " \" train(model, device, train_loader, optimizer, epoch)\\n\",\n", + " \" test(model, device, test_loader)\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": 15,\n", + " \"id\": \"b3fb979c-ce84-4657-996e-8509912581de\",\n", + " \"metadata\": {},\n", + " \"outputs\": [],\n", + " \"source\": [\n", + " \"# Saving the model's weights!\\n\",\n", + " \"torch.save(model.state_dict(), \\\"mnist_fashion_SimpleNet.pt\\\")\"\n", + " ]\n", + " },\n", + " {\n", + " \"cell_type\": \"code\",\n", + " \"execution_count\": null,\n", + " \"id\": \"4cbda6a9-b468-45f6-a346-3f86fa2e9214\",\n", + " \"metadata\": {},\n", + " \"outputs\": [],\n", + " \"source\": []\n", + " }\n", + " ],\n", + " \"metadata\": {\n", + " \"kernelspec\": {\n", + " \"display_name\": \"Python 3 (ipykernel)\",\n", + " \"language\": \"python\",\n", + " \"name\": \"python3\"\n", + " },\n", + " \"language_info\": {\n", + " \"codemirror_mode\": {\n", + " \"name\": \"ipython\",\n", + " \"version\": 3\n", + " },\n", + " \"file_extension\": \".py\",\n", + " \"mimetype\": \"text/x-python\",\n", + " \"name\": \"python\",\n", + " \"nbconvert_exporter\": \"python\",\n", + " \"pygments_lexer\": \"ipython3\",\n", + " \"version\": \"3.11.8\"\n", + " }\n", + " },\n", + " \"nbformat\": 4,\n", + " \"nbformat_minor\": 5\n", + "}" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 71a7eda106fb616fdaa77122330962caaee04066 Mon Sep 17 00:00:00 2001 From: carlos Date: Wed, 6 Mar 2024 14:00:42 -0500 Subject: [PATCH 4/4] Update gpu-ml-model.ipynb --- src/gpu-ml-model.ipynb | 883 ++++++++++++++++++++--------------------- 1 file changed, 432 insertions(+), 451 deletions(-) diff --git a/src/gpu-ml-model.ipynb b/src/gpu-ml-model.ipynb index b03dc70..620e436 100644 --- a/src/gpu-ml-model.ipynb +++ b/src/gpu-ml-model.ipynb @@ -2,466 +2,447 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, + "id": "5596f562-286a-4e39-aa35-723f210a84f3", + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "import torch.nn.functional as F\n", + "from torch.utils.data import TensorDataset\n", + "import torch.optim as optim\n", + "import torchvision\n", + "from torchvision import datasets\n", + "import torchvision.transforms as transforms\n", + "import matplotlib.pyplot as plt\n", + "from tqdm import tqdm" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5f8981b6-5194-4dce-891a-febe26d26ac3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "cuda:0\n" + ] + } + ], + "source": [ + "device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n", + "print(device)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8462da36-52db-4fdb-8e0d-4b78aa5d2435", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'NVIDIA A100-SXM4-80GB MIG 1g.20gb'" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "torch.cuda.get_device_name(0)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "afe4c059-c3dc-4a57-a657-a72fdf573b66", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False , cpu\n" + ] + } + ], + "source": [ + "X_train = torch.IntTensor([0, 30, 50, 75, 70])\n", + "print(X_train.is_cuda, \",\", X_train.device)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "eda6746c-6c18-4350-888c-8651abad09af", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True , cuda:0\n" + ] + } + ], + "source": [ + "X_train = X_train.cuda()\n", + "# Alternative method: specify the device using the variable\n", + "# X_train = X_train.to(device)\n", + "# Confirm that the Tensor is on the GPU now\n", + "print(X_train.is_cuda, \",\", X_train.device)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "fa4778e3-4b9f-417f-bfc5-c317fc517066", + "metadata": {}, + "outputs": [], + "source": [ + "batch_size = 100\n", + "\n", + "class SimpleNet(nn.Module):\n", + " def __init__(self):\n", + " super(SimpleNet, self).__init__()\n", + " self.fc1 = nn.Linear(784, 784)\n", + " self.fc2 = nn.Linear(784, 10)\n", + "\n", + " def forward(self, x):\n", + " x = x.view(batch_size, -1)\n", + " x = self.fc1(x)\n", + " x = F.relu(x)\n", + " x = self.fc2(x)\n", + " output = F.softmax(x, dim=1)\n", + " return output" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "d4ad8baa-9e75-4c69-aca3-dd2fd82e0c38", + "metadata": {}, + "outputs": [], + "source": [ + "model = SimpleNet().to(device)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "0b9f3e4c-d4d7-4894-b118-7fa10e220a58", + "metadata": {}, + "outputs": [], + "source": [ + "train_transform=transforms.Compose([\n", + " transforms.ToTensor(),\n", + " transforms.Normalize((0.1307,), (0.3081,))\n", + " ])\n", + "\n", + "test_transform=transforms.Compose([\n", + " transforms.ToTensor(),\n", + " transforms.Normalize((0.1307,), (0.3081,)),\n", + " ])\n", + "\n", + "# Set up a training data set\n", + "trainset = datasets.FashionMNIST('./data', train=True, download=True,\n", + " transform=train_transform)\n", + "train_loader = torch.utils.data.DataLoader(trainset, batch_size=batch_size,\n", + " shuffle=False, num_workers=2)\n", + "\n", + "# Set up a test data set\n", + "testset = datasets.FashionMNIST('./data', train=False,\n", + " transform=test_transform)\n", + "test_loader = torch.utils.data.DataLoader(testset, batch_size=batch_size,\n", + " shuffle=False, num_workers=2)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "bcbdb9d0-2129-4ac5-a189-08489f19a63a", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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VM/zPO/gwYNecHCwd+2115bu+57nea+//ronIt4///lPz/NOnh8aNmzoDR48uMzzz5w50xMR7+uvv/Y87+SxVLNmTW/MmDFlHnfgwAGvRo0aZeKnjtvHHnvM17cJqBJOHU+n/y8kJMR79913yzw2Ly+vzH8XFRV57dq1866++urS2Jo1azwR8R566KEyj01OTuY6cw45843ftGnTJC4uTvr27SsiJ8c+DB8+XKZPn17mTzanDB8+XGrVqlX63z179hSRk382Pd3SpUslKSlJrrnmGpk1a5aEhIRYt+XDDz+U1q1bS6tWrUq/tcvIyCj989bSpUvP+HpCQ0NlyZIlsmTJElm8eLG8+eabEhkZKf3795dt27aVPm7BggVyxRVXSI8ePUpjkZGRcs8990haWlppF/CCBQukXr16ZX5PFRQUJA888IDk5OTIV199dcZtAvzVr18/iY2NLe1Oj4yMlNmzZ0vDhg0rdD2ff/65FBUVyUMPPSTVqv3f6W/MmDESHR1d+m1EQECADB06VBYsWFDmJxszZsyQhg0blh5PS5YskczMTBk5cmSZYzkwMFC6du1qPJbHjh1boa8JON/eeOON0uvP+++/L3379pXRo0fLrFmzSh8TFhZW+v8fPXpUsrKypGfPnrJ27drS+KJFi0RE5Le//W2Z57///vvP8StwmxPNHSdOnJDp06dL3759JTU1tTTetWtX+dvf/ib/+c9/5Nprry2Tc8kll5T571NF4NGjR8vECwoKZMCAAdKpUyeZOXNmud/XmWzfvl22bNlS+nu50x08ePCMzxEYGCj9+vUrE+vfv780b95cHn/8cfn4449FRGT37t3G0TWtW7cuXd6uXTvZvXu3NG/evMzF8PTHAefKG2+8IS1atJDq1atLXFyctGzZsty+WBFO7cctW7YsEw8ODpamTZuW2c+HDx8ur7zyisydO1duvfVWycnJkQULFsi9994rAQEBInLyWBb5v98kni46OrrMf1evXl0aNWpUYa8HqAxXXHFFmeaOkSNHSseOHeW+++6TgQMHSnBwsHz66afy5z//WdatW1fmt+unjh2Rk8djtWrVpEmTJmWe/0KdtnGhcKLw++KLL+Snn36S6dOny/Tp08stnzZtWrnC79Tvd07neV6Z/w4JCZH+/fvLnDlzZNGiRWfV0VRSUiKXXnqpvPTSS8bljRs3PuNzmDRq1EhatmwpX3/9tV/5QGU5/ULycwEBAeWOOxExflNfkbp16yYJCQkyc+ZMufXWW2XevHmSn59f5ne4JSUlInLyd36nmqt+7vR/CIaEhJyTghaoTNWqVZO+ffvKq6++Ktu3b5cjR47IoEGDpFevXjJp0iSpX7++BAUFyTvvvCMffPBBZW+u85wo/KZNmyZ169aVN954o9yyWbNmyezZs2XKlCllvpo+WwEBATJt2jS58cYbZejQobJw4cIzzrdLTEyU9evXyzXXXFPmXz8Vobi4uMyfpuLj4yUlJaXc47Zu3Vq6/NT/3bBhg5SUlJS5MJ3+uIreXuBMatWqZfyJhT/fQp/aj1NSUqRp06al8aKiIklNTS33LfqwYcPk1VdflWPHjsmMGTMkISFBunXrVro8MTFRRETq1q1bLhdwSXFxsYiI5OTkyMcffyyhoaGyePHiMj99euedd8rkxMfHS0lJiaSmpkrz5s1L4zt27Dg/G+2oi/6fnvn5+TJr1iwZOHCgDBkypNz/7rvvPsnOzpa5c+f6vY7g4GCZNWuWdOnSRW644QZZuXKl9fHDhg2T/fv3y9///nfj9ubm5vq1Hdu2bZOUlBS57LLLSmP9+/eXlStXyjfffFMay83NlbfeeksSEhKkTZs2pY87cOCAzJgxo/RxxcXFMnHiRImMjJTevXuLiJQO0/356AvgXEpMTJStW7fKoUOHSmPr16+X5cuX+/xc/fr1k+DgYHnttdfKfIv49ttvS1ZWVrluwuHDh0thYaFMnTpVFi1aJMOGDSuzPCkpSaKjo+XZZ581dvz/fJuBi9Xx48fls88+k+DgYGndurUEBgZKQEBAmW/l09LS5JNPPimTl5SUJCInxyv93MSJE8/5Nrvsov/Gb+7cuZKdnS2DBg0yLu/WrZvExsbKtGnTfBqlcrqwsDD59NNP5eqrr5brr79evvrqK2nXrp3xsXfccYfMnDlTfvOb38jSpUvlqquukhMnTsjWrVtl5syZsnjxYvXPXqcUFxfL+++/LyIn/9yUlpYmU6ZMkZKSkjJDqR977DH597//Lddff7088MADUrt2bZk6daqkpqbKxx9/XPrt3j333CNvvvmmJCcny5o1ayQhIUE++ugjWb58ubzyyisSFRVV+jrbtGkjM2bMkBYtWkjt2rWlXbt26msFfqm77rpLXnrpJUlKSpK7775bDh48KFOmTJG2bdvKsWPHfHqu2NhYefzxx2XChAly3XXXyaBBgyQlJUUmTZokXbp0KTcU/fLLL5dmzZrJk08+KYWFheXOEdHR0TJ58mS544475PLLL5cRI0ZIbGys7NmzR+bPny9XXXWVvP7667/4PQCqkoULF5b+NejgwYPywQcfyPbt2+Wxxx6T6OhoGTBggLz00kty3XXXya233ioHDx6UN954Q5o1ayYbNmwofZ5OnTrJ4MGD5ZVXXpHDhw9Lt27d5KuvviptUOQvTOdIJXcVn3M33HCDFxoa6uXm5qqPSU5O9oKCgryMjIzScS4vvPBCucfJae3lPx/nckpGRobXpk0br169et727ds9zys/zsXzTra2P/fcc17btm29kJAQr1atWl6nTp28CRMmeFlZWdbXZBrnEh0d7V1zzTXe559/Xu7xO3fu9IYMGeLVrFnTCw0N9a644grv008/Lfe49PR078477/Tq1KnjBQcHe5deeqn3zjvvlHvcihUrvE6dOnnBwcG03OMXOTUeYtWqVdbHvf/++17Tpk294OBgr0OHDt7ixYv9Gudyyuuvv+61atXKCwoK8uLi4ryxY8d6R48eNa77ySef9ETEa9asmbp9S5cu9ZKSkrwaNWp4oaGhXmJiopecnOytXr269DGm8wVwITGNcwkNDfU6dOjgTZ482SspKSl97Ntvv+01b97cCwkJ8Vq1auW988473tNPP+2dXnbk5uZ648aN82rXru1FRkZ6N910k5eSkuKJiPe///u/5/slOiHA8wy/mgYAAKgE69atk44dO8r777/P3W3OgYv+N34AAKBqys/PLxd75ZVXpFq1atKrV69K2KKL30X/Gz8AAFA1Pf/887JmzRrp27evVK9eXRYuXCgLFy6Ue+65x+/RZrDjT70AAKBSLFmyRCZMmCCbN2+WnJwcueSSS+SOO+6QJ5988qxuiADfUfgBAAA4gt/4AQAAOILCDwAAwBEUfgAAAI44619OMkEbF6Oq+BPXqnysBQYGGuM/vzVTZbnnnnuM8by8PDVn48aNxnijRo3UnJ49exrjp9+H9OdM98s+F7R9pyrs51VhG05XlY+1qqxly5bG+OWXX67mhIaGGuP79+9Xcz777DPfNkyq9jFwvpzptfKNHwAAgCMo/AAAABxB4QcAAOAICj8AAABHnPUAZ34E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eku++eYbufLKK9XHxcfHS0lJiWzfvl1at25dGk9PT5fMzEyJj48XEZEvv/xSDh8+LLNmzZJevXqVPi41NbXcc57N/DHgYubP9dAfHGvnBr/xO83SpUuN/0I59Vuhli1bnvVzBQYGyuDBg+Xjjz82fjtx6NChMo8VKfuvo++++06++eYb9fn79esn06dPl0WLFskdd9xR+q3ELbfcIoGBgTJhwoRyr8XzPDl8+PBZvwagKnr00UclIiJCRo8eLenp6eWW79y5U1599VXp37+/iEi5O2289NJLIiKlXfCm46+oqEgmTZpU7rkjIiL40y+cUJHXQ39ERERIZmbmOV2Hi/jG7zT333+/5OXlyc033yytWrWSoqIiWbFihcyYMUMSEhJ8boL43//9X1m6dKl07dpVxowZI23atJEjR47I2rVr5fPPP5cjR46IyMlvMGbNmiU333yzDBgwQFJTU2XKlCnSpk0bycnJUZ//pptuknfeeUd+/etfS3R0tLz55puSmJgof/7zn+Xxxx+XtLQ0uemmmyQqKkpSU1Nl9uzZcs8993DXD1zQEhMT5YMPPpDhw4dL69aty9y5Y8WKFfLhhx9KcnKyPPjggzJq1Ch56623Sv+cu3LlSpk6darcdNNN0rdvXxER6d69u9SqVUtGjRolDzzwgAQEBMh7771nvOh16tRJZsyYIQ8//LB06dJFIiMj5YYbbjjfbwFwzlX09dBXnTp1ks8//1xeeukladCggTRp0kS6du16TtfphErpJa7CFi5c6N11111eq1atvMjISC84ONhr1qyZd//993vp6emljxMRb9y4ceXy4+Pjy7Wfp6ene+PGjfMaN27sBQUFefXq1fOuueYa76233ip9TElJiffss8968fHxXkhIiNexY0fv008/9UaNGlVmdMTPx7n83KRJkzwR8X7/+9+Xxj7++GOvR48eXkREhBcREeG1atXKGzdunJeSklL6mN69e3tt27b19+0CKtW2bdu8MWPGeAkJCV5wcLAXFRXlXXXVVd7EiRNLR7AcP37cmzBhgtekSRMvKCjIa9y4sff444+XGdHieZ63fPlyr1u3bl5YWJjXoEGD0tEVIuItXbq09HE5OTnerbfe6tWsWdMTEUa74KJV0ddDbZzLgAEDjOvfunWr16tXLy8sLMwTEUa7VBDu1QsAAOAIfuMHAADgCAo/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ftnBtcyMP/X64OqrrxaRkxc27fdEycnJkpCQ4NfzT5o0Sdq2bSshISHSoEEDGTdunGRmZpYuv++++yQyMlLy8vLK5Y4cOVLq1asnJ06cKI0tXLhQevbsKRERERIVFSUDBgyQH374odz2RkZGys6dO6V///4SFRUlt912m1/bD4ic/LavVq1aMmDAABkyZIhMmzat3GPS0tIkICBAXnzxRXnrrbckMTFRQkJCpEuXLrJq1aozrmPdunUSGxsrffr0kZycHPVxhYWF8vTTT0uzZs0kJCREGjduLI8++qgUFhb6/frq1asnIieLwp/btWuXDB06VGrXri3h4eHSrVs3mT9/frn8gwcPyt133y1xcXESGhoql112mUydOrV0eVpamsTGxoqIyIQJE0r//Pbz3wkD50qfPn2kXbt2smbNGunVq5eEh4fLE088ISJn3ndFRL788kvjn4tPHfPvvvtuaezAgQNy5513SqNGjSQkJETq168vN954Y7nfv3Mtq1h84+eDnTt3iohITExMhT/3+PHjZcKECdKvXz8ZO3aspKSkyOTJk2XVqlWyfPlyCQoKkuHDh8sbb7wh8+fPl6FDh5bm5uXlybx58yQ5OVkCAwNF5ORX+qNGjZKkpCR57rnnJC8vTyZPniw9evSQ77//vkxxWlxcLElJSdKjRw958cUXL8h/2aHqmDZtmtxyyy0SHBwsI0eOLN2Pu3TpUu6xH3zwgWRnZ8u9994rAQEB8vzzz8stt9wiu3btkqCgIOPzr1q1SpKSkqRz584yZ84cCQsLMz6upKREBg0aJMuWLZN77rlHWrduLRs3bpSXX35Ztm3bJp988slZvZ6MjAwRETlx4oTs2rVL/ud//kdiYmJk4MCBpY9JT0+X7t27S15enjzwwAMSExMjU6dOlUGDBslHH30kN998s4iI5OfnS58+fWTHjh1y3333SZMmTeTDDz+U5ORkyczMlAcffFBiY2Nl8uTJMnbsWLn55pvllltuERGR9u3bn9X2Ar/U4cOH5frrr5cRI0bI7bffLnFxcWe17/pq8ODB8sMPP8j9998vCQkJcvDgQVmyZIns2bOn9BrFtewc8FDOO++844mI9/nnn3uHDh3y9u7d602fPt2LiYnxwsLCvH379nm9e/f2evfuXS531KhRXnx8fJmYiHhPP/10uedPTU31PM/zDh486AUH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", + "text/plain": [ + "
        " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "labels_map = {\n", + " 0: \"T-Shirt\",\n", + " 1: \"Trouser\",\n", + " 2: \"Pullover\",\n", + " 3: \"Dress\",\n", + " 4: \"Coat\",\n", + " 5: \"Sandal\",\n", + " 6: \"Shirt\",\n", + " 7: \"Sneaker\",\n", + " 8: \"Bag\",\n", + " 9: \"Ankle Boot\",\n", + "}\n", + "\n", + "# Plotting 9 random different items from the training data set, trainset.\n", + "figure = plt.figure(figsize=(8, 8))\n", + "for i in range(1, 3 * 3 + 1):\n", + " sample_idx = torch.randint(len(trainset), size=(1,)).item()\n", + " img, label = trainset[sample_idx]\n", + " figure.add_subplot(3, 3, i)\n", + " plt.title(labels_map[label])\n", + " plt.axis(\"off\")\n", + " plt.imshow(img.view(28,28), cmap=\"gray\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "9ef4f746-f342-4adf-bce6-cfdef0c8a1df", + "metadata": {}, + "outputs": [], + "source": [ + "def train(model, device, train_loader, optimizer, epoch):\n", + " \"\"\"Model training function\"\"\"\n", + " model.train()\n", + " print(device)\n", + " for batch_idx, (data, target) in tqdm(enumerate(train_loader)):\n", + " data, target = data.to(device), target.to(device)\n", + " optimizer.zero_grad()\n", + " output = model(data)\n", + " loss = F.nll_loss(output, target)\n", + " loss.backward()\n", + " optimizer.step()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "fd843896-03b1-4cb7-a5c0-b420bba2cff9", + "metadata": {}, + "outputs": [], + "source": [ + "def test(model, device, test_loader):\n", + " \"\"\"Model evaluating function\"\"\"\n", + " model.eval()\n", + " test_loss = 0\n", + " correct = 0\n", + " with torch.no_grad():\n", + " for data, target in test_loader:\n", + " data, target = data.to(device), target.to(device)\n", + " output = model(data)\n", + " test_loss += F.nll_loss(output, target, reduction='sum').item() # sum up batch loss\n", + " pred = output.argmax(dim=1, keepdim=True) # get the index of the max log-probability\n", + " correct += pred.eq(target.view_as(pred)).sum().item()\n", + "\n", + " test_loss /= len(test_loader.dataset)\n", + "\n", + " print('\\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\\n'.format(\n", + " test_loss, correct, len(test_loader.dataset),\n", + " 100. * correct / len(test_loader.dataset)))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "f47b42fe-4905-48fe-ad88-7f903e281ea1", + "metadata": {}, + "outputs": [], + "source": [ + "def test(model, device, test_loader):\n", + " model.eval()\n", + " test_loss = 0\n", + " correct = 0\n", + " # Use the no_grad method to increase computation speed\n", + " # since computing the gradient is not necessary in this step.\n", + " with torch.no_grad():\n", + " for data, target in test_loader:\n", + " data, target = data.to(device), target.to(device)\n", + " output = model(data)\n", + " test_loss += F.nll_loss(output, target, reduction='sum').item() # sum up batch loss\n", + " pred = output.argmax(dim=1, keepdim=True) # get the index of the max log-probability\n", + " correct += pred.eq(target.view_as(pred)).sum().item()\n", + "\n", + " test_loss /= len(test_loader.dataset)\n", + "\n", + " print('\\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\\n'.format(\n", + " test_loss, correct, len(test_loader.dataset),\n", + " 100. * correct / len(test_loader.dataset)))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "a4d951f1-ade1-44be-93f1-de53051109eb", "metadata": {}, "outputs": [], "source": [ - "{\n", - " \"cells\": [\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 1,\n", - " \"id\": \"5596f562-286a-4e39-aa35-723f210a84f3\",\n", - " \"metadata\": {},\n", - " \"outputs\": [],\n", - " \"source\": [\n", - " \"import torch\\n\",\n", - " \"import torch.nn as nn\\n\",\n", - " \"import torch.nn.functional as F\\n\",\n", - " \"from torch.utils.data import TensorDataset\\n\",\n", - " \"import torch.optim as optim\\n\",\n", - " \"import torchvision\\n\",\n", - " \"from torchvision import datasets\\n\",\n", - " \"import torchvision.transforms as transforms\\n\",\n", - " \"import matplotlib.pyplot as plt\\n\",\n", - " \"from tqdm import tqdm\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 2,\n", - " \"id\": \"5f8981b6-5194-4dce-891a-febe26d26ac3\",\n", - " \"metadata\": {},\n", - " \"outputs\": [\n", - " {\n", - " \"name\": \"stdout\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"cuda:0\\n\"\n", - " ]\n", - " }\n", - " ],\n", - " \"source\": [\n", - " \"device = torch.device(\\\"cuda:0\\\" if torch.cuda.is_available() else \\\"cpu\\\")\\n\",\n", - " \"print(device)\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 3,\n", - " \"id\": \"8462da36-52db-4fdb-8e0d-4b78aa5d2435\",\n", - " \"metadata\": {},\n", - " \"outputs\": [\n", - " {\n", - " \"data\": {\n", - " \"text/plain\": [\n", - " \"'NVIDIA A100-SXM4-80GB MIG 1g.20gb'\"\n", - " ]\n", - " },\n", - " \"execution_count\": 3,\n", - " \"metadata\": {},\n", - " \"output_type\": \"execute_result\"\n", - " }\n", - " ],\n", - " \"source\": [\n", - " \"torch.cuda.get_device_name(0)\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 4,\n", - " \"id\": \"afe4c059-c3dc-4a57-a657-a72fdf573b66\",\n", - " \"metadata\": {},\n", - " \"outputs\": [\n", - " {\n", - " \"name\": \"stdout\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"False , cpu\\n\"\n", - " ]\n", - " }\n", - " ],\n", - " \"source\": [\n", - " \"X_train = torch.IntTensor([0, 30, 50, 75, 70])\\n\",\n", - " \"print(X_train.is_cuda, \\\",\\\", X_train.device)\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 5,\n", - " \"id\": \"eda6746c-6c18-4350-888c-8651abad09af\",\n", - " \"metadata\": {},\n", - " \"outputs\": [\n", - " {\n", - " \"name\": \"stdout\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"True , cuda:0\\n\"\n", - " ]\n", - " }\n", - " ],\n", - " \"source\": [\n", - " \"X_train = X_train.cuda()\\n\",\n", - " \"# Alternative method: specify the device using the variable\\n\",\n", - " \"# X_train = X_train.to(device)\\n\",\n", - " \"# Confirm that the Tensor is on the GPU now\\n\",\n", - " \"print(X_train.is_cuda, \\\",\\\", X_train.device)\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 6,\n", - " \"id\": \"fa4778e3-4b9f-417f-bfc5-c317fc517066\",\n", - " \"metadata\": {},\n", - " \"outputs\": [],\n", - " \"source\": [\n", - " \"batch_size = 100\\n\",\n", - " \"\\n\",\n", - " \"class SimpleNet(nn.Module):\\n\",\n", - " \" def __init__(self):\\n\",\n", - " \" super(SimpleNet, self).__init__()\\n\",\n", - " \" self.fc1 = nn.Linear(784, 784)\\n\",\n", - " \" self.fc2 = nn.Linear(784, 10)\\n\",\n", - " \"\\n\",\n", - " \" def forward(self, x):\\n\",\n", - " \" x = x.view(batch_size, -1)\\n\",\n", - " \" x = self.fc1(x)\\n\",\n", - " \" x = F.relu(x)\\n\",\n", - " \" x = self.fc2(x)\\n\",\n", - " \" output = F.softmax(x, dim=1)\\n\",\n", - " \" return output\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 7,\n", - " \"id\": \"d4ad8baa-9e75-4c69-aca3-dd2fd82e0c38\",\n", - " \"metadata\": {},\n", - " \"outputs\": [],\n", - " \"source\": [\n", - " \"model = SimpleNet().to(device)\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 8,\n", - " \"id\": \"0b9f3e4c-d4d7-4894-b118-7fa10e220a58\",\n", - " \"metadata\": {},\n", - " \"outputs\": [],\n", - " \"source\": [\n", - " \"train_transform=transforms.Compose([\\n\",\n", - " \" transforms.ToTensor(),\\n\",\n", - " \" transforms.Normalize((0.1307,), (0.3081,))\\n\",\n", - " \" ])\\n\",\n", - " \"\\n\",\n", - " \"test_transform=transforms.Compose([\\n\",\n", - " \" transforms.ToTensor(),\\n\",\n", - " \" transforms.Normalize((0.1307,), (0.3081,)),\\n\",\n", - " \" ])\\n\",\n", - " \"\\n\",\n", - " \"# Set up a training data set\\n\",\n", - " \"trainset = datasets.FashionMNIST('./data', train=True, download=True,\\n\",\n", - " \" transform=train_transform)\\n\",\n", - " \"train_loader = torch.utils.data.DataLoader(trainset, batch_size=batch_size,\\n\",\n", - " \" shuffle=False, num_workers=2)\\n\",\n", - " \"\\n\",\n", - " \"# Set up a test data set\\n\",\n", - " \"testset = datasets.FashionMNIST('./data', train=False,\\n\",\n", - " \" transform=test_transform)\\n\",\n", - " \"test_loader = torch.utils.data.DataLoader(testset, batch_size=batch_size,\\n\",\n", - " \" shuffle=False, num_workers=2)\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 9,\n", - " \"id\": \"bcbdb9d0-2129-4ac5-a189-08489f19a63a\",\n", - " \"metadata\": {},\n", - " \"outputs\": [\n", - " {\n", - " \"data\": {\n", - " \"image/png\": \"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VM/zPO/gwYNecHCwd+2115bu+57nea+//ronIt4///lPz/NOnh8aNmzoDR48uMzzz5w50xMR7+uvv/Y87+SxVLNmTW/MmDFlHnfgwAGvRo0aZeKnjtvHHnvM17cJqBJOHU+n/y8kJMR79913yzw2Ly+vzH8XFRV57dq1866++urS2Jo1azwR8R566KEyj01OTuY6cw45843ftGnTJC4uTvr27SsiJ8c+DB8+XKZPn17mTzanDB8+XGrVqlX63z179hSRk382Pd3SpUslKSlJrrnmGpk1a5aEhIRYt+XDDz+U1q1bS6tWrUq/tcvIyCj989bSpUvP+HpCQ0NlyZIlsmTJElm8eLG8+eabEhkZKf3795dt27aVPm7BggVyxRVXSI8ePUpjkZGRcs8990haWlppF/CCBQukXr16ZX5PFRQUJA888IDk5OTIV199dcZtAvzVr18/iY2NLe1Oj4yMlNmzZ0vDhg0rdD2ff/65FBUVyUMPPSTVqv3f6W/MmDESHR1d+m1EQECADB06VBYsWFDmJxszZsyQhg0blh5PS5YskczMTBk5cmSZYzkwMFC6du1qPJbHjh1boa8JON/eeOON0uvP+++/L3379pXRo0fLrFmzSh8TFhZW+v8fPXpUsrKypGfPnrJ27drS+KJFi0RE5Le//W2Z57///vvP8StwmxPNHSdOnJDp06dL3759JTU1tTTetWtX+dvf/ib/+c9/5Nprry2Tc8kll5T571NF4NGjR8vECwoKZMCAAdKpUyeZOXNmud/XmWzfvl22bNlS+nu50x08ePCMzxEYGCj9+vUrE+vfv780b95cHn/8cfn4449FRGT37t3G0TWtW7cuXd6uXTvZvXu3NG/evMzF8PTHAefKG2+8IS1atJDq1atLXFyctGzZsty+WBFO7cctW7YsEw8ODpamTZuW2c+HDx8ur7zyisydO1duvfVWycnJkQULFsi9994rAQEBInLyWBb5v98kni46OrrMf1evXl0aNWpUYa8HqAxXXHFFmeaOkSNHSseOHeW+++6TgQMHSnBwsHz66afy5z//WdatW1fmt+unjh2Rk8djtWrVpEmTJmWe/0KdtnGhcKLw++KLL+Snn36S6dOny/Tp08stnzZtWrnC79Tvd07neV6Z/w4JCZH+/fvLnDlzZNGiRWfV0VRSUiKXXnqpvPTSS8bljRs3PuNzmDRq1EhatmwpX3/9tV/5QGU5/ULycwEBAeWOOxExflNfkbp16yYJCQkyc+ZMufXWW2XevHmSn59f5ne4JSUlInLyd36nmqt+7vR/CIaEhJyTghaoTNWqVZO+ffvKq6++Ktu3b5cjR47IoEGDpFevXjJp0iSpX7++BAUFyTvvvCMffPBBZW+u85wo/KZNmyZ169aVN954o9yyWbNmyezZs2XKlCllvpo+WwEBATJt2jS58cYbZejQobJw4cIzzrdLTEyU9evXyzXXXFPmXz8Vobi4uMyfpuLj4yUlJaXc47Zu3Vq6/NT/3bBhg5SUlJS5MJ3+uIreXuBMatWqZfyJhT/fQp/aj1NSUqRp06al8aKiIklNTS33LfqwYcPk1VdflWPHjsmMGTMkISFBunXrVro8MTFRRETq1q1bLhdwSXFxsYiI5OTkyMcffyyhoaGyePHiMj99euedd8rkxMfHS0lJiaSmpkrz5s1L4zt27Dg/G+2oi/6fnvn5+TJr1iwZOHCgDBkypNz/7rvvPsnOzpa5c+f6vY7g4GCZNWuWdOnSRW644QZZuXKl9fHDhg2T/fv3y9///nfj9ubm5vq1Hdu2bZOUlBS57LLLSmP9+/eXlStXyjfffFMay83NlbfeeksSEhKkTZs2pY87cOCAzJgxo/RxxcXFMnHiRImMjJTevXuLiJQO0/356AvgXEpMTJStW7fKoUOHSmPr16+X5cuX+/xc/fr1k+DgYHnttdfKfIv49ttvS1ZWVrluwuHDh0thYaFMnTpVFi1aJMOGDSuzPCkpSaKjo+XZZ581dvz/fJuBi9Xx48fls88+k+DgYGndurUEBgZKQEBAmW/l09LS5JNPPimTl5SUJCInxyv93MSJE8/5Nrvsov/Gb+7cuZKdnS2DBg0yLu/WrZvExsbKtGnTfBqlcrqwsDD59NNP5eqrr5brr79evvrqK2nXrp3xsXfccYfMnDlTfvOb38jSpUvlqquukhMnTsjWrVtl5syZsnjxYvXPXqcUFxfL+++/LyIn/9yUlpYmU6ZMkZKSkjJDqR977DH597//Lddff7088MADUrt2bZk6daqkpqbKxx9/XPrt3j333CNvvvmmJCcny5o1ayQhIUE++ugjWb58ubzyyisSFRVV+jrbtGkjM2bMkBYtWkjt2rWlXbt26msFfqm77rpLXnrpJUlKSpK7775bDh48KFOmTJG2bdvKsWPHfHqu2NhYefzxx2XChAly3XXXyaBBgyQlJUUmTZokXbp0KTcU/fLLL5dmzZrJk08+KYWFheXOEdHR0TJ58mS544475PLLL5cRI0ZIbGys7NmzR+bPny9XXXWVvP7667/4PQCqkoULF5b+NejgwYPywQcfyPbt2+Wxxx6T6OhoGTBggLz00kty3XXXya233ioHDx6UN954Q5o1ayYbNmwofZ5OnTrJ4MGD5ZVXXpHDhw9Lt27d5KuvviptUOQvTOdIJXcVn3M33HCDFxoa6uXm5qqPSU5O9oKCgryMjIzScS4vvPBCucfJae3lPx/nckpGRobXpk0br169et727ds9zys/zsXzTra2P/fcc17btm29kJAQr1atWl6nTp28CRMmeFlZWdbXZBrnEh0d7V1zzTXe559/Xu7xO3fu9IYMGeLVrFnTCw0N9a644grv008/Lfe49PR078477/Tq1KnjBQcHe5deeqn3zjvvlHvcihUrvE6dOnnBwcG03OMXOTUeYtWqVdbHvf/++17Tpk294OBgr0OHDt7ixYv9Gudyyuuvv+61atXKCwoK8uLi4ryxY8d6R48eNa77ySef9ETEa9asmbp9S5cu9ZKSkrwaNWp4oaGhXmJiopecnOytXr269DGm8wVwITGNcwkNDfU6dOjgTZ482SspKSl97Ntvv+01b97cCwkJ8Vq1auW988473tNPP+2dXnbk5uZ648aN82rXru1FRkZ6N910k5eSkuKJiPe///u/5/slOiHA8wy/mgYAAKgE69atk44dO8r777/P3W3OgYv+N34AAKBqys/PLxd75ZVXpFq1atKrV69K2KKL30X/Gz8AAFA1Pf/887JmzRrp27evVK9eXRYuXCgLFy6Ue+65x+/RZrDjT70AAKBSLFmyRCZMmCCbN2+WnJwcueSSS+SOO+6QJ5988qxuiADfUfgBAAA4gt/4AQAAOILCDwAAwBEUfgAAAI44619OMkEbF6Oq+BPXqnysBQYGGuM/vzVTZbnnnnuM8by8PDVn48aNxnijRo3UnJ49exrjp9+H9OdM98s+F7R9pyrs51VhG05XlY+1qqxly5bG+OWXX67mhIaGGuP79+9Xcz777DPfNkyq9jFwvpzptfKNHwAAgCMo/AAAABxB4QcAAOAICj8AAABHnPUAZ34E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eku++eYbufLKK9XHxcfHS0lJiWzfvl1at25dGk9PT5fMzEyJj48XEZEvv/xSDh8+LLNmzZJevXqVPi41NbXcc57N/DHgYubP9dAfHGvnBr/xO83SpUuN/0I59Vuhli1bnvVzBQYGyuDBg+Xjjz82fjtx6NChMo8VKfuvo++++06++eYb9fn79esn06dPl0WLFskdd9xR+q3ELbfcIoGBgTJhwoRyr8XzPDl8+PBZvwagKnr00UclIiJCRo8eLenp6eWW79y5U1599VXp37+/iEi5O2289NJLIiKlXfCm46+oqEgmTZpU7rkjIiL40y+cUJHXQ39ERERIZmbmOV2Hi/jG7zT333+/5OXlyc033yytWrWSoqIiWbFihcyYMUMSEhJ8boL43//9X1m6dKl07dpVxowZI23atJEjR47I2rVr5fPPP5cjR46IyMlvMGbNmiU333yzDBgwQFJTU2XKlCnSpk0bycnJUZ//pptuknfeeUd+/etfS3R0tLz55puSmJgof/7zn+Xxxx+XtLQ0uemmmyQqKkpSU1Nl9uzZcs8993DXD1zQEhMT5YMPPpDhw4dL69aty9y5Y8WKFfLhhx9KcnKyPPjggzJq1Ch56623Sv+cu3LlSpk6darcdNNN0rdvXxER6d69u9SqVUtGjRolDzzwgAQEBMh7771nvOh16tRJZsyYIQ8//LB06dJFIiMj5YYbbjjfbwFwzlX09dBXnTp1ks8//1xeeukladCggTRp0kS6du16TtfphErpJa7CFi5c6N11111eq1atvMjISC84ONhr1qyZd//993vp6emljxMRb9y4ceXy4+Pjy7Wfp6ene+PGjfMaN27sBQUFefXq1fOuueYa76233ip9TElJiffss8968fHxXkhIiNexY0fv008/9UaNGlVmdMTPx7n83KRJkzwR8X7/+9+Xxj7++GOvR48eXkREhBcREeG1atXKGzdunJeSklL6mN69e3tt27b19+0CKtW2bdu8MWPGeAkJCV5wcLAXFRXlXXXVVd7EiRNLR7AcP37cmzBhgtekSRMvKCjIa9y4sff444+XGdHieZ63fPlyr1u3bl5YWJjXoEGD0tEVIuItXbq09HE5OTnerbfe6tWsWdMTEUa74KJV0ddDbZzLgAEDjOvfunWr16tXLy8sLMwTEUa7VBDu1QsAAOAIfuMHAADgCAo/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ftnBtcyMP/X64OqrrxaRkxc27fdEycnJkpCQ4NfzT5o0Sdq2bSshISHSoEEDGTdunGRmZpYuv++++yQyMlLy8vLK5Y4cOVLq1asnJ06cKI0tXLhQevbsKRERERIVFSUDBgyQH374odz2RkZGys6dO6V///4SFRUlt912m1/bD4ic/LavVq1aMmDAABkyZIhMmzat3GPS0tIkICBAXnzxRXnrrbckMTFRQkJCpEuXLrJq1aozrmPdunUSGxsrffr0kZycHPVxhYWF8vTTT0uzZs0kJCREGjduLI8++qgUFhb6/frq1asnIieLwp/btWuXDB06VGrXri3h4eHSrVs3mT9/frn8gwcPyt133y1xcXESGhoql112mUydOrV0eVpamsTGxoqIyIQJE0r//Pbz3wkD50qfPn2kXbt2smbNGunVq5eEh4fLE088ISJn3ndFRL788kvjn4tPHfPvvvtuaezAgQNy5513SqNGjSQkJETq168vN954Y7nfv3Mtq1h84+eDnTt3iohITExMhT/3+PHjZcKECdKvXz8ZO3aspKSkyOTJk2XVqlWyfPlyCQoKkuHDh8sbb7wh8+fPl6FDh5bm5uXlybx58yQ5OVkCAwNF5ORX+qNGjZKkpCR57rnnJC8vTyZPniw9evSQ77//vkxxWlxcLElJSdKjRw958cUXL8h/2aHqmDZtmtxyyy0SHBwsI0eOLN2Pu3TpUu6xH3zwgWRnZ8u9994rAQEB8vzzz8stt9wiu3btkqCgIOPzr1q1SpKSkqRz584yZ84cCQsLMz6upKREBg0aJMuWLZN77rlHWrduLRs3bpSXX35Ztm3bJp988slZvZ6MjAwRETlx4oTs2rVL/ud//kdiYmJk4MCBpY9JT0+X7t27S15enjzwwAMSExMjU6dOlUGDBslHH30kN998s4iI5OfnS58+fWTHjh1y3333SZMmTeTDDz+U5ORkyczMlAcffFBiY2Nl8uTJMnbsWLn55pvllltuERGR9u3bn9X2Ar/U4cOH5frrr5cRI0bI7bffLnFxcWe17/pq8ODB8sMPP8j9998vCQkJcvDgQVmyZIns2bOn9BrFtewc8FDOO++844mI9/nnn3uHDh3y9u7d602fPt2LiYnxwsLCvH379nm9e/f2evfuXS531KhRXnx8fJmYiHhPP/10uedPTU31PM/zDh486AUH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\",\n", - " \"text/plain\": [\n", - " \"
        \"\n", - " ]\n", - " },\n", - " \"metadata\": {},\n", - " \"output_type\": \"display_data\"\n", - " }\n", - " ],\n", - " \"source\": [\n", - " \"labels_map = {\\n\",\n", - " \" 0: \\\"T-Shirt\\\",\\n\",\n", - " \" 1: \\\"Trouser\\\",\\n\",\n", - " \" 2: \\\"Pullover\\\",\\n\",\n", - " \" 3: \\\"Dress\\\",\\n\",\n", - " \" 4: \\\"Coat\\\",\\n\",\n", - " \" 5: \\\"Sandal\\\",\\n\",\n", - " \" 6: \\\"Shirt\\\",\\n\",\n", - " \" 7: \\\"Sneaker\\\",\\n\",\n", - " \" 8: \\\"Bag\\\",\\n\",\n", - " \" 9: \\\"Ankle Boot\\\",\\n\",\n", - " \"}\\n\",\n", - " \"\\n\",\n", - " \"# Plotting 9 random different items from the training data set, trainset.\\n\",\n", - " \"figure = plt.figure(figsize=(8, 8))\\n\",\n", - " \"for i in range(1, 3 * 3 + 1):\\n\",\n", - " \" sample_idx = torch.randint(len(trainset), size=(1,)).item()\\n\",\n", - " \" img, label = trainset[sample_idx]\\n\",\n", - " \" figure.add_subplot(3, 3, i)\\n\",\n", - " \" plt.title(labels_map[label])\\n\",\n", - " \" plt.axis(\\\"off\\\")\\n\",\n", - " \" plt.imshow(img.view(28,28), cmap=\\\"gray\\\")\\n\",\n", - " \"plt.show()\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 10,\n", - " \"id\": \"9ef4f746-f342-4adf-bce6-cfdef0c8a1df\",\n", - " \"metadata\": {},\n", - " \"outputs\": [],\n", - " \"source\": [\n", - " \"def train(model, device, train_loader, optimizer, epoch):\\n\",\n", - " \" \\\"\\\"\\\"Model training function\\\"\\\"\\\"\\n\",\n", - " \" model.train()\\n\",\n", - " \" print(device)\\n\",\n", - " \" for batch_idx, (data, target) in tqdm(enumerate(train_loader)):\\n\",\n", - " \" data, target = data.to(device), target.to(device)\\n\",\n", - " \" optimizer.zero_grad()\\n\",\n", - " \" output = model(data)\\n\",\n", - " \" loss = F.nll_loss(output, target)\\n\",\n", - " \" loss.backward()\\n\",\n", - " \" optimizer.step()\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 11,\n", - " \"id\": \"fd843896-03b1-4cb7-a5c0-b420bba2cff9\",\n", - " \"metadata\": {},\n", - " \"outputs\": [],\n", - " \"source\": [\n", - " \"def test(model, device, test_loader):\\n\",\n", - " \" \\\"\\\"\\\"Model evaluating function\\\"\\\"\\\"\\n\",\n", - " \" model.eval()\\n\",\n", - " \" test_loss = 0\\n\",\n", - " \" correct = 0\\n\",\n", - " \" with torch.no_grad():\\n\",\n", - " \" for data, target in test_loader:\\n\",\n", - " \" data, target = data.to(device), target.to(device)\\n\",\n", - " \" output = model(data)\\n\",\n", - " \" test_loss += F.nll_loss(output, target, reduction='sum').item() # sum up batch loss\\n\",\n", - " \" pred = output.argmax(dim=1, keepdim=True) # get the index of the max log-probability\\n\",\n", - " \" correct += pred.eq(target.view_as(pred)).sum().item()\\n\",\n", - " \"\\n\",\n", - " \" test_loss /= len(test_loader.dataset)\\n\",\n", - " \"\\n\",\n", - " \" print('\\\\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\\\\n'.format(\\n\",\n", - " \" test_loss, correct, len(test_loader.dataset),\\n\",\n", - " \" 100. * correct / len(test_loader.dataset)))\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 12,\n", - " \"id\": \"f47b42fe-4905-48fe-ad88-7f903e281ea1\",\n", - " \"metadata\": {},\n", - " \"outputs\": [],\n", - " \"source\": [\n", - " \"def test(model, device, test_loader):\\n\",\n", - " \" model.eval()\\n\",\n", - " \" test_loss = 0\\n\",\n", - " \" correct = 0\\n\",\n", - " \" # Use the no_grad method to increase computation speed\\n\",\n", - " \" # since computing the gradient is not necessary in this step.\\n\",\n", - " \" with torch.no_grad():\\n\",\n", - " \" for data, target in test_loader:\\n\",\n", - " \" data, target = data.to(device), target.to(device)\\n\",\n", - " \" output = model(data)\\n\",\n", - " \" test_loss += F.nll_loss(output, target, reduction='sum').item() # sum up batch loss\\n\",\n", - " \" pred = output.argmax(dim=1, keepdim=True) # get the index of the max log-probability\\n\",\n", - " \" correct += pred.eq(target.view_as(pred)).sum().item()\\n\",\n", - " \"\\n\",\n", - " \" test_loss /= len(test_loader.dataset)\\n\",\n", - " \"\\n\",\n", - " \" print('\\\\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\\\\n'.format(\\n\",\n", - " \" test_loss, correct, len(test_loader.dataset),\\n\",\n", - " \" 100. * correct / len(test_loader.dataset)))\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 13,\n", - " \"id\": \"a4d951f1-ade1-44be-93f1-de53051109eb\",\n", - " \"metadata\": {},\n", - " \"outputs\": [],\n", - " \"source\": [\n", - " \"EPOCHS = 5\\n\",\n", - " \"# our optimization strategy used in training.\\n\",\n", - " \"optimizer = optim.Adadelta(model.parameters(), lr=0.01)\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 14,\n", - " \"id\": \"c6072415-652e-4fb7-a0e4-57467ae23d23\",\n", - " \"metadata\": {},\n", - " \"outputs\": [\n", - " {\n", - " \"name\": \"stdout\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"EPOCH: 1\\n\",\n", - " \"cuda:0\\n\"\n", - " ]\n", - " },\n", - " {\n", - " \"name\": \"stderr\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"600it [00:06, 89.07it/s]\\n\"\n", - " ]\n", - " },\n", - " {\n", - " \"name\": \"stdout\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"\\n\",\n", - " \"Test set: Average loss: -0.5645, Accuracy: 6205/10000 (62%)\\n\",\n", - " \"\\n\",\n", - " \"EPOCH: 2\\n\",\n", - " \"cuda:0\\n\"\n", - " ]\n", - " },\n", - " {\n", - " \"name\": \"stderr\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"600it [00:06, 91.25it/s]\\n\"\n", - " ]\n", - " },\n", - " {\n", - " \"name\": \"stdout\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"\\n\",\n", - " \"Test set: Average loss: -0.6295, Accuracy: 6881/10000 (69%)\\n\",\n", - " \"\\n\",\n", - " \"EPOCH: 3\\n\",\n", - " \"cuda:0\\n\"\n", - " ]\n", - " },\n", - " {\n", - " \"name\": \"stderr\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"600it [00:06, 94.15it/s]\\n\"\n", - " ]\n", - " },\n", - " {\n", - " \"name\": \"stdout\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"\\n\",\n", - " \"Test set: Average loss: -0.6669, Accuracy: 7086/10000 (71%)\\n\",\n", - " \"\\n\",\n", - " \"EPOCH: 4\\n\",\n", - " \"cuda:0\\n\"\n", - " ]\n", - " },\n", - " {\n", - " \"name\": \"stderr\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"600it [00:06, 91.84it/s]\\n\"\n", - " ]\n", - " },\n", - " {\n", - " \"name\": \"stdout\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"\\n\",\n", - " \"Test set: Average loss: -0.6833, Accuracy: 7143/10000 (71%)\\n\",\n", - " \"\\n\",\n", - " \"EPOCH: 5\\n\",\n", - " \"cuda:0\\n\"\n", - " ]\n", - " },\n", - " {\n", - " \"name\": \"stderr\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"600it [00:06, 90.96it/s] \\n\"\n", - " ]\n", - " },\n", - " {\n", - " \"name\": \"stdout\",\n", - " \"output_type\": \"stream\",\n", - " \"text\": [\n", - " \"\\n\",\n", - " \"Test set: Average loss: -0.6974, Accuracy: 7196/10000 (72%)\\n\",\n", - " \"\\n\"\n", - " ]\n", - " }\n", - " ],\n", - " \"source\": [\n", - " \"for epoch in range(1, EPOCHS + 1):\\n\",\n", - " \" print( f\\\"EPOCH: {epoch}\\\")\\n\",\n", - " \" train(model, device, train_loader, optimizer, epoch)\\n\",\n", - " \" test(model, device, test_loader)\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": 15,\n", - " \"id\": \"b3fb979c-ce84-4657-996e-8509912581de\",\n", - " \"metadata\": {},\n", - " \"outputs\": [],\n", - " \"source\": [\n", - " \"# Saving the model's weights!\\n\",\n", - " \"torch.save(model.state_dict(), \\\"mnist_fashion_SimpleNet.pt\\\")\"\n", - " ]\n", - " },\n", - " {\n", - " \"cell_type\": \"code\",\n", - " \"execution_count\": null,\n", - " \"id\": \"4cbda6a9-b468-45f6-a346-3f86fa2e9214\",\n", - " \"metadata\": {},\n", - " \"outputs\": [],\n", - " \"source\": []\n", - " }\n", - " ],\n", - " \"metadata\": {\n", - " \"kernelspec\": {\n", - " \"display_name\": \"Python 3 (ipykernel)\",\n", - " \"language\": \"python\",\n", - " \"name\": \"python3\"\n", - " },\n", - " \"language_info\": {\n", - " \"codemirror_mode\": {\n", - " \"name\": \"ipython\",\n", - " \"version\": 3\n", - " },\n", - " \"file_extension\": \".py\",\n", - " \"mimetype\": \"text/x-python\",\n", - " \"name\": \"python\",\n", - " \"nbconvert_exporter\": \"python\",\n", - " \"pygments_lexer\": \"ipython3\",\n", - " \"version\": \"3.11.8\"\n", - " }\n", - " },\n", - " \"nbformat\": 4,\n", - " \"nbformat_minor\": 5\n", - "}" + "EPOCHS = 5\n", + "# our optimization strategy used in training.\n", + "optimizer = optim.Adadelta(model.parameters(), lr=0.01)" ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "c6072415-652e-4fb7-a0e4-57467ae23d23", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "EPOCH: 1\n", + "cuda:0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "600it [00:06, 89.07it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Test set: Average loss: -0.5645, Accuracy: 6205/10000 (62%)\n", + "\n", + "EPOCH: 2\n", + "cuda:0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "600it [00:06, 91.25it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Test set: Average loss: -0.6295, Accuracy: 6881/10000 (69%)\n", + "\n", + "EPOCH: 3\n", + "cuda:0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "600it [00:06, 94.15it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Test set: Average loss: -0.6669, Accuracy: 7086/10000 (71%)\n", + "\n", + "EPOCH: 4\n", + "cuda:0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "600it [00:06, 91.84it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Test set: Average loss: -0.6833, Accuracy: 7143/10000 (71%)\n", + "\n", + "EPOCH: 5\n", + "cuda:0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "600it [00:06, 90.96it/s] \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Test set: Average loss: -0.6974, Accuracy: 7196/10000 (72%)\n", + "\n" + ] + } + ], + "source": [ + "for epoch in range(1, EPOCHS + 1):\n", + " print( f\"EPOCH: {epoch}\")\n", + " train(model, device, train_loader, optimizer, epoch)\n", + " test(model, device, test_loader)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "b3fb979c-ce84-4657-996e-8509912581de", + "metadata": {}, + "outputs": [], + "source": [ + "# Saving the model's weights!\n", + "torch.save(model.state_dict(), \"mnist_fashion_SimpleNet.pt\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4cbda6a9-b468-45f6-a346-3f86fa2e9214", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.8" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 5 }