Программирование - это просто
Advertisement
Главная arrow Уроки программирования arrow Генетический алгоритм (экспериментальный проект) arrow Генетический алгоритм. Шаг 4. Пишем класс нейрона (Neuron, нейросеть, C#)
26.04.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Генетический алгоритм. Шаг 4. Пишем класс нейрона (Neuron, нейросеть, C#) Печать E-mail
Автор megabax   
12.02.2011 г.
New Page 1

Генетический алгоритм. Шаг 4. Пишем класс нейрона (Neuron, нейросеть, C#)

Все статьи по данной теме.

Для начала я на C# написал класс нейрона и проверил его на простейшем тестовом примере:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

using System.Runtime.Serialization.Formatters.Binary;

 

namespace WindowsFormsApplication1

{

    public partial class FRMBotsPopulation : Form

    {

        public Neuron n;

        public FRMBotsPopulation()

        {

            InitializeComponent();

        }

 

        private void BTNTest_Click(object sender, EventArgs e)

        {

            LBTest.Items.Clear(); //очистим список поля списка

            for (int i = 0; i < n.count; i++) LBTest.Items.Add(n.weights[i]); //отобразим веса нейронов в поле списка

        }

 

        private void BTNSave_Click(object sender, EventArgs e)

        {  

            //создадим поток для сохранения нейрона

            FileStream FS = new FileStream("D:/1/nr.ga",FileMode.Create,FileAccess.Write,FileShare.None);  

            

            //создадим класс для сериализации (сохранения в файл) объекта 

            BinaryFormatter BF = new BinaryFormatter();  

            BF.Serialize(FS,n); //сохраним нейрон в файл

        }

 

        private void FRMBotsPopulation_Load(object sender, EventArgs e)

        {  

            //при создании формы создаем нейрон

            n=new Neuron();

            n.init(5);

        }

 

        private void BTNLoad_Click(object sender, EventArgs e)

        {  

            //при нажатии кнопочки "Load" загружаем нейрон и отображаем его в поле списка

            FileStream FS = new FileStream("D:/1/nr.ga", FileMode.Open, FileAccess.Read, FileShare.None);

            BinaryFormatter BF = new BinaryFormatter();

            n=(Neuron)BF.Deserialize(FS);

            LBTest.Items.Clear();

            for (int i = 0; i < n.count; i++) LBTest.Items.Add(n.weights[i]);

        }

    }

 

       [Serializable]

    public class Neuron

    {

        public double[] inputs; //входящие сигналы нейрона

        public double output; //исходящий сигнал нейрона

        public double[] weights; //весовые коэффициенты нейрона

        public int count; //количество входов нейрона

        static Random Rnd = new Random(); //генератор случайных чисел, поле статическое, этот объект единый для всех нейронов

 

        public void calk()

        {

            int i = 0;

            double res = 0;  

 

            //вычисляем результат путем сложения входных сигналов, умноженных на весовые коэффициенты

            foreach (double inp in inputs)

            {

                res = res + inp * weights[i];

                i++;

            }  

            output = res;

        }

 

        public void init(int a_count)

        {

            inputs = new double[a_count];

            weights = new double[a_count];  

 

            //инициализируем весовые коэффициенты случайными числами

            for (int i = 0; i < a_count; i++)

            {

                inputs[i] = 0;

                weights[i] = (double)Rnd.Next(10000) / 10000;

            }  

            count = a_count;

        }

 

    }

 

}

 

В итоге получилась вот такая форма*:

 

Генетический алгоритм. Шаг 4. Пишем класс нейрона (Neuron, нейросеть, C#)

 

на котором я протестировал, возможность генерации  и сохранения нейрона в бинарном файле.

 

Все статьи по данной теме.

 


Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями  программного продукта "Microsoft Visual Studio 2010 Professional", авторское право на который принадлежит корпорации Microsoft.. 


 

 

 

Последнее обновление ( 01.08.2011 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги