\hypertarget{classnntrainer_1_1GraphNode}{}\doxysection{nntrainer\+::Graph\+Node Class Reference}
\label{classnntrainer_1_1GraphNode}\index{nntrainer::GraphNode@{nntrainer::GraphNode}}


Inheritance diagram for nntrainer\+::Graph\+Node\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=202pt]{classnntrainer_1_1GraphNode__inherit__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef std\+::tuple$<$ unsigned int, unsigned int, unsigned int, unsigned int $>$ \mbox{\hyperlink{classnntrainer_1_1GraphNode_ae20fecb05f124a46d1907d13ed813a2f}{Execution\+Order}}
\begin{DoxyCompactList}\small\item\em Provides the time/order at which the node will be executed. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classnntrainer_1_1GraphNode_a372a872782203abbca154e39192e4d8e}\label{classnntrainer_1_1GraphNode_a372a872782203abbca154e39192e4d8e}} 
virtual \mbox{\hyperlink{classnntrainer_1_1GraphNode_a372a872782203abbca154e39192e4d8e}{$\sim$\+Graph\+Node}} ()=default
\begin{DoxyCompactList}\small\item\em Destructor of \mbox{\hyperlink{classLayer}{Layer}} Class. \end{DoxyCompactList}\item 
virtual const std\+::string \mbox{\hyperlink{classnntrainer_1_1GraphNode_a6e94faf928520e8a2e8f77050b6fdb3a}{get\+Name}} () const noexcept=0
\begin{DoxyCompactList}\small\item\em Get the Name of the underlying object. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{classnntrainer_1_1GraphNode_afa27efd1c33fa07feb519841cdfc7d3b}{set\+Name}} (const std\+::string \&name)=0
\begin{DoxyCompactList}\small\item\em Set the Name of the underlying object. \end{DoxyCompactList}\item 
virtual const std\+::string \mbox{\hyperlink{classnntrainer_1_1GraphNode_ae8a28eacca07961c3dfbadd8d218e457}{get\+Type}} () const =0
\begin{DoxyCompactList}\small\item\em Get the Type of the underlying object. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{classnntrainer_1_1GraphNode_a2a479edece694029003c9fbc5120c4b9}{get\+Trainable}} () const =0
\begin{DoxyCompactList}\small\item\em Get the trainable parameter. \end{DoxyCompactList}\item 
virtual const std\+::vector$<$ std\+::string $>$ \mbox{\hyperlink{classnntrainer_1_1GraphNode_ae73d59b4720ed203de106076db6d3b00}{get\+Input\+Connections}} () const =0
\begin{DoxyCompactList}\small\item\em Get the input connections for this node. \end{DoxyCompactList}\item 
virtual const std\+::vector$<$ std\+::string $>$ \mbox{\hyperlink{classnntrainer_1_1GraphNode_a4390e67ca3f0375849f1165966817073}{get\+Output\+Connections}} () const =0
\begin{DoxyCompactList}\small\item\em Get the output connections for this node. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{classnntrainer_1_1GraphNode_ae20fecb05f124a46d1907d13ed813a2f}{Execution\+Order}} \mbox{\hyperlink{classnntrainer_1_1GraphNode_a693dde0ffe36cd0b152f2a67745005a8}{get\+Execution\+Order}} () const =0
\begin{DoxyCompactList}\small\item\em get the execution order/location of this node \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{classnntrainer_1_1GraphNode_aa9c2b3137f9c9a72c92fddf1eeb1b64b}{set\+Execution\+Order}} (\mbox{\hyperlink{classnntrainer_1_1GraphNode_ae20fecb05f124a46d1907d13ed813a2f}{Execution\+Order}} exec\+\_\+order\+\_\+)=0
\begin{DoxyCompactList}\small\item\em set the execution order/location of this node \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}


Definition at line 27 of file graph\+\_\+node.\+h.



\doxysubsection{Member Typedef Documentation}
\mbox{\Hypertarget{classnntrainer_1_1GraphNode_ae20fecb05f124a46d1907d13ed813a2f}\label{classnntrainer_1_1GraphNode_ae20fecb05f124a46d1907d13ed813a2f}} 
\index{nntrainer::GraphNode@{nntrainer::GraphNode}!ExecutionOrder@{ExecutionOrder}}
\index{ExecutionOrder@{ExecutionOrder}!nntrainer::GraphNode@{nntrainer::GraphNode}}
\doxysubsubsection{\texorpdfstring{ExecutionOrder}{ExecutionOrder}}
{\footnotesize\ttfamily typedef std\+::tuple$<$unsigned int, unsigned int, unsigned int, unsigned int$>$ \mbox{\hyperlink{classnntrainer_1_1GraphNode_ae20fecb05f124a46d1907d13ed813a2f}{nntrainer\+::\+Graph\+Node\+::\+Execution\+Order}}}



Provides the time/order at which the node will be executed. 

This time will be finalized once the graph has been calculated. Each element indicates the orders with which the below operations for each node are executed\+:
\begin{DoxyEnumerate}
\item Forwarding
\item calc\+Gradient
\item calc\+Derivative
\item Apply\+Gradient One constraint is that they must be sorted in ascending order. This ensures that the operations are executed in the order of their listing. 
\end{DoxyEnumerate}

Definition at line 43 of file graph\+\_\+node.\+h.



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classnntrainer_1_1GraphNode_a693dde0ffe36cd0b152f2a67745005a8}\label{classnntrainer_1_1GraphNode_a693dde0ffe36cd0b152f2a67745005a8}} 
\index{nntrainer::GraphNode@{nntrainer::GraphNode}!getExecutionOrder@{getExecutionOrder}}
\index{getExecutionOrder@{getExecutionOrder}!nntrainer::GraphNode@{nntrainer::GraphNode}}
\doxysubsubsection{\texorpdfstring{getExecutionOrder()}{getExecutionOrder()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{classnntrainer_1_1GraphNode_ae20fecb05f124a46d1907d13ed813a2f}{Execution\+Order}} nntrainer\+::\+Graph\+Node\+::get\+Execution\+Order (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



get the execution order/location of this node 


\begin{DoxyRetVals}{Return values}
{\em the} & execution order/location of this node\\
\hline
\end{DoxyRetVals}
The two values represents the value for forward and backward respectively 

Implemented in \mbox{\hyperlink{classnntrainer_1_1LayerNode_ae760207d72e622b3f65baa6692809432}{nntrainer\+::\+Layer\+Node}}.

\mbox{\Hypertarget{classnntrainer_1_1GraphNode_ae73d59b4720ed203de106076db6d3b00}\label{classnntrainer_1_1GraphNode_ae73d59b4720ed203de106076db6d3b00}} 
\index{nntrainer::GraphNode@{nntrainer::GraphNode}!getInputConnections@{getInputConnections}}
\index{getInputConnections@{getInputConnections}!nntrainer::GraphNode@{nntrainer::GraphNode}}
\doxysubsubsection{\texorpdfstring{getInputConnections()}{getInputConnections()}}
{\footnotesize\ttfamily virtual const std\+::vector$<$std\+::string$>$ nntrainer\+::\+Graph\+Node\+::get\+Input\+Connections (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



Get the input connections for this node. 

\begin{DoxyReturn}{Returns}
list of name of the nodes which form input connections 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classnntrainer_1_1LayerNode_ac3c57446f20f813605d359968ac6f910}{nntrainer\+::\+Layer\+Node}}.

\mbox{\Hypertarget{classnntrainer_1_1GraphNode_a6e94faf928520e8a2e8f77050b6fdb3a}\label{classnntrainer_1_1GraphNode_a6e94faf928520e8a2e8f77050b6fdb3a}} 
\index{nntrainer::GraphNode@{nntrainer::GraphNode}!getName@{getName}}
\index{getName@{getName}!nntrainer::GraphNode@{nntrainer::GraphNode}}
\doxysubsubsection{\texorpdfstring{getName()}{getName()}}
{\footnotesize\ttfamily virtual const std\+::string nntrainer\+::\+Graph\+Node\+::get\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}, {\ttfamily [noexcept]}}



Get the Name of the underlying object. 

\begin{DoxyReturn}{Returns}
std\+::string Name of the underlying object 
\end{DoxyReturn}
\begin{DoxyNote}{Note}
name of each node in the graph must be unique 
\end{DoxyNote}


Implemented in \mbox{\hyperlink{classnntrainer_1_1LayerNode_a312720e157a2ebd34a72f9a4f3056123}{nntrainer\+::\+Layer\+Node}}.

\mbox{\Hypertarget{classnntrainer_1_1GraphNode_a4390e67ca3f0375849f1165966817073}\label{classnntrainer_1_1GraphNode_a4390e67ca3f0375849f1165966817073}} 
\index{nntrainer::GraphNode@{nntrainer::GraphNode}!getOutputConnections@{getOutputConnections}}
\index{getOutputConnections@{getOutputConnections}!nntrainer::GraphNode@{nntrainer::GraphNode}}
\doxysubsubsection{\texorpdfstring{getOutputConnections()}{getOutputConnections()}}
{\footnotesize\ttfamily virtual const std\+::vector$<$std\+::string$>$ nntrainer\+::\+Graph\+Node\+::get\+Output\+Connections (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



Get the output connections for this node. 

\begin{DoxyReturn}{Returns}
list of name of the nodes which form output connections 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classnntrainer_1_1LayerNode_a025aff0f6f36ed9aa70cf4bc7cf5dbd2}{nntrainer\+::\+Layer\+Node}}.

\mbox{\Hypertarget{classnntrainer_1_1GraphNode_a2a479edece694029003c9fbc5120c4b9}\label{classnntrainer_1_1GraphNode_a2a479edece694029003c9fbc5120c4b9}} 
\index{nntrainer::GraphNode@{nntrainer::GraphNode}!getTrainable@{getTrainable}}
\index{getTrainable@{getTrainable}!nntrainer::GraphNode@{nntrainer::GraphNode}}
\doxysubsubsection{\texorpdfstring{getTrainable()}{getTrainable()}}
{\footnotesize\ttfamily virtual bool nntrainer\+::\+Graph\+Node\+::get\+Trainable (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



Get the trainable parameter. 

\begin{DoxyReturn}{Returns}
bool true / false 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classnntrainer_1_1LayerNode_a7f793fc7f44e63ec5d0bd67667abb174}{nntrainer\+::\+Layer\+Node}}.

\mbox{\Hypertarget{classnntrainer_1_1GraphNode_ae8a28eacca07961c3dfbadd8d218e457}\label{classnntrainer_1_1GraphNode_ae8a28eacca07961c3dfbadd8d218e457}} 
\index{nntrainer::GraphNode@{nntrainer::GraphNode}!getType@{getType}}
\index{getType@{getType}!nntrainer::GraphNode@{nntrainer::GraphNode}}
\doxysubsubsection{\texorpdfstring{getType()}{getType()}}
{\footnotesize\ttfamily virtual const std\+::string nntrainer\+::\+Graph\+Node\+::get\+Type (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



Get the Type of the underlying object. 

\begin{DoxyReturn}{Returns}
const std\+::string type representation 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classnntrainer_1_1LayerNode_a2f7a2561702e5b53d0448df6513adfd7}{nntrainer\+::\+Layer\+Node}}.

\mbox{\Hypertarget{classnntrainer_1_1GraphNode_aa9c2b3137f9c9a72c92fddf1eeb1b64b}\label{classnntrainer_1_1GraphNode_aa9c2b3137f9c9a72c92fddf1eeb1b64b}} 
\index{nntrainer::GraphNode@{nntrainer::GraphNode}!setExecutionOrder@{setExecutionOrder}}
\index{setExecutionOrder@{setExecutionOrder}!nntrainer::GraphNode@{nntrainer::GraphNode}}
\doxysubsubsection{\texorpdfstring{setExecutionOrder()}{setExecutionOrder()}}
{\footnotesize\ttfamily virtual void nntrainer\+::\+Graph\+Node\+::set\+Execution\+Order (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classnntrainer_1_1GraphNode_ae20fecb05f124a46d1907d13ed813a2f}{Execution\+Order}}}]{exec\+\_\+order\+\_\+ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



set the execution order/location of this node 


\begin{DoxyParams}{Parameters}
{\em exec\+\_\+order} & the execution order/location of this node\\
\hline
\end{DoxyParams}
The two values represents the value for forward and backward respectively 

Implemented in \mbox{\hyperlink{classnntrainer_1_1LayerNode_a7c3b58a138f4ea40aff3179e45fa0389}{nntrainer\+::\+Layer\+Node}}.

\mbox{\Hypertarget{classnntrainer_1_1GraphNode_afa27efd1c33fa07feb519841cdfc7d3b}\label{classnntrainer_1_1GraphNode_afa27efd1c33fa07feb519841cdfc7d3b}} 
\index{nntrainer::GraphNode@{nntrainer::GraphNode}!setName@{setName}}
\index{setName@{setName}!nntrainer::GraphNode@{nntrainer::GraphNode}}
\doxysubsubsection{\texorpdfstring{setName()}{setName()}}
{\footnotesize\ttfamily virtual void nntrainer\+::\+Graph\+Node\+::set\+Name (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Set the Name of the underlying object. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em std\+::string} & Name for the underlying object \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
name of each node in the graph must be unique, and caller must ensure that 
\end{DoxyNote}


Implemented in \mbox{\hyperlink{classnntrainer_1_1LayerNode_ad1cfda38f90cf2e9379ce6b80232950e}{nntrainer\+::\+Layer\+Node}}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
graph/\mbox{\hyperlink{graph__node_8h}{graph\+\_\+node.\+h}}\end{DoxyCompactItemize}
