HarisIqbal88 / PlotNeuralNet

Latex code for making neural networks diagrams
MIT License
21.93k stars 2.86k forks source link

Visualization of Yolov3 structure #90

Closed johnny-mueller closed 4 years ago

johnny-mueller commented 4 years ago

I just came across this framework and am excited about the possibilities it offers.

i am personally reaching the limits to draw the Yolov3 structure (similar to the one shown in the figure below).

I want that the arrow is curved and go above the convoutional blox to the concatenation symbol. But the only thing I get is sth. like that: grafik

The current Code:

\documentclass[border=15pt, 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\DcnvColor{rgb:blue,5;green,2.5;white,5}
\def\SoftmaxColor{rgb:magenta,5;black,7}
\def\SumColor{rgb:blue,5;green,15}
\def\furtherLayer{black}

\begin{document}
\begin{tikzpicture}
\tikzstyle{connection}=[ultra thick,every node/.style={sloped,allow upside down},draw=\edgecolor,opacity=0.7]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Draw Layer Blocks
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\node[canvas is zy plane at x=0] (temp) at (-3,0,0) {\includegraphics[width=8cm,height=8cm]{cats.jpg}};

\pic[shift={(0,0,0)}] at (0,0,0) {Box={name=conv0, xlabel={{"64","64"}}, zlabel=I, fill=\ConvColor, height=40, width=3, depth=40}};

\pic[shift={(1.5,0,0)}] at (conv0-east) {Ball={name=fl1, fill=\furtherLayer,opacity=0.6, radius=1,logo=$ $}};
\pic[shift={(0.3,0,0)}] at (fl1-east) {Ball={name=fl2, fill=\furtherLayer,opacity=0.6, radius=1,logo=$ $}};
\pic[shift={(0.3,0,0)}] at (fl2-east) {Ball={name=fl3, fill=\furtherLayer,opacity=0.6, radius=1,logo=$ $}};

\pic[shift={(1.5,0,0)}] at (fl3-east) {Box={name=conv1, xlabel={{"64","64"}}, zlabel=I, fill=\ConvColor, height=40, width=3, depth=40}};
\pic[shift={(0.5,0)}] at (conv1-east) {Box={name=conv2, xlabel={{"64","64"}}, zlabel=I, fill=\ConvColor, height=40, width=3, depth=40}}; 
\pic[shift={(0.5,0,0)}] at (conv2-east) {Box={name=conv3, xlabel={{"64","64"}}, zlabel=I, fill=\ConvColor, height=40, width=3, depth=40}};

\pic[shift={(2.3,0,0)}] at (conv3-east) {Ball={name=sum1, fill=\SumColor,opacity=0.6, radius=2.5,logo=$+$}};

\draw [connection] to (conv1-north) -- node {\midarrow} (sum1-north);

\end{tikzpicture}
\end{document}\grid

Optimal solution should look like that: grafik

FlowRays commented 3 years ago

Have you solved the problem now? I am drawing the DenseNet structure and facing the same problem.