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