Пространство имен input
В пространстве имен input реализованы интерфейсы для доступа к каналу ввода и преобразователю данных, поступающих из внешней среды. Данные могут поступать в Kaspersky Neuromorphic Platform как в синхронном (по запросу пользователя), так и в асинхронном режиме (по вызову обработчика).
Класс SequenceConverter
Класс SequenceConverter реализует преобразователь данных, который принимает данные из потока istream и делит поступившие данные на отрезки определенной длины. При создании преобразователя данных необходимо указать поток данных istream, из которого поступают данные, функцию преобразования входных данных и длину отрезка входных данных. При необходимости вы можете изменить длину отрезка входных данных.
Преобразователь данных SequenceConverter возвращает список индексов входных значений, которые содержат спайки, в виде сообщения SpikeMessage. Если требуется, вы можете реализовать и использовать собственные функции преобразования входных данных.
Класс SequenceConverter предоставляет методы, с помощью которых вы можете получить поток данных, используемый преобразователем данных, а также вызвать функцию преобразования данных из потока istream в сообщение SpikeMessage.
Класс IndexConverter
Класс IndexConverter реализует преобразователь данных, который принимает данные из потока istream и преобразует последовательность индексов поступивших значений, содержащих спайки, в сообщение SpikeMessage.
При создании преобразователя данных необходимо указать поток данных istream, из которого поступают данные, и символ, с помощью которого индексы нейронов, сгенерировавших спайки, будут разделены в сообщении SpikeMessage.
С помощью методов класса IndexConverter вы можете получить поток данных, используемый преобразователем данных, а также вызвать функцию преобразования данных из потока istream в сообщение SpikeMessage.
Класс InputChannel
Класс InputChannel реализует канал ввода, который принимает сообщения SpikeMessage от преобразователя данных. При создании канала ввода необходимо указать уникальный идентификатор UID канала ввода, точку подключения MessageEndpoint, а также функтор для преобразования данных в сообщения SpikeMessage.
После создания канал ввода необходимо связать с точкой подключения и получателем сообщений с помощью метода input::connect_input(). При наличии подписки Subscription данные, преобразованные в сообщения SpikeMessage, могут быть переданы через точки подключения с помощью методов класса InputChannel.
Если вы загрузили модель Model, хранящую нейронную сеть Network, каналы ввода и вывода, в исполнитель моделей ModelExecutor, то при ее исполнении на бэкенде Backend автоматически осуществляется передача отправленных сообщений до точки подключения через шину сообщений.
Класс InputChannel также предоставляет методы, с помощью которых вы можете получить базовые данные канала ввода.
Каждый канал ввода содержит следующие атрибуты:
- Точку подключения к шине сообщений, с помощью которой преобразованные данные отправляются подписчикам.
- Преобразователь данных в сообщения
SpikeMessage.
Подробнее о функциях и интерфейсах пространства имен input см. в API-документации Kaspersky Neuromorphic Platform.
