From f0e1e511f39e7e860b904d4fe5122a25bbe0b9ba Mon Sep 17 00:00:00 2001 From: Haris Iqbal Date: Thu, 20 Dec 2018 20:28:44 +0100 Subject: [PATCH] Moved from specific definitions(Conv,ConvRelu) to Generic(Box,BandedBox). Also refactored and cleaned the code --- examples/DeconvolutionNet/deconvnet.pdf | Bin 26549 -> 0 bytes examples/DeconvolutionNet/deconvnet.tex | 127 ------------- .../fcnconvandconvertedconvblock.pdf | Bin 23104 -> 0 bytes .../fcnconvandconvertedconvblock.tex | 47 ----- examples/HED/HED.pdf | Bin 25359 -> 37702 bytes examples/HED/HED.tex | 177 ++++++++++-------- examples/SegNet/segnet.pdf | Bin 25298 -> 0 bytes examples/SegNet/segnet.tex | 116 ------------ examples/SoftmaxLoss/SoftmaxLoss.pdf | Bin 61133 -> 61087 bytes examples/SoftmaxLoss/SoftmaxLoss.tex | 36 ++-- examples/Unet/unet.pdf | Bin 26436 -> 0 bytes examples/Unet/unet.tex | 138 -------------- examples/VGG16/vgg16.pdf | Bin 24004 -> 37061 bytes examples/VGG16/vgg16.tex | 126 +++++++++---- examples/VGG16ConvBlock/vgg16convblock.pdf | Bin 21898 -> 0 bytes examples/VGG16ConvBlock/vgg16convblock.tex | 46 ----- examples/fcn-DT/fcn-DT.pdf | Bin 31251 -> 0 bytes examples/fcn-DT/fcn-DT.tex | 140 -------------- examples/fcn32s/fcn32.pdf | Bin 23668 -> 37207 bytes examples/fcn32s/fcn32.tex | 121 ++++++++---- examples/fcn8s/fcn8.pdf | Bin 25775 -> 39209 bytes examples/fcn8s/fcn8.tex | 148 +++++++++------ layers/Ball.sty | 40 ++++ layers/Box.sty | 110 +++++++++++ layers/Conv.sty | 55 ------ layers/ConvRelu.sty | 69 ------- layers/ConvReluPool.sty | 71 ------- layers/Deconv.sty | 58 ------ layers/DomainTransform.sty | 64 ------- layers/FullyConnected.sty | 55 ------ layers/FullyConnectedRelu.sty | 61 ------ layers/GenericBox.sty | 55 ------ layers/GenericSequentialLayer.sty | 58 ------ layers/Gray.sty | 57 ------ layers/Multiply.sty | 42 ----- layers/RightBandedBox.sty | 130 +++++++++++++ layers/SigmaSum.sty | 42 ----- layers/Sum.sty | 42 ----- layers/Up.sty | 58 ------ layers/UpConvRelu.sty | 126 ------------- layers/init.tex | 30 +-- 41 files changed, 666 insertions(+), 1779 deletions(-) delete mode 100644 examples/DeconvolutionNet/deconvnet.pdf delete mode 100644 examples/DeconvolutionNet/deconvnet.tex delete mode 100644 examples/FCNConvBlock+ConvertedConvBlock (copy)/fcnconvandconvertedconvblock.pdf delete mode 100644 examples/FCNConvBlock+ConvertedConvBlock (copy)/fcnconvandconvertedconvblock.tex delete mode 100644 examples/SegNet/segnet.pdf delete mode 100644 examples/SegNet/segnet.tex delete mode 100644 examples/Unet/unet.pdf delete mode 100644 examples/Unet/unet.tex delete mode 100644 examples/VGG16ConvBlock/vgg16convblock.pdf delete mode 100644 examples/VGG16ConvBlock/vgg16convblock.tex delete mode 100644 examples/fcn-DT/fcn-DT.pdf delete mode 100644 examples/fcn-DT/fcn-DT.tex create mode 100644 layers/Ball.sty create mode 100644 layers/Box.sty delete mode 100644 layers/Conv.sty delete mode 100644 layers/ConvRelu.sty delete mode 100644 layers/ConvReluPool.sty delete mode 100644 layers/Deconv.sty delete mode 100644 layers/DomainTransform.sty delete mode 100644 layers/FullyConnected.sty delete mode 100644 layers/FullyConnectedRelu.sty delete mode 100644 layers/GenericBox.sty delete mode 100644 layers/GenericSequentialLayer.sty delete mode 100644 layers/Gray.sty delete mode 100644 layers/Multiply.sty create mode 100644 layers/RightBandedBox.sty delete mode 100644 layers/SigmaSum.sty delete mode 100644 layers/Sum.sty delete mode 100644 layers/Up.sty delete mode 100644 layers/UpConvRelu.sty diff --git a/examples/DeconvolutionNet/deconvnet.pdf b/examples/DeconvolutionNet/deconvnet.pdf deleted file mode 100644 index 11589f69573e7f4653f55d43f33df8be7a5bf4c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26549 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

Qr7CC-JRk<+UeYT7(g47knS}G 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 delta 16807 zcmZ6SV{m3s)2?INwr$%^Cbn%md1BkPIk9bXqKR#rXWsWa-}!NB*Q#2pcK_MkSKqy= zy7y=qNc<>p0tpxgHz#wlkqi~!ihm;MlEc}<4?O<4kmz!1CT&Q4t?gvN&KLnfK86QR zK0H0xe#ob@dE^eh|nMR_4Wbrb3zgL=Ux~tiPk(9yBSFi zoAs0D`&JM%=G`ko6tF7??hv*E2{!lh^}5sdbw%j^g*bb8`}YSvB1Q{9Z-i%YTaWww z!U^(v6Yx+-rXnKCz1E+TqyR@MLVq9(jLrJk6e1Af6hq7S1vbZJ{W`|{D8WP>LP&!r z(S#I|G=%e@n0Vtb_x+_FEjhP;2l^fAd^TSpj3~jQ5p5WjhXy>e3g@@HzoEDb=c^WV zyOR$&5%i)D57J990QCa^8QdQ-NGAF@Bg~9;mNS+IBsOBhCJ~Sq0%+J=-OYn~648$J z9@Njz??0|+q)}!31#Z}^6s7q=zf~yM$I8PYl4`?@RvLHdAgF-J9v*-0Ukt_y5%gJ6 zjJRDu{1dfVk3fvy&e93}KQRTtgcz@Gr*^{lsN&y_>WA`wX3qhAKU0i9&qIPgETlS! zpsG7*l_(wHEjtzcj$HOK2(K|uEs8QTIn0f5*x2nb*sNh3rk9fT1q&#H$!Xr340jcBTBMkx|k(J0d`<0BJN6)Jb|4iaza_iKMYHzKiukP z|3GOCV~zsY0J#{J`JQ}Cf0VPTwiOe^*v=`ZGcpx_xr%xMaiqJT=c2@d#-s>2wR`PK zHUjp?=nq$lv%0R86Lt|%3Konj$m_+X8(xDBk6NJ+8rpm-u)ZxdW0WT2N_N{miyFuF zjQT-PgndPp)Ui@t`zxKBfPo~m`q&7j*jyiCIvNBh2`!DLRgCIM#5lHN)p$Q|^wshv zd;Ij>wpxtK;(^!ml+L3Mq%#lwdPJYlixk(9UU_(G8zsm|Gp0DyA+nZ7;5h zL+3ibjsXHSz^%fra?zltqN(XOv(e8 zeH((XCuEnpp{Ry;U!qG zgMKBi3Pq_7UVy)Ai4ckiDFDAoo-zE7HYo?@!VCxpKu>{*%e&Oko|Zm2giDcT1ZwWv zU{B8{vlP5(7sRu9!t_E?r3@Ma=EcVV@-dVkT;w?oWLA6U`^qW14kaUAe}_{?-{}m} z7@);(GCZ?d$}97*Ie}HN#+B|aP^zaes}0SF#Ib9F8bFj?(Q_b=n3=I*KUQ4qj1F& zxhZgJmZ;je=`qr^25g!;X}p$1PNy}~2w9wJVJG;~&#Q4aY4tMrwnl9;JHh1h%ezgtL+2;CY(6@%_*&Oxj!v}hTM#_b1=Nkz zl312`8i48556M_%plPqG5!rk?lVZ?uZD0u(BMK=fnWH0H04z)Q4%V#p&)UV5ou`cH zsC!6zeW{s4YB;SrX1fp}nw3FHsAKe|ta5d%Fxcu?r6*!|8t|&&SeZN=xYfsK5OSA% zj?FB%IsPftqO)z2mJ01$4U}kL4Gd6Zbx`GsZPcu;bOh$Wt9PvhaI#vdd&ME&`4Rhi zjD>KM$*)#jfSOW)dtGUqHRH5VSn_i4ZpuhO9eA>`ek)TpGN$LmmJUQa2hpZExVq;| z$*)Pjy^WfrC~VroiB%@6-z3^WC^^)dCapq(vZtWFauAfpOnOSHyYa!}^pL^g$+1#3 z@$sN3Dhb7CG4zG$7^7^783z1VTGGa0xd(ZNmVp9gfB~M-#;@i;p}WdvA1z;tpjT}= z6Y06Z`4MsIflVpd`+puc`{!{w0~GCl9-mAv$+En#OD0cQR5nqB120o$B+#A*hS8tK zoyUO{&exJMxlhP|h_%dmG$Y%_+Rd=Bq!2J&rE@Xv=H=>xc(vqrkUqIJZ9q4 zFRc6xle5S`Kerus1vZWcps*|zloPwK+vBsKj(mt5doQTDAl_*@Ykb&WBz!>ueivAR zf<|t79(TA_M_GrdZ}7+Dl;y;Uqv5yFwJRs_?hd9WiHv(ir(EQ`D!{tQq5smh(q14OW#Yj-79dRI@SV-Y_(4UuBGq7lxR@$ly5_vi}E65u2vHEtv@} z&VOKTDDm7i|6b0T+H?ZlLIU8HP-8k^5Uo4-5Y+od73=F8&SbC=v-O7@}7x+?OxumQom(RuiDzK3JBfp{+t|9(=B0|`V*ZL9Eg9pC%Z((v-ku>3V zs2NVqyPy#LLo$`{ACg^-|B$rs?Lhwzk_MmF>;FaaPR58ot-edG`p-jLvXN1VS4=*F%9tpbNjf--r;&>v=!mtYGqJHfp1(cA(n-+}RvrMc71Q z9xN8LBG_V{Fm$qs-Vv@Ry_?y55sd;BraB{~uzZa&Gb^wKl%SB|?Kj|8kcDr1>Xasm ztIno%2d?z5ZT2e}Eq?#{=(O564>`V>jXx+>J$B8*{Hm{)=c>(YVbZjDVpD9VR?WJx zI+9ZWvD;+J4neBRr@u1^w<>}PzYM&MXG{INEiiZqs}0-z{RZTQ?H0GdS?AcJJyiP( zJRKN14AUf!gsleT*nE=lo28;Y3j5WmnVnjg#PQG#-YIq6n+C!}4Lt-EEo@`k4?A*d;Vg_}<_iayYdYB*ua2{%r-CT_%tnVIU(_ZZx@tYHNaGgaVQX zox$!Fi7q4#$otrsRe6U~(Uz9$_*U!sxy`)i7fgUH_+p#fn;f<+=;dG7b_-X2D0u0B zJH;d0IsWKsB^_>F#46`jv zDLuaHACEcZ=YMV-eMWi6xi-6;UQ!=ri0PbOL(AZ>9@zxP<~`s}X@Dh}iqX>?G#_mR zVT4CXx44Y);5E^K<`+`xl%7%#>MQ|Z)RWtOMqVJCCN1C>vW%HQKzSp4@=@`6fe*u$ z$LJO0lRpv%@R(e>^4JXg8WQwA6;9rD#Zp`H#J^+Q9b@Cs6ZHxZ!^}T-w(-fJz2(o$ zPFmDVYIXE5xi8Zsu);RT>EX4$eE7NI$SdBihK6v*p`4Fx`U=CP=Nu+K|UB$ zaKeBUl*@kmQYMx&TaCLm86<<83tzw`M9^DqNgaL|j{%=-$KmTtFSJf+Pg9e)`8_iQ5{n{-xx=~;?Ng1*OBgkP-KQou-kKGNc80Spyq+k?@~>nhfayG7hG=CYVnE>JxT{`OP9|%ET1oLh;51S zy^bP%cjr|KEAovHOp=wo0iY{tSOfbk_Ny4;9)3HUrXY2tunpjflM4Ct5>FF`IgBw* zV@FX3QxZz2*%rY>CIn5AvFp95D& zzS&oUMC_J{ys1igIeLp}@0WF;NPRWkDmc3f=qf3fFw??G$GBZP^TlM}Ee-n%aSXm; z^=C%=7Q=3+YA>&_I?QKufn$@*yS(syRc1m>ULg1)>;otgp$Z_fH$TXm(O0lnR>GE6 z;wL{O|C?`-rMGjh?9bZCPiI*6{P%U{gZz8*KWr2popC@~`TjcU%z=dk)rRrLuG_a? z2+QwqB7YbU`K@%cnT)9q$@^Vox@j=-_3Ija_lNN!|K4(BY}I7n1Z(fBLYn2=gq~{% z>$)wj+GAjA+X6U_aSByM>s*Jp7N5B*y?FE0FF&rtiNc$8q_w$j-ANETs7+p@9B1B8 zHxJ57qOpE91<8WCB{eQdcYr8@|Ey&Uj?{uVDK?GzY?pCLVi^bP~F{-g*Zo+J?p@^eOtD zmWQit?%{eD!TRhop1z0AUcWgE{IaV2!B~{;VF#>!Qmc zpKwOso&f@hvscEXxa^KNdhW;(e0qLnBVhP^W}Pwg&-+Pgsp=+WIhco}-%Cw-dQCUZ zJnO&Iv;;{RZWlFmU%0GAV&rKvMGSN0J18t za!RjPKTwb-;vh5$g)w&&%5dcI`~{qbeY)sP)$o#nemAw3C4^uF#app_Yto!li4q6D-%SYh3Uf3%fL7)i>QbB z^}fbNf>7{a$6nG=!LF=@)X`Nda5kI`Y)m?*{I4ubnK^?gA3*r}(p=hixe(OfEuf%< zOEz{F`ke7m#hsqTkLn`<(u#Vb?#W4Kq?BqZU>F1Mao0T+cPncD&!!`*R?HZSlW zL&}AkE?7z~17Yapy3{TW`VaM_g4V6juDQFfDN3NPf>Jjtj)lq=->uvvZR}lp4CwWX z>U{|NmN_8jLezZ!B=0|m6>L`7{mb@NuhE6p88Yt^u3lo<8rlnN-L@G>DOdF&!p#eU zV@AttYU)^WD}yBtR60O>b4NdIltV84{8vbOv^g-_wwY*pbvstz>pJ)~SdJ)4 zzOjwt!T74yj`>aZzj(LeCwu#?+{9bf*$q4a5yH)YnOCZiE}zchS8uNyzHLvhyorKv>`A(zu4VJ0~()16$%Qf8H%E!{GZC&=a>*gWOz z$lRc8j>eQ{`T<5TkBypx^Lt==PEsvC4DMLKQoZ?i%)ii+K4=h}4>)eQ3UskVz}>u- zN1kjD(ol^KnXMvQbc1VGfp|j2IS~CJW`Ny;Uw6xfKMry@8{+(vnBTV;#@j6@q*Z&a zj04qxan*V5WMQet!pN1S+!?$r+1Af#p`Q9L=Rev=$@Y2lg`nM-c6P#&|0m-C@c%dE z!#tMPj($2ha{iu%=Q{ z>y+a|r)&9D%5>A%RNfExI)VjsHqCh=xILHJq~-cq!DZ+699SM<-bl?!wek2=$fksO zuDCxdWoph{(dYI+61&9Wa?!rPHHbZy&1SPUyAOd&9^|ok-@qLxOr*Xr?$S`=5ibNM zTgEXCUKxG|Eh|V{(Mf+KEh{wqr?7Fgy!_`w87zt@?Y?wU_h<2c9Clm7fWbDO_c zF*e#}$w#6Skhsm?j>*}M>6AOde=4(Qvc#_bhMX94^r#@gL=o2p4s5H*y3Xb$#=sDLkk1u(ZH(=9bv zX(1muktK>=jYUYsGqM4+~N&;!;gxH!Ubo?roSfRmsm*7)426^!94! z+7<5rb`(32ng4w~Gxcy@-FJ2sqm-yl);Dt)&z@Y9_%U75LDSponAUrQxdV*0T{_{R zlJ#Hni;u_)S`;77Vr$>Em)4}45t$?jDcTN}hkiZ;oa1%P6o_sHeLW6?ny2*+$LLL; zSX%N;xxdGreD1g7(V$Pp1GlGiINgBQ3-g0X9&OdfT5a+1`rtM?DM7p1-5ZnxUMl8B z8I0IXrKm-X8>0>7mC;%$GoXl7D6czP(rVz2NKceEJGq@mX0z0qSSvLgDmrHVx-1s% z9@M}C8*WuTPV|>WfqTX&NC$cUQi`TH4D>BkdMQ3B_@)`!Vv&6-F5g9ET~NUNdIv#> z?$s{Li_zY|^=EGuw_MhuUSI^doxu84C){_hDjh3!p`5%YvOOu8M9n8nhvAD ziTVCK3;z>M5{6d#I|cP zdG3`50RyxIJTc)6w3*1r(Rl!!mB#%#UnPzH{y;$&AfD*5REk1?q?4iv0T8mlo3}^e zUhJnTXCoH+7mnKEvOl(UQZU+&qTtZ8t`Vgp%_qnBTR*p_0#+qT<4@I#k0VeJ9z+-&%!+5}_>H;B!cIdaOqf_pygjBil+`AKl zG{kMEJ=uIwIUX8SSCv8_c@Wh!>+Lms11(UL!8VT*RPFr70s4EOtdW=MQI|jv&QA2y zptBU1V?A15yV?X*Rm+GdlmHYIq?YdL(3 z+tY}>!BEOSAid920=WR+zl$DA%%-_)qszU=IEWTrV45wgIh#>8=+TS@UJmwe3Q?2)Fl`lLhlJ*9&d<_8?=;_c;tcV+ z34HgTCbKDFPsaWwAh7uH_OrGiv;<>jZ|dUeY-VKlpPhrTur&-bD-jcsgRwOXA0G^( zoSD6at0glLGaDQC|DITgI60Wu{`d6H`hT}XTFtky&kvyXMyF}TVb=e->1F*R z$AS<8f?w3$OVYz9A&M7mU}kQJ5?E=OWA_B~_73{~-`Z{bjTMNDG;hGf5Dg6l0of%= z{vBKZ1quL0_Q*g%avEE54+mlECIa#o2I`9d>#G1GBoqpWSNt>(^T+@bfIx@>ySxl)|9fm83)BS)8DOBRn{wg7CA19>2FeRm2xLbz2!80^Rt$;+ z!sO}!6pZBmBQ?Nq6eQ#+b$kE*`g#krwaa(SWC6fNU4!H#$6bj%40&xct-t$1#SCT}6b8O@8SJHzmxBw3NCbsz^ zb_D+B!37dT{MkACj`~i8g8RaUb9Hp|cmNXl>Q}M|K*a(9Ijyq1Bl1Po1tMC$!$gJ( z>;mkJfc69$Ld}22-F7(>35n|y0(INm)<5qeF#U!EnFWOu^=}#fpq<&GrWM6U-`d&~ zQUb$!(eRTo#2VkbUiybNKnZksu{-!d+mo0Nc?xJt{=xKJ6;=ue?}F?j1CBF<1nVa_gbUmM=Ka8jbAC73(G!5Xg#CTkwL~BoaI<=I zllqj~jki^Z)CX7s>@e2H1y%(`;hf~h{XA1swg2n;wuim~ZGsH?0(~2hp!Vp1eF0cw z36MTDuz!%N5!{?1BYrBMuQR^Y8eR-Q41a96xPX49OAq|ZwUGk8c1YUxQIB2PKW=~W zOTT#!f68wSw7xkLe>{X~^pVCLI6oYIehwfy1Bv|s$k$>Qq3yUpb}wDb0pFZ|&>k%; zTZH2b8QXrIt4ISpf{75_!an_C3<2#hYnX=>kP=+&pTDLEH(ys%g!`2e@_6w+FSLLi zcl2feZ`Tr2dv{w)z zLB4=!to|ubH_6RVpz94-5U!3PN5Iyp9@0&I+V!qr1W~{$v~T%AA8;UVKVS>?nUjbN zVYkO;{#zaiEo})(s zoQEIow)e9{-bT2OosxHo*$i81Fs~ub%CXxW&V zU3vN%XpiqcYd(S6jz`Z?6KEo;&HDvANtUO^kwM2nOukNNT1>;?x<#xClQD6-l@kH- z)dxyU?k67kBz9-%s^>%`ZZkfmCYoUb+3mjXCZKmw3TRt+Le5H97!d6*!p1a+Q}8>p zNLT<{Nt^A(X|heaDnbA<|KbVnMKn)7Fb3zhFkN$D*NTr}XD)#K1)V4-_MP<3TG>tu zG?G5%S9){V2uB*$FWOfuv99&&5~iK^rIMwIC-#|`*Hw?U0A^p8^xA~c*?=jYIj_U= z_|5Xf`s}#`_A- zbW8$_r+0y)@JOHT_?QK8*m^9FP!nwquIDXDMU}rnxt~>xBg($0DZV={MUjim&)(Cw zKXGYvL8G2InU8*$^GQ>8s3(WtL|ego!*A#9uTmNof>IViZ$Ry^*F1@Sr40qUw$YYF}yoZLJ0 z_mS#Cy|3nEIC(EMTSR2#pmo`0G=$OWzMU-Fesg(NV^Raz1GU6?{mWAC#z(S}cd3XP z9i1q!It$J2^?+lK%8Gug3+mD$`$XVW|fLiB|Y^ zLuW_PQXxA_*R;9AzK})!x2GwXp_4@PV<4$iwMZpJQX%D6FC3mja@wIo8L9V$BDRl* z4BYaJQE(H&w@&P=jhKe`f|09lU^sA!OAcWHl*|D;c7Tu(w$5>oIx^+Nm6&qtMI#_> z6Wq_Y*p+?r{0d|uQdKOpSuLEK=AkIbw)rmJXXrwMq~5vrz3TW(^n<2i$%IN{fSnF? zVjV7-v|Ss7>aZnk{VZgRR(t>tZZ4N(I&YuL7G-q5phhaTDeDXa!Yu)&%M# zt%BT?6rkIQodzfnRvHTC-g;2~Wr8FQ`YUd51D_}=l}I^y3eB2jlYg^;U7(OdA=edc zO6U13aI&Ncu{g@nxqB|qh|R@t#;&5PcX@Yo*M_efxr_3qwDI)yZ4$(3(Y{o>x9jQ; zdyb+R1Cib{rt=VHb#M6Y@@k(~GI4ZCb22}QJYbzz;fj% zkQq*T`UmQjOdtWw4|x4>^JWEeqU0HUJRs`Mr|Xth!hS>$E{$RG8O@R+ncGpxmw@NX zyyYe*xWYJA;~*LzqIX!~fzRW|bk4Ew2iZR7yGD0d@zh2Cy~N zg$ewpb+z%FAs@P%;{k2cUG4Wc`S}~+u3RbCe#+BFWRAd9h8EC#)oyy2iluNUJfffG zRC}Am&a!Fsdwy!vPeH=9g{-a_VY|IrpYuXTMK+Y?A94^rsUykNdv`1k(h;y#Opo8s ztkw=cju(kGO!)CNMN~D;*-aLE*#LzRUst2_-q5Y&^yZA=3)jV5a4VAq6^!xZ0@lP6 zCe`_Uy>uGNzvvVU8q;ZvntU@sQtFVt*Zn3I)_E*LAytOtEc?SnB}F08;8=1Ulql}c zScy&b8(G)I>r*>mHV~aQ2kR(`F})n*y4{6d>tQ!-RXtv`D9VXCHcRd>VgS>ngYmO_ zhod|5!V0{3%0A4;ViOr1C!+b4JUsQQmiD|hF^}qQyJtf0I+PfSGdK z@#JD?*<|Lgyf3r!Dfi@gOeFUR7dMNQn6K5UcCWC}nftqxyE*lpy177+_s>HIh&&*g z;dFlaC>&XcD4@nUq$1zOodB|@@UZ>yHFdQ)C6qe16U(~e*NZ08@x5iQTQ$yWu zDH|p&YT_fAe_HxEYXH*sDznQw1xUz(%T%#GcQl<(;mTPrE3J>cXy?5N>E*A7_?c+k zx9CZ8oxcF)y&PI&9Q+Z+JgnUqqZ^5Hm{rj2g=F$4;5(p-fTvE2eEC165wt6-2aNUV zYXivXs9`8!YSPaxhS~4-!>%LjqGR0)Xl1+G5Q;M_!?{+^vP`tUH zeo~-!;|zUUIT@I9iI^wXlWYegi7|%)8ovb_?L)vlfJWy=4$suqsiWqLC62*upNEW6`|~~ z>>?EKUQFKORWdAmD32uk!=3cy!I8&atp~v_piJg#|FU=H z0PZ7{;WVDol-FIG9ejnWsbA!PZ@FwcpxTn;=7_&`q~rL>x3I+ITlLt`I3xS>is2Jo zdKEBMELt%_@?PAGan`t`c$@6^0*B($5s>bW>d6Hc74_Hve2BosS2log)An+@@-|-R zDf>)-JnPt_DrtU=T%FGzY=T{*txQ136oCUxH2eaZooBinX{UcnQ?y&C&>$Rf!EwzW;&ep&1skPw&MVoVY%CqBay!KGKgq+Nw*)+ys~TLM}=3 zhb;Tjq}wzHe=B=0S6M!^BGeCAY3^f|`#mc?ww+}nI|1>XfRVJ4<~~@Gn+HI$W0AXx ziGM#TZH%kjxYcIGlc*_fXt~@u`9*YB>xo%5JzM@R?fg5_RecBbN?gm}-h{NZ?CUZ- zX2#VUEcL~%&xwd{B>ziw$woC#?Ba+!LWX~n)t@?_P>IBZD;+)Im*rv3YJ0*)Q8$o=MJ@&6_ zI`$&W66pELGI5yZXE{(=@q)QXIwWY?d!jbO(eb8@Vm{WO{b#@+kR5>ES_~Oe3VO6iMCgH@DT0mPPVL<<+1hM&=~o~cKu4nE%k>dvg^SGz{HQ)aOeH{Fm9qO~U(j+ub+hAC+Cbu>Lw(a@!m zL3rvqD;;-%zB9fA*{Y)P&UA#D8rVGw>10Irh{#U_Cr6sDOCc?8iJ zP+f~FFi>L4?dCu3Gq&dmn-{yK+F>o7)!oUzdg>Ja0#CeYPO?|}ECv(w%j0&>Q>W8! zjh(t{!FOTP5?BB*U#f?@KaVqv!l@r5>$@FugYfvexI=lr@|bkzbmA@al=9td1(}Yk zMC>FFooj;0ml0h4x{-RDuUFd%cNXqgsmX0P@P#*wo6_`fqWNt#w@ zX*LYw-gqjy70mA;e$=li(fO%IJeWW)Fl*cUGE&L^vTFsjko`TEC`$B{80DwI@|S_t z&s0s$mW6V|f$8$!wCrz6b#lI%!B{*Q6&-#aaV(XsG&986_YhYk&Js%l?0lMv-07*+ z|9$b!eqpcDA8f6{UbA>w`W#6IgW5hZ@#K_s0-gG3mlc__eyc86Xib-45hl>gxllNo z-Dj9?#w-Q&RIE7rY@E2Oa2RB(vIAsbGz`(-AMIKUYpRC$UJhl!a}V}lFVq+ya|>!pPc z(~rq?+dIK=QVp}CQV&7<#IQ{Tm`_&=%#N45bQ%HDrYw6Kmh=3K!2Pk#FR9yV>kva* zWG4Uc;++SB=$-Op7`)Tcqv9gEk-s))j5)RHX=qEqUE4jvp+B471Gs9!!4!jeDn691 zx@QmPD?pfO+RmgYkBc}j76mt^Bb09L%|BvwH-KLrBBDO-Oz3PNOb9mo>g$eng zJe5EbTc{ocqx_yCsnpAyL~X;jgLP~|TKaZT{1lfIAPhA$CKt`pllpjnfT0=F?Vi6k z?-xeT&)18^79(xG6nA9YE^|q^EOh>24mJU{uy01>)3J7Jo(Q>}zxO`D+uunBsujpR z$mFZC*DePgdKxPzffXvZJTksvCx@SLuKDn+p+?4t|m+PpmD=MSw$i82sIS7!t8 zDS6OS%;E|dcM$XpoKX}pv#A}@OZYBN-tJ-xP1>{X5=UzaPlMyIT{>~_vgD`vSG9b# zSL&DUvvFRyX;+E`*;;myW{{-wOHL1KnWH`X*h^SgD1ArSWPjB@y{lXPHuVtY05yxa zI(fEw@%jzZQ5;#d0)}}4ft}N={8R>ToCs@cm~N`W1${&PbL7P+eDu}2( z?%k!1pyDUBQ1Ovb7)=$OTpqDk>tfeFc4r~<`Z&b3v>FqWHsQNN4PEo|JVpFm~~cVJn4Jol??AYGyZ9#K_+v4*3fPSI{OY2FG@Ie$mC zbnOQA%>+cH^~5)#@qmNc@#m(8K*4Nk5%aPw{n5Iqse`8YJ#jjM4K*%v zJKboNx@4cqmy+G()E$#wcugW;IBqj#lHe_DmY$%sQ0s)xpjMS!GI}cM3{2fJJ3%Em zN;z2elWuOAmy`_wS9BWLz7wiKah@Ghzd2N)nC0v@$+^=Ebso2V4lqTS9&Uj)WwX&kpJdSMx{BILtJyjF>b==$*S$afuWE~Ao z-=HRXg&qM)A3V+J0!}?ESsZl|loJi1hYkH%66R)f{u<{n>SOh^4T)hZwvW?{mxGSlY14_K}cz z2qUPcV5kTHojKN3RFnNP&NJ~$dN^ zhhWGXY;bERcIlf_6=!Pca@T_2ogbC>;N^O>+wXqo%BL-{B)R3ymr2%yj4W_~zd~v~ z?QI80OHHd5kbXh&J+PES6D1FS73eTKmAabGNO8CUxbIRQ1wt+s*@PCIL8I|g&r*rg zyC{@MyM8j*T@ZGmrp4g8OLEF#V{;5m%JRMLM?&qRlDqyKW{fj*yjj(8quzWD;hx&c zv*;z5s6FISXooK)8m`zI8Ol8(kJu`d-SSdK%T_=wege?(9qus9kH6`T{4<@>l%2gn zl388=k#WddjlmX2w5E&UlFw<;&F7dm*3WK(2hC-6C)Z$x@wRyP9h8oDL z-?(@jc4b&*VQ}^Oi_7!IjXDw&C<$3KoZwu4QY!xHyYM~4oD9$G!8FS=8DHFCfzYa=ZK(pf`OD*2|4w{A3BC+7%kR|Z512+ z5M9aH^K&Br0U@S&6#$T?^%<%+P9>wgGlz@=iqe?~oe>H~mx?YNmdS?;OP#H|~bG$2yJ?oWoi|$)MB$O5MV1MN<25V~x2gby)D~^8W((=V?`7vmE#X(G3 zcARZ2WaowPbBiighk?B1(#8WQyXH|GV`=(hOO(kDWc!{)ALvSA7m5@i-kcKTCPc+?$Rx*3z6q-9o)vC0zQP!b9&3BiRo zKo`9AQM&sa`dRTr8m?Ee#s#n|!K=1n+rB-Q6-hE6jkeRjVe7HDgeBNG_CS)(8yB!g zN*;6{HEDs_;K#^CapE_O;k%HA;Ec4dF{yq0hG-nxM9dbbaak~Zg!16&t_{#=7GME7 znMTxZ;V*1_RsEExAtwWLoxk7rOUJPea6S2G%?PC~t*m*Rh7mTQ!&1h_Ub$?rgR?&c zzO6y(n_aH#Pw^}l<9+Ud!Hm90X1Kjf^u4{2%Puv%cRMy^MgU^B|20=qxPEtDFzc+m zTu2b67W@gQK9b%-^M{+GxMz)z(`G(MAOW#Ik7_!UH=TqeSxf`KD^)Z`v^ZCHnc3W{ zR>NytvE>b2iS)UGt+By+2)^m^0FH?z9NG$G>~UA;?a)LXRE2t||zV zLEJa4*2lF=p|R=5&L}*6S(nmVYz*^|8LA=9vLZ1|&HoDUu>|{DJX{q+&pR zkG$BEn{GhvY?HcWHi6%#8D?G;Ls31QG%WjkjmGj zqe{g^AJ7EE8FUz2@N!;;rtxGP0&JBhk_&N$Va|llW9(@ZLr6CSvN*g=q(u^`Koow< zy;A$@vy~B%BQL&1Wc!%DCq;@jOCvbLr^_O(w9m|DlnWmEDeBmOpo1GCv5@~7HRa@_ zt^$e?xGYRR8zwg#*#r}i^U2%(D_W^vLgp|3qP8qgmyA-^>ZbjB_%)*N`wJaae@S+X za0>nmF}CeQ5YeSvl+c#Xz((vMe%#Aqp)amK1`%^Wks&&?!8cxOQ(7rw2T7hy9aP|( zuo$y0HhCG3swvHuoCt)OE4e3z1eh~^glCyF*Bl>5-k(?ikhs46bLJcDz@INCc)-c@3 z^RakXtT2ocR?aT2|E5a*-+&1R8xzrge-p1&)p6KhLi3-i=ZeoR8+G@UB@2OYwW@B> z1K*O5faG)&C6iGy=6SyHxSR*JYqQ!QV0!NG-FdrACJhVG_LNnA`gY}WBR;1<>5M$kxGtk>2B%mRv;GxnxPgA8jz@5yiipM$?LJ+1jqSi8g1 zMO{U=2-WBd&qq9ppg$M?n>S#O{GXy6t{02ceMgJX`&Zsx{yOOGb~oC1V@m@<*Bt9|sNuVLguh!vo_(J=zIUmyTAFRn^ zzTh{X@tD5kZX%4X&5yPbTqe2i?X)w(vA1x?;%0fpal>|__5rN_;f-|c?>6uGETp`*}!AQXnC>E5TU!q`W4qQzY#HH_@zu diff --git a/examples/HED/HED.tex b/examples/HED/HED.tex index dace597..dd45475 100644 --- a/examples/HED/HED.tex +++ b/examples/HED/HED.tex @@ -1,106 +1,133 @@ \documentclass[border=15pt, multi, tikz]{standalone} -%\usepackage{blocks} \usepackage{import} \subimport{../../layers/}{init} \usetikzlibrary{positioning} -\newcommand{\midarrow}{\tikz \draw[-Stealth,line width =0.8mm,draw=\edgecolor] (-0.3,0) -- ++(0.3,0);} +\def\ConvColor{rgb:yellow,5;red,2.5;white,5} +\def\ConvReluColor{rgb:yellow,5;red,5;white,5} +\def\PoolColor{rgb:red,1;black,0.3} +\def\DcnvColor{rgb:blue,5;green,2.5;white,5} +\def\SoftmaxColor{rgb:magenta,5;black,7} +\def\SumColor{rgb:blue,5;green,15} +\def\poolsep{1} + \begin{document} \begin{tikzpicture} -\tikzstyle{connection}=[ultra thick,every node/.style={sloped,allow upside down},draw=\edgecolor,opacity=0.7] +\tikzstyle{connection}=[ultra thick,every node/.style={sloped,allow upside down},draw=\edgecolor,opacity=0.6] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Draw Layer Blocks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% conv1_1,conv1_2,pool1 -\pic[shift={(0,0,0)}] at (0,0,0) {ConvReluPool={blockname=crp1,% - numFilters={{"64","64","32"}},height=40,width={2,2},depth=40,zlabel=I}}; +% conv1_1,conv1_2,%pool1 +\pic[shift={(0,0,0)}] at (0,0,0) {RightBandedBox={name=cr1,% + xlabel={{"64","64"}},zlabel=I,fill=\ConvColor,bandfill=\ConvReluColor,% + height=40,width={2,2},depth=40}}; +\pic[shift={(\poolsep,0,0)}] at (cr1-east) {Box={name=p1,% + fill=\PoolColor,opacity=0.5,height=30,width=1,depth=30}}; % conv2_1,conv2_2,pool2 -\pic[shift={(2.1,0,0)}] at (crp1-east) {ConvReluPool={blockname=crp2,% - numFilters={{"128","128"}},height=35,width={3,3},depth=35,zlabel=I/2}}; -%% conv3_1,conv3_2,conv3_3,pool3 -\pic[shift={(2,0,0)}] at (crp2-east) {ConvReluPool={blockname=crp3,% - numFilters={{"256","256","256"}},height=30,width={4,4,4},depth=30,zlabel=I/4}}; -%% conv4_1,conv4_2,conv4_3,pool4 -\pic[shift={(1.8,0,0)}] at (crp3-east) {ConvReluPool={blockname=crp4,% - numFilters={{"512","512","512"}},height=23,width={7,7,7},depth=23,zlabel=I/8}}; -%% conv5_1,conv5_2,conv5_3,pool5 -\pic[shift={(1.5,0,0)}] at (crp4-east) {ConvRelu={blockname=crp5,% - numFilters={{"512","512","512"}},height=15,width={7,7,7},depth=15,zlabel=I/16}}; -%% score32 -\pic[shift={(1,0,0)}] at (crp5-east) {Conv={blockname=score32,% - numFilters={{"21","4096"}},height=15,width=1,depth=15,zlabel=I/16}}; +\pic[shift={(1,0,0)}] at (p1-east) {RightBandedBox={name=cr2,% + xlabel={{"64","64"}},zlabel=I/2,fill=\ConvColor,bandfill=\ConvReluColor,% + height=30,width={3,3},depth=30}}; +\pic[shift={(\poolsep,0,0)}] at (cr2-east) {Box={name=p2,% + fill=\PoolColor,opacity=0.5,height=23,width=1,depth=23}}; +% conv3_1,conv3_2,pool3 +\pic[shift={(1,0,0)}] at (p2-east) {RightBandedBox={name=cr3,% + xlabel={{"256","256","256"}},zlabel=I/4,fill=\ConvColor,bandfill=\ConvReluColor,% + height=23,width={4,4,4},depth=23}}; +\pic[shift={(\poolsep,0,0)}] at (cr3-east) {Box={name=p3,% + fill=\PoolColor,opacity=0.5,height=14,width=1,depth=14}}; +% conv4_1,conv4_2,conv4_3,pool4 +\pic[shift={(1,0,0)}] at (p3-east) {RightBandedBox={name=cr4,% + xlabel={{"512","512","512"}},zlabel=I/8,fill=\ConvColor,bandfill=\ConvReluColor,% + height=14,width={7,7,7},depth=14}}; +\pic[shift={(\poolsep,0,0)}] at (cr4-east) {Box={name=p4,% + fill=\PoolColor,opacity=0.5,height=8,width=1,depth=8}}; +% conv5_1,conv5_2,conv5_3,pool5 +\pic[shift={(1,0,0)}] at (p4-east) {RightBandedBox={name=cr5,% + xlabel={{"512","512","512"}},fill=\ConvColor,bandfill=\ConvReluColor,% + height=8,width={7,7,7},depth=8}}; +%% fc8 -> cr8 (score32) +\pic[shift={(0,0,0)}] at (cr5-east) {Box={name=score16,% + xlabel={{"K","dummy"}},fill=\ConvColor,% + height=8,width=2,depth=8,zlabel=I/16}}; %% Upsampling Deconv Layer -\pic[shift={(2,0,0)}] at (score32-east) {Deconv={blockname=up32,% - numFilters={{"1","4096"}},height=33,width=1,depth=33,zlabel=}}; +%% Dcnv16 +\pic[shift={(2.5,0,0)}] at (score16-east) {Box={name=d16,% + xlabel={{"","dummy"}},fill=\DcnvColor,opacity=0.7,height=40,width=0.5,depth=40}}; +%% Dcnv8 +\pic[shift={(.25,0,0)}] at (d16-east) {Box={name=d8,% + xlabel={{"","dummy"}},fill=\DcnvColor,opacity=0.7,height=40,width=0.5,depth=40}}; +%% Dcnv4 +\pic[shift={(.25,0,0)}] at (d8-east) {Box={name=d4,% + xlabel={{"","dummy"}},fill=\DcnvColor,opacity=0.7,height=40,width=0.5,depth=40}}; +%% Dcnv2 +\pic[shift={(.25,0,0)}] at (d4-east) {Box={name=d2,% + xlabel={{"","dummy"}},fill=,opacity=0.01,height=40,width=0.5,depth=40}}; + +%% Dcnv envelope +\pic[shift={(-0.2,0,0)}] at (d16-west) {Box={name=env,caption=concatenation of deconvolved feature maps,% + xlabel={{"","dummy"}},fill=,opacity=0.2,height=42,width={8},depth=42}}; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\skipshift{6.5} %%Joining with previous streams (fcn-16) %% score16 -\pic[shift={(0,0,10)}] at (crp5-anchor) {Conv={blockname=score16,% - numFilters={{"1","4096"}},height=20,width=1,depth=20,zlabel=I/8}}; -%% Upsampling Deconv Layer -\pic[shift={(0.5,0,0)}] at (up32-west) {Deconv={blockname=up16,% - numFilters={{"1","4096"}},height=33,width=1,depth=33,zlabel=}}; +\pic[shift={(0,0,3+\skipshift)}] at (cr5-anchor) {Box={name=score8,% + xlabel={{"K","dummy"}},fill=\ConvColor,height=14,width=2,depth=14,zlabel=I/8}}; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%Joining with previous streams (fcn-8) %% score8 -\pic[shift={(1,0,14)}] at (crp4-anchor) {Conv={blockname=score8,% - numFilters={{"1","4096"}},height=25,width=1,depth=25,zlabel=I/4}}; - -%% Upsampling Deconv Layer -\pic[shift={(0.5,0,0)}] at (up16-west) {Deconv={blockname=up8,% - numFilters={{"1","4096"}},height=33,width=1,depth=33,zlabel=}}; +\pic[shift={(0,0,8+\skipshift)}] at (cr4-east) {Box={name=score4,% + xlabel={{"K","dummy"}},fill=\ConvColor,height=23,width=2,depth=23,zlabel=I/4}}; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%Joining with previous streams (fcn-4) -%% score8 -\pic[shift={(0,0,18)}] at (crp3-east) {Conv={blockname=score4,% - numFilters={{"1","4096"}},height=30,width=1,depth=30,zlabel=I/2}}; -%% Upsampling Deconv Layer -\pic[shift={(0.5,0,0)}] at (up8-west) {Deconv={blockname=up4,% - numFilters={{"1","4096"}},height=33,width=1,depth=33,zlabel=}}; +%% score4 +\pic[shift={(1,0,13+\skipshift)}] at (cr3-east) {Box={name=score2,% + xlabel={{"K","dummy"}},fill=\ConvColor,height=30,width=2,depth=30,zlabel=I/2}}; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%Joining with previous streams (fcn-2) -%% score8 -\pic[shift={(0,0,22)}] at (crp2-east) {Conv={blockname=score2,% - numFilters={{"1","4096"}},height=33,width=1,depth=33,zlabel=I}}; -%% Upsampling Deconv Layer -\pic[shift={(0.5,0,0)}] at (up4-west) {Deconv={blockname=up2,% - numFilters={{"1","4096"}},height=33,width=1,depth=33,zlabel=I}}; +%% score2 +\pic[shift={(0.3,0,22+\skipshift)}] at (p2-east) {Box={name=score,% + xlabel={{"K","dummy"}},fill=\ConvColor,height=40,width=2,depth=40,zlabel=I}}; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Final convolution -\pic[shift={(3,0,0)}] at (up2-east) {Conv={blockname=output,% - numFilters={{"1","4096"}},height=33,width=1,depth=33,zlabel=I}}; -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Draw connections -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\draw [connection] (crp1-east) -- node {\midarrow} (crp2-west); -\draw [connection] (crp2-east) -- node {\midarrow} (crp3-west); -\draw [connection] (crp3-east) -- node {\midarrow} (crp4-west); -\draw [connection] (crp4-east) -- node {\midarrow} (crp5-west); -\draw [connection] (crp5-east) -- node {\midarrow} (score32-west); -\draw [connection] (score32-east) -- node {\midarrow} (up32-west); -\path (crp4-east) -- (crp5-west) coordinate[pos=0.4] (between4_5) ; -\draw [connection] (between4_5) -- node {\midarrow} ++(0,0,10) -- node {\midarrow} (score16-west); -\draw [connection] (score16-east) -- node{\midarrow}++(6,0,0)-- node{\midarrow}(up16-out); - -\path (crp3-east) -- (crp4-west) coordinate[pos=0.4] (between3_4) ; -\draw [connection] (between3_4) -- node {\midarrow} ++(0,0,14) -- node {\midarrow} (score8-west); -\draw [connection] (score8-east) -- node{\midarrow}++(11.55,0,0)-- node{\midarrow}(up8-out); - -\path (crp2-east) -- (crp3-west) coordinate[pos=0.4] (between2_3) ; -\draw [connection] (between2_3) -- node {\midarrow} ++(0,0,18) -- node {\midarrow} (score4-west); -\draw [connection] (score4-east) -- node{\midarrow}++(17.3,0,0)-- node{\midarrow}(up4-out); - -\path (crp1-east) -- (crp2-west) coordinate[pos=0.4] (between1_2) ; -\draw [connection] (between1_2) -- node {\midarrow} ++(0,0,22) -- node {\midarrow} (score2-west); -\draw [connection] (score2-east) -- node{\midarrow}++(22.7,0,0)-- node{\midarrow}(up2-out); - -\draw [connection] (up2-east) -- node {\midarrow} (output-west); - -\draw [connection] (output-east) -- node {\midarrow} ++(,0,0); +\pic[shift={(3,0,0)}] at (d2-east) {Box={name=output,% + xlabel={{"K","dummy"}},fill=\ConvColor,height=40,width=2,depth=40,zlabel=I}}; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Draw connections +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\draw [connection] (cr1-east) -- node {\midarrow} (p1-west); +\draw [connection] (p1-east) -- node {\midarrow} (cr2-west); +\draw [connection] (cr2-east) -- node {\midarrow} (p2-west); +\draw [connection] (p2-east) -- node {\midarrow} (cr3-west); +\draw [connection] (cr3-east) -- node {\midarrow} (p3-west); +\draw [connection] (p3-east) -- node {\midarrow} (cr4-west); +\draw [connection] (cr4-east) -- node {\midarrow} (p4-west); +\draw [connection] (p4-east) -- node {\midarrow} (cr5-west); +\draw [connection] (score16-east) -- node {\midarrow} (d16-west); +% +\path (cr4-east) -- (p4-west) coordinate[pos=0.4] (after4) ; +\draw (d16-near)++(0,0,-1+\skipshift) coordinate (d16h); +\draw [connection] (after4) -- node {\midarrow} ++(0,0,3+\skipshift) -- node {\midarrow} (score8-west); +\draw [connection] (score8-east) -- node{\midarrow} (d16h) -- node{\midarrow}(d16-near); +% +\path (cr3-east) -- (p3-west) coordinate[pos=0.4] (after3) ; +\draw (d8-near)++(0,0,4+\skipshift) coordinate (d8h); +\draw [connection] (after3) -- node {\midarrow} ++(0,0,8+\skipshift) -- node {\midarrow} (score4-west); +\draw [connection] (score4-east) -- node{\midarrow} (d8h) -- node{\midarrow}(d8-near); +% +\path (cr2-east) -- (p2-west) coordinate[pos=0.4] (after2) ; +\draw (d4-near)++(0,0,9+\skipshift) coordinate (d4h); +\draw [connection] (after2) -- node {\midarrow} ++(0,0,13+\skipshift) -- node {\midarrow} (score2-west); +\draw [connection] (score2-east) -- node{\midarrow} (d4h) -- node{\midarrow}(d4-near); +% +\path (cr1-east) -- (p1-west) coordinate[pos=0.4] (after1) ; +\draw (d2-near)++(0,0,18+\skipshift) coordinate (d2h); +\draw [connection] (after1) -- node {\midarrow} ++(0,0,22+\skipshift) -- node {\midarrow} (score-west); +\draw [connection] (score-east) -- node{\midarrow} (d2h) -- node{\midarrow}(d2-near); +\draw [connection] (d2-east) -- node {\midarrow} (output-west); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \end{tikzpicture} diff --git a/examples/SegNet/segnet.pdf b/examples/SegNet/segnet.pdf deleted file mode 100644 index 59d45c1a605666bb952f2789bd7bc71fefce31c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25298 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

I}#V{&|f3J1vF||7RNpq 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 Di!vQb diff --git a/examples/SegNet/segnet.tex b/examples/SegNet/segnet.tex deleted file mode 100644 index 62b7e35..0000000 --- a/examples/SegNet/segnet.tex +++ /dev/null @@ -1,116 +0,0 @@ -\documentclass[border=15pt, multi, tikz]{standalone} -%\usepackage{blocks} -\usepackage{import} -\subimport{../../layers/}{init} -\usetikzlibrary{positioning} - -\newcommand{\copymidarrow}{\tikz \draw[-Stealth,line width =0.8mm,draw={rgb:blue,4;red,1;green,1;black,3}] (-0.3,0) -- ++(0.3,0);} -\begin{document} -\begin{tikzpicture} -\tikzstyle{connection}=[ultra thick,every node/.style={sloped,allow upside down},draw=\edgecolor,opacity=0.7] -\tikzstyle{copyconnection}=[ultra thick,every node/.style={sloped,allow upside down},draw={rgb:blue,4;red,1;green,1;black,3},opacity=0.7] -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Draw Encoder -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% conv1_1,conv1_2,pool1 -\pic[shift={(0,0,0)}] at (0,0,0) {ConvReluPool={blockname=crp1,% - numFilters={{"64","64","32"}},height=40,width={2,2},depth=40,zlabel=I}}; -% conv2_1,conv2_2,pool2 -\pic[shift={(1.6,0,0)}] at (crp1-east) {ConvReluPool={blockname=crp2,% - numFilters={{"128","128"}},height=35,width={2.5,2.5},depth=35,zlabel=I/2}}; -%% conv3_1,conv3_2,conv3_3,pool3 -\pic[shift={(1.2,0,0)}] at (crp2-east) {ConvReluPool={blockname=crp3,% - numFilters={{"256","256","256"}},height=30,width={3.3,3.3,3.3},depth=30,zlabel=I/4}}; -%% conv4_1,conv4_2,conv4_3,pool4 -\pic[shift={(1,0,0)}] at (crp3-east) {ConvReluPool={blockname=crp4,% - numFilters={{"512","512","512"}},height=23,width={4.5,4.5,4.5},depth=23,zlabel=I/8}}; - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Draw Bottleneck -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% conv5_1,conv5_2,conv5_3 -\pic[shift={(1,0,0)}] at (crp4-east) {ConvRelu={blockname=cp5,% - numFilters={{"512","512","512"}},height=12,width={4.5,4.5,4.5},depth=12,zlabel=I/16}}; - -%% conv5_1r,conv5_2r,conv5_3r -\pic[shift={(2,0,0)}] at (cp5-east) {ConvRelu={blockname=cp5r,% - numFilters={{"512","512","512"}},height=12,width={4.5,4.5,4.5},depth=12,zlabel=I/16}}; - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Draw Dencoder -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% up32 -\pic[shift={(1.5,0,0)}] at (cp5r-east) {UpConvRelu={blockname=ucp4r,% - numFilters={{"512","512","512"}},height=23,width={4.5,4.5,4.5},depth=23,zlabel=}}; - -%% up16 -\pic[shift={(2,0,0)}] at (ucp4r-east) {UpConvRelu={blockname=ucp3r,% - numFilters={{"256","256","256"}},height=30,width={3.3,3.3,3.3},depth=30,zlabel=}}; - -%% up8 -\pic[shift={(2,0,0)}] at (ucp3r-east) {UpConvRelu={blockname=ucp2r,% - numFilters={{"128","128"}},height=35,width={2.5,2.5},depth=35,zlabel=}}; - - -%% up4 -\pic[shift={(2,0,0)}] at (ucp2r-east) {UpConvRelu={blockname=ucp1r,% - numFilters={{"64","64"}},height=40,width={2,2},depth=40,zlabel=}}; - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Draw score producer -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%% score -%\pic[shift={(2,0,0)}] at (ucp1r-east) {Conv={blockname=score,% -% numFilters={{"21",""}},height=40,width={2},depth=40,zlabel=I}}; - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Draw connections -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\draw [connection] (crp1-east) -- node {\midarrow} (crp2-west); -\draw [connection] (crp2-east) -- node {\midarrow} (crp3-west); -\draw [connection] (crp3-east) -- node {\midarrow} (crp4-west); -\draw [connection] (crp4-east) -- node {\midarrow} (cp5-west); -\draw [connection] (cp5-east) -- node {\midarrow} (cp5r-west); -\draw [connection] (cp5r-east) -- node {\midarrow} (ucp4r-west); -\draw [connection] (ucp4r-east) -- node {\midarrow} (ucp3r-west); -\draw [connection] (ucp3r-east) -- node {\midarrow} (ucp2r-west); -\draw [connection] (ucp2r-east) -- node {\midarrow} (ucp1r-west); -%\draw [connection] (ucp1r-east) -- node {\midarrow} (score-west); - - - - -\path (crp4-south-|crp4-east) -- (crp4-north-|crp4-east) coordinate[pos=1.15] (crp4-top) ; -\path (crp3-south-|crp3-east) -- (crp3-north-|crp3-east) coordinate[pos=1.15] (crp3-top) ; -\path (crp2-south-|crp2-east) -- (crp2-north-|crp2-east) coordinate[pos=1.15] (crp2-top) ; -\path (crp1-south-|crp1-east) -- (crp1-north-|crp1-east) coordinate[pos=1.15] (crp1-top) ; - -\path (ucp4r-upsouth) -- (ucp4r-upnorth) coordinate[pos=1.15] (ucp4r-top) ; -\path (ucp3r-upsouth) -- (ucp3r-upnorth) coordinate[pos=1.15] (ucp3r-top) ; -\path (ucp2r-upsouth) -- (ucp2r-upnorth) coordinate[pos=1.15] (ucp2r-top) ; -\path (ucp1r-upsouth) -- (ucp1r-upnorth) coordinate[pos=1.15] (ucp1r-top) ; - -\draw [copyconnection] (crp4-lastnorth-|crp4-east) - -- node {\copymidarrow}(crp4-top) - -- node {\copymidarrow}(ucp4r-top) - -- node {\copymidarrow} (ucp4r-upnorth); -\draw [copyconnection] (crp3-lastnorth-|crp3-east) - -- node {\copymidarrow}(crp3-top) - -- node {\copymidarrow}(ucp3r-top) - -- node {\copymidarrow} (ucp3r-upnorth); -\draw [copyconnection] (crp2-lastnorth-|crp2-east) - -- node {\copymidarrow}(crp2-top) - -- node {\copymidarrow}(ucp2r-top) - -- node {\copymidarrow} (ucp2r-upnorth); -\draw [copyconnection] (crp1-lastnorth-|crp1-east) - -- node {\copymidarrow}(crp1-top) - -- node {\copymidarrow}(ucp1r-top) - -- node {\copymidarrow} (ucp1r-upnorth); - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{tikzpicture} -\end{document}\grid diff --git a/examples/SoftmaxLoss/SoftmaxLoss.pdf b/examples/SoftmaxLoss/SoftmaxLoss.pdf index bd240367d4131ecc778f8229147d7be18cd6bc60..034492fca0d0f68743a4995ca685a4deb88eec95 100644 GIT binary patch delta 3184 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 UdE=Y6Z_rD_L4tzX#yX(?0Jc8yRR910 delta 3257 zcmV;q3`X;x-2=_t1CS&FHaL^t?I?fkSxs-;HW0nNH$DOh!NLaqT2*U{c!-W4t!JM_^^J z<#ZO*X$Qi3@f$x|rYMFGfHuXbtYsI#Pq2>}v_F0)-(i*^%ug*?c2!Wk4z*0be%c@w ztKGF=Z3gi8NhiGRUHAH_*1CVB`>xaWH+u+c>-cmCcF0JMSc73aC=xoPgp>$b_HdJbWl0;Ct^7j;kiCD5P7c%riEkw~ zg(}1t$Qa}NRJdid8MrYd1FWP76mWAqa+xBR-99thm*B*cQt2j=w;j}{o7Kr1=~$%b zlw+GKHW+1_%}2IYE5n~Q!c+JcEPwbSfSw;KblPu>MF zyv&5~!pM4(^}SheSUXq~$Pt~4U|rT*-|wZ3EA7z-TFhu7IViGZYn^(7)nIfm1MM;c zPu_&en?-^4tg?UEHnLp--Y_KlP0NW$%IM$!+He5ftK#6jP-^J|(4$^tlZ&oYR3&1* z=ov*Bd_JOIn63&yx>V^{*Mldi0W<#`+c4?iA=_%SHfp6m)Xy$P?U9d0DwLmD3N1Lt_z^)jt(pcG`+g7 zU$0(rCtrWO8%o&M;!sBtwmVyT+qv6b^vJ$tod|$yGTbrQm)`{4`D)#mb?}5!nX==o zs+|BT=&Eo-4Wcn_D=gsKn*^GFmWZA?NKga$i@gLSe=|c)- zZe+6-1%2QFHWJFR1sfF^wS}9b(7xYmCpM**xL?blh z(#M`w_zqrZGPn4)P$?}miA)eWLgb<_5~6@_sFF#-SYZ^&y)ed00Zivjj|34|2!A6g z1J?)#UX(&Wu!6{{s6`UiNGFs-WI!+!VUWH3{a*3@-+3j9v+}m;6~oy>T|LxG;X(4e zSDaVN+2dkdEy0)tr`7eO9L%1?g@nL3(~mkKaNRdjU-sZ;f%Sw#<}Y3lf`HrUY%!Xb z;|hs_g5c`9T09_o{PWdQeKe}ex_?4aNzf|}5sBE}7sVlx8nV?PSjFe50jE5T#5zxz zcw-xX_505r0-hYg??bLBqmJk{hqcvs6SRfF7119Z9%IAWj>iZKyiV zBwB1#-y?z6dJ2+8{4#8vM<=n#LI9lR(HH}WJSW|^ess%69Mza;B*bY@|qS2u&T0rI;=1pY3oZCECLg_mG#8d~gFg zNt~OlgZe?v`?6`uz_rY+svLI-&I8(Bd^R;BavBrya-6|DW`9ZK4vQ-C8Afr$sJITf zd1*5zJ_8al&5g|~ljLqf2hn-PUt|(_CsC19GmoBv^n3(Gvfywtuu`1MCJG*@_hS>e zZ_QnBqRq;=)Hrp#i<-Hn6U=a@(~2y8&I3m*{YsKtp1CQ5Iu7E<6-B#eFd=mPK7W{ePSzI-J0dHmygCuM<2zI~ksX z;OXma1aS*yg3`vX5Hw#RxJSG)#h_aZjcPM|RZPqKtLw6u7xi6LmmP9$7jlE)>Cvm- znOyihH}zaQJgEK{YEgZG+FP)imy3E*POm37H$}a{E$qVW_~6~y`8#ks-&Qv~Xg76} z>Hm;hHGig0Td7?w%JE-SJ*{r)=lO!{it6vja!Q=52UhYdtCrRMggbd732B!kj7F!! z!`GCAE%ilCn*wY7Lvj$d=iqZB+tiHOh1$v4*~!NNsEt0l&vL_i(jM+Tq3BgAB(Y{b9{2dOt$Sp2PzKleSg}~lY;&MRBZZ2Dq9W|_<6jl`6mhC zU{EeAe(Cz;QrKWl@2mVKcsN-sYeK~nNw0WYHb0ccl0PTc_1%(Qad!vr9M~Oj-vw7& z!PV~IoddOl9lO}xwy~98VXLq^cIUv`#5S^vZDk8PnKg9U9eVSa=^*PbB3rdaj=Ljw zPC|hW^e3H0+hYYCTcrJW)OvH93Gp@n&+p6c@Y`FE=fR zCARnMwwIT*{xcAlOgSFQ8Pm_LqRk&F*rgwGBhzcH8?~$GC?^(K}0q+K|(h) zH$EUdGea^%K{PZmI6^rxG%-0fI7B%zK{-J|L^d@+LN_!wK3xhgOl59obZ8(kF*B3i z?JIw|6@ma1M9~=#cfl369*k|mgc8hY#+=-QJ~Xul%`Cx#?+5q1U`A4xC{K{02SZjN zy22WJl-Oc}oj>>356IBR07Hy0#>80_pQ%qxbmq$=n!7Heg>UER-0d&A@beX2;^=oH rf3NxjU11M=3T19&b98cLVQmU!Ze(v_Y6_Ey?hOeyFbX9lMNdWwyY3#L diff --git a/examples/SoftmaxLoss/SoftmaxLoss.tex b/examples/SoftmaxLoss/SoftmaxLoss.tex index c9f9ff9..c74ca20 100644 --- a/examples/SoftmaxLoss/SoftmaxLoss.tex +++ b/examples/SoftmaxLoss/SoftmaxLoss.tex @@ -1,10 +1,8 @@ \documentclass[border=15pt, multi, tikz]{standalone} -%\usepackage{blocks} \usepackage{import} \subimport{../../layers/}{init} \usetikzlibrary{positioning} -\newcommand{\midarrow}{\tikz \draw[-Stealth,line width =0.8mm,draw=\edgecolor] (-0.3,0) -- ++(0.3,0);} \newcommand{\up}{0.25} \newcommand{\down}{0.25} \newcommand{\arrowlength}{4} @@ -12,35 +10,35 @@ \begin{document} \begin{tikzpicture} \tikzstyle{connection}=[ultra thick,every node/.style={sloped,allow upside down},draw=\edgecolor,opacity=0.7] -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Draw Layer Blocks -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% conv1_1,conv1_2,pool1 -\pic[shift={(0,0,0)},fill={rgb:blue,1.5;red,3.5;green,3.5;white,5}] at (0,0,0) {GenericSequentialLayer={blockname=crp1,% - numFilters={{" ",""}},height=20,width={7},depth=20, blocklabel=SoftmaxLoss: $E_\mathcal{S}$ ,ylabel= ,zlabel= }}; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Draw connections +%% Draw previous connections %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\draw [connection] (crp1-east)++(0,\up,0) -- node {\midarrow} ++(\arrowlength.0,0) -node [anchor=south east,scale=2.1]{$E_\mathcal{S} [p;\theta]$}; -\draw (crp1-west)++(0,\up,0) coordinate (crp1-west-up); -\draw [connection] (crp1-west-up)++(-\arrowlength,0,0) +\draw [connection] (-\arrowlength,\up,0) node[anchor=south west,scale=2.1]{$p(x^{(t)})$} --- node {\midarrow} (crp1-west-up); - -\draw [connection] (crp1-west)++(0,-\down,0) -- node {\midarrow} ++(-\arrowlength.0,0) +-- node {\midarrow} (0,\up,0); +\draw [connection] (0,-\down,0) -- node {\midarrow} ++(-\arrowlength.0,0) node[anchor=north west,inner sep = 10, xshift=-25,scale=2.3] { $\frac{\partial L}{\partial E_\mathcal{S}}\frac{\partial E_\mathcal{S}}{\partial p}$ }; -\draw (crp1-east)++(0,-\down,0) coordinate (crp1-east-down); -\draw [connection] (crp1-east-down)++(\arrowlength,0,0) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Draw Layer Blocks +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pic[shift={(0,0,0)}] at (0,0,0) {Box={name=crp1,caption=SoftmaxLoss: $E_\mathcal{S}$ ,% + fill={rgb:blue,1.5;red,3.5;green,3.5;white,5},opacity=0.5,height=20,width=7,depth=20}}; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Draw next connections +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\draw [connection] (crp1-east)++(0,\up,0) -- node {\midarrow} ++(\arrowlength.0,0) +node [anchor=south east,scale=2.1]{$E_\mathcal{S} [p;\theta]$}; + +\draw [connection] (crp1-east)++(\arrowlength,-\down,0) node[anchor=north east,inner sep = 10, xshift=25,scale=2.3] { $\frac{\partial L}{\partial E_\mathcal{S}} = \lambda_\mathcal{S}$ } --- node {\midarrow} (crp1-east-down); +-- node {\midarrow} ++(-\arrowlength,0,0); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/examples/Unet/unet.pdf b/examples/Unet/unet.pdf deleted file mode 100644 index 07356555596abb9accc1fd3f6f6dd659a144e36a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26436 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 YMnD&L;AdV~Iaxl_KuIaCD1q?50D^5VWdHyG diff --git a/examples/Unet/unet.tex b/examples/Unet/unet.tex deleted file mode 100644 index 2c65314..0000000 --- a/examples/Unet/unet.tex +++ /dev/null @@ -1,138 +0,0 @@ -\documentclass[border=15pt, multi, tikz]{standalone} -%\usepackage{blocks} -\usepackage{import} -\subimport{../../layers/}{init} -\usetikzlibrary{positioning} - -\newcommand{\copymidarrow}{\tikz \draw[-Stealth,line width =0.8mm,draw={rgb:blue,4;red,1;green,1;black,3}] (-0.3,0) -- ++(0.3,0);} -\begin{document} -\begin{tikzpicture} -\tikzstyle{connection}=[ultra thick,every node/.style={sloped,allow upside down},draw=\edgecolor,opacity=0.7] -\tikzstyle{copyconnection}=[ultra thick,every node/.style={sloped,allow upside down},draw={rgb:blue,4;red,1;green,1;black,3},opacity=0.7] -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Draw Encoder -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% conv1_1,conv1_2,pool1 -\pic[shift={(0,0,0)}] at (0,0,0) {ConvReluPool={blockname=crp1,% - numFilters={{"64","64","32"}},height=40,width={2,2},depth=40,zlabel=I}}; -% conv2_1,conv2_2,pool2 -\pic[shift={(1.6,0,0)}] at (crp1-east) {ConvReluPool={blockname=crp2,% - numFilters={{"128","128"}},height=35,width={2.5,2.5},depth=35,zlabel=I/2}}; -%% conv3_1,conv3_2,conv3_3,pool3 -\pic[shift={(1.2,0,0)}] at (crp2-east) {ConvReluPool={blockname=crp3,% - numFilters={{"256","256"}},height=30,width={3.3,3.3},depth=30,zlabel=I/4}}; -%% conv4_1,conv4_2,conv4_3,pool4 -\pic[shift={(1,0,0)}] at (crp3-east) {ConvReluPool={blockname=crp4,% - numFilters={{"512","512"}},height=23,width={4.5,4.5},depth=23,zlabel=I/8}}; -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Bottleneck -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% fc6,fc7 -\pic[shift={(0.9,0,0)}] at (crp4-east) {ConvRelu={blockname=cp6_7,% - numFilters={{"1024","1024"}},height=10,width={9,9},depth=10,zlabel=I/16}}; -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Draw Dencoder -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% up32 -\pic[shift={(1.5,0,0)}] at (cp6_7-east) {UpConvRelu={blockname=up32,% - numFilters={{"512",""}},height=23,width={4.5},depth=23,zlabel=}}; -%% Concat32 -\pic[shift={(0,0,0)}] at (up32-east) {Gray={blockname=cat32,% - numFilters={{"512",""}},height=23,width={4.5},depth=23,zlabel=}}; -%% Conv32 -\pic[shift={(0.5,0,0)}] at (cat32-east) {ConvRelu={blockname=conv32,% - numFilters={{"512","512"}},height=23,width={4.5,4.5},depth=23,zlabel=I/8}}; - - -%% up16 -\pic[shift={(2,0,0)}] at (conv32-east) {UpConvRelu={blockname=up16,% - numFilters={{"256",""}},height=30,width={3.3},depth=30,zlabel=}}; -%% Concat16 -\pic[shift={(0,0,0)}] at (up16-east) {Gray={blockname=cat16,% - numFilters={{"256",""}},height=30,width={3.3},depth=30,zlabel=}}; -%% Conv16 -\pic[shift={(0.5,0,0)}] at (cat16-east) {ConvRelu={blockname=conv16,% - numFilters={{"256","256"}},height=30,width={3.3,3.3},depth=30,zlabel=I/4}}; - - -%% up8 -\pic[shift={(2,0,0)}] at (conv16-east) {UpConvRelu={blockname=up8,% - numFilters={{"128",""}},height=35,width={2.5},depth=35,zlabel=}}; -%% Concat8 -\pic[shift={(0,0,0)}] at (up8-east) {Gray={blockname=cat8,% - numFilters={{"128",""}},height=35,width={2.5},depth=35,zlabel=}}; -%% Conv8 -\pic[shift={(0.5,0,0)}] at (cat8-east) {ConvRelu={blockname=conv8,% - numFilters={{"128","128"}},height=35,width={2.5,2.5},depth=35,zlabel=I/2}}; - - -%% up4 -\pic[shift={(2,0,0)}] at (conv8-east) {UpConvRelu={blockname=up4,% - numFilters={{"64",""}},height=40,width={2},depth=40,zlabel=}}; -%% Concat4 -\pic[shift={(0,0,0)}] at (up4-east) {Gray={blockname=cat4,% - numFilters={{"64",""}},height=40,width={2},depth=40,zlabel=}}; - -%% Conv4 -\pic[shift={(0.5,0,0)}] at (cat4-east) {ConvRelu={blockname=conv4,% - numFilters={{"64","64"}},height=40,width={2,2},depth=40,zlabel=I}}; -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Draw score producer -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%% Conv4 -\pic[shift={(2,0,0)}] at (conv4-east) {Conv={blockname=score,% - numFilters={{"21",""}},height=40,width={2},depth=40,zlabel=I}}; - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Draw connections -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\draw [connection] (crp1-east) -- node {\midarrow} (crp2-west); -\draw [connection] (crp2-east) -- node {\midarrow} (crp3-west); -\draw [connection] (crp3-east) -- node {\midarrow} (crp4-west); -\draw [connection] (crp4-east) -- node {\midarrow} (cp6_7-west); -\draw [connection] (cp6_7-east) -- node {\midarrow} (up32-west); -\draw [connection] (cat32-east) -- node {\midarrow} (conv32-west); -\draw [connection] (conv32-east) -- node {\midarrow} (up16-west); - -\draw [connection] (cat16-east) -- node {\midarrow} (conv16-west); -\draw [connection] (conv16-east) -- node {\midarrow} (up8-west); - -\draw [connection] (cat8-east) -- node {\midarrow} (conv8-west); -\draw [connection] (conv8-east) -- node {\midarrow} (up4-west); - -\draw [connection] (cat4-east) -- node {\midarrow} (conv4-west); -\draw [connection] (conv4-east) -- node {\midarrow} (score-west); - -\path (crp4-lastsouth) -- (crp4-lastnorth) coordinate[pos=1.25] (crp4-top) ; -\path (crp3-lastsouth) -- (crp3-lastnorth) coordinate[pos=1.25] (crp3-top) ; -\path (crp2-lastsouth) -- (crp2-lastnorth) coordinate[pos=1.25] (crp2-top) ; -\path (crp1-lastsouth) -- (crp1-lastnorth) coordinate[pos=1.25] (crp1-top) ; - -\path (cat32-south) -- (cat32-north) coordinate[pos=1.25] (cat32-top) ; -\path (cat16-south) -- (cat16-north) coordinate[pos=1.25] (cat16-top) ; -\path (cat8-south) -- (cat8-north) coordinate[pos=1.25] (cat8-top) ; -\path (cat4-south) -- (cat4-north) coordinate[pos=1.25] (cat4-top) ; - -\draw [copyconnection] (crp4-lastnorth) - -- node {\copymidarrow}(crp4-top) - -- node {\copymidarrow}(cat32-top) - -- node {\copymidarrow} (cat32-north); -\draw [copyconnection] (crp3-lastnorth) - -- node {\copymidarrow}(crp3-top) - -- node {\copymidarrow}(cat16-top) - -- node {\copymidarrow} (cat16-north); -\draw [copyconnection] (crp2-lastnorth) - -- node {\copymidarrow}(crp2-top) - -- node {\copymidarrow}(cat8-top) - -- node {\copymidarrow} (cat8-north); -\draw [copyconnection] (crp1-lastnorth) - -- node {\copymidarrow}(crp1-top) - -- node {\copymidarrow}(cat4-top) - -- node {\copymidarrow} (cat4-north); - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{tikzpicture} -\end{document}\grid diff --git a/examples/VGG16/vgg16.pdf b/examples/VGG16/vgg16.pdf index 5e835834af05e7a1dfaae457088da765467ff42b..eb182af66af8b347890d2d5df6e1ec1344a6cbf2 100644 GIT binary patch literal 37061 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