Ich versuche, eine einfache neuronale Netzwerkstruktur zu erstellen und habe Folgendes:
\def\layersep{2.5cm}
\begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
\tikzstyle{every pin edge}=[<-,shorten <=1pt]
\tikzstyle{neuron}=[circle,draw=black!80,thick,minimum size=17pt,inner
sep=0pt]
\tikzstyle{annot} = [text width=4em, text centered]
\foreach \name / \y in {1,...,3}
\path[yshift=0.5cm]
node[neuron] (H-\name) at (\layersep,-\y cm) {$x_\y$};
\node[neuron,pin={[pin edge={->}]right:$h_\theta(x)$}, right of=H-2] (O) {};
\foreach \source in {1,...,3}
\path (H-\source) edge (O);
\end{tikzpicture}
Beim Rendern entsteht Folgendes:
Ich möchte in der Lage sein, das zu beschriften \path
, aberüberall wo ich hingesehen habespricht nur über die Beschriftung von \draw
oder \node
. Ich dachte, ich sollte hinzufügen können:
\path (H-\source) edge (O) {Label Text};
Oder setzen Sie das label
Attribut im Rand:
\path (H-\source) edge[label=Label Text] (O);
Aber es scheint nicht zu funktionieren.
Mir ist dieser Abschnitt aufgefallen:
\foreach \source in {1,...,3}
\path (H-\source) edge (O);
legt die Kanten fest. Ich habe auch versucht, node
innerhalb der Schleife eine neue zu erstellen, war mir aber nicht sicher, wie ich sie relativ zur Kante positionieren sollte, da die Kante keine Kennung hat.
Vielen Dank für deine Hilfe!
Antwort1
Die Syntax der grundlegenden Tikz-Befehle finden Sie in einigen Tutorials. Um Beschriftungen hinzuzufügen, benötigen Sie ein node
. Sie können beispielsweise Pfeile mit Beschriftungen haben, indem Sie
\draw[->] (H-\source) -- node[above]{a\source} (O);
oder
\path (H-\source) edge node[above]{a\source} (O);
\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\begin{document}
\def\layersep{2.5cm}
\begin{tikzpicture}%
[shorten >=1pt,->,draw=black!50, node distance=\layersep,
every pin edge/.style={<-,shorten <=1pt},
neuron/.style={circle,draw=black!80,thick,minimum size=17pt,inner
sep=0pt},
annot/.style = {text width=4em, text centered}
]
\foreach \name / \y in {1,...,3}
\node[neuron,yshift=0.5cm] (H-\name) at (\layersep,-\y cm) {$x_\y$};
\node[neuron,pin={[pin edge={->}]right:$h_\theta(x)$}, right of=H-2] (O) {};
\foreach \source in {1,...,3}
\draw[->] (H-\source) -- node[above]{a\source} (O);
\end{tikzpicture}
\end{document}
Antwort2
Lassen Sie mich meine Kommentare in eine Antwort umwandeln:
zum Beispiel \path (H-\source) edge ["Label Text"] (O); (Anführungszeichenbibliothek erforderlich) oder \path (H-\source) edge node[above] {Label Text} (O); ... ist es das, wonach Sie suchen?
Betrachten Sie die ersten Möglichkeiten, die Bibliothek chains
und positioning
die Positionierung der Neuronen sowie die richtige Syntax hierfür. Ihr MWE wird:
\documentclass[tikz, border=2mm]{standalone}
\usetikzlibrary{chains, positioning, quotes}
\begin{document}
\def\layersep{12mm}
\begin{tikzpicture}[shorten >=1pt, ->, draw=black!50,
node distance = \layersep and 2*\layersep,
start chain = going below,
every pin edge/.style = {<-,shorten <=1pt},
neuron/.style = {circle,draw=black!80, thick,
minimum size=17pt, inner sep=0pt,
on chain},
annot/.style = {text width=4em, text centered},
every edge quotes/.style = {above,font=\footnotesize}
]
\foreach \y in {1,2,3}
\node (H-\y) [neuron] {$x_\y$};
\node (O) [neuron,pin={[pin edge={->}]right:$h_\theta(x)$},
right=of H-2] {};
\foreach \y in {1,2,3}
\draw[->] (H-\y) edge [above,"a\y"] (O);
\end{tikzpicture}
\end{document}
Ich bin ziemlich sicher, dass ich vor ein paar Tagen eine Antwort auf eine sehr ähnliche Frage geschrieben habe.