\hypertarget{structnntrainer_1_1TensorSpecV2}{}\doxysection{nntrainer\+::Tensor\+Spec\+V2 Struct Reference}
\label{structnntrainer_1_1TensorSpecV2}\index{nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}}


Tensor Specification which describes how this tensor should be allocated and managed.  




{\ttfamily \#include $<$tensor\+\_\+wrap\+\_\+specs.\+h$>$}

\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0}{Request\+Type}} \{ \newline
\mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0ae54e6f6ba0c7cbb4eb7a2016e2f17842}{Request\+Type\+::\+P\+L\+A\+C\+E\+H\+O\+L\+D\+ER}}, 
\mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0a88e3e8040c7cd11b9faffdf34372fa2a}{Request\+Type\+::\+U\+N\+I\+Q\+UE}}, 
\mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0a1a613085ef11c54d5b332421f37ff7ae}{Request\+Type\+::\+R\+E\+A\+D\+\_\+\+O\+N\+L\+Y\+\_\+\+V\+I\+EW}}, 
\mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0aa769963dc8391c666c81d661c38e1626}{Request\+Type\+::\+M\+A\+Y\+B\+E\+\_\+\+M\+O\+D\+I\+F\+Y\+I\+N\+G\+\_\+\+V\+I\+EW}}, 
\newline
\mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0a049518eb4dc1859c7cebbe15876cfd63}{Request\+Type\+::\+S\+H\+A\+R\+ED}}
 \}
\begin{DoxyCompactList}\small\item\em Tensor is being managed by nntrainer, this enum defines how the value should be recognized inside nntrainer tensor managing scheme. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0}{Request\+Type}} \mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a1efbde4b9f84570b7c72ccbb979f0049}{request\+\_\+type}} = \mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0a88e3e8040c7cd11b9faffdf34372fa2a}{Request\+Type\+::\+U\+N\+I\+Q\+UE}}
\item 
std\+::string \mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a144ec30c50d946c7728a262434877b70}{name}}
\item 
Tensor\+Dim \mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a647e85b2bbdbe3cdb412fb412a3994e1}{dim}}
\item 
\mbox{\hyperlink{namespacenntrainer_a7bd666a3854202ea94feb44a15ad622d}{Tensor\+Lifespan}} \mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a32b4fd6019672907cad0a9a818fd6ee2}{ls}}
\item 
Tensor\+::\+Initializer \mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_ae94ce10294713cd67b7a9335a3ac7d47}{initializer}}
\item 
unsigned int \mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_af4538897510b14ea03ab9052c4b8cbbe}{offset}} = 0u
\item 
std\+::string \mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a016cfe6ae1204bae8f1d80be2ef5dcde}{reference\+\_\+name}}
\item 
std\+::vector$<$ unsigned $>$ \mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a49b004c0e4cc4e08a18ab1ec2c50af56}{additional\+\_\+exec\+\_\+order}} = \{\}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Tensor Specification which describes how this tensor should be allocated and managed. 



Definition at line 91 of file tensor\+\_\+wrap\+\_\+specs.\+h.



\doxysubsection{Member Enumeration Documentation}
\mbox{\Hypertarget{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0}\label{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0}} 
\index{nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}!RequestType@{RequestType}}
\index{RequestType@{RequestType}!nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}}
\doxysubsubsection{\texorpdfstring{RequestType}{RequestType}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0}{nntrainer\+::\+Tensor\+Spec\+V2\+::\+Request\+Type}}\hspace{0.3cm}{\ttfamily [strong]}}



Tensor is being managed by nntrainer, this enum defines how the value should be recognized inside nntrainer tensor managing scheme. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{PLACEHOLDER@{PLACEHOLDER}!nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}}\index{nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}!PLACEHOLDER@{PLACEHOLDER}}}\mbox{\Hypertarget{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0ae54e6f6ba0c7cbb4eb7a2016e2f17842}\label{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0ae54e6f6ba0c7cbb4eb7a2016e2f17842}} 
P\+L\+A\+C\+E\+H\+O\+L\+D\+ER&Placeholder defines that nntrainer should never care about the memory inside the particualar tensor \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{UNIQUE@{UNIQUE}!nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}}\index{nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}!UNIQUE@{UNIQUE}}}\mbox{\Hypertarget{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0a88e3e8040c7cd11b9faffdf34372fa2a}\label{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0a88e3e8040c7cd11b9faffdf34372fa2a}} 
U\+N\+I\+Q\+UE&Unique means a simple tensor that will be owned explicitly the current request \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{READ\_ONLY\_VIEW@{READ\_ONLY\_VIEW}!nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}}\index{nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}!READ\_ONLY\_VIEW@{READ\_ONLY\_VIEW}}}\mbox{\Hypertarget{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0a1a613085ef11c54d5b332421f37ff7ae}\label{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0a1a613085ef11c54d5b332421f37ff7ae}} 
R\+E\+A\+D\+\_\+\+O\+N\+L\+Y\+\_\+\+V\+I\+EW&Readonly view defines a view of which ownership of {\itshape underlying} memory is at another tensor, also hinting nntrainer that the operation upon this particular tensor will never change value of the underlying memory \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{MAYBE\_MODIFYING\_VIEW@{MAYBE\_MODIFYING\_VIEW}!nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}}\index{nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}!MAYBE\_MODIFYING\_VIEW@{MAYBE\_MODIFYING\_VIEW}}}\mbox{\Hypertarget{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0aa769963dc8391c666c81d661c38e1626}\label{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0aa769963dc8391c666c81d661c38e1626}} 
M\+A\+Y\+B\+E\+\_\+\+M\+O\+D\+I\+F\+Y\+I\+N\+G\+\_\+\+V\+I\+EW&Maybe modifying view defines a (possible) view of which ownership of {\itshape underlying} memory is at another tensor, while hinting the nntrainer this tensor will do some modification of the underlying memory. nntrainer will try to make this particular tensor a view of the stated reference. If making a view of reference is likely to break the data integrity, nntrainer will request an independent memory slot, in this case, it is user\textquotesingle{}s responsibility to copy the data. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SHARED@{SHARED}!nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}}\index{nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}!SHARED@{SHARED}}}\mbox{\Hypertarget{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0a049518eb4dc1859c7cebbe15876cfd63}\label{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0a049518eb4dc1859c7cebbe15876cfd63}} 
S\+H\+A\+R\+ED&Shared defines a shared tensor ownership for the given identifier, it is user\textquotesingle{}s responsibility to guarantee that dimension and initializer of shared tensor if exactly same as the user will be agnostic about when and who will actually request the certain tensor. \\
\hline

\end{DoxyEnumFields}


Definition at line 98 of file tensor\+\_\+wrap\+\_\+specs.\+h.



\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{structnntrainer_1_1TensorSpecV2_a49b004c0e4cc4e08a18ab1ec2c50af56}\label{structnntrainer_1_1TensorSpecV2_a49b004c0e4cc4e08a18ab1ec2c50af56}} 
\index{nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}!additional\_exec\_order@{additional\_exec\_order}}
\index{additional\_exec\_order@{additional\_exec\_order}!nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}}
\doxysubsubsection{\texorpdfstring{additional\_exec\_order}{additional\_exec\_order}}
{\footnotesize\ttfamily std\+::vector$<$unsigned$>$ nntrainer\+::\+Tensor\+Spec\+V2\+::additional\+\_\+exec\+\_\+order = \{\}}

O\+N\+LY F\+OR T\+HE G\+R\+A\+N\+U\+L\+AR C\+O\+N\+T\+R\+OL OF L\+I\+FE O\+U\+T\+S\+I\+DE OF L\+A\+Y\+ER N\+O\+DE \begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000139}{Todo}}]make this as an opaque information with P\+I\+M\+PL \end{DoxyRefDesc}


Definition at line 136 of file tensor\+\_\+wrap\+\_\+specs.\+h.

\mbox{\Hypertarget{structnntrainer_1_1TensorSpecV2_a647e85b2bbdbe3cdb412fb412a3994e1}\label{structnntrainer_1_1TensorSpecV2_a647e85b2bbdbe3cdb412fb412a3994e1}} 
\index{nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}!dim@{dim}}
\index{dim@{dim}!nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}}
\doxysubsubsection{\texorpdfstring{dim}{dim}}
{\footnotesize\ttfamily Tensor\+Dim nntrainer\+::\+Tensor\+Spec\+V2\+::dim}

dimension 

Definition at line 125 of file tensor\+\_\+wrap\+\_\+specs.\+h.

\mbox{\Hypertarget{structnntrainer_1_1TensorSpecV2_ae94ce10294713cd67b7a9335a3ac7d47}\label{structnntrainer_1_1TensorSpecV2_ae94ce10294713cd67b7a9335a3ac7d47}} 
\index{nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}!initializer@{initializer}}
\index{initializer@{initializer}!nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}}
\doxysubsubsection{\texorpdfstring{initializer}{initializer}}
{\footnotesize\ttfamily Tensor\+::\+Initializer nntrainer\+::\+Tensor\+Spec\+V2\+::initializer}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=}
\DoxyCodeLine{    Tensor::Initializer::NONE}

\end{DoxyCode}
initializer 

Definition at line 127 of file tensor\+\_\+wrap\+\_\+specs.\+h.

\mbox{\Hypertarget{structnntrainer_1_1TensorSpecV2_a32b4fd6019672907cad0a9a818fd6ee2}\label{structnntrainer_1_1TensorSpecV2_a32b4fd6019672907cad0a9a818fd6ee2}} 
\index{nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}!ls@{ls}}
\index{ls@{ls}!nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}}
\doxysubsubsection{\texorpdfstring{ls}{ls}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespacenntrainer_a7bd666a3854202ea94feb44a15ad622d}{Tensor\+Lifespan}} nntrainer\+::\+Tensor\+Spec\+V2\+::ls}

lifespan 

Definition at line 126 of file tensor\+\_\+wrap\+\_\+specs.\+h.

\mbox{\Hypertarget{structnntrainer_1_1TensorSpecV2_a144ec30c50d946c7728a262434877b70}\label{structnntrainer_1_1TensorSpecV2_a144ec30c50d946c7728a262434877b70}} 
\index{nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}!name@{name}}
\index{name@{name}!nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}}
\doxysubsubsection{\texorpdfstring{name}{name}}
{\footnotesize\ttfamily std\+::string nntrainer\+::\+Tensor\+Spec\+V2\+::name}

Identifier 

Definition at line 124 of file tensor\+\_\+wrap\+\_\+specs.\+h.

\mbox{\Hypertarget{structnntrainer_1_1TensorSpecV2_af4538897510b14ea03ab9052c4b8cbbe}\label{structnntrainer_1_1TensorSpecV2_af4538897510b14ea03ab9052c4b8cbbe}} 
\index{nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}!offset@{offset}}
\index{offset@{offset}!nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}}
\doxysubsubsection{\texorpdfstring{offset}{offset}}
{\footnotesize\ttfamily unsigned int nntrainer\+::\+Tensor\+Spec\+V2\+::offset = 0u}

O\+N\+LY U\+S\+ED F\+OR R\+E\+A\+D\+\_\+\+O\+N\+L\+Y\+\_\+\+V\+I\+EW, M\+A\+Y\+B\+E\+\_\+\+M\+O\+D\+I\+F\+Y\+I\+N\+G\+\_\+\+V\+I\+EW tensor offset 

Definition at line 131 of file tensor\+\_\+wrap\+\_\+specs.\+h.

\mbox{\Hypertarget{structnntrainer_1_1TensorSpecV2_a016cfe6ae1204bae8f1d80be2ef5dcde}\label{structnntrainer_1_1TensorSpecV2_a016cfe6ae1204bae8f1d80be2ef5dcde}} 
\index{nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}!reference\_name@{reference\_name}}
\index{reference\_name@{reference\_name}!nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}}
\doxysubsubsection{\texorpdfstring{reference\_name}{reference\_name}}
{\footnotesize\ttfamily std\+::string nntrainer\+::\+Tensor\+Spec\+V2\+::reference\+\_\+name}

reference name 

Definition at line 132 of file tensor\+\_\+wrap\+\_\+specs.\+h.

\mbox{\Hypertarget{structnntrainer_1_1TensorSpecV2_a1efbde4b9f84570b7c72ccbb979f0049}\label{structnntrainer_1_1TensorSpecV2_a1efbde4b9f84570b7c72ccbb979f0049}} 
\index{nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}!request\_type@{request\_type}}
\index{request\_type@{request\_type}!nntrainer::TensorSpecV2@{nntrainer::TensorSpecV2}}
\doxysubsubsection{\texorpdfstring{request\_type}{request\_type}}
{\footnotesize\ttfamily \mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0}{Request\+Type}} nntrainer\+::\+Tensor\+Spec\+V2\+::request\+\_\+type = \mbox{\hyperlink{structnntrainer_1_1TensorSpecV2_a725fae92adf7db02a9b025114a0529a0a88e3e8040c7cd11b9faffdf34372fa2a}{Request\+Type\+::\+U\+N\+I\+Q\+UE}}}

Type of request 

Definition at line 123 of file tensor\+\_\+wrap\+\_\+specs.\+h.



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
tensor/\mbox{\hyperlink{tensor__wrap__specs_8h}{tensor\+\_\+wrap\+\_\+specs.\+h}}\end{DoxyCompactItemize}
