\documentclass{standalone} \usepackage{amssymb} \usepackage{tikz} \usetikzlibrary{arrows.meta} \usetikzlibrary{shapes.geometric,arrows,positioning} \begin{document} \newcommand{\filtersize}{3} \begin{tikzpicture} \tikzstyle{conv-layer}=[draw,minimum width=3cm,minimum height=1cm] \tikzstyle{arrow}=[->, -Latex, thick] \draw[fill=black!10,dashed] (-4.2, -5.4) rectangle (7.5, 1.2); \node (input) at (1.5, 1) {}; \path[arrow] (1.5, 2) edge node[right, midway] {$256$-d in} (input.south); \node[draw, dashed] (concatenate) at (1.5, -5) {concatenate}; \node (between) at (3.4, -2.0) [align=center,text width=1.5cm] {total $32$ paths\\ \dots}; \path[arrow] (concatenate.south) edge node[right, midway] {$128$-d out} (1.5, -6); % first path \node (rect11) at (-2.5,-1.5) [conv-layer] {4 @ $1 \times 1 \times 256$}; \node (rect12) at (-2.5,-3.0) [conv-layer] {4 @ $1 \times 1 \times 4$}; \draw[arrow] (input.south) -- (rect11.north); \draw[arrow] (rect11.south) -- (rect12.north); \draw[arrow] (rect12.south) -- (concatenate); % second path \node (rect21) at ( 1,-1.5) [conv-layer] {4 @ $1 \times 1 \times 256$}; \node (rect22) at ( 1,-3.0) [conv-layer] {4 @ $1 \times 1 \times 4$}; \draw[arrow] (input.south) -- (rect21.north); \draw[arrow] (rect21.south) -- (rect22.north); \draw[arrow] (rect22.south) -- (concatenate); % last path \node (rect31) at ( 5.8,-1.5) [conv-layer] {4 @ $1 \times 1 \times 256$}; \node (rect32) at ( 5.8,-3.0) [conv-layer] {4 @ $1 \times 1 \times 4$}; \draw[arrow] (input.south) -- (rect31.north); \draw[arrow] (rect31.south) -- (rect32.north); \draw[arrow] (rect32.south) -- (concatenate); \end{tikzpicture} \end{document}