Python-фреймворк
Python-фреймворк предназначен для создания импульсных нейронных сетей, а также преобразования искусственных нейронных сетей в импульсные. Созданные импульсные нейронные сети обучаются методами синаптической пластичности и могут быть исполнены на центральном процессоре, нейроморфном процессоре Алтай-2 или его программном эмуляторе. Искусственные нейронные сети, преобразованные в импульсные с помощью тернарных слоев пакета ANN2SNN, обучаются методом обратного распространения ошибки с учетом ограничений нейроморфного процессора Алтай-2. Полученные в результате нейронные сети адаптированы для исполнения на нейроморфном процессоре Алтай-2 или его программном эмуляторе.
Python-фреймворк представляет собой блоки, которые обеспечивают управление бэкендами, преобразуют представление нейронной сети в разные форматы и выбирают оптимальную нейронную сеть для запуска.
С помощью Python-фреймворка Kaspersky Neuromorphic Platform вы можете динамически загружать различные бэкенды.
Таблица ниже содержит описание компонентов Python-фреймворка.
Компоненты Python-фреймворка
Компонент |
Описание |
|
|---|---|---|
Пакет, реализующий тернарные слои нейронной сети. |
||
|
Пакет, реализующий Python-фреймворк для работа на бэкенде |
|
|
Модуль, в котором реализован интерфейс для доступа к каналу ввода. |
|
|
Модуль, в котором реализован интерфейс для доступа к каналу вывода. |
|
|
Модуль, который содержит функции загрузки и сохранения нейронной сети в формате |
|
|
Класс, реализующий загрузчик динамических библиотек. |
|
|
Класс, реализующий наблюдателя за сообщениями |
|
|
Класс, реализующий модель. |
|
|
Класс, реализующий исполнитель моделей. |
|
|
Класс, реализующий загрузчик модели. |
|
|
Класс, реализующий объект нейронной сети. |
|
|
Класс, реализующий наблюдателя за сообщениями |
|
На рисунке ниже представлена схема взаимодействия компонентов Python-фреймворка.
В Kaspersky Neuromorphic Platform объект класса Network может быть загружен с помощью функции пространства имен sonata. Нейронная сеть, а также контейнеры каналов ввода и вывода, реализованных в модулях input и output соответственно, хранятся в объекте класса Model. Каналы ввода и вывода используются для приема сообщений, содержащих спайки, от входного потока данных и популяций нейронной сети.
Вы можете исполнить модель с помощью метода start() объекта класса ModelExecutor. Исполнитель моделей также содержит наблюдателей SpikeMessageObserver и ImpactMessageObserver, которые обрабатывают полученные сообщения в соответствии с заданной функцией, и объект класса ModelLoader, с помощью методов которого вы можете загружать модель на конкретный экземпляр бэкенда. Для исполнения модели на экземпляре бэкенда исполнителю моделей передается объект бэкенда, полученный от объекта класса BackendLoader.
Схема взаимодействия компонентов Python-фреймворка
