188 lines
31 KiB
TeX
188 lines
31 KiB
TeX
%\newlength{\layer}
|
|
%\newlength{\layerheight}
|
|
%\newlength{\perspective}
|
|
%\newlength{\filters}
|
|
%\newlength{\myunit}
|
|
|
|
\setlength{\layer}{3cm}
|
|
\setlength{\layerheight}{3cm}
|
|
\setlength{\perspective}{1cm}
|
|
\setlength{\filters}{0.01cm}
|
|
\setlength{\myunit}{0.225cm}
|
|
|
|
\usetikzlibrary{decorations.pathreplacing}
|
|
|
|
\begin{tikzpicture}
|
|
|
|
% input layer
|
|
\filldraw[fill=cyan!20, draw=black, fill opacity=0.5] (1cm, 0cm) -- (1cm + \perspective, \perspective) -- (1cm + \perspective, \perspective + \layerheight) -- (1cm, \layerheight) -- cycle;
|
|
\node[anchor=south west, scale=0.65, rotate=45] at (1cm, \layerheight) {$1 @ 12 \times 15$};
|
|
\node[anchor=north west, scale=0.65] at (1cm, 0cm) {input layer};
|
|
|
|
% first layer
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (\layer, 2.25cm) -- (\layer + 32 * \filters, 2.25cm) -- (\layer + 32 * \filters + \perspective, 2.25cm + \perspective) -- (\layer + \perspective, 2.25cm + \perspective) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (\layer + \perspective, 2.25cm + \perspective) -- (\layer + 32 * \filters + \perspective, 2.25cm + \perspective) -- (\layer + 32 * \filters + \perspective, 2.25cm + \perspective + \layerheight) -- (\layer + \perspective, 2.25cm + \perspective + \layerheight) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (\layer, 2.25cm) -- (\layer + \perspective, 2.25cm + \perspective) -- (\layer + \perspective, 2.25cm + \perspective + \layerheight) -- (\layer, 2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (\layer, 2.25cm) -- (\layer + 32 * \filters, 2.25cm) -- (\layer + 32 * \filters, 2.25cm + \layerheight) -- (\layer, 2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (\layer + 32 * \filters, 2.25cm) -- (\layer + 32 * \filters + \perspective, 2.25cm + \perspective) -- (\layer + 32 * \filters + \perspective, 2.25cm + \perspective + \layerheight) -- (\layer + 32 * \filters, 2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (\layer, 2.25cm + \layerheight) -- (\layer + 32 * \filters, 2.25cm + \layerheight) -- (\layer + 32 * \filters + \perspective, 2.25cm + \perspective + \layerheight) -- (\layer + \perspective, 2.25cm + \perspective + \layerheight) -- cycle;
|
|
\node[anchor=south west, scale=0.65, rotate=45] at (\layer, 2.25cm + \layerheight) {$32 @ 12 \times 15$};
|
|
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (\layer, -2.25cm) -- (\layer + 32 * \filters, -2.25cm) -- (\layer + 32 * \filters + \perspective, -2.25cm + \perspective) -- (\layer + \perspective, -2.25cm + \perspective) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (\layer + \perspective, -2.25cm + \perspective) -- (\layer + 32 * \filters + \perspective, -2.25cm + \perspective) -- (\layer + 32 * \filters + \perspective, -2.25cm + \perspective + \layerheight) -- (\layer + \perspective, -2.25cm + \perspective + \layerheight) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (\layer, -2.25cm) -- (\layer + \perspective, -2.25cm + \perspective) -- (\layer + \perspective, -2.25cm + \perspective + \layerheight) -- (\layer, -2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (\layer, -2.25cm) -- (\layer + 32 * \filters, -2.25cm) -- (\layer + 32 * \filters, -2.25cm + \layerheight) -- (\layer, -2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (\layer + 32 * \filters, -2.25cm) -- (\layer + 32 * \filters + \perspective, -2.25cm + \perspective) -- (\layer + 32 * \filters + \perspective, -2.25cm + \perspective + \layerheight) -- (\layer + 32 * \filters, -2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (\layer, -2.25cm + \layerheight) -- (\layer + 32 * \filters, -2.25cm + \layerheight) -- (\layer + 32 * \filters + \perspective, -2.25cm + \perspective + \layerheight) -- (\layer + \perspective, -2.25cm + \perspective + \layerheight) -- cycle;
|
|
\node[anchor=south west, scale=0.65, rotate=45] at (\layer, -2.25cm + \layerheight) {$32 @ 12 \times 15$};
|
|
|
|
% first concatenation
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer, 0cm) -- (2 * \layer + 64 * \filters, 0cm) -- (2 * \layer + 64 * \filters + \perspective, 0cm + \perspective) -- (2 * \layer + \perspective, 0cm + \perspective) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer + \perspective, 0cm + \perspective) -- (2 * \layer + 64 * \filters + \perspective, 0cm + \perspective) -- (2 * \layer + 64 * \filters + \perspective, 0cm + \perspective + \layerheight) -- (2 * \layer + \perspective, 0cm + \perspective + \layerheight) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer, 0cm) -- (2 * \layer + \perspective, 0cm + \perspective) -- (2 * \layer + \perspective, 0cm + \perspective + \layerheight) -- (2 * \layer, 0cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer, 0cm) -- (2 * \layer + 64 * \filters, 0cm) -- (2 * \layer + 64 * \filters, 0cm + \layerheight) -- (2 * \layer, 0cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer + 64 * \filters, 0cm) -- (2 * \layer + 64 * \filters + \perspective, 0cm + \perspective) -- (2 * \layer + 64 * \filters + \perspective, 0cm + \perspective + \layerheight) -- (2 * \layer + 64 * \filters, 0cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer, 0cm + \layerheight) -- (2 * \layer + 64 * \filters, 0cm + \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0cm + \perspective + \layerheight) -- (2 * \layer + \perspective, 0cm + \perspective + \layerheight) -- cycle;
|
|
\node[anchor=south west, scale=0.65, rotate=45] at (2 * \layer, 0cm + \layerheight) {$64 @ 12 \times 15$};
|
|
|
|
\draw (\layer + 32 * \filters + 1.2 * \perspective, 2.25cm + 0.5 * \layerheight) -- (\layer + 32 * \filters + 1.7 * \perspective, 2.25cm + 0.5 * \layerheight) -- (\layer + 32 * \filters + 1.7 * \perspective, -2.25cm + 0.5 * \layerheight) -- (\layer + 32 * \filters + 1.2 * \perspective, -2.25cm + 0.5 * \layerheight);
|
|
\filldraw[fill=red!20, draw=black] (\layer + 32 * \filters + 1.7 * \perspective, 0cm + 0.5 * \layerheight) node[anchor=center, scale=0.8] {$C$} circle (\myunit);
|
|
\draw[-latex] (\layer + 32 * \filters + 1.7 * \perspective + \myunit, 0cm + 0.5 * \layerheight) -- (\layer + 32 * \filters + 1.7 * \perspective + 3 * \myunit, 0cm + 0.5 * \layerheight);
|
|
|
|
% second layer
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, 2.25cm) -- (3 * \layer + 64 * \filters, 2.25cm) -- (3 * \layer + 64 * \filters + \perspective, 2.25cm + \perspective) -- (3 * \layer + \perspective, 2.25cm + \perspective) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer + \perspective, 2.25cm + \perspective) -- (3 * \layer + 64 * \filters + \perspective, 2.25cm + \perspective) -- (3 * \layer + 64 * \filters + \perspective, 2.25cm + \perspective + \layerheight) -- (3 * \layer + \perspective, 2.25cm + \perspective + \layerheight) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, 2.25cm) -- (3 * \layer + \perspective, 2.25cm + \perspective) -- (3 * \layer + \perspective, 2.25cm + \perspective + \layerheight) -- (3 * \layer, 2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, 2.25cm) -- (3 * \layer + 64 * \filters, 2.25cm) -- (3 * \layer + 64 * \filters, 2.25cm + \layerheight) -- (3 * \layer, 2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer + 64 * \filters, 2.25cm) -- (3 * \layer + 64 * \filters + \perspective, 2.25cm + \perspective) -- (3 * \layer + 64 * \filters + \perspective, 2.25cm + \perspective + \layerheight) -- (3 * \layer + 64 * \filters, 2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, 2.25cm + \layerheight) -- (3 * \layer + 64 * \filters, 2.25cm + \layerheight) -- (3 * \layer + 64 * \filters + \perspective, 2.25cm + \perspective + \layerheight) -- (3 * \layer + \perspective, 2.25cm + \perspective + \layerheight) -- cycle;
|
|
\node[anchor=south west, scale=0.65, rotate=45] at (3 * \layer, 2.25cm + \layerheight) {$64 @ 12 \times 15$};
|
|
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, -2.25cm) -- (3 * \layer + 64 * \filters, -2.25cm) -- (3 * \layer + 64 * \filters + \perspective, -2.25cm + \perspective) -- (3 * \layer + \perspective, -2.25cm + \perspective) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer + \perspective, -2.25cm + \perspective) -- (3 * \layer + 64 * \filters + \perspective, -2.25cm + \perspective) -- (3 * \layer + 64 * \filters + \perspective, -2.25cm + \perspective + \layerheight) -- (3 * \layer + \perspective, -2.25cm + \perspective + \layerheight) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, -2.25cm) -- (3 * \layer + \perspective, -2.25cm + \perspective) -- (3 * \layer + \perspective, -2.25cm + \perspective + \layerheight) -- (3 * \layer, -2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, -2.25cm) -- (3 * \layer + 64 * \filters, -2.25cm) -- (3 * \layer + 64 * \filters, -2.25cm + \layerheight) -- (3 * \layer, -2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer + 64 * \filters, -2.25cm) -- (3 * \layer + 64 * \filters + \perspective, -2.25cm + \perspective) -- (3 * \layer + 64 * \filters + \perspective, -2.25cm + \perspective + \layerheight) -- (3 * \layer + 64 * \filters, -2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, -2.25cm + \layerheight) -- (3 * \layer + 64 * \filters, -2.25cm + \layerheight) -- (3 * \layer + 64 * \filters + \perspective, -2.25cm + \perspective + \layerheight) -- (3 * \layer + \perspective, -2.25cm + \perspective + \layerheight) -- cycle;
|
|
\node[anchor=south west, scale=0.65, rotate=45] at (3 * \layer, -2.25cm + \layerheight) {$64 @ 12 \times 15$};
|
|
|
|
% second concatenation
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer, 0cm) -- (4 * \layer + 128 * \filters, 0cm) -- (4 * \layer + 128 * \filters + \perspective, 0cm + \perspective) -- (4 * \layer + \perspective, 0cm + \perspective) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer + \perspective, 0cm + \perspective) -- (4 * \layer + 128 * \filters + \perspective, 0cm + \perspective) -- (4 * \layer + 128 * \filters + \perspective, 0cm + \perspective + \layerheight) -- (4 * \layer + \perspective, 0cm + \perspective + \layerheight) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer, 0cm) -- (4 * \layer + \perspective, 0cm + \perspective) -- (4 * \layer + \perspective, 0cm + \perspective + \layerheight) -- (4 * \layer, 0cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer, 0cm) -- (4 * \layer + 128 * \filters, 0cm) -- (4 * \layer + 128 * \filters, 0cm + \layerheight) -- (4 * \layer, 0cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer + 128 * \filters, 0cm) -- (4 * \layer + 128 * \filters + \perspective, 0cm + \perspective) -- (4 * \layer + 128 * \filters + \perspective, 0cm + \perspective + \layerheight) -- (4 * \layer + 128 * \filters, 0cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer, 0cm + \layerheight) -- (4 * \layer + 128 * \filters, 0cm + \layerheight) -- (4 * \layer + 128 * \filters + \perspective, 0cm + \perspective + \layerheight) -- (4 * \layer + \perspective, 0cm + \perspective + \layerheight) -- cycle;
|
|
\node[anchor=south west, scale=0.65, rotate=45] at (4 * \layer, 0cm + \layerheight) {$128 @ 12 \times 15$};
|
|
|
|
\draw (3 * \layer + 64 * \filters + 1.1 * \perspective, 2.25cm + 0.5 * \layerheight) -- (3 * \layer + 64 * \filters + 1.6 * \perspective, 2.25cm + 0.5 * \layerheight) -- (3 * \layer + 64 * \filters + 1.6 * \perspective, -2.25cm + 0.5 * \layerheight) -- (3 * \layer + 64 * \filters + 1.1 * \perspective, -2.25cm + 0.5 * \layerheight);
|
|
\filldraw[fill=red!20, draw=black] (3 * \layer + 64 * \filters + 1.6 * \perspective, 0cm + 0.5 * \layerheight) node[anchor=center, scale=0.8] {$C$} circle (\myunit);
|
|
\draw[-latex] (3 * \layer + 64 * \filters + 1.6 * \perspective + \myunit, 0cm + 0.5 * \layerheight) -- (3 * \layer + 64 * \filters + 1.6 * \perspective + 3 * \myunit, 0cm + 0.5 * \layerheight);
|
|
|
|
% third layer
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, 2.25cm) -- (5 * \layer + 32 * \filters, 2.25cm) -- (5 * \layer + 32 * \filters + \perspective, 2.25cm + \perspective) -- (5 * \layer + \perspective, 2.25cm + \perspective) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer + \perspective, 2.25cm + \perspective) -- (5 * \layer + 32 * \filters + \perspective, 2.25cm + \perspective) -- (5 * \layer + 32 * \filters + \perspective, 2.25cm + \perspective + \layerheight) -- (5 * \layer + \perspective, 2.25cm + \perspective + \layerheight) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, 2.25cm) -- (5 * \layer + \perspective, 2.25cm + \perspective) -- (5 * \layer + \perspective, 2.25cm + \perspective + \layerheight) -- (5 * \layer, 2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, 2.25cm) -- (5 * \layer + 32 * \filters, 2.25cm) -- (5 * \layer + 32 * \filters, 2.25cm + \layerheight) -- (5 * \layer, 2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer + 32 * \filters, 2.25cm) -- (5 * \layer + 32 * \filters + \perspective, 2.25cm + \perspective) -- (5 * \layer + 32 * \filters + \perspective, 2.25cm + \perspective + \layerheight) -- (5 * \layer + 32 * \filters, 2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, 2.25cm + \layerheight) -- (5 * \layer + 32 * \filters, 2.25cm + \layerheight) -- (5 * \layer + 32 * \filters + \perspective, 2.25cm + \perspective + \layerheight) -- (5 * \layer + \perspective, 2.25cm + \perspective + \layerheight) -- cycle;
|
|
\node[anchor=south west, scale=0.65, rotate=45] at (5 * \layer, 2.25cm + \layerheight) {$32 @ 12 \times 15$};
|
|
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, -2.25cm) -- (5 * \layer + 32 * \filters, -2.25cm) -- (5 * \layer + 32 * \filters + \perspective, -2.25cm + \perspective) -- (5 * \layer + \perspective, -2.25cm + \perspective) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer + \perspective, -2.25cm + \perspective) -- (5 * \layer + 32 * \filters + \perspective, -2.25cm + \perspective) -- (5 * \layer + 32 * \filters + \perspective, -2.25cm + \perspective + \layerheight) -- (5 * \layer + \perspective, -2.25cm + \perspective + \layerheight) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, -2.25cm) -- (5 * \layer + \perspective, -2.25cm + \perspective) -- (5 * \layer + \perspective, -2.25cm + \perspective + \layerheight) -- (5 * \layer, -2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, -2.25cm) -- (5 * \layer + 32 * \filters, -2.25cm) -- (5 * \layer + 32 * \filters, -2.25cm + \layerheight) -- (5 * \layer, -2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer + 32 * \filters, -2.25cm) -- (5 * \layer + 32 * \filters + \perspective, -2.25cm + \perspective) -- (5 * \layer + 32 * \filters + \perspective, -2.25cm + \perspective + \layerheight) -- (5 * \layer + 32 * \filters, -2.25cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, -2.25cm + \layerheight) -- (5 * \layer + 32 * \filters, -2.25cm + \layerheight) -- (5 * \layer + 32 * \filters + \perspective, -2.25cm + \perspective + \layerheight) -- (5 * \layer + \perspective, -2.25cm + \perspective + \layerheight) -- cycle;
|
|
\node[anchor=south west, scale=0.65, rotate=45] at (5 * \layer, -2.25cm + \layerheight) {$32 @ 12 \times 15$};
|
|
|
|
% third concatenation
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (6 * \layer, 0cm) -- (6 * \layer + 64 * \filters, 0cm) -- (6 * \layer + 64 * \filters + \perspective, 0cm + \perspective) -- (6 * \layer + \perspective, 0cm + \perspective) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (6 * \layer + \perspective, 0cm + \perspective) -- (6 * \layer + 64 * \filters + \perspective, 0cm + \perspective) -- (6 * \layer + 64 * \filters + \perspective, 0cm + \perspective + \layerheight) -- (6 * \layer + \perspective, 0cm + \perspective + \layerheight) -- cycle;
|
|
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (6 * \layer, 0cm) -- (6 * \layer + \perspective, 0cm + \perspective) -- (6 * \layer + \perspective, 0cm + \perspective + \layerheight) -- (6 * \layer, 0cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (6 * \layer, 0cm) -- (6 * \layer + 64 * \filters, 0cm) -- (6 * \layer + 64 * \filters, 0cm + \layerheight) -- (6 * \layer, 0cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (6 * \layer + 64 * \filters, 0cm) -- (6 * \layer + 64 * \filters + \perspective, 0cm + \perspective) -- (6 * \layer + 64 * \filters + \perspective, 0cm + \perspective + \layerheight) -- (6 * \layer + 64 * \filters, 0cm + \layerheight) -- cycle;
|
|
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (6 * \layer, 0cm + \layerheight) -- (6 * \layer + 64 * \filters, 0cm + \layerheight) -- (6 * \layer + 64 * \filters + \perspective, 0cm + \perspective + \layerheight) -- (6 * \layer + \perspective, 0cm + \perspective + \layerheight) -- cycle;
|
|
\node[anchor=south west, scale=0.65, rotate=45] at (6 * \layer, 0cm + \layerheight) {$64 @ 12 \times 15$};
|
|
|
|
\draw (5 * \layer + 32 * \filters + 1.2 * \perspective, 2.25cm + 0.5 * \layerheight) -- (5 * \layer + 32 * \filters + 1.7 * \perspective, 2.25cm + 0.5 * \layerheight) -- (5 * \layer + 32 * \filters + 1.7 * \perspective, -2.25cm + 0.5 * \layerheight) -- (5 * \layer + 32 * \filters + 1.2 * \perspective, -2.25cm + 0.5 * \layerheight);
|
|
\filldraw[fill=red!20, draw=black] (5 * \layer + 32 * \filters + 1.7 * \perspective, 0cm + 0.5 * \layerheight) node[anchor=center, scale=0.8] {$C$} circle (\myunit);
|
|
\draw[-latex] (5 * \layer + 32 * \filters + 1.7 * \perspective + \myunit, 0cm + 0.5 * \layerheight) -- (5 * \layer + 32 * \filters + 1.7 * \perspective + 3 * \myunit, 0cm + 0.5 * \layerheight);
|
|
|
|
% flatten layer
|
|
\foreach \x in {0,...,4} {
|
|
\filldraw[fill=cyan!10, draw=black] (6 * \layer + 3cm, 0cm + \myunit + 0.75 * \x cm) circle (\myunit);
|
|
\draw (6 * \layer + 3cm + \myunit, 0cm + \myunit + 0.75 * \x cm) -- (7 * \layer + 2cm - \myunit, 0cm + \myunit + 0.5 * \layerheight);
|
|
};
|
|
\node[anchor=north, scale=0.5, below=15pt, align=center] at (6 * \layer + 3cm, 0cm + \myunit) {flatten};
|
|
|
|
% draw the "flatenisation"
|
|
\draw[dashed] (6 * \layer + 64 * \filters, \layerheight) -- (6 * \layer + 3 cm, 3cm + 2 * \myunit) -- (6 * \layer + 64 * \filters + \perspective, \layerheight + \perspective) -- cycle;
|
|
\draw[dashed] (6 * \layer + 64 * \filters, 0cm) -- (6 * \layer + 3 cm, 0cm) -- (6 * \layer + 64 * \filters + \perspective, \perspective) -- cycle;
|
|
|
|
% output layer
|
|
\filldraw[fill=cyan!10, draw=black] (7 * \layer + 2cm, 0cm + \myunit + 0.5 * \layerheight - \myunit) -- (7 * \layer + 2cm, 0cm + \myunit + 0.5 * \layerheight) circle (\myunit) -- (7 * \layer + 2cm, 0cm + \myunit + 0.5 * \layerheight + \myunit);
|
|
\draw (7 * \layer + 2cm + 0.05cm, 0cm + \myunit + 0.5 * \layerheight) node[anchor=north, below=10pt, text width=2cm, scale=0.35, align=center] {output layer [1 unit]} -- (7 * \layer + 2cm + 0.10cm, 0cm + \myunit + 0.5 * \layerheight) -- (7 * \layer + 2cm + 0.15cm, 0cm + \myunit + 0.5 * \layerheight + 0.05cm);
|
|
|
|
% draw the first convolution
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm, 0.9 * \layerheight) -- (1cm + \perspective, 0.9 * \layerheight + \perspective) -- (1cm + \perspective, \layerheight + \perspective) -- (1cm, \layerheight) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm, 0.9 * \layerheight) -- (\layer, 2.25cm + 0.9 * \layerheight) -- (1cm + \perspective, 0.9 * \layerheight + \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm, \layerheight) -- (\layer, 2.25cm + 0.9 * \layerheight) -- (1cm + \perspective, \layerheight + \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm + \perspective, 0.9 * \layerheight + \perspective) -- (\layer, 2.25cm + 0.9 * \layerheight) -- (1cm + \perspective, \layerheight + \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm, 0.9 * \layerheight) -- (\layer, 2.25cm + 0.9 * \layerheight) -- (1cm, \layerheight) -- cycle;
|
|
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm, 0cm) -- (1cm + 0.2 * \perspective, 0.2 * \perspective) -- (1cm + 0.2 * \perspective, \layerheight + 0.2 * \perspective) -- (1cm, \layerheight) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm, 0cm) -- (\layer, -2.25cm + 0.9 * \layerheight) -- (1cm + 0.2 * \perspective, 0.2 * \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm + 0.2 * \perspective, 0.2 * \perspective) -- (\layer, -2.25cm + 0.9 * \layerheight) -- (1cm + 0.2 * \perspective, \layerheight + 0.2 * \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm + 0.2 * \perspective, \layerheight + 0.2 * \perspective) -- (\layer, -2.25cm + 0.9 * \layerheight) -- (1cm, \layerheight) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm, 0cm) -- (\layer, -2.25cm + 0.9 * \layerheight) -- (1cm, \layerheight) -- cycle;
|
|
|
|
% draw the second convolution
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.4 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- (2 * \layer + 64 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- (2 * \layer + 64 * \filters, 0.5 * \layerheight) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.4 * \layerheight) -- (3 * \layer, 2.25cm + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.5 * \layerheight) -- (3 * \layer, 2.25cm + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- (3 * \layer, 2.25cm + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.4 * \layerheight) -- (3 * \layer, 2.25cm + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters, 0.5 * \layerheight) -- cycle;
|
|
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- (2 * \layer + 64 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (3 * \layer, -2.25cm + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- (3 * \layer, -2.25cm + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- (3 * \layer, -2.25cm + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (3 * \layer, -2.25cm + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
|
|
|
|
% draw the second convolution
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.4 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- (2 * \layer + 64 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- (2 * \layer + 64 * \filters, 0.5 * \layerheight) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.4 * \layerheight) -- (3 * \layer, 2.25cm + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.5 * \layerheight) -- (3 * \layer, 2.25cm + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- (3 * \layer, 2.25cm + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.4 * \layerheight) -- (3 * \layer, 2.25cm + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters, 0.5 * \layerheight) -- cycle;
|
|
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- (2 * \layer + 64 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (3 * \layer, -2.25cm + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- (3 * \layer, -2.25cm + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- (3 * \layer, -2.25cm + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (3 * \layer, -2.25cm + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
|
|
|
|
% draw the third convolution
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters, 0.4 * \layerheight) -- (4 * \layer + 128 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- (4 * \layer + 128 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- (4 * \layer + 128 * \filters, 0.5 * \layerheight) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters, 0.4 * \layerheight) -- (5 * \layer, 2.25cm + 0.6 * \layerheight) -- (4 * \layer + 128 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters, 0.5 * \layerheight) -- (5 * \layer, 2.25cm + 0.6 * \layerheight) -- (4 * \layer + 128 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- (5 * \layer, 2.25cm + 0.6 * \layerheight) -- (4 * \layer + 128 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters, 0.4 * \layerheight) -- (5 * \layer, 2.25cm + 0.6 * \layerheight) -- (4 * \layer + 128 * \filters, 0.5 * \layerheight) -- cycle;
|
|
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (4 * \layer + 128 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- (4 * \layer + 128 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- (4 * \layer + 128 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (5 * \layer, -2.25cm + 0.9 * \layerheight) -- (4 * \layer + 128 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- (5 * \layer, -2.25cm + 0.9 * \layerheight) -- (4 * \layer + 128 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- (5 * \layer, -2.25cm + 0.9 * \layerheight) -- (4 * \layer + 128 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
|
|
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (5 * \layer, -2.25cm + 0.9 * \layerheight) -- (4 * \layer + 128 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
|
|
|
|
% hidden layer labels
|
|
\draw[decorate, decoration={brace}] (\layer, 2.25cm + 1.25 * \layerheight + \perspective) -- (2 * \layer + 64 * \filters + \perspective, 2.25cm + 1.25 * \layerheight + \perspective) node[midway, anchor=south, above=2cm, align=center] {concatenation module 1} node[midway, anchor=south, above=0.8cm, align=center, text width=4cm] {hor: $1 \times 15$ kernel ver: $12 \times 1$ kernel} node[midway, anchor=south] {(ReLU activation)};
|
|
\draw[decorate, decoration={brace}] (3 * \layer, 2.25cm + 1.25 * \layerheight + \perspective) -- (4 * \layer + 128 * \filters + \perspective, 2.25cm + 1.25 * \layerheight + \perspective) node[midway, anchor=south, above=2cm, align=center] {concatenation module 2} node[midway, anchor=south, above=0.8cm, align=center, text width=4cm] {hor: $1 \times 15$ kernel ver: $12 \times 1$ kernel} node[midway, anchor=south] {(ReLU activation)};
|
|
\draw[decorate, decoration={brace}] (5 * \layer, 2.25cm + 1.25 * \layerheight + \perspective) -- (6 * \layer + 64 * \filters + \perspective, 2.25cm + 1.25 * \layerheight + \perspective) node[midway, anchor=south, above=2cm, align=center] {concatenation module 3} node[midway, anchor=south, above=0.8cm, align=center, text width=4cm] {hor: $1 \times 15$ kernel ver: $12 \times 1$ kernel} node[midway, anchor=south] {(ReLU activation)};
|
|
|
|
|
|
\end{tikzpicture}
|
|
|
|
% vim: ft=tex
|