Нейросетевое программирование. Инструментарий нейрокомпьютинга. Александр Кириченко
Чтение книги онлайн.
Читать онлайн книгу Нейросетевое программирование. Инструментарий нейрокомпьютинга - Александр Кириченко страница 12
Начинается работа этой скриптовой группы с «Using Net Editor Example… as». Затем по мере необходимости к нему подключаются ещё два скрипта.
В начале скрипта «Using Net Editor Example… as» содержится раздел «Константы», определяющий значения наиболее важных параметров создаваемой нейросети с помощью команды const. Затем создаётся список глобальных переменных, уточняются параметры создаваемой нейросети, после чего начинается сборка нейросети..
При необходимости выяснить количество скрытых слоёв в создаваемой нейросети проводится следующий диалог:
// Determine how many normal hidden layers there shall be in the net
void DetermineHidLayerCount ()
{
int count;
if (UserInput («Please enter the number of hidden layers for the net.»,
DEFAULT_HID_LAYER_COUNT, count) == IDOK)
{
if (count> gMaxHidLayerCount)
{
MessageBox («Too many hidden layers!»);
AbortScript ();
}
// Success. Adjust the size of the hidden layer array now.
gHidLayers.resize (count);
}
else
{
AbortScript ();
}
}
Создание входных нейронов по данным, содержащимся в mbl-файле
// Create the I/O neurons of the net using a MemBrain lesson file
void CreateIOFromMbl ()
{
string lessonFileName;
if (FileOpenDlg («Select Lesson File», «mbl», «», lessonFileName) == IDOK)
{
// Load the lesson into #1 (delete all other lessons)
SetLessonCount (1);
LoadLesson (lessonFileName);
gInputCount = GetLessonInputCount ();
gOutputCount = GetLessonOutputCount ();
if (gInputCount> gMaxCountPerLayer)
{
MessageBox («Too many input columns in lesson!»);
AbortScript ();
}
else if (gOutputCount> gMaxCountPerLayer)
{
MessageBox («Too many output columns in lesson!»);
AbortScript ();
}
// Now we tell the editor to actually create the input and output neurons.
// The number of hidden layers is required here to leave space for them.
Это пример дискуссии с компьютером о способе создания базового компьютера с использованием mbl-файла
// Create net based on lesson or manual input?
if (MessageBox («Do you want to create the net based on a MemBrain lesson file?», MB_YESNO) == IDYES)
{
gUseLesson = true;
CreateIOFromMbl ();
}
else
{
CreateIOFromUserInput ();
}
Здесь выводится сообщение с запросом ответа Да или Нет.
При проверке очередного условия может проявиться превышение ожидаемого параметра:
{
if (count> gMaxHidLayerCount)
{
MessageBox («Too many hidden layers!»);
AbortScript ();
}
Тогда выводится сообщение о чрезмерном количестве скрытых файлов.
При удовлетворительном ответе:
// Success. Adjust the size of the hidden layer array now.
gHidLayers.resize (count);
}
Группирование нейросетей в нейроконструкции
(Перевод фрагментов архива «MemBrainExamples». )
До сих пор мы работали с нейропакетом каждый раз преимущественно – только с одной нейросетью. При работе с нейросетевыми конструкциями необходимо работать одновременно с несколькими нейросетями, одновременно находящимися на экране, переключаясь между ними. Такая возможность достигается за счёт группирования нейросетей.
Можно определить отношения разных типов между группами нейронов в сети. Это позволяет определять подсети внутри сети, которые затем могут обучаться отдельно