12 #ifndef MLPACK_METHODS_SOFTMAX_REGRESSION_SOFTMAX_REGRESSION_IMPL_HPP 13 #define MLPACK_METHODS_SOFTMAX_REGRESSION_SOFTMAX_REGRESSION_IMPL_HPP 19 namespace regression {
21 template<
typename OptimizerType>
23 const arma::mat&
data,
24 const arma::Row<size_t>& labels,
25 const size_t numClasses,
27 const bool fitIntercept,
28 OptimizerType optimizer) :
29 numClasses(numClasses),
31 fitIntercept(fitIntercept)
33 Train(data, labels, numClasses, optimizer);
36 template<
typename OptimizerType,
typename... CallbackTypes>
38 const arma::mat&
data,
39 const arma::Row<size_t>& labels,
40 const size_t numClasses,
42 const bool fitIntercept,
43 OptimizerType optimizer,
44 CallbackTypes&&... callbacks) :
45 numClasses(numClasses),
47 fitIntercept(fitIntercept)
49 Train(data, labels, numClasses, optimizer, callbacks...);
52 template<
typename VecType>
55 arma::Row<size_t> label(1);
57 return size_t(label(0));
60 template<
typename OptimizerType>
62 const arma::Row<size_t>& labels,
63 const size_t numClasses,
64 OptimizerType optimizer)
73 const double out = optimizer.Optimize(regressor, parameters);
76 Log::Info <<
"SoftmaxRegression::SoftmaxRegression(): final objective of " 77 <<
"trained model is " << out <<
"." << std::endl;
82 template<
typename OptimizerType,
typename... CallbackTypes>
84 const arma::Row<size_t>& labels,
85 const size_t numClasses,
86 OptimizerType optimizer,
87 CallbackTypes&&... callbacks)
96 const double out = optimizer.Optimize(regressor, parameters, callbacks...);
99 Log::Info <<
"SoftmaxRegression::SoftmaxRegression(): final objective of " 100 <<
"trained model is " << out <<
"." << std::endl;
static void Start(const std::string &name)
Start the given timer.
Definition: timers.cpp:28
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
static void Stop(const std::string &name)
Stop the given timer.
Definition: timers.cpp:36
void Classify(const arma::mat &dataset, arma::Row< size_t > &labels) const
Classify the given points, returning the predicted labels for each point.
Definition: softmax_regression.cpp:30
SoftmaxRegression(const size_t inputSize=0, const size_t numClasses=0, const bool fitIntercept=false)
Initialize the SoftmaxRegression without performing training.
Definition: softmax_regression.cpp:19
static MLPACK_EXPORT util::PrefixedOutStream Info
Prints informational messages if –verbose is specified, prefixed with [INFO ].
Definition: log.hpp:84
Definition: softmax_regression_function.hpp:21
double Train(const arma::mat &data, const arma::Row< size_t > &labels, const size_t numClasses, OptimizerType optimizer=OptimizerType())
Train the softmax regression with the given training data.
Definition: softmax_regression_impl.hpp:61
const arma::mat & GetInitialPoint() const
Return the initial point for the optimization.
Definition: softmax_regression_function.hpp:167