Exemple #1
0
        public void TestCustomInitialiserInitialise()
        {
            CustomInitialiser initialiser = new CustomInitialiser((i, s, r) => 5);

            ADNDArray <float> array = new ADNDArray <float>(2, 3);

            initialiser.Initialise(array, new CpuFloat32Handler(), new Random());

            foreach (var value in array.GetDataAs <float>())
            {
                Assert.AreEqual(5, value);
            }
        }
Exemple #2
0
        public void TestNdArrayTranspose()
        {
            ADNDArray <int> array = new ADNDArray <int>(data: new[] { 1, 2, 3, 4, 5, 6, 7, 8 }, shape: new long[] { 2, 4 });

            ADNDArray <int> transposed = (ADNDArray <int>)array.Transpose();

            array.TransposeSelf();

            Assert.AreEqual(new long[] { 4, 2 }, transposed.Shape);
            Assert.AreEqual(new long[] { 4, 2 }, array.Shape);

            Assert.AreEqual(new long[] { 2, 1 }, array.Strides);
            Assert.AreEqual(new long[] { 2, 1 }, array.Strides);
        }
Exemple #3
0
        public void TestNdArrayPermute()
        {
            ADNDArray <int> array = new ADNDArray <int>(data: new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, shape: new long[] { 2, 2, 3 });

            ADNDArray <int> permuted = (ADNDArray <int>)array.Permute(2, 1, 0);

            array.PermuteSelf(2, 1, 0);

            Assert.AreEqual(new long[] { 3, 2, 2 }, permuted.Shape);
            Assert.AreEqual(new long[] { 3, 2, 2 }, array.Shape);

            Assert.AreEqual(new long[] { 4, 2, 1 }, permuted.Strides);
            Assert.AreEqual(new long[] { 4, 2, 1 }, array.Strides);
        }
Exemple #4
0
        public void TestNdArrayReshape()
        {
            ADNDArray <int> array = new ADNDArray <int>(data: new[] { 1, 2, 3, 4, 5, 6, 7, 8 }, shape: new long[] { 2, 4 });

            ADNDArray <int> reshaped = (ADNDArray <int>)array.Reshape(4, 2);

            array.ReshapeSelf(4, 2);

            Assert.AreEqual(new long[] { 4, 2 }, array.Shape);
            Assert.AreEqual(new long[] { 4, 2 }, reshaped.Shape);

            Assert.AreEqual(new long[] { 2, 1 }, reshaped.Strides);
            Assert.AreEqual(new long[] { 2, 1 }, array.Strides);
        }
Exemple #5
0
        public void TestNdArrayCreate()
        {
            ADNDArray <int> intArray = new ADNDArray <int>(data: new[] { 1, 2, 3, 4, 5, 6, 7, 8 }, shape: new long[] { 2, 4 });

            Assert.AreEqual(new[] { 1, 2, 3, 4, 5, 6, 7, 8 }, intArray.GetDataAs <int>().GetValuesArrayAs <int>(0, 8));
            Assert.AreEqual(new long[] { 2, 4 }, intArray.Shape);
            Assert.AreEqual(new long[] { 4, 1 }, intArray.Strides);

            ADNDArray <float> floatArray = new ADNDArray <float>(new DataBuffer <float>(new[] { 1.1f, 2.2f, 3.3f, 4.4f }));

            Assert.AreEqual(new[] { 1.1f, 2.2f, 3.3f, 4.4f }, floatArray.GetDataAs <float>().GetValuesArray(0, 4));
            Assert.AreEqual(new long[] { 1, 4 }, floatArray.Shape);
            Assert.AreEqual(new long[] { 4, 1 }, floatArray.Strides);
        }
Exemple #6
0
        public void TestGaussianInitialiserInitialise()
        {
            ConstantValueInitialiser initialiser = new ConstantValueInitialiser(2.0);

            INDArray            array   = new ADNDArray <float>(2, 1, 2, 2);
            IComputationHandler handler = new CpuFloat32Handler();
            Random random = new Random();

            Assert.Throws <ArgumentNullException>(() => initialiser.Initialise((INDArray)null, handler, random));
            Assert.Throws <ArgumentNullException>(() => initialiser.Initialise((INumber)null, handler, random));
            Assert.Throws <ArgumentNullException>(() => initialiser.Initialise(array, null, random));
            Assert.Throws <ArgumentNullException>(() => initialiser.Initialise(array, handler, null));

            // TODO implement gaussian initialiser test somehow
        }
Exemple #7
0
 /// <summary>
 /// A helper function to call the toString method of the default NDArray implementation.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="array"></param>
 /// <param name="toStringElement"></param>
 /// <param name="maxDimensionNewLine"></param>
 /// <param name="printSeperator"></param>
 /// <returns></returns>
 public static string ToString <T>(INDArray array, ADNDArray <T> .ToStringElement toStringElement = null, int maxDimensionNewLine = 2, bool printSeperator = true)
 {
     return(((ADNDArray <T>)array).ToString(toStringElement, maxDimensionNewLine, printSeperator));
 }