Я тренировал нейронную сеть с помощью набора инструментов Neural Network MATLAB и, в частности, с помощью команды nprtool
, которая предоставляет простой графический интерфейс для использования функций панели инструментов и для экспорта объекта net
, содержащего информацию о NN генерируется.
Таким образом, я создал рабочую нейронную сеть, которую я могу использовать в качестве классификатора, а диаграмма, представляющая ее, следующая:
В первом скрытом слое имеется 200 входов, 20 нейронов и 2 нейрона в последнем слое, которые обеспечивают двумерный выход.
Что я хочу сделать, так это использовать сеть на каком-то другом языке программирования (С#, Java,...).
Чтобы решить эту проблему, я пытаюсь использовать следующий код в MATLAB:
y1 = tansig(net.IW{1} * input + net.b{1});
Results = tansig(net.LW{2} * y1 + net.b{2});
Предполагая, что input
является монометрическим массивом из 200 элементов, предыдущий код работал бы, если net.IW{1}
- матрица 20x200 (20 нейронов, 200 весов).
Проблема в том, что я заметил, что size(net.IW{1})
возвращает неожиданные значения:
>> size(net.IW{1})
ans =
20 199
У меня такая же проблема с сетью со 10000 вводами. В этом случае результат не был 20x10000, но что-то вроде 20x9384 (я не помню точное значение).
Итак, возникает вопрос: как я могу получить вес каждого нейрона? И после этого, может кто-нибудь объяснить мне, как я могу использовать их для получения того же выхода MATLAB?