I was able to modify the Latex Neural Network in the answer given by Aymon here Neural Network Tex However I can seem to do a few things
get the outputs to be equivalent to the output nodes, for example the output node for
$/sigma_{16}$is no where near$\text{Val 16}$.Get the nodes to be the same size, it seems that they automatically grow when the text grows.. I would like to stop this. Seems that all answers I have found center around minimum size or minimum width such as here but my circles will not stay all the same small size despite multiple tries.
\RequirePackage[dvipsnames]{xcolor}
\documentclass[tikz]{standalone}
\usetikzlibrary{calc,arrows}
\begin{document}
\begin{tikzpicture}
%%Create a style for the arrows we are using
\tikzset{normal arrow/.style={draw,-triangle 45}}
%%Create the different coordinates to place layer 1 nodes
\path (0,0) coordinate (l1n1) ++(0,-1.25) coordinate (l1n2) ++(0,-1.25) coordinate (l1n3) ++(0,-1.25) coordinate (l1n4) ++(0,-1.25) coordinate (l1n5) ++(0,-1.25) coordinate (l1n6) ++(0,-1.25) coordinate (l1n7) ++(0,-1.25) coordinate (l1n8) ++(0,-1.25) coordinate (l1n9) ++(0,-1.25) coordinate (l1n10) ++(0,-1.25) coordinate (l1n11) ++(0,-1.25) coordinate (l1n12) ++(0,-1.25) coordinate (l1n13) ++(0,-1.25) coordinate (l1n14) ++(0,-1.25) coordinate (l1n15) ++(0,-1.25) coordinate (l1n16) ++(0,-1.25) coordinate (l1n17) ++(0,-1.25) coordinate (l1n18) ++(0,-1.25) coordinate (l1n19) ++(0,-1.25) coordinate (l1n20) ++(0,-1.25) coordinate (l1n21) ++(0,-1.25) coordinate (l1n22) ++(0,-1.25) coordinate (l1n23) ++(0,-1.25) coordinate (l1n24) ++(0,-1.25) coordinate (l1n25) ++(0,-1.25) coordinate (l1n26) ++(0,-1.25) coordinate (l1n27) ++(0,-1.25) coordinate (l1n28) ++(0,-1.25) coordinate (l1n29) ++(0,-1.25) coordinate (l1n30);
%%Create the different coordinates to place INPUT layer (xs)
\foreach \i in {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}{ \path (l1n\i) ++(-9,-10) coordinate (x\i); }
%%Create the different coordinates to place Outputs
\foreach \i in {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}{ \path (l1n\i) ++(8,-5.65) coordinate (o\i); }
%%generate the second level top node points
%% cm!X, X is the distance between layers.
\path ($(l1n1)!.5!(l1n2)!8 cm!50:(l1n2)$) coordinate (l2n1);
%%Create the different coordinates to place second layer nodes
\path (l2n1) ++(0,-1.6) coordinate (l2n2) ++(0,-1.6) coordinate (l2n3) ++(0,-1.6) coordinate (l2n4) ++(0,-1.6) coordinate (l2n5) ++(0,-1.6) coordinate (l2n6) ++(0,-1.6) coordinate (l2n7) ++(0,-1.6) coordinate (l2n8) ++(0,-1.6) coordinate (l2n9) ++(0,-1.6) coordinate (l2n10) ++(0,-1.6) coordinate (l2n11) ++(0,-1.6) coordinate (l2n12) ++(0,-1.6) coordinate (l2n13) ++(0,-1.6) coordinate (l2n14) ++(0,-1.6) coordinate (l2n15) ++(0,-1.6) coordinate (l2n16) ++(0,-1.6) coordinate (l2n17) ++(0,-1.6) coordinate (l2n18) ++(0,-1.6) coordinate (l2n19) ++(0,-1.6) coordinate (l2n20) ++(0,-1.6) coordinate (l2n21) ++(0,-1.6) coordinate (l2n22) ++(0,-1.6) coordinate (l2n23) ++(0,-1.6) coordinate (l2n24) ++(0,-1.6) coordinate (l2n25) ++(0,-1.6) coordinate (l2n26) ++(0,-1.6) coordinate (l2n27) ++(0,-1.6) coordinate (l2n28) ++(0,-1.6) coordinate (l2n29) ++(0,-1.6) coordinate (l2n30) ++(0,-1.6);
%%generate the position of last second level node point
\path ($(l1n29)!.5!(l1n30)!3 cm!90:(l1n30)$) coordinate (l2nx);
%%Place nodes
%% 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29
\foreach \i in {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}{
\node[draw,circle,minimum size=1,inner sep=1] (cl2n\i) at (l2n\i) {\phantom{a}$\sigma_{\directlua{tex.sprint(\i)}}\phantom{a}$};
}
\foreach \i in {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}{
\node[draw,circle,minimum size=1,inner sep=1] (cl1n\i) at (l1n\i) {\phantom{a}$\sigma_{\directlua{tex.sprint(\i)}}\phantom{a}$};
}
%%Label output nodes
\node (lo1) at (o1) {Val 1};
\node (lo2) at (o2) {Val 2};
\node (lo2) at (o3) {Val 3};
\node (lo3) at (o4) {Val 4};
\node (lo4) at (o5) {Val 5};
\node (lo5) at (o6) {Val 6};
\node (lo6) at (o7) {Val 7};
\node (lo1) at (o8) {Val 8};
\node (lo2) at (o9) {Val 9};
\node (lo2) at (o10) {Val 10};
\node (lo3) at (o11) {Val 11};
\node (lo4) at (o12) {Val 12};
\node (lo5) at (o13) {Val 13};
\node (lo6) at (o14) {Val 14};
\node (lo5) at (o15) {Val 15};
\node (lo6) at (o16) {Val 16};
%%Label input nodes
\node (nx1) at (x1) {$I_1$};
\node (nx2) at (x2) {$I_2$};
\node (nx3) at (x3) {$I_3$};
\node (nx4) at (x4) {$.$};
\node (nx5) at (x5) {$.$};
\node (nx6) at (x6) {$.$};
\node (nx7) at (x7) {$Q_1$};
\node (nx8) at (x8) {$Q_2$};
\node (nx9) at (x9) {$Q_3$};
\node (nx10) at (x10) {$I_1$};
\node (nx11) at (x11) {$I_2$};
\node (nx12) at (x12) {$I_3$};
\node (nx13) at (x13) {$.$};
\node (nx14) at (x14) {$.$};
\node (nx15) at (x15) {$.$};
\node (nx16) at (x16) {$.$};
%%Drawing arrows
%%Transparent arrows between input and Layer1
\foreach \i in {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}{
\foreach \j in {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}{
\path[normal arrow, Cyan, draw opacity=0.2] (nx\i) -- (cl1n\j);
}
}
%%Explicit arrows between Al and Layer1
\foreach \i/\val in {1/4.8,2/-0.14,3/-6.75,4/4.07,5/-2.88,6/14.18,7/-12.79,8/-2.41,9/,10/0.3,
11/,12/,13/,14/,15/,16/,17/,18/,19/,20/,21/,22/,23/,24/,25/,26/,27/,28/,29/,30/
}{
% \newcommand\dosomecoolmath{\directlua{ x = 7.862679-(\i)*(-0.000529583) + ((-\i)^(2))*(-0.14934524) tex.sprint(x)}}
\path[normal arrow, draw opacity=0.5] (nx8) -- node[above] {$\mathbf{w} = \val$} (cl1n\i);
}
%%Explicit arrows between Layer1 and Layer2
\foreach \i/\val in {1/-0.199, 2/2.1155,3/-2.921,4/-7.29,5/-3.38,6/6.724,7/-2.56,8/4.470,9/,10/,11/,12,13/,14/,
15/,16/,17/,18/,19/,20/,21/,22/,23/,24/,25/,26/,27/,28/,29/,30/}{
% \newcommand\dosomecoolmath{
% \directlua{x = 8.862679-(\i)*(-0.000529583) + ((-\i)^(2))*(-0.22934524)
% tex.sprint(x)}}
\path[normal arrow, draw opacity=0.7] (cl1n\i) -- node {} (cl2n4);
\foreach \j in {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}{
\path[normal arrow, Cyan, draw opacity=0.2] (cl1n\i) -- (cl2n\j);
}
}
%Draw final threshold
\path (o5) ++(0,-.5) coordinate (thres); \node (threshold) at (thres) {\fbox{$3.61$}};
\end{tikzpicture}
\end{document}