Search in sources :

Example 76 with Vector

use of org.apache.ignite.ml.math.Vector in project ignite by apache.

the class VectorIterableTest method nonZeroesTestBasic.

/**
 */
@Test
public void nonZeroesTestBasic() {
    final int size = 5;
    final double[] nonZeroesOddData = new double[size], nonZeroesEvenData = new double[size];
    for (int idx = 0; idx < size; idx++) {
        final boolean odd = (idx & 1) == 1;
        nonZeroesOddData[idx] = odd ? 1 : 0;
        nonZeroesEvenData[idx] = odd ? 0 : 1;
    }
    assertTrue("Arrays failed to initialize.", !isZero(nonZeroesEvenData[0]) && isZero(nonZeroesEvenData[1]) && isZero(nonZeroesOddData[0]) && !isZero(nonZeroesOddData[1]));
    final Vector nonZeroesEvenVec = new DenseLocalOnHeapVector(nonZeroesEvenData), nonZeroesOddVec = new DenseLocalOnHeapVector(nonZeroesOddData);
    assertTrue("Vectors failed to initialize.", !isZero(nonZeroesEvenVec.getElement(0).get()) && isZero(nonZeroesEvenVec.getElement(1).get()) && isZero(nonZeroesOddVec.getElement(0).get()) && !isZero(nonZeroesOddVec.getElement(1).get()));
    assertTrue("Iterator(s) failed to start.", nonZeroesEvenVec.nonZeroes().iterator().next() != null && nonZeroesOddVec.nonZeroes().iterator().next() != null);
    int nonZeroesActual = 0;
    for (Vector.Element e : nonZeroesEvenVec.nonZeroes()) {
        final int idx = e.index();
        final boolean odd = (idx & 1) == 1;
        final double val = e.get();
        assertTrue("Not an even index " + idx + ", for value " + val, !odd);
        assertTrue("Zero value " + val + " at even index " + idx, !isZero(val));
        nonZeroesActual++;
    }
    final int nonZeroesOddExp = (size + 1) / 2;
    assertEquals("Unexpected num of iterated odd non-zeroes.", nonZeroesOddExp, nonZeroesActual);
    assertEquals("Unexpected nonZeroElements of odd.", nonZeroesOddExp, nonZeroesEvenVec.nonZeroElements());
    nonZeroesActual = 0;
    for (Vector.Element e : nonZeroesOddVec.nonZeroes()) {
        final int idx = e.index();
        final boolean odd = (idx & 1) == 1;
        final double val = e.get();
        assertTrue("Not an odd index " + idx + ", for value " + val, odd);
        assertTrue("Zero value " + val + " at even index " + idx, !isZero(val));
        nonZeroesActual++;
    }
    final int nonZeroesEvenExp = size / 2;
    assertEquals("Unexpected num of iterated even non-zeroes", nonZeroesEvenExp, nonZeroesActual);
    assertEquals("Unexpected nonZeroElements of even", nonZeroesEvenExp, nonZeroesOddVec.nonZeroElements());
}
Also used : Vector(org.apache.ignite.ml.math.Vector) Test(org.junit.Test)

Example 77 with Vector

use of org.apache.ignite.ml.math.Vector in project ignite by apache.

the class VectorNormTest method dotTest.

/**
 */
@Test
public void dotTest() {
    consumeSampleVectors((v, desc) -> {
        // IMPL NOTE this initialises vector
        new VectorImplementationsTest.ElementsChecker(v, desc);
        final int size = v.size();
        final Vector v1 = new DenseLocalOnHeapVector(size);
        invertValues(v, v1);
        final double actual = v.dot(v1);
        double exp = 0;
        for (Vector.Element e : v.all()) exp += e.get() * v1.get(e.index());
        final VectorImplementationsTest.Metric metric = new VectorImplementationsTest.Metric(exp, actual);
        assertTrue("Dot product not close enough at " + desc + ", " + metric, metric.closeEnough());
    });
}
Also used : Vector(org.apache.ignite.ml.math.Vector) Test(org.junit.Test)

Example 78 with Vector

use of org.apache.ignite.ml.math.Vector in project ignite by apache.

the class VectorToMatrixTest method testCross.

/**
 */
@Test
public void testCross() {
    consumeSampleVectors((v, desc) -> {
        if (!availableForTesting(v))
            return;
        fillWithNonZeroes(v);
        for (int delta : new int[] { -1, 0, 1 }) {
            final int size2 = v.size() + delta;
            if (size2 < 1)
                return;
            final Vector v2 = new DenseLocalOnHeapVector(size2);
            for (Vector.Element e : v2.all()) e.set(size2 - e.index());
            assertCross(v, v2, desc);
        }
    });
}
Also used : Vector(org.apache.ignite.ml.math.Vector) Test(org.junit.Test)

Example 79 with Vector

use of org.apache.ignite.ml.math.Vector in project ignite by apache.

the class VectorViewTest method testCopy.

/**
 */
@Test
public void testCopy() throws Exception {
    Vector cp = testVector.copy();
    assertTrue(MathTestConstants.VAL_NOT_EQUALS, cp.equals(testVector));
}
Also used : Vector(org.apache.ignite.ml.math.Vector) Test(org.junit.Test)

Example 80 with Vector

use of org.apache.ignite.ml.math.Vector in project ignite by apache.

the class MnistDistributed method asLabeledVector.

/**
 * Transform vector created by {@link MnistUtils} to {@link LabeledVector}.
 *
 * @param v Vector to transform.
 * @param featsCnt Count of features.
 * @return Vector created by {@link MnistUtils} transformed to {@link LabeledVector}.
 */
private static LabeledVector<Vector, Vector> asLabeledVector(Vector v, int featsCnt) {
    Vector features = VectorUtils.copyPart(v, 0, featsCnt);
    Vector lb = VectorUtils.num2Vec((int) v.get(featsCnt), 10);
    return new LabeledVector<>(features, lb);
}
Also used : LabeledVector(org.apache.ignite.ml.structures.LabeledVector) LabeledVector(org.apache.ignite.ml.structures.LabeledVector) Vector(org.apache.ignite.ml.math.Vector) DenseLocalOnHeapVector(org.apache.ignite.ml.math.impls.vector.DenseLocalOnHeapVector)

Aggregations

Vector (org.apache.ignite.ml.math.Vector)116 DenseLocalOnHeapVector (org.apache.ignite.ml.math.impls.vector.DenseLocalOnHeapVector)62 Test (org.junit.Test)29 EuclideanDistance (org.apache.ignite.ml.math.distances.EuclideanDistance)20 DenseLocalOnHeapMatrix (org.apache.ignite.ml.math.impls.matrix.DenseLocalOnHeapMatrix)20 Matrix (org.apache.ignite.ml.math.Matrix)19 SparseDistributedMatrix (org.apache.ignite.ml.math.impls.matrix.SparseDistributedMatrix)17 Random (java.util.Random)12 ArrayList (java.util.ArrayList)11 DistanceMeasure (org.apache.ignite.ml.math.distances.DistanceMeasure)10 Arrays (java.util.Arrays)9 Ignite (org.apache.ignite.Ignite)9 SparseDistributedMatrixStorage (org.apache.ignite.ml.math.impls.storage.matrix.SparseDistributedMatrixStorage)9 LabeledDataset (org.apache.ignite.ml.structures.LabeledDataset)9 UUID (java.util.UUID)8 Collections (java.util.Collections)7 List (java.util.List)7 MathIllegalArgumentException (org.apache.ignite.ml.math.exceptions.MathIllegalArgumentException)7 DenseLocalOffHeapVector (org.apache.ignite.ml.math.impls.vector.DenseLocalOffHeapVector)7 HashMap (java.util.HashMap)6