/** * {@inheritDoc} * * @param label {@inheritDoc} */ public void addNode( SemanticLabel label) { int index = this.getIndex(label); if ( index >= 0 ) { return; } index = this.nodes.size(); this.nodes.add(label); this.nodeToIDMap.put(label, index); int numNodes = index + 1; Matrix newMatrix = MatrixFactory.getDefault().createMatrix(numNodes, numNodes); newMatrix.setSubMatrix(0, 0, this.matrix); this.setMatrix(newMatrix); this.setNodesChangedSinceLastUpdate(true); }
/** * {@inheritDoc} * * @param label {@inheritDoc} */ public void addNode( SemanticLabel label) { int index = this.getIndex(label); if ( index >= 0 ) { return; } index = this.nodes.size(); this.nodes.add(label); this.nodeToIDMap.put(label, index); int numNodes = index + 1; Matrix newMatrix = MatrixFactory.getDefault().createMatrix(numNodes, numNodes); newMatrix.setSubMatrix(0, 0, this.matrix); this.setMatrix(newMatrix); this.setNodesChangedSinceLastUpdate(true); }
/** * {@inheritDoc} * * @param label {@inheritDoc} */ public void addNode( SemanticLabel label) { int index = this.getIndex(label); if ( index >= 0 ) { return; } index = this.nodes.size(); this.nodes.add(label); this.nodeToIDMap.put(label, index); int numNodes = index + 1; Matrix newMatrix = MatrixFactory.getDefault().createMatrix(numNodes, numNodes); newMatrix.setSubMatrix(0, 0, this.matrix); this.setMatrix(newMatrix); this.setNodesChangedSinceLastUpdate(true); }
private Matrix prepareMatrix(double[] y) { final Matrix Y = DMF.createMatrix(1, y.length + 1); Y.setElement(0, 0, 1); Y.setSubMatrix(0, 1, DMF.copyArray(new double[][] { y })); return Y.transpose(); }
private Matrix prepareMatrix(double[] y) { final Matrix Y = DMF.createMatrix(1, y.length + 1); Y.setElement(0, 0, 1); Y.setSubMatrix(0, 1, DMF.copyArray(new double[][] { y })); return Y.transpose(); }
private Matrix prepareMatrix(Vector y) { final Matrix Y = DMF.createMatrix(1, y.getDimensionality() + 1); Y.setElement(0, 0, 1); Y.setSubMatrix(0, 1, DMF.copyRowVectors(y)); return Y.transpose(); }
private Matrix prepareMatrix(Vector y) { final Matrix Y = DMF.createMatrix(1, y.getDimensionality() + 1); Y.setElement(0, 0, 1); Y.setSubMatrix(0, 1, DMF.copyRowVectors(y)); return Y.transpose(); }
private Matrix repmat(Matrix dL1, int nRows, int nCols) { final Matrix out = DMF.createMatrix(nRows * dL1.getNumRows(), nCols * dL1.getNumColumns()); for (int i = 0; i < nRows; i++) { for (int j = 0; j < nCols; j++) { out.setSubMatrix(i * dL1.getNumRows(), j * dL1.getNumColumns(), dL1); } } return out; }
private Matrix repmat(Matrix dL1, int nRows, int nCols) { final Matrix out = DMF.createMatrix(nRows * dL1.getNumRows(), nCols * dL1.getNumColumns()); for (int i = 0; i < nRows; i++) { for (int j = 0; j < nCols; j++) { out.setSubMatrix(i * dL1.getNumRows(), j * dL1.getNumColumns(), dL1); } } return out; }
/** * Stack matrices vertically * * @param matrixFactory * factory to create output matrix * @param matricies * matrices to stack * @return matrix created from the stacking */ public static Matrix vstack(MatrixFactory<? extends Matrix> matrixFactory, Matrix... matricies) { int nrows = 0; int ncols = 0; for (final Matrix matrix : matricies) { nrows += matrix.getNumRows(); ncols = matrix.getNumColumns(); } final Matrix ret = matrixFactory.createMatrix(nrows, ncols); int currentRow = 0; for (final Matrix matrix : matricies) { ret.setSubMatrix(currentRow, 0, matrix); currentRow += matrix.getNumRows(); } return ret; }
public Matrix getValue() { final int dim = this.conditionalDistribution.getInputDimensionality(); Matrix parameter = MatrixFactory.getDefault().createMatrix(dim, dim+1); parameter.setColumn(0, this.conditionalDistribution.getMean() ); parameter.setSubMatrix(0,1, this.conditionalDistribution.getCovariance() ); return parameter; }
public Matrix getMean() { Matrix C = this.inverseWishart.getMean(); Vector mean = this.gaussian.getMean(); final int d = this.getInputDimensionality(); Matrix R = MatrixFactory.getDefault().createMatrix(d, d+1); R.setColumn(0, mean); R.setSubMatrix(0, 1, C); return R; }
public Matrix getValue() { final int dim = this.conditionalDistribution.getInputDimensionality(); Matrix parameter = MatrixFactory.getDefault().createMatrix(dim, dim+1); parameter.setColumn(0, this.conditionalDistribution.getMean() ); parameter.setSubMatrix(0,1, this.conditionalDistribution.getCovariance() ); return parameter; }
public Matrix getMean() { Matrix C = this.inverseWishart.getMean(); Vector mean = this.gaussian.getMean(); final int d = this.getInputDimensionality(); Matrix R = MatrixFactory.getDefault().createMatrix(d, d+1); R.setColumn(0, mean); R.setSubMatrix(0, 1, C); return R; }
/** * Construct a learner with the desired number of users and words. If users * and words beyond those in the current model are asked for their * parameters are set to 0 * * @param nusers * @param nwords * @return a new {@link BilinearSparseOnlineLearner} */ public BilinearSparseOnlineLearner getBilinearLearner(int nusers, int nwords) { final BilinearSparseOnlineLearner ret = this.bilinearLearner.clone(); final Matrix u = ret.getU(); final Matrix w = ret.getW(); final Matrix newu = SparseMatrixFactoryMTJ.INSTANCE.createMatrix(nusers, u.getNumColumns()); final Matrix neww = SparseMatrixFactoryMTJ.INSTANCE.createMatrix(nwords, w.getNumColumns()); newu.setSubMatrix(0, 0, u); neww.setSubMatrix(0, 0, w); ret.setU(newu); ret.setW(neww); return ret; }
public Matrix getMean() { Matrix C = this.inverseWishart.getMean(); Vector mean = this.gaussian.getMean(); final int d = this.getInputDimensionality(); Matrix R = MatrixFactory.getDefault().createMatrix(d, d+1); R.setColumn(0, mean); R.setSubMatrix(0, 1, C); return R; }
public Matrix getValue() { final int dim = this.conditionalDistribution.getInputDimensionality(); Matrix parameter = MatrixFactory.getDefault().createMatrix(dim, dim+1); parameter.setColumn(0, this.conditionalDistribution.getMean() ); parameter.setSubMatrix(0,1, this.conditionalDistribution.getCovariance() ); return parameter; }
@Override public void sampleInto( final Random random, final int sampleCount, final Collection<? super Matrix> output) { final int d = this.gaussian.getInputDimensionality(); ArrayList<Matrix> covariances = this.inverseWishart.sample(random, sampleCount); for( Matrix covariance : covariances ) { Matrix meanAndCovariance = MatrixFactory.getDefault().createMatrix(d,d+1); meanAndCovariance.setSubMatrix(0, 1, covariance); covariance.scaleEquals(1.0/this.covarianceDivisor); this.gaussian.setCovariance(covariance); Vector mean = this.gaussian.sample(random); meanAndCovariance.setColumn(0, mean); output.add( meanAndCovariance ); } }
@Override public void sampleInto( final Random random, final int sampleCount, final Collection<? super Matrix> output) { final int d = this.gaussian.getInputDimensionality(); ArrayList<Matrix> covariances = this.inverseWishart.sample(random, sampleCount); for( Matrix covariance : covariances ) { Matrix meanAndCovariance = MatrixFactory.getDefault().createMatrix(d,d+1); meanAndCovariance.setSubMatrix(0, 1, covariance); covariance.scaleEquals(1.0/this.covarianceDivisor); this.gaussian.setCovariance(covariance); Vector mean = this.gaussian.sample(random); meanAndCovariance.setColumn(0, mean); output.add( meanAndCovariance ); } }
@Override public void sampleInto( final Random random, final int sampleCount, final Collection<? super Matrix> output) { final int d = this.gaussian.getInputDimensionality(); ArrayList<Matrix> covariances = this.inverseWishart.sample(random, sampleCount); for( Matrix covariance : covariances ) { Matrix meanAndCovariance = MatrixFactory.getDefault().createMatrix(d,d+1); meanAndCovariance.setSubMatrix(0, 1, covariance); covariance.scaleEquals(1.0/this.covarianceDivisor); this.gaussian.setCovariance(covariance); Vector mean = this.gaussian.sample(random); meanAndCovariance.setColumn(0, mean); output.add( meanAndCovariance ); } }