Книга: Учебное пособие по курсу «Нейроинформатика»

Список стандартных функций

Список стандартных функций

В этом разделе описаны стандартные функции, специфические для компонента учитель. Эти функции соответствуют макросам, использованным в главе «Учитель». Заголовки функций даны на языке описания учителя.

Установить объект обучения (SetInstructionObject)

Заголовок функции:

Function SetInstructionObject (What: Integer; Net: PString): Logic;

Описание аргументов

What может принимать следующие значения (предопределенные константы, приведенные в табл. 11):

Parameters — для обучения параметров сети;

InSignals — для обучения входных сигналов.

Net — имя нейронной сети, которая будет обучаться.

Возможно обучение одного из двух объектов — параметров сети или входных сигналов. Объект обучения должен быть задан до начала собственно обучения. По умолчанию обучается первая сеть в списке нейронных сетей компонента сеть. При необходимости в качестве объекта обучения может быть задана часть сети (см. главу «Описание нейронных сетей»). При сохранении учителя в файле сети объект обучения хранится вместе с учителем. Функция возвращает значение истина, если ее выполнение завершено успешно. В противном случае (например, указанная сеть отсутствует в списке сетей компонента сеть) возвращается значение ложь.

Создание массива (CreateArray)

Заголовок функции:

Function CreateArray: PRealArray;

Аргументов нет.

Функция возвращает указатель на массив, пригодный для хранения массива обучаемых параметров (входных сигналов) сети. Если массив создать не удалось, то возвращается пустой указатель.

Освободить массив (EraseArray)

Заголовок функции:

Function EraseArray(Vec: PRealArray): Logic;

Описание аргументов

Vec — указатель на массив. При вызове содержит адрес освобождаемого массива.

После выполнения функции в аргументе Vec содержится пустой указатель. В случае невозможности освобождения памяти функция генерирует внутреннюю ошибку 604 — некорректная работа с памятью, передает управление обработчику ошибок, выполнение функции завершается, возвращается значение ложь. В противном случае возвращается значение истина.

Случайный массив (RandomArray)

Заголовок функции:

Function RandomArray(Vec: PRealArray): Logic;

Описание аргументов

Vec — указатель на массив. При входе в макрос содержит адрес существующего массива.

В ходе выполнения функции для каждого элемента массива параметров генерируется случайное значение. Для генерации используется генератор случайных чисел, равномерно распределенных на отрезке от нуля до единицы. После получения случайной величины a она преобразуется по формуле a? = a(amaxamin)–amin к случайной величине, распределенной на отрезке [amin, amax]. Величины amin и amax для параметров сети определяются их типом (см. раздел «Описание элементов»). Для входных сигналов принимается amin=–1, amax=1. Если обучаемым объектом являются параметры, то генерация случайного массива производится путем генерации запроса RandomDirection компонента сеть. Если при выполнении функции возникла ошибка, то генерируется внутренняя ошибка 605 — ошибка при исполнении внешнего запроса, управление передается обработчику ошибок, функция возвращает значение ложь. В противном случае возвращается значение истина.

Модификация массива (Modify)

Заголовок функции:

Function Modify(Direct: PRealArray; OldStep, NewStep: Real): Logic;

Описание аргументов

Direct — указатель на массив направления модификации сети.

OldStep — вес старого массива параметров в модифицированном.

NewStep — вес массива направления модификации в модифицированном массиве параметров.

Эта функция генерирует запрос на модификацию параметров сети (см. раздел «Провести обучение (Modify)»). Вызов запроса имеет вид:

Modify(Net, OldStep, NewStep, Tipe, Direct)

Аргументами запроса являются:

Net — указатель на пустую строку (используется сеть по умолчанию).

OldStep, NewStep — аргументы функции.

Tipe — значение аргумента What в запросе InstructionObject.

Direct — аргумент функции.

Аргумент функции Direct может быть пустым указателем. В этом случае для модификации используется массив градиента, хранящийся вместе с сетью. В случае возникновения ошибки в ходе модификации сети (запрос Modify возвращает значение ложь) генерируется внутренняя ошибка 605 — ошибка при исполнении внешнего запроса, управление передается обработчику ошибок, функция возвращает значение ложь. В противном случае возвращается значение истина.

Оптимизация шага (Optimize)

Заголовок функции:

Function Optimize (Direct: PRealArray; Step: Real): Real;

Описание аргументов

Direct — указатель на массив направления модификации сети.

Step — начальный шаг в направлении Direct.

Действия, выполняемые функцией Optimize, описаны в разделе «Подбор оптимального шага». В случае возникновения ошибки при выполнении функции она генерирует внутреннюю ошибку 605 — ошибка при исполнении внешнего запроса, передает управление обработчику ошибок, функция возвращает значение 0. В противном случае возвращается значение оценки при оптимальном шаге. Следует отметить, что после завершения выполнения функции, параметры сети соответствуют результату выполнения функции Modify(Direct, 1, Step), где Step — значение оптимального шага.

Сохранить массив (SaveArray)

Заголовок функции:

Function SaveArray(Vec: PRealArray): Logic;

Описание аргументов

Vec — указатель на массив.

Функция генерирует запрос nwGetData. После выполнения функции в массиве, на который указывает аргумент Vec, содержится текущий массив параметров. В случае возникновения ошибки в ходе выполнения функции генерируется внутренняя ошибка 605 — ошибка при исполнении внешнего запроса, управление передается обработчику ошибок, функция возвращает значение ложь. В противном случае возвращается значение истина.

Установить параметры (SetArray)

Заголовок функции:

Function SetArray(Vec: PRealArray): Logic;

Описание аргументов

Vec — указатель на массив, содержащий параметры, которые необходимо установить.

Функция генерирует запрос nwSetData.После выполнения функции параметры сети совпадают с параметрами, содержащимися в массиве, на который указывает аргумент Vec. В случае возникновения ошибки в ходе выполнения функции генерируется внутренняя ошибка 605 — ошибка при исполнении внешнего запроса, управление передается обработчику ошибок, функция возвращает значение ложь. В противном случае возвращается значение истина.

Вычислить оценку (Estimate)

Заголовок функции:

Function Estimate(Handle: Integer; All: Logic): Real;

Описание аргументов

Handle — номер сеанса задачника.

All — признак обучения по всему обучающему множеству.

Функция генерирует запрос к исполнителю на вычисление оценки. Если аргумент All содержит значение истина, то обучение производится по всему обучающему множеству, в противном случае — позадачно. В случае возникновения ошибки при выполнении функции он генерирует внутреннюю ошибку 605 — ошибка при исполнении внешнего запроса, передает управление обработчику ошибок, функция возвращает значение 0. В противном случае возвращается значение вычисленной оценки.

Вычислить градиент (CalcGradient)

Заголовок функции:

Function CalcGradient(Handle: Integer; All: Logic): Real;

Описание аргументов

Handle — номер сеанса задачника.

All — признак обучения по всему обучающему множеству.

Функция генерирует запрос к исполнителю на вычисление градиента. Если аргумент All содержит значение истина, то обучение производится по всему обучающему множеству, в противном случае — позадачно. В случае возникновения ошибки при выполнении функции он генерирует внутреннюю ошибку 605 — ошибка при исполнении внешнего запроса, передает управление обработчику ошибок, функция возвращает значение 0. В противном случае возвращается значение вычисленной оценки.

Запустить запрос (GenerateQuest)

Заголовок функции:

Function GenerateQuest(Name: PString; Arguments: PRealArray): Logic

Описание аргументов

Name — указатель на символьную строку, содержащую имя запроса.

Arguments — массив, содержащий адреса аргументов запроса.

Функция генерирует запрос к макрокомпоненту нейрокомпьютер на исполнение запроса, имя которого указано в аргументе Name, с аргументами, адреса которых указаны в аргументе Arguments. Действуют следующие ограничения. В строке, содержащей имя запроса должно содержаться только одно слово — имя запроса. Ведущие и хвостовые пробелы подавляются. В массиве Arguments должно содержаться ровно столько элементов, сколько аргументов у генерируемого запроса. В массив Arguments всегда складываются адреса аргументов, даже если в запрос данный аргумент передается по значению.

Оглавление книги


Генерация: 2.357. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз