max_pooling


\documentclass[tikz,border=5mm]{standalone}
\usetikzlibrary{positioning}

\colorlet{myorange}{orange!70!red!60!black}

\begin{document}
\begin{tikzpicture}[line join=round,transform shape]

\def\in{{{12,5,8,3}, {1,8,4,13},{5,1,0,6},{7,1,2,9}}}
\def\pool{{{12,13},{7,9}}}

\pgfdeclarelayer{Original layer}
\pgfdeclarelayer{Result layer}
\pgfdeclarelayer{Kernel}
\pgfdeclarelayer{KernelOverlay}
\pgfdeclarelayer{Original2Kernel}
\pgfdeclarelayer{Kernel2Result}
\pgfsetlayers{Result layer, Kernel2Result, Kernel, Original layer, Original2Kernel, KernelOverlay}


\begin{pgfonlayer}{Original layer}
	\begin{scope}[yslant=-.0,local bounding box=Ori]
		\fill[red!20] (0,0) rectangle +(2,2);
		\fill[green!20] (0,2) rectangle +(2,2);
		\fill[blue!20] (2,0) rectangle +(2,2);
		\fill[yellow!20] (2,2) rectangle +(2,2);
		\draw[black] (0,0) grid (4,4);
		\draw[black,very thick] (0,0) rectangle (4,4);
		\foreach \i in {0,...,3}
		{
			\foreach \j in {0,...,3}
			{
				\pgfmathsetmacro{\x}{int(\in[\i][\j])}
				\path (\i+.5,\j+.5) node{\x};

			}
		}
		\path (Ori.north) node[above]{};
	\end{scope}
\end{pgfonlayer}


\begin{pgfonlayer}{Kernel}
	\begin{scope}[yslant=0,shift={(6,1)},
local bounding box=Ker]

		\fill[red!20] (0,0) rectangle +(1,1);
		\fill[green!20] (0,1) rectangle +(1,1);
		\fill[blue!20] (1,0) rectangle +(1,1);
		\fill[yellow!20] (1,1) rectangle +(1,1);
		\draw[black] (0,0) grid (2,2);
		\draw[black,very thick] (0,0) rectangle (2,2);
		\foreach \i in {0,1}
		{
			\foreach \j in {0,1}
			{
				\pgfmathsetmacro{\x}{int(\pool[\i][\j])}
				\path (\i+.5,\j+.5) node{\x};
			}
		}
		\path (Ker.north) node[above=2mm]{};
	\end{scope}
	\draw[->,>=stealth](4.5,2) -- (5.5,2) node[midway, above]  {max};
\end{pgfonlayer}



	
\end{tikzpicture}
\end{document}