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); }
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); }