封装神经网络独立标记神经元

封装神经网络独立标记神经元

我有一个无法解决的问题。我对 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}

在此处输入图片描述

相关内容