\centering%
\begin{tikzpicture}
    \newlength\hpad
    \newlength\vpad
    \newlength\hvpad
    \setlength\hpad{.5cm}
    \setlength\vpad{.25cm}
    \setlength\hvpad{1.35cm}
    \colorlet{emphasis-red}{red} % Might need dulling, e.g. 'red!70!black'
    \newcommand*\nodetable[2]{%
        \begin{tabular}{@{}c@{}}%
            #1 \\
            \footnotesize #2%
        \end{tabular}%
    }

    \begin{scope}[every node/.append style={draw, minimum height=2em}]
        % INPUT LAYER
        \node (in) {\color{emphasis-red}%
            \nodetable{\emph{Input}}{$16 \times 3 \times 224 \times 224$}};

        % LAYER #1
        \node [right = \hpad of in] (conv1) {
            \nodetable{$\convol$}{$16 \times 32 \times 222 \times 222$}};
        \node [right = \hpad of conv1] (bn1) {
            \nodetable{$\batchnorm$}{\ldots}};
        \node [right = \hpad of bn1] (relu1) {
            \nodetable{$\relu$}{\ldots}};
        \node [right = \hpad of relu1] (pool1) {
            \nodetable{$\maxpool$}{$16 \times 32 \times 111 \times 111$}};

        % LAYER #2
        \node [right = \hpad of pool1] (conv2) {
            \nodetable{$\convol$}{$16 \times 64 \times 109 \times 109$}};
        \node [below = \hvpad of conv2.east, anchor=east] (bn2) {
            \nodetable{$\batchnorm$}{\ldots}};
        \node [left = \hpad of bn2] (relu2) {
            \nodetable{$\relu$}{\ldots}};
        \node [left  = \hpad of relu2] (pool2) {
            \nodetable{$\maxpool$}{$16 \times 64 \times 54 \times 54$}};

        % LAYER #3
        \node [left =  \hpad of pool2] (conv3) {
            \nodetable{$\convol$}{$16 \times 128 \times 52 \times 52 $}};
        \node [left = \hpad of conv3] (bn3) {
            \nodetable{$\batchnorm$}{\ldots}};
        \node [left = \hpad of bn3] (relu3) {
            \nodetable{$\relu$}{\ldots}};
        \node [left = \hpad of relu3]  (pool3) {
            \nodetable{$\maxpool$}{$16 \times 128 \times 26 \times 26$}};

        % COLLAPSE LAYER
        \node [left = \hpad of pool3] (collapse) {
            \nodetable{\emph{Collapse}}{$16 \times 86528$}};

        % LAYER #4
        \node [below = \vpad of collapse] (lin1) {
            \nodetable{$\linear$}{$16 \times 2048$}};
        \node [right = \hpad of lin1] (relu4) {
            \nodetable{$\relu$}{\ldots}};

        % LAYER #5
        \node [right = \hpad of relu4] (lin2) {
            \nodetable{$\linear$}{$16 \times 1024$}};
        \node [right = \hpad of lin2] (relu5) {
            \nodetable{$\relu$}{\ldots}};

        % LAYER #5
        \node [right = \hpad of relu5] (lin3) {
            \nodetable{$\linear$}{$16 \times 512$}};
        \node [right = \hpad of lin3] (relu6) {
            \nodetable{$\relu$}{\ldots}};

        % LAYER #6
        \node [right = \hpad of relu6]  (lin4) {
            \nodetable{$\linear$}{$16 \times 102$}};
        \node [right = \hpad of lin4]  (relu7) {
            \nodetable{$\relu$}{\ldots}};

        % OUTPUT LAYER
        \node [right = \hpad of relu7] (out) {\color{emphasis-red}%
            \nodetable{\emph{Output}}{$16 \times 102$}};
    \end{scope}

    % Draw CONV-BN-RELU-POOL layer intra-layer arrows
    \foreach \layeridx in {1, 2, 3} {
        \draw[-latex] (conv\layeridx) -- (bn\layeridx);
        \draw[-latex] (bn\layeridx)   -- (relu\layeridx);
        \draw[-latex] (relu\layeridx) -- (pool\layeridx);
    }

    % Inter-layer arrows for CONV-BN-RELU-POOL layers
    \draw[-latex, emphasis-red] (pool1) --    (conv2);
    \draw[-latex, emphasis-red] (pool2) --    (conv3);
    \draw[-latex, emphasis-red] (pool3) --    (collapse);
    \draw[-latex, emphasis-red] (collapse) -- (lin1);

    % Draw LIN-RELU layer intra-layer arrows
    \foreach \linidx/\reluidx in {1/4, 2/5, 3/6, 4/7}
        \draw[-latex] (lin\linidx) -- (relu\reluidx);

    % Inter-layer arrows for LIN-RELU layers
    \draw[-latex, emphasis-red] (relu4) -- (lin2);
    \draw[-latex, emphasis-red] (relu5) -- (lin3);
    \draw[-latex, emphasis-red] (relu6) -- (lin4);

    % Input and output arrows
    \draw[-latex, emphasis-red] (in) -- (conv1);
    \draw[-latex, emphasis-red] (relu7) -- (out);
\end{tikzpicture}

