///<summary> ///Load MNIST data. ///If it fails, it returns null. ///</summary> ///<param name = "path"> Image data path. </param> ///<returns> </returns> public static MnistImageLoader Load(string path) { //File does not exist if (File.Exists(path) == false) { return(null); } MnistImageLoader loader = new MnistImageLoader(); //Decompose byte array using (FileStream inStream = new FileStream(path, FileMode.Open, FileAccess.Read)) using (GZipStream decompStream = new GZipStream(inStream, CompressionMode.Decompress)) { BinaryReaderBE reader = new BinaryReaderBE(decompStream); loader.magicNumber = reader.ReadInt32(); loader.numberOfImages = reader.ReadInt32(); loader.numberOfRows = reader.ReadInt32(); loader.numberOfColumns = reader.ReadInt32(); int pixelCount = loader.numberOfRows * loader.numberOfColumns; for (int i = 0; i < loader.numberOfImages; i++) { byte[] pixels = reader.ReadBytes(pixelCount); loader.bitmapList.Add(pixels); } reader.Close(); } return(loader); }
public MnistDataLoader() { string trainlabelPath = InternetFileDownloader.Donwload(DOWNLOAD_URL + TRAIN_LABEL, TRAIN_LABEL, TRAIN_LABEL_HASH); MnistLabelLoader trainLabelLoader = MnistLabelLoader.Load(trainlabelPath); this.TrainLabel = trainLabelLoader.labelList; string trainimagePath = InternetFileDownloader.Donwload(DOWNLOAD_URL + TRAIN_IMAGE, TRAIN_IMAGE, TRAIN_IMAGE_HASH); MnistImageLoader trainImageLoader = MnistImageLoader.Load(trainimagePath); this.TrainData = trainImageLoader.bitmapList.ToArray(); string teachlabelPath = InternetFileDownloader.Donwload(DOWNLOAD_URL + TEACH_LABEL, TEACH_LABEL, TEACH_LABEL_HASH); MnistLabelLoader teachLabelLoader = MnistLabelLoader.Load(teachlabelPath); this.TeachLabel = teachLabelLoader.labelList; string teachimagePath = InternetFileDownloader.Donwload(DOWNLOAD_URL + TEACH_IMAGE, TEACH_IMAGE, TEACH_IMAGE_HASH); MnistImageLoader teachImageLoader = MnistImageLoader.Load(teachimagePath); this.TeachData = teachImageLoader.bitmapList.ToArray(); }