\hypertarget{gsttensor__trainer_8c}{}\doxysection{nnstreamer/elements/gsttensor\+\_\+trainer.c File Reference}
\label{gsttensor__trainer_8c}\index{nnstreamer/elements/gsttensor\_trainer.c@{nnstreamer/elements/gsttensor\_trainer.c}}


G\+Streamer plugin to train tensor data using NN Frameworks.  


{\ttfamily \#include $<$stdlib.\+h$>$}\newline
{\ttfamily \#include $<$nnstreamer\+\_\+subplugin.\+h$>$}\newline
{\ttfamily \#include $<$nnstreamer\+\_\+util.\+h$>$}\newline
{\ttfamily \#include \char`\"{}gsttensor\+\_\+trainer.\+h\char`\"{}}\newline
{\ttfamily \#include $<$unistd.\+h$>$}\newline
{\ttfamily \#include $<$math.\+h$>$}\newline
Include dependency graph for gsttensor\+\_\+trainer.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{gsttensor__trainer_8c_a556efd87f8a6ff0adcffa2546f3b81ef}{S\+I\+N\+K\+\_\+\+C\+A\+P\+S\+\_\+\+S\+T\+R\+I\+NG}}~\mbox{\hyperlink{tensor__typedef_8h_a23fa98afadf9e35f428d8d56b739b233}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+M\+A\+KE}} (\char`\"{}\{ static, flexible \}\char`\"{})
\begin{DoxyCompactList}\small\item\em Default caps string for sink. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__trainer_8c_adbe2e622143fef629af7af48208b0fbd}{S\+R\+C\+\_\+\+C\+A\+P\+S\+\_\+\+S\+T\+R\+I\+NG}}~\mbox{\hyperlink{tensor__typedef_8h_a23fa98afadf9e35f428d8d56b739b233}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+M\+A\+KE}} (\char`\"{}\{ static\}\char`\"{})
\begin{DoxyCompactList}\small\item\em Default caps string for src. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__trainer_8c_adef911caed7c65a1643062817f4a59d7}{G\+S\+T\+\_\+\+C\+A\+T\+\_\+\+D\+E\+F\+A\+U\+LT}}~gst\+\_\+tensor\+\_\+trainer\+\_\+debug
\item 
\#define \mbox{\hyperlink{gsttensor__trainer_8c_a7d03af5de98b620516d3c35f23c2266f}{gst\+\_\+tensor\+\_\+trainer\+\_\+parent\+\_\+class}}~parent\+\_\+class
\item 
\#define \mbox{\hyperlink{gsttensor__trainer_8c_a2b61e09e15307c6006d54be8334ad967}{M\+O\+D\+E\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+S\+I\+ZE}}~4
\item 
\#define \mbox{\hyperlink{gsttensor__trainer_8c_a6b55894dbf786f9a30d1b2b358918ae6}{D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+I\+N\+P\+U\+T\+\_\+\+L\+I\+ST}}~1
\begin{DoxyCompactList}\small\item\em Default framework property value. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{gsttensor__trainer_8c_af2fa76c277b3bd1c7bfc7d0d26ffc747}{D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+L\+A\+B\+E\+L\+\_\+\+L\+I\+ST}}~1
\item 
\#define \mbox{\hyperlink{gsttensor__trainer_8c_a51788ff5cbc5f335d88721028a562ac8}{D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+T\+R\+A\+I\+N\+\_\+\+S\+A\+M\+P\+L\+ES}}~0
\item 
\#define \mbox{\hyperlink{gsttensor__trainer_8c_a7cb6ea4b125f27a285ea0f3e3509dd5c}{D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+V\+A\+L\+I\+D\+\_\+\+S\+A\+M\+P\+L\+ES}}~0
\item 
\#define \mbox{\hyperlink{gsttensor__trainer_8c_a42404ab95591c8ff9a5615b668361707}{D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+E\+P\+O\+C\+HS}}~1
\item 
\#define \mbox{\hyperlink{gsttensor__trainer_8c_af019e9d8558da5f75fe16c0178001190}{D\+E\+F\+A\+U\+L\+T\+\_\+\+S\+T\+R\+\_\+\+P\+R\+O\+P\+\_\+\+V\+A\+L\+UE}}~\char`\"{}\char`\"{}
\begin{DoxyCompactList}\small\item\em Default string property value. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \{ \mbox{\hyperlink{gsttensor__trainer_8c_a4caf8d8f829279fba122163d961608a4a58b986df1bade4a778ddb7aa1a9aceba}{T\+R\+A\+I\+N\+I\+N\+G\+\_\+\+L\+O\+SS}}, 
\mbox{\hyperlink{gsttensor__trainer_8c_a4caf8d8f829279fba122163d961608a4a9f6089b7a058e8dbc4c8d476e2cbe779}{T\+R\+A\+I\+N\+I\+N\+G\+\_\+\+A\+C\+C\+U\+R\+A\+CY}}, 
\mbox{\hyperlink{gsttensor__trainer_8c_a4caf8d8f829279fba122163d961608a4a81b4d03d3ad8140df4608782007ebc65}{V\+A\+L\+I\+D\+A\+T\+I\+O\+N\+\_\+\+L\+O\+SS}}, 
\mbox{\hyperlink{gsttensor__trainer_8c_a4caf8d8f829279fba122163d961608a4a6f831be4dc979896464eba521be2016c}{V\+A\+L\+I\+D\+A\+T\+I\+O\+N\+\_\+\+A\+C\+C\+U\+R\+A\+CY}}
 \}
\begin{DoxyCompactList}\small\item\em Statistical from the model being trained An enum value indicates the value stored at the index of the output tensor. \end{DoxyCompactList}\item 
enum \{ \newline
\mbox{\hyperlink{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556eac37dda0da1a44e10c0504afeeb863f3c}{P\+R\+O\+P\+\_\+0}}, 
\mbox{\hyperlink{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556eaeb1da7c6b5ed5ea3e40ec8c5036d8917}{P\+R\+O\+P\+\_\+\+F\+R\+A\+M\+E\+W\+O\+RK}}, 
\mbox{\hyperlink{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556ea3029ce62025e876bef2d0e2e944a9657}{P\+R\+O\+P\+\_\+\+M\+O\+D\+E\+L\+\_\+\+C\+O\+N\+F\+IG}}, 
\mbox{\hyperlink{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556ea8b0393b10972a8453dac84dc8264b838}{P\+R\+O\+P\+\_\+\+M\+O\+D\+E\+L\+\_\+\+S\+A\+V\+E\+\_\+\+P\+A\+TH}}, 
\newline
\mbox{\hyperlink{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556eaba2568753e77fa1f5f964ce731ffa1d5}{P\+R\+O\+P\+\_\+\+M\+O\+D\+E\+L\+\_\+\+L\+O\+A\+D\+\_\+\+P\+A\+TH}}, 
\mbox{\hyperlink{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556ea782ae922ab9490c64e276a74f6bc5ad5}{P\+R\+O\+P\+\_\+\+N\+U\+M\+\_\+\+I\+N\+P\+U\+TS}}, 
\mbox{\hyperlink{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556eab12f8af793d5aa15c97e4f6ae20068e2}{P\+R\+O\+P\+\_\+\+N\+U\+M\+\_\+\+L\+A\+B\+E\+LS}}, 
\mbox{\hyperlink{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556ea86607372adf1d715b4311ba6dcd5718e}{P\+R\+O\+P\+\_\+\+N\+U\+M\+\_\+\+T\+R\+A\+I\+N\+I\+N\+G\+\_\+\+S\+A\+M\+P\+L\+ES}}, 
\newline
\mbox{\hyperlink{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556eabd91d6a9adc1b5bdab34831e3f0abe24}{P\+R\+O\+P\+\_\+\+N\+U\+M\+\_\+\+V\+A\+L\+I\+D\+A\+T\+I\+O\+N\+\_\+\+S\+A\+M\+P\+L\+ES}}, 
\mbox{\hyperlink{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556ea0abe31fefb6d19c980cfe2ed715da934}{P\+R\+O\+P\+\_\+\+E\+P\+O\+C\+HS}}
 \}
\begin{DoxyCompactList}\small\item\em tensor\+\_\+trainer properties \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{gsttensor__trainer_8c_a29337a75639fccc6d62c5d32141dc6cf}{G\+S\+T\+\_\+\+D\+E\+B\+U\+G\+\_\+\+C\+A\+T\+E\+G\+O\+R\+Y\+\_\+\+S\+T\+A\+T\+IC}} (gst\+\_\+tensor\+\_\+trainer\+\_\+debug)
\item 
\mbox{\hyperlink{gsttensor__trainer_8c_a4fa91f3d8cfb90f79e34f25296c4408d}{G\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+T\+Y\+PE}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}}, gst\+\_\+tensor\+\_\+trainer, G\+S\+T\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+L\+E\+M\+E\+NT)
\item 
static void \mbox{\hyperlink{gsttensor__trainer_8c_a5878c16ff572310ab8891d0740b5a8c5}{gst\+\_\+tensor\+\_\+trainer\+\_\+set\+\_\+property}} (G\+Object $\ast$object, guint prop\+\_\+id, const G\+Value $\ast$value, G\+Param\+Spec $\ast$pspec)
\begin{DoxyCompactList}\small\item\em Setter for tensor\+\_\+trainsink properties. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__trainer_8c_aaf29932ee4b9171ec5f392c9d799affa}{gst\+\_\+tensor\+\_\+trainer\+\_\+get\+\_\+property}} (G\+Object $\ast$object, guint prop\+\_\+id, G\+Value $\ast$value, G\+Param\+Spec $\ast$pspec)
\begin{DoxyCompactList}\small\item\em Getter tensor\+\_\+trainsink properties. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__trainer_8c_a123d4d784fe0b443c7fbfe295006be2b}{gst\+\_\+tensor\+\_\+trainer\+\_\+finalize}} (G\+Object $\ast$object)
\begin{DoxyCompactList}\small\item\em Function to finalize instance. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__trainer_8c_a1bc4a96aa4d32d790186419504b6f397}{gst\+\_\+tensor\+\_\+trainer\+\_\+sink\+\_\+event}} (Gst\+Pad $\ast$sinkpad, Gst\+Object $\ast$parent, Gst\+Event $\ast$event)
\begin{DoxyCompactList}\small\item\em Event handler for sink pad of tensor\+\_\+trainer. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__trainer_8c_a9da114b941810cf4d14ce9ce59fcddd0}{gst\+\_\+tensor\+\_\+trainer\+\_\+sink\+\_\+query}} (Gst\+Pad $\ast$sinkpad, Gst\+Object $\ast$parent, Gst\+Query $\ast$query)
\begin{DoxyCompactList}\small\item\em This function handles sink pad query. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__trainer_8c_a9e1b84aa3c8bfdb1ecfdc6467c3c7116}{gst\+\_\+tensor\+\_\+trainer\+\_\+src\+\_\+query}} (Gst\+Pad $\ast$srcpad, Gst\+Object $\ast$parent, Gst\+Query $\ast$query)
\begin{DoxyCompactList}\small\item\em This function handles src pad query. \end{DoxyCompactList}\item 
static Gst\+Flow\+Return \mbox{\hyperlink{gsttensor__trainer_8c_a094a09bcd6ef5f22c388608b815ac540}{gst\+\_\+tensor\+\_\+trainer\+\_\+chain}} (Gst\+Pad $\ast$sinkpad, Gst\+Object $\ast$parent, Gst\+Buffer $\ast$inbuf)
\begin{DoxyCompactList}\small\item\em Chain function, this function does the actual processing. \end{DoxyCompactList}\item 
static Gst\+Caps $\ast$ \mbox{\hyperlink{gsttensor__trainer_8c_af0e80af7a3b5a1c8ade45eb8d44137d2}{gst\+\_\+tensor\+\_\+trainer\+\_\+query\+\_\+caps}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer, Gst\+Pad $\ast$pad, Gst\+Caps $\ast$filter)
\begin{DoxyCompactList}\small\item\em Get pad caps for caps negotiation. \end{DoxyCompactList}\item 
static Gst\+State\+Change\+Return \mbox{\hyperlink{gsttensor__trainer_8c_a753415e9e1a38874d2edb0ef9fef75dd}{gst\+\_\+tensor\+\_\+trainer\+\_\+change\+\_\+state}} (Gst\+Element $\ast$element, Gst\+State\+Change transition)
\begin{DoxyCompactList}\small\item\em Change state of tensor\+\_\+trainsink. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__trainer_8c_aac6133f89d87e7ad838a1c268f6a06db}{gst\+\_\+tensor\+\_\+trainer\+\_\+set\+\_\+prop\+\_\+framework}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer, const G\+Value $\ast$value)
\begin{DoxyCompactList}\small\item\em Handle \char`\"{}\+P\+R\+O\+P\+\_\+\+F\+R\+A\+M\+E\+W\+O\+R\+K\char`\"{} for set-\/property. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__trainer_8c_aa3454e81db4c25a79b6baf38d0b51f46}{gst\+\_\+tensor\+\_\+trainer\+\_\+set\+\_\+prop\+\_\+model\+\_\+config\+\_\+file\+\_\+path}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer, const G\+Value $\ast$value)
\begin{DoxyCompactList}\small\item\em Handle \char`\"{}\+P\+R\+O\+P\+\_\+\+M\+O\+D\+E\+L\+\_\+\+C\+O\+N\+F\+I\+G\char`\"{} for set-\/property. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__trainer_8c_a7f12ebb64a7e3e20cbe2833c3c8eb60c}{gst\+\_\+tensor\+\_\+trainer\+\_\+set\+\_\+model\+\_\+save\+\_\+path}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer, const G\+Value $\ast$value)
\begin{DoxyCompactList}\small\item\em Handle \char`\"{}\+P\+R\+O\+P\+\_\+\+M\+O\+D\+E\+L\+\_\+\+S\+A\+V\+E\+\_\+\+P\+A\+T\+H\char`\"{} for set-\/property. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__trainer_8c_a4b202f0017e2830a6ea0f60d9f979cd1}{gst\+\_\+tensor\+\_\+trainer\+\_\+set\+\_\+model\+\_\+load\+\_\+path}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer, const G\+Value $\ast$value)
\begin{DoxyCompactList}\small\item\em Handle \char`\"{}\+P\+R\+O\+P\+\_\+\+M\+O\+D\+E\+L\+\_\+\+L\+O\+A\+D\+\_\+\+P\+A\+T\+H\char`\"{} for set-\/property. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__trainer_8c_a96fbcc536540fbce6df90e043faaa48e}{gst\+\_\+tensor\+\_\+trainer\+\_\+find\+\_\+framework}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer, const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Find Trainer sub-\/plugin with the name. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__trainer_8c_aa2898daedc65b86cab0fb564dee30e1c}{gst\+\_\+tensor\+\_\+trainer\+\_\+create\+\_\+framework}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer)
\begin{DoxyCompactList}\small\item\em Create NN framework. \end{DoxyCompactList}\item 
static gsize \mbox{\hyperlink{gsttensor__trainer_8c_a54a7f22460299e6ae140069ec2f50358}{gst\+\_\+tensor\+\_\+trainer\+\_\+get\+\_\+tensor\+\_\+size}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer, guint index, gboolean is\+\_\+input)
\begin{DoxyCompactList}\small\item\em Calculate tensor buffer size. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__trainer_8c_a9e30ca98b4a88feda2634872385e3f63}{gst\+\_\+tensor\+\_\+trainer\+\_\+create\+\_\+model}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer)
\begin{DoxyCompactList}\small\item\em Create model. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__trainer_8c_ab4cf3d01c5a827d58c345337923f728c}{gst\+\_\+tensor\+\_\+trainer\+\_\+create\+\_\+event\+\_\+notifier}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer)
\begin{DoxyCompactList}\small\item\em Create a event notifier. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__trainer_8c_a90d25c4c6ed8c1bfed69920d1d18dd1b}{gst\+\_\+tensor\+\_\+trainer\+\_\+start\+\_\+model\+\_\+training}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer)
\begin{DoxyCompactList}\small\item\em Start model training. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__trainer_8c_adbc1977d9d8e27a1cab2f9edce151fad}{gst\+\_\+tensor\+\_\+trainer\+\_\+stop\+\_\+model\+\_\+training}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer)
\begin{DoxyCompactList}\small\item\em Stop model training. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__trainer_8c_aff68fc1c0d4ae59f174d40950bbff614}{gst\+\_\+tensor\+\_\+trainer\+\_\+set\+\_\+output\+\_\+meta}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer)
\begin{DoxyCompactList}\small\item\em initialize the output tensor dimension \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__trainer_8c_a284f2e5ec591e66141aa821ac5ead80d}{gst\+\_\+tensor\+\_\+trainer\+\_\+class\+\_\+init}} (\mbox{\hyperlink{gsttensor__trainer_8h_a1fde3e8bfd3567c91a0e0292e0100f18}{Gst\+Tensor\+Trainer\+Class}} $\ast$klass)
\begin{DoxyCompactList}\small\item\em initialize the tensor\+\_\+trainer\textquotesingle{}s class \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__trainer_8c_a778f08d10af8d24e200e793df1e283ca}{gst\+\_\+tensor\+\_\+trainer\+\_\+init}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer)
\begin{DoxyCompactList}\small\item\em Initialize tensor\+\_\+trainer. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__trainer_8c_ab999079039b8a0a92d6e0a04e7a012f9}{gst\+\_\+tensor\+\_\+trainer\+\_\+check\+\_\+invalid\+\_\+param}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer)
\begin{DoxyCompactList}\small\item\em Check invalid param. \end{DoxyCompactList}\item 
static gpointer \mbox{\hyperlink{gsttensor__trainer_8c_a56e0d50925ebfc9d4d62fb4d13a7a333}{gst\+\_\+tensor\+\_\+trainer\+\_\+dummy\+\_\+data\+\_\+generation\+\_\+func}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer)
\begin{DoxyCompactList}\small\item\em Dummy data generation thread. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__trainer_8c_a21015f8b3119fdae4b950050f74be08f}{gst\+\_\+tensor\+\_\+trainer\+\_\+wait\+\_\+for\+\_\+epoch\+\_\+completion}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer)
\begin{DoxyCompactList}\small\item\em Wait for epoch eompletion. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__trainer_8c_aba4f92537bc2d7cc0e57b4ca27a5d805}{gst\+\_\+tensor\+\_\+trainer\+\_\+epochs\+\_\+is\+\_\+complete}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer)
\begin{DoxyCompactList}\small\item\em Check if current epochs is complete, tensor\+\_\+trainer wait for one of epochs to complete before getting the results from the subplugin. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__trainer_8c_a6251ca4c6a526d92610692ad510fe9dc}{gst\+\_\+tensor\+\_\+trainer\+\_\+check\+\_\+buffer\+\_\+drop\+\_\+conditions}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer)
\begin{DoxyCompactList}\small\item\em Check buffer drop conditions. If condition is met, drop the buffer. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__trainer_8c_a8c668b2458a300be98084686696964d5}{gst\+\_\+tensor\+\_\+trainer\+\_\+check\+\_\+chain\+\_\+conditions}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer, guint num\+\_\+tensors)
\begin{DoxyCompactList}\small\item\em Check chain conditions. If all conditions are met, proceed to next step. \end{DoxyCompactList}\item 
static gsize \mbox{\hyperlink{gsttensor__trainer_8c_a68521e03fda6c393e56b3e36e35ca862}{gst\+\_\+tensor\+\_\+trainer\+\_\+convert\+\_\+meta}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer, \mbox{\hyperlink{structGstTensorMetaInfo}{Gst\+Tensor\+Meta\+Info}} $\ast$meta, \mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$info, void $\ast$\mbox{\hyperlink{gsttensor__if_8c_a3c9cc8d6e8da85fef51da4c7115b97f6}{data}})
\begin{DoxyCompactList}\small\item\em Convert tensor meta and get the size of tensor header. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__trainer_8c_a270b8d5da23e92140e8f8d105d242ae0}{gst\+\_\+tensor\+\_\+trainer\+\_\+push\+\_\+input}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer, Gst\+Buffer $\ast$inbuf, gboolean in\+\_\+flexible)
\begin{DoxyCompactList}\small\item\em Create input tensors from the buffer and push it into trainer fw. \end{DoxyCompactList}\item 
static gboolean \mbox{\hyperlink{gsttensor__trainer_8c_aea95f87e117b96ac32ff466c794e9541}{gst\+\_\+tensor\+\_\+trainer\+\_\+get\+\_\+model\+\_\+stats}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer, double $\ast$model\+\_\+stats)
\begin{DoxyCompactList}\small\item\em Get the model statistics from the sub-\/plugin. \end{DoxyCompactList}\item 
static Gst\+Buffer $\ast$ \mbox{\hyperlink{gsttensor__trainer_8c_a1977261c8344ae435f6f3a1298d8ef1f}{gst\+\_\+tensor\+\_\+trainer\+\_\+create\+\_\+output}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer)
\begin{DoxyCompactList}\small\item\em Create output tensors. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{gsttensor__trainer_8c_a1c479f7d612da9f1d610b5188051b607}{gst\+\_\+tensor\+\_\+trainer\+\_\+wait\+\_\+for\+\_\+training\+\_\+completion}} (\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$trainer)
\begin{DoxyCompactList}\small\item\em Wait for training completion. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{gsttensor__trainer_8c_a9622abd6aa52d8a47e5805b148761c23}{nnstreamer\+\_\+trainer\+\_\+probe}} (\mbox{\hyperlink{nnstreamer__plugin__api__trainer_8h_ac349cd79cfa1849ccec1b439cf4178d4}{Gst\+Tensor\+Trainer\+Framework}} $\ast$ttsp)
\begin{DoxyCompactList}\small\item\em Trainer\textquotesingle{}s sub-\/plugin should call this function to register itself. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{gsttensor__trainer_8c_ae98653dc4018274cb466a41b27d61f0d}{nnstreamer\+\_\+trainer\+\_\+exit}} (\mbox{\hyperlink{nnstreamer__plugin__api__trainer_8h_ac349cd79cfa1849ccec1b439cf4178d4}{Gst\+Tensor\+Trainer\+Framework}} $\ast$ttsp)
\begin{DoxyCompactList}\small\item\em Trainer\textquotesingle{}s sub-\/plugin may call this to unregister itself. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{gsttensor__trainer_8c_a683339281e8aad384c51c502b2e3f438}{nnstreamer\+\_\+trainer\+\_\+notify\+\_\+event}} (\mbox{\hyperlink{nnstreamer__plugin__api__trainer_8h_a7fb58afa4d009e4e4fd4fd96919e79cf}{Gst\+Tensor\+Trainer\+Event\+Notifier}} $\ast$notifier, \mbox{\hyperlink{nnstreamer__plugin__api__trainer_8h_a77debe11c1cb2e7c6679aa31141f8577}{Gst\+Tensor\+Trainer\+Event\+Type}} \mbox{\hyperlink{gsttensor__if_8c_ae3c4ba0b643db0fa0b5b96496abd1803}{type}}, void $\ast$\mbox{\hyperlink{gsttensor__if_8c_a3c9cc8d6e8da85fef51da4c7115b97f6}{data}})
\begin{DoxyCompactList}\small\item\em Trainer\textquotesingle{}s sub-\/plugin may call this to send event. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static Gst\+Static\+Pad\+Template \mbox{\hyperlink{gsttensor__trainer_8c_a26e2485c5fd610ac13e266fb32008cf7}{sink\+\_\+template}}
\begin{DoxyCompactList}\small\item\em The capabilities of the sink pad. \end{DoxyCompactList}\item 
static Gst\+Static\+Pad\+Template \mbox{\hyperlink{gsttensor__trainer_8c_a643731249f31c7864f3fb8d64d41a373}{src\+\_\+template}}
\begin{DoxyCompactList}\small\item\em The capabilities of the src pad. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
G\+Streamer plugin to train tensor data using NN Frameworks. 

Copyright (C) 2022 Samsung Electronics Co., Ltd.

\begin{DoxyDate}{Date}
20 October 2022 
\end{DoxyDate}
\begin{DoxySeeAlso}{See also}
\href{https://github.com/nnstreamer/nnstreamer}{\texttt{ https\+://github.\+com/nnstreamer/nnstreamer}} 
\end{DoxySeeAlso}
\begin{DoxyAuthor}{Author}
Hyunil Park \href{mailto:hyunil46.park@samsung.com}{\texttt{ hyunil46.\+park@samsung.\+com}} 
\end{DoxyAuthor}
\begin{DoxyRefDesc}{Bug}
\item[\mbox{\hyperlink{bug__bug000066}{Bug}}]No known bugs except for N\+YI items\end{DoxyRefDesc}


//! Example launch line $\vert$\mbox{[} gst-\/launch-\/1.\+0 datareposrc location=mnist\+\_\+training\+Set.\+dat json=mnist.\+json start-\/sample-\/index=3 stop-\/sample-\/index=202 epochs=5 ! \textbackslash{} tensor\+\_\+trainer framework=nntrainer model-\/config=mnist.\+ini model-\/save-\/path=model.\+bin \textbackslash{} num-\/inputs=1 num-\/labels=1 num-\/training-\/samples=100 num-\/validation-\/samples=100 epochs=5 ! \textbackslash{} tensor\+\_\+sink \mbox{]}$\vert$

Total number of data to be received is 1000((num-\/training-\/samples + num-\/validation-\/samples) $\ast$ epochs)

output tensors \+: dimensions=1\+:1\+:4, types=float64. values are training loss, training accuracy, validation loss and validation accuracy. -\/I\+N\+F\+I\+N\+I\+TY value is stored if the value fetched from the sub-\/plugin is not greater than 0. 

\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{gsttensor__trainer_8c_a42404ab95591c8ff9a5615b668361707}\label{gsttensor__trainer_8c_a42404ab95591c8ff9a5615b668361707}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!DEFAULT\_PROP\_EPOCHS@{DEFAULT\_PROP\_EPOCHS}}
\index{DEFAULT\_PROP\_EPOCHS@{DEFAULT\_PROP\_EPOCHS}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_PROP\_EPOCHS}{DEFAULT\_PROP\_EPOCHS}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+E\+P\+O\+C\+HS~1}



Definition at line 88 of file gsttensor\+\_\+trainer.\+c.

\mbox{\Hypertarget{gsttensor__trainer_8c_a6b55894dbf786f9a30d1b2b358918ae6}\label{gsttensor__trainer_8c_a6b55894dbf786f9a30d1b2b358918ae6}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!DEFAULT\_PROP\_INPUT\_LIST@{DEFAULT\_PROP\_INPUT\_LIST}}
\index{DEFAULT\_PROP\_INPUT\_LIST@{DEFAULT\_PROP\_INPUT\_LIST}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_PROP\_INPUT\_LIST}{DEFAULT\_PROP\_INPUT\_LIST}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+I\+N\+P\+U\+T\+\_\+\+L\+I\+ST~1}



Default framework property value. 



Definition at line 84 of file gsttensor\+\_\+trainer.\+c.

\mbox{\Hypertarget{gsttensor__trainer_8c_af2fa76c277b3bd1c7bfc7d0d26ffc747}\label{gsttensor__trainer_8c_af2fa76c277b3bd1c7bfc7d0d26ffc747}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!DEFAULT\_PROP\_LABEL\_LIST@{DEFAULT\_PROP\_LABEL\_LIST}}
\index{DEFAULT\_PROP\_LABEL\_LIST@{DEFAULT\_PROP\_LABEL\_LIST}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_PROP\_LABEL\_LIST}{DEFAULT\_PROP\_LABEL\_LIST}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+L\+A\+B\+E\+L\+\_\+\+L\+I\+ST~1}



Definition at line 85 of file gsttensor\+\_\+trainer.\+c.

\mbox{\Hypertarget{gsttensor__trainer_8c_a51788ff5cbc5f335d88721028a562ac8}\label{gsttensor__trainer_8c_a51788ff5cbc5f335d88721028a562ac8}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!DEFAULT\_PROP\_TRAIN\_SAMPLES@{DEFAULT\_PROP\_TRAIN\_SAMPLES}}
\index{DEFAULT\_PROP\_TRAIN\_SAMPLES@{DEFAULT\_PROP\_TRAIN\_SAMPLES}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_PROP\_TRAIN\_SAMPLES}{DEFAULT\_PROP\_TRAIN\_SAMPLES}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+T\+R\+A\+I\+N\+\_\+\+S\+A\+M\+P\+L\+ES~0}



Definition at line 86 of file gsttensor\+\_\+trainer.\+c.

\mbox{\Hypertarget{gsttensor__trainer_8c_a7cb6ea4b125f27a285ea0f3e3509dd5c}\label{gsttensor__trainer_8c_a7cb6ea4b125f27a285ea0f3e3509dd5c}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!DEFAULT\_PROP\_VALID\_SAMPLES@{DEFAULT\_PROP\_VALID\_SAMPLES}}
\index{DEFAULT\_PROP\_VALID\_SAMPLES@{DEFAULT\_PROP\_VALID\_SAMPLES}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_PROP\_VALID\_SAMPLES}{DEFAULT\_PROP\_VALID\_SAMPLES}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+P\+R\+O\+P\+\_\+\+V\+A\+L\+I\+D\+\_\+\+S\+A\+M\+P\+L\+ES~0}



Definition at line 87 of file gsttensor\+\_\+trainer.\+c.

\mbox{\Hypertarget{gsttensor__trainer_8c_af019e9d8558da5f75fe16c0178001190}\label{gsttensor__trainer_8c_af019e9d8558da5f75fe16c0178001190}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!DEFAULT\_STR\_PROP\_VALUE@{DEFAULT\_STR\_PROP\_VALUE}}
\index{DEFAULT\_STR\_PROP\_VALUE@{DEFAULT\_STR\_PROP\_VALUE}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{DEFAULT\_STR\_PROP\_VALUE}{DEFAULT\_STR\_PROP\_VALUE}}
{\footnotesize\ttfamily \#define D\+E\+F\+A\+U\+L\+T\+\_\+\+S\+T\+R\+\_\+\+P\+R\+O\+P\+\_\+\+V\+A\+L\+UE~\char`\"{}\char`\"{}}



Default string property value. 



Definition at line 92 of file gsttensor\+\_\+trainer.\+c.

\mbox{\Hypertarget{gsttensor__trainer_8c_adef911caed7c65a1643062817f4a59d7}\label{gsttensor__trainer_8c_adef911caed7c65a1643062817f4a59d7}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!GST\_CAT\_DEFAULT@{GST\_CAT\_DEFAULT}}
\index{GST\_CAT\_DEFAULT@{GST\_CAT\_DEFAULT}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{GST\_CAT\_DEFAULT}{GST\_CAT\_DEFAULT}}
{\footnotesize\ttfamily \#define G\+S\+T\+\_\+\+C\+A\+T\+\_\+\+D\+E\+F\+A\+U\+LT~gst\+\_\+tensor\+\_\+trainer\+\_\+debug}



Definition at line 64 of file gsttensor\+\_\+trainer.\+c.

\mbox{\Hypertarget{gsttensor__trainer_8c_a7d03af5de98b620516d3c35f23c2266f}\label{gsttensor__trainer_8c_a7d03af5de98b620516d3c35f23c2266f}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_parent\_class@{gst\_tensor\_trainer\_parent\_class}}
\index{gst\_tensor\_trainer\_parent\_class@{gst\_tensor\_trainer\_parent\_class}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_parent\_class}{gst\_tensor\_trainer\_parent\_class}}
{\footnotesize\ttfamily \#define gst\+\_\+tensor\+\_\+trainer\+\_\+parent\+\_\+class~parent\+\_\+class}



Definition at line 65 of file gsttensor\+\_\+trainer.\+c.

\mbox{\Hypertarget{gsttensor__trainer_8c_a2b61e09e15307c6006d54be8334ad967}\label{gsttensor__trainer_8c_a2b61e09e15307c6006d54be8334ad967}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!MODEL\_STATS\_SIZE@{MODEL\_STATS\_SIZE}}
\index{MODEL\_STATS\_SIZE@{MODEL\_STATS\_SIZE}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{MODEL\_STATS\_SIZE}{MODEL\_STATS\_SIZE}}
{\footnotesize\ttfamily \#define M\+O\+D\+E\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+S\+I\+ZE~4}



Definition at line 79 of file gsttensor\+\_\+trainer.\+c.

\mbox{\Hypertarget{gsttensor__trainer_8c_a556efd87f8a6ff0adcffa2546f3b81ef}\label{gsttensor__trainer_8c_a556efd87f8a6ff0adcffa2546f3b81ef}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!SINK\_CAPS\_STRING@{SINK\_CAPS\_STRING}}
\index{SINK\_CAPS\_STRING@{SINK\_CAPS\_STRING}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{SINK\_CAPS\_STRING}{SINK\_CAPS\_STRING}}
{\footnotesize\ttfamily \#define S\+I\+N\+K\+\_\+\+C\+A\+P\+S\+\_\+\+S\+T\+R\+I\+NG~\mbox{\hyperlink{tensor__typedef_8h_a23fa98afadf9e35f428d8d56b739b233}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+M\+A\+KE}} (\char`\"{}\{ static, flexible \}\char`\"{})}



Default caps string for sink. 



Definition at line 40 of file gsttensor\+\_\+trainer.\+c.

\mbox{\Hypertarget{gsttensor__trainer_8c_adbe2e622143fef629af7af48208b0fbd}\label{gsttensor__trainer_8c_adbe2e622143fef629af7af48208b0fbd}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!SRC\_CAPS\_STRING@{SRC\_CAPS\_STRING}}
\index{SRC\_CAPS\_STRING@{SRC\_CAPS\_STRING}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{SRC\_CAPS\_STRING}{SRC\_CAPS\_STRING}}
{\footnotesize\ttfamily \#define S\+R\+C\+\_\+\+C\+A\+P\+S\+\_\+\+S\+T\+R\+I\+NG~\mbox{\hyperlink{tensor__typedef_8h_a23fa98afadf9e35f428d8d56b739b233}{G\+S\+T\+\_\+\+T\+E\+N\+S\+O\+R\+S\+\_\+\+C\+A\+P\+\_\+\+M\+A\+KE}} (\char`\"{}\{ static\}\char`\"{})}



Default caps string for src. 



Definition at line 45 of file gsttensor\+\_\+trainer.\+c.



\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{gsttensor__trainer_8c_a4caf8d8f829279fba122163d961608a4}\label{gsttensor__trainer_8c_a4caf8d8f829279fba122163d961608a4}} 
\doxysubsubsection{\texorpdfstring{anonymous enum}{anonymous enum}}
{\footnotesize\ttfamily anonymous enum}



Statistical from the model being trained An enum value indicates the value stored at the index of the output tensor. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{TRAINING\_LOSS@{TRAINING\_LOSS}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!TRAINING\_LOSS@{TRAINING\_LOSS}}}\mbox{\Hypertarget{gsttensor__trainer_8c_a4caf8d8f829279fba122163d961608a4a58b986df1bade4a778ddb7aa1a9aceba}\label{gsttensor__trainer_8c_a4caf8d8f829279fba122163d961608a4a58b986df1bade4a778ddb7aa1a9aceba}} 
T\+R\+A\+I\+N\+I\+N\+G\+\_\+\+L\+O\+SS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{TRAINING\_ACCURACY@{TRAINING\_ACCURACY}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!TRAINING\_ACCURACY@{TRAINING\_ACCURACY}}}\mbox{\Hypertarget{gsttensor__trainer_8c_a4caf8d8f829279fba122163d961608a4a9f6089b7a058e8dbc4c8d476e2cbe779}\label{gsttensor__trainer_8c_a4caf8d8f829279fba122163d961608a4a9f6089b7a058e8dbc4c8d476e2cbe779}} 
T\+R\+A\+I\+N\+I\+N\+G\+\_\+\+A\+C\+C\+U\+R\+A\+CY&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{VALIDATION\_LOSS@{VALIDATION\_LOSS}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!VALIDATION\_LOSS@{VALIDATION\_LOSS}}}\mbox{\Hypertarget{gsttensor__trainer_8c_a4caf8d8f829279fba122163d961608a4a81b4d03d3ad8140df4608782007ebc65}\label{gsttensor__trainer_8c_a4caf8d8f829279fba122163d961608a4a81b4d03d3ad8140df4608782007ebc65}} 
V\+A\+L\+I\+D\+A\+T\+I\+O\+N\+\_\+\+L\+O\+SS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{VALIDATION\_ACCURACY@{VALIDATION\_ACCURACY}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!VALIDATION\_ACCURACY@{VALIDATION\_ACCURACY}}}\mbox{\Hypertarget{gsttensor__trainer_8c_a4caf8d8f829279fba122163d961608a4a6f831be4dc979896464eba521be2016c}\label{gsttensor__trainer_8c_a4caf8d8f829279fba122163d961608a4a6f831be4dc979896464eba521be2016c}} 
V\+A\+L\+I\+D\+A\+T\+I\+O\+N\+\_\+\+A\+C\+C\+U\+R\+A\+CY&\\
\hline

\end{DoxyEnumFields}


Definition at line 72 of file gsttensor\+\_\+trainer.\+c.

\mbox{\Hypertarget{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556e}\label{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556e}} 
\doxysubsubsection{\texorpdfstring{anonymous enum}{anonymous enum}}
{\footnotesize\ttfamily anonymous enum}



tensor\+\_\+trainer properties 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_0@{PROP\_0}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!PROP\_0@{PROP\_0}}}\mbox{\Hypertarget{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556eac37dda0da1a44e10c0504afeeb863f3c}\label{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556eac37dda0da1a44e10c0504afeeb863f3c}} 
P\+R\+O\+P\+\_\+0&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_FRAMEWORK@{PROP\_FRAMEWORK}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!PROP\_FRAMEWORK@{PROP\_FRAMEWORK}}}\mbox{\Hypertarget{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556eaeb1da7c6b5ed5ea3e40ec8c5036d8917}\label{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556eaeb1da7c6b5ed5ea3e40ec8c5036d8917}} 
P\+R\+O\+P\+\_\+\+F\+R\+A\+M\+E\+W\+O\+RK&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_MODEL\_CONFIG@{PROP\_MODEL\_CONFIG}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!PROP\_MODEL\_CONFIG@{PROP\_MODEL\_CONFIG}}}\mbox{\Hypertarget{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556ea3029ce62025e876bef2d0e2e944a9657}\label{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556ea3029ce62025e876bef2d0e2e944a9657}} 
P\+R\+O\+P\+\_\+\+M\+O\+D\+E\+L\+\_\+\+C\+O\+N\+F\+IG&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_MODEL\_SAVE\_PATH@{PROP\_MODEL\_SAVE\_PATH}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!PROP\_MODEL\_SAVE\_PATH@{PROP\_MODEL\_SAVE\_PATH}}}\mbox{\Hypertarget{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556ea8b0393b10972a8453dac84dc8264b838}\label{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556ea8b0393b10972a8453dac84dc8264b838}} 
P\+R\+O\+P\+\_\+\+M\+O\+D\+E\+L\+\_\+\+S\+A\+V\+E\+\_\+\+P\+A\+TH&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_MODEL\_LOAD\_PATH@{PROP\_MODEL\_LOAD\_PATH}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!PROP\_MODEL\_LOAD\_PATH@{PROP\_MODEL\_LOAD\_PATH}}}\mbox{\Hypertarget{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556eaba2568753e77fa1f5f964ce731ffa1d5}\label{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556eaba2568753e77fa1f5f964ce731ffa1d5}} 
P\+R\+O\+P\+\_\+\+M\+O\+D\+E\+L\+\_\+\+L\+O\+A\+D\+\_\+\+P\+A\+TH&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_NUM\_INPUTS@{PROP\_NUM\_INPUTS}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!PROP\_NUM\_INPUTS@{PROP\_NUM\_INPUTS}}}\mbox{\Hypertarget{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556ea782ae922ab9490c64e276a74f6bc5ad5}\label{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556ea782ae922ab9490c64e276a74f6bc5ad5}} 
P\+R\+O\+P\+\_\+\+N\+U\+M\+\_\+\+I\+N\+P\+U\+TS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_NUM\_LABELS@{PROP\_NUM\_LABELS}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!PROP\_NUM\_LABELS@{PROP\_NUM\_LABELS}}}\mbox{\Hypertarget{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556eab12f8af793d5aa15c97e4f6ae20068e2}\label{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556eab12f8af793d5aa15c97e4f6ae20068e2}} 
P\+R\+O\+P\+\_\+\+N\+U\+M\+\_\+\+L\+A\+B\+E\+LS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_NUM\_TRAINING\_SAMPLES@{PROP\_NUM\_TRAINING\_SAMPLES}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!PROP\_NUM\_TRAINING\_SAMPLES@{PROP\_NUM\_TRAINING\_SAMPLES}}}\mbox{\Hypertarget{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556ea86607372adf1d715b4311ba6dcd5718e}\label{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556ea86607372adf1d715b4311ba6dcd5718e}} 
P\+R\+O\+P\+\_\+\+N\+U\+M\+\_\+\+T\+R\+A\+I\+N\+I\+N\+G\+\_\+\+S\+A\+M\+P\+L\+ES&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_NUM\_VALIDATION\_SAMPLES@{PROP\_NUM\_VALIDATION\_SAMPLES}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!PROP\_NUM\_VALIDATION\_SAMPLES@{PROP\_NUM\_VALIDATION\_SAMPLES}}}\mbox{\Hypertarget{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556eabd91d6a9adc1b5bdab34831e3f0abe24}\label{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556eabd91d6a9adc1b5bdab34831e3f0abe24}} 
P\+R\+O\+P\+\_\+\+N\+U\+M\+\_\+\+V\+A\+L\+I\+D\+A\+T\+I\+O\+N\+\_\+\+S\+A\+M\+P\+L\+ES&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{PROP\_EPOCHS@{PROP\_EPOCHS}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!PROP\_EPOCHS@{PROP\_EPOCHS}}}\mbox{\Hypertarget{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556ea0abe31fefb6d19c980cfe2ed715da934}\label{gsttensor__trainer_8c_a96a58e29e8dbf2b5bdeb775cba46556ea0abe31fefb6d19c980cfe2ed715da934}} 
P\+R\+O\+P\+\_\+\+E\+P\+O\+C\+HS&\\
\hline

\end{DoxyEnumFields}


Definition at line 97 of file gsttensor\+\_\+trainer.\+c.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{gsttensor__trainer_8c_a4fa91f3d8cfb90f79e34f25296c4408d}\label{gsttensor__trainer_8c_a4fa91f3d8cfb90f79e34f25296c4408d}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!G\_DEFINE\_TYPE@{G\_DEFINE\_TYPE}}
\index{G\_DEFINE\_TYPE@{G\_DEFINE\_TYPE}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{G\_DEFINE\_TYPE()}{G\_DEFINE\_TYPE()}}
{\footnotesize\ttfamily G\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+T\+Y\+PE (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}}}]{,  }\item[{gst\+\_\+tensor\+\_\+trainer}]{,  }\item[{G\+S\+T\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+L\+E\+M\+E\+NT}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{gsttensor__trainer_8c_a29337a75639fccc6d62c5d32141dc6cf}\label{gsttensor__trainer_8c_a29337a75639fccc6d62c5d32141dc6cf}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!GST\_DEBUG\_CATEGORY\_STATIC@{GST\_DEBUG\_CATEGORY\_STATIC}}
\index{GST\_DEBUG\_CATEGORY\_STATIC@{GST\_DEBUG\_CATEGORY\_STATIC}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{GST\_DEBUG\_CATEGORY\_STATIC()}{GST\_DEBUG\_CATEGORY\_STATIC()}}
{\footnotesize\ttfamily G\+S\+T\+\_\+\+D\+E\+B\+U\+G\+\_\+\+C\+A\+T\+E\+G\+O\+R\+Y\+\_\+\+S\+T\+A\+T\+IC (\begin{DoxyParamCaption}\item[{gst\+\_\+tensor\+\_\+trainer\+\_\+debug}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{gsttensor__trainer_8c_a094a09bcd6ef5f22c388608b815ac540}\label{gsttensor__trainer_8c_a094a09bcd6ef5f22c388608b815ac540}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_chain@{gst\_tensor\_trainer\_chain}}
\index{gst\_tensor\_trainer\_chain@{gst\_tensor\_trainer\_chain}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_chain()}{gst\_tensor\_trainer\_chain()}}
{\footnotesize\ttfamily static Gst\+Flow\+Return gst\+\_\+tensor\+\_\+trainer\+\_\+chain (\begin{DoxyParamCaption}\item[{Gst\+Pad $\ast$}]{sinkpad,  }\item[{Gst\+Object $\ast$}]{parent,  }\item[{Gst\+Buffer $\ast$}]{inbuf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Chain function, this function does the actual processing. 

Update result if one of epochs is complete, push one outbuf is necessary to change pipeline state. Scheduling with subplugin does not work.

Definition at line 868 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a094a09bcd6ef5f22c388608b815ac540_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=347pt]{gsttensor__trainer_8c_a094a09bcd6ef5f22c388608b815ac540_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a753415e9e1a38874d2edb0ef9fef75dd}\label{gsttensor__trainer_8c_a753415e9e1a38874d2edb0ef9fef75dd}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_change\_state@{gst\_tensor\_trainer\_change\_state}}
\index{gst\_tensor\_trainer\_change\_state@{gst\_tensor\_trainer\_change\_state}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_change\_state()}{gst\_tensor\_trainer\_change\_state()}}
{\footnotesize\ttfamily static Gst\+State\+Change\+Return gst\+\_\+tensor\+\_\+trainer\+\_\+change\+\_\+state (\begin{DoxyParamCaption}\item[{Gst\+Element $\ast$}]{element,  }\item[{Gst\+State\+Change}]{transition }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Change state of tensor\+\_\+trainsink. 



Definition at line 513 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a753415e9e1a38874d2edb0ef9fef75dd_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=326pt]{gsttensor__trainer_8c_a753415e9e1a38874d2edb0ef9fef75dd_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a6251ca4c6a526d92610692ad510fe9dc}\label{gsttensor__trainer_8c_a6251ca4c6a526d92610692ad510fe9dc}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_check\_buffer\_drop\_conditions@{gst\_tensor\_trainer\_check\_buffer\_drop\_conditions}}
\index{gst\_tensor\_trainer\_check\_buffer\_drop\_conditions@{gst\_tensor\_trainer\_check\_buffer\_drop\_conditions}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_check\_buffer\_drop\_conditions()}{gst\_tensor\_trainer\_check\_buffer\_drop\_conditions()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+trainer\+\_\+check\+\_\+buffer\+\_\+drop\+\_\+conditions (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Check buffer drop conditions. If condition is met, drop the buffer. 

app need to send gst\+\_\+element\+\_\+send\+\_\+event(tensor\+\_\+trainer, gst\+\_\+event\+\_\+new\+\_\+eos()) after training\+\_\+complete or set eos to datareposrc

Definition at line 629 of file gsttensor\+\_\+trainer.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a6251ca4c6a526d92610692ad510fe9dc_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a8c668b2458a300be98084686696964d5}\label{gsttensor__trainer_8c_a8c668b2458a300be98084686696964d5}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_check\_chain\_conditions@{gst\_tensor\_trainer\_check\_chain\_conditions}}
\index{gst\_tensor\_trainer\_check\_chain\_conditions@{gst\_tensor\_trainer\_check\_chain\_conditions}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_check\_chain\_conditions()}{gst\_tensor\_trainer\_check\_chain\_conditions()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+trainer\+\_\+check\+\_\+chain\+\_\+conditions (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer,  }\item[{guint}]{num\+\_\+tensors }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Check chain conditions. If all conditions are met, proceed to next step. 



Definition at line 645 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a8c668b2458a300be98084686696964d5_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a8c668b2458a300be98084686696964d5_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_ab999079039b8a0a92d6e0a04e7a012f9}\label{gsttensor__trainer_8c_ab999079039b8a0a92d6e0a04e7a012f9}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_check\_invalid\_param@{gst\_tensor\_trainer\_check\_invalid\_param}}
\index{gst\_tensor\_trainer\_check\_invalid\_param@{gst\_tensor\_trainer\_check\_invalid\_param}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_check\_invalid\_param()}{gst\_tensor\_trainer\_check\_invalid\_param()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+trainer\+\_\+check\+\_\+invalid\+\_\+param (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Check invalid param. 



Definition at line 440 of file gsttensor\+\_\+trainer.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_ab999079039b8a0a92d6e0a04e7a012f9_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a284f2e5ec591e66141aa821ac5ead80d}\label{gsttensor__trainer_8c_a284f2e5ec591e66141aa821ac5ead80d}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_class\_init@{gst\_tensor\_trainer\_class\_init}}
\index{gst\_tensor\_trainer\_class\_init@{gst\_tensor\_trainer\_class\_init}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_class\_init()}{gst\_tensor\_trainer\_class\_init()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+trainer\+\_\+class\+\_\+init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_a1fde3e8bfd3567c91a0e0292e0100f18}{Gst\+Tensor\+Trainer\+Class}} $\ast$}]{klass }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



initialize the tensor\+\_\+trainer\textquotesingle{}s class 



Definition at line 155 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a284f2e5ec591e66141aa821ac5ead80d_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a68521e03fda6c393e56b3e36e35ca862}\label{gsttensor__trainer_8c_a68521e03fda6c393e56b3e36e35ca862}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_convert\_meta@{gst\_tensor\_trainer\_convert\_meta}}
\index{gst\_tensor\_trainer\_convert\_meta@{gst\_tensor\_trainer\_convert\_meta}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_convert\_meta()}{gst\_tensor\_trainer\_convert\_meta()}}
{\footnotesize\ttfamily static gsize gst\+\_\+tensor\+\_\+trainer\+\_\+convert\+\_\+meta (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer,  }\item[{\mbox{\hyperlink{structGstTensorMetaInfo}{Gst\+Tensor\+Meta\+Info}} $\ast$}]{meta,  }\item[{\mbox{\hyperlink{structGstTensorInfo}{Gst\+Tensor\+Info}} $\ast$}]{info,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Convert tensor meta and get the size of tensor header. 



Definition at line 665 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a68521e03fda6c393e56b3e36e35ca862_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a68521e03fda6c393e56b3e36e35ca862_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_ab4cf3d01c5a827d58c345337923f728c}\label{gsttensor__trainer_8c_ab4cf3d01c5a827d58c345337923f728c}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_create\_event\_notifier@{gst\_tensor\_trainer\_create\_event\_notifier}}
\index{gst\_tensor\_trainer\_create\_event\_notifier@{gst\_tensor\_trainer\_create\_event\_notifier}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_create\_event\_notifier()}{gst\_tensor\_trainer\_create\_event\_notifier()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+trainer\+\_\+create\+\_\+event\+\_\+notifier (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Create a event notifier. 



Definition at line 1296 of file gsttensor\+\_\+trainer.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_ab4cf3d01c5a827d58c345337923f728c_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_aa2898daedc65b86cab0fb564dee30e1c}\label{gsttensor__trainer_8c_aa2898daedc65b86cab0fb564dee30e1c}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_create\_framework@{gst\_tensor\_trainer\_create\_framework}}
\index{gst\_tensor\_trainer\_create\_framework@{gst\_tensor\_trainer\_create\_framework}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_create\_framework()}{gst\_tensor\_trainer\_create\_framework()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+trainer\+\_\+create\+\_\+framework (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Create NN framework. 



Definition at line 1221 of file gsttensor\+\_\+trainer.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_aa2898daedc65b86cab0fb564dee30e1c_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a9e30ca98b4a88feda2634872385e3f63}\label{gsttensor__trainer_8c_a9e30ca98b4a88feda2634872385e3f63}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_create\_model@{gst\_tensor\_trainer\_create\_model}}
\index{gst\_tensor\_trainer\_create\_model@{gst\_tensor\_trainer\_create\_model}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_create\_model()}{gst\_tensor\_trainer\_create\_model()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+trainer\+\_\+create\+\_\+model (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Create model. 



Definition at line 1273 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a9e30ca98b4a88feda2634872385e3f63_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a9e30ca98b4a88feda2634872385e3f63_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a1977261c8344ae435f6f3a1298d8ef1f}\label{gsttensor__trainer_8c_a1977261c8344ae435f6f3a1298d8ef1f}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_create\_output@{gst\_tensor\_trainer\_create\_output}}
\index{gst\_tensor\_trainer\_create\_output@{gst\_tensor\_trainer\_create\_output}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_create\_output()}{gst\_tensor\_trainer\_create\_output()}}
{\footnotesize\ttfamily static Gst\+Buffer$\ast$ gst\+\_\+tensor\+\_\+trainer\+\_\+create\+\_\+output (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Create output tensors. 



Definition at line 805 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a1977261c8344ae435f6f3a1298d8ef1f_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a1977261c8344ae435f6f3a1298d8ef1f_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a56e0d50925ebfc9d4d62fb4d13a7a333}\label{gsttensor__trainer_8c_a56e0d50925ebfc9d4d62fb4d13a7a333}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_dummy\_data\_generation\_func@{gst\_tensor\_trainer\_dummy\_data\_generation\_func}}
\index{gst\_tensor\_trainer\_dummy\_data\_generation\_func@{gst\_tensor\_trainer\_dummy\_data\_generation\_func}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_dummy\_data\_generation\_func()}{gst\_tensor\_trainer\_dummy\_data\_generation\_func()}}
{\footnotesize\ttfamily static gpointer gst\+\_\+tensor\+\_\+trainer\+\_\+dummy\+\_\+data\+\_\+generation\+\_\+func (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Dummy data generation thread. 



Definition at line 471 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a56e0d50925ebfc9d4d62fb4d13a7a333_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a56e0d50925ebfc9d4d62fb4d13a7a333_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_aba4f92537bc2d7cc0e57b4ca27a5d805}\label{gsttensor__trainer_8c_aba4f92537bc2d7cc0e57b4ca27a5d805}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_epochs\_is\_complete@{gst\_tensor\_trainer\_epochs\_is\_complete}}
\index{gst\_tensor\_trainer\_epochs\_is\_complete@{gst\_tensor\_trainer\_epochs\_is\_complete}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_epochs\_is\_complete()}{gst\_tensor\_trainer\_epochs\_is\_complete()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+trainer\+\_\+epochs\+\_\+is\+\_\+complete (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Check if current epochs is complete, tensor\+\_\+trainer wait for one of epochs to complete before getting the results from the subplugin. 



Definition at line 609 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_aba4f92537bc2d7cc0e57b4ca27a5d805_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_aba4f92537bc2d7cc0e57b4ca27a5d805_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a123d4d784fe0b443c7fbfe295006be2b}\label{gsttensor__trainer_8c_a123d4d784fe0b443c7fbfe295006be2b}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_finalize@{gst\_tensor\_trainer\_finalize}}
\index{gst\_tensor\_trainer\_finalize@{gst\_tensor\_trainer\_finalize}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_finalize()}{gst\_tensor\_trainer\_finalize()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+trainer\+\_\+finalize (\begin{DoxyParamCaption}\item[{G\+Object $\ast$}]{object }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Function to finalize instance. 



Definition at line 316 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a123d4d784fe0b443c7fbfe295006be2b_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=326pt]{gsttensor__trainer_8c_a123d4d784fe0b443c7fbfe295006be2b_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a96fbcc536540fbce6df90e043faaa48e}\label{gsttensor__trainer_8c_a96fbcc536540fbce6df90e043faaa48e}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_find\_framework@{gst\_tensor\_trainer\_find\_framework}}
\index{gst\_tensor\_trainer\_find\_framework@{gst\_tensor\_trainer\_find\_framework}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_find\_framework()}{gst\_tensor\_trainer\_find\_framework()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+trainer\+\_\+find\+\_\+framework (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Find Trainer sub-\/plugin with the name. 



Definition at line 1196 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a96fbcc536540fbce6df90e043faaa48e_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a96fbcc536540fbce6df90e043faaa48e_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_aea95f87e117b96ac32ff466c794e9541}\label{gsttensor__trainer_8c_aea95f87e117b96ac32ff466c794e9541}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_get\_model\_stats@{gst\_tensor\_trainer\_get\_model\_stats}}
\index{gst\_tensor\_trainer\_get\_model\_stats@{gst\_tensor\_trainer\_get\_model\_stats}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_get\_model\_stats()}{gst\_tensor\_trainer\_get\_model\_stats()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+trainer\+\_\+get\+\_\+model\+\_\+stats (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer,  }\item[{double $\ast$}]{model\+\_\+stats }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Get the model statistics from the sub-\/plugin. 



Definition at line 769 of file gsttensor\+\_\+trainer.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_aea95f87e117b96ac32ff466c794e9541_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_aaf29932ee4b9171ec5f392c9d799affa}\label{gsttensor__trainer_8c_aaf29932ee4b9171ec5f392c9d799affa}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_get\_property@{gst\_tensor\_trainer\_get\_property}}
\index{gst\_tensor\_trainer\_get\_property@{gst\_tensor\_trainer\_get\_property}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_get\_property()}{gst\_tensor\_trainer\_get\_property()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+trainer\+\_\+get\+\_\+property (\begin{DoxyParamCaption}\item[{G\+Object $\ast$}]{object,  }\item[{guint}]{prop\+\_\+id,  }\item[{G\+Value $\ast$}]{value,  }\item[{G\+Param\+Spec $\ast$}]{pspec }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Getter tensor\+\_\+trainsink properties. 



Definition at line 395 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=329pt]{gsttensor__trainer_8c_aaf29932ee4b9171ec5f392c9d799affa_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=326pt]{gsttensor__trainer_8c_aaf29932ee4b9171ec5f392c9d799affa_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a54a7f22460299e6ae140069ec2f50358}\label{gsttensor__trainer_8c_a54a7f22460299e6ae140069ec2f50358}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_get\_tensor\_size@{gst\_tensor\_trainer\_get\_tensor\_size}}
\index{gst\_tensor\_trainer\_get\_tensor\_size@{gst\_tensor\_trainer\_get\_tensor\_size}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_get\_tensor\_size()}{gst\_tensor\_trainer\_get\_tensor\_size()}}
{\footnotesize\ttfamily gsize gst\+\_\+tensor\+\_\+trainer\+\_\+get\+\_\+tensor\+\_\+size (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer,  }\item[{guint}]{index,  }\item[{gboolean}]{is\+\_\+input }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Calculate tensor buffer size. 



Definition at line 1250 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a54a7f22460299e6ae140069ec2f50358_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a54a7f22460299e6ae140069ec2f50358_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a778f08d10af8d24e200e793df1e283ca}\label{gsttensor__trainer_8c_a778f08d10af8d24e200e793df1e283ca}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_init@{gst\_tensor\_trainer\_init}}
\index{gst\_tensor\_trainer\_init@{gst\_tensor\_trainer\_init}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_init()}{gst\_tensor\_trainer\_init()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+trainer\+\_\+init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Initialize tensor\+\_\+trainer. 

setup sink pad

setup src pad

init properties

Definition at line 262 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a778f08d10af8d24e200e793df1e283ca_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a270b8d5da23e92140e8f8d105d242ae0}\label{gsttensor__trainer_8c_a270b8d5da23e92140e8f8d105d242ae0}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_push\_input@{gst\_tensor\_trainer\_push\_input}}
\index{gst\_tensor\_trainer\_push\_input@{gst\_tensor\_trainer\_push\_input}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_push\_input()}{gst\_tensor\_trainer\_push\_input()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+trainer\+\_\+push\+\_\+input (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer,  }\item[{Gst\+Buffer $\ast$}]{inbuf,  }\item[{gboolean}]{in\+\_\+flexible }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Create input tensors from the buffer and push it into trainer fw. 



Definition at line 687 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a270b8d5da23e92140e8f8d105d242ae0_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a270b8d5da23e92140e8f8d105d242ae0_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_af0e80af7a3b5a1c8ade45eb8d44137d2}\label{gsttensor__trainer_8c_af0e80af7a3b5a1c8ade45eb8d44137d2}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_query\_caps@{gst\_tensor\_trainer\_query\_caps}}
\index{gst\_tensor\_trainer\_query\_caps@{gst\_tensor\_trainer\_query\_caps}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_query\_caps()}{gst\_tensor\_trainer\_query\_caps()}}
{\footnotesize\ttfamily static Gst\+Caps $\ast$ gst\+\_\+tensor\+\_\+trainer\+\_\+query\+\_\+caps (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer,  }\item[{Gst\+Pad $\ast$}]{pad,  }\item[{Gst\+Caps $\ast$}]{filter }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Get pad caps for caps negotiation. 



Definition at line 919 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_af0e80af7a3b5a1c8ade45eb8d44137d2_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_af0e80af7a3b5a1c8ade45eb8d44137d2_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a4b202f0017e2830a6ea0f60d9f979cd1}\label{gsttensor__trainer_8c_a4b202f0017e2830a6ea0f60d9f979cd1}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_set\_model\_load\_path@{gst\_tensor\_trainer\_set\_model\_load\_path}}
\index{gst\_tensor\_trainer\_set\_model\_load\_path@{gst\_tensor\_trainer\_set\_model\_load\_path}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_set\_model\_load\_path()}{gst\_tensor\_trainer\_set\_model\_load\_path()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+trainer\+\_\+set\+\_\+model\+\_\+load\+\_\+path (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer,  }\item[{const G\+Value $\ast$}]{value }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Handle \char`\"{}\+P\+R\+O\+P\+\_\+\+M\+O\+D\+E\+L\+\_\+\+L\+O\+A\+D\+\_\+\+P\+A\+T\+H\char`\"{} for set-\/property. 



Definition at line 1183 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=289pt]{gsttensor__trainer_8c_a4b202f0017e2830a6ea0f60d9f979cd1_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a4b202f0017e2830a6ea0f60d9f979cd1_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a7f12ebb64a7e3e20cbe2833c3c8eb60c}\label{gsttensor__trainer_8c_a7f12ebb64a7e3e20cbe2833c3c8eb60c}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_set\_model\_save\_path@{gst\_tensor\_trainer\_set\_model\_save\_path}}
\index{gst\_tensor\_trainer\_set\_model\_save\_path@{gst\_tensor\_trainer\_set\_model\_save\_path}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_set\_model\_save\_path()}{gst\_tensor\_trainer\_set\_model\_save\_path()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+trainer\+\_\+set\+\_\+model\+\_\+save\+\_\+path (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer,  }\item[{const G\+Value $\ast$}]{value }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Handle \char`\"{}\+P\+R\+O\+P\+\_\+\+M\+O\+D\+E\+L\+\_\+\+S\+A\+V\+E\+\_\+\+P\+A\+T\+H\char`\"{} for set-\/property. 



Definition at line 1170 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=291pt]{gsttensor__trainer_8c_a7f12ebb64a7e3e20cbe2833c3c8eb60c_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a7f12ebb64a7e3e20cbe2833c3c8eb60c_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_aff68fc1c0d4ae59f174d40950bbff614}\label{gsttensor__trainer_8c_aff68fc1c0d4ae59f174d40950bbff614}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_set\_output\_meta@{gst\_tensor\_trainer\_set\_output\_meta}}
\index{gst\_tensor\_trainer\_set\_output\_meta@{gst\_tensor\_trainer\_set\_output\_meta}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_set\_output\_meta()}{gst\_tensor\_trainer\_set\_output\_meta()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+trainer\+\_\+set\+\_\+output\+\_\+meta (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



initialize the output tensor dimension 

loss, accuracy, val\+\_\+loss, val\+\_\+accuracy

Definition at line 1347 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_aff68fc1c0d4ae59f174d40950bbff614_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=347pt]{gsttensor__trainer_8c_aff68fc1c0d4ae59f174d40950bbff614_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_aac6133f89d87e7ad838a1c268f6a06db}\label{gsttensor__trainer_8c_aac6133f89d87e7ad838a1c268f6a06db}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_set\_prop\_framework@{gst\_tensor\_trainer\_set\_prop\_framework}}
\index{gst\_tensor\_trainer\_set\_prop\_framework@{gst\_tensor\_trainer\_set\_prop\_framework}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_set\_prop\_framework()}{gst\_tensor\_trainer\_set\_prop\_framework()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+trainer\+\_\+set\+\_\+prop\+\_\+framework (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer,  }\item[{const G\+Value $\ast$}]{value }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Handle \char`\"{}\+P\+R\+O\+P\+\_\+\+F\+R\+A\+M\+E\+W\+O\+R\+K\char`\"{} for set-\/property. 

\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000033}{Todo}}]Check valid framework \end{DoxyRefDesc}


Definition at line 1143 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=285pt]{gsttensor__trainer_8c_aac6133f89d87e7ad838a1c268f6a06db_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_aac6133f89d87e7ad838a1c268f6a06db_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_aa3454e81db4c25a79b6baf38d0b51f46}\label{gsttensor__trainer_8c_aa3454e81db4c25a79b6baf38d0b51f46}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_set\_prop\_model\_config\_file\_path@{gst\_tensor\_trainer\_set\_prop\_model\_config\_file\_path}}
\index{gst\_tensor\_trainer\_set\_prop\_model\_config\_file\_path@{gst\_tensor\_trainer\_set\_prop\_model\_config\_file\_path}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_set\_prop\_model\_config\_file\_path()}{gst\_tensor\_trainer\_set\_prop\_model\_config\_file\_path()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+trainer\+\_\+set\+\_\+prop\+\_\+model\+\_\+config\+\_\+file\+\_\+path (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer,  }\item[{const G\+Value $\ast$}]{value }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Handle \char`\"{}\+P\+R\+O\+P\+\_\+\+M\+O\+D\+E\+L\+\_\+\+C\+O\+N\+F\+I\+G\char`\"{} for set-\/property. 



Definition at line 1157 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=297pt]{gsttensor__trainer_8c_aa3454e81db4c25a79b6baf38d0b51f46_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_aa3454e81db4c25a79b6baf38d0b51f46_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a5878c16ff572310ab8891d0740b5a8c5}\label{gsttensor__trainer_8c_a5878c16ff572310ab8891d0740b5a8c5}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_set\_property@{gst\_tensor\_trainer\_set\_property}}
\index{gst\_tensor\_trainer\_set\_property@{gst\_tensor\_trainer\_set\_property}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_set\_property()}{gst\_tensor\_trainer\_set\_property()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+trainer\+\_\+set\+\_\+property (\begin{DoxyParamCaption}\item[{G\+Object $\ast$}]{object,  }\item[{guint}]{prop\+\_\+id,  }\item[{const G\+Value $\ast$}]{value,  }\item[{G\+Param\+Spec $\ast$}]{pspec }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Setter for tensor\+\_\+trainsink properties. 



Definition at line 350 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a5878c16ff572310ab8891d0740b5a8c5_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=326pt]{gsttensor__trainer_8c_a5878c16ff572310ab8891d0740b5a8c5_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a1bc4a96aa4d32d790186419504b6f397}\label{gsttensor__trainer_8c_a1bc4a96aa4d32d790186419504b6f397}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_sink\_event@{gst\_tensor\_trainer\_sink\_event}}
\index{gst\_tensor\_trainer\_sink\_event@{gst\_tensor\_trainer\_sink\_event}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_sink\_event()}{gst\_tensor\_trainer\_sink\_event()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+trainer\+\_\+sink\+\_\+event (\begin{DoxyParamCaption}\item[{Gst\+Pad $\ast$}]{sinkpad,  }\item[{Gst\+Object $\ast$}]{parent,  }\item[{Gst\+Event $\ast$}]{event }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Event handler for sink pad of tensor\+\_\+trainer. 



Definition at line 977 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a1bc4a96aa4d32d790186419504b6f397_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=347pt]{gsttensor__trainer_8c_a1bc4a96aa4d32d790186419504b6f397_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a9da114b941810cf4d14ce9ce59fcddd0}\label{gsttensor__trainer_8c_a9da114b941810cf4d14ce9ce59fcddd0}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_sink\_query@{gst\_tensor\_trainer\_sink\_query}}
\index{gst\_tensor\_trainer\_sink\_query@{gst\_tensor\_trainer\_sink\_query}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_sink\_query()}{gst\_tensor\_trainer\_sink\_query()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+trainer\+\_\+sink\+\_\+query (\begin{DoxyParamCaption}\item[{Gst\+Pad $\ast$}]{sinkpad,  }\item[{Gst\+Object $\ast$}]{parent,  }\item[{Gst\+Query $\ast$}]{query }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



This function handles sink pad query. 



Definition at line 1046 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a9da114b941810cf4d14ce9ce59fcddd0_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=347pt]{gsttensor__trainer_8c_a9da114b941810cf4d14ce9ce59fcddd0_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a9e1b84aa3c8bfdb1ecfdc6467c3c7116}\label{gsttensor__trainer_8c_a9e1b84aa3c8bfdb1ecfdc6467c3c7116}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_src\_query@{gst\_tensor\_trainer\_src\_query}}
\index{gst\_tensor\_trainer\_src\_query@{gst\_tensor\_trainer\_src\_query}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_src\_query()}{gst\_tensor\_trainer\_src\_query()}}
{\footnotesize\ttfamily static gboolean gst\+\_\+tensor\+\_\+trainer\+\_\+src\+\_\+query (\begin{DoxyParamCaption}\item[{Gst\+Pad $\ast$}]{srcpad,  }\item[{Gst\+Object $\ast$}]{parent,  }\item[{Gst\+Query $\ast$}]{query }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



This function handles src pad query. 



Definition at line 1109 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a9e1b84aa3c8bfdb1ecfdc6467c3c7116_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=347pt]{gsttensor__trainer_8c_a9e1b84aa3c8bfdb1ecfdc6467c3c7116_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a90d25c4c6ed8c1bfed69920d1d18dd1b}\label{gsttensor__trainer_8c_a90d25c4c6ed8c1bfed69920d1d18dd1b}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_start\_model\_training@{gst\_tensor\_trainer\_start\_model\_training}}
\index{gst\_tensor\_trainer\_start\_model\_training@{gst\_tensor\_trainer\_start\_model\_training}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_start\_model\_training()}{gst\_tensor\_trainer\_start\_model\_training()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+trainer\+\_\+start\+\_\+model\+\_\+training (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Start model training. 



Definition at line 1308 of file gsttensor\+\_\+trainer.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a90d25c4c6ed8c1bfed69920d1d18dd1b_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_adbc1977d9d8e27a1cab2f9edce151fad}\label{gsttensor__trainer_8c_adbc1977d9d8e27a1cab2f9edce151fad}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_stop\_model\_training@{gst\_tensor\_trainer\_stop\_model\_training}}
\index{gst\_tensor\_trainer\_stop\_model\_training@{gst\_tensor\_trainer\_stop\_model\_training}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_stop\_model\_training()}{gst\_tensor\_trainer\_stop\_model\_training()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+trainer\+\_\+stop\+\_\+model\+\_\+training (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Stop model training. 



Definition at line 1328 of file gsttensor\+\_\+trainer.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_adbc1977d9d8e27a1cab2f9edce151fad_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a21015f8b3119fdae4b950050f74be08f}\label{gsttensor__trainer_8c_a21015f8b3119fdae4b950050f74be08f}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_wait\_for\_epoch\_completion@{gst\_tensor\_trainer\_wait\_for\_epoch\_completion}}
\index{gst\_tensor\_trainer\_wait\_for\_epoch\_completion@{gst\_tensor\_trainer\_wait\_for\_epoch\_completion}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_wait\_for\_epoch\_completion()}{gst\_tensor\_trainer\_wait\_for\_epoch\_completion()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+trainer\+\_\+wait\+\_\+for\+\_\+epoch\+\_\+completion (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Wait for epoch eompletion. 



Definition at line 590 of file gsttensor\+\_\+trainer.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a21015f8b3119fdae4b950050f74be08f_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a1c479f7d612da9f1d610b5188051b607}\label{gsttensor__trainer_8c_a1c479f7d612da9f1d610b5188051b607}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!gst\_tensor\_trainer\_wait\_for\_training\_completion@{gst\_tensor\_trainer\_wait\_for\_training\_completion}}
\index{gst\_tensor\_trainer\_wait\_for\_training\_completion@{gst\_tensor\_trainer\_wait\_for\_training\_completion}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{gst\_tensor\_trainer\_wait\_for\_training\_completion()}{gst\_tensor\_trainer\_wait\_for\_training\_completion()}}
{\footnotesize\ttfamily static void gst\+\_\+tensor\+\_\+trainer\+\_\+wait\+\_\+for\+\_\+training\+\_\+completion (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{gsttensor__trainer_8h_adbf7c1a90b920e0cb08a16dcde61a28b}{Gst\+Tensor\+Trainer}} $\ast$}]{trainer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Wait for training completion. 



Definition at line 955 of file gsttensor\+\_\+trainer.\+c.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a1c479f7d612da9f1d610b5188051b607_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_ae98653dc4018274cb466a41b27d61f0d}\label{gsttensor__trainer_8c_ae98653dc4018274cb466a41b27d61f0d}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!nnstreamer\_trainer\_exit@{nnstreamer\_trainer\_exit}}
\index{nnstreamer\_trainer\_exit@{nnstreamer\_trainer\_exit}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_trainer\_exit()}{nnstreamer\_trainer\_exit()}}
{\footnotesize\ttfamily int nnstreamer\+\_\+trainer\+\_\+exit (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{nnstreamer__plugin__api__trainer_8h_ac349cd79cfa1849ccec1b439cf4178d4}{Gst\+Tensor\+Trainer\+Framework}} $\ast$}]{ttsp }\end{DoxyParamCaption})}



Trainer\textquotesingle{}s sub-\/plugin may call this to unregister itself. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ttsp} & tensor\+\_\+trainer sub-\/plugin to be unregistered. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE if unregistered. F\+A\+L\+SE is failed. 
\end{DoxyReturn}


Definition at line 1398 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_ae98653dc4018274cb466a41b27d61f0d_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{gsttensor__trainer_8c_a683339281e8aad384c51c502b2e3f438}\label{gsttensor__trainer_8c_a683339281e8aad384c51c502b2e3f438}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!nnstreamer\_trainer\_notify\_event@{nnstreamer\_trainer\_notify\_event}}
\index{nnstreamer\_trainer\_notify\_event@{nnstreamer\_trainer\_notify\_event}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_trainer\_notify\_event()}{nnstreamer\_trainer\_notify\_event()}}
{\footnotesize\ttfamily void nnstreamer\+\_\+trainer\+\_\+notify\+\_\+event (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{nnstreamer__plugin__api__trainer_8h_a7fb58afa4d009e4e4fd4fd96919e79cf}{Gst\+Tensor\+Trainer\+Event\+Notifier}} $\ast$}]{notifier,  }\item[{\mbox{\hyperlink{nnstreamer__plugin__api__trainer_8h_a77debe11c1cb2e7c6679aa31141f8577}{Gst\+Tensor\+Trainer\+Event\+Type}}}]{type,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})}



Trainer\textquotesingle{}s sub-\/plugin may call this to send event. 

Trainer\textquotesingle{}s sub-\/plugin call this to notify event.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em notifier} & event notifier, sub-\/plugin must send events with this. \\
\hline
\mbox{\texttt{ in}}  & {\em type} & event type \\
\hline
\end{DoxyParams}


Definition at line 1425 of file gsttensor\+\_\+trainer.\+c.

\mbox{\Hypertarget{gsttensor__trainer_8c_a9622abd6aa52d8a47e5805b148761c23}\label{gsttensor__trainer_8c_a9622abd6aa52d8a47e5805b148761c23}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!nnstreamer\_trainer\_probe@{nnstreamer\_trainer\_probe}}
\index{nnstreamer\_trainer\_probe@{nnstreamer\_trainer\_probe}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{nnstreamer\_trainer\_probe()}{nnstreamer\_trainer\_probe()}}
{\footnotesize\ttfamily int nnstreamer\+\_\+trainer\+\_\+probe (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{nnstreamer__plugin__api__trainer_8h_ac349cd79cfa1849ccec1b439cf4178d4}{Gst\+Tensor\+Trainer\+Framework}} $\ast$}]{ttsp }\end{DoxyParamCaption})}



Trainer\textquotesingle{}s sub-\/plugin should call this function to register itself. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ttsp} & tensor\+\_\+trainer sub-\/plugin to be registered. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\+R\+UE if registered. F\+A\+L\+SE is failed or duplicated. 
\end{DoxyReturn}


Definition at line 1371 of file gsttensor\+\_\+trainer.\+c.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{gsttensor__trainer_8c_a9622abd6aa52d8a47e5805b148761c23_cgraph}
\end{center}
\end{figure}


\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{gsttensor__trainer_8c_a26e2485c5fd610ac13e266fb32008cf7}\label{gsttensor__trainer_8c_a26e2485c5fd610ac13e266fb32008cf7}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!sink\_template@{sink\_template}}
\index{sink\_template@{sink\_template}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{sink\_template}{sink\_template}}
{\footnotesize\ttfamily Gst\+Static\+Pad\+Template sink\+\_\+template\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= GST\_STATIC\_PAD\_TEMPLATE (\textcolor{stringliteral}{"sink"},}
\DoxyCodeLine{    GST\_PAD\_SINK,}
\DoxyCodeLine{    GST\_PAD\_ALWAYS,}
\DoxyCodeLine{    GST\_STATIC\_CAPS (\mbox{\hyperlink{gsttensor__trainer_8c_a556efd87f8a6ff0adcffa2546f3b81ef}{SINK\_CAPS\_STRING}}))}

\end{DoxyCode}


The capabilities of the sink pad. 



Definition at line 50 of file gsttensor\+\_\+trainer.\+c.

\mbox{\Hypertarget{gsttensor__trainer_8c_a643731249f31c7864f3fb8d64d41a373}\label{gsttensor__trainer_8c_a643731249f31c7864f3fb8d64d41a373}} 
\index{gsttensor\_trainer.c@{gsttensor\_trainer.c}!src\_template@{src\_template}}
\index{src\_template@{src\_template}!gsttensor\_trainer.c@{gsttensor\_trainer.c}}
\doxysubsubsection{\texorpdfstring{src\_template}{src\_template}}
{\footnotesize\ttfamily Gst\+Static\+Pad\+Template src\+\_\+template\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= GST\_STATIC\_PAD\_TEMPLATE (\textcolor{stringliteral}{"src"},}
\DoxyCodeLine{    GST\_PAD\_SRC,}
\DoxyCodeLine{    GST\_PAD\_ALWAYS,}
\DoxyCodeLine{    GST\_STATIC\_CAPS (\mbox{\hyperlink{gsttensor__trainer_8c_adbe2e622143fef629af7af48208b0fbd}{SRC\_CAPS\_STRING}}))}

\end{DoxyCode}


The capabilities of the src pad. 



Definition at line 58 of file gsttensor\+\_\+trainer.\+c.

