From ad1a3ead0c774afcf2ba69b6a5fdb27f2889201f Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sat, 7 Jan 2017 13:20:04 +0100 Subject: [PATCH] Add aggregation block --- tikz/aggregation-blocks/Makefile | 31 ++++++++++++ tikz/aggregation-blocks/README.md | 3 ++ .../aggregation-blocks/aggregation-blocks.png | Bin 0 -> 30577 bytes .../aggregation-blocks/aggregation-blocks.tex | 45 ++++++++++++++++++ 4 files changed, 79 insertions(+) create mode 100644 tikz/aggregation-blocks/Makefile create mode 100644 tikz/aggregation-blocks/README.md create mode 100644 tikz/aggregation-blocks/aggregation-blocks.png create mode 100644 tikz/aggregation-blocks/aggregation-blocks.tex diff --git a/tikz/aggregation-blocks/Makefile b/tikz/aggregation-blocks/Makefile new file mode 100644 index 0000000..23ca50e --- /dev/null +++ b/tikz/aggregation-blocks/Makefile @@ -0,0 +1,31 @@ +SOURCE = aggregation-blocks +DELAY = 80 +DENSITY = 300 +WIDTH = 512 + +make: + pdflatex $(SOURCE).tex -output-format=pdf + make clean + +clean: + rm -rf $(TARGET) *.class *.html *.log *.aux *.data *.gnuplot + +gif: + pdfcrop $(SOURCE).pdf + convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif + make clean + +png: + make + make svg + inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png + +transparentGif: + convert $(SOURCE).pdf -transparent white result.gif + make clean + +svg: + #inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg + pdf2svg $(SOURCE).pdf $(SOURCE).svg + # Necessary, as pdf2svg does not always create valid svgs: + inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg diff --git a/tikz/aggregation-blocks/README.md b/tikz/aggregation-blocks/README.md new file mode 100644 index 0000000..e56e3cf --- /dev/null +++ b/tikz/aggregation-blocks/README.md @@ -0,0 +1,3 @@ +Compiled example +---------------- +![Example](aggregation-blocks.png) diff --git a/tikz/aggregation-blocks/aggregation-blocks.png b/tikz/aggregation-blocks/aggregation-blocks.png new file mode 100644 index 0000000000000000000000000000000000000000..f3e461a5932dc46130b7f0879f1d903f862a8c8e GIT binary patch literal 30577 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 Tc&47$<4QB9JKLYN^_Kq+nt8|+ literal 0 HcmV?d00001 diff --git a/tikz/aggregation-blocks/aggregation-blocks.tex b/tikz/aggregation-blocks/aggregation-blocks.tex new file mode 100644 index 0000000..2c0c8fa --- /dev/null +++ b/tikz/aggregation-blocks/aggregation-blocks.tex @@ -0,0 +1,45 @@ +\documentclass{standalone} +\usepackage{amssymb} +\usepackage{tikz} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.geometric,arrows,positioning} + +\begin{document} +\newcommand{\filtersize}{3} + +\begin{tikzpicture} + \tikzstyle{conv-layer}=[draw,minimum width=3cm,minimum height=1cm] + \tikzstyle{arrow}=[->, -Latex, thick] + + \draw[fill=black!10,dashed] (-4.2, -5.4) rectangle (7.5, 1.2); + + + \node (input) at (1.5, 1) {}; + \path[arrow] (1.5, 2) edge node[right, midway] {$256$-d in} (input.south); + \node[draw, dashed] (concatenate) at (1.5, -5) {concatenate}; + \node (between) at (3.4, -2.0) [align=center,text width=1.5cm] {total $32$ paths\\ \dots}; + \path[arrow] (concatenate.south) edge node[right, midway] {$128$-d out} (1.5, -6); + + % first path + \node (rect11) at (-2.5,-1.5) [conv-layer] {4 @ $1 \times 1 \times 256$}; + \node (rect12) at (-2.5,-3.0) [conv-layer] {4 @ $1 \times 1 \times 4$}; + \draw[arrow] (input.south) -- (rect11.north); + \draw[arrow] (rect11.south) -- (rect12.north); + \draw[arrow] (rect12.south) -- (concatenate); + + % second path + \node (rect21) at ( 1,-1.5) [conv-layer] {4 @ $1 \times 1 \times 256$}; + \node (rect22) at ( 1,-3.0) [conv-layer] {4 @ $1 \times 1 \times 4$}; + \draw[arrow] (input.south) -- (rect21.north); + \draw[arrow] (rect21.south) -- (rect22.north); + \draw[arrow] (rect22.south) -- (concatenate); + + % last path + \node (rect31) at ( 5.8,-1.5) [conv-layer] {4 @ $1 \times 1 \times 256$}; + \node (rect32) at ( 5.8,-3.0) [conv-layer] {4 @ $1 \times 1 \times 4$}; + \draw[arrow] (input.south) -- (rect31.north); + \draw[arrow] (rect31.south) -- (rect32.north); + \draw[arrow] (rect32.south) -- (concatenate); + +\end{tikzpicture} +\end{document}