This class is used, together with a CODEC, to move data to/from the Encog binary training file format. The same Encog binary files can be used on all Encog platforms. CODEC's are used to import/export with other formats, such as CSV.
예제 #1
0
        public void TestArrayCODEC()
        {
            var codec  = new ArrayDataCODEC(XOR.XORInput, XOR.XORIdeal);
            var loader = new BinaryDataLoader(codec);

            loader.External2Binary("encog.bin");

            var codec2  = new ArrayDataCODEC();
            var loader2 = new BinaryDataLoader(codec2);

            loader2.Binary2External("encog.bin");

            double[][] input = codec2.Input;
            double[][] ideal = codec2.Ideal;

            for (int i = 0; i < XOR.XORInput.Length; i++)
            {
                for (int j = 0; j < XOR.XORInput[i].Length; j++)
                {
                    Assert.AreEqual(input[i][j], XOR.XORInput[i][j], 0.01);
                }

                for (int j = 0; j < XOR.XORIdeal[i].Length; j++)
                {
                    Assert.AreEqual(ideal[i][j], XOR.XORIdeal[i][j], 0.01);
                }
            }
        }
        public void TestCSV()
        {
            var codec = new ArrayDataCODEC(XOR.XORInput, XOR.XORIdeal);
            var loader = new BinaryDataLoader(codec);
            loader.External2Binary("encog.bin");

            var codec2 = new CSVDataCODEC("encog.csv", CSVFormat.English, false);
            var loader2 = new BinaryDataLoader(codec2);
            loader2.Binary2External("encog.bin");

            var codec3 = new CSVDataCODEC("encog.csv", CSVFormat.English, false, 2, 1, false);
            var loader3 = new BinaryDataLoader(codec3);
            loader3.External2Binary("encog.bin");

            var codec4 = new ArrayDataCODEC();
            var loader4 = new BinaryDataLoader(codec4);
            loader4.Binary2External("encog.bin");

            double[][] input = codec4.Input;
            double[][] ideal = codec4.Ideal;

            for (int i = 0; i < XOR.XORInput.Length; i++)
            {
                for (int j = 0; j < XOR.XORInput[i].Length; j++)
                {
                    Assert.AreEqual(input[i][j], XOR.XORInput[i][j], 0.01);
                }

                for (int j = 0; j < XOR.XORIdeal[i].Length; j++)
                {
                    Assert.AreEqual(ideal[i][j], XOR.XORIdeal[i][j], 0.01);
                }
            }
        }
        public void TestArrayCODEC()
        {
            var codec = new ArrayDataCODEC(XOR.XORInput, XOR.XORIdeal);
            var loader = new BinaryDataLoader(codec);
            loader.External2Binary("encog.bin");

            var codec2 = new ArrayDataCODEC();
            var loader2 = new BinaryDataLoader(codec2);
            loader2.Binary2External("encog.bin");

            double[][] input = codec2.Input;
            double[][] ideal = codec2.Ideal;

            for (int i = 0; i < XOR.XORInput.Length; i++)
            {
                for (int j = 0; j < XOR.XORInput[i].Length; j++)
                {
                    Assert.AreEqual(input[i][j], XOR.XORInput[i][j], 0.01);
                }

                for (int j = 0; j < XOR.XORIdeal[i].Length; j++)
                {
                    Assert.AreEqual(ideal[i][j], XOR.XORIdeal[i][j], 0.01);
                }
            }
        }
예제 #4
0
        public void TestCSV()
        {
            var codec  = new ArrayDataCODEC(XOR.XORInput, XOR.XORIdeal);
            var loader = new BinaryDataLoader(codec);

            loader.External2Binary("encog.bin");

            var codec2  = new CSVDataCODEC("encog.csv", CSVFormat.English, false);
            var loader2 = new BinaryDataLoader(codec2);

            loader2.Binary2External("encog.bin");

            var codec3  = new CSVDataCODEC("encog.csv", CSVFormat.English, false, 2, 1, false);
            var loader3 = new BinaryDataLoader(codec3);

            loader3.External2Binary("encog.bin");

            var codec4  = new ArrayDataCODEC();
            var loader4 = new BinaryDataLoader(codec4);

            loader4.Binary2External("encog.bin");

            double[][] input = codec4.Input;
            double[][] ideal = codec4.Ideal;

            for (int i = 0; i < XOR.XORInput.Length; i++)
            {
                for (int j = 0; j < XOR.XORInput[i].Length; j++)
                {
                    Assert.AreEqual(input[i][j], XOR.XORInput[i][j], 0.01);
                }

                for (int j = 0; j < XOR.XORIdeal[i].Length; j++)
                {
                    Assert.AreEqual(ideal[i][j], XOR.XORIdeal[i][j], 0.01);
                }
            }
        }
예제 #5
0
        private void ConvertEGB2CSV()
        {
            if (_cmd.Args.Count != 2)
            {
                Console.WriteLine(@"Must specify a source and target.");
                return;
            }

            String sourceFile = _cmd.Args[0];
            String targetFile = _cmd.Args[1];

            AnalystFileFormat format1 =
                ConvertStringConst.String2AnalystFileFormat(_cmd.PromptString("format", "decpnt|comma"));
            CSVFormat format = ConvertStringConst.ConvertToCSVFormat(format1);

            new FileInfo(targetFile).Delete();
            IDataSetCODEC codec = new CSVDataCODEC(targetFile, format, false);
            var loader = new BinaryDataLoader(codec) {Status = new ConsoleStatusReportable()};
            _sw.Start();
            loader.Binary2External(sourceFile);
        }
예제 #6
0
        private void ConvertCSV2EGB()
        {
            if (_cmd.Args.Count != 2)
            {
                Console.WriteLine(@"Must specify a source and target.");
                return;
            }

            String sourceFile = _cmd.Args[0];
            String targetFile = _cmd.Args[1];
            bool headers = _cmd.PromptBoolean("headers", true);
            int inputCount = _cmd.PromptInteger("inputCount", 0);
            int outputCount = _cmd.PromptInteger("outputCount", 0);

            if (inputCount == 0)
            {
                Console.WriteLine(@"Must specify an input count.");
                return;
            }

            AnalystFileFormat format1 =
                ConvertStringConst.String2AnalystFileFormat(_cmd.PromptString("format", "decpnt|comma"));
            CSVFormat format = ConvertStringConst.ConvertToCSVFormat(format1);

            new FileInfo(targetFile).Delete();
            IDataSetCODEC codec = new CSVDataCODEC(sourceFile, format, headers,
                                                   inputCount, outputCount, false);
            var loader = new BinaryDataLoader(codec) {Status = new ConsoleStatusReportable()};
            _sw.Start();
            loader.External2Binary(targetFile);
        }