private static void doTestMatrixWritableEquals(Matrix m) throws IOException { Writable matrixWritable = new MatrixWritable(m); MatrixWritable matrixWritable2 = new MatrixWritable(); writeAndRead(matrixWritable, matrixWritable2); Matrix m2 = matrixWritable2.get(); compareMatrices(m, m2); doCheckBindings(m2.getRowLabelBindings()); doCheckBindings(m2.getColumnLabelBindings()); }
@Override public void readFields(DataInput in) throws IOException { matrix = readMatrix(in); }
@Override public void write(DataOutput out) throws IOException { writeMatrix(out, matrix); }
private static void addToSavedCopy(File file, Matrix matrix) throws IOException { MatrixWritable mw = new MatrixWritable(); if (file.exists()) { try (DataInputStream in = new DataInputStream(new FileInputStream(file))) { mw.readFields(in); } mw.get().assign(matrix, Functions.PLUS); } else { mw.set(matrix); } try (DataOutputStream out = new DataOutputStream(new FileOutputStream(file))) { mw.write(out); } }
static HmmModel deserialize(DataInput input) throws IOException { MatrixWritable matrix = new MatrixWritable(); matrix.readFields(input); Matrix emissionMatrix = matrix.get(); matrix.readFields(input); Matrix transitionMatrix = matrix.get(); VectorWritable vector = new VectorWritable(); vector.readFields(input); Vector initialProbabilities = vector.get(); return new HmmModel(transitionMatrix, emissionMatrix, initialProbabilities); }
static void serialize(HmmModel model, DataOutput output) throws IOException { MatrixWritable matrix = new MatrixWritable(model.getEmissionMatrix()); matrix.write(output); matrix.set(model.getTransitionMatrix()); matrix.write(output); VectorWritable vector = new VectorWritable(model.getInitialProbabilities()); vector.write(output); }
inverseCovarianceMatrix.readFields(in); } finally { Closeables.close(in, true); this.inverseCovarianceMatrix = inverseCovarianceMatrix.get(); Preconditions.checkArgument(this.inverseCovarianceMatrix != null, "inverseCovarianceMatrix not initialized");
private static Matrix lowRankMatrix(File tmpDir, String aBase, int rowsPerSlice, int rows, int columns) throws IOException { int rank = 10; Matrix u = new RandomTrinaryMatrix(1, rows, rank, false); Matrix d = new DenseMatrix(rank, rank); d.set(0, 0, 5); d.set(1, 1, 3); d.set(2, 2, 1); d.set(3, 3, 0.5); Matrix v = new RandomTrinaryMatrix(2, columns, rank, false); Matrix a = u.times(d).times(v.transpose()); if (tmpDir != null) { for (int i = 0; i < a.rowSize(); i += rowsPerSlice) { MatrixWritable m = new MatrixWritable(a.viewPart(i, Math.min(a.rowSize() - i, rowsPerSlice), 0, a.columnSize())); DataOutputStream out = new DataOutputStream(new FileOutputStream(new File(tmpDir, String.format("%s-%09d", aBase, i)))); try { m.write(out); } finally { out.close(); } } } return a; } }
writeLabelBindings(out, matrix.getColumnLabelBindings(), matrix.getRowLabelBindings());
Map<String,Integer> columnLabelBindings = new HashMap<>(); Map<String,Integer> rowLabelBindings = new HashMap<>(); readLabels(in, columnLabelBindings, rowLabelBindings); if (!columnLabelBindings.isEmpty()) { matrix.setColumnLabelBindings(columnLabelBindings);
public MatrixWritable(Matrix m) { set(m); }
private static void addToSavedCopy(File file, Matrix matrix) throws IOException { MatrixWritable mw = new MatrixWritable(); if (file.exists()) { DataInputStream in = new DataInputStream(new FileInputStream(file)); try { mw.readFields(in); } finally { in.close(); } mw.get().assign(matrix, Functions.PLUS); } else { mw.set(matrix); } DataOutputStream out = new DataOutputStream(new FileOutputStream(file)); try { mw.write(out); } finally { out.close(); } }
static HmmModel deserialize(DataInput input) throws IOException { MatrixWritable matrix = new MatrixWritable(); matrix.readFields(input); Matrix emissionMatrix = matrix.get(); matrix.readFields(input); Matrix transitionMatrix = matrix.get(); VectorWritable vector = new VectorWritable(); vector.readFields(input); Vector initialProbabilities = vector.get(); return new HmmModel(transitionMatrix, emissionMatrix, initialProbabilities); }
static void serialize(HmmModel model, DataOutput output) throws IOException { MatrixWritable matrix = new MatrixWritable(model.getEmissionMatrix()); matrix.write(output); matrix.set(model.getTransitionMatrix()); matrix.write(output); VectorWritable vector = new VectorWritable(model.getInitialProbabilities()); vector.write(output); }
inverseCovarianceMatrix.readFields(in); } finally { Closeables.close(in, true); this.inverseCovarianceMatrix = inverseCovarianceMatrix.get(); Preconditions.checkArgument(this.inverseCovarianceMatrix != null, "inverseCovarianceMatrix not initialized");
/** Writes a typed Matrix instance to the output stream */ public static void writeMatrix(DataOutput out, Matrix matrix) throws IOException { int flags = 0; Vector row = matrix.viewRow(0); if (row.isDense()) { flags |= FLAG_DENSE; } if (row.isSequentialAccess()) { flags |= FLAG_SEQUENTIAL; } if (matrix.getRowLabelBindings() != null || matrix.getColumnLabelBindings() != null) { flags |= FLAG_LABELS; } out.writeInt(flags); out.writeInt(matrix.rowSize()); out.writeInt(matrix.columnSize()); for (int i = 0; i < matrix.rowSize(); i++) { VectorWritable.writeVector(out, matrix.viewRow(i), false); } if ((flags & FLAG_LABELS) != 0) { writeLabelBindings(out, matrix.getColumnLabelBindings(), matrix.getRowLabelBindings()); } } }
Map<String,Integer> columnLabelBindings = Maps.newHashMap(); Map<String,Integer> rowLabelBindings = Maps.newHashMap(); readLabels(in, columnLabelBindings, rowLabelBindings); if (!columnLabelBindings.isEmpty()) { r.setColumnLabelBindings(columnLabelBindings);
private static void addToSavedCopy(File file, Matrix matrix) throws IOException { MatrixWritable mw = new MatrixWritable(); if (file.exists()) { DataInputStream in = new DataInputStream(new FileInputStream(file)); try { mw.readFields(in); } finally { in.close(); } mw.get().assign(matrix, Functions.PLUS); } else { mw.set(matrix); } DataOutputStream out = new DataOutputStream(new FileOutputStream(file)); try { mw.write(out); } finally { out.close(); } }
static HmmModel deserialize(DataInput input) throws IOException { MatrixWritable matrix = new MatrixWritable(); matrix.readFields(input); Matrix emissionMatrix = matrix.get(); matrix.readFields(input); Matrix transitionMatrix = matrix.get(); VectorWritable vector = new VectorWritable(); vector.readFields(input); Vector initialProbabilities = vector.get(); return new HmmModel(transitionMatrix, emissionMatrix, initialProbabilities); }
static void serialize(HmmModel model, DataOutput output) throws IOException { MatrixWritable matrix = new MatrixWritable(model.getEmissionMatrix()); matrix.write(output); matrix.set(model.getTransitionMatrix()); matrix.write(output); VectorWritable vector = new VectorWritable(model.getInitialProbabilities()); vector.write(output); }