public static PreparedLearningDataset ParseFromGZipedDefinitionsForCntk(ITrainingDatasetDefinition datasetDefinition) { var output = new PreparedLearningDataset(); output.ValueToLabelMap = BuildEMNISTValueToLabelMapFor(datasetDefinition); output.TrainingDatasetPath = ReadEMNISTInCntkFormat(datasetDefinition, output.ValueToLabelMap, true); output.TestingDatasetPath = ReadEMNISTInCntkFormat(datasetDefinition, output.ValueToLabelMap, false); return(output); }
private static char CntkLabelFromLabelStream(int[] labelStream, PreparedLearningDataset preparedDataset) { byte counter = preparedDataset.ValueToLabelMap.Keys.OrderBy(k => k).FirstOrDefault(); foreach (var item in labelStream) { if (item == 1) { return(preparedDataset.ValueToLabelMap[counter]); } counter++; } throw new InvalidOperationException(); }
private CntkDatasetRow ParseLineAsCntkDatasetRow(string readLine, ITrainingDatasetDefinition datasetDefinition, PreparedLearningDataset dataset) { var rowStreams = readLine.Split('|').Skip(1).ToList(); var labelStream = GetDatasetStreamItems(rowStreams[0], "labels"); return(new CntkDatasetRow { DatasetName = datasetDefinition.DataSetName, ImagePixels = GetDatasetStreamItems(rowStreams[1], "features"), Label = CntkLabelFromLabelStream(labelStream, dataset) }); }