Классы пакета ANN2SNN, реализующие тернарные слои.
Класс
|
Описание
|
TernaryDense
|
Реализует полносвязный слой, аналогом которого является слой Dense библиотеки Keras. При работе с полносвязным слоем рекомендуется указать количество нейронов слоя (параметр units) равным или меньше 512. Если у нейрона слоя более 512 связей, то такой нейрон будет представлен в виде нескольких нейронов на нейроморфном процессоре Алтай-1.
|
TernaryConv1D
|
Реализует одномерный сверточный слой, аналогом которого является слой Conv1D библиотеки Keras. При работе с этим слоем рекомендуется установить следующие ограничения:
- Размер ядра (параметр
kernel_size) – не более 20. - Количество фильтров (параметр
filters) – не более 64.
|
TernaryConv2D
|
Реализует двумерный сверточный слой, аналогом которого является слой Conv2D библиотеки Keras. При работе с этим слоем рекомендуется следовать следующим ограничениям:
- Не использовать ядра большого размера (параметр
kernel_size). Оптимальными считаются ядра с размерами [2, 2], [3, 3] и [4, 4]. - Ограничить размер входных изображений до 128x128 и число каналов до
10. - Ограничить количество фильтров (параметр
filters) до 32.
|
TernaryLocallyConnected1D
|
Реализует одномерный локально-связный слой, аналогом которого является слой LocallyConnected1D библиотеки Keras. При работе с этим слоем рекомендуется установить следующие ограничения:
- Размер ядра (параметр
kernel_size) – не более 20. - Количество фильтров (параметр
filters) – не более 64.
|
TernaryLocallyConnected2D
|
Реализует двумерный локально-связный слой, аналогом которого является слой LocallyConnected2D библиотеки Keras. При работе с этим слоем рекомендуется следовать следующим ограничениям:
- Не использовать ядра большого размера (параметр
kernel_size). Оптимальными считаются ядра с размерами [2, 2], [3, 3] и [4, 4]. - Ограничить размер входных изображений до 128x128 и число каналов до
10. - Ограничить количество фильтров (параметр
filters) до 32.
|
TernaryDepthwiseConv1D
|
Реализует одномерный сверточный слой, аналогом которого является слой DepthwiseConv1D библиотеки Keras. При работе с этим слоем рекомендуется установить следующие ограничения:
- Размер ядра (параметр
kernel_size) – не более 20. - Количество фильтров (параметр
filters) – не более 64.
|
TernaryDepthwiseConv2D
|
Реализует двумерный сверточный слой, аналогом которого является слой DepthwiseConv2D библиотеки Keras. При работе с этим слоем рекомендуется следовать следующим ограничениям:
- Не использовать ядра большого размера (параметр
kernel_size). Оптимальными считаются ядра с размерами [2, 2], [3, 3] и [4, 4]. - Ограничить размер входных изображений до 128x128 и число каналов до
10. - Ограничить количество фильтров (параметр
filters) до 32.
|
MaxPool1D
|
Поддерживается стандартная реализация слоя MaxPool1D библиотеки Keras. Для уменьшения количества оборудования нейроморфного процессора, необходимого для исполнения нейронной сети, рекомендуется отказаться от использования этого слоя путем увеличения параметра stride в сверточных слоях.
|
MaxPool2D
|
Поддерживается стандартная реализация слоя MaxPool2D библиотеки Keras. Для уменьшения количества оборудования нейроморфного процессора, необходимого для исполнения нейронной сети, рекомендуется отказаться от использования этого слоя путем увеличения параметра stride в сверточных слоях.
|
BatchNormalization
|
Поддерживается стандартная реализация нормирующего слоя BatchNormalization библиотеки Keras. Параметр масштабирования scale не поддерживается и должен быть определен как false.
Слой BatchNormalization должен идти после слоя Activation.
|
InputLayer
|
Поддерживается стандартная реализация входного слоя InputLayer библиотеки Keras. Входные данные должны иметь бинарный тип.
|
Flatten
|
Поддерживается стандартная реализация слоя Flatten библиотеки Keras.
|
Reshape
|
Поддерживается стандартная реализация слоя Reshape библиотеки Keras.
|
Concatenate
|
Поддерживается стандартная реализация слоя Concatenate библиотеки Keras.
|
Для размещения нейронной сети на нейроморфном процессоре Алтай-1 в качестве функции активации каждого слоя необходимо указать функцию heaviside. При обучении нейронной сети методом градиентного спуска используется кусочно-линейная аппроксимация сигмоидной функции (англ. hard sigmoid function).