public static Perseptron FromFile(String filename) { IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read); TrainedPerceptron ts = (TrainedPerceptron)formatter.Deserialize(stream); stream.Close(); var p = new Perseptron(ts.sLayerSize, ts.aLayerSize, ts.rLayerSize); p.vesaStoA = ts.v; p.aLayerThreshold = ts.v0; p.vesaAtoR = ts.w; p.rLayerThresold = ts.w0; return p; }
private void TrainPerseptron() { var folderName = AppDomain.CurrentDomain.BaseDirectory; var perFile = folderName + "\\per.data"; var imgsFolder = folderName + "\\Lightshot"; var imgsNames = Directory.GetFiles(imgsFolder); var imgToVes = new Dictionary<int[], double[]>(); for (int i = 0; i < Letters.Length; i++) { var fn = String.Format("{0}\\Screenshot_{1}.png", imgsFolder, i + 1); var img = new Bitmap(System.Drawing.Image.FromFile(fn)); var ves = new double[imgsNames.Length]; ves[i] = 1; imgToVes.Add(BitmapEditor.ImgToInts(img), ves); } System.Diagnostics.Debug.WriteLine("Training start"); Perseptron p = new Perseptron(30 * 40, 30 * 40, Letters.Length); p.Train(imgToVes); p.Save(perFile); }