Exemple #1
0
        public void EnumGradientsTest()
        {
            Shape    shape = new Shape(new int[] { 1, 20, 20, 10 });
            SRNLayer layer = new SRNLayer(shape, RNNDirection.ForwardOnly, new[] { 20, 30 }, MatrixLayout.ColumnMajor, null);

            Assert.AreEqual(5, layer.EnumGradients().Count());
        }
Exemple #2
0
        public void CloneTest()
        {
            Shape    shape  = new Shape(new int[] { -1, 2, 2, 1 });
            SRNLayer layer1 = new SRNLayer(shape, RNNDirection.ForwardOnly, new[] { 2, 3 }, MatrixLayout.ColumnMajor, null);
            SRNLayer layer2 = layer1.Clone() as SRNLayer;

            Assert.AreEqual(JsonConvert.SerializeObject(layer1), JsonConvert.SerializeObject(layer2));
        }
Exemple #3
0
        public void CopyConstructorTest1()
        {
            Shape    shape  = new Shape(new int[] { -1, 20, 20, 10 });
            SRNLayer layer1 = new SRNLayer(shape, RNNDirection.ForwardOnly, new[] { 20, 20 }, MatrixLayout.ColumnMajor, null);
            SRNLayer layer2 = new SRNLayer(layer1);

            Assert.AreEqual(JsonConvert.SerializeObject(layer1), JsonConvert.SerializeObject(layer2));
        }
Exemple #4
0
        public void SerializeTest()
        {
            Shape    shape  = new Shape(new int[] { -1, 2, 2, 1 });
            SRNLayer layer1 = new SRNLayer(shape, RNNDirection.ForwardOnly, new[] { 2, 3 }, MatrixLayout.ColumnMajor, null);
            string   s1     = JsonConvert.SerializeObject(layer1);
            SRNLayer layer2 = JsonConvert.DeserializeObject <SRNLayer>(s1);
            string   s2     = JsonConvert.SerializeObject(layer2);

            Assert.AreEqual(s1, s2);
        }
Exemple #5
0
        public void ConstructorTest1()
        {
            Shape    shape = new Shape(new[] { 1, 10, 12, 3 });
            SRNLayer layer = new SRNLayer(shape, RNNDirection.ForwardOnly, new[] { 20, 30 }, MatrixLayout.ColumnMajor, null);

            Assert.AreEqual(20, ((StochasticLayer)layer.Graph.Vertices.ElementAt(0)).NumberOfNeurons);
            Assert.AreEqual(30, ((StochasticLayer)layer.Graph.Vertices.ElementAt(1)).NumberOfNeurons);
            Assert.AreEqual("20-30SRN", layer.Architecture);
            Assert.AreEqual(1, layer.NumberOfOutputs);
            CollectionAssert.AreEqual(new[] { 1, 30 }, layer.OutputShape.Axes);
        }
Exemple #6
0
        public void ArchitectureConstructorTest2()
        {
            const string Architecture = "20-30-40SRN(Bi=1)";
            Shape        shape        = new Shape(new int[] { -1, 20, 20, 10 });
            SRNLayer     layer        = new SRNLayer(shape, Architecture, null);

            Assert.AreEqual(20, ((StochasticLayer)layer.Graph.Vertices.ElementAt(0)).NumberOfNeurons);
            Assert.AreEqual(30, ((StochasticLayer)layer.Graph.Vertices.ElementAt(1)).NumberOfNeurons);
            Assert.AreEqual(40, ((StochasticLayer)layer.Graph.Vertices.ElementAt(2)).NumberOfNeurons);
            Assert.AreEqual(Architecture, layer.Architecture);
            Assert.IsTrue(layer.Graph.Vertices.Take(2).Cast <SRNCell>().All(x => x.Direction == RNNDirection.BiDirectional));
            Assert.AreEqual(1, layer.NumberOfOutputs);
            CollectionAssert.AreEqual(new[] { -1, 40 }, layer.OutputShape.Axes);
        }
Exemple #7
0
        public void ArchitectureConstructorTest3()
        {
            string architecture = "100SRN";

            try
            {
                SRNLayer layer = new SRNLayer(new Shape(new int[] { 1, 20, 20, 10 }), architecture, null);
            }
            catch (ArgumentException e)
            {
                Assert.AreEqual(
                    new ArgumentException(string.Format(CultureInfo.InvariantCulture, Properties.Resources.E_InvalidLayerArchitecture, architecture), nameof(architecture)).Message,
                    e.Message);
                throw;
            }
        }