Edit and compile if you like:
\documentclass[tikz]{standalone}\usetikzlibrary{calc}\def\layersep{3cm}\newcommand\nn[1]{% Input layer\foreach \y in {1,...,2}\node[neuron, fill=green!40] (i\y-#1) at (0,\y+1) {$i\y$};% Hidden layer\foreach \y in {1,...,4}\path node[neuron, fill=blue!40] (h\y-#1) at (\layersep,\y) {$h\y$};% Output node\node[neuron, fill=red!40] (o-#1) at (2*\layersep,2.5) {$o$};% Connect every node in the input layer with every node in the hidden layer.\foreach \source in {1,...,2}\foreach \dest in {1,...,4}\path (i\source-#1) edge (h\dest-#1);% Connect every node in the hidden layer with the output layer\foreach \source in {1,...,4}\path (h\source-#1) edge (o-#1);}\begin{document}\begin{tikzpicture}[scale=1.2,shorten >=1pt,->,draw=black!70, node distance=\layersep,neuron/.style={circle,fill=black!25,minimum size=20,inner sep=0},edge/.style 2 args={pos={(mod(#1+#2,2)+1)*0.33}, font=\tiny},distro/.style 2 args={edge={#1}{#2}, node contents={}, minimum size=0.6cm, path picture={\draw[double=orange,white,thick,double distance=1pt,shorten >=0pt] plot[variable=\t,domain=-1:1,samples=51] ({\t},{0.2*exp(-100*(\t-0.05*(#1-1))^2 - 3*\t*#2))});}},weight/.style 2 args={edge={#1}{#2}, node contents={\pgfmathparse{0.35*#1-#2*0.15}\pgfmathprintnumber[fixed]{\pgfmathresult}}, fill=white, inner sep=2pt}]\nn{regular}
Click to download: regular-vs-bayes-nn.tex
Open in Overleaf: regular-vs-bayes-nn.tex
This file is available on tikz.netlify.app and on GitHub and is MIT licensed.
See more on the author page of Janosh Riebesell..