Esempio n. 1
0
        protected MockTrainer(string name) : base(name)
        {
            Network = new Network("test");
            Network.Architecture = new LinearNetworkArchitecture(MockLayer.Construct());
            Optimiser            = new GradientDescentOptimiser(0.0);
            IRecordExtractor extractor = new MockRecordExtractor();

            extractor.SectionNames = new[] { "targets", "inputs" };
            extractor.Reader       = new MockRecordReader();
            Sigma = SigmaEnvironment.GetOrCreate("testificate-mocktrainer");
            TrainingDataIterator = new UndividedIterator(new ExtractedDataset("testificate", extractor));
        }
Esempio n. 2
0
        public void TestUndividedIteratorYield()
        {
            string filename = ".unittestfile" + nameof(TestUndividedIteratorCreate);

            CreateCsvTempFile(filename);

            SigmaEnvironment.Clear();

            FileSource         source    = new FileSource(filename, Path.GetTempPath());
            CsvRecordExtractor extractor = (CsvRecordExtractor) new CsvRecordReader(source).Extractor(new CsvRecordExtractor(new Dictionary <string, int[][]> {
                ["inputs"] = new[] { new[] { 0 } }
            }));
            ExtractedDataset    dataset  = new ExtractedDataset("test", 2, new DiskCacheProvider(Path.GetTempPath() + "/" + nameof(TestUndividedIteratorCreate)), true, extractor);
            UndividedIterator   iterator = new UndividedIterator(dataset);
            SigmaEnvironment    sigma    = SigmaEnvironment.Create("test");
            IComputationHandler handler  = new CpuFloat32Handler();

            int index = 0;

            foreach (var block in iterator.Yield(handler, sigma))
            {
                if (index == 0)
                {
                    Assert.AreEqual(new float[] { 5.1f, 4.9f }, block["inputs"].GetDataAs <float>().GetValuesArrayAs <float>(0, 2));
                }
                else if (index == 1)
                {
                    Assert.AreEqual(new float[] { 4.7f }, block["inputs"].GetDataAs <float>().GetValuesArrayAs <float>(0, 1));
                }
                else
                {
                    Assert.Fail("There can be a maximum of two iterations, but this is yield iteration 3 (index 2).");
                }

                index++;
            }

            dataset.Dispose();

            DeleteTempFile(filename);
        }