planc
Parallel Lowrank Approximation with Non-negativity Constraints
sampletest.cpp
Go to the documentation of this file.
1 /* Copyright 2016 Ramakrishnan Kannan */
2 
3 void testSmall() {
4  fmat A, W, H;
5  A.load("/scratch/ramki/datasets/xdata/bpp/A_rnd.csv");
6  BPPNMF<fmat> bppnmf2(A, 5);
7  INFO << "completed constructor" << endl;
8  double t1 = omp_get_wtime();
9  bppnmf2.computeNMF();
10  double t2 = omp_get_wtime();
11  OUTPUT << bppnmf2.getLeftLowRankFactor() << endl;
12  OUTPUT << bppnmf2.getRightLowRankFactor() << endl;
13  INFO << "Computed Fast NMF with multiple RHS!!!:"
14  << norm((A - bppnmf2.getLeftLowRankFactor() *
15  bppnmf2.getRightLowRankFactor().t()),
16  "fro")
17  << endl;
18  INFO << "time taken:" << (t2 - t1) << endl;
19 }
20 
21 void testLowRank() {
22  fmat A, W, H;
23  W.load("/scratch/ramki/datasets/xdata/bpp/w_lr_init.csv");
24  H.load("/scratch/ramki/datasets/xdata/bpp/h_lr_init.csv");
25  W = W.rows(0, 50000);
26  H = H.rows(0, 100000);
27  INFO << "compled loading the matrices W.m=" << W.n_rows << " W.n=" << W.n_cols
28  << " H.m=" << H.n_rows << " H.n=" << H.n_cols << endl;
29  A = W * H.t();
30  INFO << "created input matrix m=" << A.n_rows << " n=" << A.n_cols << endl;
31  BPPNMF<fmat> bppnmf2(A, 100);
32  INFO << "completed constructor" << endl;
33  double t1 = omp_get_wtime();
34  bppnmf2.computeNMF();
35  double t2 = omp_get_wtime();
36  INFO << "Computed Fast NMF with multiple RHS!!!:"
37  << norm((A - bppnmf2.getLeftLowRankFactor() *
38  bppnmf2.getRightLowRankFactor().t()),
39  "fro")
40  << endl;
41  INFO << "time taken:" << (t2 - t1) << endl;
42  bppnmf2.getLeftLowRankFactor().save(
43  "/scratch/ramki/datasets/xdata/bpp/w_lr_bpp_output.csv", raw_ascii);
44  bppnmf2.getRightLowRankFactor().save(
45  "/scratch/ramki/datasets/xdata/bpp/h_lr_bpp_output.csv", raw_ascii);
46 }
void testLowRank()
Definition: sampletest.cpp:21
void testSmall()
Definition: sampletest.cpp:3
#define INFO
Definition: utils.h:36
#define OUTPUT
Definition: utils.h:40