Фреймворк для C++

26 декабря 2025

ID 235050

Фреймворк для C++ предназначен для упрощения процессов создания импульсных нейронных сетей и их обучения. Полученные в результате нейронные сети могут исполняться на центральном процессоре, нейроморфном процессоре Алтай-2 или его программном эмуляторе.

Фреймворк для C++ представляет собой независимые блоки, которые обеспечивают управление бэкендами, преобразуют представление нейронной сети в разные форматы и выбирают оптимальную нейронную сеть для запуска. Во фреймворке для C++ реализованы функции, не относящиеся непосредственно к обучению и исполнению импульсных нейронных сетей.

С помощью фреймворка для C++ Kaspersky Neuromorphic Platform вы можете выполнять следующие задачи:

  • Загружать структуру нейронной сети из внешних форматов.
  • Динамически загружать различные бэкенды.
  • Вводить и выводить данные нейронных сетей.
  • Контролировать выполнение обучения и исполнения импульсных нейронных сетей.
  • Реализовывать специальные алгоритмы.

Фреймворк для C++ реализован в пространстве имен framework. Таблица ниже содержит описание компонентов фреймворка для C++.

Компоненты фреймворка для C++

На рисунке ниже представлена схема взаимодействия компонентов фреймворка для C++.

В Kaspersky Neuromorphic Platform нейронная сеть Network может быть загружена в формате SONATA или создана вручную. Созданную нейронную сеть вы можете наполнить проекциями синапсов Projection и популяциями нейронов Population. Вы можете сгенерировать проекции и популяции с помощью функций пространств имен projection и population соответственно. При необходимости вы можете нормализовать значения атрибутов нейронов популяций и синапсов проекций с помощью функций пространства имен normalization.

Вы можете нарисовать нейронную сеть Network с помощью набора координат (произвольных или задаваемых пользователем) из пространства имен coordinates. Состояние нейронной сети Network может быть актуализировано с бэкенда Backend с помощью функции пространства имен synchronization.

Нейронная сеть Network, а также контейнеры канала ввода InputChannel и канала вывода OutputChannel, реализованных в пространствах имен input и output соответственно, хранятся в модели Model. Каналы ввода и вывода используются для преобразования данных, поступающих в проекции нейронной сети, а также для преобразования сообщений популяций нейронной сети в один из предусмотренных форматов данных.

Вы можете исполнить модель Model с помощью метода исполнения моделей ModelExecutor::start(). Исполнитель моделей ModelExecutor также содержит наблюдателя MessageObserver из пространства имен monitoring, обработчика сообщений из пространства имен modifier и загрузчик моделей ModelLoader, с помощью методов которого вы можете загружать модель на конкретный экземпляр бэкенда. Для обработки данных модели вы можете использовать функции пространства имен data_processing. Для исполнения модели на экземпляре бэкенда исполнителю моделей ModelExecutor передается указатель на экземпляр бэкенда, полученный от загрузчика бэкендов BackendLoader. После исполнения модели вы можете оценить качество работы модели с помощью функций пространства имен inference_evaluation.

Схема взаимодействия компонентов фреймворка для C++.

Схема взаимодействия компонентов фреймворка для C++

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!