示例#1
0
        public void CloneTest()
        {
            ScaleLayer layer1 = new ScaleLayer(new Shape(new int[] { -1, 1000 }), 0.7f);
            ScaleLayer layer2 = layer1.Clone() as ScaleLayer;

            Assert.AreEqual(JsonConvert.SerializeObject(layer1), JsonConvert.SerializeObject(layer2));
        }
示例#2
0
        public void CopyConstructorTest1()
        {
            ScaleLayer layer1 = new ScaleLayer(new Shape(new int[] { -1, 1000 }), 0.7f);
            ScaleLayer layer2 = new ScaleLayer(layer1);

            Assert.AreEqual(JsonConvert.SerializeObject(layer1), JsonConvert.SerializeObject(layer2));
        }
示例#3
0
        public void ForwardBackwardTest()
        {
            Shape      shape = new Shape(new int[] { -1, 1000 });
            ScaleLayer layer = new ScaleLayer(shape, 0.7f);

            for (int i = 1; i <= 3; i++)
            {
                Session session = new Session();

                Tensor x = new Tensor(null, shape.Reshape(0, i));
                x.Randomize();

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

                Tensor expected = new Tensor(null, x.Axes);
                expected.Set(x.Weights.Take(x.Length).Select(w => w * layer.Alpha).ToArray());
                Helpers.AreTensorsEqual(expected, y);

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

                Helpers.AreArraysEqual(
                    y.Length,
                    y.Gradient.Take(y.Length).Select(w => w * layer.Alpha).ToArray(),
                    x.Gradient);
            }
        }
示例#4
0
        public void ArchitectureConstructorTest1()
        {
            Shape      shape = new Shape(new int[] { -1, 1000 });
            ScaleLayer layer = new ScaleLayer(shape, "S0.7", null);

            CollectionAssert.AreEqual(shape.Axes, layer.OutputShape.Axes);
            Assert.AreEqual("S0.7", layer.Architecture);
        }
示例#5
0
        public void SerializeTest()
        {
            ScaleLayer layer1 = new ScaleLayer(new Shape(new int[] { -1, 1000 }), 0.7f);
            string     s1     = JsonConvert.SerializeObject(layer1);
            ScaleLayer layer2 = JsonConvert.DeserializeObject <ScaleLayer>(s1);
            string     s2     = JsonConvert.SerializeObject(layer2);

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

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