Example usage for org.apache.mahout.math DenseMatrix DenseMatrix

List of usage examples for org.apache.mahout.math DenseMatrix DenseMatrix

Introduction

In this page you can find the example usage for org.apache.mahout.math DenseMatrix DenseMatrix.

Prototype

public DenseMatrix(int rows, int columns) 

Source Link

Document

Constructs an empty matrix of the given size.

Usage

From source file:com.cloudera.knittingboar.messages.GlobalParameterVectorUpdateMessage.java

License:Apache License

/**
 * message that is sent from the POLRMasterDriver to the POLRWorkerDrive
 * //  w ww. j  av a 2 s  . co  m
 * numCategories has to be 2 in the case of logistic regression
 * 
 * @param response_dst_host
 * @param numCategories
 * @param numFeatures
 */
public GlobalParameterVectorUpdateMessage(String response_dst_host, int numCategories, int numFeatures) {

    this.dst_host = response_dst_host;

    // beta = new DenseMatrix(numCategories - 1, numFeatures);
    this.parameter_vector = new DenseMatrix(numCategories - 1, numFeatures);

}

From source file:com.cloudera.knittingboar.messages.TestParameterVector.java

License:Apache License

public void testSerde() throws IOException {

    int classes = 20;
    int features = 10000;

    //GradientBuffer g = new GradientBuffer( classes, features );
    Matrix m = new DenseMatrix(classes, features);
    //m.set(0, 0, 0.1);
    //m.set(0, 1, 0.3);

    //g.numFeatures();

    for (int c = 0; c < classes - 1; c++) {

        for (int f = 0; f < features; f++) {

            m.set(c, f, (double) ((double) f / 10.0f));

        }//  w  w w  .  java2  s. c  o m

    }

    System.out.println("matrix created...");

    ParameterVector vec_gradient = new ParameterVector();
    vec_gradient.SrcWorkerPassCount = pass_count;
    vec_gradient.parameter_vector = m;
    vec_gradient.AvgLogLikelihood = -1.368f;
    vec_gradient.PercentCorrect = 72.68f;
    vec_gradient.TrainedRecords = 2500;

    assertEquals(10000, vec_gradient.numFeatures());
    assertEquals(10000, vec_gradient.parameter_vector.columnSize());

    assertEquals(20, vec_gradient.numCategories());
    assertEquals(20, vec_gradient.parameter_vector.rowSize());

    byte[] buf = vec_gradient.Serialize();

    ParameterVector vec_gradient_deserialized = new ParameterVector();
    vec_gradient_deserialized.Deserialize(buf);

    assertEquals(pass_count, vec_gradient_deserialized.SrcWorkerPassCount);
    assertEquals(0.1, vec_gradient_deserialized.parameter_vector.get(0, 1));
    assertEquals(0.2, vec_gradient_deserialized.parameter_vector.get(0, 2));
    assertEquals(0.3, vec_gradient_deserialized.parameter_vector.get(0, 3));
    assertEquals(0.4, vec_gradient_deserialized.parameter_vector.get(0, 4));
    assertEquals(0.5, vec_gradient_deserialized.parameter_vector.get(0, 5));

    assertEquals(-1.368f, vec_gradient_deserialized.AvgLogLikelihood);
    assertEquals(72.68f, vec_gradient_deserialized.PercentCorrect);
    assertEquals(2500, vec_gradient_deserialized.TrainedRecords);

}

From source file:com.cloudera.knittingboar.messages.TestParameterVectorGradient.java

License:Apache License

public void testSerde() throws IOException {

    int classes = 20;
    int features = 10000;

    //GradientBuffer g = new GradientBuffer( classes, features );
    Matrix m = new DenseMatrix(classes, features);
    //m.set(0, 0, 0.1);
    //m.set(0, 1, 0.3);

    //g.numFeatures();

    for (int c = 0; c < classes - 1; c++) {

        for (int f = 0; f < features; f++) {

            m.set(c, f, (double) ((double) f / 10.0f));

        }/*from  w ww .  j  a  va2  s  .c  o  m*/

    }

    System.out.println("matrix created...");

    ParameterVectorGradient vec_gradient = new ParameterVectorGradient();
    vec_gradient.SrcWorkerPassCount = pass_count;
    vec_gradient.parameter_vector = m;
    vec_gradient.AvgLogLikelihood = -1.368f;
    vec_gradient.PercentCorrect = 72.68f;
    vec_gradient.TrainedRecords = 2500;

    assertEquals(10000, vec_gradient.numFeatures());
    assertEquals(10000, vec_gradient.parameter_vector.columnSize());

    assertEquals(20, vec_gradient.numCategories());
    assertEquals(20, vec_gradient.parameter_vector.rowSize());

    byte[] buf = vec_gradient.Serialize();

    ParameterVectorGradient vec_gradient_deserialized = new ParameterVectorGradient();
    vec_gradient_deserialized.Deserialize(buf);

    assertEquals(pass_count, vec_gradient_deserialized.SrcWorkerPassCount);
    assertEquals(0.1, vec_gradient_deserialized.parameter_vector.get(0, 1));
    assertEquals(0.2, vec_gradient_deserialized.parameter_vector.get(0, 2));
    assertEquals(0.3, vec_gradient_deserialized.parameter_vector.get(0, 3));
    assertEquals(0.4, vec_gradient_deserialized.parameter_vector.get(0, 4));
    assertEquals(0.5, vec_gradient_deserialized.parameter_vector.get(0, 5));

    assertEquals(-1.368f, vec_gradient_deserialized.AvgLogLikelihood);
    assertEquals(72.68f, vec_gradient_deserialized.PercentCorrect);
    assertEquals(2500, vec_gradient_deserialized.TrainedRecords);

}

From source file:com.cloudera.knittingboar.sgd.GradientBuffer.java

License:Apache License

public GradientBuffer(int numCategories, int numFeatures) {

    this.numCategories = numCategories;
    this.gamma = new DenseMatrix(numCategories - 1, numFeatures);

}

From source file:com.cloudera.knittingboar.sgd.MultinomialLogisticRegressionParameterVectors_deprecated.java

License:Apache License

public MultinomialLogisticRegressionParameterVectors_deprecated(int numCategories, int numFeatures) {

    this.numCategories = numCategories;
    this.gamma = new DenseMatrix(numCategories - 1, numFeatures);

}

From source file:com.cloudera.knittingboar.sgd.ParallelOnlineLogisticRegression.java

License:Apache License

/**
 * Main constructor//from ww  w. jav  a  2  s  .  c  o m
 * 
 * 
 * 
 * @param numCategories
 * @param numFeatures
 * @param prior
 */
public ParallelOnlineLogisticRegression(int numCategories, int numFeatures, PriorFunction prior) {
    this.numCategories = numCategories;
    this.prior = prior;

    updateSteps = new DenseVector(numFeatures);
    updateCounts = new DenseVector(numFeatures).assign(perTermAnnealingOffset);
    beta = new DenseMatrix(numCategories - 1, numFeatures);

    // brand new factor for parallelization
    this.gamma = new GradientBuffer(numCategories, numFeatures);
}

From source file:com.cloudera.knittingboar.sgd.TestGradientBuffer.java

License:Apache License

public void testAccumulateGradientMatrix() {

    GradientBuffer g0 = new GradientBuffer(2, 2);

    g0.setCell(0, 0, 0.4);//from  w w  w  .  j a va 2  s  .  co  m
    g0.setCell(0, 1, 0.3);

    assertEquals(g0.numFeatures(), 2);

    /*    GradientBuffer g1 = new GradientBuffer( 2, 2 );
                
        g1.setCell(0, 0, 0.1);
        g1.setCell(0, 1, 0.3);
                
        assertEquals( g1.numFeatures(), 2 );
    */
    Matrix m = new DenseMatrix(2, 2);
    m.set(0, 0, 0.1);
    m.set(0, 1, 0.3);

    g0.AccumulateGradient(m);
    //m.get(arg0, arg1)
    // check source
    assertEquals(m.get(0, 0), 0.1);
    // check accumlation in g0
    assertEquals(g0.getCell(0, 0), 0.5);

    // check source
    assertEquals(m.get(0, 1), 0.3);
    // check accumlation in g0
    assertEquals(g0.getCell(0, 1), 0.6);

    System.out.println("matrix accumulation test done!");

    assertNotNull(0);

}

From source file:com.cloudera.knittingboar.sgd.TestGradientBuffer.java

License:Apache License

public void testAverageGradientBuffer() {

    System.out.println("testAverageGradientBuffer --------");

    GradientBuffer g0 = new GradientBuffer(2, 2);

    g0.setCell(0, 0, 0.1d);//from w w w.j  a  va2 s.  c om
    g0.setCell(0, 1, 0.5d);

    assertEquals(g0.numFeatures(), 2);

    Matrix m = new DenseMatrix(2, 2);
    m.set(0, 0, 0.5d);
    m.set(0, 1, 0.1d);

    g0.AccumulateGradient(m);
    //m.get(arg0, arg1)
    // check source
    assertEquals(m.get(0, 0), 0.5d);
    // check accumlation in g0
    //assertEquals( g0.getCell(0, 0), 0.6 );

    junit.framework.Assert.assertEquals(0.6d, g0.getCell(0, 0), 0.0001);

    // check source
    assertEquals(m.get(0, 1), 0.1d);
    // check accumlation in g0
    //    assertEquals( g0.getCell(0, 1), 0.6 );

    Utils.PrintVectorNonZero(g0.gamma.viewRow(0));
    //Utils.PrintVectorNonZero(g0.gamma.viewRow(1));

    g0.AverageAccumulations(2);

    Utils.PrintVectorNonZero(g0.gamma.viewRow(0));

    System.out.println("matrix accumulation AVG test done!");

    //System.out.println( "add test: " + ( 10.0d + 6.0d ) );

    assertNotNull(0);

}

From source file:com.cloudera.knittingboar.sgd.TestPOLRWorkerNode.java

License:Apache License

/**
 * [ ******* Rebuilding this currently ******* ]
 * // w  w w  .j a va 2s  .  com
 * Tests replacing the beta, presumably from the master, after we've run POLR a bit 
 * @throws Exception 
 */
public void testReplaceBetaMechanics() throws Exception {

    System.out.println("\n------ testReplaceBetaMechanics --------- ");

    // ---- this all needs to be done in 
    JobConf job = new JobConf(defaultConf);

    InputSplit[] splits = generateDebugSplits(workDir, job);

    System.out.println("split count: " + splits.length);

    POLRWorkerNode worker_model_builder = new POLRWorkerNode();

    // ------------------    
    // generate the debug conf ---- normally setup by YARN stuff
    worker_model_builder.setup(this.generateDebugConfigurationObject());

    System.out.println("split: " + splits[0].toString());

    TextRecordParser txt_reader = new TextRecordParser();

    long len = Integer.parseInt(splits[0].toString().split(":")[2].split("\\+")[1]);

    txt_reader.setFile(splits[0].toString().split(":")[1], 0, len);

    worker_model_builder.setRecordParser(txt_reader);

    //      worker_model_builder.RunNextTrainingBatch();
    worker_model_builder.compute();

    //    worker_model_builder.polr.Set

    // ------------------- now replace beta ------------

    double val1 = -1.0;

    // GradientBuffer g0 = new GradientBuffer( 2, worker_model_builder.FeatureVectorSize );
    Matrix m = new DenseMatrix(2, feature_vector_size);

    for (int x = 0; x < feature_vector_size; x++) {

        m.set(0, x, val1);

    }

    worker_model_builder.polr.SetBeta(m);

    for (int x = 0; x < feature_vector_size; x++) {

        assertEquals(worker_model_builder.polr.noReallyGetBeta().get(0, x), val1);

    }

    System.out.println("--------------------------------\n");

}

From source file:com.elex.dmp.core.TopicModel.java

License:Apache License

public TopicModel(int numTopics, int numTerms, double eta, double alpha, String[] dictionary, int numThreads,
        double modelWeight) {
    this(new DenseMatrix(numTopics, numTerms), new DenseVector(numTopics), eta, alpha, dictionary, numThreads,
            modelWeight);/* w w w  . j a v  a 2  s  . c om*/
}