
\documentclass[border=8pt, multi, tikz]{standalone} 
\usepackage{import}
\subimport{../layers/}{init}
\usetikzlibrary{positioning}
\usetikzlibrary{3d} %for including external image 


\def\ConvColor{rgb:yellow,5;red,2.5;white,5}
\def\ConvReluColor{rgb:yellow,5;red,5;white,5}
\def\PoolColor{rgb:red,1;black,0.3}
\def\UnpoolColor{rgb:blue,2;green,1;black,0.3}
\def\FcColor{rgb:blue,5;red,2.5;white,5}
\def\FcReluColor{rgb:blue,5;red,5;white,4}
\def\SoftmaxColor{rgb:magenta,5;black,7}   
\def\SumColor{rgb:blue,5;green,15}


\newcommand{\copymidarrow}{\tikz \draw[-Stealth,line width=0.8mm,draw={rgb:blue,4;red,1;green,1;black,3}] (-0.3,0) -- ++(0.3,0);}

\begin{document}
\begin{tikzpicture}
\tikzstyle{connection}=[ultra thick,every node/.style={sloped,allow upside down},draw=\edgecolor,opacity=0.7]
\tikzstyle{copyconnection}=[ultra thick,every node/.style={sloped,allow upside down},draw={rgb:blue,4;red,1;green,1;black,3},opacity=0.7]


\pic[shift={(2,0,0)}] at (0,0,0) 
    {Box={
        name=latent,
        caption=Latent Space,
        captionshift=0,
        xlabel={{, }},
        zlabeloffset=0.3,
        zlabel=latent dim,
        fill=\ConvColor,
        height=19.200000000000003,
        width=1,
        depth=1.3
        }
    };


\pic[shift={(2,-.5,0)}] at (latent-east)
    {Box={
        name=fc3,
        caption=FC,
        captionshift=20,
        xlabel={{" ","dummy"}},
        zlabeloffset=0.35,
        zlabel={{4×512×8}},
        fill=\FcColor,
        opacity=0.8,
        height=1.3,
        width=1,
        depth=24
        }
    };


\pic[shift={ (2.5,0,0) }] at (fc3-east) 
    {Box={
        name=up1,
        caption=,
        captionshift=0,
        fill=\UnpoolColor,
        opacity=0.5,
        xlabel={{4, }},
        height=18,
        width=2,
        depth=36
        }
    };


\pic[shift={(0,0,0)}] at (up1-east) 
    {Box={
        name=deconv1,
        caption=Deconv1,
        captionshift=0,
        xlabel={{8, }},
        zlabeloffset=0.2,
        zlabel={{1024×16}},
        fill=\ConvColor,
        height=18,
        width=4,
        depth=36
        }
    };


\pic[shift={ (2,0,0) }] at (deconv1-east) 
    {Box={
        name=up2,
        caption=Deconv2,
        captionshift=10,
        fill=\UnpoolColor,
        opacity=0.5,
        xlabel={{8, }},
        height=26,
        width=4,
        depth=52
        }
    };


\pic[shift={(0,0,0)}] at (up2-east) 
    {Box={
        name=deconv2,
        caption=,
        captionshift=0,
        xlabel={{1, }},
        zlabeloffset=0.15,
        zlabel={{2048×32}},
        fill=\ConvColor,
        height=26,
        width=1,
        depth=52
        }
    };


\pic[shift={(2,0,0)}] at (deconv2-east) 
    {Box={
        name=out,
        caption=Output,
        captionshift=5,
        xlabel={{1, }},
        zlabeloffset=0.15,
        zlabel={{2048×32}},
        fill=\ConvColor,
        height=26,
        width=1.0,
        depth=52
        }
    };


\end{tikzpicture}
\end{document}

