Александр Кириченко - Нейросетевое программирование. Инструментарий нейрокомпьютинга
- Название:Нейросетевое программирование. Инструментарий нейрокомпьютинга
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:9785005163271
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Александр Кириченко - Нейросетевое программирование. Инструментарий нейрокомпьютинга краткое содержание
Нейросетевое программирование. Инструментарий нейрокомпьютинга - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
{
// Constructor without arguments
SecondsTimer ()
{
mId = gSecondsTimerInstanceCount++;
mReferenceTime = Now ();
}
// Constructor with initial elapse time [s] (начальное время истечения)
SecondsTimer (uint seconds)
{
mId = gSecondsTimerInstanceCount++;
// Получить текущее время, добавить прошедшие секунды и сохранить полученное время.
int now = Now ();
mReferenceTime = now + seconds;
// Только для целей отладки:
/*
string timeStr;
TimeToString (now, timeStr);
Trace (timeStr);
TimeToString (mReferenceTime, timeStr);
Trace (» Timer " + mId + " started. Will elapse at:" + timeStr + "\n»);
строка timeStr;
TimeToString (now (сейчас), timeStr);
Trace (Трассировка) (timeStr);
TimeToString (mReferenceTime, timeStr);
Trace («Таймер» + mId + «запущен. Пройдет по адресу (закончится):" + timeStr + "\ n»);
*/
}
~SecondsTimer ()
{
gSecondsTimerInstanceCount – ;
}
// Проверяем, истек ли таймер
bool IsElapsed ()
{
int now = Now ();
bool elapsed = now> = mReferenceTime;
return elapsed;
}
// Запускаем таймер по истечении заданного времени
void Start (uint seconds)
{
// Получить текущее время, добавить прошедшие секунды и сохранить полученное время.
int now = Now ();
mReferenceTime = now + seconds;
}
// Запускаем таймер для подсчета секунд
void Start ()
{
// Получить текущее время, установить время истечения на то же значение.
int now = Now ();
mReferenceTime = now;
}
// Return the elapsed seconds since the timer was started
int SecondsSinceStart ()
{
// Получить текущее время
return Now () – mReferenceTime;
}
// Контрольное время для этого таймера
int mReferenceTime;
// ID таймера для этого таймера (необходим только для отладочных сообщений)
uint mId;
};
Экспорт нейросети
Что собой представляет нейросеть?
С внутренним устройством нейросети можно познакомиться, произведя экспорт созданной нейросети (Exporting a Net) в csv-файл.
В MemBrain есть возможность экспортировать сетевой список текущей нейронной сети через файл csv, содержащий значения, разделенные запятыми. Этот файл в дальнейщем можно использовать для импорта нейронной сети, созданной и, обученной с помощью MemBrain, в другое прикладное программное обеспечение.
С помощью следующего диалога можно выбрать уровень детализации, который вы хотите включить в файл экспорта.
Чтобы экспортировать сеть, выберите . Появится:

Рис.12 Настройка экспорта нейросети
Этот диалог позволяет выбрать свойства нейронов и ссылок, которые нужно экспортировать в файл. Когда вы сделали свой выбор, нажмите ОК. Вам будет предложено выбрать местоположение и имя файла для сохранения экспортированного файла.
Структура и состав экспортируемого CSV файла (Net CSV File)
Когда вы экспортируете сеть, MemBrain создает для этой цели секционированный CSV-файл. Этот файл состоит из разделов данных, которые идентифицируются несколькими ключевыми словами, каждое из которых включено в начальный и конечный теги '<' и '>' соответственно. Точный формат файла зависит от свойств, которые вы выбрали для экспорта и может выглядеть следующим образом:
/*
MemBrain, Version XX. XX
( )
Секционированный CSV-файл
Стартовые ключевые слова для сети
[]
Дополнительная информация о содержимом файла
[]
Этот файл представляет собой нейронную сеть MemBrain.
Информация о формате, используемом для экспорта нейронов – это своего рода «заголовок» для объяснения данных, содержащихся в разделе [<], который следует далее.
[]
ID; LAYER; NAME = Идентификатор; Слой; Название
Этот раздел содержит все нейроны в сети. Один нейрон всегда представлен одной строкой в CSV-файле.
[]
1;I; In1
2;I; In2
3;O; Out
Информация о формате, используемом для экспорта ссылок – это своего рода «заголовок» для объяснения данных, содержащихся в раздел [<], который будет следующим.
[
]SOURCE_ID; TARGET_ID; WEIGHT
Этот раздел содержит все ссылки в сети.
Одна ссылка всегда представлена одной строкой в CSV-файле.
[]
1;3;0,263535
2;3;0,178995
Конец ключевых слов.
[]
*/
Покажем на реальном примере:
Пример.
Создадим нейросеть для анализа принадлежности точки одному из двух множеств: синему или жёлтому.
Для обучения покажем нейросети смешанный файл с точками circle1.csv (374 записей):
csv-файл

Файл circle1.csv
Для контроля хода обучения создадим файл с точками, которые не показываются нейросети при обучении:

Файл circle2.csv (21 запись)
Оба эти файла получены из полного исходного файла «circle. csv», содержащего 394 записи:

Файл «circle. csv»
Загружаем нейросеть из «Circle_1.mbn»

Рис.13 Нейросеть загружена
Загружаем «circle1.csv»

Рис.14 Загружен обучающий файл
Загружаем «circle2.csv»

Рис.15 Загружен контролирующий файл
После настройки Lesson Editor для обучения:

Рис.16 Подготовка обучения нейросети
Согласуем нейросеть с настройкой нейропакетаMemBrain.
После согласования нейросети с Lesson Editor (Names from Net) надо нормализовать Wizard через Extras. Теперь можно обучать нейросеть:

Рис.17 Ход обучения виден в окне Pattern Error Viewer:
Рассмотрим подробнее ход обучения.

Рис.18 Ход обучения нейросети
Для ознакомления с полученной структурой и составом обученной нейросети экспортируем нейросеть в csv-файл «экспорт 1. csv». Для этого определим состав выводимой информации:

Рис.19 Подготовка экспорта обученной нейросети
Экспорт произведём нажатием кнопки «Export» в меню «File».
Обученная нейросеть будет выведена в файл «Export Circle. csv»:

Рис.20 Характеристики нейросети после обучения
Читать дальшеИнтервал:
Закладка: