\hypertarget{tensor__typedef_8h}{}\doxysection{nnstreamer/include/tensor\+\_\+typedef.h File Reference}
\label{tensor__typedef_8h}\index{nnstreamer/include/tensor\_typedef.h@{nnstreamer/include/tensor\_typedef.h}}


Common header file for N\+N\+Streamer, the G\+Streamer plugin for neural networks.  


{\ttfamily \#include $<$stddef.\+h$>$}\newline
{\ttfamily \#include $<$stdint.\+h$>$}\newline
Include dependency graph for tensor\+\_\+typedef.\+h\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=208pt]{tensor__typedef_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{tensor__typedef_8h__dep__incl}
\end{center}
\end{figure}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
union \mbox{\hyperlink{uniontensor__element}{tensor\+\_\+element}}
\begin{DoxyCompactList}\small\item\em To make the code simple with all the types. \char`\"{}\+C++ Template\char`\"{}-\/like. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structGstTensorMemory}{Gst\+Tensor\+Memory}}
\begin{DoxyCompactList}\small\item\em The unit of each data tensors. It will be used as an input/output tensor of other/tensors. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}}
\begin{DoxyCompactList}\small\item\em Internal data structure for tensor info. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structGstTensorsInfo}{Gst\+Tensors\+Info}}
\begin{DoxyCompactList}\small\item\em Internal meta data exchange format for a other/tensors instance. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structGstTensorsConfig}{Gst\+Tensors\+Config}}
\begin{DoxyCompactList}\small\item\em Internal data structure for configured tensors info (for other/tensors). \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structGstSparseTensorInfo}{Gst\+Sparse\+Tensor\+Info}}
\begin{DoxyCompactList}\small\item\em Internal data structure for sparse tensor info. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structGstTensorMetaInfo}{Gst\+Tensor\+Meta\+Info}}
\begin{DoxyCompactList}\small\item\em Data structure to describe a tensor data. This represents the basic information of a memory block for tensor stream. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_ae9bf0825943088d62072409b2e752ae8}{N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT}}~(16)
\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_a5da7b8fff3cc3b384068991a8219671b}{N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+L\+I\+M\+IT}}~(256)
\begin{DoxyCompactList}\small\item\em The number of tensors N\+N\+Streamer supports is 256. The max memories of gst-\/buffer is 16 (See N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+M\+E\+M\+O\+R\+Y\+\_\+\+M\+AX). Internally N\+N\+Streamer handles the memories as tensors. If the number of tensors is larger than 16, we modify the last memory and combine tensors into the memory. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_a645ccec9c701bfdeb4c4fe3fcde5e121}{N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+L\+I\+M\+I\+T\+\_\+\+S\+TR}}~\char`\"{}256\char`\"{}
\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_a9f1642d1672c4a1a25ad47982ffeb9a6}{N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+M\+E\+M\+O\+R\+Y\+\_\+\+M\+AX}}~(16)
\begin{DoxyCompactList}\small\item\em This value, 16, can be checked with gst\+\_\+buffer\+\_\+get\+\_\+max\+\_\+memory(), which is G\+S\+T\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+M\+E\+M\+\_\+\+M\+AX in gstreamer/gstbuffer.\+c. We redefined the value because G\+S\+T\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+M\+E\+M\+\_\+\+M\+AX is not exported and we need static value. To modify (increase) this value, you need to update gstreamer/gstbuffer.\+c as well. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_a2e67d2ded4df1ae3386f2ab5db8ebe20}{N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+E\+X\+T\+R\+A\+\_\+\+L\+I\+M\+IT}}~(\mbox{\hyperlink{tensor__typedef_8h_a5da7b8fff3cc3b384068991a8219671b}{N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+L\+I\+M\+IT}} -\/ \mbox{\hyperlink{tensor__typedef_8h_a9f1642d1672c4a1a25ad47982ffeb9a6}{N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+M\+E\+M\+O\+R\+Y\+\_\+\+M\+AX}})
\begin{DoxyCompactList}\small\item\em Max number of extra tensors. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_a29c8d0755ca4fa891628cb595c2d7fa0}{N\+N\+S\+\_\+\+M\+I\+M\+E\+T\+Y\+P\+E\+\_\+\+T\+E\+N\+S\+OR}}~\char`\"{}other/tensor\char`\"{}
\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_af12bfdfd89abd36c0437cfc02bf90b75}{N\+N\+S\+\_\+\+M\+I\+M\+E\+T\+Y\+P\+E\+\_\+\+T\+E\+N\+S\+O\+RS}}~\char`\"{}other/tensors\char`\"{}
\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_a7acf4f03c1a8aea75cb529a61220b261}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+N\+U\+M\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+R\+A\+N\+GE}}~\char`\"{}(int) \mbox{[} 1, \char`\"{} N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+L\+I\+M\+I\+T\+\_\+\+S\+TR \char`\"{} \mbox{]}\char`\"{}
\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_a57709f3b1abfa1209cd3099213521c16}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+R\+A\+T\+E\+\_\+\+R\+A\+N\+GE}}~\char`\"{}(fraction) \mbox{[} 0, max \mbox{]}\char`\"{}
\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_a53065dd921b01df530690bc555df71b3}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+T\+Y\+P\+E\+\_\+\+A\+LL}}~\char`\"{}\{ float16, float32, float64, int64, uint64, int32, uint32, int16, uint16, int8, uint8 \}\char`\"{}
\begin{DoxyCompactList}\small\item\em Possible tensor element types. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_a05ff75f4a021166897c8ce9e08ff4da0}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+A\+LL}}~\char`\"{}\{ static, flexible, sparse \}\char`\"{}
\begin{DoxyCompactList}\small\item\em Possible tensor formats. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_a284951c7aec77ea34d1c0279d5a5b4a0}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+C\+A\+P\+\_\+\+D\+E\+F\+A\+U\+LT}}
\begin{DoxyCompactList}\small\item\em Default static capability for other/tensor. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_a23fa98afadf9e35f428d8d56b739b233}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+M\+A\+KE}}(fmt)
\begin{DoxyCompactList}\small\item\em Caps string for the caps template of tensor stream. format should be a string that describes the data format, or possible formats of incoming tensor. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_a884f2cfc99396732e99675d186270477}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+W\+I\+T\+H\+\_\+\+N\+UM}}(num)
\begin{DoxyCompactList}\small\item\em Caps string for the caps template (other/tensors, static tensor stream with fixed number of tensors). num should be a string format that describes the number of tensors, or the range of incoming tensors. The types and dimensions of tensors should be described for caps negotiation. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_a439a25631e5849f93c9f1dcdc7c2baa5}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+D\+E\+F\+A\+U\+LT}}~\mbox{\hyperlink{tensor__typedef_8h_a884f2cfc99396732e99675d186270477}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+W\+I\+T\+H\+\_\+\+N\+UM}} (\mbox{\hyperlink{tensor__typedef_8h_a7acf4f03c1a8aea75cb529a61220b261}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+N\+U\+M\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+R\+A\+N\+GE}})
\begin{DoxyCompactList}\small\item\em Caps string for the caps template of static tensor stream. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_a71856faf2269f48f212cac74c553ed94}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+F\+L\+E\+X\+\_\+\+C\+A\+P\+\_\+\+D\+E\+F\+A\+U\+LT}}~\mbox{\hyperlink{tensor__typedef_8h_a23fa98afadf9e35f428d8d56b739b233}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+M\+A\+KE}} (\char`\"{}flexible\char`\"{})
\begin{DoxyCompactList}\small\item\em Caps string for the caps template of flexible tensors. This mimetype handles non-\/static, flexible tensor stream without specifying the data type and shape of the tensor. The maximum number of tensors in a buffer is 16 (N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+L\+I\+M\+IT). \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{tensor__typedef_8h_a21a07d818b9fe6dbee3cccdde72cc2e1}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+S\+P\+A\+R\+S\+E\+\_\+\+C\+A\+P\+\_\+\+D\+E\+F\+A\+U\+LT}}~\mbox{\hyperlink{tensor__typedef_8h_a23fa98afadf9e35f428d8d56b739b233}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+M\+A\+KE}} (\char`\"{}sparse\char`\"{})
\begin{DoxyCompactList}\small\item\em Caps string for the caps template of sparse tensors. This mimetype handles non-\/static, sparse tensor stream without specifying the data type and shape of the tensor. The maximum number of tensors in a buffer is 16 (N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+L\+I\+M\+IT). \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef enum \mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0ea}{\+\_\+nns\+\_\+tensor\+\_\+type}} \mbox{\hyperlink{tensor__typedef_8h_ab5f7feb87196d0b9ae37b11fd819f23e}{tensor\+\_\+type}}
\begin{DoxyCompactList}\small\item\em Possible data element types of other/tensor. \end{DoxyCompactList}\item 
typedef enum \mbox{\hyperlink{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0ac}{\+\_\+nns\+\_\+media\+\_\+type}} \mbox{\hyperlink{tensor__typedef_8h_a179b411a3defbc62047b1f892ff41f82}{media\+\_\+type}}
\begin{DoxyCompactList}\small\item\em Float16 compiler extension support. \end{DoxyCompactList}\item 
typedef enum \mbox{\hyperlink{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069d}{\+\_\+tensor\+\_\+format}} \mbox{\hyperlink{tensor__typedef_8h_a8f63561cff18618282cb7e0dd1f8ac96}{tensor\+\_\+format}}
\begin{DoxyCompactList}\small\item\em Data format of tensor stream in the pipeline. \end{DoxyCompactList}\item 
typedef enum \mbox{\hyperlink{tensor__typedef_8h_a603b63673330f127f249771e0113eab9}{\+\_\+nns\+\_\+tensor\+\_\+layout}} \mbox{\hyperlink{tensor__typedef_8h_abaf80ca39942c6a0b8ab019fb97c0716}{tensor\+\_\+layout}}
\begin{DoxyCompactList}\small\item\em Tensor layout format for other/tensor. \end{DoxyCompactList}\item 
typedef uint32\+\_\+t \mbox{\hyperlink{tensor__typedef_8h_ae58ce2b6d47c4a2e9c5f3f621c6a5b9a}{tensor\+\_\+dim}}\mbox{[}\mbox{\hyperlink{tensor__typedef_8h_ae9bf0825943088d62072409b2e752ae8}{N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT}}\mbox{]}
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0ea}{\+\_\+nns\+\_\+tensor\+\_\+type}} \{ \newline
\mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa049f2d9061ce255f95765dc03e37983d}{\+\_\+\+N\+N\+S\+\_\+\+I\+N\+T32}} = 0, 
\mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaaf63d9ea8926a1befebc780fdfcc21eb9}{\+\_\+\+N\+N\+S\+\_\+\+U\+I\+N\+T32}}, 
\mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaacbeb809f942df58e669c3a2f3d986a9f}{\+\_\+\+N\+N\+S\+\_\+\+I\+N\+T16}}, 
\mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa43de6043203de583de60208e49183401}{\+\_\+\+N\+N\+S\+\_\+\+U\+I\+N\+T16}}, 
\newline
\mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa5380abf91df5c82187018ac4d24279e2}{\+\_\+\+N\+N\+S\+\_\+\+I\+N\+T8}}, 
\mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaab5a59c21ae9c9ec4b02b363c0e176939}{\+\_\+\+N\+N\+S\+\_\+\+U\+I\+N\+T8}}, 
\mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa34b59a484c1243f2d9526a158e5417c2}{\+\_\+\+N\+N\+S\+\_\+\+F\+L\+O\+A\+T64}}, 
\mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaab5c2db8009a13383684358501ff4cc48}{\+\_\+\+N\+N\+S\+\_\+\+F\+L\+O\+A\+T32}}, 
\newline
\mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa93b0749871b9b80e3af17e74dcef9452}{\+\_\+\+N\+N\+S\+\_\+\+I\+N\+T64}}, 
\mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa7045bb742c618911841b17112fdd2d0b}{\+\_\+\+N\+N\+S\+\_\+\+U\+I\+N\+T64}}, 
\mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaafc37d7435087f9661f8aaf75049e5cc4}{\+\_\+\+N\+N\+S\+\_\+\+F\+L\+O\+A\+T16}}, 
\mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaafac3f06dff584665bba7b42b96a449bc}{\+\_\+\+N\+N\+S\+\_\+\+E\+ND}}
 \}
\begin{DoxyCompactList}\small\item\em Possible data element types of other/tensor. \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0ac}{\+\_\+nns\+\_\+media\+\_\+type}} \{ \newline
\mbox{\hyperlink{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0acab4978ebd20b6b4aee0e509fc0d3a8099}{\+\_\+\+N\+N\+S\+\_\+\+M\+E\+D\+I\+A\+\_\+\+I\+N\+V\+A\+L\+ID}} = -\/1, 
\mbox{\hyperlink{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0aca4b641a52f24818ae047a09da3847fe3e}{\+\_\+\+N\+N\+S\+\_\+\+V\+I\+D\+EO}} = 0, 
\mbox{\hyperlink{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0acae105ccda334522689ea4dd4b194bb211}{\+\_\+\+N\+N\+S\+\_\+\+A\+U\+D\+IO}} = 1, 
\mbox{\hyperlink{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0aca7389ebe8ffb7c7ad6b24275813d16cb9}{\+\_\+\+N\+N\+S\+\_\+\+T\+E\+XT}} = 2, 
\newline
\mbox{\hyperlink{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0acae468cba6133fe77ea7170c40a5c089d9}{\+\_\+\+N\+N\+S\+\_\+\+O\+C\+T\+ET}} = 3, 
\mbox{\hyperlink{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0aca118c46b49e19e420d387ef6ded86ae42}{\+\_\+\+N\+N\+S\+\_\+\+T\+E\+N\+S\+OR}} = 4, 
\mbox{\hyperlink{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0aca0177bb1dffa05ac806bb364815298746}{\+\_\+\+N\+N\+S\+\_\+\+M\+E\+D\+I\+A\+\_\+\+A\+NY}} = 0x1000
 \}
\begin{DoxyCompactList}\small\item\em Float16 compiler extension support. \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069d}{\+\_\+tensor\+\_\+format}} \{ \mbox{\hyperlink{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069dac9eeffede00be698970f239ce5e50f9b}{\+\_\+\+N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+T\+A\+T\+IC}} = 0, 
\mbox{\hyperlink{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069da07955daf3ae0f568c9c12f790433401c}{\+\_\+\+N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+F\+L\+E\+X\+I\+B\+LE}}, 
\mbox{\hyperlink{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069da93a6f646deed65a694aab40aa691a6cd}{\+\_\+\+N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+P\+A\+R\+SE}}, 
\mbox{\hyperlink{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069da46b6705239a212f3a5546004d56626e2}{\+\_\+\+N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+E\+ND}}
 \}
\begin{DoxyCompactList}\small\item\em Data format of tensor stream in the pipeline. \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{tensor__typedef_8h_a603b63673330f127f249771e0113eab9}{\+\_\+nns\+\_\+tensor\+\_\+layout}} \{ \mbox{\hyperlink{tensor__typedef_8h_a603b63673330f127f249771e0113eab9a3e614101d16c01ed72aea3e1ff245ac6}{\+\_\+\+N\+N\+S\+\_\+\+L\+A\+Y\+O\+U\+T\+\_\+\+A\+NY}} = 0, 
\mbox{\hyperlink{tensor__typedef_8h_a603b63673330f127f249771e0113eab9a9f0aa71bccb0f3835d195466c59a5ff8}{\+\_\+\+N\+N\+S\+\_\+\+L\+A\+Y\+O\+U\+T\+\_\+\+N\+H\+WC}}, 
\mbox{\hyperlink{tensor__typedef_8h_a603b63673330f127f249771e0113eab9ab46ee196d12fe4bed7fcb2e91a11b9a3}{\+\_\+\+N\+N\+S\+\_\+\+L\+A\+Y\+O\+U\+T\+\_\+\+N\+C\+HW}}, 
\mbox{\hyperlink{tensor__typedef_8h_a603b63673330f127f249771e0113eab9a70029258952182f74cef3f1e573afcbf}{\+\_\+\+N\+N\+S\+\_\+\+L\+A\+Y\+O\+U\+T\+\_\+\+N\+O\+NE}}
 \}
\begin{DoxyCompactList}\small\item\em Tensor layout format for other/tensor. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Common header file for N\+N\+Streamer, the G\+Streamer plugin for neural networks. 

N\+N\+Streamer Common Header, Typedef part, for export as devel package. Copyright (C) 2018 Myung\+Joo Ham \href{mailto:myungjoo.ham@samsung.com}{\texttt{ myungjoo.\+ham@samsung.\+com}}

This library is free software; you can redistribute it and/or modify it under the terms of the G\+NU Library General Public License as published by the Free Software Foundation; version 2.\+1 of the License.

This library is distributed in the hope that it will be useful, but W\+I\+T\+H\+O\+UT A\+NY W\+A\+R\+R\+A\+N\+TY; without even the implied warranty of M\+E\+R\+C\+H\+A\+N\+T\+A\+B\+I\+L\+I\+TY or F\+I\+T\+N\+E\+SS F\+OR A P\+A\+R\+T\+I\+C\+U\+L\+AR P\+U\+R\+P\+O\+SE. See the G\+NU Library General Public License for more details.

\begin{DoxyDate}{Date}
01 Jun 2018 
\end{DoxyDate}
\begin{DoxySeeAlso}{See also}
\href{http://github.com/nnstreamer/nnstreamer}{\texttt{ http\+://github.\+com/nnstreamer/nnstreamer}} 
\end{DoxySeeAlso}
\begin{DoxyAuthor}{Author}
Myung\+Joo Ham \href{mailto:myungjoo.ham@samsung.com}{\texttt{ myungjoo.\+ham@samsung.\+com}} 
\end{DoxyAuthor}
\begin{DoxyRefDesc}{Bug}
\item[\mbox{\hyperlink{bug__bug000084}{Bug}}]No known bugs except for N\+YI items\end{DoxyRefDesc}


To Packagers\+:

This file is to be packaged as \char`\"{}devel\char`\"{} package for NN developers. 

\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{tensor__typedef_8h_a284951c7aec77ea34d1c0279d5a5b4a0}\label{tensor__typedef_8h_a284951c7aec77ea34d1c0279d5a5b4a0}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!GST\_TENSOR\_CAP\_DEFAULT@{GST\_TENSOR\_CAP\_DEFAULT}}
\index{GST\_TENSOR\_CAP\_DEFAULT@{GST\_TENSOR\_CAP\_DEFAULT}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSOR\_CAP\_DEFAULT}{GST\_TENSOR\_CAP\_DEFAULT}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+C\+A\+P\+\_\+\+D\+E\+F\+A\+U\+LT}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{    \mbox{\hyperlink{tensor__typedef_8h_a29c8d0755ca4fa891628cb595c2d7fa0}{NNS\_MIMETYPE\_TENSOR}} \textcolor{stringliteral}{", "} \(\backslash\)}
\DoxyCodeLine{    \textcolor{stringliteral}{"framerate = "} \mbox{\hyperlink{tensor__typedef_8h_a57709f3b1abfa1209cd3099213521c16}{GST\_TENSOR\_RATE\_RANGE}}}

\end{DoxyCode}


Default static capability for other/tensor. 



Definition at line 78 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a05ff75f4a021166897c8ce9e08ff4da0}\label{tensor__typedef_8h_a05ff75f4a021166897c8ce9e08ff4da0}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!GST\_TENSOR\_FORMAT\_ALL@{GST\_TENSOR\_FORMAT\_ALL}}
\index{GST\_TENSOR\_FORMAT\_ALL@{GST\_TENSOR\_FORMAT\_ALL}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSOR\_FORMAT\_ALL}{GST\_TENSOR\_FORMAT\_ALL}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+A\+LL~\char`\"{}\{ static, flexible, sparse \}\char`\"{}}



Possible tensor formats. 



Definition at line 73 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a7acf4f03c1a8aea75cb529a61220b261}\label{tensor__typedef_8h_a7acf4f03c1a8aea75cb529a61220b261}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!GST\_TENSOR\_NUM\_TENSORS\_RANGE@{GST\_TENSOR\_NUM\_TENSORS\_RANGE}}
\index{GST\_TENSOR\_NUM\_TENSORS\_RANGE@{GST\_TENSOR\_NUM\_TENSORS\_RANGE}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSOR\_NUM\_TENSORS\_RANGE}{GST\_TENSOR\_NUM\_TENSORS\_RANGE}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+N\+U\+M\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+R\+A\+N\+GE~\char`\"{}(int) \mbox{[} 1, \char`\"{} N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+L\+I\+M\+I\+T\+\_\+\+S\+TR \char`\"{} \mbox{]}\char`\"{}}



Definition at line 62 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a57709f3b1abfa1209cd3099213521c16}\label{tensor__typedef_8h_a57709f3b1abfa1209cd3099213521c16}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!GST\_TENSOR\_RATE\_RANGE@{GST\_TENSOR\_RATE\_RANGE}}
\index{GST\_TENSOR\_RATE\_RANGE@{GST\_TENSOR\_RATE\_RANGE}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSOR\_RATE\_RANGE}{GST\_TENSOR\_RATE\_RANGE}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+R\+A\+T\+E\+\_\+\+R\+A\+N\+GE~\char`\"{}(fraction) \mbox{[} 0, max \mbox{]}\char`\"{}}



Definition at line 63 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a53065dd921b01df530690bc555df71b3}\label{tensor__typedef_8h_a53065dd921b01df530690bc555df71b3}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!GST\_TENSOR\_TYPE\_ALL@{GST\_TENSOR\_TYPE\_ALL}}
\index{GST\_TENSOR\_TYPE\_ALL@{GST\_TENSOR\_TYPE\_ALL}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSOR\_TYPE\_ALL}{GST\_TENSOR\_TYPE\_ALL}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+T\+Y\+P\+E\+\_\+\+A\+LL~\char`\"{}\{ float16, float32, float64, int64, uint64, int32, uint32, int16, uint16, int8, uint8 \}\char`\"{}}



Possible tensor element types. 



Definition at line 68 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a439a25631e5849f93c9f1dcdc7c2baa5}\label{tensor__typedef_8h_a439a25631e5849f93c9f1dcdc7c2baa5}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!GST\_TENSORS\_CAP\_DEFAULT@{GST\_TENSORS\_CAP\_DEFAULT}}
\index{GST\_TENSORS\_CAP\_DEFAULT@{GST\_TENSORS\_CAP\_DEFAULT}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSORS\_CAP\_DEFAULT}{GST\_TENSORS\_CAP\_DEFAULT}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+D\+E\+F\+A\+U\+LT~\mbox{\hyperlink{tensor__typedef_8h_a884f2cfc99396732e99675d186270477}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+W\+I\+T\+H\+\_\+\+N\+UM}} (\mbox{\hyperlink{tensor__typedef_8h_a7acf4f03c1a8aea75cb529a61220b261}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+N\+U\+M\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+R\+A\+N\+GE}})}



Caps string for the caps template of static tensor stream. 



Definition at line 115 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a23fa98afadf9e35f428d8d56b739b233}\label{tensor__typedef_8h_a23fa98afadf9e35f428d8d56b739b233}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!GST\_TENSORS\_CAP\_MAKE@{GST\_TENSORS\_CAP\_MAKE}}
\index{GST\_TENSORS\_CAP\_MAKE@{GST\_TENSORS\_CAP\_MAKE}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSORS\_CAP\_MAKE}{GST\_TENSORS\_CAP\_MAKE}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+M\+A\+KE(\begin{DoxyParamCaption}\item[{}]{fmt }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{    \mbox{\hyperlink{tensor__typedef_8h_af12bfdfd89abd36c0437cfc02bf90b75}{NNS\_MIMETYPE\_TENSORS}} \textcolor{stringliteral}{", "} \(\backslash\)}
\DoxyCodeLine{    \textcolor{stringliteral}{"format = (string) "} fmt \textcolor{stringliteral}{", "} \(\backslash\)}
\DoxyCodeLine{    \textcolor{stringliteral}{"framerate = "} \mbox{\hyperlink{tensor__typedef_8h_a57709f3b1abfa1209cd3099213521c16}{GST\_TENSOR\_RATE\_RANGE}}}

\end{DoxyCode}


Caps string for the caps template of tensor stream. format should be a string that describes the data format, or possible formats of incoming tensor. 

type should be one of types in G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+T\+Y\+P\+E\+\_\+\+A\+LL \char`\"{}type = (string) uint8\char`\"{} dimension should be a formatted string with rank N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT \char`\"{}dimension = (string) dim1\+:dim2\+:dim3\+:dim4\char`\"{} If the data format is static, another tensor information should be described in caps.
\begin{DoxyItemize}
\item num\+\_\+tensors\+: The number of tensors in a Gst\+Buffer.
\item types\+: The list of data type in the tensor. type should be one of types in G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+T\+Y\+P\+E\+\_\+\+A\+LL. (types=(string)\char`\"{}type1,type2,type3\char`\"{})
\item dimensions\+: The list of dimension in the tensor. dimension should be a formatted string with rank N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT. (dimensions=(string)\char`\"{}dim1\+:dim2\+:dim3\+:dim4,dim1\+:dim2\+:dim3\+:dim4\char`\"{}) 
\end{DoxyItemize}

Definition at line 97 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a884f2cfc99396732e99675d186270477}\label{tensor__typedef_8h_a884f2cfc99396732e99675d186270477}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!GST\_TENSORS\_CAP\_WITH\_NUM@{GST\_TENSORS\_CAP\_WITH\_NUM}}
\index{GST\_TENSORS\_CAP\_WITH\_NUM@{GST\_TENSORS\_CAP\_WITH\_NUM}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSORS\_CAP\_WITH\_NUM}{GST\_TENSORS\_CAP\_WITH\_NUM}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+W\+I\+T\+H\+\_\+\+N\+UM(\begin{DoxyParamCaption}\item[{}]{num }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{    \mbox{\hyperlink{tensor__typedef_8h_af12bfdfd89abd36c0437cfc02bf90b75}{NNS\_MIMETYPE\_TENSORS}} \textcolor{stringliteral}{", "} \(\backslash\)}
\DoxyCodeLine{    \textcolor{stringliteral}{"format = (string) static, num\_tensors = "} num \textcolor{stringliteral}{", "} \(\backslash\)}
\DoxyCodeLine{    \textcolor{stringliteral}{"framerate = "} \mbox{\hyperlink{tensor__typedef_8h_a57709f3b1abfa1209cd3099213521c16}{GST\_TENSOR\_RATE\_RANGE}}}

\end{DoxyCode}


Caps string for the caps template (other/tensors, static tensor stream with fixed number of tensors). num should be a string format that describes the number of tensors, or the range of incoming tensors. The types and dimensions of tensors should be described for caps negotiation. 



Definition at line 107 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a71856faf2269f48f212cac74c553ed94}\label{tensor__typedef_8h_a71856faf2269f48f212cac74c553ed94}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!GST\_TENSORS\_FLEX\_CAP\_DEFAULT@{GST\_TENSORS\_FLEX\_CAP\_DEFAULT}}
\index{GST\_TENSORS\_FLEX\_CAP\_DEFAULT@{GST\_TENSORS\_FLEX\_CAP\_DEFAULT}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSORS\_FLEX\_CAP\_DEFAULT}{GST\_TENSORS\_FLEX\_CAP\_DEFAULT}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+F\+L\+E\+X\+\_\+\+C\+A\+P\+\_\+\+D\+E\+F\+A\+U\+LT~\mbox{\hyperlink{tensor__typedef_8h_a23fa98afadf9e35f428d8d56b739b233}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+M\+A\+KE}} (\char`\"{}flexible\char`\"{})}



Caps string for the caps template of flexible tensors. This mimetype handles non-\/static, flexible tensor stream without specifying the data type and shape of the tensor. The maximum number of tensors in a buffer is 16 (N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+L\+I\+M\+IT). 



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

\mbox{\Hypertarget{tensor__typedef_8h_a21a07d818b9fe6dbee3cccdde72cc2e1}\label{tensor__typedef_8h_a21a07d818b9fe6dbee3cccdde72cc2e1}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!GST\_TENSORS\_SPARSE\_CAP\_DEFAULT@{GST\_TENSORS\_SPARSE\_CAP\_DEFAULT}}
\index{GST\_TENSORS\_SPARSE\_CAP\_DEFAULT@{GST\_TENSORS\_SPARSE\_CAP\_DEFAULT}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{GST\_TENSORS\_SPARSE\_CAP\_DEFAULT}{GST\_TENSORS\_SPARSE\_CAP\_DEFAULT}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+S\+P\+A\+R\+S\+E\+\_\+\+C\+A\+P\+\_\+\+D\+E\+F\+A\+U\+LT~\mbox{\hyperlink{tensor__typedef_8h_a23fa98afadf9e35f428d8d56b739b233}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+M\+A\+KE}} (\char`\"{}sparse\char`\"{})}



Caps string for the caps template of sparse tensors. This mimetype handles non-\/static, sparse tensor stream without specifying the data type and shape of the tensor. The maximum number of tensors in a buffer is 16 (N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+L\+I\+M\+IT). 



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

\mbox{\Hypertarget{tensor__typedef_8h_a29c8d0755ca4fa891628cb595c2d7fa0}\label{tensor__typedef_8h_a29c8d0755ca4fa891628cb595c2d7fa0}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!NNS\_MIMETYPE\_TENSOR@{NNS\_MIMETYPE\_TENSOR}}
\index{NNS\_MIMETYPE\_TENSOR@{NNS\_MIMETYPE\_TENSOR}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{NNS\_MIMETYPE\_TENSOR}{NNS\_MIMETYPE\_TENSOR}}
{\footnotesize\ttfamily \#define N\+N\+S\+\_\+\+M\+I\+M\+E\+T\+Y\+P\+E\+\_\+\+T\+E\+N\+S\+OR~\char`\"{}other/tensor\char`\"{}}



Definition at line 59 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_af12bfdfd89abd36c0437cfc02bf90b75}\label{tensor__typedef_8h_af12bfdfd89abd36c0437cfc02bf90b75}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!NNS\_MIMETYPE\_TENSORS@{NNS\_MIMETYPE\_TENSORS}}
\index{NNS\_MIMETYPE\_TENSORS@{NNS\_MIMETYPE\_TENSORS}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{NNS\_MIMETYPE\_TENSORS}{NNS\_MIMETYPE\_TENSORS}}
{\footnotesize\ttfamily \#define N\+N\+S\+\_\+\+M\+I\+M\+E\+T\+Y\+P\+E\+\_\+\+T\+E\+N\+S\+O\+RS~\char`\"{}other/tensors\char`\"{}}



Definition at line 60 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a9f1642d1672c4a1a25ad47982ffeb9a6}\label{tensor__typedef_8h_a9f1642d1672c4a1a25ad47982ffeb9a6}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!NNS\_TENSOR\_MEMORY\_MAX@{NNS\_TENSOR\_MEMORY\_MAX}}
\index{NNS\_TENSOR\_MEMORY\_MAX@{NNS\_TENSOR\_MEMORY\_MAX}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{NNS\_TENSOR\_MEMORY\_MAX}{NNS\_TENSOR\_MEMORY\_MAX}}
{\footnotesize\ttfamily \#define N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+M\+E\+M\+O\+R\+Y\+\_\+\+M\+AX~(16)}



This value, 16, can be checked with gst\+\_\+buffer\+\_\+get\+\_\+max\+\_\+memory(), which is G\+S\+T\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+M\+E\+M\+\_\+\+M\+AX in gstreamer/gstbuffer.\+c. We redefined the value because G\+S\+T\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+M\+E\+M\+\_\+\+M\+AX is not exported and we need static value. To modify (increase) this value, you need to update gstreamer/gstbuffer.\+c as well. 



Definition at line 52 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_ae9bf0825943088d62072409b2e752ae8}\label{tensor__typedef_8h_ae9bf0825943088d62072409b2e752ae8}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!NNS\_TENSOR\_RANK\_LIMIT@{NNS\_TENSOR\_RANK\_LIMIT}}
\index{NNS\_TENSOR\_RANK\_LIMIT@{NNS\_TENSOR\_RANK\_LIMIT}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{NNS\_TENSOR\_RANK\_LIMIT}{NNS\_TENSOR\_RANK\_LIMIT}}
{\footnotesize\ttfamily \#define N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT~(16)}



Definition at line 34 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a2e67d2ded4df1ae3386f2ab5db8ebe20}\label{tensor__typedef_8h_a2e67d2ded4df1ae3386f2ab5db8ebe20}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!NNS\_TENSOR\_SIZE\_EXTRA\_LIMIT@{NNS\_TENSOR\_SIZE\_EXTRA\_LIMIT}}
\index{NNS\_TENSOR\_SIZE\_EXTRA\_LIMIT@{NNS\_TENSOR\_SIZE\_EXTRA\_LIMIT}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{NNS\_TENSOR\_SIZE\_EXTRA\_LIMIT}{NNS\_TENSOR\_SIZE\_EXTRA\_LIMIT}}
{\footnotesize\ttfamily \#define N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+E\+X\+T\+R\+A\+\_\+\+L\+I\+M\+IT~(\mbox{\hyperlink{tensor__typedef_8h_a5da7b8fff3cc3b384068991a8219671b}{N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+L\+I\+M\+IT}} -\/ \mbox{\hyperlink{tensor__typedef_8h_a9f1642d1672c4a1a25ad47982ffeb9a6}{N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+M\+E\+M\+O\+R\+Y\+\_\+\+M\+AX}})}



Max number of extra tensors. 



Definition at line 57 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a5da7b8fff3cc3b384068991a8219671b}\label{tensor__typedef_8h_a5da7b8fff3cc3b384068991a8219671b}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!NNS\_TENSOR\_SIZE\_LIMIT@{NNS\_TENSOR\_SIZE\_LIMIT}}
\index{NNS\_TENSOR\_SIZE\_LIMIT@{NNS\_TENSOR\_SIZE\_LIMIT}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{NNS\_TENSOR\_SIZE\_LIMIT}{NNS\_TENSOR\_SIZE\_LIMIT}}
{\footnotesize\ttfamily \#define N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+L\+I\+M\+IT~(256)}



The number of tensors N\+N\+Streamer supports is 256. The max memories of gst-\/buffer is 16 (See N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+M\+E\+M\+O\+R\+Y\+\_\+\+M\+AX). Internally N\+N\+Streamer handles the memories as tensors. If the number of tensors is larger than 16, we modify the last memory and combine tensors into the memory. 



Definition at line 42 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a645ccec9c701bfdeb4c4fe3fcde5e121}\label{tensor__typedef_8h_a645ccec9c701bfdeb4c4fe3fcde5e121}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!NNS\_TENSOR\_SIZE\_LIMIT\_STR@{NNS\_TENSOR\_SIZE\_LIMIT\_STR}}
\index{NNS\_TENSOR\_SIZE\_LIMIT\_STR@{NNS\_TENSOR\_SIZE\_LIMIT\_STR}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{NNS\_TENSOR\_SIZE\_LIMIT\_STR}{NNS\_TENSOR\_SIZE\_LIMIT\_STR}}
{\footnotesize\ttfamily \#define N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+S\+I\+Z\+E\+\_\+\+L\+I\+M\+I\+T\+\_\+\+S\+TR~\char`\"{}256\char`\"{}}



Definition at line 43 of file tensor\+\_\+typedef.\+h.



\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{tensor__typedef_8h_a179b411a3defbc62047b1f892ff41f82}\label{tensor__typedef_8h_a179b411a3defbc62047b1f892ff41f82}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!media\_type@{media\_type}}
\index{media\_type@{media\_type}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{media\_type}{media\_type}}
{\footnotesize\ttfamily typedef enum \mbox{\hyperlink{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0ac}{\+\_\+nns\+\_\+media\+\_\+type}} \mbox{\hyperlink{tensor__typedef_8h_a179b411a3defbc62047b1f892ff41f82}{media\+\_\+type}}}



Float16 compiler extension support. 

Possible input stream types for other/tensor.

This is related with media input stream to other/tensor. There is no restrictions for the outputs.

In order to prevent enum-\/mix issues between device profiles, we explicitly define numbers for each enum type. \mbox{\Hypertarget{tensor__typedef_8h_ae58ce2b6d47c4a2e9c5f3f621c6a5b9a}\label{tensor__typedef_8h_ae58ce2b6d47c4a2e9c5f3f621c6a5b9a}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!tensor\_dim@{tensor\_dim}}
\index{tensor\_dim@{tensor\_dim}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{tensor\_dim}{tensor\_dim}}
{\footnotesize\ttfamily typedef uint32\+\_\+t tensor\+\_\+dim\mbox{[}\mbox{\hyperlink{tensor__typedef_8h_ae9bf0825943088d62072409b2e752ae8}{N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+R\+A\+N\+K\+\_\+\+L\+I\+M\+IT}}\mbox{]}}



Definition at line 247 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a8f63561cff18618282cb7e0dd1f8ac96}\label{tensor__typedef_8h_a8f63561cff18618282cb7e0dd1f8ac96}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!tensor\_format@{tensor\_format}}
\index{tensor\_format@{tensor\_format}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{tensor\_format}{tensor\_format}}
{\footnotesize\ttfamily typedef enum \mbox{\hyperlink{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069d}{\+\_\+tensor\+\_\+format}} \mbox{\hyperlink{tensor__typedef_8h_a8f63561cff18618282cb7e0dd1f8ac96}{tensor\+\_\+format}}}



Data format of tensor stream in the pipeline. 

\mbox{\Hypertarget{tensor__typedef_8h_abaf80ca39942c6a0b8ab019fb97c0716}\label{tensor__typedef_8h_abaf80ca39942c6a0b8ab019fb97c0716}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!tensor\_layout@{tensor\_layout}}
\index{tensor\_layout@{tensor\_layout}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{tensor\_layout}{tensor\_layout}}
{\footnotesize\ttfamily typedef enum \mbox{\hyperlink{tensor__typedef_8h_a603b63673330f127f249771e0113eab9}{\+\_\+nns\+\_\+tensor\+\_\+layout}} \mbox{\hyperlink{tensor__typedef_8h_abaf80ca39942c6a0b8ab019fb97c0716}{tensor\+\_\+layout}}}



Tensor layout format for other/tensor. 

The layout is needed by some of the element to appropriately process the data based on the axis of the channel in the data. Layout information will be currently utilized by only some of the elements (S\+N\+AP, N\+N\+FW in tensor\+\_\+filter, P\+A\+D\+D\+I\+NG mode in tensor\+\_\+transform)

Tensor layout is not part of the capabilities of the element, and does not take part in the caps negotiation.

N\+O\+NE layout implies that the layout of the data is neither N\+H\+WC nor N\+C\+HW. \textquotesingle{} However, A\+NY layout implies that the layout of the provided data is not relevant.

\begin{DoxyNote}{Note}
Providing tensor layout can also decide acceleration to be supported as not all the accelerators might support all the layouts (N\+YI). 
\end{DoxyNote}
\mbox{\Hypertarget{tensor__typedef_8h_ab5f7feb87196d0b9ae37b11fd819f23e}\label{tensor__typedef_8h_ab5f7feb87196d0b9ae37b11fd819f23e}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!tensor\_type@{tensor\_type}}
\index{tensor\_type@{tensor\_type}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{tensor\_type}{tensor\_type}}
{\footnotesize\ttfamily typedef enum \mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0ea}{\+\_\+nns\+\_\+tensor\+\_\+type}} \mbox{\hyperlink{tensor__typedef_8h_ab5f7feb87196d0b9ae37b11fd819f23e}{tensor\+\_\+type}}}



Possible data element types of other/tensor. 

\begin{DoxyNote}{Note}
When changing tensor type, you should update related type in M\+L-\/\+A\+PI and protobuf/flatbuf schema also. 
\end{DoxyNote}


\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0ac}\label{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0ac}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!\_nns\_media\_type@{\_nns\_media\_type}}
\index{\_nns\_media\_type@{\_nns\_media\_type}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{\_nns\_media\_type}{\_nns\_media\_type}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0ac}{\+\_\+nns\+\_\+media\+\_\+type}}}



Float16 compiler extension support. 

Possible input stream types for other/tensor.

This is related with media input stream to other/tensor. There is no restrictions for the outputs.

In order to prevent enum-\/mix issues between device profiles, we explicitly define numbers for each enum type. \begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_MEDIA\_INVALID@{\_NNS\_MEDIA\_INVALID}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_MEDIA\_INVALID@{\_NNS\_MEDIA\_INVALID}}}\mbox{\Hypertarget{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0acab4978ebd20b6b4aee0e509fc0d3a8099}\label{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0acab4978ebd20b6b4aee0e509fc0d3a8099}} 
\+\_\+\+N\+N\+S\+\_\+\+M\+E\+D\+I\+A\+\_\+\+I\+N\+V\+A\+L\+ID&Uninitialized \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_VIDEO@{\_NNS\_VIDEO}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_VIDEO@{\_NNS\_VIDEO}}}\mbox{\Hypertarget{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0aca4b641a52f24818ae047a09da3847fe3e}\label{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0aca4b641a52f24818ae047a09da3847fe3e}} 
\+\_\+\+N\+N\+S\+\_\+\+V\+I\+D\+EO&supposedly video/x-\/raw \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_AUDIO@{\_NNS\_AUDIO}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_AUDIO@{\_NNS\_AUDIO}}}\mbox{\Hypertarget{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0acae105ccda334522689ea4dd4b194bb211}\label{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0acae105ccda334522689ea4dd4b194bb211}} 
\+\_\+\+N\+N\+S\+\_\+\+A\+U\+D\+IO&supposedly audio/x-\/raw \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_TEXT@{\_NNS\_TEXT}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_TEXT@{\_NNS\_TEXT}}}\mbox{\Hypertarget{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0aca7389ebe8ffb7c7ad6b24275813d16cb9}\label{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0aca7389ebe8ffb7c7ad6b24275813d16cb9}} 
\+\_\+\+N\+N\+S\+\_\+\+T\+E\+XT&supposedly text/x-\/raw \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_OCTET@{\_NNS\_OCTET}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_OCTET@{\_NNS\_OCTET}}}\mbox{\Hypertarget{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0acae468cba6133fe77ea7170c40a5c089d9}\label{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0acae468cba6133fe77ea7170c40a5c089d9}} 
\+\_\+\+N\+N\+S\+\_\+\+O\+C\+T\+ET&supposedly application/octet-\/stream \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_TENSOR@{\_NNS\_TENSOR}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_TENSOR@{\_NNS\_TENSOR}}}\mbox{\Hypertarget{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0aca118c46b49e19e420d387ef6ded86ae42}\label{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0aca118c46b49e19e420d387ef6ded86ae42}} 
\+\_\+\+N\+N\+S\+\_\+\+T\+E\+N\+S\+OR&supposedly other/tensor(s) or flexible tensor \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_MEDIA\_ANY@{\_NNS\_MEDIA\_ANY}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_MEDIA\_ANY@{\_NNS\_MEDIA\_ANY}}}\mbox{\Hypertarget{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0aca0177bb1dffa05ac806bb364815298746}\label{tensor__typedef_8h_ab37b544a67b5ea7d2b85afd398d4d0aca0177bb1dffa05ac806bb364815298746}} 
\+\_\+\+N\+N\+S\+\_\+\+M\+E\+D\+I\+A\+\_\+\+A\+NY&any media type (find proper external converter in tensor-\/converter element) \\
\hline

\end{DoxyEnumFields}


Definition at line 179 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a603b63673330f127f249771e0113eab9}\label{tensor__typedef_8h_a603b63673330f127f249771e0113eab9}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!\_nns\_tensor\_layout@{\_nns\_tensor\_layout}}
\index{\_nns\_tensor\_layout@{\_nns\_tensor\_layout}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{\_nns\_tensor\_layout}{\_nns\_tensor\_layout}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{tensor__typedef_8h_a603b63673330f127f249771e0113eab9}{\+\_\+nns\+\_\+tensor\+\_\+layout}}}



Tensor layout format for other/tensor. 

The layout is needed by some of the element to appropriately process the data based on the axis of the channel in the data. Layout information will be currently utilized by only some of the elements (S\+N\+AP, N\+N\+FW in tensor\+\_\+filter, P\+A\+D\+D\+I\+NG mode in tensor\+\_\+transform)

Tensor layout is not part of the capabilities of the element, and does not take part in the caps negotiation.

N\+O\+NE layout implies that the layout of the data is neither N\+H\+WC nor N\+C\+HW. \textquotesingle{} However, A\+NY layout implies that the layout of the provided data is not relevant.

\begin{DoxyNote}{Note}
Providing tensor layout can also decide acceleration to be supported as not all the accelerators might support all the layouts (N\+YI). 
\end{DoxyNote}
\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_LAYOUT\_ANY@{\_NNS\_LAYOUT\_ANY}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_LAYOUT\_ANY@{\_NNS\_LAYOUT\_ANY}}}\mbox{\Hypertarget{tensor__typedef_8h_a603b63673330f127f249771e0113eab9a3e614101d16c01ed72aea3e1ff245ac6}\label{tensor__typedef_8h_a603b63673330f127f249771e0113eab9a3e614101d16c01ed72aea3e1ff245ac6}} 
\+\_\+\+N\+N\+S\+\_\+\+L\+A\+Y\+O\+U\+T\+\_\+\+A\+NY&does not care about the data layout \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_LAYOUT\_NHWC@{\_NNS\_LAYOUT\_NHWC}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_LAYOUT\_NHWC@{\_NNS\_LAYOUT\_NHWC}}}\mbox{\Hypertarget{tensor__typedef_8h_a603b63673330f127f249771e0113eab9a9f0aa71bccb0f3835d195466c59a5ff8}\label{tensor__typedef_8h_a603b63673330f127f249771e0113eab9a9f0aa71bccb0f3835d195466c59a5ff8}} 
\+\_\+\+N\+N\+S\+\_\+\+L\+A\+Y\+O\+U\+T\+\_\+\+N\+H\+WC&N\+H\+WC\+: channel last layout \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_LAYOUT\_NCHW@{\_NNS\_LAYOUT\_NCHW}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_LAYOUT\_NCHW@{\_NNS\_LAYOUT\_NCHW}}}\mbox{\Hypertarget{tensor__typedef_8h_a603b63673330f127f249771e0113eab9ab46ee196d12fe4bed7fcb2e91a11b9a3}\label{tensor__typedef_8h_a603b63673330f127f249771e0113eab9ab46ee196d12fe4bed7fcb2e91a11b9a3}} 
\+\_\+\+N\+N\+S\+\_\+\+L\+A\+Y\+O\+U\+T\+\_\+\+N\+C\+HW&N\+C\+HW\+: channel first layout \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_LAYOUT\_NONE@{\_NNS\_LAYOUT\_NONE}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_LAYOUT\_NONE@{\_NNS\_LAYOUT\_NONE}}}\mbox{\Hypertarget{tensor__typedef_8h_a603b63673330f127f249771e0113eab9a70029258952182f74cef3f1e573afcbf}\label{tensor__typedef_8h_a603b63673330f127f249771e0113eab9a70029258952182f74cef3f1e573afcbf}} 
\+\_\+\+N\+N\+S\+\_\+\+L\+A\+Y\+O\+U\+T\+\_\+\+N\+O\+NE&N\+O\+NE\+: none of the above defined layouts \\
\hline

\end{DoxyEnumFields}


Definition at line 220 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0ea}\label{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0ea}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!\_nns\_tensor\_type@{\_nns\_tensor\_type}}
\index{\_nns\_tensor\_type@{\_nns\_tensor\_type}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{\_nns\_tensor\_type}{\_nns\_tensor\_type}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0ea}{\+\_\+nns\+\_\+tensor\+\_\+type}}}



Possible data element types of other/tensor. 

\begin{DoxyNote}{Note}
When changing tensor type, you should update related type in M\+L-\/\+A\+PI and protobuf/flatbuf schema also. 
\end{DoxyNote}
\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_INT32@{\_NNS\_INT32}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_INT32@{\_NNS\_INT32}}}\mbox{\Hypertarget{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa049f2d9061ce255f95765dc03e37983d}\label{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa049f2d9061ce255f95765dc03e37983d}} 
\+\_\+\+N\+N\+S\+\_\+\+I\+N\+T32&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_UINT32@{\_NNS\_UINT32}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_UINT32@{\_NNS\_UINT32}}}\mbox{\Hypertarget{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaaf63d9ea8926a1befebc780fdfcc21eb9}\label{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaaf63d9ea8926a1befebc780fdfcc21eb9}} 
\+\_\+\+N\+N\+S\+\_\+\+U\+I\+N\+T32&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_INT16@{\_NNS\_INT16}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_INT16@{\_NNS\_INT16}}}\mbox{\Hypertarget{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaacbeb809f942df58e669c3a2f3d986a9f}\label{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaacbeb809f942df58e669c3a2f3d986a9f}} 
\+\_\+\+N\+N\+S\+\_\+\+I\+N\+T16&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_UINT16@{\_NNS\_UINT16}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_UINT16@{\_NNS\_UINT16}}}\mbox{\Hypertarget{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa43de6043203de583de60208e49183401}\label{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa43de6043203de583de60208e49183401}} 
\+\_\+\+N\+N\+S\+\_\+\+U\+I\+N\+T16&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_INT8@{\_NNS\_INT8}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_INT8@{\_NNS\_INT8}}}\mbox{\Hypertarget{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa5380abf91df5c82187018ac4d24279e2}\label{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa5380abf91df5c82187018ac4d24279e2}} 
\+\_\+\+N\+N\+S\+\_\+\+I\+N\+T8&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_UINT8@{\_NNS\_UINT8}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_UINT8@{\_NNS\_UINT8}}}\mbox{\Hypertarget{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaab5a59c21ae9c9ec4b02b363c0e176939}\label{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaab5a59c21ae9c9ec4b02b363c0e176939}} 
\+\_\+\+N\+N\+S\+\_\+\+U\+I\+N\+T8&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_FLOAT64@{\_NNS\_FLOAT64}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_FLOAT64@{\_NNS\_FLOAT64}}}\mbox{\Hypertarget{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa34b59a484c1243f2d9526a158e5417c2}\label{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa34b59a484c1243f2d9526a158e5417c2}} 
\+\_\+\+N\+N\+S\+\_\+\+F\+L\+O\+A\+T64&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_FLOAT32@{\_NNS\_FLOAT32}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_FLOAT32@{\_NNS\_FLOAT32}}}\mbox{\Hypertarget{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaab5c2db8009a13383684358501ff4cc48}\label{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaab5c2db8009a13383684358501ff4cc48}} 
\+\_\+\+N\+N\+S\+\_\+\+F\+L\+O\+A\+T32&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_INT64@{\_NNS\_INT64}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_INT64@{\_NNS\_INT64}}}\mbox{\Hypertarget{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa93b0749871b9b80e3af17e74dcef9452}\label{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa93b0749871b9b80e3af17e74dcef9452}} 
\+\_\+\+N\+N\+S\+\_\+\+I\+N\+T64&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_UINT64@{\_NNS\_UINT64}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_UINT64@{\_NNS\_UINT64}}}\mbox{\Hypertarget{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa7045bb742c618911841b17112fdd2d0b}\label{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaa7045bb742c618911841b17112fdd2d0b}} 
\+\_\+\+N\+N\+S\+\_\+\+U\+I\+N\+T64&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_FLOAT16@{\_NNS\_FLOAT16}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_FLOAT16@{\_NNS\_FLOAT16}}}\mbox{\Hypertarget{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaafc37d7435087f9661f8aaf75049e5cc4}\label{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaafc37d7435087f9661f8aaf75049e5cc4}} 
\+\_\+\+N\+N\+S\+\_\+\+F\+L\+O\+A\+T16&added with nnstreamer 2.\+1.\+1-\/devel. If you add any operators (e.\+g., tensor\+\_\+transform) to float16, it will either be not supported or be too inefficient. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_END@{\_NNS\_END}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_END@{\_NNS\_END}}}\mbox{\Hypertarget{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaafac3f06dff584665bba7b42b96a449bc}\label{tensor__typedef_8h_a85f1ee57f40a96f8684f79bac501b0eaafac3f06dff584665bba7b42b96a449bc}} 
\+\_\+\+N\+N\+S\+\_\+\+E\+ND&\\
\hline

\end{DoxyEnumFields}


Definition at line 138 of file tensor\+\_\+typedef.\+h.

\mbox{\Hypertarget{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069d}\label{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069d}} 
\index{tensor\_typedef.h@{tensor\_typedef.h}!\_tensor\_format@{\_tensor\_format}}
\index{\_tensor\_format@{\_tensor\_format}!tensor\_typedef.h@{tensor\_typedef.h}}
\doxysubsubsection{\texorpdfstring{\_tensor\_format}{\_tensor\_format}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069d}{\+\_\+tensor\+\_\+format}}}



Data format of tensor stream in the pipeline. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_TENSOR\_FORMAT\_STATIC@{\_NNS\_TENSOR\_FORMAT\_STATIC}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_TENSOR\_FORMAT\_STATIC@{\_NNS\_TENSOR\_FORMAT\_STATIC}}}\mbox{\Hypertarget{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069dac9eeffede00be698970f239ce5e50f9b}\label{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069dac9eeffede00be698970f239ce5e50f9b}} 
\+\_\+\+N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+T\+A\+T\+IC&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_TENSOR\_FORMAT\_FLEXIBLE@{\_NNS\_TENSOR\_FORMAT\_FLEXIBLE}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_TENSOR\_FORMAT\_FLEXIBLE@{\_NNS\_TENSOR\_FORMAT\_FLEXIBLE}}}\mbox{\Hypertarget{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069da07955daf3ae0f568c9c12f790433401c}\label{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069da07955daf3ae0f568c9c12f790433401c}} 
\+\_\+\+N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+F\+L\+E\+X\+I\+B\+LE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_TENSOR\_FORMAT\_SPARSE@{\_NNS\_TENSOR\_FORMAT\_SPARSE}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_TENSOR\_FORMAT\_SPARSE@{\_NNS\_TENSOR\_FORMAT\_SPARSE}}}\mbox{\Hypertarget{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069da93a6f646deed65a694aab40aa691a6cd}\label{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069da93a6f646deed65a694aab40aa691a6cd}} 
\+\_\+\+N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+S\+P\+A\+R\+SE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NNS\_TENSOR\_FORMAT\_END@{\_NNS\_TENSOR\_FORMAT\_END}!tensor\_typedef.h@{tensor\_typedef.h}}\index{tensor\_typedef.h@{tensor\_typedef.h}!\_NNS\_TENSOR\_FORMAT\_END@{\_NNS\_TENSOR\_FORMAT\_END}}}\mbox{\Hypertarget{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069da46b6705239a212f3a5546004d56626e2}\label{tensor__typedef_8h_a02f9f1ada3a6026b2e9bcf15eaa4069da46b6705239a212f3a5546004d56626e2}} 
\+\_\+\+N\+N\+S\+\_\+\+T\+E\+N\+S\+O\+R\+\_\+\+F\+O\+R\+M\+A\+T\+\_\+\+E\+ND&\\
\hline

\end{DoxyEnumFields}


Definition at line 193 of file tensor\+\_\+typedef.\+h.

