Beispiel #1
0
        // преобразовать структуру данных в клас нейрона
        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);
        }
Beispiel #2
0
        // функция открывает текстовой файл и преобразовывает его в массив нейронов
        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);
        }
Beispiel #3
0
        // эта функция заносит в память нейрона с именем 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();
        }
Beispiel #4
0
 public ShowMemoryWeight(Neiron neiron)
 {
     InitializeComponent();
     this.neiron = neiron;
 }