\section{Meta\+Info\+Extractor$<$ M\+L\+Algorithm, MT, PT, WT $>$ Class Template Reference}
\label{classmlpack_1_1cv_1_1MetaInfoExtractor}\index{Meta\+Info\+Extractor$<$ M\+L\+Algorithm, M\+T, P\+T, W\+T $>$@{Meta\+Info\+Extractor$<$ M\+L\+Algorithm, M\+T, P\+T, W\+T $>$}}


\doxyref{Meta\+Info\+Extractor}{p.}{classmlpack_1_1cv_1_1MetaInfoExtractor} is a tool for extracting meta information about a given machine learning algorithm.  


\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
using \textbf{ Predictions\+Type} = typename Select$<$ \textbf{ T\+F1}, \textbf{ T\+F2}, \textbf{ T\+F3}, \textbf{ T\+F4}, \textbf{ T\+F5} $>$\+::Type\+::\+Predictions\+Type
\begin{DoxyCompactList}\small\item\em The type of predictions used in M\+L\+Algorithm. \end{DoxyCompactList}\item 
using \textbf{ Weights\+Type} = typename Select$<$ \textbf{ W\+T\+F1}, \textbf{ W\+T\+F2}, \textbf{ W\+T\+F3}, \textbf{ W\+T\+F4}, \textbf{ W\+T\+F5} $>$\+::Type\+::\+Weights\+Type
\begin{DoxyCompactList}\small\item\em The type of weights used in M\+L\+Algorithm. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
static const bool \textbf{ Is\+Supported} = !std\+::is\+\_\+same$<$\textbf{ Predictions\+Type}, void$\ast$$>$\+::value
\begin{DoxyCompactList}\small\item\em An indication whether Predictions\+Type has been identified (i.\+e. \end{DoxyCompactList}\item 
static const bool \textbf{ Supports\+Weights} = !std\+::is\+\_\+same$<$\textbf{ Weights\+Type}, void$\ast$$>$\+::value
\begin{DoxyCompactList}\small\item\em An indication whether M\+L\+Algorithm supports weighted learning. \end{DoxyCompactList}\item 
static const bool \textbf{ Takes\+Dataset\+Info} = Selects$<$\textbf{ T\+F5}$>$\+::value
\begin{DoxyCompactList}\small\item\em An indication whether M\+L\+Algorithm takes a \doxyref{data\+::\+Dataset\+Info}{p.}{namespacemlpack_1_1data_aa243ad7e4d29363b858bbc92b732921d} parameter. \end{DoxyCompactList}\item 
static const bool \textbf{ Takes\+Num\+Classes} = Selects$<$\textbf{ T\+F4}, \textbf{ T\+F5}$>$\+::value
\begin{DoxyCompactList}\small\item\em An indication whether M\+L\+Algorithm takes the num\+Classes (size\+\_\+t) parameter. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename M\+L\+Algorithm, typename MT = arma\+::mat, typename PT = arma\+::\+Row$<$size\+\_\+t$>$, typename WT = arma\+::rowvec$>$\newline
class mlpack\+::cv\+::\+Meta\+Info\+Extractor$<$ M\+L\+Algorithm, M\+T, P\+T, W\+T $>$}

\doxyref{Meta\+Info\+Extractor}{p.}{classmlpack_1_1cv_1_1MetaInfoExtractor} is a tool for extracting meta information about a given machine learning algorithm. 

It can be used to automatically extract the type of predictions and weights (if weighted learning is supported), whether the machine learning algorithm takes a Dataset\+Info parameter or a num\+Classes parameter.

The following assumptions are made about the machine learning algorithm.
\begin{DoxyEnumerate}
\item All needed information can be extracted from signatures of Train methods.
\item The machine learning algorithm contains either only non-\/templated Train methods or only templated ones.
\item Train methods that can be used for extraction of needed information should be distinguishable by a number of arguments (for more information read discussion in {\tt https\+://github.\+com/mlpack/mlpack/issues/929}).
\item If weighted learning is supported, passing weights is an option rather than a requirement.
\end{DoxyEnumerate}


\begin{DoxyTemplParams}{Template Parameters}
{\em M\+L\+Algorithm} & A machine learning algorithm to investigate. \\
\hline
{\em MT} & The type of data. \\
\hline
{\em PT} & The type of predictions (should be passed when the predictions type is a template parameter in Train methods of M\+L\+Algorithm). \\
\hline
{\em WT} & The type of weights (should be passed when weighted learning is supported, and the weights type is a template parameter in Train methods of M\+L\+Algorithm). \\
\hline
\end{DoxyTemplParams}


Definition at line 272 of file meta\+\_\+info\+\_\+extractor.\+hpp.



\subsection{Member Typedef Documentation}
\mbox{\label{classmlpack_1_1cv_1_1MetaInfoExtractor_a77d035e0244a4c0b92866be6d3741596}} 
\index{mlpack\+::cv\+::\+Meta\+Info\+Extractor@{mlpack\+::cv\+::\+Meta\+Info\+Extractor}!Predictions\+Type@{Predictions\+Type}}
\index{Predictions\+Type@{Predictions\+Type}!mlpack\+::cv\+::\+Meta\+Info\+Extractor@{mlpack\+::cv\+::\+Meta\+Info\+Extractor}}
\subsubsection{Predictions\+Type}
{\footnotesize\ttfamily using \textbf{ Predictions\+Type} =  typename Select$<$\textbf{ T\+F1}, \textbf{ T\+F2}, \textbf{ T\+F3}, \textbf{ T\+F4}, \textbf{ T\+F5}$>$\+::Type\+::\+Predictions\+Type}



The type of predictions used in M\+L\+Algorithm. 

It is equal to void$\ast$ if the extraction fails. 

Definition at line 319 of file meta\+\_\+info\+\_\+extractor.\+hpp.

\mbox{\label{classmlpack_1_1cv_1_1MetaInfoExtractor_aaeb8180f55243194b4ba4ad792cdc586}} 
\index{mlpack\+::cv\+::\+Meta\+Info\+Extractor@{mlpack\+::cv\+::\+Meta\+Info\+Extractor}!Weights\+Type@{Weights\+Type}}
\index{Weights\+Type@{Weights\+Type}!mlpack\+::cv\+::\+Meta\+Info\+Extractor@{mlpack\+::cv\+::\+Meta\+Info\+Extractor}}
\subsubsection{Weights\+Type}
{\footnotesize\ttfamily using \textbf{ Weights\+Type} =  typename Select$<$\textbf{ W\+T\+F1}, \textbf{ W\+T\+F2}, \textbf{ W\+T\+F3}, \textbf{ W\+T\+F4}, \textbf{ W\+T\+F5}$>$\+::Type\+::\+Weights\+Type}



The type of weights used in M\+L\+Algorithm. 

It is equal to void$\ast$ if the extraction fails. 

Definition at line 326 of file meta\+\_\+info\+\_\+extractor.\+hpp.



\subsection{Member Data Documentation}
\mbox{\label{classmlpack_1_1cv_1_1MetaInfoExtractor_a03f5301f82961c51fb0b6e4e3b89aae0}} 
\index{mlpack\+::cv\+::\+Meta\+Info\+Extractor@{mlpack\+::cv\+::\+Meta\+Info\+Extractor}!Is\+Supported@{Is\+Supported}}
\index{Is\+Supported@{Is\+Supported}!mlpack\+::cv\+::\+Meta\+Info\+Extractor@{mlpack\+::cv\+::\+Meta\+Info\+Extractor}}
\subsubsection{Is\+Supported}
{\footnotesize\ttfamily const bool Is\+Supported = !std\+::is\+\_\+same$<$\textbf{ Predictions\+Type}, void$\ast$$>$\+::value\hspace{0.3cm}{\ttfamily [static]}}



An indication whether Predictions\+Type has been identified (i.\+e. 

M\+L\+Algorithm is supported by \doxyref{Meta\+Info\+Extractor}{p.}{classmlpack_1_1cv_1_1MetaInfoExtractor}). 

Definition at line 332 of file meta\+\_\+info\+\_\+extractor.\+hpp.

\mbox{\label{classmlpack_1_1cv_1_1MetaInfoExtractor_af9be7f6c420e961867c5945da0a3a339}} 
\index{mlpack\+::cv\+::\+Meta\+Info\+Extractor@{mlpack\+::cv\+::\+Meta\+Info\+Extractor}!Supports\+Weights@{Supports\+Weights}}
\index{Supports\+Weights@{Supports\+Weights}!mlpack\+::cv\+::\+Meta\+Info\+Extractor@{mlpack\+::cv\+::\+Meta\+Info\+Extractor}}
\subsubsection{Supports\+Weights}
{\footnotesize\ttfamily const bool Supports\+Weights = !std\+::is\+\_\+same$<$\textbf{ Weights\+Type}, void$\ast$$>$\+::value\hspace{0.3cm}{\ttfamily [static]}}



An indication whether M\+L\+Algorithm supports weighted learning. 



Definition at line 337 of file meta\+\_\+info\+\_\+extractor.\+hpp.

\mbox{\label{classmlpack_1_1cv_1_1MetaInfoExtractor_ae50c72f23be6bf92e820b643ae123189}} 
\index{mlpack\+::cv\+::\+Meta\+Info\+Extractor@{mlpack\+::cv\+::\+Meta\+Info\+Extractor}!Takes\+Dataset\+Info@{Takes\+Dataset\+Info}}
\index{Takes\+Dataset\+Info@{Takes\+Dataset\+Info}!mlpack\+::cv\+::\+Meta\+Info\+Extractor@{mlpack\+::cv\+::\+Meta\+Info\+Extractor}}
\subsubsection{Takes\+Dataset\+Info}
{\footnotesize\ttfamily const bool Takes\+Dataset\+Info = Selects$<$\textbf{ T\+F5}$>$\+::value\hspace{0.3cm}{\ttfamily [static]}}



An indication whether M\+L\+Algorithm takes a \doxyref{data\+::\+Dataset\+Info}{p.}{namespacemlpack_1_1data_aa243ad7e4d29363b858bbc92b732921d} parameter. 



Definition at line 342 of file meta\+\_\+info\+\_\+extractor.\+hpp.

\mbox{\label{classmlpack_1_1cv_1_1MetaInfoExtractor_a0e921a4d1000043d71e5a6fbad480315}} 
\index{mlpack\+::cv\+::\+Meta\+Info\+Extractor@{mlpack\+::cv\+::\+Meta\+Info\+Extractor}!Takes\+Num\+Classes@{Takes\+Num\+Classes}}
\index{Takes\+Num\+Classes@{Takes\+Num\+Classes}!mlpack\+::cv\+::\+Meta\+Info\+Extractor@{mlpack\+::cv\+::\+Meta\+Info\+Extractor}}
\subsubsection{Takes\+Num\+Classes}
{\footnotesize\ttfamily const bool Takes\+Num\+Classes = Selects$<$\textbf{ T\+F4}, \textbf{ T\+F5}$>$\+::value\hspace{0.3cm}{\ttfamily [static]}}



An indication whether M\+L\+Algorithm takes the num\+Classes (size\+\_\+t) parameter. 



Definition at line 347 of file meta\+\_\+info\+\_\+extractor.\+hpp.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
/var/www/mlpack.\+ratml.\+org/mlpack.\+org/\+\_\+src/mlpack-\/3.\+3.\+2/src/mlpack/core/cv/\textbf{ meta\+\_\+info\+\_\+extractor.\+hpp}\end{DoxyCompactItemize}
