我有一个无法解决的问题。我对 LaTeX 的世界还很陌生,对宏也不太了解。这是我的问题:我使用 Neuralnetwork 包绘制了一个神经网络。
我有一个输入层、两个隐藏层和一个输出层。除了输出层,我在各层中都有偏置神经元。我想标记偏置神经元,如 b_0(在输入层)、b_1 和 b_2(在第一/第二隐藏层)。我还想标记隐藏层的神经元,从 h_1 到 h4(第一隐藏层)和 h4 到 h7(第二隐藏层)。我不知道该怎么做。这是我当前的代码:
\begin{neuralnetwork}[height=5]
\newcommand{\nodetextx}[2]{$x_#2$}
\newcommand{\nodetextz}[2]{$z_#2$}
\inputlayer[count=2, title={Input}, text=\nodetextx]
\hiddenlayer[count=4, title={Hidden 1}]
\linklayers
\hiddenlayer[count=3, title={Hidden 2}]
\linklayers
\outputlayer[count=2, title={Output}, text=\nodetextz]
\linklayers
\end{neuralnetwork}
我希望它像这样:
我很感激任何帮助。:)非常感谢亲切的问候
答案1
这是一个糟糕的解决方案:
\documentclass{standalone}
\usepackage{neuralnetwork}
\usepackage{ifthen}
\begin{document}
\begin{neuralnetwork}[height=5]
\newcommand{\nodetextx}[2]{\ifthenelse{\equal{#2}{0}}{$b_0$}{$x_{#2}$}}
\newcommand{\nodetextz}[2]{$z_{#2}$}
\newcommand{\nodetexth}[2]{\ifthenelse{\equal{#2}{0}}{$b_1$}{$h_{#2}$}}
\newcommand{\nodetexthi}[2]{%
\pgfmathsetmacro\num{int(#2+4)}%
\ifthenelse{\equal{#2}{0}}{$b_2$}{$h_{\num}$}}
\inputlayer[count=2, title={Input}, text=\nodetextx]
\hiddenlayer[count=4, title={Hidden 1}, text=\nodetexth]
\linklayers
\hiddenlayer[count=3, title={Hidden 2}, text=\nodetexthi]
\linklayers
\outputlayer[count=2, title={Output}, text=\nodetextz]
\linklayers
\end{neuralnetwork}
\end{document}