Add callback to lmnn

This commit is contained in:
jeffinsam
2019-11-03 11:23:56 +05:30
parent 1038dea80e
commit d81c298b9c
2 changed files with 6 additions and 3 deletions
+2 -1
View File
@@ -79,7 +79,8 @@ class LMNN
*
* @param outputMatrix Covariance matrix of Mahalanobis distance.
*/
void LearnDistance(arma::mat& outputMatrix);
template<typename... CallbackTypes>
void LearnDistance(arma::mat& outputMatrix, CallbackTypes&&... callbacks);
//! Get the dataset reference.
+4 -2
View File
@@ -36,7 +36,9 @@ LMNN<MetricType, OptimizerType>::LMNN(const arma::mat& dataset,
{ /* nothing to do */ }
template<typename MetricType, typename OptimizerType>
void LMNN<MetricType, OptimizerType>::LearnDistance(arma::mat& outputMatrix)
template<typename... CallbackTypes>
void LMNN<MetricType, OptimizerType>::LearnDistance(arma::mat& outputMatrix,
CallbackTypes&&... callbacks)
{
// LMNN objective function.
LMNNFunction<MetricType> objFunction(dataset, labels, k,
@@ -56,7 +58,7 @@ void LMNN<MetricType, OptimizerType>::LearnDistance(arma::mat& outputMatrix)
Timer::Start("lmnn_optimization");
optimizer.Optimize(objFunction, outputMatrix);
optimizer.Optimize(objFunction, outputMatrix, callbacks...);
Timer::Stop("lmnn_optimization");
}