public Reader(string filePath) { var variables = new List <float[]>(); var labels = new List <string>(); var csv = new CsvReader(new StreamReader(filePath)); csv.Configuration.Delimiter = ","; csv.Configuration.DetectColumnCountChanges = true; csv.Read(); int variablesCount = csv.Context.ColumnCount; attributeCount = csv.Context.ColumnCount - 1; while (csv.Read()) { variables.Add(new float[csv.Context.ColumnCount - 1]); for (int i = 0; i < csv.Context.ColumnCount - 1; i++) { variables.Last()[i] = csv.GetField <float>(i); } labels.Add(csv.GetField <string>(variablesCount - 1)); } labelToId = labels.Distinct() .Select((val, index) => new { val, index }) .ToDictionary(x => x.val, x => x.index); dataSet = new CudaDataSet <int>() { Vectors = new FlattArray <float>(variables.ToArray()), Classes = labels.Select(x => labelToId[x]).ToArray(), }; dataSet.orginalIndeces = DataSetHelper.CreateIndeces(dataSet); }
public static void ResetIndeces <T>(this CudaDataSet <T> set) { set.orginalIndeces = DataSetHelper.CreateIndeces(set); }