示例#1
0
        public void ConvLayerSerialization()
        {
            var layer = new ConvLayer(5, 5, 8)
            {
                Stride = 1, Pad = 2, BiasPref = 0.5
            };

            layer.Init(28, 24, 1);

            var data = layer.GetData();

            Assert.AreEqual(28, data["InputWidth"]);
            Assert.AreEqual(24, data["InputHeight"]);
            Assert.AreEqual(1, data["InputDepth"]);

            var deserialized = LayerBase <double> .FromData(data) as ConvLayer;

            Assert.IsNotNull(deserialized);
            Assert.AreEqual(28, deserialized.InputWidth);
            Assert.AreEqual(24, deserialized.InputHeight);
            Assert.AreEqual(1, deserialized.InputDepth);

            Assert.AreEqual(layer.Width, deserialized.Width);
            Assert.AreEqual(layer.Height, deserialized.Height);
            Assert.AreEqual(layer.Pad, deserialized.Pad);
            Assert.AreEqual(layer.Stride, deserialized.Stride);
            Assert.AreEqual(layer.FilterCount, deserialized.FilterCount);

            Assert.AreEqual(layer.Filters.Shape, deserialized.Filters.Shape);
            Assert.IsTrue(layer.Filters.ToArray().SequenceEqual(deserialized.Filters.ToArray()));

            Assert.AreEqual(layer.Bias.Shape, deserialized.Bias.Shape);
            Assert.IsTrue(layer.Bias.ToArray().SequenceEqual(deserialized.Bias.ToArray()));

            Assert.AreEqual(layer.BiasPref, deserialized.BiasPref);
        }