diff --git a/programs/develop/libraries/nnp/about.htm b/programs/develop/libraries/nnp/about.htm index 624d97aa26..2c00f71b0a 100644 --- a/programs/develop/libraries/nnp/about.htm +++ b/programs/develop/libraries/nnp/about.htm @@ -53,6 +53,7 @@ table { font-size: 15px; }
Документация к библиотеке nnp.obj, для ОС Колибри. Эта библиотека создана для работы с нейросетями (neural network perceptron). Видео по нейросетям: 1, 2. Исходный код (язык java), на основе которого делалсь библиотека: 3.
-Последнее обновление библиотеки 01.03.22.
+Последнее обновление библиотеки 28.05.22.
где nnp_0 - структура буфера.
+где nnp_0 - структура нейросети.
0.01 - скорость обучения.
0 - адрес функции активации, если 0 то берется стандартная функция внутри библиотеки.
0 - адрес функции свёртки, если 0 то берется стандартная функция внутри библиотеки.
nnlopt - массив с числом нейронов на каждом слое.
NNLOPT_LEN - длинна массива nnlopt.
+Сброс параметров нейросети. Для каждого слоя базисный вектор и веса заполняются случайными числами от -1 до 1. Такие же действия происходят в конструкторе NNP_Create.
+stdcall [NNP_Reset], nnp_0+
где nnp_0 - структура нейросети.
+Функция расчета значений выходных нейронов. На вход подаються значения входных нейронов. На выходе возвращается указатель на слой выходных нейронов.
n_input dq ?,?,? ... stdcall [NNP_FeedForward], nnp_0,n_input-
где nnp_0 - структура буфера, n_input - указатель на данные входных нейронов.
+где nnp_0 - структура нейросети, n_input - указатель на данные входных нейронов.
Функция для обучения сети. Пример:
n_targ dq ?,?,? ... stdcall [NNP_BackPropagation], nnp_0, n_targ-
где nnp_0 - структура буфера, n_targ - указатель на данные для обучения сети.
+где nnp_0 - структура нейросети, n_targ - указатель на данные для обучения сети.
Берет данные нейросети и записывает их в указанное место в памяти. Пример:
f_data dd ? ... stdcall [NNP_GetMemData], nnp_0, NNP_FF_JSON, [f_data]-
где nnp_0 - структура буфера, f_data - указатель на данные для записи параметров сети.
+где nnp_0 - структура нейросети, f_data - указатель на данные для записи параметров сети.
Берет данные из указанного места памяти и записывает их в нейросеть. Пример:
+Берет данные из указанного места памяти и записывает их в нейросеть. В случае успеха в регистре eax возвращается 0, иначе указатель на строку с текстом ошибки. Пример:
f_data dd ? ... stdcall [NNP_SetMemData], nnp_0, NNP_FF_JSON, [f_data]-
где nnp_0 - структура буфера, f_data - указатель на данные с параметрами сети.
+где nnp_0 - структура нейросети, f_data - указатель на данные с параметрами сети.
Освобождает память занятую нейросетью.
@@ -145,24 +152,31 @@ stdcall [NNP_SetMemData], nnp_0, NNP_FF_JSON, [f_data]align 4 import_nnp_lib: dd sz_lib_init - NNP_Create dd sz_nnp_create - NNP_FeedForward dd sz_nnp_FeedForward - NNP_BackPropagation dd sz_nnp_BackPropagation - NNP_GetMemData dd sz_nnp_GetMemData - NNP_SetMemData dd sz_nnp_SetMemData - NNP_Destroy dd sz_nnp_Destroy - dd 0,0 - sz_lib_init db 'lib_init',0 - sz_nnp_create db 'NNP_Create',0 - sz_nnp_FeedForward db 'NNP_FeedForward',0 - sz_nnp_BackPropagation db 'NNP_BackPropagation',0 - sz_nnp_GetMemData db 'NNP_GetMemData',0 - sz_nnp_SetMemData db 'NNP_SetMemData',0 - sz_nnp_Destroy db 'NNP_Destroy',0 + NNP_Create dd sz_create + NNP_Reset dd sz_reset + NNP_FeedForward dd sz_feedforward + NNP_BackPropagation dd sz_backpropagation + NNP_GetMemData dd sz_getmemdata + NNP_SetMemData dd sz_setmemdata + NNP_Destroy dd sz_destroy +dd 0,0 + sz_lib_init db 'lib_init',0 + sz_create db 'NNP_Create',0 + sz_reset db 'NNP_Reset',0 + sz_feedforward db 'NNP_FeedForward',0 + sz_backpropagation db 'NNP_BackPropagation',0 + sz_getmemdata db 'NNP_GetMemData',0 + sz_setmemdata db 'NNP_SetMemData',0 + sz_destroy db 'NNP_Destroy',0-
01.03.22 - самая первая версия библиотеки (примеры использования возможно будут позже).
+В данном примере создаются 8 объектов (точек с координатами x, y), каждый из которых имеет тип 0 (синие) или 1 (зеленые). При нажатии кнопки происходит тренировка нейросети. В процессе тренировки нейросеть учится определять какой цвет должен соответствовать заданным координатам x, y. Тренировать сеть можно много раз, число циклов тренировки показано в заголовке окна. Кнопка переставляет точки случайным образом. Кнопка сбрасывает состояние нейросети.
+ +Рис. 1. Пример использования библиотеки
+01.03.22 - самая первая версия библиотеки.
+28.05.22 - пример использования библиотеки, новая функция NNP_Reset, обновление функции NNP_SetMemData.