Класс Backend
Класс Backend является базовым для реализаций бэкендов. Каждый бэкенд реализуется в виде отдельной библиотеки, с помощью которой вы можете:
- взаимодействовать с физическими устройствами (например, получать информацию о потребляемой мощности);
- управлять обучением и исполнением импульсной нейронной сети на различных устройствах;
- считывать выходные спайки, полученные от вычислителя;
- получать внутренние данные для мониторинга работы нейронной сети;
- выгружать внутренние данные мониторинга работы нейронной сети, полученные от вычислителя.
Перед инициализацией бэкенда вы можете загрузить проекции, содержащие синапсы, и популяции, содержащие нейроны. Для этого вы можете использовать методы load_all_projections() и load_all_populations() базового класса Backend или соответствующие методы конкретного класса бэкенда. Если предварительно была создана модель Model, в которую была передана нейронная сеть Network, хранящая популяции Population и проекции Projection, вы можете использовать метод загрузки модели ModelLoader::load() для ее загрузки на бэкенд.
Конкретные классы бэкендов являются наследниками базового класса Backend. Для инициализации конкретного бэкенда необходимо переопределить его методы в классе-наследнике. В процессе инициализации загруженные проекции синапсов подписываются на спайки от связанных популяций или каналов ввода, а загруженные популяции подписываются на синаптические воздействия от связанных проекций. При необходимости вы можете подписать необходимые объекты платформы на сообщения с помощью метода подписки subscribe().
Для выбора устройства, на котором будет исполняться нейронная сеть, необходимо сначала вызвать метод get_devices(), который предоставляет вычислители конкретного типа. Тип вычислителей является наследником класса Device. Наследники определены в пространстве имен devices и реализуют конкретные устройства. Каждое устройство обладает своим набором функций и свойств. После этого необходимо вызвать метод select_devices() или select_device() для выбора конкретного устройства из предоставленных, передав в него уникальные идентификаторы устройств или указатели на экземпляры класса Device.
Базовый класс Backend также предоставляет методы, с помощью которых вы можете выполнять следующие действия:
- Запускать и останавливать обучение нейронной сети.
- Включать и выключать использование синаптической пластичности во время обучения нейронной сети.
- Запускать и останавливать исполнение нейронной сети.
- Получать следующие данные:
- Базовые данные бэкенда.
- Шину сообщений. С помощью шины сообщений бэкенд обеспечивает обмен сообщениями между объектами платформы, а также обмен сообщениями от модификаторов к нейронам и синапсам.
- Точку подключения к шине сообщений.
- Статус исполнения нейронной сети на бэкенде.
- Устройства, поддерживаемые бэкендом.
- Номер шага исполнения нейронной сети.
Подробнее о методах базового класса Backend см. в API-документации Kaspersky Neuromorphic Platform.
