// преобразовать структуру данных в клас нейрона private static Neiron NeironCreate(Dictionary <string, object> o) { Neiron res = new Neiron(); res.name = (string)o["name"]; res.countTrainig = (int)o["countTrainig"]; //--- //TODO win //Object[] weightData = (Object[])o["weight"]; //TODO lin Object[] weightData = ((ArrayList)o["weight"]).ToArray(); //--- int arrSize = (int)Math.Sqrt(weightData.Length); res.weight = new double[arrSize, arrSize]; int index = 0; for (int n = 0; n < res.weight.GetLength(0); n++) { for (int m = 0; m < res.weight.GetLength(1); m++) { res.weight[n, m] = Double.Parse(weightData[index].ToString()); index++; } } return(res); }
// функция открывает текстовой файл и преобразовывает его в массив нейронов private static List <Neiron> InitWeb() { if (!File.Exists(memory)) { return(new List <Neiron>()); } string[] lines = File.ReadAllLines(memory); System.Console.WriteLine("lines.Length = " + lines.Length); if (lines.Length == 0) { return(new List <Neiron>()); } string jStr = lines[0]; JavaScriptSerializer json = new JavaScriptSerializer(); List <Object> objects = json.Deserialize <List <Object> >(jStr); List <Neiron> res = new List <Neiron>(); System.Console.WriteLine("objects.count = " + objects.Count); foreach (var o in objects) { Neiron n = NeironCreate((Dictionary <string, Object>)o); if (n == null) { System.Console.WriteLine("Error create neiron"); } else { res.Add(n); } } return(res); }
// эта функция заносит в память нейрона с именем trainingName // новый вариант образа data public void SetTraining(string trainingName, int[,] data) { Neiron neiron = neironArray.Find(v => v.name.Equals(trainingName)); if (neiron == null) // если нейрона с таким именем не существует, создадим новыи и добавим { // его в массив нейронов neiron = new Neiron(); neiron.Clear(trainingName, neironInArrayWidth, neironInArrayHeight); neironArray.Add(neiron); } int countTrainig = neiron.Training(data); // обучим нейрон новому образу string messageStr = "Имя образа - " + neiron.GetName() + " вариантов образа в памяти - " + countTrainig.ToString(); // покажем визуальное отображение памяти обученного нейрона Form resultForm = new ShowMemoryWeight(neiron); resultForm.Text = messageStr; resultForm.Show(); }
public ShowMemoryWeight(Neiron neiron) { InitializeComponent(); this.neiron = neiron; }