В Kaspersky Neuromorphic Platform поддерживаются следующие типы бэкендов:
SingleThreadedCPUBackend
.MultiThreadedCPUBackend
.Интерфейс к бэкенду реализован в классе 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
. Нейронная сеть создается с помощью тернарных слоев пакета ANN2SNN
, реализованной как часть Python-фреймворка, и обучается путем обратного распространения ошибки с квантованием весов. Далее нейронная сеть размещается с помощью утилиты placer
для ее исполнения на нейроморфном процессоре Алтай-1. Во время размещения нейронная сеть проверяется на соответствие ограничениям нейроморфного процессора и переводится в формат, поддерживаемый процессором для ее исполнения.
Бэкенды AltAI ANN2SNN реализованы в пакете, отдельном от бэкендов для CPU и бэкенда AltAI SNN.
Схема взаимодействия компонентов платформы при использовании пакета AltAI ANN2SNN