Moved from specific definitions(Conv,ConvRelu) to Generic(Box,BandedBox). Also refactored and cleaned the code
This commit is contained in:
Binary file not shown.
@@ -1,127 +0,0 @@
|
||||
\documentclass[border=15pt, multi, tikz]{standalone}
|
||||
%\usepackage{blocks}
|
||||
\usepackage{import}
|
||||
\subimport{../../layers/}{init}
|
||||
\usetikzlibrary{positioning}
|
||||
|
||||
\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]
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Encoder
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% conv1_1,conv1_2,pool1
|
||||
\pic[shift={(0,0,0)}] at (0,0,0) {ConvReluPool={blockname=crp1,%
|
||||
numFilters={{"64","64","32"}},height=40,width={2,2},depth=40,zlabel=I}};
|
||||
% conv2_1,conv2_2,pool2
|
||||
\pic[shift={(1.6,0,0)}] at (crp1-east) {ConvReluPool={blockname=crp2,%
|
||||
numFilters={{"128","128"}},height=35,width={2.5,2.5},depth=35,zlabel=I/2}};
|
||||
%% conv3_1,conv3_2,conv3_3,pool3
|
||||
\pic[shift={(1.2,0,0)}] at (crp2-east) {ConvReluPool={blockname=crp3,%
|
||||
numFilters={{"256","256","256"}},height=30,width={3.3,3.3,3.3},depth=30,zlabel=I/4}};
|
||||
%% conv4_1,conv4_2,conv4_3,pool4
|
||||
\pic[shift={(1,0,0)}] at (crp3-east) {ConvReluPool={blockname=crp4,%
|
||||
numFilters={{"512","512","512"}},height=23,width={4.5,4.5,4.5},depth=23,zlabel=I/8}};
|
||||
%% conv5_1,conv5_2,conv5_3
|
||||
\pic[shift={(1,0,0)}] at (crp4-east) {ConvReluPool={blockname=crp5,%
|
||||
numFilters={{"512","512","512"}},height=12,width={4.5,4.5,4.5},depth=12,zlabel=I/16}};
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Bottleneck
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
%% conv5_1,conv5_2,conv5_3
|
||||
\pic[shift={(1,0,0)}] at (crp5-east) {ConvRelu={blockname=cp,%
|
||||
numFilters={{"4096","4096"}},height=5,width={7,7},depth=5,zlabel=I/8}};
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Dencoder
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
%% conv5_1r,conv5_2r,conv5_3r
|
||||
\pic[shift={(2,0,0)}] at (cp-east) {UpConvRelu={blockname=ucp5r,%
|
||||
numFilters={{"512","512","512"}},height=12,width={4.5,4.5,4.5},depth=12,zlabel=I/16,%
|
||||
fillcolor = {rgb:blue,5;green,2.5;white,5},upcolor={rgb:blue,15}}};
|
||||
%% up32
|
||||
\pic[shift={(1.5,0,0)}] at (ucp5r-east) {UpConvRelu={blockname=ucp4r,%
|
||||
numFilters={{"512","512","512"}},height=23,width={4.5,4.5,4.5},depth=23,zlabel=,%
|
||||
fillcolor = {rgb:blue,5;green,2.5;white,5},upcolor={rgb:blue,15}}};
|
||||
|
||||
%% up16
|
||||
\pic[shift={(2,0,0)}] at (ucp4r-east) {UpConvRelu={blockname=ucp3r,%
|
||||
numFilters={{"256","256","256"}},height=30,width={3.3,3.3,3.3},depth=30,zlabel=,%
|
||||
fillcolor = {rgb:blue,5;green,2.5;white,5},upcolor={rgb:blue,15}}};
|
||||
|
||||
%% up8
|
||||
\pic[shift={(2,0,0)}] at (ucp3r-east) {UpConvRelu={blockname=ucp2r,%
|
||||
numFilters={{"128","128"}},height=35,width={2.5,2.5},depth=35,zlabel=,%
|
||||
fillcolor = {rgb:blue,5;green,2.5;white,5},upcolor={rgb:blue,15}}};
|
||||
|
||||
|
||||
%% up4
|
||||
\pic[shift={(2,0,0)}] at (ucp2r-east) {UpConvRelu={blockname=ucp1r,%
|
||||
numFilters={{"64","64"}},height=40,width={2,2},depth=40,zlabel=,%
|
||||
fillcolor = {rgb:blue,5;green,2.5;white,5},upcolor={rgb:blue,15}}};
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Draw score producer
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
%% score
|
||||
%\pic[shift={(2,0,0)}] at (ucp1r-east) {Conv={blockname=score,%
|
||||
% numFilters={{"21",""}},height=40,width={2},depth=40,zlabel=I}};
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Draw connections
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\draw [connection] (crp1-east) -- node {\midarrow} (crp2-west);
|
||||
\draw [connection] (crp2-east) -- node {\midarrow} (crp3-west);
|
||||
\draw [connection] (crp3-east) -- node {\midarrow} (crp4-west);
|
||||
\draw [connection] (crp4-east) -- node {\midarrow} (cp-west);
|
||||
\draw [connection] (cp-east) -- node {\midarrow} (ucp5r-west);
|
||||
\draw [connection] (ucp5r-east) -- node {\midarrow} (ucp4r-west);
|
||||
\draw [connection] (ucp4r-east) -- node {\midarrow} (ucp3r-west);
|
||||
\draw [connection] (ucp3r-east) -- node {\midarrow} (ucp2r-west);
|
||||
\draw [connection] (ucp2r-east) -- node {\midarrow} (ucp1r-west);
|
||||
%\draw [connection] (ucp1r-east) -- node {\midarrow} (score-west);
|
||||
|
||||
\path (crp5-south-|crp5-east) -- (crp5-north-|crp5-east) coordinate[pos=1.25] (crp5-top) ;
|
||||
\path (crp4-south-|crp4-east) -- (crp4-north-|crp4-east) coordinate[pos=1.15] (crp4-top) ;
|
||||
\path (crp3-south-|crp3-east) -- (crp3-north-|crp3-east) coordinate[pos=1.15] (crp3-top) ;
|
||||
\path (crp2-south-|crp2-east) -- (crp2-north-|crp2-east) coordinate[pos=1.15] (crp2-top) ;
|
||||
\path (crp1-south-|crp1-east) -- (crp1-north-|crp1-east) coordinate[pos=1.15] (crp1-top) ;
|
||||
|
||||
\path (ucp5r-upsouth) -- (ucp5r-upnorth) coordinate[pos=1.25] (ucp5r-top) ;
|
||||
\path (ucp4r-upsouth) -- (ucp4r-upnorth) coordinate[pos=1.15] (ucp4r-top) ;
|
||||
\path (ucp3r-upsouth) -- (ucp3r-upnorth) coordinate[pos=1.15] (ucp3r-top) ;
|
||||
\path (ucp2r-upsouth) -- (ucp2r-upnorth) coordinate[pos=1.15] (ucp2r-top) ;
|
||||
\path (ucp1r-upsouth) -- (ucp1r-upnorth) coordinate[pos=1.15] (ucp1r-top) ;
|
||||
|
||||
\draw [copyconnection] (crp5-lastnorth-|crp5-east)
|
||||
-- node {\copymidarrow}(crp5-top)
|
||||
-- node {\copymidarrow}(ucp5r-top)
|
||||
-- node {\copymidarrow} (ucp5r-upnorth);
|
||||
\draw [copyconnection] (crp4-lastnorth-|crp4-east)
|
||||
-- node {\copymidarrow}(crp4-top)
|
||||
-- node {\copymidarrow}(ucp4r-top)
|
||||
-- node {\copymidarrow} (ucp4r-upnorth);
|
||||
\draw [copyconnection] (crp3-lastnorth-|crp3-east)
|
||||
-- node {\copymidarrow}(crp3-top)
|
||||
-- node {\copymidarrow}(ucp3r-top)
|
||||
-- node {\copymidarrow} (ucp3r-upnorth);
|
||||
\draw [copyconnection] (crp2-lastnorth-|crp2-east)
|
||||
-- node {\copymidarrow}(crp2-top)
|
||||
-- node {\copymidarrow}(ucp2r-top)
|
||||
-- node {\copymidarrow} (ucp2r-upnorth);
|
||||
\draw [copyconnection] (crp1-lastnorth-|crp1-east)
|
||||
-- node {\copymidarrow}(crp1-top)
|
||||
-- node {\copymidarrow}(ucp1r-top)
|
||||
-- node {\copymidarrow} (ucp1r-upnorth);
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\end{tikzpicture}
|
||||
\end{document}\grid
|
||||
Binary file not shown.
@@ -1,47 +0,0 @@
|
||||
\documentclass[border=15pt, multi, tikz]{standalone}
|
||||
%\usepackage{blocks}
|
||||
\usepackage{import}
|
||||
\subimport{../../layers/}{init}
|
||||
\usetikzlibrary{positioning}
|
||||
|
||||
%\newcommand{\midarrow}{\tikz \draw[-Stealth,line width =0.8mm,draw=\edgecolor] (-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]
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Layer Blocks
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% conv1_1,conv1_2,pool1
|
||||
\pic[shift={(0,0,0)}] at (0,0,0) {ConvReluPool={blockname=crp1,%
|
||||
numFilters={{"64","64","32"}},height=40,width={2,2},depth=40,zlabel=I}};
|
||||
% conv2_1,conv2_2,pool2
|
||||
\pic[shift={(2.1,0,0)}] at (crp1-east) {ConvReluPool={blockname=crp2,%
|
||||
numFilters={{"128","128"}},height=35,width={3,3},depth=35,zlabel=I/2}};
|
||||
%% conv3_1,conv3_2,conv3_3,pool3
|
||||
\pic[shift={(2,0,0)}] at (crp2-east) {ConvReluPool={blockname=crp3,%
|
||||
numFilters={{"256","256","256"}},height=30,width={4,4,4},depth=30,zlabel=I/4}};
|
||||
%% conv4_1,conv4_2,conv4_3,pool4
|
||||
\pic[shift={(1.8,0,0)}] at (crp3-east) {ConvReluPool={blockname=crp4,%
|
||||
numFilters={{"512","512","512"}},height=23,width={7,7,7},depth=23,zlabel=I/8}};
|
||||
%% conv5_1,conv5_2,conv5_3,pool5
|
||||
\pic[shift={(1.5,0,0)}] at (crp4-east) {ConvReluPool={blockname=crp5,%
|
||||
numFilters={{"512","512","512"}},height=15,width={7,7,7},depth=15,zlabel=I/16}};
|
||||
%% fc6, fc7
|
||||
\pic[shift={(1.2,0,0)}] at (crp5-east) {ConvRelu={blockname=cp6_7,%
|
||||
numFilters={{"4096","4096"}},height=10,width={10,10},depth=10,zlabel=I/32}};
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw connections
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\draw [connection] (crp1-east) -- node {\midarrow} (crp2-west);
|
||||
\draw [connection] (crp2-east) -- node {\midarrow} (crp3-west);
|
||||
\draw [connection] (crp3-east) -- node {\midarrow} (crp4-west);
|
||||
\draw [connection] (crp4-east) -- node {\midarrow} (crp5-west);
|
||||
\draw [connection] (crp5-east) -- node {\midarrow} (cp6_7-west);
|
||||
\draw [connection] (cp6_7-east) -- node {\midarrow} ++(1.5,0,0);
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\end{tikzpicture}
|
||||
\end{document}\grid
|
||||
Binary file not shown.
+102
-75
@@ -1,106 +1,133 @@
|
||||
\documentclass[border=15pt, multi, tikz]{standalone}
|
||||
%\usepackage{blocks}
|
||||
\usepackage{import}
|
||||
\subimport{../../layers/}{init}
|
||||
\usetikzlibrary{positioning}
|
||||
|
||||
\newcommand{\midarrow}{\tikz \draw[-Stealth,line width =0.8mm,draw=\edgecolor] (-0.3,0) -- ++(0.3,0);}
|
||||
\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\DcnvColor{rgb:blue,5;green,2.5;white,5}
|
||||
\def\SoftmaxColor{rgb:magenta,5;black,7}
|
||||
\def\SumColor{rgb:blue,5;green,15}
|
||||
\def\poolsep{1}
|
||||
|
||||
|
||||
\begin{document}
|
||||
\begin{tikzpicture}
|
||||
\tikzstyle{connection}=[ultra thick,every node/.style={sloped,allow upside down},draw=\edgecolor,opacity=0.7]
|
||||
\tikzstyle{connection}=[ultra thick,every node/.style={sloped,allow upside down},draw=\edgecolor,opacity=0.6]
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Layer Blocks
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% conv1_1,conv1_2,pool1
|
||||
\pic[shift={(0,0,0)}] at (0,0,0) {ConvReluPool={blockname=crp1,%
|
||||
numFilters={{"64","64","32"}},height=40,width={2,2},depth=40,zlabel=I}};
|
||||
% conv1_1,conv1_2,%pool1
|
||||
\pic[shift={(0,0,0)}] at (0,0,0) {RightBandedBox={name=cr1,%
|
||||
xlabel={{"64","64"}},zlabel=I,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=40,width={2,2},depth=40}};
|
||||
\pic[shift={(\poolsep,0,0)}] at (cr1-east) {Box={name=p1,%
|
||||
fill=\PoolColor,opacity=0.5,height=30,width=1,depth=30}};
|
||||
% conv2_1,conv2_2,pool2
|
||||
\pic[shift={(2.1,0,0)}] at (crp1-east) {ConvReluPool={blockname=crp2,%
|
||||
numFilters={{"128","128"}},height=35,width={3,3},depth=35,zlabel=I/2}};
|
||||
%% conv3_1,conv3_2,conv3_3,pool3
|
||||
\pic[shift={(2,0,0)}] at (crp2-east) {ConvReluPool={blockname=crp3,%
|
||||
numFilters={{"256","256","256"}},height=30,width={4,4,4},depth=30,zlabel=I/4}};
|
||||
%% conv4_1,conv4_2,conv4_3,pool4
|
||||
\pic[shift={(1.8,0,0)}] at (crp3-east) {ConvReluPool={blockname=crp4,%
|
||||
numFilters={{"512","512","512"}},height=23,width={7,7,7},depth=23,zlabel=I/8}};
|
||||
%% conv5_1,conv5_2,conv5_3,pool5
|
||||
\pic[shift={(1.5,0,0)}] at (crp4-east) {ConvRelu={blockname=crp5,%
|
||||
numFilters={{"512","512","512"}},height=15,width={7,7,7},depth=15,zlabel=I/16}};
|
||||
%% score32
|
||||
\pic[shift={(1,0,0)}] at (crp5-east) {Conv={blockname=score32,%
|
||||
numFilters={{"21","4096"}},height=15,width=1,depth=15,zlabel=I/16}};
|
||||
\pic[shift={(1,0,0)}] at (p1-east) {RightBandedBox={name=cr2,%
|
||||
xlabel={{"64","64"}},zlabel=I/2,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=30,width={3,3},depth=30}};
|
||||
\pic[shift={(\poolsep,0,0)}] at (cr2-east) {Box={name=p2,%
|
||||
fill=\PoolColor,opacity=0.5,height=23,width=1,depth=23}};
|
||||
% conv3_1,conv3_2,pool3
|
||||
\pic[shift={(1,0,0)}] at (p2-east) {RightBandedBox={name=cr3,%
|
||||
xlabel={{"256","256","256"}},zlabel=I/4,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=23,width={4,4,4},depth=23}};
|
||||
\pic[shift={(\poolsep,0,0)}] at (cr3-east) {Box={name=p3,%
|
||||
fill=\PoolColor,opacity=0.5,height=14,width=1,depth=14}};
|
||||
% conv4_1,conv4_2,conv4_3,pool4
|
||||
\pic[shift={(1,0,0)}] at (p3-east) {RightBandedBox={name=cr4,%
|
||||
xlabel={{"512","512","512"}},zlabel=I/8,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=14,width={7,7,7},depth=14}};
|
||||
\pic[shift={(\poolsep,0,0)}] at (cr4-east) {Box={name=p4,%
|
||||
fill=\PoolColor,opacity=0.5,height=8,width=1,depth=8}};
|
||||
% conv5_1,conv5_2,conv5_3,pool5
|
||||
\pic[shift={(1,0,0)}] at (p4-east) {RightBandedBox={name=cr5,%
|
||||
xlabel={{"512","512","512"}},fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=8,width={7,7,7},depth=8}};
|
||||
%% fc8 -> cr8 (score32)
|
||||
\pic[shift={(0,0,0)}] at (cr5-east) {Box={name=score16,%
|
||||
xlabel={{"K","dummy"}},fill=\ConvColor,%
|
||||
height=8,width=2,depth=8,zlabel=I/16}};
|
||||
|
||||
%% Upsampling Deconv Layer
|
||||
\pic[shift={(2,0,0)}] at (score32-east) {Deconv={blockname=up32,%
|
||||
numFilters={{"1","4096"}},height=33,width=1,depth=33,zlabel=}};
|
||||
%% Dcnv16
|
||||
\pic[shift={(2.5,0,0)}] at (score16-east) {Box={name=d16,%
|
||||
xlabel={{"","dummy"}},fill=\DcnvColor,opacity=0.7,height=40,width=0.5,depth=40}};
|
||||
%% Dcnv8
|
||||
\pic[shift={(.25,0,0)}] at (d16-east) {Box={name=d8,%
|
||||
xlabel={{"","dummy"}},fill=\DcnvColor,opacity=0.7,height=40,width=0.5,depth=40}};
|
||||
%% Dcnv4
|
||||
\pic[shift={(.25,0,0)}] at (d8-east) {Box={name=d4,%
|
||||
xlabel={{"","dummy"}},fill=\DcnvColor,opacity=0.7,height=40,width=0.5,depth=40}};
|
||||
%% Dcnv2
|
||||
\pic[shift={(.25,0,0)}] at (d4-east) {Box={name=d2,%
|
||||
xlabel={{"","dummy"}},fill=,opacity=0.01,height=40,width=0.5,depth=40}};
|
||||
|
||||
%% Dcnv envelope
|
||||
\pic[shift={(-0.2,0,0)}] at (d16-west) {Box={name=env,caption=concatenation of deconvolved feature maps,%
|
||||
xlabel={{"","dummy"}},fill=,opacity=0.2,height=42,width={8},depth=42}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\def\skipshift{6.5}
|
||||
%%Joining with previous streams (fcn-16)
|
||||
%% score16
|
||||
\pic[shift={(0,0,10)}] at (crp5-anchor) {Conv={blockname=score16,%
|
||||
numFilters={{"1","4096"}},height=20,width=1,depth=20,zlabel=I/8}};
|
||||
%% Upsampling Deconv Layer
|
||||
\pic[shift={(0.5,0,0)}] at (up32-west) {Deconv={blockname=up16,%
|
||||
numFilters={{"1","4096"}},height=33,width=1,depth=33,zlabel=}};
|
||||
\pic[shift={(0,0,3+\skipshift)}] at (cr5-anchor) {Box={name=score8,%
|
||||
xlabel={{"K","dummy"}},fill=\ConvColor,height=14,width=2,depth=14,zlabel=I/8}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%Joining with previous streams (fcn-8)
|
||||
%% score8
|
||||
\pic[shift={(1,0,14)}] at (crp4-anchor) {Conv={blockname=score8,%
|
||||
numFilters={{"1","4096"}},height=25,width=1,depth=25,zlabel=I/4}};
|
||||
|
||||
%% Upsampling Deconv Layer
|
||||
\pic[shift={(0.5,0,0)}] at (up16-west) {Deconv={blockname=up8,%
|
||||
numFilters={{"1","4096"}},height=33,width=1,depth=33,zlabel=}};
|
||||
\pic[shift={(0,0,8+\skipshift)}] at (cr4-east) {Box={name=score4,%
|
||||
xlabel={{"K","dummy"}},fill=\ConvColor,height=23,width=2,depth=23,zlabel=I/4}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%Joining with previous streams (fcn-4)
|
||||
%% score8
|
||||
\pic[shift={(0,0,18)}] at (crp3-east) {Conv={blockname=score4,%
|
||||
numFilters={{"1","4096"}},height=30,width=1,depth=30,zlabel=I/2}};
|
||||
%% Upsampling Deconv Layer
|
||||
\pic[shift={(0.5,0,0)}] at (up8-west) {Deconv={blockname=up4,%
|
||||
numFilters={{"1","4096"}},height=33,width=1,depth=33,zlabel=}};
|
||||
%% score4
|
||||
\pic[shift={(1,0,13+\skipshift)}] at (cr3-east) {Box={name=score2,%
|
||||
xlabel={{"K","dummy"}},fill=\ConvColor,height=30,width=2,depth=30,zlabel=I/2}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%Joining with previous streams (fcn-2)
|
||||
%% score8
|
||||
\pic[shift={(0,0,22)}] at (crp2-east) {Conv={blockname=score2,%
|
||||
numFilters={{"1","4096"}},height=33,width=1,depth=33,zlabel=I}};
|
||||
%% Upsampling Deconv Layer
|
||||
\pic[shift={(0.5,0,0)}] at (up4-west) {Deconv={blockname=up2,%
|
||||
numFilters={{"1","4096"}},height=33,width=1,depth=33,zlabel=I}};
|
||||
%% score2
|
||||
\pic[shift={(0.3,0,22+\skipshift)}] at (p2-east) {Box={name=score,%
|
||||
xlabel={{"K","dummy"}},fill=\ConvColor,height=40,width=2,depth=40,zlabel=I}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Final convolution
|
||||
\pic[shift={(3,0,0)}] at (up2-east) {Conv={blockname=output,%
|
||||
numFilters={{"1","4096"}},height=33,width=1,depth=33,zlabel=I}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw connections
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\draw [connection] (crp1-east) -- node {\midarrow} (crp2-west);
|
||||
\draw [connection] (crp2-east) -- node {\midarrow} (crp3-west);
|
||||
\draw [connection] (crp3-east) -- node {\midarrow} (crp4-west);
|
||||
\draw [connection] (crp4-east) -- node {\midarrow} (crp5-west);
|
||||
\draw [connection] (crp5-east) -- node {\midarrow} (score32-west);
|
||||
\draw [connection] (score32-east) -- node {\midarrow} (up32-west);
|
||||
|
||||
\path (crp4-east) -- (crp5-west) coordinate[pos=0.4] (between4_5) ;
|
||||
\draw [connection] (between4_5) -- node {\midarrow} ++(0,0,10) -- node {\midarrow} (score16-west);
|
||||
\draw [connection] (score16-east) -- node{\midarrow}++(6,0,0)-- node{\midarrow}(up16-out);
|
||||
|
||||
\path (crp3-east) -- (crp4-west) coordinate[pos=0.4] (between3_4) ;
|
||||
\draw [connection] (between3_4) -- node {\midarrow} ++(0,0,14) -- node {\midarrow} (score8-west);
|
||||
\draw [connection] (score8-east) -- node{\midarrow}++(11.55,0,0)-- node{\midarrow}(up8-out);
|
||||
|
||||
\path (crp2-east) -- (crp3-west) coordinate[pos=0.4] (between2_3) ;
|
||||
\draw [connection] (between2_3) -- node {\midarrow} ++(0,0,18) -- node {\midarrow} (score4-west);
|
||||
\draw [connection] (score4-east) -- node{\midarrow}++(17.3,0,0)-- node{\midarrow}(up4-out);
|
||||
|
||||
\path (crp1-east) -- (crp2-west) coordinate[pos=0.4] (between1_2) ;
|
||||
\draw [connection] (between1_2) -- node {\midarrow} ++(0,0,22) -- node {\midarrow} (score2-west);
|
||||
\draw [connection] (score2-east) -- node{\midarrow}++(22.7,0,0)-- node{\midarrow}(up2-out);
|
||||
|
||||
\draw [connection] (up2-east) -- node {\midarrow} (output-west);
|
||||
|
||||
\draw [connection] (output-east) -- node {\midarrow} ++(,0,0);
|
||||
\pic[shift={(3,0,0)}] at (d2-east) {Box={name=output,%
|
||||
xlabel={{"K","dummy"}},fill=\ConvColor,height=40,width=2,depth=40,zlabel=I}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%% Draw connections
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\draw [connection] (cr1-east) -- node {\midarrow} (p1-west);
|
||||
\draw [connection] (p1-east) -- node {\midarrow} (cr2-west);
|
||||
\draw [connection] (cr2-east) -- node {\midarrow} (p2-west);
|
||||
\draw [connection] (p2-east) -- node {\midarrow} (cr3-west);
|
||||
\draw [connection] (cr3-east) -- node {\midarrow} (p3-west);
|
||||
\draw [connection] (p3-east) -- node {\midarrow} (cr4-west);
|
||||
\draw [connection] (cr4-east) -- node {\midarrow} (p4-west);
|
||||
\draw [connection] (p4-east) -- node {\midarrow} (cr5-west);
|
||||
\draw [connection] (score16-east) -- node {\midarrow} (d16-west);
|
||||
%
|
||||
\path (cr4-east) -- (p4-west) coordinate[pos=0.4] (after4) ;
|
||||
\draw (d16-near)++(0,0,-1+\skipshift) coordinate (d16h);
|
||||
\draw [connection] (after4) -- node {\midarrow} ++(0,0,3+\skipshift) -- node {\midarrow} (score8-west);
|
||||
\draw [connection] (score8-east) -- node{\midarrow} (d16h) -- node{\midarrow}(d16-near);
|
||||
%
|
||||
\path (cr3-east) -- (p3-west) coordinate[pos=0.4] (after3) ;
|
||||
\draw (d8-near)++(0,0,4+\skipshift) coordinate (d8h);
|
||||
\draw [connection] (after3) -- node {\midarrow} ++(0,0,8+\skipshift) -- node {\midarrow} (score4-west);
|
||||
\draw [connection] (score4-east) -- node{\midarrow} (d8h) -- node{\midarrow}(d8-near);
|
||||
%
|
||||
\path (cr2-east) -- (p2-west) coordinate[pos=0.4] (after2) ;
|
||||
\draw (d4-near)++(0,0,9+\skipshift) coordinate (d4h);
|
||||
\draw [connection] (after2) -- node {\midarrow} ++(0,0,13+\skipshift) -- node {\midarrow} (score2-west);
|
||||
\draw [connection] (score2-east) -- node{\midarrow} (d4h) -- node{\midarrow}(d4-near);
|
||||
%
|
||||
\path (cr1-east) -- (p1-west) coordinate[pos=0.4] (after1) ;
|
||||
\draw (d2-near)++(0,0,18+\skipshift) coordinate (d2h);
|
||||
\draw [connection] (after1) -- node {\midarrow} ++(0,0,22+\skipshift) -- node {\midarrow} (score-west);
|
||||
\draw [connection] (score-east) -- node{\midarrow} (d2h) -- node{\midarrow}(d2-near);
|
||||
|
||||
\draw [connection] (d2-east) -- node {\midarrow} (output-west);
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\end{tikzpicture}
|
||||
|
||||
Binary file not shown.
@@ -1,116 +0,0 @@
|
||||
\documentclass[border=15pt, multi, tikz]{standalone}
|
||||
%\usepackage{blocks}
|
||||
\usepackage{import}
|
||||
\subimport{../../layers/}{init}
|
||||
\usetikzlibrary{positioning}
|
||||
|
||||
\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]
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Encoder
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% conv1_1,conv1_2,pool1
|
||||
\pic[shift={(0,0,0)}] at (0,0,0) {ConvReluPool={blockname=crp1,%
|
||||
numFilters={{"64","64","32"}},height=40,width={2,2},depth=40,zlabel=I}};
|
||||
% conv2_1,conv2_2,pool2
|
||||
\pic[shift={(1.6,0,0)}] at (crp1-east) {ConvReluPool={blockname=crp2,%
|
||||
numFilters={{"128","128"}},height=35,width={2.5,2.5},depth=35,zlabel=I/2}};
|
||||
%% conv3_1,conv3_2,conv3_3,pool3
|
||||
\pic[shift={(1.2,0,0)}] at (crp2-east) {ConvReluPool={blockname=crp3,%
|
||||
numFilters={{"256","256","256"}},height=30,width={3.3,3.3,3.3},depth=30,zlabel=I/4}};
|
||||
%% conv4_1,conv4_2,conv4_3,pool4
|
||||
\pic[shift={(1,0,0)}] at (crp3-east) {ConvReluPool={blockname=crp4,%
|
||||
numFilters={{"512","512","512"}},height=23,width={4.5,4.5,4.5},depth=23,zlabel=I/8}};
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Bottleneck
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% conv5_1,conv5_2,conv5_3
|
||||
\pic[shift={(1,0,0)}] at (crp4-east) {ConvRelu={blockname=cp5,%
|
||||
numFilters={{"512","512","512"}},height=12,width={4.5,4.5,4.5},depth=12,zlabel=I/16}};
|
||||
|
||||
%% conv5_1r,conv5_2r,conv5_3r
|
||||
\pic[shift={(2,0,0)}] at (cp5-east) {ConvRelu={blockname=cp5r,%
|
||||
numFilters={{"512","512","512"}},height=12,width={4.5,4.5,4.5},depth=12,zlabel=I/16}};
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Dencoder
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% up32
|
||||
\pic[shift={(1.5,0,0)}] at (cp5r-east) {UpConvRelu={blockname=ucp4r,%
|
||||
numFilters={{"512","512","512"}},height=23,width={4.5,4.5,4.5},depth=23,zlabel=}};
|
||||
|
||||
%% up16
|
||||
\pic[shift={(2,0,0)}] at (ucp4r-east) {UpConvRelu={blockname=ucp3r,%
|
||||
numFilters={{"256","256","256"}},height=30,width={3.3,3.3,3.3},depth=30,zlabel=}};
|
||||
|
||||
%% up8
|
||||
\pic[shift={(2,0,0)}] at (ucp3r-east) {UpConvRelu={blockname=ucp2r,%
|
||||
numFilters={{"128","128"}},height=35,width={2.5,2.5},depth=35,zlabel=}};
|
||||
|
||||
|
||||
%% up4
|
||||
\pic[shift={(2,0,0)}] at (ucp2r-east) {UpConvRelu={blockname=ucp1r,%
|
||||
numFilters={{"64","64"}},height=40,width={2,2},depth=40,zlabel=}};
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Draw score producer
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
%% score
|
||||
%\pic[shift={(2,0,0)}] at (ucp1r-east) {Conv={blockname=score,%
|
||||
% numFilters={{"21",""}},height=40,width={2},depth=40,zlabel=I}};
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Draw connections
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\draw [connection] (crp1-east) -- node {\midarrow} (crp2-west);
|
||||
\draw [connection] (crp2-east) -- node {\midarrow} (crp3-west);
|
||||
\draw [connection] (crp3-east) -- node {\midarrow} (crp4-west);
|
||||
\draw [connection] (crp4-east) -- node {\midarrow} (cp5-west);
|
||||
\draw [connection] (cp5-east) -- node {\midarrow} (cp5r-west);
|
||||
\draw [connection] (cp5r-east) -- node {\midarrow} (ucp4r-west);
|
||||
\draw [connection] (ucp4r-east) -- node {\midarrow} (ucp3r-west);
|
||||
\draw [connection] (ucp3r-east) -- node {\midarrow} (ucp2r-west);
|
||||
\draw [connection] (ucp2r-east) -- node {\midarrow} (ucp1r-west);
|
||||
%\draw [connection] (ucp1r-east) -- node {\midarrow} (score-west);
|
||||
|
||||
|
||||
|
||||
|
||||
\path (crp4-south-|crp4-east) -- (crp4-north-|crp4-east) coordinate[pos=1.15] (crp4-top) ;
|
||||
\path (crp3-south-|crp3-east) -- (crp3-north-|crp3-east) coordinate[pos=1.15] (crp3-top) ;
|
||||
\path (crp2-south-|crp2-east) -- (crp2-north-|crp2-east) coordinate[pos=1.15] (crp2-top) ;
|
||||
\path (crp1-south-|crp1-east) -- (crp1-north-|crp1-east) coordinate[pos=1.15] (crp1-top) ;
|
||||
|
||||
\path (ucp4r-upsouth) -- (ucp4r-upnorth) coordinate[pos=1.15] (ucp4r-top) ;
|
||||
\path (ucp3r-upsouth) -- (ucp3r-upnorth) coordinate[pos=1.15] (ucp3r-top) ;
|
||||
\path (ucp2r-upsouth) -- (ucp2r-upnorth) coordinate[pos=1.15] (ucp2r-top) ;
|
||||
\path (ucp1r-upsouth) -- (ucp1r-upnorth) coordinate[pos=1.15] (ucp1r-top) ;
|
||||
|
||||
\draw [copyconnection] (crp4-lastnorth-|crp4-east)
|
||||
-- node {\copymidarrow}(crp4-top)
|
||||
-- node {\copymidarrow}(ucp4r-top)
|
||||
-- node {\copymidarrow} (ucp4r-upnorth);
|
||||
\draw [copyconnection] (crp3-lastnorth-|crp3-east)
|
||||
-- node {\copymidarrow}(crp3-top)
|
||||
-- node {\copymidarrow}(ucp3r-top)
|
||||
-- node {\copymidarrow} (ucp3r-upnorth);
|
||||
\draw [copyconnection] (crp2-lastnorth-|crp2-east)
|
||||
-- node {\copymidarrow}(crp2-top)
|
||||
-- node {\copymidarrow}(ucp2r-top)
|
||||
-- node {\copymidarrow} (ucp2r-upnorth);
|
||||
\draw [copyconnection] (crp1-lastnorth-|crp1-east)
|
||||
-- node {\copymidarrow}(crp1-top)
|
||||
-- node {\copymidarrow}(ucp1r-top)
|
||||
-- node {\copymidarrow} (ucp1r-upnorth);
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\end{tikzpicture}
|
||||
\end{document}\grid
|
||||
Binary file not shown.
@@ -1,10 +1,8 @@
|
||||
\documentclass[border=15pt, multi, tikz]{standalone}
|
||||
%\usepackage{blocks}
|
||||
\usepackage{import}
|
||||
\subimport{../../layers/}{init}
|
||||
\usetikzlibrary{positioning}
|
||||
|
||||
\newcommand{\midarrow}{\tikz \draw[-Stealth,line width =0.8mm,draw=\edgecolor] (-0.3,0) -- ++(0.3,0);}
|
||||
\newcommand{\up}{0.25}
|
||||
\newcommand{\down}{0.25}
|
||||
\newcommand{\arrowlength}{4}
|
||||
@@ -12,35 +10,35 @@
|
||||
\begin{document}
|
||||
\begin{tikzpicture}
|
||||
\tikzstyle{connection}=[ultra thick,every node/.style={sloped,allow upside down},draw=\edgecolor,opacity=0.7]
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Layer Blocks
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% conv1_1,conv1_2,pool1
|
||||
\pic[shift={(0,0,0)},fill={rgb:blue,1.5;red,3.5;green,3.5;white,5}] at (0,0,0) {GenericSequentialLayer={blockname=crp1,%
|
||||
numFilters={{" ",""}},height=20,width={7},depth=20, blocklabel=SoftmaxLoss: $E_\mathcal{S}$ ,ylabel= ,zlabel= }};
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw connections
|
||||
%% Draw previous connections
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\draw [connection] (crp1-east)++(0,\up,0) -- node {\midarrow} ++(\arrowlength.0,0)
|
||||
node [anchor=south east,scale=2.1]{$E_\mathcal{S} [p;\theta]$};
|
||||
\draw (crp1-west)++(0,\up,0) coordinate (crp1-west-up);
|
||||
\draw [connection] (crp1-west-up)++(-\arrowlength,0,0)
|
||||
\draw [connection] (-\arrowlength,\up,0)
|
||||
node[anchor=south west,scale=2.1]{$p(x^{(t)})$}
|
||||
-- node {\midarrow} (crp1-west-up);
|
||||
|
||||
\draw [connection] (crp1-west)++(0,-\down,0) -- node {\midarrow} ++(-\arrowlength.0,0)
|
||||
-- node {\midarrow} (0,\up,0);
|
||||
\draw [connection] (0,-\down,0) -- node {\midarrow} ++(-\arrowlength.0,0)
|
||||
node[anchor=north west,inner sep = 10, xshift=-25,scale=2.3]
|
||||
{
|
||||
$\frac{\partial L}{\partial E_\mathcal{S}}\frac{\partial E_\mathcal{S}}{\partial p}$
|
||||
};
|
||||
\draw (crp1-east)++(0,-\down,0) coordinate (crp1-east-down);
|
||||
\draw [connection] (crp1-east-down)++(\arrowlength,0,0)
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Layer Blocks
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\pic[shift={(0,0,0)}] at (0,0,0) {Box={name=crp1,caption=SoftmaxLoss: $E_\mathcal{S}$ ,%
|
||||
fill={rgb:blue,1.5;red,3.5;green,3.5;white,5},opacity=0.5,height=20,width=7,depth=20}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw next connections
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\draw [connection] (crp1-east)++(0,\up,0) -- node {\midarrow} ++(\arrowlength.0,0)
|
||||
node [anchor=south east,scale=2.1]{$E_\mathcal{S} [p;\theta]$};
|
||||
|
||||
\draw [connection] (crp1-east)++(\arrowlength,-\down,0)
|
||||
node[anchor=north east,inner sep = 10, xshift=25,scale=2.3]
|
||||
{
|
||||
$\frac{\partial L}{\partial E_\mathcal{S}} = \lambda_\mathcal{S}$
|
||||
}
|
||||
-- node {\midarrow} (crp1-east-down);
|
||||
-- node {\midarrow} ++(-\arrowlength,0,0);
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
@@ -1,138 +0,0 @@
|
||||
\documentclass[border=15pt, multi, tikz]{standalone}
|
||||
%\usepackage{blocks}
|
||||
\usepackage{import}
|
||||
\subimport{../../layers/}{init}
|
||||
\usetikzlibrary{positioning}
|
||||
|
||||
\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]
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Encoder
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% conv1_1,conv1_2,pool1
|
||||
\pic[shift={(0,0,0)}] at (0,0,0) {ConvReluPool={blockname=crp1,%
|
||||
numFilters={{"64","64","32"}},height=40,width={2,2},depth=40,zlabel=I}};
|
||||
% conv2_1,conv2_2,pool2
|
||||
\pic[shift={(1.6,0,0)}] at (crp1-east) {ConvReluPool={blockname=crp2,%
|
||||
numFilters={{"128","128"}},height=35,width={2.5,2.5},depth=35,zlabel=I/2}};
|
||||
%% conv3_1,conv3_2,conv3_3,pool3
|
||||
\pic[shift={(1.2,0,0)}] at (crp2-east) {ConvReluPool={blockname=crp3,%
|
||||
numFilters={{"256","256"}},height=30,width={3.3,3.3},depth=30,zlabel=I/4}};
|
||||
%% conv4_1,conv4_2,conv4_3,pool4
|
||||
\pic[shift={(1,0,0)}] at (crp3-east) {ConvReluPool={blockname=crp4,%
|
||||
numFilters={{"512","512"}},height=23,width={4.5,4.5},depth=23,zlabel=I/8}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Bottleneck
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% fc6,fc7
|
||||
\pic[shift={(0.9,0,0)}] at (crp4-east) {ConvRelu={blockname=cp6_7,%
|
||||
numFilters={{"1024","1024"}},height=10,width={9,9},depth=10,zlabel=I/16}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Dencoder
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% up32
|
||||
\pic[shift={(1.5,0,0)}] at (cp6_7-east) {UpConvRelu={blockname=up32,%
|
||||
numFilters={{"512",""}},height=23,width={4.5},depth=23,zlabel=}};
|
||||
%% Concat32
|
||||
\pic[shift={(0,0,0)}] at (up32-east) {Gray={blockname=cat32,%
|
||||
numFilters={{"512",""}},height=23,width={4.5},depth=23,zlabel=}};
|
||||
%% Conv32
|
||||
\pic[shift={(0.5,0,0)}] at (cat32-east) {ConvRelu={blockname=conv32,%
|
||||
numFilters={{"512","512"}},height=23,width={4.5,4.5},depth=23,zlabel=I/8}};
|
||||
|
||||
|
||||
%% up16
|
||||
\pic[shift={(2,0,0)}] at (conv32-east) {UpConvRelu={blockname=up16,%
|
||||
numFilters={{"256",""}},height=30,width={3.3},depth=30,zlabel=}};
|
||||
%% Concat16
|
||||
\pic[shift={(0,0,0)}] at (up16-east) {Gray={blockname=cat16,%
|
||||
numFilters={{"256",""}},height=30,width={3.3},depth=30,zlabel=}};
|
||||
%% Conv16
|
||||
\pic[shift={(0.5,0,0)}] at (cat16-east) {ConvRelu={blockname=conv16,%
|
||||
numFilters={{"256","256"}},height=30,width={3.3,3.3},depth=30,zlabel=I/4}};
|
||||
|
||||
|
||||
%% up8
|
||||
\pic[shift={(2,0,0)}] at (conv16-east) {UpConvRelu={blockname=up8,%
|
||||
numFilters={{"128",""}},height=35,width={2.5},depth=35,zlabel=}};
|
||||
%% Concat8
|
||||
\pic[shift={(0,0,0)}] at (up8-east) {Gray={blockname=cat8,%
|
||||
numFilters={{"128",""}},height=35,width={2.5},depth=35,zlabel=}};
|
||||
%% Conv8
|
||||
\pic[shift={(0.5,0,0)}] at (cat8-east) {ConvRelu={blockname=conv8,%
|
||||
numFilters={{"128","128"}},height=35,width={2.5,2.5},depth=35,zlabel=I/2}};
|
||||
|
||||
|
||||
%% up4
|
||||
\pic[shift={(2,0,0)}] at (conv8-east) {UpConvRelu={blockname=up4,%
|
||||
numFilters={{"64",""}},height=40,width={2},depth=40,zlabel=}};
|
||||
%% Concat4
|
||||
\pic[shift={(0,0,0)}] at (up4-east) {Gray={blockname=cat4,%
|
||||
numFilters={{"64",""}},height=40,width={2},depth=40,zlabel=}};
|
||||
|
||||
%% Conv4
|
||||
\pic[shift={(0.5,0,0)}] at (cat4-east) {ConvRelu={blockname=conv4,%
|
||||
numFilters={{"64","64"}},height=40,width={2,2},depth=40,zlabel=I}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Draw score producer
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
%% Conv4
|
||||
\pic[shift={(2,0,0)}] at (conv4-east) {Conv={blockname=score,%
|
||||
numFilters={{"21",""}},height=40,width={2},depth=40,zlabel=I}};
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Draw connections
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\draw [connection] (crp1-east) -- node {\midarrow} (crp2-west);
|
||||
\draw [connection] (crp2-east) -- node {\midarrow} (crp3-west);
|
||||
\draw [connection] (crp3-east) -- node {\midarrow} (crp4-west);
|
||||
\draw [connection] (crp4-east) -- node {\midarrow} (cp6_7-west);
|
||||
\draw [connection] (cp6_7-east) -- node {\midarrow} (up32-west);
|
||||
\draw [connection] (cat32-east) -- node {\midarrow} (conv32-west);
|
||||
\draw [connection] (conv32-east) -- node {\midarrow} (up16-west);
|
||||
|
||||
\draw [connection] (cat16-east) -- node {\midarrow} (conv16-west);
|
||||
\draw [connection] (conv16-east) -- node {\midarrow} (up8-west);
|
||||
|
||||
\draw [connection] (cat8-east) -- node {\midarrow} (conv8-west);
|
||||
\draw [connection] (conv8-east) -- node {\midarrow} (up4-west);
|
||||
|
||||
\draw [connection] (cat4-east) -- node {\midarrow} (conv4-west);
|
||||
\draw [connection] (conv4-east) -- node {\midarrow} (score-west);
|
||||
|
||||
\path (crp4-lastsouth) -- (crp4-lastnorth) coordinate[pos=1.25] (crp4-top) ;
|
||||
\path (crp3-lastsouth) -- (crp3-lastnorth) coordinate[pos=1.25] (crp3-top) ;
|
||||
\path (crp2-lastsouth) -- (crp2-lastnorth) coordinate[pos=1.25] (crp2-top) ;
|
||||
\path (crp1-lastsouth) -- (crp1-lastnorth) coordinate[pos=1.25] (crp1-top) ;
|
||||
|
||||
\path (cat32-south) -- (cat32-north) coordinate[pos=1.25] (cat32-top) ;
|
||||
\path (cat16-south) -- (cat16-north) coordinate[pos=1.25] (cat16-top) ;
|
||||
\path (cat8-south) -- (cat8-north) coordinate[pos=1.25] (cat8-top) ;
|
||||
\path (cat4-south) -- (cat4-north) coordinate[pos=1.25] (cat4-top) ;
|
||||
|
||||
\draw [copyconnection] (crp4-lastnorth)
|
||||
-- node {\copymidarrow}(crp4-top)
|
||||
-- node {\copymidarrow}(cat32-top)
|
||||
-- node {\copymidarrow} (cat32-north);
|
||||
\draw [copyconnection] (crp3-lastnorth)
|
||||
-- node {\copymidarrow}(crp3-top)
|
||||
-- node {\copymidarrow}(cat16-top)
|
||||
-- node {\copymidarrow} (cat16-north);
|
||||
\draw [copyconnection] (crp2-lastnorth)
|
||||
-- node {\copymidarrow}(crp2-top)
|
||||
-- node {\copymidarrow}(cat8-top)
|
||||
-- node {\copymidarrow} (cat8-north);
|
||||
\draw [copyconnection] (crp1-lastnorth)
|
||||
-- node {\copymidarrow}(crp1-top)
|
||||
-- node {\copymidarrow}(cat4-top)
|
||||
-- node {\copymidarrow} (cat4-north);
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\end{tikzpicture}
|
||||
\end{document}\grid
|
||||
Binary file not shown.
+87
-39
@@ -4,54 +4,102 @@
|
||||
\subimport{../../layers/}{init}
|
||||
\usetikzlibrary{positioning}
|
||||
|
||||
\newcommand{\midarrow}{\tikz \draw[-Stealth,line width =0.8mm,draw=\edgecolor] (-0.3,0) -- ++(0.3,0);}
|
||||
\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\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}
|
||||
|
||||
\begin{document}
|
||||
\begin{tikzpicture}
|
||||
\tikzstyle{connection}=[ultra thick,every node/.style={sloped,allow upside down},draw=\edgecolor,opacity=0.7]
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Layer Blocks
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% conv1_1,conv1_2,pool1
|
||||
\pic[shift={(0,0,0)}] at (0,0,0) {ConvReluPool={blockname=crp1,%
|
||||
numFilters={{"64","64","32"}},height=40,width={2,2},depth=40,ylabel=224,zlabel=224}};
|
||||
% conv2_1,conv2_2,pool2
|
||||
\pic[shift={(2.1,0,0)}] at (crp1-east) {ConvReluPool={blockname=crp2,%
|
||||
numFilters={{"128","128"}},height=35,width={3,3},depth=35,ylabel=112,zlabel=112}};
|
||||
%% conv3_1,conv3_2,conv3_3,pool3
|
||||
\pic[shift={(2,0,0)}] at (crp2-east) {ConvReluPool={blockname=crp3,%
|
||||
numFilters={{"256","256","256"}},height=30,width={4,4,4},depth=30,ylabel=56,zlabel=56}};
|
||||
%% conv4_1,conv4_2,conv4_3,pool4
|
||||
\pic[shift={(1.8,0,0)}] at (crp3-east) {ConvReluPool={blockname=crp4,%
|
||||
numFilters={{"512","512","512"}},height=23,width={7,7,7},depth=23,ylabel=28,zlabel=28}};
|
||||
%% conv5_1,conv5_2,conv5_3,pool5
|
||||
\pic[shift={(1.5,0,0)}] at (crp4-east) {ConvReluPool={blockname=crp5,%
|
||||
numFilters={{"512","512","512"}},height=15,width={7,7,7},depth=15,ylabel=14,zlabel=14}};
|
||||
%% fc6,
|
||||
\pic[shift={(1.2,0,0)}] at (crp5-east) {FullyConnectedRelu={blockname=fc6,%
|
||||
numFilters={{"4096","dummy"}},height=10,width={10},depth=10,ylabel=7,zlabel=7}};
|
||||
%% fc7
|
||||
\pic[shift={(1,0,0)}] at (fc6-east) {FullyConnectedRelu={blockname=fc7,%
|
||||
numFilters={{"4096","dummy"}},height=3,width={10},depth=3,ylabel= ,zlabel=1 }};
|
||||
% conv1_1,conv1_2
|
||||
\pic[shift={(0,0,0)}] at (0,0,0) {RightBandedBox={name=cr1,caption=conv1,%
|
||||
xlabel={{"64","64"}},ylabel=224,zlabel=224,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=40,width={2,2},depth=40}};
|
||||
%pool1
|
||||
\pic[shift={(0,0,0)}] at (cr1-east) {Box={name=p1,%
|
||||
fill=\PoolColor,opacity=0.5,height=35,width=1,depth=35}};
|
||||
%%%%%%%%%%
|
||||
% conv2_1,conv2_2
|
||||
\pic[shift={(2,0,0)}] at (p1-east) {RightBandedBox={name=cr2,caption=conv2,%
|
||||
xlabel={{"64","64"}},zlabel=112,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=35,width={3,3},depth=35}};
|
||||
%pool2
|
||||
\pic[shift={(0,0,0)}] at (cr2-east) {Box={name=p2,%
|
||||
fill=\PoolColor,opacity=0.5,height=30,width=1,depth=30}};
|
||||
%%%%%%%%%%
|
||||
% conv3_1,conv3_2
|
||||
\pic[shift={(2,0,0)}] at (p2-east) {RightBandedBox={name=cr3,caption=conv3,%
|
||||
xlabel={{"256","256","256"}},zlabel=56,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=30,width={4,4,4},depth=30}};
|
||||
%pool3
|
||||
\pic[shift={(0,0,0)}] at (cr3-east) {Box={name=p3,%
|
||||
fill=\PoolColor,opacity=0.5,height=23,width=1,depth=23}};
|
||||
%%%%%%%%%%
|
||||
% conv4_1,conv4_2,conv4_3
|
||||
\pic[shift={(1.8,0,0)}] at (p3-east) {RightBandedBox={name=cr4,caption=conv4,%
|
||||
xlabel={{"512","512","512"}},zlabel=28,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=23,width={7,7,7},depth=23}};
|
||||
%pool4
|
||||
\pic[shift={(0,0,0)}] at (cr4-east) {Box={name=p4,%
|
||||
fill=\PoolColor,opacity=0.5,height=15,width=1,depth=15}};
|
||||
%%%%%%%%%%
|
||||
% conv5_1,conv5_2,conv5_3
|
||||
\pic[shift={(1.5,0,0)}] at (p4-east) {RightBandedBox={name=cr5,caption=conv5,%
|
||||
xlabel={{"512","512","512"}},zlabel=14,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=15,width={7,7,7},depth=15}};
|
||||
%pool5
|
||||
\pic[shift={(0,0,0)}] at (cr5-east) {Box={name=p5,%
|
||||
fill=\PoolColor,opacity=0.5,height=10,width=1,depth=10}};
|
||||
%%%%%%%%%%
|
||||
% fc6
|
||||
\pic[shift={(3,0,0)}] at (p5-east) {RightBandedBox={name=fc6,caption=fc6,%
|
||||
xlabel={{"1",""}},zlabel=4096,fill=\FcColor,bandfill=\FcReluColor,%
|
||||
height=3,width=3,depth=100}};
|
||||
%%%%%%%%%%
|
||||
% fc7
|
||||
\pic[shift={(2,0,0)}] at (fc6-east) {RightBandedBox={name=fc7,caption=fc7,%
|
||||
xlabel={{"1","dummy"}},zlabel=4096,fill=\FcColor,bandfill=\FcReluColor,%
|
||||
height=3,width=3,depth=100}};
|
||||
%%%%%%%%%%
|
||||
% fc8
|
||||
\pic[shift={(1.5,0,0)}] at (fc7-east) {RightBandedBox={name=fc8,caption=fc8+softmax,%
|
||||
xlabel={{"1","dummy"}},fill=\FcColor,bandfill=\FcReluColor,%
|
||||
height=3,width=3,depth=25}};
|
||||
|
||||
%% fc8
|
||||
\pic[shift={(1,0,0)}] at (fc7-east) {FullyConnected={blockname=fc8,%
|
||||
numFilters={{"K","dummy"}},height=3,width=7,depth=3,ylabel=,zlabel=1}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Output
|
||||
%% Softmax
|
||||
%\pic[shift={(1,0,0)}] at (elt2-east) {Deconv={blockname=up8,%
|
||||
% numFilters={{"21","4096"}},height=35,width=1,depth=35,zlabel=I}};
|
||||
%%%%%%%%%%
|
||||
% softmax
|
||||
\pic[shift={(0,0,0)}] at (fc8-east) {Box={name=softmax,%
|
||||
xlabel={{"","dummy"}},zlabel=K,opacity=0.8,fill=\SoftmaxColor,%
|
||||
height=3,width=1.5,depth=25}};
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw connections
|
||||
%% Draw Arrow Connections
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\draw [connection] (crp1-east) -- node {\midarrow} (crp2-west);
|
||||
\draw [connection] (crp2-east) -- node {\midarrow} (crp3-west);
|
||||
\draw [connection] (crp3-east) -- node {\midarrow} (crp4-west);
|
||||
\draw [connection] (crp4-east) -- node {\midarrow} (crp5-west);
|
||||
\draw [connection] (crp5-east) -- node {\midarrow} (fc6-west);
|
||||
\draw [connection] (fc6-east) -- node {\midarrow} (fc7-west);
|
||||
\draw [connection] (fc7-east) -- node {\midarrow} (fc8-west);
|
||||
\draw [connection] (p1-east) -- node {\midarrow} (cr2-west);
|
||||
\draw [connection] (p2-east) -- node {\midarrow} (cr3-west);
|
||||
\draw [connection] (p3-east) -- node {\midarrow} (cr4-west);
|
||||
\draw [connection] (p4-east) -- node {\midarrow} (cr5-west);
|
||||
\draw [connection] (p5-east) -- node {\midarrow} (fc6-west);
|
||||
\draw [connection] (fc6-east) -- node {\midarrow} (fc7-west);
|
||||
\draw [connection] (fc7-east) -- node {\midarrow} (fc8-west);
|
||||
\draw [connection] (softmax-east) -- node {\midarrow} ++(1.5,0,0);
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Dotted Edges
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\draw[densely dashed]
|
||||
(fc6-west)++(0, 1.5*.2, 1.5*.2) coordinate(a) -- (p5-nearnortheast)
|
||||
(fc6-west)++(0,-1.5*.2, 1.5*.2) coordinate(b) -- (p5-nearsoutheast)
|
||||
(fc6-west)++(0,-1.5*.2,-1.5*.2) coordinate(c) -- (p5-farsoutheast)
|
||||
(fc6-west)++(0, 1.5*.2,-1.5*.2) coordinate(d) -- (p5-farnortheast)
|
||||
|
||||
(a)--(b)--(c)--(d)
|
||||
;
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\end{tikzpicture}
|
||||
\end{document}
|
||||
|
||||
Binary file not shown.
@@ -1,46 +0,0 @@
|
||||
\documentclass[border=15pt, multi, tikz]{standalone}
|
||||
%\usepackage{blocks}
|
||||
\usepackage{import}
|
||||
\subimport{../../layers/}{init}
|
||||
\usetikzlibrary{positioning}
|
||||
|
||||
%\newcommand{\midarrow}{\tikz \draw[-Stealth,line width =0.8mm,draw=\edgecolor] (-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]
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Layer Blocks
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% conv1_1,conv1_2,pool1
|
||||
\pic[shift={(0,0,0)}] at (0,0,0) {ConvReluPool={blockname=crp1,%
|
||||
numFilters={{"64","64","32"}},height=40,width={2,2},depth=40,ylabel=224,zlabel=224}};
|
||||
% conv2_1,conv2_2,pool2
|
||||
\pic[shift={(2.1,0,0)}] at (crp1-east) {ConvReluPool={blockname=crp2,%
|
||||
numFilters={{"128","128"}},height=35,width={3,3},depth=35,ylabel=112,zlabel=112}};
|
||||
%% conv3_1,conv3_2,conv3_3,pool3
|
||||
\pic[shift={(2,0,0)}] at (crp2-east) {ConvReluPool={blockname=crp3,%
|
||||
numFilters={{"256","256","256"}},height=30,width={4,4,4},depth=30,ylabel=56,zlabel=56}};
|
||||
%% conv4_1,conv4_2,conv4_3,pool4
|
||||
\pic[shift={(1.8,0,0)}] at (crp3-east) {ConvReluPool={blockname=crp4,%
|
||||
numFilters={{"512","512","512"}},height=23,width={7,7,7},depth=23,ylabel=28,zlabel=28}};
|
||||
%% conv5_1,conv5_2,conv5_3,pool5
|
||||
\pic[shift={(1.5,0,0)}] at (crp4-east) {ConvReluPool={blockname=crp5,%
|
||||
numFilters={{"512","512","512"}},height=15,width={7,7,7},depth=15,ylabel=14,zlabel=14}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Output
|
||||
%% Softmax
|
||||
%\pic[shift={(1,0,0)}] at (elt2-east) {Deconv={blockname=up8,%
|
||||
% numFilters={{"21","4096"}},height=35,width=1,depth=35,zlabel=I}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw connections
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\draw [connection] (crp1-east) -- node {\midarrow} (crp2-west);
|
||||
\draw [connection] (crp2-east) -- node {\midarrow} (crp3-west);
|
||||
\draw [connection] (crp3-east) -- node {\midarrow} (crp4-west);
|
||||
\draw [connection] (crp4-east) -- node {\midarrow} (crp5-west);
|
||||
\draw [connection] (crp5-east) -- node {\midarrow} ++(1.5,0,0);
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\end{tikzpicture}
|
||||
\end{document}
|
||||
Binary file not shown.
@@ -1,140 +0,0 @@
|
||||
\documentclass[border=15pt, multi, tikz]{standalone}
|
||||
%\usepackage{blocks}
|
||||
\usepackage{import}
|
||||
\subimport{../../layers/}{init}
|
||||
\usetikzlibrary{positioning}
|
||||
|
||||
\tikzstyle{connection1}=[ultra thick,every node/.style={sloped,allow upside down},draw={rgb:blue,0;red,4;green,2;white,0},opacity=0.7]
|
||||
|
||||
\newcommand{\localmidarrow}{\tikz \draw[-Stealth,line width =0.8mm,draw={rgb:blue,0;red,4;green,2;white,0}] (-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]
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw ConvNet Layers
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% conv1_1,conv1_2,pool1
|
||||
\pic[shift={(0,0,0)}] at (0,0,0) {ConvReluPool={blockname=crp1,%
|
||||
numFilters={{"64","64","32"}},height=40,width={2,2},depth=40,zlabel=I}};
|
||||
% conv2_1,conv2_2,pool2
|
||||
\pic[shift={(2.1,0,0)}] at (crp1-east) {ConvReluPool={blockname=crp2,%
|
||||
numFilters={{"128","128"}},height=35,width={3,3},depth=35,zlabel=I/2}};
|
||||
%% conv3_1,conv3_2,conv3_3,pool3
|
||||
\pic[shift={(2,0,0)}] at (crp2-east) {ConvReluPool={blockname=crp3,%
|
||||
numFilters={{"256","256","256"}},height=30,width={4,4,4},depth=30,zlabel=I/4}};
|
||||
%% conv4_1,conv4_2,conv4_3,pool4
|
||||
\pic[shift={(1.5,0,0)}] at (crp3-east) {ConvReluPool={blockname=crp4,%
|
||||
numFilters={{"512","512","512"}},height=23,width={7,7,7},depth=23,zlabel=I/8}};
|
||||
%% conv5_1,conv5_2,conv5_3,pool5
|
||||
\pic[shift={(1.5,0,0)}] at (crp4-east) {ConvReluPool={blockname=crp5,%
|
||||
numFilters={{"512","512","512"}},height=15,width={7,7,7},depth=15,zlabel=I/16}};
|
||||
%% fc6, fc7
|
||||
\pic[shift={(1.2,0,0)}] at (crp5-east) {ConvRelu={blockname=cp6_7,%
|
||||
numFilters={{"4096","4096"}},height=10,width={10,10},depth=10,zlabel=I/32}};
|
||||
%% score32
|
||||
\pic[shift={(1,0,0)}] at (cp6_7-east) {Conv={blockname=score32,%
|
||||
numFilters={{"21","4096"}},height=10,width=1,depth=10,zlabel=I/32}};
|
||||
%% Upsampling Deconv Layer
|
||||
\pic[shift={(2,0,0)}] at (score32-east) {Deconv={blockname=up16,%
|
||||
numFilters={{"21","4096"}},height=40,width=1,depth=40,zlabel=I}};
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Edge Layers
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% upsampling crp2 x2
|
||||
\pic[shift={(-0.75,-8,0)}] at (crp2-anchor) {Deconv={blockname=crp2_upx2,%
|
||||
numFilters={{"bilinear x2","4096"}},height=7.5,width=7.5,depth=7.5,zlabel=}};
|
||||
%% upsampling crp3 x4
|
||||
\pic[shift={(-0.75,-8,0)}] at (crp3-anchor) {Deconv={blockname=crp3_upx4,%
|
||||
numFilters={{"bilinear x4","4096"}},height=7.5,width=7.5,depth=7.5,zlabel=}};
|
||||
|
||||
%% edge
|
||||
\pic[shift={(7,-11,0)}] at (crp4-west) {Conv={blockname=edge,%
|
||||
numFilters={{"1x1 conv","4096"}}, height=30,width=1,depth=30,zlabel=I}};
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Domain Transform Module
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\pic[shift={(5,0,0)},fill={rgb:blue,1;red,2;green,4;white,7}] at (up16-east) {DomainTransform={blockname=diff1,%
|
||||
numFilters={{"21","4096"}},height=40,width=1,depth=40,zlabel=}};
|
||||
|
||||
\pic[shift={(2,0,0)},fill={rgb:blue,1;red,2;green,4;white,7}] at (diff1-east) {DomainTransform={blockname=diff2,%
|
||||
numFilters={{"21","4096"}},height=40,width=1,depth=40,zlabel=}};
|
||||
|
||||
\pic[shift={(2,0,0)},fill={rgb:blue,1;red,2;green,4;white,7}] at (diff2-east) {DomainTransform={blockname=diff3,%
|
||||
numFilters={{"21","4096"}},height=40,width=1,depth=40,zlabel=}};
|
||||
|
||||
\pic[shift={(2,0,0)},fill={rgb:blue,1;red,2;green,4;white,7}] at (diff3-east) {DomainTransform={blockname=diff4,%
|
||||
numFilters={{"21","4096"}},height=40,width=1,depth=40,zlabel=}};
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Arrows on Domain Transform
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\draw [connection1] (diff1-anchor)+(0,3,3) -- node{ } ++(0,3,-3);
|
||||
\draw [connection1] (diff1-anchor)+(0,3,3)-- node{\localmidarrow} ++(0,3,2.9);
|
||||
\draw [connection1] (diff1-anchor)+(0,3,-2.9) -- node{\localmidarrow} ++(0,3,-3);
|
||||
|
||||
\draw [connection1] (diff1-anchor)+(0,2,3) -- node{ } ++(0,2,-3);
|
||||
\draw [connection1] (diff1-anchor)+(0,2,3)-- node{\localmidarrow} ++(0,2,2.9);
|
||||
\draw [connection1] (diff1-anchor)+(0,2,-2.9) -- node{\localmidarrow} ++(0,2,-3);
|
||||
%%%%%%%%%%%%%%%%%%
|
||||
\draw [connection1] (diff2-anchor)+(0,-3,-3) -- node{ } ++(0,-3,3);
|
||||
\draw [connection1] (diff2-anchor)+(0,-3,-3)-- node{\localmidarrow} ++(0,-3,-2.9);
|
||||
\draw [connection1] (diff2-anchor)+(0,-3,2.9) -- node{\localmidarrow} ++(0,-3,3);
|
||||
|
||||
\draw [connection1] (diff2-anchor)+(0,-2,-3) -- node{ } ++(0,-2,3);
|
||||
\draw [connection1] (diff2-anchor)+(0,-2,-3)-- node{\localmidarrow} ++(0,-2,-2.9);
|
||||
\draw [connection1] (diff2-anchor)+(0,-2,2.9) -- node{\localmidarrow} ++(0,-2,3);
|
||||
%%%%%%%%%%%%%%%%%%
|
||||
\draw [connection1] (diff3-anchor)+(0,3,3) -- node{ } ++(0,-3,3);
|
||||
\draw [connection1] (diff3-anchor)+(0,3,3)-- node{\localmidarrow} ++(0,2.9,3);
|
||||
\draw [connection1] (diff3-anchor)+(0,-2.9,3) -- node{\localmidarrow} ++(0,-3,3);
|
||||
|
||||
\draw [connection1] (diff3-anchor)+(0,3,2) -- node{ } ++(0,-3,2);
|
||||
\draw [connection1] (diff3-anchor)+(0,3,2)-- node{\localmidarrow} ++(0,2.9,2);
|
||||
\draw [connection1] (diff3-anchor)+(0,-2.9,2) -- node{\localmidarrow} ++(0,-3,2);
|
||||
%%%%%%%%%%%%%%%%%%
|
||||
\draw [connection1] (diff4-anchor)+(0,-3,-3) -- node{ } ++(0,3,-3);
|
||||
\draw [connection1] (diff4-anchor)+(0,-3,-3)-- node{\localmidarrow} ++(0,-2.9,-3);
|
||||
\draw [connection1] (diff4-anchor)+(0,2.9,-3) -- node{\localmidarrow} ++(0,3,-3);
|
||||
|
||||
\draw [connection1] (diff4-anchor)+(0,-3,-2) -- node{ } ++(0,3,-2);
|
||||
\draw [connection1] (diff4-anchor)+(0,-3,-2)-- node{\localmidarrow} ++(0,-2.9,-2);
|
||||
\draw [connection1] (diff4-anchor)+(0,2.9,-2) -- node{\localmidarrow} ++(0,3,-2);
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw connections
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% ConvNet Connections\draw [connection] (crp1-east) -- node {\midarrow} (crp2-west);
|
||||
\draw [connection] (crp2-east) -- node {\midarrow} (crp3-west);
|
||||
\draw [connection] (crp3-east) -- node {\midarrow} (crp4-west);
|
||||
\draw [connection] (crp4-east) -- node {\midarrow} (crp5-west);
|
||||
\draw [connection] (crp5-east) -- node {\midarrow} (cp6_7-west);
|
||||
\draw [connection] (cp6_7-east) -- node {\midarrow} (score32-west);
|
||||
\draw [connection] (score32-east) -- node {\midarrow} (up16-west);
|
||||
% Diffusion Block internal connections
|
||||
\draw [connection] (up16-east) -- node {\midarrow} (diff1-west);
|
||||
\draw [connection] (diff1-east) -- node {\midarrow} (diff2-west);
|
||||
\draw [connection] (diff2-east) -- node {\midarrow} (diff3-west);
|
||||
\draw [connection] (diff3-east) -- node {\midarrow} (diff4-west);
|
||||
\draw [connection] (diff4-east) -- node {\midarrow} ++(2,0,0);
|
||||
|
||||
% EdgeNet Input Connections
|
||||
\draw [connection](crp1-south)--node {\midarrow}(edge-west-|crp1-south)--node {\midarrow}(edge-west-|crp2-south);
|
||||
\draw [connection](crp2-south)--node {\midarrow}(crp2_upx2-north);
|
||||
\draw [connection](crp2_upx2-south)--node {\midarrow}(edge-west-|crp2-south)--node {\midarrow}(edge-west-|crp3-south);
|
||||
\draw [connection](crp3-south)--node {\midarrow}(crp3_upx4-north);
|
||||
\draw [connection](crp3_upx4-south)--node {\midarrow}(edge-west-|crp3-south)--node {\midarrow}(edge-west);
|
||||
% EdgeNet Output Connections
|
||||
\draw [connection](edge-east)
|
||||
node[anchor=south west,inner sep = 10, yshift=-20, xshift=180,scale=2.3]{Edges}
|
||||
--node {\midarrow}(diff4-south |-edge-east)--node {\midarrow}(diff4-south);
|
||||
\draw [connection](diff3-south |-edge-east)--node {\midarrow}(diff3-south);
|
||||
\draw [connection](diff2-south |-edge-east)--node {\midarrow}(diff2-south);
|
||||
\draw [connection](diff1-south |-edge-east)--node {\midarrow}(diff1-south);
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\end{tikzpicture}
|
||||
\end{document}
|
||||
Binary file not shown.
+84
-37
@@ -1,54 +1,101 @@
|
||||
\documentclass[border=15pt, multi, tikz]{standalone}
|
||||
%\usepackage{blocks}
|
||||
\usepackage{import}
|
||||
\subimport{../../layers/}{init}
|
||||
\usetikzlibrary{positioning}
|
||||
|
||||
%\newcommand{\midarrow}{\tikz \draw[-Stealth,line width =0.8mm,draw=\edgecolor] (-0.3,0) -- ++(0.3,0);}
|
||||
\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\DcnvColor{rgb:blue,5;green,2.5;white,5}
|
||||
\def\SoftmaxColor{rgb:magenta,5;black,7}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{tikzpicture}
|
||||
\tikzstyle{connection}=[ultra thick,every node/.style={sloped,allow upside down},draw=\edgecolor,opacity=0.7]
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Layer Blocks
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% conv1_1,conv1_2,pool1
|
||||
\pic[shift={(0,0,0)}] at (0,0,0) {ConvReluPool={blockname=crp1,%
|
||||
numFilters={{"64","64","32"}},height=40,width={2,2},depth=40,zlabel=I}};
|
||||
% conv2_1,conv2_2,pool2
|
||||
\pic[shift={(2.1,0,0)}] at (crp1-east) {ConvReluPool={blockname=crp2,%
|
||||
numFilters={{"128","128"}},height=35,width={3,3},depth=35,zlabel=I/2}};
|
||||
%% conv3_1,conv3_2,conv3_3,pool3
|
||||
\pic[shift={(2,0,0)}] at (crp2-east) {ConvReluPool={blockname=crp3,%
|
||||
numFilters={{"256","256","256"}},height=30,width={4,4,4},depth=30,zlabel=I/4}};
|
||||
%% conv4_1,conv4_2,conv4_3,pool4
|
||||
\pic[shift={(1.8,0,0)}] at (crp3-east) {ConvReluPool={blockname=crp4,%
|
||||
numFilters={{"512","512","512"}},height=23,width={7,7,7},depth=23,zlabel=I/8}};
|
||||
%% conv5_1,conv5_2,conv5_3,pool5
|
||||
\pic[shift={(1.5,0,0)}] at (crp4-east) {ConvReluPool={blockname=crp5,%
|
||||
numFilters={{"512","512","512"}},height=15,width={7,7,7},depth=15,zlabel=I/16}};
|
||||
%% fc6, fc7
|
||||
\pic[shift={(1.2,0,0)}] at (crp5-east) {ConvRelu={blockname=cp6_7,%
|
||||
numFilters={{"4096","4096"}},height=10,width={10,10},depth=10,zlabel=I/32}};
|
||||
%% score32
|
||||
\pic[shift={(1,0,0)}] at (cp6_7-east) {Conv={blockname=score32,%
|
||||
numFilters={{"21",""}},height=10,width=2,depth=10,zlabel=I/32}};
|
||||
|
||||
%% Output
|
||||
%% Upsampling to original image size
|
||||
\pic[shift={(2,0,0)}] at (score32-east) {Deconv={blockname=up8,%
|
||||
numFilters={{"21",""}},height=35,width=2,depth=35,zlabel=I}};
|
||||
% conv1_1,conv1_2
|
||||
\pic[shift={(0,0,0)}] at (0,0,0) {RightBandedBox={name=cr1,caption=conv1,%
|
||||
xlabel={{"64","64"}},zlabel=I,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=40,width={2,2},depth=40}};
|
||||
%pool1
|
||||
\pic[shift={(0,0,0)}] at (cr1-east) {Box={name=p1,%
|
||||
fill=\PoolColor,opacity=0.5,height=35,width=1,depth=35}};
|
||||
%%%%%%%%%%
|
||||
% conv2_1,conv2_2
|
||||
\pic[shift={(2,0,0)}] at (p1-east) {RightBandedBox={name=cr2,caption=conv2,%
|
||||
xlabel={{"64","64"}},zlabel=I/2,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=35,width={3,3},depth=35}};
|
||||
%pool2
|
||||
\pic[shift={(0,0,0)}] at (cr2-east) {Box={name=p2,%
|
||||
fill=\PoolColor,opacity=0.5,height=30,width=1,depth=30}};
|
||||
%%%%%%%%%%
|
||||
% conv3_1,conv3_2
|
||||
\pic[shift={(2,0,0)}] at (p2-east) {RightBandedBox={name=cr3,caption=conv3,%
|
||||
xlabel={{"256","256","256"}},zlabel=I/4,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=30,width={4,4,4},depth=30}};
|
||||
%pool3
|
||||
\pic[shift={(0,0,0)}] at (cr3-east) {Box={name=p3,%
|
||||
fill=\PoolColor,opacity=0.5,height=23,width=1,depth=23}};
|
||||
%%%%%%%%%%
|
||||
% conv4_1,conv4_2,conv4_3
|
||||
\pic[shift={(1.8,0,0)}] at (p3-east) {RightBandedBox={name=cr4,caption=conv4,%
|
||||
xlabel={{"512","512","512"}},zlabel=I/8,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=23,width={7,7,7},depth=23}};
|
||||
%pool4
|
||||
\pic[shift={(0,0,0)}] at (cr4-east) {Box={name=p4,%
|
||||
fill=\PoolColor,opacity=0.5,height=15,width=1,depth=15}};
|
||||
%%%%%%%%%%
|
||||
% conv5_1,conv5_2,conv5_3
|
||||
\pic[shift={(1.5,0,0)}] at (p4-east) {RightBandedBox={name=cr5,caption=conv5,%
|
||||
xlabel={{"512","512","512"}},zlabel=I/16,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=15,width={7,7,7},depth=15}};
|
||||
%pool5
|
||||
\pic[shift={(0,0,0)}] at (cr5-east) {Box={name=p5,%
|
||||
fill=\PoolColor,opacity=0.5,height=10,width=1,depth=10}};
|
||||
%%%%%%%%%%
|
||||
%% fc6, fc7 -> cr6, cr7
|
||||
\pic[shift={(1,0,0)}] at (p5-east) {RightBandedBox={name=cr6_7,caption=fc to conv,%
|
||||
xlabel={{"4096","4096"}},fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=10,width={10,10},depth=10}};
|
||||
%%%%%%%%%%
|
||||
%% fc8 -> cr8
|
||||
|
||||
\pic[shift={(1,0,0)}] at (cr6_7-east) {Box={name=c8,caption=fc8 to conv,%
|
||||
xlabel={{"K","dummy"}},fill=\ConvColor,%
|
||||
height=10,width=2,depth=10,zlabel=I/32}};
|
||||
%%%%%%%%%%
|
||||
%% Dcnv32
|
||||
\pic[shift={(2.5,0,0)}] at (c8-east) {Box={name=d32,caption=Deconv,%
|
||||
xlabel={{"K","dummy"}},fill=\DcnvColor,%
|
||||
height=40,width=2,depth=40}};
|
||||
%%%%%%%%%%
|
||||
%% softmax
|
||||
\pic[shift={(1,0,0)}] at (d32-east) {Box={name=softmax,caption=softmax,%
|
||||
xlabel={{"K","dummy"}},fill=\SoftmaxColor,%
|
||||
height=40,width=2,depth=40,zlabel=I}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw connections
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\draw [connection] (crp1-east) -- node {\midarrow} (crp2-west);
|
||||
\draw [connection] (crp2-east) -- node {\midarrow} (crp3-west);
|
||||
\draw [connection] (crp3-east) -- node {\midarrow} (crp4-west);
|
||||
\draw [connection] (crp4-east) -- node {\midarrow} (crp5-west);
|
||||
\draw [connection] (crp5-east) -- node {\midarrow} (cp6_7-west);
|
||||
\draw [connection] (cp6_7-east) -- node {\midarrow} (score32-west);
|
||||
\draw [connection] (score32-east) -- node {\midarrow} (up8-west);
|
||||
|
||||
\draw [connection] (p1-east) -- node {\midarrow} (cr2-west);
|
||||
\draw [connection] (p2-east) -- node {\midarrow} (cr3-west);
|
||||
\draw [connection] (p3-east) -- node {\midarrow} (cr4-west);
|
||||
\draw [connection] (p4-east) -- node {\midarrow} (cr5-west);
|
||||
\draw [connection] (p5-east) -- node {\midarrow} (cr6_7-west);
|
||||
\draw [connection] (cr6_7-east) -- node {\midarrow} (c8-west);
|
||||
\draw [connection] (c8-east) -- node {\midarrow} (d32-west);
|
||||
\draw [connection] (d32-east) -- node {\midarrow} (softmax-west);
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Dotted Edges
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\draw[densely dashed]
|
||||
(c8-nearnortheast) -- (d32-nearnorthwest)
|
||||
(c8-nearsoutheast) -- (d32-nearsouthwest)
|
||||
(c8-farsoutheast) -- (d32-farsouthwest)
|
||||
(c8-farnortheast) -- (d32-farnorthwest)
|
||||
;
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\end{tikzpicture}
|
||||
\end{document}\grid
|
||||
|
||||
Binary file not shown.
+93
-55
@@ -1,86 +1,124 @@
|
||||
\documentclass[border=15pt, multi, tikz]{standalone}
|
||||
%\usepackage{blocks}
|
||||
\usepackage{import}
|
||||
\subimport{../../layers/}{init}
|
||||
\usetikzlibrary{positioning}
|
||||
|
||||
\newcommand{\midarrow}{\tikz \draw[-Stealth,line width =0.8mm,draw=\edgecolor] (-0.3,0) -- ++(0.3,0);}
|
||||
\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\DcnvColor{rgb:blue,5;green,2.5;white,5}
|
||||
\def\SoftmaxColor{rgb:magenta,5;black,7}
|
||||
\def\SumColor{rgb:blue,5;green,15}
|
||||
|
||||
\begin{document}
|
||||
\begin{tikzpicture}
|
||||
\tikzstyle{connection}=[ultra thick,every node/.style={sloped,allow upside down},draw=\edgecolor,opacity=0.7]
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw Layer Blocks
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% conv1_1,conv1_2,pool1
|
||||
\pic[shift={(0,0,0)}] at (0,0,0) {ConvReluPool={blockname=crp1,%
|
||||
numFilters={{"64","64","32"}},height=40,width={2,2},depth=40,zlabel=I}};
|
||||
% conv1_1,conv1_2,%pool1
|
||||
\pic[shift={(0,0,0)}] at (0,0,0) {RightBandedBox={name=cr1,caption=conv1,%
|
||||
xlabel={{"64","64"}},zlabel=I,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=40,width={2,2},depth=40}};
|
||||
\pic[shift={(0,0,0)}] at (cr1-east) {Box={name=p1,%
|
||||
fill=\PoolColor,opacity=0.5,height=35,width=1,depth=35}};
|
||||
% conv2_1,conv2_2,pool2
|
||||
\pic[shift={(2.1,0,0)}] at (crp1-east) {ConvReluPool={blockname=crp2,%
|
||||
numFilters={{"128","128"}},height=35,width={3,3},depth=35,zlabel=I/2}};
|
||||
%% conv3_1,conv3_2,conv3_3,pool3
|
||||
\pic[shift={(2,0,0)}] at (crp2-east) {ConvReluPool={blockname=crp3,%
|
||||
numFilters={{"256","256","256"}},height=30,width={4,4,4},depth=30,zlabel=I/4}};
|
||||
%% conv4_1,conv4_2,conv4_3,pool4
|
||||
\pic[shift={(1.8,0,0)}] at (crp3-east) {ConvReluPool={blockname=crp4,%
|
||||
numFilters={{"512","512","512"}},height=23,width={7,7,7},depth=23,zlabel=I/8}};
|
||||
%% conv5_1,conv5_2,conv5_3,pool5
|
||||
\pic[shift={(1.5,0,0)}] at (crp4-east) {ConvReluPool={blockname=crp5,%
|
||||
numFilters={{"512","512","512"}},height=15,width={7,7,7},depth=15,zlabel=I/16}};
|
||||
%% fc6, fc7
|
||||
\pic[shift={(1.2,0,0)}] at (crp5-east) {ConvRelu={blockname=cp6_7,%
|
||||
numFilters={{"4096","4096"}},height=10,width={10,10},depth=10,zlabel=I/32}};
|
||||
%% score32
|
||||
\pic[shift={(1,0,0)}] at (cp6_7-east) {Conv={blockname=score32,%
|
||||
numFilters={{"1","4096"}},height=10,width=1,depth=10,zlabel=I/32}};
|
||||
\pic[shift={(2,0,0)}] at (p1-east) {RightBandedBox={name=cr2,caption=conv2,%
|
||||
xlabel={{"64","64"}},zlabel=I/2,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=35,width={3,3},depth=35}};
|
||||
\pic[shift={(0,0,0)}] at (cr2-east) {Box={name=p2,%
|
||||
fill=\PoolColor,opacity=0.5,height=30,width=1,depth=30}};
|
||||
% conv3_1,conv3_2,pool3
|
||||
\pic[shift={(2,0,0)}] at (p2-east) {RightBandedBox={name=cr3,caption=conv3,%
|
||||
xlabel={{"256","256","256"}},zlabel=I/4,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=30,width={4,4,4},depth=30}};
|
||||
\pic[shift={(0,0,0)}] at (cr3-east) {Box={name=p3,%
|
||||
fill=\PoolColor,opacity=0.5,height=23,width=1,depth=23}};
|
||||
% conv4_1,conv4_2,conv4_3,pool4
|
||||
\pic[shift={(1.8,0,0)}] at (p3-east) {RightBandedBox={name=cr4,caption=conv4,%
|
||||
xlabel={{"512","512","512"}},zlabel=I/8,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=23,width={7,7,7},depth=23}};
|
||||
\pic[shift={(0,0,0)}] at (cr4-east) {Box={name=p4,%
|
||||
fill=\PoolColor,opacity=0.5,height=15,width=1,depth=15}};
|
||||
% conv5_1,conv5_2,conv5_3,pool5
|
||||
\pic[shift={(1.5,0,0)}] at (p4-east) {RightBandedBox={name=cr5,caption=conv5,%
|
||||
xlabel={{"512","512","512"}},zlabel=I/16,fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=15,width={7,7,7},depth=15}};
|
||||
\pic[shift={(0,0,0)}] at (cr5-east) {Box={name=p5,%
|
||||
fill=\PoolColor,opacity=0.5,height=10,width=1,depth=10}};
|
||||
%% fc6, fc7 -> cr6, cr7
|
||||
\pic[shift={(1,0,0)}] at (p5-east) {RightBandedBox={name=cr6_7,caption=fc to conv,%
|
||||
xlabel={{"4096","4096"}},fill=\ConvColor,bandfill=\ConvReluColor,%
|
||||
height=10,width={10,10},depth=10}};
|
||||
%% fc8 -> cr8 (score32)
|
||||
\pic[shift={(1,0,0)}] at (cr6_7-east) {Box={name=score32,caption=fc8 to conv,%
|
||||
xlabel={{"K","dummy"}},fill=\ConvColor,%
|
||||
height=10,width=2,depth=10,zlabel=I/32}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%Joining with previous streams (fcn-16)
|
||||
%%Joining with previous streams (fcn-16s)
|
||||
%% Upsampling Deconv Layer
|
||||
\pic[shift={(1,0,0)}] at (score32-east) {Deconv={blockname=up32,%
|
||||
numFilters={{"1","4096"}},height=15,width=1,depth=15,zlabel=I/16}};
|
||||
%% Dcnv32
|
||||
\pic[shift={(1.5,0,0)}] at (score32-east) {Box={name=d32,%
|
||||
xlabel={{"K","dummy"}},fill=\DcnvColor,%
|
||||
height=15,width=2,depth=15,zlabel=I/16}};
|
||||
%% score16
|
||||
\pic[shift={(0,-4,0)}] at (up32-west) {Conv={blockname=score16,%
|
||||
numFilters={{"1","4096"}},height=15,width=1,depth=15,zlabel=I/16}};
|
||||
\pic[shift={(0,-4,0)}] at (d32-west) {Box={name=score16,%
|
||||
xlabel={{"K","dummy"}},fill=\ConvColor,%
|
||||
height=15,width=2,depth=15,zlabel=I/16}};
|
||||
%% Elementwise sum between score16 and up32
|
||||
\pic[shift={(1.5,0,0)}] at (up32-east) {Sum={blockname=elt1,%
|
||||
numFilters={{"1","4096"}},height=15,width=1,depth=15,zlabel=I/16}};
|
||||
\pic[shift={(1.5,0,0)}] at (d32-east) {Ball={name=elt1,%
|
||||
fill=\SumColor,opacity=0.6,%
|
||||
radius=2.5,logo=$+$}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%Joining with previous streams (fcn-8)
|
||||
%%Joining with previous streams (fcn-8s)
|
||||
%% Upsampling Deconv Layer
|
||||
\pic[shift={(1,0,0)}] at (elt1-east) {Deconv={blockname=up16,%
|
||||
numFilters={{"1","4096"}},height=20,width=1,depth=20,zlabel=I/8}};
|
||||
%% Dcnv16
|
||||
\pic[shift={(1.5,0,0)}] at (elt1-east) {Box={name=d16,%
|
||||
xlabel={{"K","dummy"}},fill=\DcnvColor,%
|
||||
height=23,width=2,depth=23,zlabel=I/8}};
|
||||
%% score8
|
||||
\pic[shift={(0,-7,0)}] at (up16-west) {Conv={blockname=score8,%
|
||||
numFilters={{"1","4096"}},height=20,width=1,depth=20,zlabel=I/8}};
|
||||
%% Elementwise sum between score8 and up16
|
||||
\pic[shift={(1.5,0,0)}] at (up16-east) {Sum={blockname=elt2,%
|
||||
numFilters={{"1","4096"}},height=20,width=1,depth=20,zlabel=I/8}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Output
|
||||
%% Upsampling to original image size
|
||||
\pic[shift={(1,0,0)}] at (elt2-east) {Deconv={blockname=up8,%
|
||||
numFilters={{"1","4096"}},height=35,width=1,depth=35,zlabel=I}};
|
||||
\pic[shift={(0,-6,0)}] at (d16-west) {Box={name=score8,%
|
||||
xlabel={{"K","dummy"}},fill=\ConvColor,%
|
||||
height=23,width=2,depth=23,zlabel=I/8}};
|
||||
%% Elementwise sum between score16 and up32
|
||||
\pic[shift={(1.5,0,0)}] at (d16-east) {Ball={name=elt2,%
|
||||
fill=\SumColor,opacity=0.6,%
|
||||
radius=2.5,logo=$+$}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%% Output
|
||||
%%%%%%%%%%
|
||||
%% Dcnv8
|
||||
\pic[shift={(2.5,0,0)}] at (elt2-east) {Box={name=d8,%
|
||||
xlabel={{"K","dummy"}},fill=\DcnvColor,%
|
||||
height=40,width=2,depth=40}};
|
||||
%%%%%%%%%%
|
||||
%% softmax
|
||||
\pic[shift={(1,0,0)}] at (d8-east) {Box={name=softmax,caption=softmax,%
|
||||
xlabel={{"K","dummy"}},fill=\SoftmaxColor,%
|
||||
height=40,width=2,depth=40,zlabel=I}};
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Draw connections
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\draw [connection] (crp1-east) -- node {\midarrow} (crp2-west);
|
||||
\draw [connection] (crp2-east) -- node {\midarrow} (crp3-west);
|
||||
\draw [connection] (crp3-east) -- node {\midarrow} (crp4-west);
|
||||
\draw [connection] (crp4-east) -- node {\midarrow} (crp5-west);
|
||||
\draw [connection] (crp5-east) -- node {\midarrow} (cp6_7-west);
|
||||
\draw [connection] (cp6_7-east) -- node {\midarrow} (score32-west);
|
||||
\draw [connection] (score32-east) -- node {\midarrow} (up32-west);
|
||||
\draw [connection] (p1-east) -- node {\midarrow} (cr2-west);
|
||||
\draw [connection] (p2-east) -- node {\midarrow} (cr3-west);
|
||||
\draw [connection] (p3-east) -- node {\midarrow} (cr4-west);
|
||||
\draw [connection] (p4-east) -- node {\midarrow} (cr5-west);
|
||||
\draw [connection] (p5-east) -- node {\midarrow} (cr6_7-west);
|
||||
\draw [connection] (cr6_7-east) -- node {\midarrow} (score32-west);
|
||||
\draw [connection] (score32-east) -- node {\midarrow} (d32-west);
|
||||
|
||||
\path (crp4-east) -- (crp5-west) coordinate[pos=0.25] (between4_5) ;
|
||||
\path (p4-east) -- (cr5-west) coordinate[pos=0.25] (between4_5) ;
|
||||
\draw [connection] (between4_5) -- node {\midarrow} (score16-west-|between4_5) -- node {\midarrow} (score16-west);
|
||||
\draw [connection] (up32-east) -- node {\midarrow} (elt1-west);
|
||||
\draw [connection] (d32-east) -- node {\midarrow} (elt1-west);
|
||||
\draw [connection] (score16-east) -- node {\midarrow} (score16-east -| elt1-south) -- node {\midarrow} (elt1-south);
|
||||
\draw [connection] (elt1-east) -- node {\midarrow} (up16-west);
|
||||
\draw [connection] (elt1-east) -- node {\midarrow} (d16-west);
|
||||
|
||||
\path (crp3-east) -- (crp4-west) coordinate[pos=0.25] (between3_4) ;
|
||||
\path (p3-east) -- (cr4-west) coordinate[pos=0.25] (between3_4) ;
|
||||
\draw [connection] (between3_4) -- node {\midarrow} (score8-west-|between3_4) -- node {\midarrow} (score8-west);
|
||||
\draw [connection] (up16-east) -- node {\midarrow} (elt2-west);
|
||||
\draw [connection] (d16-east) -- node {\midarrow} (elt2-west);
|
||||
\draw [connection] (score8-east) -- node {\midarrow} (score8-east -| elt2-south)-- node {\midarrow} (elt2-south);
|
||||
\draw [connection] (elt2-east) -- node {\midarrow} (up8-west);
|
||||
\draw [connection] (elt2-east) -- node {\midarrow} (d8-west);
|
||||
\draw [connection] (d8-east) -- node{\midarrow} (softmax-west);
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\end{tikzpicture}
|
||||
|
||||
Reference in New Issue
Block a user