示例#1
0
        public void CloneTest()
        {
            Shape             shape  = new Shape(new[] { -1, 20, 15, 10 });
            Map2SequenceLayer layer1 = new Map2SequenceLayer(shape);
            Map2SequenceLayer layer2 = layer1.Clone() as Map2SequenceLayer;

            Assert.AreEqual(JsonConvert.SerializeObject(layer1), JsonConvert.SerializeObject(layer2));
        }
示例#2
0
        public void CopyConstructorTest2()
        {
            Shape             shape  = new Shape(new[] { -1, 20, 15, 10 });
            Map2SequenceLayer layer1 = new Map2SequenceLayer(shape);
            Map2SequenceLayer layer2 = new Map2SequenceLayer(layer1);

            Assert.AreEqual(JsonConvert.SerializeObject(layer1), JsonConvert.SerializeObject(layer2));
        }
示例#3
0
        public void ArchitectureConstructorTest1()
        {
            Shape             shape = new Shape(new[] { -1, 20, 15, 10 });
            Map2SequenceLayer layer = new Map2SequenceLayer(shape, "M2S", null);

            CollectionAssert.AreEqual(new[] { 20, 150 }, layer.OutputShape.Axes);
            Assert.AreEqual("M2S", layer.Architecture);
        }
示例#4
0
        public void SerializeTest()
        {
            Shape             shape  = new Shape(new[] { -1, 20, 15, 10 });
            Map2SequenceLayer layer1 = new Map2SequenceLayer(shape);
            string            s1     = JsonConvert.SerializeObject(layer1);
            Map2SequenceLayer layer2 = JsonConvert.DeserializeObject <Map2SequenceLayer>(s1);
            string            s2     = JsonConvert.SerializeObject(layer2);

            Assert.AreEqual(s1, s2);
        }
示例#5
0
        public void ArchitectureConstructorTest2()
        {
            string architecture = "MS";

            try
            {
                Map2SequenceLayer layer = new Map2SequenceLayer(new Shape(new[] { -1, 20, 15, 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;
            }
        }
示例#6
0
        public void ForwardBackwardTest1()
        {
            Session session = new Session();

            Shape             shape = new Shape(Shape.BWHC, 1, 20, 15, 10);
            Map2SequenceLayer layer = new Map2SequenceLayer(shape);

            Tensor x = new Tensor(null, shape);

            x.Randomize();

            Tensor y = layer.Forward(session, new[] { x })[0];

            Helpers.AreArraysEqual(x.Length, x.Weights, y.Weights);

            // unroll the graph
            y.SetGradient(y.Weights);
            session.Unroll();

            Helpers.AreArraysEqual(x.Length, x.Weights, x.Gradient);
        }