Пространство имен projection
Пространство имен projection содержит пространства имен creators, synapse_generators и parameters_generators. Пространства имен предоставляют функции и интерфейсы, необходимые для генерации проекций и их наполнения синапсами определенного типа. Перед вызовом функций необходимо предварительно создать популяции, которые необходимо связать проекцией.
В пространстве имен также реализованы функции, с помощью которых вы можете создать новую проекцию, связав две популяции одним из следующих образов:
- случайным образом;
- полностью (каждый нейрон пресинаптической популяции связан с каждым нейроном постсинаптической популяции).
С помощью функций пространства имен вы также можете добавить в исполнитель моделей ModelExecutor обработчик сообщений SpikeMessage из пространства имен modifier, реализующий механизм Winner Takes ALL (WTA).
При необходимости для создания проекций и синапсов вы можете использовать методы, предоставляемые классом Projection.
Пространство имен creators
В пространство имен creators реализованы функции для генерации проекций синапсов. Эти функции позволяют генерировать проекции синапсов путем следующих соединений нейронов:
- Полное соединение – каждый нейрон пресинаптической популяции соединяется с каждым нейроном постсинаптической популяции.
- Последовательное соединение – нейроны популяции меньшего размера соединяются с нейронами другой популяции в определенном порядке.
- Исключающее соединение – нейроны популяций не соединяются, если их индексы совпадают.
- Один-к-одному – нейроны пресинаптической и постсинаптической популяций соединяются в отношении один-к-одному.
- Случайное соединение – нейроны популяций соединяются с определенной вероятностью.
- Случайное соединение с ограничением – каждый нейрон одной популяции соединяется с определенным количеством случайных нейронов другой популяции.
- Условное соединение – нейроны соединяются, если функция генерации синапса возвращает ненулевое
std::optionalзначение.
Вы также можете сгенерировать проекции синапсов следующими способами:
- Из контейнера, содержащего атрибуты синапсов и индексы пресинаптического и постсинаптического нейронов.
- Из объекта
std::map, где ключами являются индексы пресинаптического и постсинаптического нейронов, а значениями – атрибуты синапсов. - Путем копирования синапсов из другой проекции.
Пространство имен synapse_generators
В пространстве имен synapse_generators реализованы функции и интерфейсы, с помощью которых вы можете генерировать синапсы, соединяя нейроны следующими способами:
- Полное соединение – каждый нейрон пресинаптической популяции соединяется с каждым нейроном постсинаптической популяции.
- Последовательное соединения – нейроны популяции меньшего размера соединяются последовательно с нейронами другой популяции.
- Исключающее соединение – каждый нейрон одной популяции соединяется с каждым нейроном другой популяции, за исключением тех, чьи индексы совпадают.
- Один-к-одному – нейроны популяций соединяются в отношении один-к-одному.
- Из контейнера, содержащего атрибуты синапсов и индексы пресинаптического и постсинаптического нейронов.
- Из объекта
std::mapилиstd::unordered_map, содержащего атрибуты синапсов в качестве значения и индексы пресинаптического и постсинаптического нейронов в качестве ключа. - Случайное соединение – каждый нейрон пресинаптической популяции соединяется с каждым нейроном постсинаптической популяции с определенной вероятностью.
- Случайное соединение с ограничением – каждый нейрон одной популяции соединяется с определенным количеством случайных нейронов другой популяции.
- Условное соединение – определенные нейроны популяций соединяются на основе функции генерации синапса.
- Путем копирования структуры другой проекции.
Пространства имен parameters_generators
В пространстве имен parameters_generators реализованы функция генерации синапса со значениями атрибутов по умолчанию и класс CopySynapseGen. Класс CopySynapseGen реализует генератор синапсов, который копирует атрибуты у заданного синапса.
Подробнее о функциях пространства имен projection см. в API-документации Kaspersky Neuromorphic Platform.
