private void loadTrain(string path, string lpath, ClassifiedSample <double[][, ]> sample) { sample.Clear(); using (var lfile = File.Open(lpath, FileMode.Open, FileAccess.Read)) using (var reader = new StreamReader(lfile)) { reader.ReadLine(); // read label file header var dir = new DirectoryInfo(path); foreach (var file in dir.EnumerateFiles()) { var data = loadFile(file.FullName); var clsName = reader.ReadLine().Split(',')[1]; var cls = m_Classes.First(c => c.Value.Name.Equals(clsName)).Value; sample.Add(data, cls); } } Console.WriteLine("Loaded files from: {0}", path); }
private void loadSample(string ipath, ClassifiedSample <double[][, ]> sample) { sample.Clear(); using (var ifile = File.Open(ipath, FileMode.Open, FileAccess.Read)) using (var reader = new StreamReader(ifile)) { var header = reader.ReadLine(); while (true) { var str = reader.ReadLine(); if (string.IsNullOrWhiteSpace(str)) { break; } var raw = str.Split(',') .Select(d => int.Parse(d)) .ToArray(); var label = raw[0]; var data = new double[1][, ] { new double[IMG_SIZE, IMG_SIZE] }; for (int i = 1; i <= IMG_SIZE * IMG_SIZE; i++) { var shade = raw[i]; // do not invert 255-* because we want to keep logical format: 0=white, 255=black - not image color format! var x = (i - 1) % IMG_SIZE; var y = (i - 1) / IMG_SIZE; data[0][y, x] = shade / 255.0D; } sample.Add(data, m_Classes[label]); } Console.WriteLine("Loaded: {0}", ipath); } }