Читайте также:
|
|
Рис. 20: Модель слоя сети NM6403
Обработка реакции сети на входное воздействие происходит в нейропроцессоре последовательно, слой за слоем. На рис. 20 показана модель нейронной сети, эмулируемой NM6403. В общем случае каждый слой нейросети имеет N нейронных входов и состоит из M нейронов. При этом каждый нейрон выполняет взвешенное суммирование с учетом смещения данного нейрона:
|
Затем каждый нейрон вычисляет функцию насыщения от результата взвешенного суммирования:
|
Все входные данные, весовые коэффициенты, пороговые значения и результаты представляются в дополнительном коде.
Процессор NM6403 создавался как универсальное средство для реализации нейросред. При его использовании пользователь может программно задавать множество параметров нейронной сети:
Для эмуляции нейронной сети каждый ее слой разбивается на последовательно обрабатываемые фрагменты. Данное разбиение осуществляется следующим образом. Множество нейронных входов слоя разбивается на группы входов так, чтобы суммарная разрядность данных, подаваемых на каждую группу входов, была равна разрядности нейропроцессора - 64. Множество нейронов слоя разбивается на группы нейронов так, чтобы суммарная разрядность результатов взвешенного суммирования для каждой группы также была равна 64. Таким образом выделяются фрагменты сети двух типов с разным функциональным назначением: первый тип фрагментов осуществляет взвешенное суммирование, а второй - вычисление функции активации.
Эмуляция слоя нейронной сети на нейропроцессоре NM6403 состоит из последовательно выполняемых макроопераций, каждая из которых эмулирует один фрагмент слоя. Число выполняемых макроопераций равно числу фрагментов в слое. Обработка данных ведется нейропроцессором в пакетном режиме - по T наборов входных данных в каждом пакете. Пакет данных, подаваемых на группу нейронных входов слоя нейронной сети представляет собой вектор Xn = < X 1,¼, Xn >, каждый элемент которого является вектором упакованных данных. Разрядность каждой из упакованных величин может принимать любое четное значение в диапазоне от 2 до 64, то есть количество элементов вектора может быть любым от 1 до 32. Ограничением является то, что суммарная разрядность всех данных, упакованных в одном векторе, должна быть равна 64.
При эмуляции фрагмента первого типа нейропроцессор выполняет следующую операцию для каждого набора входных данных: Yn = Yn -1+ Xn × Wn. В качестве Y 0 выступает смещение V 0.
64 разрядные выходные векторы содержат упакованные данные с разрядностью от Nmin до 64. Значение минимальной разрядности каждого элемента в этих векторах зависит от суммарного числа нейронных входов в слое и вытекает из необходимости избегать арифметического переполнения при сложении чисел:
|
Выполнение операции взвешенного суммирования над всеми векторами задается одной командой <<vsum>> нейропроцессора. Выполнение этой команды зависит от количества значений в обрабатываемом векторе, за один такт обрабатывается один компонент вектора.
При эмуляции фрагмента второго типа для группы нейронов процессор формирует вектор Xn = < OUT 1,¼, OUTm >, каждый элемент которого является вектором упакованных данных. Компонентами вектора OUTi являются результаты вычисления функции насыщения над элементом Yi вектора Y:
|
Вычисление функций насыщения для всех элементов всех векторов задается одной командой <<activate>> нейропроцессора. Время выполнения этой команды также составляет один такт на компонент.
Ориентация нейропроцессоров на создание нейросред значительно упрощает создание высокопроизводительных нейросетевых приложений. Разработчики нейропроцессоров создают библиотеки алгоритмов для наиболее распространенных типов нейросетей, что делает их особенно привлекательными для построения нейросред.
Дата добавления: 2015-09-05; просмотров: 92 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Возможности создания многопроцессорных вычислителей на базе NM6403. | | | Задачи, для решения которых используют нейросети. |