Поддерживаемые бэкенды
В Kaspersky Neuromorphic Platform поддерживаются следующие типы бэкендов:
- Бэкенды для CPU:
- Однопоточный бэкенд для CPU. Бэкенд работает только в одном потоке. Вы можете использовать однопоточный бэкенд для отладки платформы и работы нейронной сети. Интерфейс к бэкенду реализован в классе
SingleThreadedCPUBackend. - Многопоточный бэкенд для CPU. Бэкенд работает в нескольких потоках одновременно, что обеспечивает повышение скорости расчета нейронной сети. Вы можете использовать многопоточный бэкенд для обучения и исполнения импульсной нейронной сети. Интерфейс к бэкенду реализован в классе
MultiThreadedCPUBackend.
- Однопоточный бэкенд для CPU. Бэкенд работает только в одном потоке. Вы можете использовать однопоточный бэкенд для отладки платформы и работы нейронной сети. Интерфейс к бэкенду реализован в классе
- Бэкенд для исполнения импульсных нейронных сетей на нейроморфном процессоре Алтай-1 (далее также "бэкенд AltAI SNN"):
Интерфейс к бэкенду реализован в классе
AltAIBackend. КлассAltAIBackendпредоставляет стандартные функции, предоставляемые базовым классомBackend.В качестве типа устройства вы можете выбрать как аппаратный процессор нейроморфного процессора Алтай-1, так и его программный эмулятор. Для аппаратного процессора используется фиксированная конфигурация ядер. При выборе программного эмулятора в качестве типа устройства вы можете изменить параметры конфигурации ядер нейроморфного процессора Алтай-1 с помощью метода программного эмулятора
load_core_grid_params(), а также задать расположение портов ввода и вывода в конфигурации ядер с помощью методаmake_standart_north_port().Метод
load_core_grid_params()необходимо вызвать перед инициализацией бэкенда.На рисунке ниже представлена схема взаимодействия компонентов платформы при использовании бэкенда
AltAIBackend. Импульсная нейронная сеть создается с помощью компонентов платформы. Обучение нейронной сети необходимо выполнить и обучается методом синаптической пластичности. На данный момент бэкендAltAIBackendподдерживает нейроны по моделиAltAILIFи синапсы по моделиDeltaSynapse, при этом веса синапса должны быть целочисленными и находиться в диапазоне от-255до255.Выполнение обучения импульсной нейронной сети доступно на центральном процессоре методом синаптической пластичности. Если требуется, вы можете реализовать и использовать собственные методы обучения и бэкенды.
Далее нейронная сеть проверяется на соответствие ограничениям нейроморфного процессора Алтай-1 и переводится в формат, поддерживаемый процессором для ее исполнения. Исполнение импульсной нейронной сети возможно как на программном эмуляторе, так и непосредственно на аппаратном процессоре Алтай-1.

Схема взаимодействия платформы с бэкендом AltAI SNN
- Бэкенды для обучения и исполнения искусственных нейронных сетей, преобразованных в импульсные (далее также "бэкенды AltAI ANN2SNN"):
- Бэкенд аппаратного обеспечения нейроморфного процессора Алтай-1;
- Бэкенд программного эмулятора нейроморфного процессора Алтай-1.
Обучение нейронной сети производится обратным распространением ошибки с квантованием весов.
На рисунке ниже представлена схема взаимодействия компонентов платформы при использовании бэкендов
AltAI ANN2SNN. Нейронная сеть создается с помощью тернарных слоев пакетаANN2SNN, реализованной как часть Python-фреймворка, и обучается путем обратного распространения ошибки с квантованием весов. Далее нейронная сеть размещается с помощью утилитыplacerдля ее исполнения на нейроморфном процессоре Алтай-1. Во время размещения нейронная сеть проверяется на соответствие ограничениям нейроморфного процессора и переводится в формат, поддерживаемый процессором для ее исполнения.Бэкенды AltAI ANN2SNN реализованы в пакете, отдельном от бэкендов для CPU и бэкенда AltAI SNN.

Схема взаимодействия компонентов платформы при использовании пакета AltAI ANN2SNN
