Package org.apache.hama.commons.io

Examples of org.apache.hama.commons.io.VectorWritable


    Path file = new Path("src/test/resources/vd_file_sample.txt");
    InputSplit split = new FileSplit(file, 0, 1000, new String[]{"localhost"});
    BSPJob job = new BSPJob();
    RecordReader<VectorWritable, DoubleWritable> recordReader = inputFormat.getRecordReader(split, job);
    assertNotNull(recordReader);
    VectorWritable key = recordReader.createKey();
    assertNotNull(key);
    DoubleWritable value = recordReader.createValue();
    assertNotNull(value);
    assertTrue(recordReader.next(key, value));
    assertEquals(new DenseDoubleVector(new double[]{2d, 3d, 4d}), key.getVector());
    assertEquals(new DoubleWritable(1d), value);
  }
View Full Code Here


    }

    // continue to train
    double avgTrainingError = 0.0;
    LongWritable key = new LongWritable();
    VectorWritable value = new VectorWritable();
    for (int recordsRead = 0; recordsRead < batchSize; ++recordsRead) {
      if (!peer.readNext(key, value)) {
        peer.reopenInput();
        peer.readNext(key, value);
      }
      DoubleVector trainingInstance = value.getVector();
      SmallLayeredNeuralNetwork.matricesAdd(weightUpdates,
          this.inMemoryModel.trainByInstance(trainingInstance));
      avgTrainingError += this.inMemoryModel.trainingError;
    }
    avgTrainingError /= batchSize;
View Full Code Here

        String[] tokens = line.split(",");
        double[] vals = new double[tokens.length];
        for (int i = 0; i < tokens.length; ++i) {
          vals[i] = Double.parseDouble(tokens[i]);
        }
        writer.append(new LongWritable(), new VectorWritable(
            new DenseDoubleVector(vals)));
      }
      writer.close();
      br.close();
    } catch (IOException e1) {
View Full Code Here

    // update weight according to training data
    DenseDoubleMatrix[] weightUpdates = this.getZeroWeightMatrices();

    int count = 0;
    LongWritable recordId = new LongWritable();
    VectorWritable trainingInstance = new VectorWritable();
    boolean hasMore = false;
    while (count++ < this.batchSize) {
      hasMore = peer.readNext(recordId, trainingInstance);

      try {
        DenseDoubleMatrix[] singleTrainingInstanceUpdates = this.inMemoryPerceptron
            .trainByInstance(trainingInstance.getVector());
        // aggregate the updates
        for (int m = 0; m < weightUpdates.length; ++m) {
          weightUpdates[m] = (DenseDoubleMatrix) weightUpdates[m]
              .add(singleTrainingInstanceUpdates[m]);
        }
View Full Code Here

        LOG.info("loading model from " + path);
        for (Path file : files){
          SequenceFile.Reader reader = new SequenceFile.Reader(fs, file, conf);
          Text key = new Text();
          VectorWritable value = new VectorWritable();
          String strKey = null;
          Long actualKey = null;
          String firstSymbol = null;
          while (reader.next(key, value) != false) {
            strKey = key.toString();
            firstSymbol = strKey.substring(0, 1);
            try {
              actualKey = Long.valueOf(strKey.substring(1));
            } catch (Exception e) {
              actualKey = new Long(0);
            }

            if (firstSymbol.equals(OnlineCF.Settings.DFLT_MODEL_ITEM_DELIM)) {
              modelItemFactorizedValues.put(actualKey, new VectorWritable(value));
            } else if (firstSymbol.equals(OnlineCF.Settings.DFLT_MODEL_USER_DELIM)) {
              modelUserFactorizedValues.put(actualKey, new VectorWritable(value));
            } else if (firstSymbol.equals(OnlineCF.Settings.DFLT_MODEL_USER_FEATURES_DELIM)) {
              modelUserFeatures.put(actualKey, new VectorWritable(value));
            } else if (firstSymbol.equals(OnlineCF.Settings.DFLT_MODEL_ITEM_FEATURES_DELIM)) {
              modelItemFeatures.put(actualKey, new VectorWritable(value));
            } else if (firstSymbol.equals(OnlineCF.Settings.DFLT_MODEL_USER_MTX_FEATURES_DELIM)) {
              modelUserFeatureFactorizedValues = convertVectorWritable(value);
            } else if (firstSymbol.equals(OnlineCF.Settings.DFLT_MODEL_ITEM_MTX_FEATURES_DELIM)) {
              modelItemFeatureFactorizedValues = convertVectorWritable(value);
            } else {
View Full Code Here

    return results;
  }

  @Override
  public double calculateUserSimilarity(long user1, long user2) {
    VectorWritable usr1 = this.modelUserFactorizedValues.get(Long.valueOf(user1));
    VectorWritable usr2 = this.modelUserFactorizedValues.get(Long.valueOf(user2));
    if (usr1 == null || usr2 == null) {
      return Double.MAX_VALUE;
    }
   
    DoubleVector usr1Vector = usr1.getVector();
    DoubleVector usr2Vector = usr2.getVector();
   
    // Euclidean distance
    return Math.pow( usr1Vector
                    .subtract(usr2Vector)
                    .applyToElements(new SquareVectorFunction())
View Full Code Here

    return results;
  }

  @Override
  public double calculateItemSimilarity(long item1, long item2) {
    VectorWritable itm1 = this.modelUserFactorizedValues.get(Long.valueOf(item1));
    VectorWritable itm2 = this.modelUserFactorizedValues.get(Long.valueOf(item2));
    if (itm1 == null || itm2 == null) {
      return Double.MAX_VALUE;
    }
   
    DoubleVector itm1Vector = itm1.getVector();
    DoubleVector itm2Vector = itm2.getVector();
   
    // Euclidean distance
    return Math.pow( itm1Vector
                      .subtract(itm2Vector)
                      .applyToElements(new SquareVectorFunction())
View Full Code Here

    conv.setInputPreferences(preferencesPath,
        new KeyValueParser<Text, VectorWritable>() {
      public void parseLine(String ln) {
        String[] split = ln.split("::");
        key = new Text(split[0]);
        value = new VectorWritable();
        double[] values = new double[2];
        values[0] = Double.valueOf(split[1]);
        values[1] = Double.valueOf(split[2]);
        DenseDoubleVector dd = new DenseDoubleVector(values);
        value.set(dd);
      }
    });

    final HashMap<String, Integer> genreIndexes = new HashMap<String, Integer>();
    genreIndexes.put("action", 0);
    genreIndexes.put("animation", 1);
    genreIndexes.put("children", 2);
    genreIndexes.put("comedy", 3);
    genreIndexes.put("crime", 4);
    genreIndexes.put("documentary", 5);
    genreIndexes.put("drama", 6);
    genreIndexes.put("fantasy", 7);
    genreIndexes.put("film-noir", 8);
    genreIndexes.put("horror", 9);
    genreIndexes.put("musical", 10);
    genreIndexes.put("mystery", 11);
    genreIndexes.put("romance", 12);
    genreIndexes.put("sci-fi", 13);
    genreIndexes.put("thriller", 14);
    genreIndexes.put("war", 15);
    genreIndexes.put("western", 16);
    genreIndexes.put("imax", 17);
    genreIndexes.put("adventure", 18);

    conv.setInputItemFeatures(itemFeaturesPath,
        new KeyValueParser<Text, VectorWritable>() {
      public void parseLine(String ln) {
        String[] split = ln.split("::");
        key = new Text(split[0]);
        String[] genres = split[2].toLowerCase().split("[|]");
        value = new VectorWritable();
       
        DenseDoubleVector values = new DenseDoubleVector(genreIndexes.size());
        for (int i=0; i<genres.length; i++) {
          Integer id = genreIndexes.get(genres[i]);
          if (id == null) {
View Full Code Here

   
    // β_bl ← β_bl + 2τ * (α_al + μ_l: * x_a:)(r − R)
    // items ← item + itemFactorization (will be used later)
    DoubleVector itemFactorization = aal_ml_xa.multiply(2*TETTA*scoreDifference);
    DoubleVector items = e.item.getVector().add( itemFactorization );
    res.itemFactorized = new VectorWritable(items);
   
    // α_al ← α_al + 2τ * (β_bl + ν_l: * y_b:)(r − R)
    // users ← user + userFactorization (will be used later)
    DoubleVector userFactorization = bbl_vl_yb.multiply(2*TETTA*scoreDifference);
    DoubleVector users = e.user.getVector().add( userFactorization );
    res.userFactorized = new VectorWritable(users);

    // for d = 1 to D do:
    //   ν_ld ← ν_ld + 2τ * y_bd (α_al + μ_l: * x_a:)(r − R)
    // for c = 1 to C do:
    //   μ_lc ← μ_lc + 2τ * x_ac (β_bl + ν_l: * y_b:)(r − R)
View Full Code Here

    FileSystem fs = FileSystem.get(peer.getConfiguration());
    final ArrayList<DoubleVector> centers = new ArrayList<DoubleVector>();
    SequenceFile.Reader reader = null;
    try {
      reader = new SequenceFile.Reader(fs, centroids, peer.getConfiguration());
      VectorWritable key = new VectorWritable();
      NullWritable value = NullWritable.get();
      while (reader.next(key, value)) {
        DoubleVector center = key.getVector();
        centers.add(center);
      }
    } catch (IOException e) {
      throw new RuntimeException(e);
    } finally {
View Full Code Here

TOP

Related Classes of org.apache.hama.commons.io.VectorWritable

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.