[mlpack-svn] r15854 - mlpack/trunk/src/mlpack/methods/nmf
fastlab-svn at coffeetalk-1.cc.gatech.edu
fastlab-svn at coffeetalk-1.cc.gatech.edu
Thu Sep 26 21:47:32 EDT 2013
Author: rcurtin
Date: Thu Sep 26 21:47:32 2013
New Revision: 15854
Log:
Update NMF to work with sparse matrices also.
Modified:
mlpack/trunk/src/mlpack/methods/nmf/als_update_rules.hpp
mlpack/trunk/src/mlpack/methods/nmf/mult_div_update_rules.hpp
mlpack/trunk/src/mlpack/methods/nmf/nmf.hpp
mlpack/trunk/src/mlpack/methods/nmf/nmf_impl.hpp
mlpack/trunk/src/mlpack/methods/nmf/random_acol_init.hpp
mlpack/trunk/src/mlpack/methods/nmf/random_init.hpp
Modified: mlpack/trunk/src/mlpack/methods/nmf/als_update_rules.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/methods/nmf/als_update_rules.hpp (original)
+++ mlpack/trunk/src/mlpack/methods/nmf/als_update_rules.hpp Thu Sep 26 21:47:32 2013
@@ -38,7 +38,8 @@
* @param W Basis matrix to be updated.
* @param H Encoding matrix.
*/
- inline static void Update(const arma::mat& V,
+ template<typename MatType>
+ inline static void Update(const MatType& V,
arma::mat& W,
const arma::mat& H)
{
@@ -77,7 +78,8 @@
* @param W Basis matrix.
* @param H Encoding matrix to be updated.
*/
- inline static void Update(const arma::mat& V,
+ template<typename MatType>
+ inline static void Update(const MatType& V,
const arma::mat& W,
arma::mat& H)
{
Modified: mlpack/trunk/src/mlpack/methods/nmf/mult_div_update_rules.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/methods/nmf/mult_div_update_rules.hpp (original)
+++ mlpack/trunk/src/mlpack/methods/nmf/mult_div_update_rules.hpp Thu Sep 26 21:47:32 2013
@@ -39,7 +39,8 @@
* @param W Basis matrix to be updated.
* @param H Encoding matrix.
*/
- inline static void Update(const arma::mat& V,
+ template<typename MatType>
+ inline static void Update(const MatType& V,
arma::mat& W,
const arma::mat& H)
{
@@ -80,7 +81,8 @@
* @param W Basis matrix.
* @param H Encoding matrix to updated.
*/
- inline static void Update(const arma::mat& V,
+ template<typename MatType>
+ inline static void Update(const MatType& V,
const arma::mat& W,
arma::mat& H)
{
Modified: mlpack/trunk/src/mlpack/methods/nmf/nmf.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/methods/nmf/nmf.hpp (original)
+++ mlpack/trunk/src/mlpack/methods/nmf/nmf.hpp Thu Sep 26 21:47:32 2013
@@ -104,8 +104,11 @@
* @param H Encoding matrix to output.
* @param r Rank r of the factorization.
*/
- void Apply(const arma::mat& V, const size_t r, arma::mat& W, arma::mat& H)
- const;
+ template<typename MatType>
+ void Apply(const MatType& V,
+ const size_t r,
+ arma::mat& W,
+ arma::mat& H) const;
private:
//! The maximum number of iterations allowed before giving up.
Modified: mlpack/trunk/src/mlpack/methods/nmf/nmf_impl.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/methods/nmf/nmf_impl.hpp (original)
+++ mlpack/trunk/src/mlpack/methods/nmf/nmf_impl.hpp Thu Sep 26 21:47:32 2013
@@ -46,8 +46,9 @@
template<typename InitializationRule,
typename WUpdateRule,
typename HUpdateRule>
+template<typename MatType>
void NMF<InitializationRule, WUpdateRule, HUpdateRule>::Apply(
- const arma::mat& V,
+ const MatType& V,
const size_t r,
arma::mat& W,
arma::mat& H) const
Modified: mlpack/trunk/src/mlpack/methods/nmf/random_acol_init.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/methods/nmf/random_acol_init.hpp (original)
+++ mlpack/trunk/src/mlpack/methods/nmf/random_acol_init.hpp Thu Sep 26 21:47:32 2013
@@ -31,7 +31,8 @@
RandomAcolInitialization()
{ }
- inline static void Initialize(const arma::mat& V,
+ template<typename MatType>
+ inline static void Initialize(const MatType& V,
const size_t r,
arma::mat& W,
arma::mat& H)
Modified: mlpack/trunk/src/mlpack/methods/nmf/random_init.hpp
==============================================================================
--- mlpack/trunk/src/mlpack/methods/nmf/random_init.hpp (original)
+++ mlpack/trunk/src/mlpack/methods/nmf/random_init.hpp Thu Sep 26 21:47:32 2013
@@ -19,7 +19,8 @@
// Empty constructor required for the InitializeRule template
RandomInitialization() { }
- inline static void Initialize(const arma::mat& V,
+ template<typename MatType>
+ inline static void Initialize(const MatType& V,
const size_t r,
arma::mat& W,
arma::mat& H)
More information about the mlpack-svn
mailing list