From 465fcb011667d8810ceceb1283f12ea8cfb7a6b5 Mon Sep 17 00:00:00 2001 From: TheRiPtide <g.zaugg97@gmail.com> Date: Wed, 22 Dec 2021 10:16:25 +0100 Subject: [PATCH] fix: swap to onehot encoding started --- models/internal_priming.pth | Bin 13301 -> 13301 bytes notebooks/internal_priming.ipynb | 220 ++++++------------------------- 2 files changed, 41 insertions(+), 179 deletions(-) diff --git a/models/internal_priming.pth b/models/internal_priming.pth index 7eb6ff99f2a924ff4bc1a60a12fc26199d0b0e09..eeab5fda317b000d341c6d4f6badf410ba6e96f0 100644 GIT binary patch delta 8903 zcmeyG{xy9=1G|M+`<cC$_GH<!En&9bP^)IABGGOezG0*NBNuslf!$4Zi>q(gnbz^y z`?A#8xBZFT8{o~(@kH@S_2eDw9ujFi_V(?`ZMIYG=GdP;lWPx>T)MT|V6p^9hJ<|6 zi+w_d6ZSoNeRSWSg!X+PNuM_7os(y9WJo-z-+w?;F~Hs-ahgLJ|Iq^=$t!b$B_~U8 zW=JF^dpjfr_}Z_Je`;@W)!YFj`Mm9f+T<CW83HB@5C9T<*R(WcvH({>y^#A<yH6+9 z*{v&>WXJP(jore)`F1meXWLyj*<|M)z1mLg+(J9mxIVi**CyEI=y%&)k?Ob0eZI`@ zP-BnXgOw}oq(9HK+n2S|PF8lmU6RuTyZ@P+><pu4*ts`1*)3A-vFq9zVi$9v&F*S( zrk&s1YP&P1d+a#->+M3O&9*yaxUhb=-j@mc6hd0|Y382TE6g#&?$FCgc7EYZ_LFm! z?Qex}*&i3UYUiK4(N3%LhTSH%V%xuQ7Iu$BciJVE?X<ghcD|iB>tws=r1f?ok8|xl zR{7YSdE0E~T`z0*mm|;4(<seu`d>}E@{PH6kGwtYno?}+(ii*NZ8A%?o4UZpZiY^M zqTTtIW_I!Bws!n8JM0u{!|hmki|sCPd)X~?X0<y~;%H~Pw$zS8tJ>~=o}C@HVxpZJ zSB2eXJ3+h2b!B!xC0y+0g)7>v;I6lI?2NXJe6MP!k#No~(6Ga<q$|sAlII?~j}=Gk z<}GR1cP*!6-}dc`_g0>b*~_s0sI4K#GP{QQq8_`YZjE+IH%;ws+)uPqo6B#f_HnM= z%aC+C?try+&v!K2eYI`0`|Da_S5e$-mws}I-7nU7yR%O_?0n|7*a_K9u=~gxY?ppE z&@R8f(=Jp$)b99$sdiK5x7w|ao^9v7yTGn3vD41{-YUDNA#?2X%$L}iygO=l^vwyo zOVhU4)m!cFvU~G;u3ho}19nS{XV?ieowNIVN60?gPQhNc@_?P=wncWiZztHDn7P$< z&c`?VO!^k@dtN?uZ!F(zTRGKYJA0EGcE#K?>@HrLV7EeSmfb#|DR$}owRVS<s_o(( zRqcegEU^0&w$|>Z+8R5SiR<keC#<vUvs!Am?(zz|dsiCk?dC=;w=3q{Vt40Mt(`#X zPP;>UkJ!0u%&}Y0Fwsu_$zr=35}WO|22QhUROq!^T#{hd_q^54;(e;!+OHjU5ewSv zJ}mIH>lSmcb2N9d`!uK3?s#g5UDZAZyS24Uw#!*-_uXaOwofQUb)QmjhuuW`>2?l| z&+R0YjqD??@!Jcf)PJ_qUcS}tyCsjk3}2kht)vXQ6Z{kHt}XAhyE<=;U2oHVyZ?5t zY|rrTv#Xl4*KWp}19rPsEwf8FGuKY3dyyTp^hP_0-K*>#-CJU(y<)oE`)xDrN@wr4 z`#trHo%y*VcGbLF?F4yu*vUKYu=6aNVOO+hxt-pwU3Q;0-?uB>e9Uf9y}&NJ(u{j{ z94mg>{o&kgXVtRZj_uzTJDz1b?e;rvuygr&$nLEVtNpYC9`-f7n)b?3y7rT|&a!)B zveRz<-Y>Q`=8pRmPf6RV7xvkHvFEqzoi)?;+l9w=S2P~lS&3b<3!S#bZkO;$JLQ9C z?WX6?vfC=V)b8}H)pi>07wp<Y*VxtH_`Ji;;puuiQ=2xs?GDrJw(ePEr}%$@odNR- zyL7cFcA{72+iCpmvfCEB$u6&aq22lqC+*%=Ew{V6dcIw^;BGt3pX=--vKHAnn$5BM zD8Aax%YBC3!l2o9F}b_#O8b`Bsm)z)*Bw98Znsp0o%T!yd-2Je>=Gtyvdg-?-1gqp zj(WQ*ZQJdP9@g7>*X+0Tc_3haW7=Iixyw)OEQ@~H9W+>Mr>z)lC-ZTm-4Xs3c8B?= z+41WxvD<civfX8-<#yupSJ_D{JZ$IEwAoJK=?c5lbu;XmUDw(%7tOLezjv*j)XJ%L z;!6+MSrsg?yYp$MU3TIII~}_tc9nnT*j-7RWOv|x{am|yEKBUXjF#9H&+V{#Q?tM> zsj1B_x-`YEXW3%Akm6Z(pCVS;wQIN8iF{dN=e}pQoxI2dyM~7rcC$OW_srE{vO8Bk z)6T?VqMiTbi*|3X@Y-vpn%VDEHM9R3B5vP&;I&<B&pW#X;@x(s#~bXPed)G4#IwLo zVgD+-+?bVitLwu~+J(K{Zg+>}lwHH=m3Gx7*X^9PT(%3}_1sSK<9543yS;YOMrZ6& zjvTZrJif+muKY5)ez~=FOv$(GYMOW2u|C;i7qVlQ-SX#a?BY)DwL9%|*Y4E%qjryv zez(htI%&r*_RsE!(rr8QNtf&%ef@41{)fq){|d8xYV>)#61T&4^}gc#_Rn;~?0M_F z>}^lz*_ZTRvSYb;&2Aw}jGe2N&A$DszU{4>yJ63cMU!phL_}>er0>|7nm@49Qa)(c zow&hnbKn}g$l9xRx*XT-LQ8M#vva$*FKXJYeZK=9?dwh0zE3m#)xM2sOZVBy+}d}T z;q1PX6-)LR^DW&sWB=KGGv{up-xun%bDuZ!`h9ONtlPIg@A|${gTwod%-Fl{G28il zhay(*W6?Rc@B7o;`+Cjy>|1r<`94F<OZ#@D+}rm)_{cul_gD8Fd%a=bmU;X3MHpS! zXJ`9rAJh2<`;?Yl-&e)6ZQsg{Yx{Qk-q_b<eQ%$^`aS#ZMPJ(Y=humSvi>Lb9iH)e zpZfgzL;JKd_wAEPdAQF>?9jeh3J3Rfx$WDR)qZ<lG~eTWY+pC*EBC#)Pc`$&K0Ub| z``()D+}G@UeV_E_Rr`+kFW)C$|8$>Q*u{MtHf-2;Z~MA^$CjSoxAybaeU~QR-j{#$ z^1iv}FYWu6aCKj`!i9ZrC2#Co`uNViinaUp8NJ=G?^)Wleb?(ZZQ8fD?cTm04!icb z&Dpnaz0rz&TkAIO^LE~~FVX$NzNP8M_8IbT-nZW8+P-Mb_4~|KPwd;E`f%UBjd%7r zZFsWp$JV3!&i+2WPs8QOzV~^T_sKi#-{(>GXy4C@mHTS89NK5|{^34#lhym4IzHUD z^zPby{OVWt9c;U@ukrVReJ6Cb?5mgQJi9M@>)L$`e@^bJ<XX1RG5^9o|8-CH{h4xi zU%0`}eIh}Z_i4U;wXa;{#=ccEkMC2J-LlWxV%fe$70>r^6<*l)Uj5;|Q>#z!`zv;S z-$S!k`x57F+qX&h<-V9>_xD{6+qh5k>$-hMpS;>v-L`$-zM_@;WDL*k<Ny9@U;E?L z``FXg*6(Zlx^&-$&FA-hT>NC;65W;io+Mq_SDJrfU(|<v`xdRZw@*Fc-oA{E)%#}e z-LUT;!?}HvG<NO#SMY4#h3V_}aWt;mSJ!`VAEV&?eQ)mW*jLwke_uQM%6)maF6?6~ zc)l+s=+!>!wU_o~JY2I+=jNJyj9FLr{Y*WuPc3=hzUf;x?aS4xKe(@d=k9%zmG<wO zcIo)OgfkcRrL8-=PjK(aeHm-^?3=jZ{JwI>75h$XxU{eA?z4T;6<79sY+tj_)n)s> zb1#?f%W>GSFYx)feQm9W_K7XuvCsY1_I=Y+uk9=Sd4AuQnk)P4_;>9ye|dDDV)dDQ zj3@8x6O4Yk@9VF{`vT`&+NYhmci)!!=|}dNE_=PtQTF)0*Y(Txb^my}Z|90t``n`L z>}xVxzmNOw!+oz3m+!lgc3>Y<*2#V5J5KCNdboaH$mUi1ObYMpGtj)hZ;{aHebxIe z?VFT#cb`$)s(n3OyZ7llzp+pK{IY#3X0P41_Tv40u3Jy;`}5+;zQXOR_et|D-KTMR z{k~qe>-*|opIN={RltFLR;4%hsRzH@7jW?8zM9<U`@$FR-S;Bq!9LktPxq;m?AT|y z;?lkq%OC8k&se)Jz4XjJwF|HIwZ7lKZ`<Q%`wlx?-^Zl9bzkfE<@+ibuI-!s{r<jh z7hmn09JYMlvX2M%Ex5R6U*!DD`xXS<+?SBNWZ$wK&-O)_oY-d`aJznAeA~Kx2V++5 z^L@BvAAjM+ePtd8_l3TEwC_pZmVHe+Pxn>7IJr;DZ1ukNuMh6K%=~<xlJ?7eahluq z&EdPSPcZZJzEgj9?c30OU|);y(|s1-4(?0jy}vJrXYamdog@1eNZsBSFLZF<=l$FF zZGU@ZpGEnyeG9tp?)(1a<vx=oxAtvku7A2O{@9a!f`7K``*VBuzU7Wj_f1dVw(s4A z{rk?eZ`k)IX4O6osiXTO>z?j&KYx6mtl^%0b5@+*xAxfceZft4_8D!tvCpS>{XXTo zefw5MoZMIX{pLQ~lb82RTfSspC)bsI(<8U;+qV14zE<I#`wlKyweLXuvVAGxxA$>! z9NZ_Sc5>g{`h~mq-Q!-m?`+)teJzV`><gXrY~S;1tM*mzI=Qdy|K@$NQ5*ODICXU2 zbj2t8p6Kq}xAOg^eYbqh?lX?sy6?d3)%%JR9_~~Ad}d$5x25~;>fG5EUHy9BasM^@ zLO<Tz_xJjZeUgiw?Q_3>d0)_@J^Nl}Z{3&rcKg2X0!R04d3bGKS?QjA^)i7=_O<;x zx6kYP>V2CfPw(^EbYb67zlZzS9hUFAuDf(!=-Hk7+<)BNcks-nea?@r?5opSxi2v0 z$-dQF&g`38cz9n+#L<1Vn@{aaE!n^C(&GF37-t^a=lx~(J}<qs`{vnf*w@c@XJ6my zjr-mvuiF>>`_aAzp=0~@n?B!nF#PDg?K{rZ?@RUExlhde?7l4uXZOW@e!Oq#nYH^4 z#_r$uxc~URTBh^+RGzHgS2}C$zR-Y+`#zMO-d9<;YTvhmXZLmOy0uT`$E$rIvo`Is zv|hchPi*(T8_Txr({OmX&w=^HzLx$g`!Y5k+cz&{-#(AS*Y`biT)A)B%N6^yb{*Si zzjg1vbg4W0T8is$?^7sVvXB4s$$egHU+pu<*tU<`{O-O<@q72lHSE~Ob?d~w`huJL zI=`*oH_`LzKEYkL_Q~{Y+c)#$rF}myZQ56s^kAQ*>h68&_nz&0^>WWX|IC~F3R{ls zD>=4!-|N^V`_6q^vQP5;#(hs`t=o4a@7BI&wvYEURXyJKg!|GyL54H?6zZdo?Yl5( z$G#btU+i<8yl3A^@f-Up6`t%1Xxy=H@~iXvKAzpZ@5!zU`zEBW-q%;Xd!J_0>wSwQ zR_vRby?38}&E9>F3(oHg3wyFJeA$tGu5v5)`5)c6FU;iJzTlPH_Br_;-e>y#<i1_& z5A0*jy|r)g-n;uQr(fA;(0FCv`OKI5WQ`u|tADul_P)ze5BE9UI=wH)bM3wet4sUV zXdmC_vT?~iC8^E(ZhLIlcZTQjzHhnL_x*YLeBZ@6ulD8DZrv9xwQ8UJ>W%xJU%9n! zj>DCGfq`rHNgsW*Pm6cWzQz47_gRZ9-{%>%YoBNE(|sFLkL^2j;o!dFH<$N4w^_T- z<<QZ6TN!TbTlDyB{XXgL!~3Qv-Q5>F>Ds=XbC&Gua9*}=x5?FgQEgZEc}=;v&;Q}0 zebHL4_I;SNYTvPIul7w~y1tM9*{OY}j4$q6Ew_E&naFedroY*+@6ehn`;PYB+!wI^ z{JwO-XZuW@pYPkNyM5mq?t}YGuRYv%#QE61&tG5eljwfA@936O`(9|?+V}5W{r!FK zEYI$<d$Dfc{SU|Y*{eU=XVQ3Q-^}AD_a*IpxbLR??tOpGJlq$UzIq==;@y3`jL-L7 zO1QXB_r&deOE=x!H=*y~K9A1p`%Y)v+c(F1$G*iK7xvZtzq?O*!-0M3JMQm$b@9x; zbGqC19jU#rZ*tCyeG!?f_xY__wa>%y@jh|aC;J-f^{?y`-o9&}nb(qi4Ng1utztj9 zFQekwzKfe~?=#U^x$n@jrTg}7T(Xa~;`Tna+^hTE?!COvfn(D?yVO1V-UnaYXUqL^ zU*-BI`}E~k?Q2{4WM8cOt$l^Y5BJ?^S+dWj=ls5^S<Ch@ORd?bb!`8>G^Hc^uCBPf zPyGGnecK;i+845E)xLU{zPtN$&TZb8e{}ag!{9UfROEK<d+oe^-}x=O_D!gHy06k~ z`Mz^$Pxqbvv}fPpz329oEV;JN@7a}o1v3`!n`?4=pOpT=ea5C6_T8AfdEfDv8~eBe z@9fiFv3j4-p3VEDxo_?}K4Z&1pQQ)(_1xXF&%NjMzRS~2?0clSY~Qbfjr*3jyr|z- zaO2FrC0EbxJGF1mJ}&1Y`-=9h*jI9Q`94#j7yBk3IJ58Qhh6)&O**`9Yssa3I}fhf zr}E{%zRgza_q`I?zVFiEhx?e?j_><ea%rFI&O7^*UtHd&we7|})wApOi7&dluZjQM zzT@Y1@B98~<Gz$1XZHPKJ+QAo_US%Z^T+#|-k;o;yTAVOzE74{_Nk|D*_Zr(-9C#Y zul7|rz1+87|H(c{y&L=Fg0Jj*d291Nm$%pVF+JP2Z|#Bu``Rz8-Dlf%Y2V7#5BD8? z^=#j(rMvfSxP51zPx=0RqPJh{J7~XTU$w~EefF>J?mPSI@jhGmv-|jF-P_mweAT|S zGal{ZnYDeNB;W0QMr&^EyH@XbW8d_b*Y@>nKC>@l{rP<l{8sGK)w{Q^>&xSPzva&C z+cNRyKK==-_QmMl-?!q_l6@(axA!sUz1~+6uyo&itu^~*8(rS#dU*Z5i=r>~Nl#n1 zPy71aed&77_RUy!W?${9XZyk|PVQT1aeCiA&ZqlM$L-w5+q!SxX7OkH{+2%9H&N=z zzWTE}&+L<P-L_A9{^5NFjqCTBO<KNhbH<^4_l(Z%v*TUAuf5>OzLt(v`<#yL+sCu% z*}jyONA~^axV`V=!VUX$_buP|L+8Z4yECrsOL@O|U$*9<eJUXr_Eop;+9x&l;=V)s zFYJr4xw((&?dpBI?yTFF@N3V$b-Ww*rCqzX@8k8w`%Z1VRlo1mgiHI3dSC6^X#03y zn$^vHuS=HiyJ>b|U(o$c`yP}(*w^WHXkWO=nSD27PVN(WziwaY^{4wTN-y1ade{AZ zF8f#R(>;4^pKt2JeZCDZ_sw@WzwiF8WBU%uY~3d<{dC`)`Rn)Tn%v%Z{nYAx#}jVs zyJUEC-`YJp_XQn1x^MEiyZcmf>zC|vezkO;lJ(Ag<}thWiIzUzH@WlNJ|3mD`?yZ+ z-uF*($3CB~llx|WUAB*V{iS^x2OjS`x!~fyV!0LjistOzSCxBvpQGE3eb0@~>`UBn zaGw$Xs(rj#*Y>^CxVrC!^0R%sAJ^?$cjeeVZIx~NIv*X|cmD12ebpz{>?>Y<d*A!k zQ~NyY_b=PGq~q|u=qJbb^_*O>?{M<deOaFt@0;d!Y@c@Y&3%*gF6{H!c4eRXf@S++ zH}2RM{(a-V>vfOzol&~BZvn@ieZ`Yk?tAv?&c2D8U+vqjd~hGL#Oi$qrrg>WxNOV5 zr>_s}JCS!`UuEQ`ece0G?K>K{X5WOS+xuKQUhi|)f4(oj<G{Z9i-EWH#a+0zZ?ehZ zeG`tJ+E>zjbYGzDvV9--uHUECxMm-x+OB<ua(nhIZNI$FmwWv_?kAV`NnAX>?|;_q zeRB@4+PC%8iGBUwZ||GC{L#L-=6Ci*ZQHT$Y3G@Jrmm;<t-SeSpONvUed%}3@B6&r z;yzB+P5UPHJ>NI+>&AV%Sa0lelh|0lZ`G^g`|fzG-RHCL<-UMtYxiA`*t+l6;~V?f zcn|D*u<+Twb?GnmZF_KIALrTa`&J%*u}{<e`o7h=*Y|a%JlZ$)-~D|SH4pdoF1ohw zEBDcTeB$@_b?<+=Pu}t9K2eLS`>MJR?YlE;#lG2pw(tAhzF}X5&b@v5k{9-!N?5$l z`OuDiX>RpL_boCwvd?Mfv3+{RxA&PH->^?-!h?N}Pi@&}w)@4t``0e*oB4UmzH7hl z?yI`JZr}Wqd-ugj9oTmyWb?k++7I@1sqEVK#res;m3I5~EnU28pVguL`<Cz7xbL^~ z(|rpIUhO-2XYD@Ch5Pq?6FjxgJ^kXob92t@^H_9mUzg*PeJVls_Z_KUc3_|C&t?1O zr|#Uh(f`H11L@EAH3uKucWcj$eSf=d?W_2=d*3YfL;Ggtuh_TM@5Vm&IVbm-mtNR+ z_R5NVY7Fc5y<T-<pRd`reO~vT?>kj}f1i%@@_jnJ$M%`Oc($+c_p*I<QP1{Gy}WT> zJ<IWZr@WT!(_FG-pZBSq`@Wyrwom!<gMIb04y@Xzd~p4~gV{Uxg_&;HmwNm1zO3lY z`(*AP*ynrV?!JX*_w2JN-Ldb``RDr{cdp-e{rACrLctsNtz3C@-|sz__BoxtyD#j? z<9%i3*Y?#M*}HFN;*xzYlQ-`3Ub}zaYSs1os&A~^cOvfAzEbPk`*uvZx=*HI@xE<; zPVUoDf3|ON_~ZJ0dG-7DJ)O06AJ2*X`?l=gyl?*XGy7yV-`f{==H9-n1qb&X-E?Q) z!|+@C!sEB^GiJE4@A2Ce`&=WI?MvBwaUXZdjeX|sSN1&*xW129?(#le<0JdNEZ@5? zb<c`@|5T6eJF)H1KF*_e_OU)Zv#-1H(!SMt+xOYHJ=vF7wrgL`(U<!&7S*5Hw=w9| zKE3Jd_RV0uxNm3r=6zbBSNB!Dd$q6f_TzmUE-&6UP2=o7)8pIrX-!+ZuRib6J^`%* z`)sZ~*~j3vb>E4uOZ$$W+rID3q?`MAwC?ZYD?PApcFop(r!rpc<IcIaZ)5eLeTh4F z>{FB5y6@VBRr@OEKi%i_e$77nbDQ?%1~1+xRbR7gUvcx%eTJW(?t8WN#J(2~H|$&D zux{U>2}kzX$sgW#$mqnrkn)rJ7M#1XFL=eheN5IT_RX4eb>HkSd-r9RUfuUfbo0L1 zS}XQ7yuZ1x@Z9o!DwTKkRZ1P*$NlZZzID-S_r>e%-8V(z{JsRcd;31`eZ24Wue19O z{9Cqf8~e6>uU~K8SO4+C@_oXsC-yO)+P5!j&Ha5X*KX~zbGx|j`>TEXSZCkZr@ra_ zKErhf_suweZQnty>-(G|AMW$sc4}YI)hGMTH7wqzWxi_PP2UsywuT?vR~>qDA9wB2 zecIoS?DKcuy3hH>^L_ON5B4elTe<Jy(=Gd&o-Ny__vqxlR@v+OKB*kvw|VZP`hDwM z@9z6l{Al0jXIJ+9)84ah=bfedR;In)R~!0ppT*0U`!-nJ+PA=A(>~Mf*Y?d{yJBBQ z@_~JffmimO{r_~Iz~M*xOrCAqxBSAMeXG_i-)H1}e4pd2llvzAd%5qu`sIC=lUMJ1 zR<v<n>V>QOIQ!S_`#R;yzP|bA_vPzf-<SSx?Y?=A^=tRdoxgS8`R!Zx-QmB#Prm2T zzSleN?z^t}YF|y*)qN`U&-Tr8UbgSnt|$BY3UBWF>AGj%lb<K|y?Od{-xZ5n`@%kL z+IRTKwS6&SulE^UyuGh!<N19XKcC&_Ibr9%J?vNZX-nVRH|OlbecQV?@2eNsu<y{i zb^D~RuiCdS==Q$7)2{A&Re$yHzU$nN_ib)^x=%^);XccbmHX<sm+ia$W6!?-4J-Fm zyX@Lme{=i36*}wp?Yp^l-z$y1`}A2}?z_|bWS_ysUHeMeckJ`{v}K?8nhpEbxu4v3 zeA=UZ!XcOU`Nf^yr^UZ{U(T^r`@Wujx$ltCihUbH_wPIHerR9fpL6@Z?cA_W-Q?1~ zdbh~M`;J;|+o$CJWZ(18kM<=#y|r&n{ic1vire<>OuV^IV%Cm*Z1Q{e{SQ2`?@G|h zeV43X?UM`HxbK$4(|u2G9N2eT?Z`giV|(_^Zr!(UZOM&&%>9q|ebV2tZ(-QeeJ%Cd z_Brf0vClbV_dd&0*Y{noJ+ZI+=CyrU>$dI-&3(Raq28JLeb=X++*k5-@xEQJ@9s<g zyksAL#i@N#6Zh_8`n7G}4U@C`I6pnuS2+E~K30v3`|8w|>=T;*eBYm<yZh9B?A}+e zadh8>=r#MEwO`$*{B74h|5-cs+3z{CZ{F#<`=&|l-}mIpp?%AxuI}sRxW8}i_e=Zk z99_N7nt$iMy={m08I@n#cmHYqu6>&l&hD$7esrJtp0oSjA6mNa{pt(*5>p@SJIeTS zUx)X`eb$aw_ubfdWnWsz^?mV<hxYw=^<ZCI_04_33tsH|rh0LorQzCr7TfmkJ0N^? z-_n@d`wn(5*{5;q>Aqy=qx*OhSM1|@d}Uv#<KcZv<L~X`d$xIB`h^wy_&1;2*DP~l zUu?bmj(ry<9^2>bad=<c+3ox89bCDu;>Lx25nJ!>``5UB-{z#t`}WVjzE8>gz&@ta zkM?Eo-QSn;c;CL&p-=Z!wq4jaPkPC|!`B|~ljJ|UFG1<TzHPBP_kCbovG4iCz55s< z&h86I+`lg|a`V1tHOKbJ9zL+|p6j!H0WwGTy+}R3?|kr$ef8Pur}u?y-LkJp;Ke>3 z+g1C%TE5t)$g^c%@|k7(jyPY~7gN1rU-N>S`|kQ*+m|>0&_2rxPxtkmJG{?><@`Qw z-b4GAs$Sp6C3byZM*h`(N{`O%dwzY_zQkLb_g&m~YM*rWoqf}Jp6x4gzPK+Z_TE0` z$*cDrUwCF;tm6KC_ZfEXd-`L2{XUgfkN5HLKiPNF{lvaN>nr<in%>#B=EU876SuD1 z=OeLsUxdTSeU0jm_Idt1vhTt2+xwb7o!s|0bN#-Wvj_Io*WcQgqWNN<zv`NO^-uQf zlh)X>uZ?fbz8$~z?z?5PV&B*4r}n+tvv1$3O9%EHR=BpWr}@>sS83b#T{v`LUuD(Z zeb>C}5ANIHyl!8t?23KGKd$a8J#=v2i{yLzQl@U%cRByUzFWl`_E}xnvQN_P%D$UF zAMO*re|jH((Z+p6HmmoUh}_vXKYi=Iw6|;b$=L1RH&f@;zQU`A_bI$zypQL@-F+IH zpYHo?wPoM8_51d<2p!qC_TJWg#UJkN(~ml~&-=r=eN7EV_id}6zJ4Ej=#hOJ&2Q{u zx_fgUZ}Q813_tGe+jQjRzWscA_MLsUcb{e3>V4sjC-)hyS+~zA;@G|kdKdOFF`n7C zIrY`PH!+X)W%zH~w|vQxeWxU^?qgcDbD#8|JNsT<-nmaEZS_8-m(TWn&b_$r>%m+5 z7FR#qml||wpZnB3`x3sq+~-(+d|!Q$$Hjdcmaf_t$GLak&wtnVJ-BskU+Uvi`xs8{ z+!rcva$n!7m-`G}9@&>)^kCmAi39tdwm;Zs^XSOF=bx_c>wk7>pZU4x`)pU-+b3^v zd|#8y#eKn-*YE3$xV7)_#FzW7YHrv!L;K9WuVqj7d756|_kI4QeMj_<?DL%Wbf3lL zv-^rqKCj<*#pm`uC#4Ph{<|*Q7k}mIzMKgg_nmCHysubq`@Z!n7Vi@?-?%U7?9F|> zvB&qdDsJ1CH~IQLt>cUL1!+CnSE8_IpJ?!=eP6Gi-*@=mxqWwU?AynA<mkR+g_HaK zf7-IoQsC4+Zh`arj@fP5ccuFFKHsRF`_ckd?91`kx$pM86Z<T;)Zg9boPU1bZT_A6 z9t&UJclplweJ00`?z@+AW1qmGZTt4UU$XCV(xrW08?Wtqbmr*3<nR0UiFuseH_2q} zJ}L1h`=*$m*>`>G!F``ap6z?PVc9;{_!Ilo7rokdTIu3GmOE$m?S8y@pNPP{eUlp2 z?z_3}`9A6J*ZVr=FWKk4d;h-v#KZdn*uB{~UaMYGo_s>H!hmT@l-;$X$LxxqY~J@? z^5ni?pXK}36>Qxn<#}V@jK#P1mGocOw`1aJ@OpsVYO_vGF3<{)n8WbQPIl`gdn=Yg zyOgJb;FSby>Yp}GzM+*NA)^;#ziq0HefO$=`#kG5fF-Xk-SBmCgm#96QT0;$XUzWg zDq*ke;|h+0CAseLyqSDMJ3~S_kjHMaZLysY`*GWi{F-*4MFao&mTj3Fp@U^5!3CXy zdKSmG`^0v|?B^CgypLH=et+X`$NjIQTK6?I_UyYD#Ia9v;T1b;*XR3;dc^j#dS2Tn zIBlw3cWAktO-A;<2WLLnbzM~6x8(Y%eMUlu?cQx$vM)yS!#;5x2m9Q|$##Xabob3# zz+vb9t>3QUaEYDGCv$tRt(i8SW-si-YZ~mt%kw?$Lb{jQ?ddkOHx|;je^5WemcjJ( zKGtBb{a2@+-1pP9%(gkSe_xp1x_uXd_wCypw9zgxRCnKT53~Kn>wEUw$HnajdGY?5 zxQ&xJ^eiMgZ>`>EHSOKLNlH)cJSCLC{+B+i#6LMgFGJ$ViU#}J|6T28M+@5jHkk_! zx$wEiK2E-&cY+1H#$$=T1<TT{)drIv=v%OW*KWudSh8FJt<#7!uw((R$(Uwf$pT)7 zaoNC<1)K;33@ur}5$kJc$pVhV2l`@@7Z@tBfFljWxnror0*)jQN5V*n1so|LPKc2b g#JDOW3l^|Hwi#KlfZYs|<}g-b0lN{zaWUQq0R8_Qo&W#< delta 8903 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 WvS0zb86?eNti%F#BZ%W-yb%C`;0cic diff --git a/notebooks/internal_priming.ipynb b/notebooks/internal_priming.ipynb index 55fd43a..d1c274f 100644 --- a/notebooks/internal_priming.ipynb +++ b/notebooks/internal_priming.ipynb @@ -22,32 +22,13 @@ }, { "cell_type": "code", -<<<<<<< HEAD -<<<<<<< HEAD - "execution_count": 80, -======= - "execution_count": null, ->>>>>>> d2ef840 (chore: started cnn notebook) -======= - "execution_count": 80, ->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df + "execution_count": 14, "outputs": [], "source": [ "# importing the libraries\n", "import pandas as pd\n", "import numpy as np\n", -<<<<<<< HEAD -<<<<<<< HEAD -<<<<<<< HEAD - "import matplotlib.pyplot as plt\n", -======= ->>>>>>> d2ef840 (chore: started cnn notebook) -======= "import matplotlib.pyplot as plt\n", ->>>>>>> 93ea318 (chore: added training function for cnn) -======= - "import matplotlib.pyplot as plt\n", ->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df "\n", "# for creating validation set\n", "from sklearn.model_selection import train_test_split\n", @@ -59,18 +40,9 @@ "# PyTorch libraries and modules\n", "import torch\n", "from torch.autograd import Variable\n", -<<<<<<< HEAD -<<<<<<< HEAD "from torch.nn import Linear, ReLU, CrossEntropyLoss, Sequential, MaxPool1d, Module, Softmax, BatchNorm1d, Dropout, Conv1d\n", - "from torch.optim import Adam\n", -======= - "from torch.nn import Linear, ReLU, CrossEntropyLoss, Sequential, Conv2d, MaxPool2d, Module, Softmax, BatchNorm2d, Dropout\n", "from torch.optim import Adam, SGD\n", ->>>>>>> d2ef840 (chore: started cnn notebook) -======= - "from torch.nn import Linear, ReLU, CrossEntropyLoss, Sequential, MaxPool1d, Module, Softmax, BatchNorm1d, Dropout, Conv1d\n", - "from torch.optim import Adam\n", ->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df + "from torchsummary import summary\n", "\n", "\n", "# adding the nn\n", @@ -79,10 +51,6 @@ " super(Net, self).__init__()\n", "\n", " self.cnn_layers = Sequential(\n", -<<<<<<< HEAD -<<<<<<< HEAD -======= ->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df " # Defining a 1D convolution layer\n", " Conv1d(1, 4, kernel_size=3, stride=1, padding=1),\n", " BatchNorm1d(4),\n", @@ -97,25 +65,6 @@ "\n", " self.linear_layers = Sequential(\n", " Linear(4 * 50, 10)\n", -<<<<<<< HEAD -======= - " # Defining a 2D convolution layer\n", - " Conv2d(1, 4, kernel_size=3, stride=1, padding=1),\n", - " BatchNorm2d(4),\n", - " ReLU(inplace=True),\n", - " MaxPool2d(kernel_size=2, stride=2),\n", - " # Defining another 2D convolution layer\n", - " Conv2d(4, 4, kernel_size=3, stride=1, padding=1),\n", - " BatchNorm2d(4),\n", - " ReLU(inplace=True),\n", - " MaxPool2d(kernel_size=2, stride=2),\n", - " )\n", - "\n", - " self.linear_layers = Sequential(\n", - " Linear(4 * 7 * 7, 10)\n", ->>>>>>> d2ef840 (chore: started cnn notebook) -======= ->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df " )\n", "\n", " # Defining the forward pass\n", @@ -123,13 +72,6 @@ " x = self.cnn_layers(x)\n", " x = x.view(x.size(0), -1)\n", " x = self.linear_layers(x)\n", -<<<<<<< HEAD -<<<<<<< HEAD -<<<<<<< HEAD -======= ->>>>>>> 93ea318 (chore: added training function for cnn) -======= ->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df " return x\n", "\n", "# defining training function\n", @@ -164,15 +106,6 @@ " tr_loss = loss_train.item()\n", "\n", " return loss_train, loss_val" -<<<<<<< HEAD -<<<<<<< HEAD -======= - " return x" ->>>>>>> d2ef840 (chore: started cnn notebook) -======= ->>>>>>> 93ea318 (chore: added training function for cnn) -======= ->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df ], "metadata": { "collapsed": false, @@ -195,26 +128,22 @@ }, { "cell_type": "code", -<<<<<<< HEAD -<<<<<<< HEAD -======= ->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df - "execution_count": 81, + "execution_count": 15, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 20000/20000 [00:00<00:00, 97752.58it/s]\n" + "100%|██████████| 20000/20000 [00:00<00:00, 27099.07it/s]\n" ] } ], "source": [ "enum = {\n", - " 'A': 0.0,\n", - " 'U': 1/3,\n", - " 'G': 2/3,\n", - " 'C': 1.0\n", + " 'A': [1, 0, 0, 0],\n", + " 'U': [0, 1, 0, 0],\n", + " 'G': [0, 0, 1, 0],\n", + " 'C': [0, 0, 0, 1]\n", "}\n", "\n", "# TODO: Get test data from issues 25 and 26\n", @@ -256,7 +185,7 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 17, "outputs": [], "source": [ "# TODO: reshape shape from [n, l] to [n, 1, l]\n", @@ -270,31 +199,14 @@ "train_shape = train_x.shape\n", "val_shape = val_x.shape\n", "\n", - "train_x = train_x.reshape(train_shape[0], 1, train_shape[1])\n", - "val_x = val_x.reshape(val_shape[0], 1, val_shape[1])\n", + "train_x = train_x.reshape(train_shape[0], 1, train_shape[1], 4)\n", + "val_x = val_x.reshape(val_shape[0], 1, val_shape[1], 4)\n", "\n", "train_x = torch.from_numpy(train_x)\n", "train_y = torch.from_numpy(train_y)\n", "\n", "val_x = torch.from_numpy(val_x)\n", "val_y = torch.from_numpy(val_y)" -<<<<<<< HEAD -======= - "execution_count": null, - "outputs": [], - "source": [ - "# TODO: Get test data from issues 25 and 26\n", - "train_x = []\n", - "train_y = []\n", - "test_x = []\n", - "test_y = []\n", - "\n", - "train_x, val_x, train_y, val_y = train_test_split(train_x, train_y, test_size = 0.1)\n", - "\n", - "# TODO: reshape shape from [n, l] to [n, 1, l]\n" ->>>>>>> d2ef840 (chore: started cnn notebook) -======= ->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df ], "metadata": { "collapsed": false, @@ -317,17 +229,32 @@ }, { "cell_type": "code", -<<<<<<< HEAD -<<<<<<< HEAD -======= ->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df - "execution_count": 83, + "execution_count": 18, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 25/25 [00:18<00:00, 1.34it/s]\n" + " 0%| | 0/25 [00:00<?, ?it/s]\n" + ] + }, + { + "ename": "RuntimeError", + "evalue": "Expected 3-dimensional input for 3-dimensional weight [4, 1, 3], but got 4-dimensional input of size [18000, 1, 200, 4] instead", + "output_type": "error", + "traceback": [ + "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m", + "\u001B[1;31mRuntimeError\u001B[0m Traceback (most recent call last)", + "\u001B[1;32m~\\AppData\\Local\\Temp/ipykernel_14744/999922600.py\u001B[0m in \u001B[0;36m<module>\u001B[1;34m\u001B[0m\n\u001B[0;32m 24\u001B[0m \u001B[1;31m# training the model\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 25\u001B[0m \u001B[1;32mfor\u001B[0m \u001B[0mepoch\u001B[0m \u001B[1;32min\u001B[0m \u001B[0mtqdm\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mrange\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mn_epochs\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 26\u001B[1;33m \u001B[0mtrain_loss\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mval_loss\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mtrain\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 27\u001B[0m \u001B[0mtrain_losses\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mappend\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mtrain_loss\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 28\u001B[0m \u001B[0mval_losses\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mappend\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mval_loss\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;32m~\\AppData\\Local\\Temp/ipykernel_14744/2669949571.py\u001B[0m in \u001B[0;36mtrain\u001B[1;34m()\u001B[0m\n\u001B[0;32m 67\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 68\u001B[0m \u001B[1;31m# prediction for training and validation set\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 69\u001B[1;33m \u001B[0moutput_train\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mmodel\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mx_train\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 70\u001B[0m \u001B[0moutput_val\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mmodel\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mx_val\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 71\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;32mc:\\users\\gzaug\\onedrive\\dokumente\\uni\\programming in life sciences\\scrna-seq-simulation\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py\u001B[0m in \u001B[0;36m_call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m 1100\u001B[0m if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks\n\u001B[0;32m 1101\u001B[0m or _global_forward_hooks or _global_forward_pre_hooks):\n\u001B[1;32m-> 1102\u001B[1;33m \u001B[1;32mreturn\u001B[0m \u001B[0mforward_call\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m*\u001B[0m\u001B[0minput\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m**\u001B[0m\u001B[0mkwargs\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 1103\u001B[0m \u001B[1;31m# Do not call functions when jit is used\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 1104\u001B[0m \u001B[0mfull_backward_hooks\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mnon_full_backward_hooks\u001B[0m \u001B[1;33m=\u001B[0m \u001B[1;33m[\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m[\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;32m~\\AppData\\Local\\Temp/ipykernel_14744/2669949571.py\u001B[0m in \u001B[0;36mforward\u001B[1;34m(self, x)\u001B[0m\n\u001B[0;32m 43\u001B[0m \u001B[1;31m# Defining the forward pass\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 44\u001B[0m \u001B[1;32mdef\u001B[0m \u001B[0mforward\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mx\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 45\u001B[1;33m \u001B[0mx\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mcnn_layers\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mx\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 46\u001B[0m \u001B[0mx\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mx\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mview\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mx\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0msize\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;36m0\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m-\u001B[0m\u001B[1;36m1\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 47\u001B[0m \u001B[0mx\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mlinear_layers\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mx\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;32mc:\\users\\gzaug\\onedrive\\dokumente\\uni\\programming in life sciences\\scrna-seq-simulation\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py\u001B[0m in \u001B[0;36m_call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m 1100\u001B[0m if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks\n\u001B[0;32m 1101\u001B[0m or _global_forward_hooks or _global_forward_pre_hooks):\n\u001B[1;32m-> 1102\u001B[1;33m \u001B[1;32mreturn\u001B[0m \u001B[0mforward_call\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m*\u001B[0m\u001B[0minput\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m**\u001B[0m\u001B[0mkwargs\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 1103\u001B[0m \u001B[1;31m# Do not call functions when jit is used\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 1104\u001B[0m \u001B[0mfull_backward_hooks\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mnon_full_backward_hooks\u001B[0m \u001B[1;33m=\u001B[0m \u001B[1;33m[\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m[\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;32mc:\\users\\gzaug\\onedrive\\dokumente\\uni\\programming in life sciences\\scrna-seq-simulation\\venv\\lib\\site-packages\\torch\\nn\\modules\\container.py\u001B[0m in \u001B[0;36mforward\u001B[1;34m(self, input)\u001B[0m\n\u001B[0;32m 139\u001B[0m \u001B[1;32mdef\u001B[0m \u001B[0mforward\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0minput\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 140\u001B[0m \u001B[1;32mfor\u001B[0m \u001B[0mmodule\u001B[0m \u001B[1;32min\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m--> 141\u001B[1;33m \u001B[0minput\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mmodule\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0minput\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 142\u001B[0m \u001B[1;32mreturn\u001B[0m \u001B[0minput\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 143\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;32mc:\\users\\gzaug\\onedrive\\dokumente\\uni\\programming in life sciences\\scrna-seq-simulation\\venv\\lib\\site-packages\\torch\\nn\\modules\\module.py\u001B[0m in \u001B[0;36m_call_impl\u001B[1;34m(self, *input, **kwargs)\u001B[0m\n\u001B[0;32m 1100\u001B[0m if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks\n\u001B[0;32m 1101\u001B[0m or _global_forward_hooks or _global_forward_pre_hooks):\n\u001B[1;32m-> 1102\u001B[1;33m \u001B[1;32mreturn\u001B[0m \u001B[0mforward_call\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m*\u001B[0m\u001B[0minput\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m**\u001B[0m\u001B[0mkwargs\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 1103\u001B[0m \u001B[1;31m# Do not call functions when jit is used\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 1104\u001B[0m \u001B[0mfull_backward_hooks\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mnon_full_backward_hooks\u001B[0m \u001B[1;33m=\u001B[0m \u001B[1;33m[\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m[\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;32mc:\\users\\gzaug\\onedrive\\dokumente\\uni\\programming in life sciences\\scrna-seq-simulation\\venv\\lib\\site-packages\\torch\\nn\\modules\\conv.py\u001B[0m in \u001B[0;36mforward\u001B[1;34m(self, input)\u001B[0m\n\u001B[0;32m 299\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 300\u001B[0m \u001B[1;32mdef\u001B[0m \u001B[0mforward\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0minput\u001B[0m\u001B[1;33m:\u001B[0m \u001B[0mTensor\u001B[0m\u001B[1;33m)\u001B[0m \u001B[1;33m->\u001B[0m \u001B[0mTensor\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m--> 301\u001B[1;33m \u001B[1;32mreturn\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0m_conv_forward\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0minput\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mweight\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mbias\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 302\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 303\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;32mc:\\users\\gzaug\\onedrive\\dokumente\\uni\\programming in life sciences\\scrna-seq-simulation\\venv\\lib\\site-packages\\torch\\nn\\modules\\conv.py\u001B[0m in \u001B[0;36m_conv_forward\u001B[1;34m(self, input, weight, bias)\u001B[0m\n\u001B[0;32m 295\u001B[0m \u001B[0mweight\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mbias\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mstride\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 296\u001B[0m _single(0), self.dilation, self.groups)\n\u001B[1;32m--> 297\u001B[1;33m return F.conv1d(input, weight, bias, self.stride,\n\u001B[0m\u001B[0;32m 298\u001B[0m self.padding, self.dilation, self.groups)\n\u001B[0;32m 299\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;31mRuntimeError\u001B[0m: Expected 3-dimensional input for 3-dimensional weight [4, 1, 3], but got 4-dimensional input of size [18000, 1, 200, 4] instead" ] } ], @@ -341,37 +268,10 @@ "# defining the loss function\n", "criterion = CrossEntropyLoss()\n", "\n", -<<<<<<< HEAD -======= - "execution_count": null, - "outputs": [], - "source": [ - "# defining the model\n", - "model = Net()\n", - "\n", - "# defining the optimizer\n", - "optimizer = Adam(model.parameters(), lr=0.07)\n", - "\n", - "# defining the loss function\n", - "criterion = CrossEntropyLoss()\n", -<<<<<<< HEAD ->>>>>>> d2ef840 (chore: started cnn notebook) -======= - "\n", ->>>>>>> 93ea318 (chore: added training function for cnn) -======= ->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df "# checking if GPU is available\n", "if torch.cuda.is_available():\n", " model = model.cuda()\n", " criterion = criterion.cuda()\n", -<<<<<<< HEAD -<<<<<<< HEAD -<<<<<<< HEAD -======= ->>>>>>> 93ea318 (chore: added training function for cnn) -======= ->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df "\n", "# defining the number of epochs\n", "n_epochs = 25\n", @@ -383,10 +283,6 @@ "val_losses = []\n", "\n", "# training the model\n", -<<<<<<< HEAD -<<<<<<< HEAD -======= ->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df "for epoch in tqdm(range(n_epochs)):\n", " train_loss, val_loss = train()\n", " train_losses.append(train_loss)\n", @@ -413,19 +309,8 @@ }, { "cell_type": "code", - "execution_count": 84, - "outputs": [ - { - "data": { - "text/plain": "<Figure size 432x288 with 1 Axes>", - "image/png": "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pfKwatUq1q1bd9CydevW5dTwC9JdIKuqqsa070MD/tvf/jaf/OQnx7StUlGSAQ8QcVbjiWnAK1VKVq5cyZNPPjk4uUdzczN79uzh3HPP5dZbb6WpqYk5c+Zw9913D/v+mTNn0t6e/v/9Pffcw4knnsg555wz2FIY0mPcFy9ezLx587jqqqvo7e1l06ZNPP744/z93/898+fP57333mP16tU89thjADz77LMsWLCA008/nRtuuIH+/v7B/d19990sXLiQ008/nR07dhzx+I62tsIlOQ4eoMddQ/mAtitQasyeugv2vVHYbU49HS787ogv19TUcMYZZ/DUU09x2WWXsW7dOq655hpEhHvuuYeamhqSySSf+MQneP3115k7d+6w29myZQvr1q1j27ZtJBIJFi5cyKJFiwC48sorufHGGwH45je/yU9/+lO++MUvcumll3LJJZewcuXKg7YVi8VYvXo1zz77LCeeeCLXXXcdDzzwAHfccQcAdXV1bN26lR/+8Ifce++9/OQnPxnx+I62tsIl+w2+31tLZVIDXqlSM/Q0zdDTM7/61a9YuHAhCxYsYPv27QedTjnUiy++yBVXXEF5eTmVlZVceumlg6+9+eabnHvuuZx++uk88sgjbN++/Yj1vPPOO8yaNYsTTzwRgOuvv56NGzcOvn7llVcCsGjRosEGZSN56aWX+NznPgcM31b4/vvvJxQK4XK5WLx4MQ8++CBr1qzhjTfeoKKi4ojbHouS/QafLK+nOhQmmTI4HTpLvFJ5O8I37Yl02WWXceedd7J161Z6e3tZtGgRH3zwAffeey+vvfYa1dXVrF69mlgsNqbtr169mvXr1zNv3jweeughXnjhhXHVm205PJ52w1a1FS7Zb/D4G6iQPrrCYasrUUrlIRAIsHz5cm644YbBb++RSAS/308wGGT//v089dRTR9zGeeedx/r16+nr6yMajfLEE08MvhaNRpk2bRrxeHywxS9ARUUF0Wj0sG2ddNJJNDc3s3PnTgB+8Ytf8PGPf3xMx3a0tRUu2W/w2XYF4bZW6qqrrC1GKZWXVatWccUVVwyeqsm21z355JOZMWMGS5cuPeL7Fy5cyGc+8xnmzZtHQ0MDixcvHnztO9/5DkuWLKG+vp4lS5YMhvq1117LjTfeyP333z94cRXA5/Px4IMPcvXVV5NIJFi8eDG33HLLmI4rO1fs3LlzKS8vP6it8PPPP4/D4WDOnDlceOGFrFu3ju9///u43W4CgQAPP/zwmPZ5JCXZLhjgnY3/yUnPfZ5tFzzG/LM+VcDKlLIvbRdcWiZlu2AAf2168u2+Lu1Ho5RSwynZgA/WZ9oVhPVuVqWUGk7JBnygOtuuYL/FlShVWqw6LavyU4jPqWQDXtw+Ivhx9LZZXYpSJcPn89HR0aEhf5QzxtDR0YHP5xvXdkp2FA1k2hX0d1hdhlIlo7GxkZaWFtra9IvR0c7n89HY2DiubYwa8CIyA3gYmAIYYK0x5l8PWUeAfwUuAnqB1caYwg/qPESPS9sVKJUPt9vNrFmzrC5DFUkup2gSwN8aY04FzgRuE5FTD1nnQuCEzOMm4IGCVjmCfm8tFQkNeKWUGs6oAW+M2Zv9Nm6MiQJvA9MPWe0y4GGT9kegSkSmFbzaQyTK66g2YVIpPZ+olFKHyusiq4jMBBYArxzy0nRg95DnLRz+SwARuUlENovI5oKcA/Q3EJQeQtHu8W9LKaVsJueAF5EA8GvgDmNMZCw7M8asNcY0GWOa6uvrx7KJgzgrGgAIte8Z97aUUspucgp4EXGTDvdHjDH/NcwqrcCMIc8bM8smlLcqfRaou23Cd6WUUiVn1IDPjJD5KfC2MeZfRljtceA6STsTCBtjJryHgL82fbNTb0jbFSil1KFyGQe/FPgc8IaIbMss+zpwLIAx5kfABtJDJHeSHib51wWvdBjBuvRp/oHwvmLsTimlSsqoAW+MeQk44owaJn1b3G2FKipXFZmGYyaqN20opdShSrZVAYB4yumhDEevNhxTSqlDlXTAA4Qc1Xhi1rcrCPfFuefJt4jFk1aXopRSgA0CvsddQ9mA9QG/8a3dDGz6EVub260uRSmlABsEfMxbS0Wiy+oycL/3e/7R/XNSH/7R6lKUUgqwQcAnyuqoMiHL25+azmYABnTIplLqKFHyAW/8DVRLN+HuXkvrcEfTnRqSUb3gq5Q6OpR8wGfbFXRZfDdrRSzdLsHRrQGvlDo6lHzA+6rSd7NG2607NZJKGeoS6Zut3DEdk6+UOjqUfMCX16Rvdurrsi7g27tjTCcd7D6dYUopdZQo+YCvrEsH/EDEunYF+/Z8iE/iAAR0AhKl1FGi9AM+064gGbHu3Hd473sARB1BqlNdlo/oUUopsEHAO3wBevHhtLBdQd+B9wFor5pLLWHCvQOW1aKUUlklH/AAYUcV7ph1d5Carg8BiE1ZgEeSdLTvt6wWpZTKskXAd7tqKBuw7ty3u7uFkARx1qZnq4906AxTSinr2SLg0+0KrAv4yr5WQp6plFenrwf0durdrEop69ki4ONldVSlrGlXYIyhNrGP3vJGKrITkIR0AhKllPVsEfD466mim0hvrOi7bov2cQztJIMzBicgSUU14JVS1rNFwDsrpuAQQ1db8c9972/dhVcSuGtn4SivJo4L6dG7WZVS1rNFwHuC0wCIthc/4LNj4P1TZoPDQdgRxN2nAa+Usp4tAr68Jt2PpteCdgWxzBj4msaPARC1eESPUkpl2SLgK7LtCsLFH39uQrsA8Nenh0jGPLVUJLQfjVLKerYI+GBm9EoqWvyA90Rb6JRqcJcBEC+rJ2jRiB6llBrKFgHv9FUQw2PJxc2K2B66vNMGn6f89dQRJtzbX/RalFJqKFsEPCKEHFW4+4rbrsCYdB/4vvLpg8ucFVNwSYpObVeglLKYPQKedLsC30Bxz323R/qYRgep4LGDyzzB9AXfiMUzTCmllG0Cvs9T/HYF+1vfxy1J3LUzB5f5Mzc7WTGiRymlhrJNwCcsaFcQ2bsTgMCU4weXVdRm2xVowCulrGWbgDf+eqqJ0N1XvIubsbZmAGoaTxhclh2ymdLJt5VSFrNNwDsqGnCKobO9eH1gTFczKQR//XEf1VFWxQAuHD0a8Eopa9km4LMXN6Ptxbu46eluocNRCy7vRwtFCDmqiz6iRymlDmWbgC+vTo9FL2Yv9orYXkKeaYctT09AonezKqWsZZuA/6hdQXFO0RhjqE/sIzZkDHxWn7eWgIUTkCilFOQQ8CLyMxE5ICJvjvD6MhEJi8i2zONbhS9zdNl2Bclocc59t4d7mEoHySFj4LPivnqqU13arkApZalcvsE/BKwYZZ0XjTHzM49vj7+s/LnK0xc3i9Wu4EDLezjF4BkyBj7LBBqoIUK4p/gTkCilVNaoAW+M2Qgc/ecbROiSalxF6sUe3pfuAx+YdvxhrzkzI3q62nUsvFLKOoU6B3+WiPxZRJ4SkTkjrSQiN4nIZhHZ3NZW+CDudlXjK1Iv9v62DwComf6xw17zZiYgiVgwAYlSSmUVIuC3AscZY+YB/wasH2lFY8xaY0yTMaapvr6+ALs+WJ+nlkC8SH9shHaRRAgMGQOfVV6TDvi+Io7oUUqpQ4074I0xEWNMd+bnDYBbROrGXdkYxDPtCorB291Cu6MenO7DXquoT1/w7S/SiB6llBrOuANeRKaKiGR+PiOzTUsGgafK66khTE9sYML3VRnbQ3iYMfAAlZmGYyaqAa+Uso5rtBVE5D+AZUCdiLQAdwNuAGPMj4CVwK0ikgD6gGuNReMDHRUNuCTF3vZ9+BsPH75YKOk+8PvZX3XW8HX4Ki2bgEQppbJGDXhjzKpRXv934N8LVtE4DPZib2+FCQz4jnCUBrrYG5wx/ArZdgUxvZtVKWUd29zJCh+1K+jpmNhTIwda3sMhBk/dzBHXSbcr0H40Sinr2CrgP2pXMLGjVwb7wE89fAx8VsxbS0Wia0LrUEqpI7FVwAfri9OuoL89PQa+dvoJI64TL9N2BUopa9kq4N3+GuI4kYnuxd71IXGcBOpHPs+fnoAkSkTbFSilLGKrgEeEkFThmuBe7J7sGHiHc8R1nJVTcYihUyffVkpZxF4BD0Rd1fj6J3b0SrB/D2Hv8GPgs7yDI3r0blallDVsF/B9nlr8E9iLPTsGvs/feMT1yjM3O/V1aT8apZQ1bBfwA75agsnQhG2/IxSmQUKYYfrAD5W9mzWu7QqUUhaxXcBn2xX09ScmZPttLekhku66WUdcrzIzZDMZ2T8hdSil1GhsF/DOwBQ8kqSzY2KCNbr3fQAqps4+4noOXwW9+HD0arsCpZQ1bBfw7qr0xc3wBPVi729PB3xt48hj4LNCjmo8MQ14pZQ1bBfwvup0wPd0TNDFzdCHDOCiovbIF1kBelzVlBVpAhKllDqU7QI+e3GzPzwxp2i83btpczSAY/T/dH3eWiomcESPUkodie0CPlif/mY9URc3K2N7CXmPyWndRFkD1amQtitQSlnCdgHvCdSSwIH0FD7gjTHUJ/cT80/PbX1/PdUSJdLdV/BalFJqNLYLeBwOQhKckHYFnV2d1EoEU5Vbr3ln5ZT0+7RdgVLKAvYLeCDqrME7Ae0K2lreA8Azyhj4LG9mRE+0XQNeKVV8tgz4Pk8N/njhL25GM33gK6aM3Ad+qPKabLsC7UejlCo+Wwb8gK+OYLLwk20M9oGfMfoYeIBgXfpcvbYrUEpZwZYBnyqvo4YwsYECtysI7SaGe3Ao5miy7QpS3dquQClVfLYMeAlMwSsJOjoLexepr2c3BxxTQCSn9R1eP92U4ejRu1mVUsVny4B3B9OjVyJthb2btTK2l3COY+Czwo5q3BM8AYlSSg3HlgHvq05PxtHTWbiLm8YYGpL7iAVGb1EwVLe7hvKBiZ2ARCmlhmPLgK+oSQd8f6hwAR/q6qBKekbtA3+omKeOiqS2K1BKFZ8tAz5Ynx69kihgu4K23X8BwFs3M6/3JcrrtF2BUsoStgx4X7CBJAIFvLgZ2ZftA5/bGPgs428gKD1Eoj0Fq0UppXJhy4DH4SQsQZx9hQv4gcwY+LoZJ+b1PlemXUGXtitQShWZPQMeiDir8cYKd3FTQrvoxUtlzZS83uepSl8PiHZowCulisu2Ad/nqSEQL1zAe7tbOeCYmvMY+Cx/ZkSPtitQShWbbQO+31tHZSpUsO0F+/cQ9k3L+32VmQu+AyFtV6CUKi7bBnyqvJ5aE6I/Pv52BSaVoiG5n35/fmPgAYKZdgVG2xUopYrMtgEvgQZ8Eqezc/xj0ENd7VRIH6bquLzf6/CUEcGv7QqUUkVn24DPjl4JF6AXe/vudwDw5DkGPivsqMYb03YFSqniGjXgReRnInJARN4c4XURkftFZKeIvC4iCwtfZv581enJNno6x9+PJjsGvnJafmPgs7rdNZRpuwKlVJHl8g3+IWDFEV6/EDgh87gJeGD8ZY1fRaalb6xr/Oe+xzoGPivmrdV2BUqpohs14I0xG4EjpdNlwMMm7Y9AlYjkP9ykwD5qVzD+0SsS+pAI5QSr68f0/kRZvbYrUEoVXSHOwU8Hdg953pJZdhgRuUlENovI5ra2ib3oWBacQsoUpl2Br6eVNmd+NzgdJNBAhfQRiUbHXYtSSuWqqBdZjTFrjTFNxpim+vqxfRvOmdNFRCpw9o4/4Kv69xDxjv2PEmdFpl3BAb2bVSlVPIUI+FZgxpDnjZlllos4q/H2j+/i5uAY+MCM0VcegTfTrqBb2xUopYqoEAH/OHBdZjTNmUDYGHNU3Jff66mhPD6+i5vhjn2USz9U5dcHfih/5oKvtitQShWTa7QVROQ/gGVAnYi0AHcDbgBjzI+ADcBFwE6gF/jriSo2X/3eWmr63hjXNtpbdlIFeOpnjXkb2btZ42FtV6CUKp5RA94Ys2qU1w1wW8EqKqBkeT01XSHiyRRu59j+WInuew+Ayjz7wA+VDfhUVNsVKKWKx7Z3skK6XYFf+unq6hrzNrJj4OvHOAYewOH2EiJQkAu+SimVK1sHvKsyfTdrqK1lzNuQ8IeECBCsqhlXLWFHDR5tV6CUKiJbB3y2XUG0Y+wXN8t6WsY3Bj6jx11DubYrUEoVka0DPlCTHp4YG8folWD/XiK+Y8ZdS8xbS0Vi7KeKlFIqX7YO+I/aFRwY0/vH0wf+UImyeqqMtitQShWPrQO+PDNdHj1jC/hwWys+iY9rDPygQAMBiRGJhMe/LaWUyoGtAx6nm/A4Rq+0t+4EwFs/e9ylZPvTh9r0blalVHHYO+BJtyvw9I9t9Er3vnTAV04df8B7Mu0KogWYgEQppXJh+4BPj14ZW7uCgfZmABrGMQY+y187/gu+SimVD9sHfL+3jsrk2EavOMK76TCVVAaD464jWJe+UKvtCpRSxWL7gE+W11FtwiSSqbzfW9bTQrtrCiIy7jqq6qaRMoLpHtsFX6WUypftA14yk210hvMfvRIc2EvEN+zcJXlzuNyEpAJHASYgUUqpXNg+4F2ZyTbCbflNvm1SSRqSB+gPFCbgAcKOsV/wVUqpfNk+4L2D7QryC/hIWwseSUDVcQWrRdsVKKWKyfYB769JtxnId/RKR8u7APjG0Qf+UP2+OirGeMFXKaXyZfuAH5xsI5JfL/bBPvDTxt4H/lCJsnpqUl2YVP4XfJVSKl+2D3h/TfoUDd35BXy8oxmAKY0nFLCYBspkgEgkVLhtKqXUCGwf8OIuI4IfR29+Fzcd4Q9pM1VUVlYUrBZnMHvBd+z96ZVSKle2D3hItyvw5jnZRllPK22uqQUZA5/lG2xXkN8FX6WUGotR52S1gx53DeW9rXz13x4i6HFQ6RUqPEKlBwIeIeCGgNvgd4PfBeUuQ0N/MzvL5xe0Dn9t5oJvSNsVKKUm3qQI+Kqps5jS/Fv+V8eX8nrf1uApBa2jMnvBdzztCrb9EhpOhWPmF6YopZRtTYqAn7LyXth9NThcBz0SOOiJQzQO0QFDJC509xvC/YZoHM4/Y2FB66iqnUbSCCY6xnYF0f2k1t9GT/AEKu54BQp4+kgpZT+TIuAJNMApf3XYYhcQzDyKwely0SFBHGPtT//ar6gjRUX4HeJvb8B96sUFrlApZSeT4iLr0STkrMY7xnYFA9se493UdD5M1RN++p9Bp/9TSh2BBnyRjbVdgQm3cExkG1sqz+eJymupC79BYufzE1ChUsouNOCLrN9bR2Ui/3YFB/74KAC++Ss5ZcXN7DU1dD51T6HLU0rZiAZ8kSXL6qg2obzbFSTf+DVvpmZyzplnsXxOI4/7r6KhczOJD16eoEqVUqVOA77YAlPwSpxoJPdpBE3nBxzTvZ03qz9BXcCLiDD7gttoN5W0P/VPE1isUqqUacAXmbMy3a4gdCD3dgV7N60DoGLR1YPLPnH6TB4vu5ypB14i2bK1sEUqpWxBA77IfNXpdgXdebQrkLf+iz+njuecxU2DyxwOYfqnbidsyjnwpJ6LV0odTgO+yPw16YCPhXK7mzXV9i7Tev/CjrpPEyxzH/TapxZ8jN96L2Xa3mdI7dte8FqVUqVNA77IgvWNAMTDufWjaX35EQCqz7jmsNccDqHuk7fTbXzs02/xSqlD5BTwIrJCRN4RkZ0ictcwr68WkTYR2ZZ5fL7wpdpDVe0UEsaB6c6tXYFnx3o2m5M5Z+HcYV+/oOlUnvBcxJTdT2HadxayVKVUiRs14EXECfwAuBA4FVglIqcOs+qjxpj5mcdPClynbTidTrokiDOHdgXxvduZEvuA9xs+Tbln+K4STocQWP4l4sbJnif/udDlKqVKWC7f4M8Adhpj3jfGDADrgMsmtix7Czur8eTQn37Py78kaYT6Mw8/PTPUiiVz+b/uTzPlg99gunYVqkylVInLJeCnA7uHPG/JLDvUVSLyuog8JiIzhtuQiNwkIptFZHNb29gabtlBj7sGf3yUdgXGUPaX3/KazOHsecP9wfQRt9OB59w7SBnYs+F7BaxUKVXKCnWR9QlgpjFmLvDfwM+HW8kYs9YY02SMaaqvry/QrktPv7eOilHaFfS3bKNhYDe7p63A63KOus0VS5t4ynU+9e8+ionohCJKqdwCvhUY+o28MbNskDGmwxjTn3n6E2BRYcqzp0R5/ajtClpfeoSEcXDMWUc+PZPlcTlILb0Dp0mw56nvF6pUpVQJyyXgXwNOEJFZIuIBrgUeH7qCiEwb8vRS4O3ClWhDgQY8kiQaHuE8vDFUvvcEr8pclsw5IefNXnTeWfzeeR61Ox6Bnvw7Viql7GXUgDfGJIAvAE+TDu5fGWO2i8i3ReTSzGq3i8h2EfkzcDuweqIKtgN3pl1BeIR2BX3Nr1KX2Me+GRficuZ+Fs3rctK35HZ8JkbL7/6lILUqpUpXTulhjNlgjDnRGHO8MeaezLJvGWMez/z8NWPMHGPMPGPMcmPMjoksutR5qzLtCjqGb1fQ+tIjDBgnxy79TN7bvuj85TwrZ1L95oMQC4+rTqVUadM7WS3gr01Pvh3rGuZiaCpFTfMGXnEsYOGJM/Pets/tJNz0Jfymh9bf3z/OSpVSpUwD3gLBuky7gsj+w17r3vkyNck2OmZegsMxtkm1V3zq07zIQiq3rYWBnnHVqpQqXRrwFqiubWDAOKH78IDf+/IviRk3x59z9TDvzE25x8WBBV+kIhWh9dkHxlOqUqqEacBbwOl00ClVOA5tV5BKUr/7d7ziWsRps4e7lyx3F6y4lFc4Df/mH0I8Nq5tKaVKkwa8RSLOaryHtCsI73iBqlQn4eMvRWRsp2eyAl4XraffRlWygz0vaGsgpSYjDXiL9LhrKY8fPG3f/k2/pMd4OfncsZ+eGeoTF65kGyfifeV+SMYLsk2lVOnQgLfIgLeWYGJIwCfjTG39Pa96zuDEGQ0F2Uew3MMHp/wNtYn97H1+bUG2qZQqHRrwFkmU11NlwphUEoCON/6bShOh92OFbdR5/iWfZQunUL7pe5hYpKDbVkod3TTgrRJowCUpukPpiT/aX1lHxJRx2sevLOhugn4PLYu/TjAVYtcT3y3otpVSRzcNeIu4KqcCEDrQCokBpu97hs2+szluam3B93XhBZfwnPMcpm7/MYmu4dsjKKXsRwPeIr6qdMD3dO5l3582EDA9DJw0MfOoeFwOnJ9eg5gUzY99c0L2oZQ6+mjAWyRQlx7n3te5l9Cr6wgZP3M/fvmE7e+8M5r4vf9SZreup+fDP0/YfpRSRw8NeIsEMwFvQrs4tu0FtpSfwzG1wQnbn4gw+8q7iZoy9v/6qxO2H6XU0UMD3iLVNXX0GzfTd/2Gcvowp14x4fuc87GZPD9lNbPD/4+2bU9N+P6UUtbSgLdIul1BkCnxVjpMJfM/funobyqAM675KrtNA/1PfQMyQzSVUvakAW+hsLMGgD8FzqOu0l+UfR5TV8W2E2+nsf89dr3wYFH2qZSyhga8hXrd6YB3zr2qqPtdftUtbOdjBF76J4y2E1bKtjTgLdTln80uM4WF51xU1P0GfG72LPkGtakO/vLb7xV130qp4tGAt9CxK/+J96/8HUG/r+j7Xv7py9nkWkLj9v9Df3hf0fevlJp4GvAWOmFaNcvnzbZk3y6nA9eK7+A1/ez8z29ZUoNSamJpwE9iZzQt4Q8VF3NSy38S3v2W1eUopQpMA36SO+6q79BnvOzRm5+Ush0N+EnuY7NmsWnq/+CU0Eb2/PlZq8tRShWQBrxi4We+wT5TQ/+Gr4MxVpejlCoQDXhFfU01b570RWb17+Dd5x62uhylVIFowCsAzrnqC7wrx1Hx8j2kBmJWl6OUKgANeAWAz+vhwJnfYGpqP2/+9l6ry1FKFYAGvBp01qeuYat7ITO3P0BfuMPqcpRS46QBrwY5HIJrxXcImB7+8su/JRXrtrokpdQ4uKwuQB1d5i46h41/uJjz9v+G+Hef4L2yOcSO/TjTFl5I3QlLwOG0ukSlVI7EWDQsrqmpyWzevNmSfasj64v18+rz60m8+xyNna9wEh8AEKGC3VVNyPHnc+ziiwlMPd7iSpWafERkizGmKad1NeDVkRhjePf992nd+jtczS9wQvdmpkonAHudx7C//mwCp3yK45ouwO2vzr4JknFIxCDRTyreR3wgxkB/H4n+PpIDfSQGYqTi/YBBRHA4nDhEwCE4HA4c4kBEEIcDpzjSy0Vwebx4AnVQVg2+KnDqH6FqctGAVxOmP57g7dc30/HG76hsfYlTB17HL/0kjIM+KcNDHDdxHBTnf1e9Uk6fs4KYK0jcEyTprYKyKqS8Bqe/Bm9FLb7KOvxVDbgr6qG8Fsqq9FSTKln5BHxOX39EZAXwr4AT+Ikx5ruHvO4FHgYWAR3AZ4wxzfkUrUqD1+1i/qIzYdGZAISi3bzy2rP0vvMcjv4IKaeXlNMLLi/G6QGXF5w+cPvA5cXh8uLw+BCXD3F5QQRjUqRSBpNKpR/GkDLpf9PP069jDMlEjFRvF6a3C4mFcA+EcMcj+Poj+HvDBGklKN1U0YNbhp+SMIXQ4wjQ66yi3xMk7qkmVVYN5bU4/LV4Kupw+6vwZh4+fxCHrwK8mYf+clAlYtRv8CLiBP4CfApoAV4DVhlj3hqyzt8Ac40xt4jItcAVxpjPHGm7+g1eFZoxhp6BJKHeAUI9A0QjIXpCbfRH24lH20n2dCC9HThjnbj6Q5TFQ5Qnw1SkIlRLlBqi+CQ+6n768NHnKKff4WfAVU7cFSDpKifl9GKcXozTh3F5weVLP9xexFWGuH043D6cbh8ObxkOpxeH04XD5cLh8uBwuhCnG6fLjcOV+dfhxulO/+x0edKnspwORJwgjvQvG3GAOEEk/VC2Vuhv8GcAO40x72c2vg64DBjaX/YyYE3m58eAfxcRMVad/1GTkogQ8LoIeF00VpcDVcDMUd+XTBnCfXFaewcIR8L0dB4g3hcm3hsm2RchGYtCLIIMRJGBbpwDUdyJHlzJHrzxHnyxHnymDS9xPMTxMoCXePohiQk+6oOljJDEgREhhWBwZP4VQDBAavAEWnr5R49Dlg3+rkj/YAb/TS8xg9v9aJ3s60MZhv7SGbJenr+MJN/TfkeIn5G2NXJFuW9r+G0cvM6uWdey5Lr/OeI2CyWXgJ8O7B7yvAVYMtI6xpiEiISBWqB96EoichNwE8Cxxx47xpKVKiynQ6jxe6jxe6A+AMdPH/O2UinDQDJFfyJFJJFiIJEg3t+XfsR6SQz0kezvIxHvwyTi6UcqTiqZwCTjmGQCknFMKoFJffSzZF4X0qesMCkklQRSkMo8NynEJDPBlkJSqfTrmeeYTIwbkMHl6YeYVPoAMsuy630UTJn4N2Yw4A99bejrg88PejZ0vfz/2w7dc86O8EvEjLitXCL60LeMfkvR0P05a2eNun4hFHUIgjFmLbAW0qdoirlvpYrB4RB8Dic+d/Y8vRfwW1mSmsRyuZO1FZgx5HljZtmw64iICwiSvtiqlFLKIrkE/GvACSIyS0Q8wLXA44es8zhwfebnlcBzev5dKaWsNeopmsw59S8AT5MeJvkzY8x2Efk2sNkY8zjwU+AXIrIT6CT9S0AppZSFcjoHb4zZAGw4ZNm3hvwcA64ubGlKKaXGQ7tJKqWUTWnAK6WUTWnAK6WUTWnAK6WUTVnWTVJE2oBdY3x7HYfcJTvJTObjn8zHDpP7+PXY044zxtTn8ibLAn48RGRzrs127GgyH/9kPnaY3Mevx57/sespGqWUsikNeKWUsqlSDfi1Vhdgscl8/JP52GFyH78ee55K8hy8Ukqp0ZXqN3illFKj0IBXSimbKrmAF5EVIvKOiOwUkbusrqeYRKRZRN4QkW0iYvsJbUXkZyJyQETeHLKsRkT+W0TezfxbbWWNE2WEY18jIq2Zz3+biFxkZY0TRURmiMjzIvKWiGwXkS9llk+Wz36k48/78y+pc/C5TABuZyLSDDQZYybFzR4ich7QDTxsjDkts+x7QKcx5ruZX/DVxpivWlnnRBjh2NcA3caYe62sbaKJyDRgmjFmq4hUAFuAy4HVTI7PfqTjv4Y8P/9S+wY/OAG4MWYAyE4ArmzIGLOR9PwCQ10G/Dzz889J/w/fdkY49knBGLPXGLM183MUeJv0vM+T5bMf6fjzVmoBP9wE4GOfIbn0GOD3IrIlM4H5ZDTFGLM38/M+YIqVxVjgCyLyeuYUji1PUQwlIjOBBcArTMLP/pDjhzw//1IL+MnuHGPMQuBC4LbMn/GTVmZayNI5xzh+DwDHA/OBvcD/trSaCSYiAeDXwB3GmMjQ1ybDZz/M8ef9+ZdawOcyAbhtGWNaM/8eAH5D+pTVZLM/c44ye67ygMX1FI0xZr8xJmmMSQE/xsafv4i4SYfbI8aY/8osnjSf/XDHP5bPv9QCPpcJwG1JRPyZCy6IiB/4NPDmkd9lS0MneL8e+K2FtRRVNtwyrsCmn7+ICOl5nt82xvzLkJcmxWc/0vGP5fMvqVE0AJmhQffx0QTg91hbUXGIyGzS39ohPZfuL+1+7CLyH8Ay0q1S9wN3A+uBXwHHkm43fY0xxnYXI0c49mWk/zw3QDNw85Bz0rYhIucALwJvAKnM4q+TPg89GT77kY5/FXl+/iUX8EoppXJTaqdolFJK5UgDXimlbEoDXimlbEoDXimlbEoDXimlbEoDXimlbEoDXimlbOr/AxgLcM3x+pyyAAAAAElFTkSuQmCC\n" - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "execution_count": null, + "outputs": [], "source": [ "train_losses_list = [train_loss.item() for train_loss in train_losses]\n", "val_losses_list = [val_loss.item() for val_loss in val_losses]\n", @@ -445,17 +330,8 @@ }, { "cell_type": "code", - "execution_count": 85, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.9995\n", - "0.9995\n" - ] - } - ], + "execution_count": null, + "outputs": [], "source": [ "# prediction for training set\n", "with torch.no_grad():\n", @@ -499,28 +375,14 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": null, "outputs": [], "source": [ - "torch.save(model.state_dict(), '../models/internal_priming.pth')" -<<<<<<< HEAD -======= - "\n" ->>>>>>> d2ef840 (chore: started cnn notebook) -======= - "for epoch in range(n_epochs):\n", - " train_loss, val_loss = train()\n", - " train_losses.append(train_loss)\n", - " val_losses.append(val_loss)\n", + "torch.save(model.state_dict(), '../models/internal_priming.pth')\n", "\n", - "# plotting the training and validation loss\n", - "plt.plot(train_losses, label='Training loss')\n", - "plt.plot(val_losses, label='Validation loss')\n", - "plt.legend()\n", - "plt.show()" ->>>>>>> 93ea318 (chore: added training function for cnn) -======= ->>>>>>> fb8e822ed92fba85e584305fcb18bdf45ad601df + "for name, param in model.named_parameters():\n", + " if param.requires_grad:\n", + " print(name, param.data)" ], "metadata": { "collapsed": false, -- GitLab