📚 The CoCalc Library - books, templates and other resources
cocalc-examples / martinthoma-latex-examples / presentations / CNN-Intro / graphics / convolution-layer.tex
132939 viewsLicense: OTHER
\newcommand{\distance}{6}1\newcommand{\xup}{3.5}2\newcommand{\yup}{6}3\newcommand{\upsizex}{1}4\newcommand{\upsizey}{2}5\newcommand{\upshift}{3/4*\upsizey}6\newcommand{\distancedots}{1}78\begin{tikzpicture}[scale=0.6]9% Print input feature maps10\foreach \i in {0, 0.2, ..., 0.6} {11\draw[fill=white] (0+\i, 0) -- (2+\i, 3) -- (2+\i, 7) -- (\i, 4) -- (\i, 0);12}1314% Print filters15\foreach \i in {0, 0.2, ..., 0.6, 1.3} {16\draw[fill=white] (\xup+\i, \yup) -- (\xup+\upsizex+\i, \yup+\upshift) -- (\xup+\upsizex+\i, \yup+\upsizey+\upshift) -- (\xup+\i, \yup+\upsizey) -- (\xup+\i, \yup);17\draw[fill=white] (\xup+\i, \yup) -- (\xup+\i+0.1, \yup) -- (\xup+\i+0.1, \yup+\upsizey) -- (\xup+\i, \yup+\upsizey) -- (\xup+\i, \yup);18\draw[fill=white] (\xup+\i+0.1, \yup) -- (\xup+\upsizex+\i+0.1, \yup+\upshift) -- (\xup+\upsizex+\i+0.1, \yup+\upsizey+\upshift) -- (\xup+\i+0.1, \yup+\upsizey) -- (\xup+\i+0.1, \yup);19\draw[fill=white] (\xup+\i, \yup+\upsizey) -- (\xup+\i+0.1, \yup+\upsizey) -- (\xup+\upsizex+\i+0.1, \yup+\upsizey+\upshift) -- (\xup+\upsizex+\i, \yup+\upsizey+\upshift) -- (\xup+\i, \yup+\upsizey);20}2122\foreach \i in {0, 0.2, ..., 0.6, 1.2} {23\draw[fill=white] (\distance+\i, 0) -- (\distance+2+\i, 3) -- (\distance+2+\i, 7) -- (\distance+\i, 4) -- (\distance+\i, 0);24}2526\draw [decorate,decoration={brace,amplitude=+4pt,mirror},xshift=0pt,yshift=-2pt]27(-0.1,0) -- (0.7,0) node [black,midway,yshift=-0.6cm, align=center] {\footnotesize$3$ feature maps\\\footnotesize(e.g. RGB)};28\draw [decorate,decoration={brace,amplitude=+4pt,mirror},xshift=0pt,yshift=-2pt]29(\distance-0.1,0) -- (\distance+1.3,0) node [black,midway,yshift=-0.6cm, align=center] {\footnotesize$n$ feature maps};30\draw [decorate,decoration={brace,amplitude=+4pt},xshift=0pt,yshift=+2pt]31(\xup-0.1+\upsizex,\yup+\upsizey+\upshift) -- (\xup+1.5+\upsizex,\yup+\upsizey+\upshift) node [black,midway,yshift=+0.6cm, align=center] {\footnotesize $n$ filters of\\\footnotesize size $k \times k \times 3$};32\draw[very thick, ->,>=latex] (3, 4.5) [out=70, in=110] to (\distance-0.5, 4.5);33\draw [color=white,decorate,decoration={brace,amplitude=+4pt, mirror},xshift=0pt,yshift=+2pt]34(1.1, 0) -- (3.1, 3) node [sloped,black,midway,yshift=+0.6cm, align=center] {width $w$};35\draw [color=white,decorate,decoration={brace,amplitude=+4pt, mirror},xshift=0pt,yshift=+2pt]36(\distance+1.7, 0) -- (\distance+3.7, 3) node [sloped,black,midway,yshift=+0.6cm, align=center] {width $w$};37\draw [decorate,decoration={brace,amplitude=+4pt},xshift=-2pt,yshift=0pt]38(0, 0) -- (0, 4) node [sloped,black,midway,yshift=+0.6cm, align=center] {height $h$};39\draw [decorate,decoration={brace,amplitude=+4pt},xshift=-2pt,yshift=0pt]40(\distance, 0) -- (\distance, 4) node [sloped,black,midway,yshift=+0.6cm, align=center] {height $h$};41\node at (-2.5,7.5) {\Large neural};42\node at (-2.5,7) {\Large network};43\node at (-2.5,2) {\Large data};4445\node at (+4.3,5.5) {apply};46\node at (\distance+0.95,3.9) {\dots};47\node at (\distance+0.95,2) {\dots};48\node at (\distance+0.95,0.1) {\dots};4950\node at (\xup+1.05,\yup+1.9) {\dots};51\node at (\xup+1.05,\yup+1.0) {\dots};52\node at (\xup+1.05,\yup+0.1) {\dots};53\end{tikzpicture}545556