Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 16.06.2018, 14:50   #1
Валерия0987654321
Новичок
 
Регистрация: 18.05.2018
Сообщений: 3
Репутация: 10
Вопрос Нейронная сеть Хопфилда

Нужно реализовать нейронную сеть Хопфилда на с++. Алгоритм в наипростейшем виде я реализовала. Теперь вопрос стоит в том как сделать так, чтобы образцы считывались с картинок или txt-файлов. Если кто-то будет готов помочь с этим, буду очень благодарна. Код, который имею на данный момент, прилагаю.

Код:

#include <stdio.h>
#include <omp.h>
#include <iostream>
int main()
{
 
 
            int n = 3;
            int m = 4;//количесво нейронов
            int **mas = new int* [n];//образцы для обучения
             for (int count = 0; count < m; count++)
           mas[count] = new int [m];
            int *y = new int[m];
            mas[0][0] = -1; mas[0][ 1] = 1; mas[0][ 2] = -1; mas[0][ 3] = 1;
            mas[1][ 0] = 1; mas[1][ 1] = -1; mas[1][ 2] = 1; mas[1][ 3] = 1;
            mas[2][ 0] = -1; mas[2][1] = 1; mas[2][2] = -1; mas[2][ 3] = -1;
            int i = 0, j = 0;
            std::string s = "";
            int **w = new int* [m];//
            for (int count = 0; count < m; count++)
             w[count] = new int [m];
            int  **tm = new int*[m];//Временный массив
            for (int count = 0; count < m; count++)
           tm[count] = new int [m];
            int k = 0;
            //нахожу W
            for (k = 0; k < n; k++)
            {
              
                for (i = 0; i < m; i++)
                    for (j = 0; j < m; j++)
                        tm[i][j] = mas[k][i] * mas[k][j];
                //нахожу сумму tm[i]
                for (i = 0; i < m; i++)
                    for (j = 0; j < m; j++)
                        w[i][j] += tm[i][j];
            }
            //Обнуляю главную диагональ w
            for (i = 0; i < m; i++) 
                w[i][i] = 0;
            int *a = new int[m];//ф-ия активации
            bool b = false; k = 0;//Счётчик
            int l = -1;//Индекс подходящей строки
            while (!b && k < 200)
            {
                //Вычисляю y'
                for (i = 0; i < m; i++)
                    for (j = 0; j < m; j++)
                        a[i] += w[i][j] * y[j];
                //Обрабатываю y' ф-ей активации
                for (i = 0; i < m; i++)
                    if (a[i] >= 0) a[i] = 1;
                    else a[i] = -1;
                //Сравниваю
                bool st = false;
                for (i = 0; i < n; i++)
                {
                    st = true;
                    for (j = 0; j < m; j++)
                        if (mas[i][ j] != a[j]) { st = false; break; }
                    if (st) { l = i; break; }
                }
                if (l != -1) b = true;
                else
                {
                    k++;//Увеличиваю счетчик
                    //Обновляем у'
                    for (i = 0; i < m; i++)
                        y[i] = a[i];
                    //Обнуляем a
                    for (i = 0; i < m; i++)
                        a[i] = 0;
                }
            }
            if (l != -1)
            {
 
                printf("clones with X = %i", (l + 1));
            }
            else
            {
                printf("no clones");
 
            }
            system("PAUSE");
            
        }

Валерия0987654321 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нейронная сеть в Matlab Shtopor51 Помощь студентам 0 12.01.2014 22:21
Нейронная сеть Консул Мартиша Операционные системы общие вопросы 0 06.09.2013 14:43
Одномерная нейронная сеть Кохонена C# [FENIX] Фриланс 0 12.03.2012 16:48
Нейронная сеть на Java Vinnipux Общие вопросы по Java, Java SE, Kotlin 0 16.03.2011 12:05
Нейронная сеть.С++ Скарам Помощь студентам 4 20.11.2009 17:31


04:24.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru