\hypertarget{classnntrainer_1_1MultioutRealizer}{}\doxysection{nntrainer\+::Multiout\+Realizer Class Reference}
\label{classnntrainer_1_1MultioutRealizer}\index{nntrainer::MultioutRealizer@{nntrainer::MultioutRealizer}}


Add multiout layer when a certain input is referenced multiple times.  




{\ttfamily \#include $<$multiout\+\_\+realizer.\+h$>$}



Inheritance diagram for nntrainer\+::Multiout\+Realizer\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=227pt]{classnntrainer_1_1MultioutRealizer__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for nntrainer\+::Multiout\+Realizer\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=227pt]{classnntrainer_1_1MultioutRealizer__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classnntrainer_1_1MultioutRealizer_a604c1aa61ded90e304991981a8bab974}{$\sim$\+Multiout\+Realizer}} ()
\begin{DoxyCompactList}\small\item\em Destroy the Graph Realizer object. \end{DoxyCompactList}\item 
Graph\+Representation \mbox{\hyperlink{classnntrainer_1_1MultioutRealizer_a7dc009c15b906a34b509da2e384597a1}{realize}} (const Graph\+Representation \&reference) override
\begin{DoxyCompactList}\small\item\em graph realizer creates a new graph based on the reference \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Add multiout layer when a certain input is referenced multiple times. 

\begin{DoxyNote}{Note}
after multiout realizer, it is guaranteed that input\+\_\+layer only refers to a single connection 
\end{DoxyNote}


Definition at line 28 of file multiout\+\_\+realizer.\+h.



\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classnntrainer_1_1MultioutRealizer_a604c1aa61ded90e304991981a8bab974}\label{classnntrainer_1_1MultioutRealizer_a604c1aa61ded90e304991981a8bab974}} 
\index{nntrainer::MultioutRealizer@{nntrainer::MultioutRealizer}!````~MultioutRealizer@{$\sim$MultioutRealizer}}
\index{````~MultioutRealizer@{$\sim$MultioutRealizer}!nntrainer::MultioutRealizer@{nntrainer::MultioutRealizer}}
\doxysubsubsection{\texorpdfstring{$\sim$MultioutRealizer()}{~MultioutRealizer()}}
{\footnotesize\ttfamily nntrainer\+::\+Multiout\+Realizer\+::$\sim$\+Multiout\+Realizer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Destroy the Graph Realizer object. 



Definition at line 26 of file multiout\+\_\+realizer.\+cpp.



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classnntrainer_1_1MultioutRealizer_a7dc009c15b906a34b509da2e384597a1}\label{classnntrainer_1_1MultioutRealizer_a7dc009c15b906a34b509da2e384597a1}} 
\index{nntrainer::MultioutRealizer@{nntrainer::MultioutRealizer}!realize@{realize}}
\index{realize@{realize}!nntrainer::MultioutRealizer@{nntrainer::MultioutRealizer}}
\doxysubsubsection{\texorpdfstring{realize()}{realize()}}
{\footnotesize\ttfamily Graph\+Representation nntrainer\+::\+Multiout\+Realizer\+::realize (\begin{DoxyParamCaption}\item[{const Graph\+Representation \&}]{reference }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



graph realizer creates a new graph based on the reference 


\begin{DoxyEnumerate}
\item build frequency map and connection names
\item for each connection names, if a connection is referenced multiple times, create multioutput node and remap to multi output node index
\end{DoxyEnumerate}

$<$ original id

$<$ created node

\begin{DoxyNote}{Note}
freq $<$ 1 should never happen as the map entry is not created. but if it happens multiout realizer is not interested in checking if it is a dangled or actually an output. So there is no assurance done at this point. Some other class must check if the given graph is formed in a correct way.
\end{DoxyNote}
\{connection\+\_\+name\}/generated\+\_\+out\+\_\+\{index\}


\begin{DoxyEnumerate}
\item insert multiout\+\_\+nodes close to the original node to make the realization more sensible
\end{DoxyEnumerate}

Implements \mbox{\hyperlink{classnntrainer_1_1GraphRealizer_a841b81262ea06e58655b512c3a0d05a9}{nntrainer\+::\+Graph\+Realizer}}.



Definition at line 29 of file multiout\+\_\+realizer.\+cpp.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
compiler/\mbox{\hyperlink{multiout__realizer_8h}{multiout\+\_\+realizer.\+h}}\item 
compiler/multiout\+\_\+realizer.\+cpp\end{DoxyCompactItemize}
