diff --git a/latex_examples/nn.tex b/latex_examples/nn.tex new file mode 100644 index 0000000..d259ac4 --- /dev/null +++ b/latex_examples/nn.tex @@ -0,0 +1,62 @@ +\documentclass{article} + +\usepackage{tikz} +\usepackage{verbatim} + +\begin{comment} +:Title: Neural network +:Tags: Foreach + +The ``\foreach`` command is very useful for quickly creating structured graphics +like this neural network diagram. + +\end{comment} + +\begin{document} +\pagestyle{empty} + +\def\layersep{2.5cm} + +\begin{figure} +\begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep] + \tikzstyle{every pin edge}=[<-,shorten <=1pt] + \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=17pt,inner sep=0pt] + \tikzstyle{component}=[fmmde, fill=green!50]; + \tikzstyle{failure}=[fmmde, fill=red!50]; + \tikzstyle{symptom}=[fmmde, fill=blue!50]; + \tikzstyle{annot} = [text width=4em, text centered] + + % Draw the input layer nodes + \foreach \name / \y in {1,...,4} + % This is the same as writing \foreach \name / \y in {1/1,2/2,3/3,4/4} + \node[component, pin=left:Input \#\y] (I-\name) at (0,-\y) {}; + + % Draw the hidden layer nodes + \foreach \name / \y in {1,...,5} + \path[yshift=0.5cm] + node[failure] (H-\name) at (\layersep,-\y cm) {}; + + % Draw the output layer node + \node[symptom,pin={[pin edge={->}]right:Output}, right of=H-3] (O) {}; + + % Connect every node in the input layer with every node in the + % hidden layer. + \foreach \source in {1,...,4} + \foreach \dest in {1,...,5} + \path (I-\source) edge (H-\dest); + + % Connect every node in the hidden layer with the output layer + \foreach \source in {1,...,5} + \path (H-\source) edge (O); + + % Annotate the layers + \node[annot,above of=H-1, node distance=1cm] (hl) {Hidden layer}; + \node[annot,left of=hl] {Input layer}; + \node[annot,right of=hl] {Output layer}; +\end{tikzpicture} +% End of code +\caption{bollocks} +\end{figure} + +\end{document} +