public void ReadTrainMNIST() { try { FileStream ifsLabels = new FileStream(@"C:\Users\cleist\BA\MNIST\train-labels.idx1-ubyte", FileMode.Open); // train labels FileStream ifsImages = new FileStream(@"C:\Users\cleist\BA\MNIST\train-images.idx3-ubyte", FileMode.Open); // train images BinaryReader brLabels = new BinaryReader(ifsLabels); BinaryReader brImages = new BinaryReader(ifsImages); int magic1 = BigEndianConverter.ReadBigInt32(brImages); // discard int numImages = BigEndianConverter.ReadBigInt32(brImages); int numRows = BigEndianConverter.ReadBigInt32(brImages); int numCols = BigEndianConverter.ReadBigInt32(brImages); int magic2 = BigEndianConverter.ReadBigInt32(brLabels); int numLabels = BigEndianConverter.ReadBigInt32(brLabels); byte[][] pixels = new byte[numRows][]; for (int i = 0; i < pixels.Length; ++i) { pixels[i] = new byte[numCols]; } // each image for (int di = 0; di < 1000; ++di) { for (int i = 0; i < numRows; ++i) { for (int j = 0; j < numCols; ++j) { byte b = brImages.ReadByte(); pixels[i][j] = b; } } byte lbl = brLabels.ReadByte(); TrainingImgs.Add(new DigitImage(pixels, lbl, numRows, numCols)); } ifsImages.Close(); brImages.Close(); ifsLabels.Close(); brLabels.Close(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); } }
public void ShuffleTrainingImgs() { var rnd = new Random(); TrainingImgs = TrainingImgs.OrderBy(x => rnd.Next()).ToList(); }