Docs
НАЗВАНИЕ
createProcUnit - создает объект, представляющий вычислительное устройство
СИНТАКСИС
function createProcUnit(procUnit); function createProcUnit(procUnit, coeffUsage); function createProcUnit(procUnit, luaFunction);
ОПИСАНИЕ
Первая реализация используется для создания предопределенных вычислительных устройств типа procUnit.
Вторая реализация предназначена для радиально-базисных устройств, требующих указания аргумента coeffUsage. Он определяет воздействие так называемого дополнительного коэффициента на выходной сигнал устройства. Если coeffUsage отличается от COEFF_USAGE.NOP, то последняя пара (вход, вес) исключается из расчета выходного сигнала и ее произведение становится дополнительным коэффициентом.
Последняя реализация предназначена для пользовательских вычислительных устройств. В этом случае procUnit должен быть равен PROC_UNIT.CUSTOM, тогда как luaFunction должен ссылаться на Lua-функцию, принимающую два числовых массива одинаковой длины и возвращающую одно числовое значение. Эта Lua-функция используется для вычисления значения, передаваемого в функцию активации нейрона. Первый массив представляет входные сигналы, второй - веса.
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
В случае успеха createProcUnit возвращает уникальный идентификатор только что созданного объекта. Иначе возвращается 0.
ЗАМЕТКИ
Старайтесь работать с предопределенными вычислительными устройствами, если это возможно. Пользовательские устройства существенно снижают общую производительность.
Не забудьте вызвать функцию closeId чтобы освободить объект, когда он перестанет быть нужен.
ПРИМЕРЫ
Чтобы создать устройство для взвешенного суммирования:
weightedSumProcUnit = createProcUnit(PROC_UNIT.WEIGHTED_SUM);
Чтобы создать радиально-базисное вычислительное устройство с выходом, не затронутым дополнительным коэффициентом:
radialBasisProcUnit = createProcUnit(PROC_UNIT.RADIAL_BASIS, COEFF_USAGE.NOP);
Чтобы создать пользовательское вычислительное устройство:
function customProcessing(x, w) local net = 0.0; local i; for i = 1, #x do net = net + (x[i] + w[i]); end; return net; end; customProcUnit = createProcUnit(PROC_UNIT.CUSTOM, customProcessing);
СМ. ТАКЖЕ
PROC_UNIT, COEFF_USAGE, createAbstractNeuron, createDigitalNeuron, closeId