mlpack
master
|
A utility struct to contain all the possible FastMKS models, for use by the mlpack_fastmks program. More...
Public Types | |
enum | KernelTypes { LINEAR_KERNEL, POLYNOMIAL_KERNEL, COSINE_DISTANCE, GAUSSIAN_KERNEL, EPANECHNIKOV_KERNEL, TRIANGULAR_KERNEL, HYPTAN_KERNEL } |
A list of all the kernels we support. More... | |
Public Member Functions | |
FastMKSModel (const int kernelType=LINEAR_KERNEL) | |
Create the FastMKSModel with the given kernel type. More... | |
FastMKSModel (const FastMKSModel &other) | |
Copy constructor. More... | |
FastMKSModel (FastMKSModel &&other) | |
Move constructor. More... | |
~FastMKSModel () | |
Clean memory. More... | |
template<typename TKernelType > | |
void | BuildModel (const arma::mat &referenceData, TKernelType &kernel, const bool singleMode, const bool naive, const double base) |
Build the model on the given reference set. More... | |
int | KernelType () const |
Get the kernel type. More... | |
int & | KernelType () |
Modify the kernel type. More... | |
bool | Naive () const |
Get whether or not naive search is used. More... | |
bool & | Naive () |
Set whether or not naive search is used. More... | |
FastMKSModel & | operator= (const FastMKSModel &other) |
Copy assignment operator. More... | |
void | Search (const arma::mat &querySet, const size_t k, arma::Mat< size_t > &indices, arma::mat &kernels, const double base) |
Search with a different query set. More... | |
void | Search (const size_t k, arma::Mat< size_t > &indices, arma::mat &kernels) |
Search with the reference set as the query set. More... | |
template<typename Archive > | |
void | Serialize (Archive &ar, const unsigned int) |
Serialize the model. More... | |
bool | SingleMode () const |
Get whether or not single-tree search is used. More... | |
bool & | SingleMode () |
Set whether or not single-tree search is used. More... | |
Private Member Functions | |
template<typename FastMKSType > | |
void | Search (FastMKSType &f, const arma::mat &querySet, const size_t k, arma::Mat< size_t > &indices, arma::mat &kernels, const double base) |
Build a query tree and execute the search. More... | |
Private Attributes | |
FastMKS< kernel::CosineDistance > * | cosine |
This will only be non-NULL if this is the type of kernel we are using. More... | |
FastMKS< kernel::EpanechnikovKernel > * | epan |
This will only be non-NULL if this is the type of kernel we are using. More... | |
FastMKS< kernel::GaussianKernel > * | gaussian |
This will only be non-NULL if this is the type of kernel we are using. More... | |
FastMKS< kernel::HyperbolicTangentKernel > * | hyptan |
This will only be non-NULL if this is the type of kernel we are using. More... | |
int | kernelType |
The type of kernel we are using. More... | |
FastMKS< kernel::LinearKernel > * | linear |
This will only be non-NULL if this is the type of kernel we are using. More... | |
FastMKS< kernel::PolynomialKernel > * | polynomial |
This will only be non-NULL if this is the type of kernel we are using. More... | |
FastMKS< kernel::TriangularKernel > * | triangular |
This will only be non-NULL if this is the type of kernel we are using. More... | |
A utility struct to contain all the possible FastMKS models, for use by the mlpack_fastmks program.
Definition at line 34 of file fastmks_model.hpp.
A list of all the kernels we support.
Enumerator | |
---|---|
LINEAR_KERNEL | |
POLYNOMIAL_KERNEL | |
COSINE_DISTANCE | |
GAUSSIAN_KERNEL | |
EPANECHNIKOV_KERNEL | |
TRIANGULAR_KERNEL | |
HYPTAN_KERNEL |
Definition at line 38 of file fastmks_model.hpp.
mlpack::fastmks::FastMKSModel::FastMKSModel | ( | const int | kernelType = LINEAR_KERNEL | ) |
Create the FastMKSModel with the given kernel type.
mlpack::fastmks::FastMKSModel::FastMKSModel | ( | const FastMKSModel & | other | ) |
Copy constructor.
mlpack::fastmks::FastMKSModel::FastMKSModel | ( | FastMKSModel && | other | ) |
Move constructor.
mlpack::fastmks::FastMKSModel::~FastMKSModel | ( | ) |
Clean memory.
void mlpack::fastmks::FastMKSModel::BuildModel | ( | const arma::mat & | referenceData, |
TKernelType & | kernel, | ||
const bool | singleMode, | ||
const bool | naive, | ||
const double | base | ||
) |
Build the model on the given reference set.
Make sure kernelType is equal to the correct entry in KernelTypes for the given KernelType class!
|
inline |
|
inline |
Modify the kernel type.
Definition at line 92 of file fastmks_model.hpp.
References kernelType, Search(), and Serialize().
bool mlpack::fastmks::FastMKSModel::Naive | ( | ) | const |
Get whether or not naive search is used.
bool& mlpack::fastmks::FastMKSModel::Naive | ( | ) |
Set whether or not naive search is used.
FastMKSModel& mlpack::fastmks::FastMKSModel::operator= | ( | const FastMKSModel & | other | ) |
Copy assignment operator.
void mlpack::fastmks::FastMKSModel::Search | ( | const arma::mat & | querySet, |
const size_t | k, | ||
arma::Mat< size_t > & | indices, | ||
arma::mat & | kernels, | ||
const double | base | ||
) |
Search with a different query set.
querySet | Set to search with. |
k | Number of max-kernel candidates to search for. |
indices | A matrix in which to store the indices of max-kernel candidates. |
kernels | A matrix in which to store the max-kernel candidate kernel values. |
base | Base to use for cover tree building (if in dual-tree search mode). |
Referenced by KernelType().
void mlpack::fastmks::FastMKSModel::Search | ( | const size_t | k, |
arma::Mat< size_t > & | indices, | ||
arma::mat & | kernels | ||
) |
Search with the reference set as the query set.
k | Number of max-kernel candidates to search for. |
indices | A matrix in which to store the indices of max-kernel candidates. |
kernels | A matrix in which to store the max-kernel candidate kernel values. |
|
private |
Build a query tree and execute the search.
void mlpack::fastmks::FastMKSModel::Serialize | ( | Archive & | ar, |
const unsigned | int | ||
) |
Serialize the model.
Referenced by KernelType().
bool mlpack::fastmks::FastMKSModel::SingleMode | ( | ) | const |
Get whether or not single-tree search is used.
bool& mlpack::fastmks::FastMKSModel::SingleMode | ( | ) |
Set whether or not single-tree search is used.
|
private |
This will only be non-NULL if this is the type of kernel we are using.
Definition at line 140 of file fastmks_model.hpp.
|
private |
This will only be non-NULL if this is the type of kernel we are using.
Definition at line 144 of file fastmks_model.hpp.
|
private |
This will only be non-NULL if this is the type of kernel we are using.
Definition at line 142 of file fastmks_model.hpp.
|
private |
This will only be non-NULL if this is the type of kernel we are using.
Definition at line 148 of file fastmks_model.hpp.
|
private |
The type of kernel we are using.
Definition at line 133 of file fastmks_model.hpp.
Referenced by KernelType().
|
private |
This will only be non-NULL if this is the type of kernel we are using.
Definition at line 136 of file fastmks_model.hpp.
|
private |
This will only be non-NULL if this is the type of kernel we are using.
Definition at line 138 of file fastmks_model.hpp.
|
private |
This will only be non-NULL if this is the type of kernel we are using.
Definition at line 146 of file fastmks_model.hpp.