Форум программистов, компьютерный форум, киберфорум
C++: ИИ, нейросети, ML, агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
2 / 2 / 0
Регистрация: 22.12.2009
Сообщений: 16

Нейронные сети

28.05.2010, 14:04. Показов 4500. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать програму в среде С++ Builder которая моделирует работу нейронной сети прямого распостранения. Количество слоев и количество нейронов слоя выбирается пользователем. Функция активации во всех нейронах одна - линейная с ограничением. Параметры функции активации задаются пользователем. Все нейроны предедущего слоя связаны со всеми нейронами следуещего слоя. Веса сигналов задаются случайным образом в диапазоне 0..2. Входные сигналы нейронной сети задаются ползунками вручную. Выходы сети и каждого нейрона отбражаются в числовом виде.

Вот я написал код программы, помогите разобраться с ошибками и обьясните почему программа не работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <Buttons.hpp>
#include <ExtCtrls.hpp>
#include <jpeg.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TTrackBar *TrackBar1;
        TComboBox *ComboBox1;
        TEdit *Edit1;
        TLabel *Label1;
        TLabel *Label2;
        TLabel *Label3;
        TEdit *Edit2;
        TLabel *Label4;
        TLabel *Label5;
        TEdit *Edit3;
        TEdit *Edit4;
        TEdit *Edit5;
        TEdit *Edit6;
        TLabel *Label6;
        TLabel *Label7;
        TLabel *Label8;
        TLabel *Label9;
        TImage *Image1;
        TLabel *Label10;
        TImage *Image2;
        TLabel *Label11;
        TBitBtn *BitBtn1;
        TLabel *Label12;
        void __fastcall TrackBar1Change(TObject *Sender);
        void __fastcall ComboBox1Change(TObject *Sender);
        void __fastcall Edit1Change(TObject *Sender);
        void __fastcall Edit3Change(TObject *Sender);
        void __fastcall Edit4Change(TObject *Sender);
        void __fastcall Edit5Change(TObject *Sender);
        void __fastcall Edit6Change(TObject *Sender);
        void __fastcall BitBtn1Click(TObject *Sender);
        void __fastcall FormCreate(TObject *Sender);
        void __fastcall Image2Click(TObject *Sender);
private:    // User declarations
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
};
class Cneiron
{public:
 Cneiron (int,int);     //обьявление конструктора
int n;  //количество нейронов
int x[100];     //массив под входные сигналы
int k[100];     //массив под веса нейронов
int l;  //количество слоев
float y[100];  //массив промежуточных сигналов нейронов в слое
float z[100];  //массив выходных сигналов нейронов после функции активации
float y_min,y_max,z_min,z_max;  //параметры функции активации
float aktiv();  //обьявление функции расчета выходных сигналов нейрона
};
 
float aktiv(int n,int l, int x[100],int k[100],int y[100],float z[100],float y_min,float y_max,float z_min,float z_max)
{for(int j=0;j<l;j++)
{for(int i=0;i<n;i++)
{k[i]=random(2);        //заполнение случайным образом весов нейронов
y[i]+=x[i]*k[i];
if(y[i]>y_max) z[i]=z_max;    //условия функции активации
if(y[i]<y_min) z[i]=z_min;
else z[i]=y[i];
}
}
return z;       //возвращающий функцией массив значений
};
 
class Layer: public Cneiron
{public:
float u;        //выход сети
float vuhod();    //обьявление функции расчета выхода сети
};
 
Layer::Layer(float u) //конструктор
{
Layer *pLayer;
};
 
float vuhod(int l,int n,int x[100],int k[100],int y[100],float z[100],float u,float y_min,float y_max,float z_min,float z_max)
{for(int i=0;i<n;i++)
{u+=z[i];}
if(u>y_max) u=z_max;    //условия функции активации
if (u<y_min) u=z_min;
else u=u;
return u;
};
 
delete pLayer;
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int i,l,n,x[100];
float y_min,y_max,z_min,z_max,y[100],z[100],u;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
 
void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{
x[i]=StrToInt(TrackBar1->Position);
i++;
Label12->Caption=TrackBar1->Position;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
switch(ComboBox1->ItemIndex)
{case 0:
l=1;
break;
case 1:
l=2;
break;
case 2:
l=3;
break;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
n=StrToInt(Edit1->Text);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit3Change(TObject *Sender)
{
y_min=StrToInt(Edit3->Text);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit4Change(TObject *Sender)
{
y_max=StrToInt(Edit4->Text);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit5Change(TObject *Sender)
{
z_min=StrToInt(Edit5->Text);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit6Change(TObject *Sender)
{
z_max=StrToInt(Edit6->Text);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
pLayer=new Layer;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
Form1->Edit2->Text=IntToStr(pLayer->vuhod());
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Image2Click(TObject *Sender)
{
        
}
//---------------------------------------------------------------------------
Вложения
Тип файла: rar kurs.rar (464.5 Кб, 138 просмотров)
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.05.2010, 14:04
Ответы с готовыми решениями:

Моделирование работы нейронной сети прямого распостранения
Написать програму в среде С++ Builder которая моделирует работу нейронной сети прямого распостранения. Количество слоев и количество...

Нейронные сети, обучение персептрона с учителем
Всем счастливого нового года!!! мне срочно нужно персептрон обучить с учителем, кто с таким сталкивался? может поможете, буду очень...

Нейронные сети. Ошибка в программе
Всем привет! Подскажите, не могу разобраться в коде программы распознавания. Ошибка №1 ai.cpp(13): E2268 Call to undefined function...

3
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
28.05.2010, 14:08
https://www.cyberforum.ru/cpp-... 82636.html
0
2 / 2 / 0
Регистрация: 22.12.2009
Сообщений: 16
28.05.2010, 14:14  [ТС]
Эта ссылка не подходит под мое задание. У меня уже есть готовый код, но в нем выбивает несколько ошибок, и я не могу их исправиить. Вот в чем я прошу мне помочь.
0
2 / 2 / 0
Регистрация: 22.12.2009
Сообщений: 16
31.05.2010, 14:44  [ТС]
Grey можешь помочь с кодом?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.05.2010, 14:44
Помогаю со студенческими работами здесь

Нейронные сети. Алгоритм обратного распространения
Ребят помогите мне срочно нужно реализовать на C++ алгоритма обратного распространения. Кто с таким сталкивался? Может кто нибудь поможет я...

Искусственные нейронные сети, вопросы по программе
Доброго времени суток, взял готовую программу по нейронным сетям, а ответить на некоторые вопросы не могу, помогите пожалуйста!!! 1)Какая...

Техническое зрение, нейронные сети
А есть книги по техническому(машинному) зрению, нейронным сетям, касающиеся С++? Также не помешала бы литература например по OpenCV на С++...

Нейронные сети полученные из Statistica
Всем привет! Хочу построить нейронную сети, которая будет делать онлайн прогноз, для этого решил обучить сеть в статистике, а потом...

Узнать ip-адрес компьютера по сети, зная его имя в сети
Ребята подскажите, пожалуйста, по такому вопросу. Как можно узнать ip-адрес компьютера в сети зная его имя в сети, только не своего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru