public Float buldFromBytes(byte[] bytes) { if ( bytes.length != getBytesAllocated() ) { throw new IllegalArgumentException( "To build from byte array I need array of size: " + getBytesAllocated() ); } return ByteBuffer.wrap( bytes ).getFloat(); }
public static PrincipalComponentAnalysis loadPCA(File f) throws IOException { final MatFileReader reader = new MatFileReader(f); final MLSingle mean = (MLSingle) reader.getContent().get("mu"); final MLSingle eigvec = (MLSingle) reader.getContent().get("proj"); final Matrix basis = new Matrix(eigvec.getM(), eigvec.getN()); final double[] meand = new double[eigvec.getN()]; for (int j = 0; j < eigvec.getN(); j++) { // meand[i] = mean.get(i,0); ignore the means meand[j] = 0; for (int i = 0; i < eigvec.getM(); i++) { basis.set(i, j, eigvec.get(i, j)); } } final PrincipalComponentAnalysis ret = new LoadedPCA(basis.transpose(), meand); return ret; }
mlArray = new MLSingle(name, dims, type, attributes);
/** * Tests the mxSINGLE * * @throws Exception */ @Test public void testSingle() throws Exception { Float[] expected = new Float[]{1.1f, 2.2f, 3.3f}; String name = "arr"; // create MLSingle type MLSingle single = new MLSingle(name, expected, 1); assertEquals(expected[0], single.get(0)); assertEquals(expected[1], single.get(1)); assertEquals(expected[2], single.get(2)); // Test writing the MLSingle MatFileWriter writer = new MatFileWriter(); writer.write(getTempFile("singletmp.mat"), Arrays.asList((MLArray) single)); // Test reading the MLSingle MatFileReader reader = new MatFileReader(); MLSingle readSingle = (MLSingle) reader.read(getTempFile("singletmp.mat")).get("arr"); assertEquals(single, readSingle); // Test reading the MLSingle generated natively by Matlab MLSingle readSingleMatlabGenerated = (MLSingle) reader.read(getTestFile("single.mat")).get("arr"); assertEquals(single, readSingleMatlabGenerated); }
public static void main(String[] args) throws IOException { final Map<Integer, String> database = readDatabase(); final File outbase = new File("/Users/jon/Data/lfw/matlab-fvs/"); for (int i = 1; i <= 128; i++) { final File chunk = new File( "/Users/jon/Downloads/data/lfw_aligned/SIFT_1pix_PCA64_GMM512/features/poolfv/1/", String.format( "feat_%d-v6.mat", i)); System.out.println(chunk); final MatFileReader reader = new MatFileReader(chunk); final MLSingle feats = (MLSingle) reader.getMLArray("chunk"); final MLDouble index = (MLDouble) reader.getMLArray("index"); for (int j = 0; j < index.getN(); j++) { final int id = (int) (double) index.get(0, j); final File outfile = new File(outbase, database.get(id).replace(".jpg", ".bin")); outfile.getParentFile().mkdirs(); final float[] vec = new float[feats.getM()]; for (int k = 0; k < feats.getM(); k++) { vec[k] = feats.get(k, j); } final FloatFV fv = new FloatFV(vec); IOUtils.writeBinary(outfile, fv); } } }
mlArray = new MLSingle(name, dims, type, attributes);
public static void main(String[] args) throws IOException { final Map<Integer, String> database = readDatabase(); final File outbase = new File("/Users/jon/Data/lfw/matlab-fvs/"); for (int i = 1; i <= 128; i++) { final File chunk = new File( "/Users/jon/Downloads/data/lfw_aligned/SIFT_1pix_PCA64_GMM512/features/poolfv/1/", String.format( "feat_%d-v6.mat", i)); System.out.println(chunk); final MatFileReader reader = new MatFileReader(chunk); final MLSingle feats = (MLSingle) reader.getMLArray("chunk"); final MLDouble index = (MLDouble) reader.getMLArray("index"); for (int j = 0; j < index.getN(); j++) { final int id = (int) (double) index.get(0, j); final File outfile = new File(outbase, database.get(id).replace(".jpg", ".bin")); outfile.getParentFile().mkdirs(); final float[] vec = new float[feats.getM()]; for (int k = 0; k < feats.getM(); k++) { vec[k] = feats.get(k, j); } final FloatFV fv = new FloatFV(vec); IOUtils.writeBinary(outfile, fv); } } }
public Float buldFromBytes(byte[] bytes) { if ( bytes.length != getBytesAllocated() ) { throw new IllegalArgumentException( "To build from byte array I need array of size: " + getBytesAllocated() ); } return ByteBuffer.wrap( bytes ).getFloat(); }
private static LargeMarginDimensionalityReduction loadMatlabLMDR() throws IOException { final LargeMarginDimensionalityReduction lmdr = new LargeMarginDimensionalityReduction(128); final MatFileReader reader = new MatFileReader(new File("/Users/jon/lmdr.mat")); final MLSingle W = (MLSingle) reader.getContent().get("W"); final MLSingle b = (MLSingle) reader.getContent().get("b"); lmdr.setBias(b.get(0, 0)); final Matrix proj = new Matrix(W.getM(), W.getN()); for (int j = 0; j < W.getN(); j++) { for (int i = 0; i < W.getM(); i++) { proj.set(i, j, W.get(i, j)); } } lmdr.setTransform(proj); return lmdr; }
mlArray = new MLSingle(name, dims, type, attributes);
public Float buldFromBytes(byte[] bytes) { if ( bytes.length != getBytesAllocated() ) { throw new IllegalArgumentException( "To build from byte array I need array of size: " + getBytesAllocated() ); } return ByteBuffer.wrap( bytes ).getFloat(); }
public static PrincipalComponentAnalysis loadPCA(File f) throws IOException { final MatFileReader reader = new MatFileReader(f); final MLSingle mean = (MLSingle) reader.getContent().get("mu"); final MLSingle eigvec = (MLSingle) reader.getContent().get("proj"); final Matrix basis = new Matrix(eigvec.getM(), eigvec.getN()); final double[] meand = new double[eigvec.getN()]; for (int j = 0; j < eigvec.getN(); j++) { // meand[i] = mean.get(i,0); ignore the means meand[j] = 0; for (int i = 0; i < eigvec.getM(); i++) { basis.set(i, j, eigvec.get(i, j)); } } final PrincipalComponentAnalysis ret = new LoadedPCA(basis.transpose(), meand); return ret; }
mlArray = new MLSingle(name, dims, type, attributes);
public Float buldFromBytes(byte[] bytes) { if (bytes.length != getBytesAllocated()) { throw new IllegalArgumentException( "To build from byte array I need array of size: " + getBytesAllocated()); } return ByteBuffer.wrap(bytes).getFloat(); }
private static LargeMarginDimensionalityReduction loadMatlabPCAW() throws IOException { final LargeMarginDimensionalityReduction lmdr = new LargeMarginDimensionalityReduction(128); final MatFileReader reader = new MatFileReader(new File("/Users/jon/pcaw.mat")); final MLSingle W = (MLSingle) reader.getContent().get("proj"); lmdr.setBias(169.6264190673828); final Matrix proj = new Matrix(W.getM(), W.getN()); for (int j = 0; j < W.getN(); j++) { for (int i = 0; i < W.getM(); i++) { proj.set(i, j, W.get(i, j)); } } lmdr.setTransform(proj); return lmdr; } }
mlArray = new MLSingle(name, dims, type, attributes);
public Float buldFromBytes(byte[] bytes) { if (bytes.length != getBytesAllocated()) { throw new IllegalArgumentException( "To build from byte array I need array of size: " + getBytesAllocated()); } return ByteBuffer.wrap(bytes).getFloat(); }
private static LargeMarginDimensionalityReduction loadMatlabPCAW() throws IOException { final LargeMarginDimensionalityReduction lmdr = new LargeMarginDimensionalityReduction(128); final MatFileReader reader = new MatFileReader(new File("/Users/jon/pcaw.mat")); final MLSingle W = (MLSingle) reader.getContent().get("proj"); lmdr.setBias(169.6264190673828); final Matrix proj = new Matrix(W.getM(), W.getN()); for (int j = 0; j < W.getN(); j++) { for (int i = 0; i < W.getM(); i++) { proj.set(i, j, W.get(i, j)); } } lmdr.setTransform(proj); return lmdr; } }
public byte[] getByteArray(Float value) { int byteAllocated = getBytesAllocated(); ByteBuffer buff = ByteBuffer.allocate( byteAllocated ); buff.putFloat( value ); return buff.array(); }
private static LargeMarginDimensionalityReduction loadMatlabLMDR() throws IOException { final LargeMarginDimensionalityReduction lmdr = new LargeMarginDimensionalityReduction(128); final MatFileReader reader = new MatFileReader(new File("/Users/jon/lmdr.mat")); final MLSingle W = (MLSingle) reader.getContent().get("W"); final MLSingle b = (MLSingle) reader.getContent().get("b"); lmdr.setBias(b.get(0, 0)); final Matrix proj = new Matrix(W.getM(), W.getN()); for (int j = 0; j < W.getN(); j++) { for (int i = 0; i < W.getM(); i++) { proj.set(i, j, W.get(i, j)); } } lmdr.setTransform(proj); return lmdr; }