示例#1
0
        public void TestDatasetFetchBlockSequential()
        {
            RedirectGlobalsToTempPath();

            string filename = $"test{nameof(TestDatasetFetchBlockSequential)}.dat";

            CreateCsvTempFile(filename);

            CsvRecordExtractor extractor = new CsvRecordReader(new FileSource(filename, Path.GetTempPath())).Extractor("inputs", 1, 2, "targets", 3);
            ExtractedDataset   dataset   = new ExtractedDataset(name: "name", blockSizeRecords: 1, recordExtractors: extractor);
            CpuFloat32Handler  handler   = new CpuFloat32Handler();

            IDictionary <string, INDArray> namedArrays = dataset.FetchBlock(0, handler, false);

            Assert.AreEqual(new[] { 3.5f, 1.4f }, namedArrays["inputs"].GetDataAs <float>().GetValuesArrayAs <float>(0, 2));

            //fetch the same thing twice to check for same block
            namedArrays = dataset.FetchBlock(0, handler, false);

            Assert.AreEqual(new[] { 3.5f, 1.4f }, namedArrays["inputs"].GetDataAs <float>().GetValuesArrayAs <float>(0, 2));

            //skipping second block (index 1)

            namedArrays = dataset.FetchBlock(2, handler, false);

            Assert.AreEqual(new[] { 3.2f, 1.3f }, namedArrays["inputs"].GetDataAs <float>().GetValuesArrayAs <float>(0, 2));

            namedArrays = dataset.FetchBlock(1, handler, false);

            Assert.AreEqual(new[] { 3.0f, 1.4f }, namedArrays["inputs"].GetDataAs <float>().GetValuesArrayAs <float>(0, 2));

            namedArrays = dataset.FetchBlock(3, handler, false);

            Assert.IsNull(namedArrays);

            dataset.Dispose();

            DeleteTempFile(filename);
        }
示例#2
0
        public void TestDatasetFreeBlockSequential()
        {
            RedirectGlobalsToTempPath();

            string filename = $"test{nameof(TestDatasetFetchBlockSequential)}.dat";

            CreateCsvTempFile(filename);

            CsvRecordExtractor extractor = new CsvRecordReader(new FileSource(filename, Path.GetTempPath())).Extractor("inputs", 1, 2, "targets", 3);
            ExtractedDataset   dataset   = new ExtractedDataset(name: "name", blockSizeRecords: 1, recordExtractors: extractor);
            CpuFloat32Handler  handler   = new CpuFloat32Handler();

            dataset.FetchBlock(0, handler, false);
            dataset.FetchBlock(1, handler, false);
            dataset.FetchBlock(2, handler, false);

            Assert.AreEqual(3, dataset.ActiveBlockRegionCount);

            dataset.FreeBlock(1, handler);
            dataset.FreeBlock(2, handler);

            Assert.AreEqual(1, dataset.ActiveBlockRegionCount);

            var namedArrays = dataset.FetchBlock(0, handler, false);

            Assert.AreEqual(new[] { 3.5f, 1.4f }, namedArrays["inputs"].GetDataAs <float>().GetValuesArrayAs <float>(0, 2));

            namedArrays = dataset.FetchBlock(1, handler, false);
            Assert.AreEqual(new[] { 3.0f, 1.4f }, namedArrays["inputs"].GetDataAs <float>().GetValuesArrayAs <float>(0, 2));

            namedArrays = dataset.FetchBlock(2, handler, false);
            Assert.AreEqual(new[] { 3.2f, 1.3f }, namedArrays["inputs"].GetDataAs <float>().GetValuesArrayAs <float>(0, 2));

            dataset.Dispose();

            DeleteTempFile(filename);
        }