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); }