Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 20
1

Обучение нейронной сети encog

24.06.2017, 15:12. Просмотров 2370. Ответов 10
Метки нет (Все метки)


Здравствуйте. Скачал нейронную сеть. Пример обучения запускается. Работающий пример объявления массивов данных для классификатора выглядит так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
double[][] XORInput = {
            new[ ] { 0.0 , 0.0 } ,
            new[ ] { 1.0 , 0.0 } ,
            new[ ] { 0.0 , 1.0 } ,
            new[ ] { 1.0 , 1.0}
            };
 
            double[][] XORIdeal = {
            new[ ] { 0.0 } ,
            new[ ] { 1.0 } ,
            new[ ] { 1.0 } ,
            new[ ] {0.0}
            };
 
            FullClassifier f = new FullClassifier();
            textBox1.Text = f.CClassifier(XORInput, XORIdeal);
Естественно, что массивы данных нужно заменить на другие, и тут возникает проблема.

C#
1
2
3
4
5
double[][] XORInput = new double[10000][];
double[][] XORIdeal = new double[10000][];
 
XORInput[countSch] = class3.DataSet;
XORIdeal[countSch] = class3.Ideal;
countSch- переменная большего и некрасивого цикла. И так цикл проходит записывая 10000 вариантов данных и верных решений для классификатора, в классе создаётся одномерный массив этих данных примерно вот так:

C#
1
2
3
4
5
public double[] DataSet;
public double[] Ideal;
 
DataSet = new double[14];
Ideal = new double[1];
Дальше заполняются одномерные массивы, и копируются в общий, ступенчатый. Данные отлично считываются, массивы все заполняются, но на этапе предварительной обработке массивов вылетает ошибка:

Обучение нейронной сети encog


Ошибка элементарная, но никак не могу понять где... Подскажите, где я неверно объявил этот массив, чем, кроме размерности, он отличается от того, что дан в примере к нейронке?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.06.2017, 15:12
Ответы с готовыми решениями:

Нет метода Main в примере нейронной сети
Начал изучать нейросети, а параллельно с#(есть начальная база, Которую дали в...

Обучение нейронной сети и правильность ее концепции
Решил создать "реалистичную" самообучающуюся нейронную сеть. Концепция : создается Х нейронов,...

Разработка нейронной сети в matlab и интеграция с C#
Здравствуйте. Подскажите, пожалуйста, я в matlab разработал нейронную сеть, затем сохранил её в...

Не работает процедура обучения нейронной сети
Здравствуйте! Я написал свой класс нейронной сети, но обучение по алгоритму обратного...

10
Администратор
Эксперт .NET
13114 / 10687 / 4407
Регистрация: 17.03.2014
Сообщений: 21,512
Записей в блоге: 1
25.06.2017, 07:52 2
Лучший ответ Сообщение было отмечено Felester как решение

Решение

Felester, наверное input[i] дает null. То есть вложенный массив не был создан.
1
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 20
25.06.2017, 08:55  [ТС] 3
Как видно на скрине-проблема в чём то другом.Заполняются ли массивы я в первую очередь проверил...
0
Миниатюры
Обучение нейронной сети encog  
Эксперт .NET
8655 / 6117 / 1019
Регистрация: 21.01.2016
Сообщений: 23,091
25.06.2017, 09:25 4
Цитата Сообщение от Felester Посмотреть сообщение
Как видно на скрине-проблема в чём то другом.
Воспользуйтесь отладчиком и найдите свою проблему самостоятельно. Гадать по фрагменту кода можно долго.
0
34 / 34 / 16
Регистрация: 04.06.2017
Сообщений: 158
25.06.2017, 09:52 5
Цитата Сообщение от Felester Посмотреть сообщение
но на этапе предварительной обработке массивов вылетает ошибка:
У вас рваный массив, тобишь строки могут иметь разную длину, а вы всем строкам задаете длину первой строкиnew double [input[0].Length];.

И когда программа пытается получить из начального массива из более короткой строки j-й элемент, и происходит вылет за границы массива
0
Администратор
Эксперт .NET
13114 / 10687 / 4407
Регистрация: 17.03.2014
Сообщений: 21,512
Записей в блоге: 1
25.06.2017, 13:32 6
Цитата Сообщение от Felester Посмотреть сообщение
Как видно на скрине-проблема в чём то другом.
Нет, не видно. В массиве input 10 000 элементов. Ты показал только первый из них при том что обрашение идет к элементу с индексом i и его значение на скриншоте не видно. В любом случае уже дали правильный совет - использовать отладчик для инспекции переменных.

Цитата Сообщение от DanLan Посмотреть сообщение
происходит вылет за границы массива
Какой вылет? У ТС NullReferenceException, а не IndexOutOfRangeException.
0
34 / 34 / 16
Регистрация: 04.06.2017
Сообщений: 158
25.06.2017, 13:52 7
Цитата Сообщение от OwenGlendower Посмотреть сообщение
IndexOutOfRangeException
все что я хочу себе сказать вырезано цензурой
0
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 20
25.06.2017, 14:12  [ТС] 8
Всем спасибо. Я думал проблема в самом массиве, со ступенчатыми раньше не сталкивался. Оказалось что структура файла, с которого читаются данные, немного изменилась, и после 1000+ записей действительно пошли null массивы.
0
34 / 34 / 16
Регистрация: 04.06.2017
Сообщений: 158
25.06.2017, 14:24 9
Цитата Сообщение от OwenGlendower Посмотреть сообщение
У ТС NullReferenceException,
Получил NullReferenceException при условии что одна из строк массива не инициализирована тобишь нулл...
0
Миниатюры
Обучение нейронной сети encog  
Администратор
Эксперт .NET
13114 / 10687 / 4407
Регистрация: 17.03.2014
Сообщений: 21,512
Записей в блоге: 1
25.06.2017, 14:31 10
DanLan, что ты пытаешься этим продемонстрировать?
0
34 / 34 / 16
Регистрация: 04.06.2017
Сообщений: 158
25.06.2017, 15:22 11
Цитата Сообщение от OwenGlendower Посмотреть сообщение
что ты пытаешься этим продемонстрировать?
Уже ничего... Не видел сообщения от ТС

Цитата Сообщение от Felester Посмотреть сообщение
и после 1000+ записей действительно пошли null массивы.
Добавлено через 6 минут
Цитата Сообщение от OwenGlendower Посмотреть сообщение
что ты пытаешься этим продемонстрировать?
А если вы случаем подумали, что я вам пытаюсь что-то доказать, то напрасно.

Я не псих ,что бы что-то доказывать практику со стажем 10+, когда сам только учусь
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2017, 15:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Программирование нейронной сети - Самоорганизующейся карты Кохонена
Пробую реализовать нейронную сеть Кохонена на C# на простом примере - распознавания образов, а...

Принятие решений нейронной сети в игре крестики нолики
Собственно есть нейронная сеть(слизанная с хабра), там нейронная сеть была предназначена для...

Как написать back propagation для нечеткой нейронной сети?
Приветсвую,начал писать нечеткую нейронную сеть для прогнозирования футбольных матчей. Сделал...

обучение нейронной сети
struct SAcson { int l,c; // строка, столбец float x; // заряд }; struct SSinapc { int...

Обучение нейронной сети
Столкнулся с проблемой обучения нейронной сети, пытаюсь "научить" сеть функции xor. Структура сети...

Обучение нейронной сети
Здравствуйте. Помогите, пожалуйста. Задание в приложении. Написал код: T = '; P = ; Pc =...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.