예제 #1
0
        public void TestDoesSaveJordan()
        {
            INetwork nn = new RecursiveNetwork(RecursiveNetwork.Type.Jordan,
                                               new UnipolarSigmoidActivation(), true, 1, 4, 1);

            TestSaveInternal(nn);
        }
예제 #2
0
        public void SerializeJordanorksBothWays()
        {
            RecursiveNetwork nn        = new RecursiveNetwork(RecursiveNetwork.Type.Jordan, new UnipolarSigmoidActivation(), true, 2, 10, 3);
            IFormatter       formatter = new BinaryFormatter();
            Stream           stream    = new MemoryStream();

            formatter.Serialize(stream, nn);
            stream.Seek(0, SeekOrigin.Begin);

            object result = formatter.Deserialize(stream);

            Assert.IsTrue(result is RecursiveNetwork);
            RecursiveNetwork resNet = (RecursiveNetwork)result;

            Assert.AreEqual(RecursiveNetwork.Type.Jordan, resNet.NetworkType);
        }
예제 #3
0
        private INetwork CreateNetwork(LearningSettings learningSettings, List <int> layersVal)
        {
            INetwork network = null;

            switch (eid.NetworkType)
            {
            case NetworkType.MLP:
                network = new NeuralNetwork(learningSettings.Activation, eid.UseBiases, layersVal.ToArray());
                break;

            case NetworkType.Jordan:
                network = new RecursiveNetwork(RecursiveNetwork.Type.Jordan,
                                               learningSettings.Activation, eid.UseBiases, layersVal[0], layersVal[1], layersVal[2]);
                break;

            case NetworkType.Elman:
                network = new RecursiveNetwork(RecursiveNetwork.Type.Elman,
                                               learningSettings.Activation, eid.UseBiases, layersVal[0], layersVal[1], layersVal[2]);
                break;
            }

            return(network);
        }