agosty.ru35. ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ. МАШИНЫ КОНТОРСКИЕ35.240. Применение информационных технологий

ГОСТ Р 57700.36-2021 Высокопроизводительные вычислительные системы. Оценка производительности высокопроизводительных вычислительных систем на алгоритмах, использующих сверточные нейронные сети

Обозначение:
ГОСТ Р 57700.36-2021
Наименование:
Высокопроизводительные вычислительные системы. Оценка производительности высокопроизводительных вычислительных систем на алгоритмах, использующих сверточные нейронные сети
Статус:
Действует
Дата введения:
01.01.2022
Дата отмены:
-
Заменен на:
-
Код ОКС:
35.240.50

Текст ГОСТ Р 57700.36-2021 Высокопроизводительные вычислительные системы. Оценка производительности высокопроизводительных вычислительных систем на алгоритмах, использующих сверточные нейронные сети

ГОСТ Р 57700.36-2021

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ

Оценка производительности высокопроизводительных вычислительных систем на алгоритмах, использующих сверточные нейронные сети

High-performance computing systems. Performance evaluation of high-performance computing systems on algorithms using convolutional neural network

ОКС 35.240.50

Дата введения 2022-01-01

Предисловие

1 РАЗРАБОТАН Федеральным государственным унитарным предприятием "Государственный научно-исследовательский институт авиационных систем" (ФГУП "ГосНИИАС") и Федеральным государственным унитарным предприятием "Российский федеральный ядерный центр - Всероссийский научно-исследовательский институт экспериментальной физики" (ФГУП "РФЯЦ-ВНИИЭФ")

2 ВНЕСЕН Техническим комитетом по стандартизации ТК 700 "Математическое моделирование и высокопроизводительные вычислительные технологии"

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 16 сентября 2021 N 980-ст

4 ВВЕДЕН ВПЕРВЫЕ

Правила применения настоящего стандарта установлены в статье 26 Федерального закона от 29 июня 2015 г. N 162-ФЗ "О стандартизации в Российской Федерации". Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет ()

Введение

Развитие вычислительной техники делает возможным постоянное расширение числа прикладных задач, решаемых с помощью технологий искусственного интеллекта. В частности, повсеместное применение в задачах компьютерного зрения находят алгоритмы на основе сверточных нейронных сетей (СНС). Распространение СНС повлекло за собой создание различных специализированных архитектур вычислителей.

СНС обладают своей спецификой, не позволяющей объективно оценить реальную производительность вычислителя или вычислительной системы с помощью только общих технических характеристик. Возникла необходимость в специальной методике для оценки реальной производительности различных вычислительных систем в задачах, использующих алгоритмы на основе СНС.

В настоящем стандарте описана методика оценки производительности высокопроизводительных вычислительных систем (ВВС) и их частей на алгоритмах, использующих СНС. Методика была разработана с целью максимального упрощения задачи оценки производительности для лиц, не знакомых с СНС, сделать возможным оценку производительности без использования источников информации, отличных от настоящего стандарта, в то же время позволяя эффективно применять методику для оценки вычислительных систем любого типа и размера.

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

В настоящем стандарте также приведены рекомендуемые требования к программному обеспечению (ПО), используемому при тестировании производительности согласно приведенной методике, и вычислительным системам, применяемым для вычислений СНС. Несоблюдение требований к ПО может привести либо к невозможности выполнения оценки производительности, либо к получению значений реальной производительности в разы меньших по сравнению со значениями, которые могут быть практически получены на той же вычислительной технике. Несоблюдение требований к вычислительным системам может привести к применению для вычислений СНС ВВС, заведомо не способных продемонстрировать на них удовлетворительный уровень производительности.

Методику оценки производительности, описанную в настоящем стандарте, рекомендуется применять, в том числе, при составлении требований технического задания на ВВС и их части, при составлении требований на прикладное ПО, реализующее вычисления СНС на ВВС и их частях, при описании характеристик ВВС, которые предполагается применять для алгоритмов, использующих СНС.

1 Область применения

Настоящий стандарт устанавливает методику определения реальной производительности высокопроизводительных вычислительных систем (ВВС) в задачах, использующих алгоритмы на основе сверточных нейронных сетей (СНС), методику верификации реализаций СНС, а также рекомендательные требования к вычислительным системам и программному обеспечению (ПО).

Методика оценки производительности и требования к вычислительным системам и ПО, установленные настоящим стандартом, рекомендуются для использования при оценке производительности вычислительных систем, применяемых для решения задач, использующих алгоритмы на основе СНС. Методика верификации реализаций СНС рекомендуется для использования при реализации алгоритмов на основе СНС.

2 Нормативные ссылки

В настоящем стандарте использована нормативная ссылка на следующий стандарт:

ГОСТ Р 57700.27 Высокопроизводительные вычислительные системы. Термины и определения

Примечание - При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя "Национальные стандарты" за текущий год. Если заменен ссылочный стандарт, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого стандарта с учетом всех внесенных в данную версию изменений. Если заменен ссылочный стандарт, на который дана датированная ссылка, то рекомендуется использовать версию этого стандарта с указанным выше годом утверждения (принятия). Если после утверждения настоящего стандарта в ссылочный стандарт, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, рекомендуется применять в части, не затрагивающей эту ссылку

3 Термины и определения

В настоящем стандарте применены термины по ГОСТ Р 57700.27, а также следующие термины с соответствующими определениями:

3.1 искусственный интеллект (artificial intelligence): Комплекс технологических и программных решений, приводящих к результату, аналогичному или превосходящему результат интеллектуальной деятельности человека (включая способность к самообучению), и используемых для решения прикладных задач на основе данных, в том числе с помощью систем компьютерного зрения, систем обработки естественного языка, рекомендательных систем и интеллектуальных систем поддержки принятия решений и робототехники.

3.2 машинное обучение (machine learning): Процесс обучения алгоритмов искусственного интеллекта с использованием вычислительной техники.

3.3 обучение (training): Процесс создания или улучшения определенной функциональности алгоритмов искусственного интеллекта либо путем использования набора данных в качестве примеров для предполагаемого отношения вопрос/ответ, либо путем обеспечения положительной или отрицательной обратной связи с выходными данными, полученными для соответствующих входных данных.

3.4 нейронная сеть (neural network): Алгоритм из класса алгоритмов искусственного интеллекта, представляющий собой предопределенную последовательность действий с множеством регулируемых параметров, в котором значения выходных данных сложным образом зависят от значений входных данных.

3.5 алгоритм (algorithm): Точно установленное предписание о выполнении в определенном порядке некоторой последовательности операций, однозначно ведущих к решению той или иной конкретной задачи.

3.6 среда машинного обучения (machine learning framework): Программное обеспечение, упрощающее создание пользователем реализаций СНС, обучение СНС и применение СНС.

3.7 тест производительности (benchmark): Типовая тестовая программа, используемая при тестировании производительности вычислительной системы или ее части.

3.8
умножение с накоплением
(multiply-accumulate, MAC): Трехоперандная математическая операция
или четырехоперандная математическая операция
, являющаяся комбинацией из операций умножения и сложения, применяемая в качестве единицы исчисления вычислительной сложности алгоритмов на базе СНС.

3.9 относительная реальная производительность (relative real performance): Отношение реальной производительности к теоретической пиковой производительности.

3.10 вычислительная ячейка (computing cell): Часть ВВС, которая может включать в себя части подсистем ВВС, в том числе вычислительные узлы ВВС, выделение которой удобно с точки зрения высокопроизводительной реализации конкретной программы.

Примечание - Вычислительные ячейки ВВС не могут пересекаться друг с другом.

3.11 однородные вычислительные компоненты (homogeneous computing components): Компоненты ВВС с одинаковым функционалом и характеристиками.

3.12 слой нейронной сети (neural network layer): Фрагмент нейронной сети, который можно выделить в отдельную типовую параметризованную процедуру.

3.13 обучение методом обратного распространения ошибки (back propagation): Итеративный способ обучения, каждая итерация которого состоит из четырех шагов: прямого хода, обратного хода, вычисления градиента и изменения значений весов.

3.14 сверточный слой (convolutional layer): Тип слоя нейронной сети, в основе которого лежат процедуры свертки и матричного умножения.

3.15 сверточная нейронная сеть (convolutional neural network); СНС: Вид нейронной сети, в которой используются сверточные слои.

3.16 вход нейронной сети (input): Начало нейронной сети как алгоритма.

3.17 входной массив нейронной сети (input): Массив данных, подаваемый на вход нейронной сети.

3.18 выход нейронной сети (output): Конец нейронной сети как алгоритма.

3.19 выходной массив нейронной сети (output): Массив данных, генерируемый нейронной сетью на выходе нейронной сети.

3.20 веса (weights): Параметры нейронной сети, настраиваемые во время процесса машинного обучения.

3.21 архитектура нейронной сети (neural network architecture): Описание нейронной сети, в котором приведено, из каких слоев состоит нейронная сеть, каковы параметры этих слоев, описан процесс передачи данных между этими слоями, а также входом и выходом нейронной сети, но не указаны конкретные значения весов нейронной сети.

3.22 применение нейронной сети (inference): Использование нейронной сети как алгоритма для получения выходных данных по входным данным с целью извлечения практической пользы.

3.23 размер пакета (batch size, batchsize): Параметр, устанавливающий для процесса обучения количество комплектов входных массивов нейронной сети, обрабатываемых нейронной сетью в одной итерации обучения, либо устанавливающий для применения нейронной сети количество одновременно обрабатываемых комплектов входных данных.

3.24 реализация сверточной нейронной сети (implementation of a convolutional neural network): Прикладная программа или программный компонент, выполняющая вычисления, заданные нейронной сетью как алгоритм, для процедуры обучения нейронной сети или для процедуры применения нейронной сети.

3.25 эталонная реализация сверточной нейронной сети (reference implementation of a convolutional neural network): Реализация сверточной нейронной сети, относительно которой принимается допущение, что она не содержит ошибок, а погрешности округлений и вычислений в ней можно игнорировать.

Примечание - Эталонная реализация сверточной нейронной сети также является корректной реализацией сверточной нейронной сети.

3.26 корректная реализация сверточной нейронной сети (correct implementation of a convolutional neural network): Реализация сверточной нейронной сети, которая не обязательно считается эталонной, но для которой известно, что она выдает корректный результат с допустимой точностью.

3.27 высокопроизводительная реализация сверточной нейронной сети (high-performance implementation of a convolutional neural network): Реализация сверточной нейронной сети, реализованная таким образом, чтобы она выдавала корректный результат с допустимой точностью за минимальное время.

3.28 прямой ход (forward): Первый из четырех шагов обучения методом обратного распространения ошибки, заключающийся в применении нейронной сети и получении выходных данных по заданным входным.

3.29 карты признаков (feature map): Промежуточные массивы данных, возникающие во время вычислений прямого хода в сверточной нейронной сети.

Примечание - Для общности к картам признаков также относятся входной и выходной массивы нейронной сети.

3.30 обратный ход (backward): Второй из четырех шагов обучения методом обратного распространения ошибки, заключающийся в вычислении специальных промежуточных данных, облегчающих вычисления следующего шага.

3.31 невязки (residual): Промежуточные данные, возникающие во время вычислений обратного хода в сверточной нейронной сети аналогично тому, как карты признаков возникают во время вычислений прямого хода.

3.32 вычисление градиента (gradient calculation): Третий из четырех шагов обучения методом обратного распространения ошибки, заключающийся в вычислении массива приращений для весов.

3.33 градиент (gradient): Массив приращений для весов.

3.34 изменение значений весов (updating weights): Четвертый из четырех шагов обучения методом обратного распространения ошибки, заключающийся в замене текущих весов нейронной сети новыми значениями с использованием градиента.

3.35 итерация обучения (training iteration): Итерация процесса обучения методом обратного распространения ошибки, состоящая из последовательных вызовов четырех шагов обучения.

3.36 фильтр (filter): Массив с определенной структурой, в который объединяются веса некоторых слоев сверточной нейронной сети.

3.37 смещение (bias): Один из типов весов, используемый в различных слоях сверточной нейронной сети.

3.38 ядро пулинга (pooling kernel): Прямоугольная рамка, умозрительная прикладываемая к входной карте признаков в слое пулинга.

3.39 канал карты признаков (channel): Группа значений, выделяемая в карте признаков, объединяющая значения карты признаков с одним индексом глубины.

3.40 шаг свертки/шаг пулинга (stride): Величина, регулирующая число вычислений в слое нейронной сети.

3.41 расширение (padding): Величина, регулирующая ширину и высоту выходной карты признаков.

4 Сокращения и обозначения

В настоящем стандарте применены следующие сокращения и обозначения:

- размер пакета;

- ширина (входной) карты признаков;

- высота (входной) карты признаков;

- ширина выходной карты признаков;

- высота выходной карты признаков;

,
,

- глубина (число каналов) входной карты признаков;

,
,

- глубина выходной карты признаков;

- ширина фильтра свертки или ядра пулинга;

- высота фильтра свертки или ядра пулинга;

- ширина и высота фильтра свертки или ядра пулинга;

- шаг свертки или пулинга;

- расширение по ширине;

- расширение по высоте;

- расширение по ширине и высоте;

- урезанный линейный модуль (rectified linear unit);

- число групп каналов для слоя перемешивания;

Вх1

- первая входная карта признаков;

Вх2

- вторая входная карта признаков;

ОРП

- относительная реальная производительность;

СКО

- среднеквадратическое отклонение;

СКОП

- порог среднеквадратического отклонения;

УсН

- операция умножения с накоплением;

УсН/с

- число операций умножений с накоплением в секунду.

5 Общие положения

Оценку производительности выполняют следующим образом:

- с помощью описания типовых слоев СНС, приведенных в разделе 6, реализуются отдельные функции, выполняющие вычисления отдельных слоев;

- с помощью описания типовых СНС, приведенных в разделе 7, и реализованных функций, создаются эталонные реализации типовых СНС;

- помимо эталонной реализации, создаются также высокопроизводительные реализации СНС, верифицируемые с помощью эталонных реализаций и методики верификации, описанной в разделе 8;

- оценка производительности осуществляется согласно методике, описанной в разделе 9.

6 Типовые операции в сверточных нейронных сетях

Большинство СНС состоят из слоев, типы которых описаны в данном разделе. Встречаются также и другие типы слоев СНС, однако для целей оценки производительности достаточно использовать описанные в настоящем стандарте типы. Для каждого слоя (см. приложение А) приведен один или два поясняющих фрагмента кода на языке С. Эти фрагменты кода не являются полноценными текстами программ, они приведены в качестве описания последовательности математических операций, выполняемых в слое.

6.1 Сверточный слой

6.1.1 Общие сведения

Сверточный слой является основной вычислительной процедурой в СНС. Наличие сверточного слоя в нейронной сети позволяет классифицировать эту нейронную сеть как сверточную.

6.1.2 Краткое описание слоя

Слой принимает на вход карту признаков с размерами (
,
,
,
), где
- размер пакета,
- ширина,
- высота,
- глубина (число каналов, англ. channel). Также слой располагает
фильтрами, каждый фильтр представляет собой массив с размерами (
,
,
), где
- ширина ядер фильтров,
- высота ядер фильтров. Все фильтры вместе образуют массив с размерами (
,
,
,
). Кроме фильтров слой располагает массивом из
смещений, каждое смещение ассоциировано с одним фильтром. Вычисления состоят в выборке из входной карты признаков подмассивов с размерами (1,
,
,
), выборке фильтра, поэлементном умножении выбранных значений входной карты признаков со значениями выбранного фильтра, сложением полученных результатов и прибавлением к нему соответствующего значения смещения. В результате получается одно значение выходной карты признаков. Выходная карта признаков имеет размеры (
,
,
,
), где
- ширина выходной карты признаков,
- высота выходной карты признаков. Схема работы сверточного слоя проиллюстрирована на рисунке 1.
Количество вычислений в слое регулируется шагом свертки
: при выборке из входной карты признаков подмассивов начальные элементы соседних подмассивов отстоят друг от друга по ширине и (или) высоте на величину
.
Для контроля размера выходной карты признаков применяется расширение. При заданных размерах расширения по ширине
и по высоте
входная карта признаков умозрительно расширяется по ширине и высоте в каждую сторону на величины
и
соответственно, при этом считается, что добавляемые значения равны нулю.

Ширину и высоту выходной карты признаков вычисляют по формулам:

,
. (1)

Рисунок 1 - Вычисления сверточного слоя для одного фильтра со смещением, равным нулю, и значениями параметров
,
,
,

Примечания

1 Встречаются также описания сверточного слоя, содержащие дополнительные параметры помимо описанных выше параметров. При этом слой также можно классифицировать как сверточный, если найдется набор значений дополнительных параметров, при фиксации которых слой выполняет те же вычисления, что и сверточный слой.

2 Как правило, СНС содержат от нескольких единиц до нескольких сотен сверточных слоев.

6.2 Слой пулинга

6.2.1 Общие сведения

Слой пулинга (англ. pooling layer) применяется в СНС для уменьшения ширины и высоты карт признаков, используемых в СНС.

6.2.2 Краткое описание слоя

Слой принимает на вход карту признаков с размерами (
,
,
,
), где
- размер пакета,
- ширина,
- высота,
- глубина. Для слоя определяется одна из двух операций - выбор максимального (англ. max pooling) или вычисление среднего (англ. average pooling). Для пулинга заданы ширина
и высота
ядра пулинга. Вычисления состоят в выборке из входной карты признаков подмассивов с размерами (1,
,
, 1) и вычислений над выбранными значениями определенной операции. В результате получается одно значение выходной карты признаков. Выходная карта признаков имеет размеры (
,
,
,
), где
- ширина выходной карты признаков,
- высота выходной карты признаков.
Количество вычислений в слое регулируется также шагом пулинга
: при выборке из входной карты признаков подмассивов начальные элементы соседних подмассивов отстоят друг от друга по ширине и (или) высоте на величину
.
Для контроля размера выходной карты признаков применяется расширение. При заданных размерах расширения по ширине
и по высоте
входная карта признаков умозрительно расширяется по ширине и высоте в каждую сторону на величины
и
соответственно, при этом считается, что добавляемые значения равны нулю.

Ширину и высоту выходной карты признаков вычисляют по формулам:

,
. (2)

В некоторых реализациях ширина и (или) высота выходной карты признаков могут быть больше значений, полученных по приведенной формуле, на единицу.

Примечания

1 Встречаются также описания слоя пулинга, содержащие дополнительные параметры помимо описанных выше параметров. При этом слой также можно классифицировать как слой пулинга, если найдется набор значений дополнительных параметров, при фиксации которых слой выполняет те же вычисления, что и слой пулинга.

2 Иногда для слоя пулинга определяется параметр режима округления (англ. ceil mode) или другие особые режимы использования расширения. В этих случаях расчет тех значений выходного массива, которые по ширине и высоте имеют крайние индексы, может отличаться от приведенного выше.

3 Иногда слой пулинга определяется как глобальный (англ. global). Это означает, что размеры ядра пулинга выбираются равными ширине и глубине входной карты признаков.

4 Как правило, СНС содержат от нескольких единиц до нескольких десятков слоев пулинга.

6.3 Слой ректификации

6.3.1 Общие сведения

Слой ректификации (англ. rectified linear unit - урезанный линейный модуль) используется в СНС для придания им определенных свойств.

6.3.2 Краткое описание слоя

Слой принимает на вход карту признаков с размерами (
,
,
,
), где
- размер пакета,
- ширина,
- высота,
- глубина, при этом выходная карта признаков имеет те же размеры, что и входная. Вычисления состоят в том, что значения входной карты признаков копируются в выходную карту признаков, после чего отрицательные значения в выходной карте признаков заменяются нулевыми значениями.

Примечания

1 Чаще всего для обозначения слоя ректификации используется аббревиатура "ReLU".

2 Встречаются различные варианты слоев, являющиеся модификациями слоя ректификации, со схожим функционалом. Как правило, в названиях этих слоев фигурирует аббревиатура "ReLU".

3 Как правило, в СНС слой ректификации регулярно следуют сразу после сверточных или других слоев.

6.4 Слой склейки

6.4.1 Общие сведения

Слой склейки (англ. concat) используется в СНС для усложнения их структуры.

6.4.2 Краткое описание слоя

Слой принимает на вход две карты признаков с размерами (
,
,
,
) и (
,
,
,
) соответственно, где
- размер пакета,
- ширина,
- высота,
и
- глубины. Выходная карта признаков слоя имеет размеры (
,
,
,
) и формируется путем расположения друг за другом
значений из первой входной карты признаков и
значений из второй входной карты признаков для каждой пары индексов ширины и высоты.

Примечания

1 Иногда встречаются обобщенные описания слоя склейки, допускающие большее число измерений у карт признаков, а также допускающие, что в качестве размерности, по которой выполняется склейка, выступает размерность, отличная от глубины.

2 В СНС, как правило, слой склейки либо не встречаются, либо встречаются в количестве от нескольких десятков до нескольких сотен.

6.5 Слой расщепления

6.5.1 Общие сведения

Слой расщепления (англ. split) используется в СНС для усложнения их структуры.

6.5.2 Краткое описание слоя

Слой принимает на вход карту признаков с размерами (
,
,
,
) соответственно, где
- размер пакета,
- ширина,
- высота,
- глубина. Слой производит две выходные карты признаков с размерами (
,
,
,
) и (
,
,
,
) таким образом, что применение слоя склейки к выходным картам признаков даст в результате карту признаков, в точности соответствующую входной карте признаков для слоя расщепления.

Примечания

1 Иногда встречаются обобщенные описания слоя расщепления, допускающие большее число измерений у карт признаков, а также допускающие, что в качестве размерности, по которой выполняется расщепление, выступает размерность, отличная от глубины.

2 В СНС, как правило, слой расщепления либо не встречаются, либо встречаются в количестве от нескольких десятков до нескольких сотен.

6.6 Поканальный сверточный слой

6.6.1 Общие сведения

Поканальный сверточный слой (англ. depthwise convolution layer) является вычислительной процедурой, применяемой в СНС в качестве упрощенного варианта сверточного слоя.

6.6.2 Краткое описание слоя

Слой принимает на вход карту признаков с размерами (
,
,
,
), где
- размер пакета,
- ширина,
- высота,
- глубина. Также слой располагает
фильтрами, каждый фильтр представляет собой массив с размерами (
,
), где
- ширина ядер фильтров,
- высота ядер фильтров. Все фильтры вместе образуют массив с размерами (
,
,
). Кроме фильтров слой располагает массивом из
смещений, каждое смещение ассоциировано с одним фильтром. Каждый фильтр ассоциирован с конкретным значением индекса глубины входной карты признаков. Вычисления состоят в выборке из входной карты признаков подмассивов с размерами (1,
,
, 1), взятию фильтра, соответствующего значению индекса глубины выбранного подмассива, поэлементном умножении выбранных значений входной карты признаков со значениями выбранного фильтра, сложением полученных результатов и прибавлением к нему соответствующего значения смещения. В результате получается одно значение выходной карты признаков. Выходная карта признаков имеет размеры (
,
,
,
), где
- ширина выходной карты признаков,
- высота выходной карты признаков.
Количество вычислений в слое регулируется также шагом свертки
: при выборке из входной карты признаков подмассивов начальные элементы соседних подмассивов отстоят друг от друга по ширине и (или) высоте на величину
.
Для контроля размера выходной карты признаков применяется расширение. При заданных размерах расширения по ширине
и по высоте
входной массив умозрительно расширяется по ширине и высоте в каждую сторону на величины
и
соответственно, при этом считается, что добавляемые значения равны нулю.

Ширину и высоту выходной карты признаков вычисляют по формулам:

,
. (3)

Примечания

1 Иногда поканальный сверточный слой описывается как модификация сверточного слоя или как сверточный слой с определенными ограничениями на параметры.

2 В СНС, как правило, поканальные сверточные слои либо не встречаются, либо встречаются в количестве от нескольких десятков до нескольких сотен.

6.7 Поэлементный слой

6.7.1 Общие сведения

Поэлементный слой (англ. elementwise) используется в СНС для придания им определенных свойств.

6.7.2 Краткое описание слоя

Слой принимает на вход две карты признаков с одинаковыми размерами (
,
,
,
), где
- размер пакета,
- ширина,
- высота,
- глубина. Выходная карта признаков слоя имеет те же размеры и формируется путем поэлементного сложения двух входных карт признаков.

Примечания

1 Чаще всего для обозначения поэлементного слоя используется сокращение "eltwise". Поэлементный слой является операцией сложения, примененной к массивам в СНС, поэтому иногда понятие поэлементного слоя опускается.

2 Встречаются варианты поэлементного слоя, в которых карты признаков складываются с весовыми коэффициентами, либо вместо операции сложения используется операция умножения.

3 В СНС, как правило, поэлементные слои либо не встречаются, либо встречаются в количестве нескольких десятков.

6.8 Полносвязный слой

6.8.1 Общие сведения

Полносвязный слой (англ. fully connected layer) является вычислительной процедурой в СНС, используемой в конце вычислений для формирования признаков, несущих конкретный понятный пользователю смысл.

6.8.2 Краткое описание слоя

Слой принимает на вход карту признаков с размерами (
,
,
,
), где
- размер пакета,
- ширина,
- высота,
- глубина. Также слой располагает массивом весов с размерами (
,
,
,
), где
- число выходов. Кроме массива весов слой располагает массивом из
смещений, каждое смещение ассоциировано с одной строкой матрицы весов. Вычисления состоят в умножении матрицы, составленной из значений весов, на вектор, составленный из значений входной карты признаков, и сложении результата с массивом смещений, в результате чего получается выходная карта признаков с размерами (
, 1, 1,
).

Примечания

1 Для обозначения полносвязного слоя иногда используются термины "dense", "inner product", реже "linear".

2 Как правило, СНС содержат не более трех полносвязных слоев, расположенных последовательно друг за другом.

6.9 Слой перемешивания

6.9.1 Общие сведения

Слой перемешивания (англ. shuffle layer) используется в СНС для придания им определенных свойств.

6.9.2 Краткое описание слоя

Слой принимает на вход карту признаков с размерами (
,
,
,
), где
- размер пакета,
- ширина,
- высота,
- глубина. Слою также указан некоторый целочисленный параметр
, задающий число групп каналов. Выходная карта признаков имеет тот же размер, что и входная, но отличается тем, что каждое значение, имевшее во входной карте признаков индекс
по глубине, в выходной карте признаков сохраняет индексы по ширине и высоте, но приобретает новый индекс
по глубине, вычисляемый по формуле
. (4)

Примечания

1 Встречаются реализации слоя перемешивания, в которых формула вычисления индекса глубины в выходном массиве отличается от приведенной.

2 Как правило, в СНС слои перемешивания либо не встречаются, либо встречаются в количестве нескольких десятков.

7 Типовые сверточные нейронные сети

7.1 В настоящем стандарте описаны шесть типовых СНС: "М", "Г", "В", "С", "Р" и "Ш". Перечисленные СНС являются упрощенными аналогами широко распространенных СНС, их архитектуры вместе содержат все типовые слои СНС. Пример широко распространенной СНС приведен на рисунке 2.

7.2 Описания СНС приведены в таблицах Б.1-Б.6 приложения Б. В таблицах приведены все параметры СНС, кроме размера пакета. Выбранное для СНС значение размера пакета является значением размера пакета для каждого слоя СНС.

7.3 СНС в таблицах описаны согласно следующим правилам:

- каждый слой СНС описан одной строкой таблицы и имеет собственный номер, указанный в графе "Номер п/п";

- вычисление прямого хода для СНС представляет собой последовательные вычисления прямого хода для всех слоев СНС в порядке возрастания номеров; вычисление обратного хода для СНС представляют собой последовательные вычисления обратного хода для всех слоев СНС в порядке убывания номеров; вычисление градиента для СНС представляет собой совокупность вычислений градиента для каждого слоя, располагающего весами; изменение значений весов для СНС представляет собой совокупность изменений значений весов для каждого слоя, располагающего весами;

- в каждой итерации обучения все промежуточные значения, полученные на одном из четырех шагов, остаются постоянными до завершения итерации обучения; значения весов (в том числе фильтров и смещений), полученные на текущей итерации обучения, передаются на следующую итерацию обучения;

- для каждого СНС входом является входная карта признаков первого слоя, выходом СНС является выходная карта признаков последнего слоя;

- для каждого слоя указан его тип в графе "Тип";

- для каждого слоя в графах "Вх1" и "Вх2" указаны номера слоев, выходные карты признаков которых являются входными картами признаков данного слоя; если у слоя только одна входная карта признаков, то в графе "Вх2" стоит символ "-"; если в графе "Вх1" или "Вх2" указан номер слоя, являющегося слоем расщепления, то к номеру дописывается набор символов ".1", если в качестве соответствующей входной карты признаков используется первая выходная карта признаков слоя расщепления, либо набор символов ".2", если в качестве соответствующей входной карты признаков используется вторая выходная карта признаков слоя расщепления;

- для каждого слоя в графах "
" и "
" указаны ширина и высота входной карты признаков;
- для каждого слоя в графах "
" и "
" указаны глубины входных карт признаков слоя. Если у слоя только одна входная карта признаков, то в графе "
" стоит символ "-";
- для каждого слоя в графах "
" и "
" указаны глубины выходных карт признаков слоя; если у слоя только одна входная карта признаков, то в графе "
" стоит символ "-"; если у слоя глубина выходных карт признаков совпадает с глубиной входных карт признаков, то значение в графе "
" дублирует значение в графе "
";
- для каждого сверточного или поканального сверточного слоя в графе "
" задана величина, которая равна ширине
и высоте
фильтров; для каждого слоя пулинга в графе "
" задана величина, которая равна ширине и высотке ядра пулинга; для остальных слоев в графе "
" стоит символ "-";
- для каждого сверточного, поканального сверточного или слоя пулинга в графе "
" задана величина шага
; для остальных слоев в графе "
" стоит символ "=";
- для каждого сверточного, поканального сверточного или слоя пулинга в графе "
" задана величина, которая равна расширению
по ширине и расширению
по высоте; для остальных слоев в графе "
" стоит символ "-";
- для каждого слоя перемешивания в графе "
" задано значение параметра
; для остальных слоев в графе "
" стоит символ "-".

Рисунок 2 - СНС, упрощенной версией которой является СНС "Г"

8 Методика верификации реализации сверточных нейронных сетей

8.1 Методика верификации применяется для верификации реализации СНС и позволяет определить, может ли реализация СНС считаться корректной или эталонной. Методика не исключает наличия других способов, позволяющих заключить, что реализация СНС является эталонной.

8.2 Методика состоит в выполнении следующей последовательности действий:

- определяется верифицируемая реализация СНС, в частности, осуществляется ли реализация обучения или применения СНС;

- задается вход СНС и все веса СНС, которые будут использоваться и верифицируемой, и эталонной реализациями СНС; вход СНС должен состоять из случайно выбранных действительных чисел в диапазоне от -127 до 128, веса СНС должны состоять из случайно выбранных действительных чисел в диапазоне от -1 до 1; если реализация осуществляет обучение нейронной сети, то задается также массив невязок, ассоциированный с выходом СНС; массив невязок должен состоять из случайно выбранных действительных чисел в диапазоне от -127 до 128;

- создается эталонная реализация СНС, при этом для СНС, описанных в настоящем стандарте, эталонная реализация СНС создается согласно описанию, приведенному в настоящем стандарте;

- с помощью эталонной реализации СНС и с помощью заданных входа СНС и весов СНС вычисляется выход СНС, значения выхода СНС нумеруются и обозначаются
, где
- номер значения; если реализация осуществляет обучение нейронной сети, то с помощью эталонной реализации СНС и с помощью заданных входа СНС, весов СНС и массива невязок, ассоциированного с выходом СНС, вычисляются значения весов СНС, получаемые после одной итерации обучения, значения весов нумеруются и обозначаются
, где
- номер значения;
- с помощью верифицируемой реализации СНС, заданных входа СНС и весов СНС вычисляется выход СНС, значения выхода СНС нумеруются тем же способом, что и значения выхода СНС, полученные с помощью эталонной реализации СНС, и обозначаются
, где
- номер значения; если реализация осуществляет обучение нейронной сети, то с помощью верифицируемой реализации СНС и с помощью заданных входа СНС, весов СНС и массива невязок, ассоциированного с выходом СНС, вычисляются значения весов СНС, получаемые после одной итерации обучения, значения весов нумеруются тем же способом, что и значения весов СНС, полученные с помощью эталонной реализации СНС, и обозначаются
, где
- номер значения;
- вычисляется среднеарифметическое
абсолютных величин
и, если реализация осуществляет обучение нейронной сети, среднеарифметическое
абсолютных величин
;
- для всех значений
выполняется проверка: если абсолютное значение
или абсолютное значение
меньше, чем
, то оба значения
и
полагаются равными 1. Если реализация осуществляет обучение нейронной сети, то для всех значений
выполняется проверка: если абсолютное значение
или абсолютное значение
меньше, чем
, то оба значения
и
полагаются равными 1;
- если реализация осуществляет применение нейронной сети, то вычисляется сумма
по всем значениям
:
; (5)
- если реализация осуществляет обучение нейронной сети, то вычисляется сумма
по всем значениям
и
:
; (6)
- вычисляется значение СКО арифметического корня значения
;

- если условия задачи, в интересах которой создана верифицируемая реализация СНС, допускают погрешности вычислений, и для этих погрешностей вычислений можно аналитически определить максимально допустимое значение СКО, то задается значение СКОП, равное максимально допустимому значению СКО; в противном случае задается значение СКОП, равное нулю;

- если значение СКО меньше
, то считается, что верифицируемая реализация СНС успешно верифицирована и может считаться эталонной, процедура верификации завершается;
- если значение СКО меньше
, то считается, что верифицируемая реализация СНС успешно верифицирована и может считаться корректной, процедура верификации завершается;
- если СКО больше
, то верификация не может считаться успешной, а реализация СНС не может считаться корректной, процедура верификации завершается;
- если реализация СНС осуществляет обучение СНС и значение СКО больше
, то верификация не может считаться успешной, а реализация СНС не может считаться корректной, процедура верификации завершается;

- если значение СКО оказалось меньше СКОП, то считается, что верифицируемая реализация СНС может считаться корректной, но эталонной считаться не может, процедура верификации завершается;

- если значение СКО оказалось не меньше СКОП, то считается, что верифицируемая реализация СНС не может считаться корректной, процедура верификации завершается.

9 Методика оценки производительности

9.1 Ключевым компонентом методики оценки производительности ВВС на алгоритмах, использующих СНС, являются тесты производительности, основанные на типовых СНС, приведенных в приложении Б.

9.2 Для обозначения теста производительности применяется специальная нотация. Схема формирования обозначения теста производительности приведена на рисунке 3.

9.3 Тест производительности для обучения применяется согласно следующим правилам:

- для теста производительности выбирается одна из шести типовых СНС;

- определяется ВВС, на которой будет запущен тест производительности; в ВВС выделяется максимально возможное число одинаковых с точки зрения программирования и доступа к общим ресурсам (дисковым накопителям, коммуникационным связям) вычислительных ячеек, содержащих основные вычислительные ресурсы ВВС;

- определяется, какой тип данных будет использован в реализации выбранной для теста производительности СНС на выбранной ВВС; определяется теоретическая пиковая производительность
вычислительной ячейки в УсН/с над используемым типом данных;

- создается высокопроизводительная реализация выбранной для теста производительности СНС, позволяющая выполнять последовательные итерации обучения в одной вычислительной ячейке с использованием выбранного типа данных; реализация СНС должна быть верифицирована с помощью методики, описанной в разделе 8;

- для каждой вычислительной ячейки создается набор из 1000000 изображений, каждое из которых по размеру совпадает с входной картой признаков первого слоя выбранной СНС, при этом наборы, используемые разными вычислительными ячейками, не должны совпадать;

- делается засечка времени
в секундах, одновременно с этим в каждой вычислительной ячейке запускается первая итерация цикла обучения из
итераций (
должно быть не меньше 1000);
- в начале итерации из набора изображений, назначенного данной вычислительной ячейке, случайным образом выбирается
изображений, из которых составляется массив из
входных карт признаков.
Примечание - Изображения могут храниться в произвольном формате. В равной степени позволяется как заранее составить входные массивы нейронной сети и хранить наборы этих массивов, так и хранить изображения в некотором формате, формируя на основе изображений входной массив нейронной сети из
входных карт признаков непосредственно перед запуском вычислений с этим входным массивом нейронной сети;

- выполняется прямой ход СНС;

- массив невязок, ассоциированный с выходной картой признаков последнего слоя СНС, заполняется любыми действительными значениями с плавающей точкой одинарной точности (float);

- выполняется обратный ход;

- для всех слоев СНС выполняется вычисление градиента и изменение значений весов;

- действия, начинающиеся со случайного выбора
изображений и заканчивающиеся вычислением градиентов и изменением значений весов, повторяются
раз;
- когда все вычислительные ячейки закончили вычисления, делается засечка времени
в секундах и вычисляется величина
.

9.4 Тест производительности для применения СНС применяется согласно следующим правилам:

- определяется ВВС, на которой будет запущен тест производительности; в ВВС выделяется максимально возможное число одинаковых с точки зрения программирования и доступа к общим ресурсам (дисковым накопителям, коммуникационным связям) вычислительных ячеек, содержащих основные вычислительные ресурсы ВВС;

- определяется, какой тип данных будет использован в реализации выбранной для теста производительности СНС на выбранной ВВС; определяется теоретическая пиковая производительность
вычислительной ячейки в УсН/с над используемым типом данных;

- создается реализация выбранной для теста производительности СНС, позволяющая выполнять применение нейронной сети в одной вычислительной ячейке с использованием выбранного типа данных; реализация СНС должна быть верифицирована с помощью методики, описанной в разделе 8;

- делается засечка времени
в секундах, одновременно с этим в каждой вычислительной ячейке запускается первая итерация цикла из
применений нейронной сети (
должно быть не меньше 1000);

- произвольным образом выбирается входная карта признаков первого слоя;

- выполняется прямой ход СНС;

- произвольный выбор входной карты признаков первого слоя и прямой ход СНС повторяются
раз;
- когда все вычислительные ячейки закончили вычисления, делается засечка времени
в секундах и вычисляется величина
.
9.5 Из таблицы 1 выбирается соответствующее выбранной для теста производительности СНС значение
. Значение относительной реальной производительности в процентах вычисляют по формуле
. (7)

Таблица 1 - Значения вычислительной сложности для типовых СНС, миллиарды УнС

СНС

М

Г

В

С

Р

Ш

Значение

0,57

1,6

15,5

0,88

3,7

0,15

9.6 Вычисленное значение ОРП является результатом теста производительности и может использоваться вместе с обозначением теста производительности.

Рисунок 3 - Нотация обозначения теста производительности

9.7 Вместе с результатом теста производительности рекомендуется приводить комментарий, поясняющий используемый тип данных, способ разделения ВВС на вычислительные ячейки, какие компоненты ВВС не были использованы, значение производительности вычислительной ячейки в УсН/с в выбранном типе данных, особенности использованного программного обеспечения и, если необходимо, пояснение относительно того, как это значение было определено.

9.8 Методика оценки производительности ВВС на алгоритмах, использующих СНС, состоит в получении двух оценок при выполнении следующей последовательности действий:

- определяется ВВС, для которой выполняется оценка производительности;

- определяется, выполняется ли оценка производительности для обучения нейронных сетей или для применения нейронных сетей;

- определяется, какой тип данных используется в реализациях тестов производительности для данной ВВС;

- задается целое число от 1 до 1024, используемое в качестве размера пакета В для всех тестов производительности;

- на выбранной ВВС запускаются тесты производительности для всех шести типовых СНС, при этом в зависимости от того, выполняется оценка для обучения нейронных сетей или применения нейронных сетей, должны быть выбраны соответствующие тесты производительности; для обозначения результатов оценки будет использована соответствующая буква; для всех тестов производительности используется тип данных, определенный для данной ВВС, и в качестве размера пакета устанавливается выбранное значение
;

- среди полученных шести результатов тестов производительности выбирается одно самое малое значение, для остальных вычисляется их среднеарифметическое значение, оно измеряется в процентах и принимается за первый результат оценки производительности;

- второй результат оценки производительности формируется путем умножения первого результата на теоретическую пиковую производительность ВВС в УсН/с над используемым типом данных и деления полученного произведения на 100; второй результат измеряется в УсН/с и характеризует реальную производительность ВВС;

- для обозначения оценки производительности применяется специальная нотация. Схема формирования обозначения оценки производительности приведена на рисунке 4;

- вместе с результатом оценки производительности рекомендуется приводить комментарий, поясняющий используемый тип данных, способ разделения ВВС на вычислительные ячейки (если этот способ различается для разных СНС, то приводится для каждой СНС), какие компоненты ВВС не были использованы, название теста производительности, результат которого не был учтен при вычислении среднеарифметического значения на шаге 6, результат этого теста производительности, особенности использованного программного обеспечения и значение производительности вычислительной ячейки в УсН/с в выбранном типе данных.

Примечания

1 Первый результат оценки производительности характеризует качество работы ВВС, второй результат оценки характеризует реальную производительность ВВС и предназначен для сравнения ВВС друг с другом. Чем больше значения второго результата оценки, тем больший объем вычислений может быть выполнен в ВВС за заданное время. Если высокопроизводительные реализации тестов производительности выполнены некачественно, т.е. не обеспечивают эффективного использования вычислительных ресурсов, то значения оценки производительности могут быть в разы меньше достижимых значений и, таким образом, могут неверно характеризовать производительность ВВС.

2 Рекомендуется первый и второй результаты оценки производительности всегда приводить вместе для наглядности и избежания неверного трактования получаемых результатов.

Рисунок 4 - Нотация обозначения оценки производительности

10 Требования к программному обеспечению

Следующие требования рекомендуется применять к ПО, используемому при оценке производительности в соответствии с методикой:

- используемое ПО должно допускать верификацию создаваемых реализаций СНС при условии наличия эталонных реализаций;

- в случае, если для компонентов ВВС, осуществляющих вычисления, существуют свободно распространяемые высокопроизводительные библиотеки с реализациями вычислений СНС, то либо для реализации тестов производительности должна быть использована хотя бы одна из этих библиотек, либо должно быть обосновано, что применяемые программные средства эффективно используют возможности аппаратуры компонентов ВВС;

- использование реализаций СНС, написанных без использования аппаратно-зависимых программных компонентов, не допускается.

11 Требования к высокопроизводительным вычислительным системам

11.1 Следующие требования рекомендуется предъявлять к ВВС и вычислительным ячейкам, используемым для применения СНС:

- должна быть обеспечена аппаратная и программная поддержка вычислений и хранения данных в одном из типов данных: число с плавающей точкой одинарной точности (float), число с плавающей точкой половинной точности (half float), не стандартизованное число с плавающей точкой с разрядностью, не превосходящей 32 или целое число в дополнительном коде с разрядностью, не превосходящей 16;

- если тип данных, который предполагается использовать для реализаций СНС, отличается от числа с плавающей точкой одинарной точности, то должна быть возможность поддержки реализаций СНС, использующих тип данных, который предполагается использовать;

- значение теоретической пиковой производительности ВВС, исчисляемой в УсН/с в выбранном типе данных, должно быть не менее чем на 75% обеспечено однородными вычислительными компонентами;

- ВВС должна допускать такое разбиение на вычислительные ячейки, чтобы каждая вычислительная ячейка позволяла пользователю запускать независимые программы, включающие реализации СНС, внутри этой ячейки;

- ВВС должна быть обеспечена ПО, удовлетворяющим требованиям настоящего стандарта.

11.2 Рекомендуется предъявлять к ВВС и вычислительным ячейкам, используемым для обучения СНС, следующие требования:

- должна быть обеспечена аппаратная и программная поддержка вычислений и хранения данных в одном из типов данных: число с плавающей точкой одинарной точности (float) или число с плавающей точкой половинной точности (half float);

- если для реализаций СНС предполагается использовать числа с плавающей точкой половинной точности, то должна быть возможность поддержки реализаций СНС, использующих числа с плавающей точкой половинной точности;

- значение теоретической пиковой производительности ВВС, исчисляемой в УсН/с в выбранном типе данных, должно быть не менее чем на 75% обеспечено однородными вычислительными компонентами;

- ВВС должна допускать такое разбиение на вычислительные ячейки, чтобы каждая вычислительная ячейка позволяла пользователю запускать независимые программы, включающие реализации СНС, и каждая вычислительная ячейка имела доступ к подсистеме хранения данных, при этом для каждой вычислительной ячейки может быть обеспечен объем не менее 256 Гбайт в подсистеме хранения данных;

- ВВС должна быть обеспечена ПО, удовлетворяющим требованиям настоящего стандарта.

Приложение А

(обязательное)

Поясняющие фрагменты кода для типовых слоев СНС

Приведенные в данном приложении фрагменты кодов написаны на языке С и являются поясняющими. При их написании в целях наглядности были приняты следующие условности:

- в начале каждого фрагмента объявлены массивы, используемые во фрагменте, но заполнение массивов начальными значениями опущено;

- объявления параметров слоев и других переменных опущены;

- в каждом фрагменте после объявления массивов следуют две или четыре секции, разделенные строками, начинающимися с символов "//";

- в строках, начинающихся с символов "//", указано, к какому из четырех шагов обучения относится следующая за строкой секция;

- для слоев, которые не располагают весами, не выполняется никаких действий на шагах вычисления градиента и изменения значений весов, поэтому соответствующие секции для таких слоев опущены;

- используемые во фрагментах кода данные представлены статическими многомерными массивами типа float для простоты иллюстрации; в реализации СНС способ представления данных может быть выбран произвольно;

- для корректности работы секции кода, иллюстрирующей прямой ход, необходимо, чтобы перед началом секции были заполнены начальными значениями входная карта признаков и массивы весов (в том числе фильтров и смещений);

- для корректности работы секции кода, иллюстрирующей обратный ход, необходимо, чтобы перед началом секции были заполнены начальными значениями входная карта признаков, выходная карта признаков, массив невязок, ассоциированный с выходной картой признаков, и массивы весов (в том числе фильтров и смещений);

- для корректности работы секции кода, иллюстрирующей вычисления градиента, необходимо, чтобы перед началом секции были заполнены начальными значениями входная карта признаков и массив невязок, ассоциированный с выходной картой признаков;

- для корректности работы секции кода, иллюстрирующей изменение значений весов, необходимо, чтобы перед началом секции были заполнены начальными значениями массивы весов (в том числе фильтры и смещения) и массивы соответствующих им приращений;

- прямой ход, обратный ход, вычисление градиента и изменение значений весов проиллюстрированы в одном фрагменте кода для простоты иллюстрации; в реализации СНС вычисления каждого из четырех шагов обучения выполняются совместно для всех слоев сети, при этом вычисления одного шага для всей СНС может быть отделено от вычислений другого шага для всей СНС.

Следующий фрагмент кода поясняет вычисления сверточного слоя.

float IN[B][X][Y][L];

float IN_D[B][X][Y][L];

float OUT[B][Xout][Yout][F];

float OUT_D[B][Xout][Yout][F];

float FILTERS[Rx][Ry][L][F];

float FILTERS_D[Rx][Ry][L][F];

float BIASES[F];

float BIASES_D[F];

// Прямой ход

for (b=0;b<B;b++)

for (f=0;f<F;f++)

for (x=0;x<Xout;x++)

for (y=0;y<Yout;y++) {

OUT[b][x][y][f]=BIASES[f];

for (rx=0;rx<Rx;rx++)

for (ry=0;ry<Ry;ry++)

if (x*S+rx-Px>=0)

if (y*S+ry-Py>=0)

if (x*S+rx-Px<X)

if (y*S+ry-Py<Y)

for (l=0;l<L;l++)

OUT[b][x][y][f]+=IN[b][x*S+rx-Px][y*S+ry-Py][l]*FILTERS[rx][ry][l][f];

}

// Обратный ход

for (b=0;b<B;b++)

for (l=0;l<L;l++)

for (x=0;x<X;x++)

for (y=0;y<Y;y++)

IN_D[b][x][y][l]=0;

for (b=0;b<B;b++)

for (l=0;l<L;l++)

for (x=0;x<Xout;x++)

for (y=0;y<Yout;y++)

for (rx=0;rx<Rx;rx++)

for (ry=0;ry<Ry;ry++)

if (x*S+rx-Px>=0)

if (y*S+ry-Py>=0)

if (x*S+rx-Px<X)

if (y*S+ry-Py<Y)

for (f=0;f<F;f++)

IN_D[b][x*S+rx-Px][y*S+ry-Py][l]+=OUT_D[b][x][y][f]*FILTERS[rx][ry][l][f];

// Вычисление градиента

for (f=0;f<F;f++)

for (l=0;l<L;l++)

for (rx=0;rx<Rx;rx++)

for (ry=0;ry<Ry;ry++) {

FILTERS_D[rx][ry][l][f]=0;

for (b=0;b<B;b++)

for (x=0;x<Xout;x++)

for (y=0;y<Yout;y++)

if (x*S+rx-Px>=0)

if (y*S+ry-Py>=0)

if(x*S+rx-Px<X)

if (y*S+ry-Py<Y)

FILTERS_D[rx][ry][l][f]+=IN[b][x*S+rx-Px][y*S+ry-Py][l]*OUT_D[b][x][y][f|;

}

for (f=0;f<F;f++) {

BIASES_D[f]=0;

for (b=0;b<B;b++)

for (x=0;x<Xout;x++)

for (y=0;y<Yout;y++)

BIASES_D[f]+=OUT_D[b][x][y][f];

}

// Изменение значений весов

for (f=0;f<F;f++) {

BIASES[f]+=(BIASES_D[f])/B;

for (rx=0;rx<Rx; rx++)

for (ry=0;ry<Ry;ry++)

for (l=0;l<L;l++)

FILTERS[rx][ry ][l][f]+=(FILTERS_D[rx][ry][l][f])/B;

}

В последнем фрагменте IN - входная карта признаков, OUT - выходная карта признаков, FILTERS - массив фильтров, BIASES - массив смещений, IN_D - массив невязок, соответствующий входной карте признаков, OUT_D - массив невязок, соответствующий выходной карте признаков, FILTERS_D - массив приращений фильтров, BIASES_D - массив приращений смещений.

Следующий фрагмент кода поясняет вычисления слоя пулинга с операцией выбора максимального.

float IN[B][X][Y][L];

float IN_D[B][X][Y][L];

float OUT[B][Xout][Yout][L];

float OUT_D[B][Xout][Yout][L];

// Прямой ход

for (b=0;b<B;b++)

for (l=0; l<L;l++)

for (x=0;x<Xout;x++)

for (y=0;y<Yout;y++) {

FIRST=0;

for (rx=0;rx<Rx;rx++)

for (ry=0;ry<Ry;ry++)

if ((x*S+rx-Px>=0)&& (y*S+ry-Py>=0)&& if (x*S+rx-Px<X)&& if (y*S+ry-Py<Y)) {

if (FIRST==0) {

FIRST=1;

RES=IN[b][x*S+rx-Px][y*S+ry-Py][l];

} else {

if (RES<IN[b][x*S+rx-Px][y*S+ry-Py][l])

RES=IN[b][x*S+rx-Px][y*S+ry-Py][l];

}

} else {

if (FIRST==0) {

FIRST=1;

RES=0;

} else {

if (RES<0)

RES=0;

}

}

OUT[b][x][y][l]=RES;

}

// Обратный ход

for (b=0;b<B;b++)

for (l=0;l<L;l++)

for (x=0;x<X;x++)

for (y=0;y<Y;y++)

IN_D[b][x][y][l]=0;

for (b=0;b<B;b++)

for (l=0; l<L;l++)

for (x=0;x<Xout;x++)

for (y=0;y<Yout;y++)

for (rx=0;rx<Rx;rx++)

for (ry=0;ry<Ry;ry++)

if ((x*S+rx-Px>=0)&& (y*S+ry-Py>=0)&& if (x*S+rx-Px<X)&& if (y*S+ry-Py<Y))

if (IN[b][x*S+rx-Px][y*S+ry-Py][l]==OUT[b][x][y][l])

IN_D[b][x*S+rx-Px][y*S+ry-Py][l]+=OUT_D[b][x][y][l];

Следующий фрагмент кода поясняет вычисления слоя пулинга с операцией вычисления среднего.

float IN[B][X][Y][L];

float IN_D[B][X][Y][L];

float OUT[B][Xout][Yout][L];

float OUT_D[B][Xout][Yout][L];

// Прямой ход

for (b=0;b<B;b++)

for (l=0; l<L;l++)

for (x=0;x<Xout;x++)

for (y=0;y<Yout;y++) {

RES=0;

for (rx=0;rx<Rx;rx++)

for (ry=0;ry<Ry;ry++)

if (x*S+rx-Px>=0)

if (y*S+ry-Py>=0)

if (x*S+rx-Px<X)

if (y*S+ry-Py<Y)

RES+=IN[b][x*S+rx-Px][y*S+ry-Py][l];

OUT[b][x][y][l]=RES/(float)(Rx*Ry);

}

// Обратный ход

for (b=0;b<B;b++)

for (l=0; l<L;l++)

for (x=0;x<X;x++)

for (y=0;y<Y;y++)

IN_D[b][x][y][l]=0;

for (b=0;b<B;b++)

for (l=0; l<L;l++)

for (x=0;x<Xout;x++)

for (y=0;y<Yout;y++)

for (rx=0;rx<Rx;rx++)

for (ry=0;ry<Ry;ry++)

if ((x*S+rx-Px>=0)&& (y*S+ry-Py>=0)&& if (x*S+rx-Px<X)&& if (y*S+ry-Py<Y))

IN_D[b][x*S+rx-Px][y*S+ry-Py][l]+=(OUT_D[b][x][y][l]/(float)(Rx*Ry));

В последних двух фрагментах IN - входная карта признаков, OUT - выходная карта признаков, IN_D - массив невязок, соответствующий входной карте признаков, OUT_D - массив невязок, соответствующий выходной карте признаков.

Следующий фрагмент кода поясняет вычисления слоя ректификации

float IN[B][X][Y][L];

float IN_D[B][X][Y][L];

float OUT[B][X][Y][L];

float OUT_D[B][X][Y][L];

// Прямой ход

for (b=0;b<B;b++)

for (x=0;x<X;x++)

for (y=0;y<Y;y++)

for (l=0;l<L;l++)

if (IN[b][x][y][l]>0)

OUT[b][x][y][l]=IN[b][x][y][l];

else

OUT[b][x][y][l]=0;

// Обратный ход

for (b=0;b<B;b++)

for (x=0;x<X;x++)

for (y=0;y<Y;y++)

for (l=0;l<L;l++)

if (IN[b][x][y][l]>0)

IN_D[b][x][y][l]=OUT_D[b][x][y][l];

else

IN_D[b][x][y][l]=0;

В последнем фрагменте IN - входная карта признаков, OUT - выходная карта признаков, IN_D - массив невязок, соответствующий входной карте признаков, OUT_D - массив невязок, соответствующий выходной карте признаков.

Следующий фрагмент кода поясняет вычисления слоя склейки.

float IN1[B][X][Y][L1];

float IN1_D[B][X][Y][L1];

float IN2[B][X][Y][L2];

float IN2_D[B][X][Y][L2];

float OUT[B][X][Y][L1+L2];

float OUT_D[B][X][Y][L1+L2];

// Прямой ход

for (b=0;b<B;b++)

for (x=0;x<X;x++)

for (y=0;y<Y;y++) {

for (l=0;l<L1;l++)

OUT[b][x][y][l]=IN1[b][x][y][l];

for (l=0;l<L2;l++)

OUT[b][x][y][l+L1]=IN2[b][x][y][l];

}

// Обратный ход

for (b=0;b<B;b++)

for (x=0;x<X;x++)

for (y=0;y<Y;y++) {

for (l=0;l<L1;l++)

IN1_D[b][x][y][l]=OUT_D[b][x][y][l];

for (l=0;l<L2;l++)

IN2_D[b][x][y][l]=OUT_D[b][x][y][l+L1];

}

В последнем фрагменте IN1 и IN2 - входные карты признаков, OUT - выходная карта признаков, IN1_D и IN2_D - массивы невязок, соответствующие входным картам признаков, OUT_D - массив невязок, соответствующий выходной карте признаков.

Следующий фрагмент кода поясняет вычисления слоя расщепления.

float IN[B][X][Y][L];

float IN_D[B][X][Y][L];

float OUT1[B][X][Y][L1];

float OUT1_D[B][X][Y][L1];

float OUT2[B][X][Y][L-L1];

float OUT2_D[B][X][Y][L-L1];

// Прямой ход

for (b=0;b<B;b++)

for (x=0;x<X;x++)

for (y=0;y<Y;y++) {

for (l=0;l<L1;l++)

OUT1[b][x][y][l]=IN[b][x][y][l];

for (l=0;l<L-L1;l++)

OUT2[b][x][y][l]=IN[b][x][y][L1+l];

}

// Обратный ход

for (b=0;b<B;b++)

for (x=0;x<X;x++)

for (y=0;y<Y;y++) {

for (l=0;l<L1;l++)

IN_D[b][x][y][l]=OUT1_D[b][x][y][l];

for (l=0;l<L-L1;l++)

IN_D[b][x][y][L1+l]=OUT2_D[b][x][y][l];

}

В последнем фрагменте IN - входная карта признаков, OUT1 и OUT2 - выходные карты признаков, IND - массив невязок, соответствующий входной карте признаков, OUT1_D и OUT2_D - массивы невязок, соответствующие выходным картам признаков.

Следующий фрагмент кода поясняет вычисления поканального сверточного слоя.

float IN[B][X][Y][L];

float IN_D[B][X][Y][L];

float OUT[B][Xout][Yout][L];

float OUT_D[B][Xout][Yout][L];

float FILTERS[Rx][Ry][L];

float FILTERS_D[Rx][Ry][L];

float BIASES[F];

float BIASES_D[L];

// Прямой ход

for (b=0;b<B;b++)

for (l=0;l<L;l++)

for (x=0;x<Xout;x++)

for (y=0;y<Yout;y++) {

OUT[b][x][y][l]=BIASES[f];

for (rx=0;rx<Rx;rx++)

for (ry=0;ry<Ry;ry++)

if (x*S+rx-Px>=0)

if (y*S+ry-Py>=0)

if (x*S+rx-Px<X)

if (y*S+ry-Py<Y)

OUT[b][x][y][l]+=IN[b][x*S+rx-Px][y*S+ry-Py][l]*FILTERS[rx][ry][l];

}

// Обратный ход

for (b=0;b<B;b++)

for (l=0;l<L;l++)

for (x=0;x<X;x++)

for (y=0;y<Y;y++)

IN_D[b][x][y][l]=0;

for (b=0;b<B;b++)

for (l=0;l<L;l++)

for (x=0;x<Xout;x++)

for (y=0;y<Yout;y++)

for (rx=0;rx<Rx;rx++)

for (ry=0;ry<Ry;ry++)

if (x*S+rx-Px>=0)

if (y*S+ry-Py>=0)

if (x*S+rx-Px<X)

if (y*S+ry-Py<Y)

IN_D[b][x*S+rx-Px][y*S+ ry-Py][l]+=OUT_D[b][x][y][l]*FILTERS[rx][ry][l];

// Вычисление значений градиента

for (l=0;l<L;l++)

for (rx=0;rx<Rx;rx++)

for (ry=0;ry<Ry;ry++) {

FILTERS_D[rx][ry][l]=0;

for (b=0;b<B;b++)

for (x=0;x<Xout;x++)

for (y=0;y<Yout;y++)

if (x*S+rx-Px>=0)

if (y*S+ry-Py>=0)

if (x*S+rx-Px<X)

if (y*S+ry-Py<Y)

FILTERS_D[rx][ry][l]+=IN[b][x*S+rx-Px][y*S+ry-Py][l]*OUT_D[b][x][y][l];

}

for (l=0;l<L;l++) {

BIASES_D[I]=0;

for (b=0;b<B;b++)

for (x=0;x<Xout;x++)

for (y=0;y<Yout;y++)

BIASES_D[l]+=OUT_D[b][x][y][l];

}

// Изменение значений весов

for (l=0;l<L;l++) {

BIASES[I]+=(BIASES_D[I])/B;

for (rx=0;rx<Rx;rx++)

for (ry=0;ry<Ry;ry++)

FILTERS[rx][ry][l]+=(FILTERS_D[rx][ry][l])/B;

}

В последнем фрагменте IN - входная карта признаков, OUT - выходная карта признаков, FILTERS - массив фильтров, BIASES - массив смещений, IN_D - массив невязок, соответствующий входной карте признаков, OUT_D - массив невязок, соответствующий выходной карте признаков, FILTERS_D - массив приращений фильтров, BIASES_D - массив приращений смещений.

Следующий фрагмент кода поясняет вычисления поэлементного слоя.

float IN1[B][X][Y][L];

float IN1_D[B][X][Y][L];

float IN2[B][X][Y][L];

float IN2_D[B][X][Y][L];

float OUT[B][X][Y][L];

float OUT_D[B][X][Y][L];

// Прямой ход

for (b=0;b<B;b++)

for (x=0;x<X;x++)

for (y=0;y<Y;y++)

for (l=0;l<L;l++)

OUT[b][x][y][l]=IN1[b][x][y][l]+IN2[b][x][y][l];

// Обратный ход

for (b=0;b<B;b++)

for (x=0;x<X;x++)

for (y=0;y<Y;y++)

for (l=0;l<L;l++) {

IN1_D[b][x][y][l]=OUT_D[b][x][y][l];

IN2_D[b][x][y][l]=OUT_D[b][x][y][l];

}

В последнем фрагменте IN1 и IN2 - входные карты признаков, OUT - выходная карта признаков, IN1_D и IN2_D - массивы невязок, соответствующие входным картам признаков, OUT_D - массив невязок, соответствующий выходной карте признаков.

Следующий фрагмент кода поясняет вычисления полносвязного слоя.

float IN[B][X][Y][L];

float IN_D[B][X][Y][L];

float OUT[B][F];

float OUT_D[B][F];

float WEIGHTS[F][L];

float WEIGHTS_D[F][L][X][Y];

float BIASES[F];

float BIASES_D[F];

// Прямой ход

for (b=0;b<B;b++)

for (f=0;f<F;f++) {

OUT[b][f]=BIASES[f];

for (x=0;x<X;x++)

for (y=0;y<Y;y++)

for (l=0; l<L;l++)

OUT[b][f]+=IN[b][x][y][l]*WEIGHTS[f][l][x][y];

}

// Обратный ход

for (b=0;b<B;b++)

for (x=0;x<X;x++)

for (y=0;y<Y;y++)

for (l=0; l<L;l++) {

IN_D[b][x][y][l]=0;

for (f=0; f<F;f++)

IN_D[b][x][y][l]+=OUT_D[b][f]*WEIGHTS[f][l][x][y];

}

// Вычисления значений градиента

for (f=0;f<F;f++) {

BIASES_D[f]=OUT D[b][f];

for (x=0;x<X;x++)

for (y=0;y<Y;y++)

for (l=0;l<L;l++)

WEIGHTS_D[f][l][x][y]=0;

for (b=0;b<B;b++)

for (x=0;x<X;x++)

for (y=0;y<Y;y++)

for (l=0; l<L;l++)

WEIGHTS_D[f][l][x][y]+=IN[b][x][y][l]*OUT_D[b][f];

}

// Изменение значений весов

for (f=0;f<F;f++) {

BIASES[f]+=(BIASES_D[f])/B;

for (x=0;x<X;x++)

for (y=0;y<Y;y++)

for (l=0;l<L;l++)

WEIGHTS[f][l][x][y]+=(WEIGHTS_D[f][l][x][y])/B;

}

В последнем фрагменте IN - входная карта признаков, OUT - выходная карта признаков, WEIGHTS - массив весов, BIASES - массив смещений, IN_D - массив невязок, соответствующий входной карте признаков, OUT_D - массив невязок, соответствующий выходной карте признаков, WEIGHTS_D - массив приращений весов, BIASES_D - массив приращений смещений.

Следующий фрагмент кода поясняет вычисления слоя перемешивания.

float IN[B][X][Y][L];

float IN_D[B][X][Y][L];

float OUT[B][X][Y][L];

float OUT_D[B][X][Y][L];

// Прямой ход

for (b=0;b<B;b++)

for (l=0;l<L;l++) {

f=(l/(L/G))+G*(l%(L/G));

for (x=0;x<X;x++)

for (y=0;y<Y;y++)

OUT[b][x][y][f]=IN[b][x][y][l];

}

// Обратный ход

for (b=0;b<B;b++)

for (l=0;l<L;l++) {

f=(l/(L/G))+G*(l%(L/G));

for (x=0;x<X;x++)

for (y=0;y<Y;y++)

IN_D[b][x][y][l]=OUT_D[b][x][y][f];

}

В последнем фрагменте IN - входная карта признаков, OUT - выходная карта признаков, IN_D - массив невязок, соответствующий входной карте признаков, OUT_D - массив невязок, соответствующий выходной карте признаков.

Приложение Б

(обязательное)

Параметры типовых сверточных нейронных сетей

Таблица Б.1 - СНС "М"

Номер п/п

Тип

Вх1

Вх2

1

Св.

0

-

224

224

3

-

32

-

3

2

1

-

2

Рект.

1

-

112

112

32

-

32

-

-

-

-

-

3

Пк.Св.

2

-

112

112

32

-

32

-

3

1

1

-

4

Рект.

3

-

112

112

32

-

32

-

-

-

-

-

5

Св.

4

-

112

112

32

-

64

-

1

1

0

-

6

Рект.

5

-

112

112

64

-

64

-

-

-

-

-

7

Пк.Св.

6

-

112

112

64

-

64

-

3

2

1

-

8

Рект.

7

-

56

56

64

-

64

-

-

-

-

-

9

Св.

8

-

56

56

64

-

128

-

1

1

0

-

10

Рект.

9

-

56

56

128

-

128

-

-

-

-

-

11

Пк.Св.

10

-

56

56

128

-

128

-

3

1

1

-

12

Рект.

11

-

56

56

128

-

128

-

-

-

-

-

13

Св.

12

-

56

56

128

-

128

-

1

1

0

-

14

Рект.

13

-

56

56

128

-

128

-

-

-

-

-

15

Пк.Св.

14

-

56

56

128

-

128

-

3

2

1

-

16

Рект.

15

-

28

28

128

-

128

-

-

-

-

-

17

Св.

16

-

28

28

128

-

256

-

1

1

0

-

18

Рект.

17

-

28

28

256

-

256

-

-

-

-

-

19

Пк.Св.

18

-

28

28

256

-

256

-

3

1

1

-

20

Рект.

19

-

28

28

256

-

256

-

-

-

-

-

21

Св.

20

-

28

28

256

-

256

-

1

1

0

-

22

Рект.

21

-

28

28

256

-

256

-

-

-

-

-

23

Пк.Св.

22

-

28

28

256

-

256

-

3

2

1

-

24

Рект.

23

-

14

14

256

-

256

-

-

-

-

-

25

Св.

24

-

14

14

256

-

504

-

1

1

0

-

26

Рект.

25

-

14

14

504

-

504

-

-

-

-

-

27

Пк.Св.

26

-

14

14

504

-

504

-

3

1

1

-

28

Рект.

27

-

14

14

504

-

504

-

-

-

-

-

29

Св.

28

-

14

14

504

-

504

-

1

1

0

-

30

Рект.

29

-

14

14

504

-

504

-

-

-

-

-

31

Пк.Св.

30

-

14

14

504

-

504

-

3

1

1

-

32

Рект.

31

-

14

14

504

-

504

-

-

-

-

-

33

Св.

32

-

14

14

504

-

512

-

1

1

0

-

34

Рект.

33

-

14

14

512

-

512

-

-

-

-

-

35

Пк.Св.

34

-

14

14

512

-

512

-

3

1

1

-

36

Рект.

35

-

14

14

512

-

512

-

-

-

-

-

37

Св.

36

-

14

14

512

-

512

-

1

1

0

-

38

Рект.

37

-

14

14

512

-

512

-

-

-

-

-

39

Пк.Св.

38

-

14

14

512

-

512

-

3

1

1

-

40

Рект.

39

-

14

14

512

-

512

-

-

-

-

-

41

Св.

40

-

14

14

512

-

504

-

1

1

0

-

42

Рект.

41

-

14

14

504

-

504

-

-

-

-

-

43

Пк.Св.

42

-

14

14

504

-

504

-

3

1

1

-

44

Рект.

43

-

14

14

504

-

504

-

-

-

-

-

45

Св.

44

-

14

14

504

-

504

-

1

1

0

-

46

Рект.

45

-

14

14

504

-

504

-

-

-

-

-

47

Пк.Св.

46

-

14

14

504

-

504

-

3

2

1

-

48

Рект.

47

-

7

7

504

-

504

-

-

-

-

-

49

Св.

48

-

7

7

504

-

1024

-

1

1

0

-

50

Рект.

49

-

7

7

1024

-

1024

-

-

-

-

-

51

Пк.Св.

50

-

7

7

1024

-

1024

-

3

1

1

-

52

Рект.

51

-

7

7

1024

-

1024

-

-

-

-

-

53

Св.

52

-

7

7

1024

-

1024

-

1

1

0

-

54

Рект.

53

-

7

7

1024

-

1024

-

-

-

-

-

55

Пул.

54

-

7

7

1024

-

1024

-

7

1

0

-

Таблица Б.2 - СНС "Г"

Номер п/п

Тип

Вх1

Вх2

1

Св.

0

-

224

224

3

-

64

-

7

2

3

-

2

Рект.

1

-

112

112

64

-

64

-

-

-

-

-

3

Пул.

2

-

112

112

64

-

64

-

3

2

1

-

4

Св.

3

-

56

56

64

-

64

-

1

1

0

-

5

Рект.

4

-

56

56

64

-

64

-

-

-

-

-

6

Св.

5

-

56

56

64

-

192

-

3

1

1

-

7

Рект.

6

-

56

56

192

-

192

-

-

-

-

-

8

Пул.

7

-

56

56

192

-

192

-

3

2

1

-

9

Св.

8

-

28

28

192

-

64

-

1

1

0

-

10

Рект.

9

-

28

28

64

-

64

-

-

-

-

-

11

Св.

8

-

28

28

192

-

96

-

1

1

0

-

12

Рект.

11

-

28

28

96

-

96

-

-

-

-

-

13

Св.

12

-

28

28

96

-

128

-

3

1

1

-

14

Рект.

13

-

28

28

128

-

128

-

-

-

-

-

15

Скл.

10

14

28

28

64

128

192

-

-

-

-

-

16

Св.

8

-

28

28

192

-

16

-

1

1

0

-

17

Рект.

16

-

28

28

16

-

16

-

-

-

-

-

18

Св.

17

-

28

28

16

-

32

-

5

1

2

-

19

Рект.

18

-

28

28

32

-

32

-

-

-

-

-

20

Скл.

15

19

28

28

192

32

224

-

-

-

-

-

21

Пул.

8

-

28

28

192

-

192

-

3

1

1

-

22

Св.

21

-

28

28

192

-

32

-

1

1

0

-

23

Рект.

22

-

28

28

32

-

32

-

-

-

-

-

24

Скл.

20

23

28

28

224

32

256

-

-

-

-

-

25

Св.

24

-

28

28

256

-

128

-

1

1

0

-

26

Рект.

25

-

28

28

128

-

128

-

-

-

-

-

27

Св.

24

-

28

28

256

-

128

-

1

1

0

-

28

Рект.

27

-

28

28

128

-

128

-

-

-

-

-

29

Св.

28

-

28

28

128

-

192

-

3

1

1

-

30

Рект.

29

-

28

28

192

-

192

-

-

-

-

-

31

Скл.

26

30

28

28

128

192

320

-

-

-

-

-

32

Св.

24

-

28

28

256

-

32

-

1

1

0

-

33

Рект.

32

-

28

28

32

-

32

-

-

-

-

-

34

Св.

33

-

28

28

32

-

96

-

5

1

2

-

35

Рект.

34

-

28

28

96

-

96

-

-

-

-

-

36

Скл.

31

35

28

28

320

96

416

-

-

-

-

-

37

Пул.

24

-

28

28

256

-

256

-

3

1

1

-

38

Св.

37

-

28

28

256

-

64

-

1

1

0

-

39

Рект.

38

-

28

28

64

-

64

-

-

-

-

-

40

Скл.

36

39

28

28

416

64

480

-

-

-

-

-

41

Пул.

40

-

28

28

480

-

480

-

3

2

1

-

42

Св.

41

-

14

14

480

-

192

-

1

1

0

-

43

Рект.

42

-

14

14

192

-

192

-

-

-

-

-

44

Св.

41

-

14

14

480

-

96

-

1

1

0

-

45

Рект.

44

-

14

14

96

-

96

-

-

-

-

-

46

Св.

45

-

14

14

96

-

208

-

3

1

1

-

47

Рект.

46

-

14

14

208

-

208

-

-

-

-

-

48

Скл.

43

47

14

14

192

208

400

-

-

-

-

-

49

Св.

41

-

14

14

480

-

16

-

1

1

0

-

50

Рект.

49

-

14

14

16

-

16

-

-

-

-

-

51

Св.

50

-

14

14

16

-

48

-

5

1

2

-

52

Рект.

51

-

14

14

48

-

48

-

-

-

-

-

53

Скл.

48

52

14

14

400

48

448

-

-

-

-

-

54

Пул.

41

-

14

14

480

-

480

-

3

1

1

-

55

Св.

54

-

14

14

480

-

64

-

1

1

0

-

56

Рект.

55

-

14

14

64

-

64

-

-

-

-

-

57

Скл.

53

56

14

14

448

64

512

-

-

-

-

-

58

Св.

57

-

14

14

512

-

160

-

1

1

0

-

59

Рект.

58

-

14

14

160

-

160

-

-

-

-

-

60

Св.

57

-

14

14

512

-

112

-

1

1

0

-

61

Рект.

60

-

14

14

112

-

112

-

-

-

-

-

62

Св.

61

-

14

14

112

-

224

-

3

1

1

-

63

Рект.

62

-

14

14

224

-

224

-

-

-

-

-

64

Скл.

59

63

14

14

160

224

384

-

-

-

-

-

65

Св.

57

-

14

14

512

-

24

-

1

1

0

-

66

Рект.

65

-

14

14

24

-

24

-

-

-

-

-

67

Св.

66

-

14

14

24

-

64

-

5

1

2

-

68

Рект.

67

-

14

14

64

-

64

-

-

-

-

-

69

Скл.

64

68

14

14

384

64

448

-

-

-

-

-

70

Пул.

57

-

14

14

512

-

512

-

3

1

1

-

71

Св.

70

-

14

14

512

-

64

-

1

1

0

-

72

Рект.

71

-

14

14

64

-

64

-

-

-

-

-

73

Скл.

69

72

14

14

448

64

512

-

-

-

-

-

74

Св.

73

-

14

14

512

-

128

-

1

1

0

-

75

Рект.

74

-

14

14

128

-

128

-

-

-

-

-

76

Св.

73

-

14

14

512

-

128

-

1

1

0

-

77

Рект.

76

-

14

14

128

-

128

-

-

-

-

-

78

Св.

77

-

14

14

128

-

256

-

3

1

1

-

79

Рект.

78

-

14

14

256

-

256

-

-

-

-

-

80

Скл.

75

79

14

14

128

256

384

-

-

-

-

-

81

Св.

73

-

14

14

512

-

24

-

1

1

0

-

82

Рект.

81

-

14

14

24

-

24

-

-

-

-

-

83

Св.

82

-

14

14

24

-

64

-

5

1

2

-

84

Рект.

83

-

14

14

64

-

64

-

-

-

-

-

85

Скл.

80

84

14

14

384

64

448

-

-

-

-

-

86

Пул.

73

-

14

14

512

-

512

-

3

1

1

-

87

Св.

86

-

14

14

512

-

64

-

1

1

0

-

88

Рект.

87

-

14

14

64

-

64

-

-

-

-

-

89

Скл.

85

88

14

14

448

64

512

-

-

-

-

-

90

Св.

89

-

14

14

512

-

112

-

1

1

0

-

91

Рект.

90

-

14

14

112

-

112

-

-

-

-

-

92

Св.

89

-

14

14

512

-

144

-

1

1

0

-

93

Рект.

92

-

14

14

144

-

144

-

-

-

-

-

94

Св.

93

-

14

14

144

-

288

-

3

1

1

-

95

Рект.

94

-

14

14

288

-

288

-

-

-

-

-

96

Скл.

91

95

14

14

112

288

400

-

-

-

-

-

97

Св.

89

-

14

14

512

-

32

-

1

1

0

-

98

Рект.

97

-

14

14

32

-

32

-

-

-

-

-

99

Св.

98

-

14

14

32

-

64

-

5

1

2

-

100

Рект.

99

-

14

14

64

-

64

-

-

-

-

-

101

Скл.

96

100

14

14

400

64

464

-

-

-

-

-

102

Пул.

89

-

14

14

512

-

512

-

3

1

1

-

103

Св.

102

-

14

14

512

-

64

-

1

1

0

-

104

Рект.

103

-

14

14

64

-

64

-

-

-

-

-

105

Скл.

101

104

14

14

464

64

528

-

-

-

-

-

106

Св.

105

-

14

14

528

-

256

-

1

1

0

-

107

Рект.

106

-

14

14

256

-

256

-

-

-

-

-

108

Св.

105

-

14

14

528

-

160

-

1

1

0

-

109

Рект.

108

-

14

14

160

-

160

-

-

-

-

-

110

Св.

109

-

14

14

160

-

320

-

3

1

1

-

111

Рект.

110

-

14

14

320

-

320

-

-

-

-

-

112

Скл.

107

111

14

14

256

320

576

-

-

-

-

-

113

Св.

105

-

14

14

528

-

32

-

1

1

0

-

114

Рект.

113

-

14

14

32

-

32

-

-

-

-

-

115

Св.

114

-

14

14

32

-

128

-

5

1

2

-

116

Рект.

115

-

14

14

128

-

128

-

-

-

-

-

117

Скл.

112

116

14

14

576

128

704

-

-

-

-

-

118

Пул.

105

-

14

14

528

-

528

-

3

1

1

-

119

Св.

118

-

14

14

528

-

128

-

1

1

0

-

120

Рект.

119

-

14

14

128

-

128

-

-

-

-

-

121

Скл.

117

120

14

14

704

128

832

-

-

-

-

-

122

Пул.

121

-

14

14

832

-

832

-

3

2

1

-

123

Св.

122

-

7

7

832

-

256

-

1

1

0

-

124

Рект.

123

-

7

7

256

-

256

-

-

-

-

-

125

Св.

122

-

7

7

832

-

160

-

1

1

0

-

126

Рект.

125

-

7

7

160

-

160

-

-

-

-

-

127

Св.

126

-

7

7

160

-

320

-

3

1

1

-

128

Рект.

127

-

7

7

320

-

320

-

-

-

-

-

129

Скл.

124

128

7

7

256

320

576

-

-

-

-

-

130

Св.

122

-

7

7

832

-

32

-

1

1

0

-

131

Рект.

130

-

7

7

32

-

32

-

-

-

-

-

132

Св.

131

-

7

7

32

-

128

-

5

1

2

-

133

Рект.

132

-

7

7

128

-

128

-

-

-

-

-

134

Скл.

129

133

7

7

576

128

704

-

-

-

-

-

135

Пул.

122

-

7

7

832

-

832

-

3

1

1

-

136

Св.

135

-

7

7

832

-

128

-

1

1

0

-

137

Рект.

136

-

7

7

128

-

128

-

-

-

-

-

138

Скл.

134

137

7

7

704

128

832

-

-

-

-

-

139

Св.

138

-

7

7

832

-

384

-

1

1

0

-

140

Рект.

139

-

7

7

384

-

384

-

-

-

-

-

141

Св.

138

-

7

7

832

-

192

-

1

1

0

-

142

Рект.

141

-

7

7

192

-

192

-

-

-

-

-

143

Св.

142

-

7

7

192

-

384

-

3

1

1

-

144

Рект.

143

-

7

7

384

-

384

-

-

-

-

-

145

Скл.

140

144

7

7

384

384

768

-

-

-

-

-

146

Св.

138

-

7

7

832

-

48

-

1

1

0

-

147

Рект.

146

-

7

7

48

-

48

-

-

-

-

-

148

Св.

147

-

7

7

48

-

128

-

5

1

2

-

149

Рект.

148

-

7

7

128

-

128

-

-

-

-

-

150

Скл.

145

149

7

7

768

128

896

-

-

-

-

-

151

Пул.

138

-

7

7

832

-

832

-

3

1

1

-

152

Св.

151

-

7

7

832

-

128

-

1

1

0

-

153

Рект.

152

-

7

7

128

-

128

-

-

-

-

-

154

Скл.

150

153

7

7

896

128

1024

-

-

-

-

-

155

Пул.

154

-

7

7

1024

-

1024

-

7

1

0

-

156

Полн.

155

-

1

1

1024

-

1000

-

-

-

-

-

Таблица Б.3 - СНС "В"

Номер п/п

Тип

Вх1

Вх2

1

Св.

0

-

224

224

3

-

64

-

3

1

1

-

2

Рект.

1

-

224

224

64

-

64

-

-

-

-

-

3

Св.

2

-

224

224

64

-

64

-

3

1

1

-

4

Рект.

3

-

224

224

64

-

64

-

-

-

-

-

5

Пул.

4

-

224

224

64

-

64

-

2

2

0

-

6

Св.

5

-

112

112

64

-

128

-

3

1

1

-

7

Рект.

6

-

112

112

128

-

128

-

-

-

-

-

8

Св.

7

-

112

112

128

-

128

-

3

1

1

-

9

Рект.

8

-

112

112

128

-

128

-

-

-

-

-

10

Пул.

9

-

112

112

128

-

128

-

2

2

0

-

11

Св.

10

-

56

56

128

-

256

-

3

1

1

-

12

Рект.

11

-

56

56

256

-

256

-

-

-

-

-

13

Св.

12

-

56

56

256

-

256

-

3

1

1

-

14

Рект.

13

-

56

56

256

-

256

-

-

-

-

-

15

Св.

14

-

56

56

256

-

256

-

3

1

1

-

16

Рект.

15

-

56

56

256

-

256

-

-

-

-

-

17

Пул.

16

-

56

56

256

-

256

-

2

2

0

-

18

Св.

17

-

28

28

256

-

512

-

3

1

1

-

19

Рект.

18

-

28

28

512

-

512

-

-

-

-

-

20

Св.

19

-

28

28

512

-

512

-

3

1

1

-

21

Рект.

20

-

28

28

512

-

512

-

-

-

-

-

22

Св.

21

-

28

28

512

-

512

-

3

1

1

-

23

Рект.

22

-

28

28

512

-

512

-

-

-

-

-

24

Пул.

23

-

28

28

512

-

512

-

2

2

0

-

25

Св.

24

-

14

14

512

-

512

-

3

1

1

-

26

Рект.

25

-

14

14

512

-

512

-

-

-

-

-

27

Св.

26

-

14

14

512

-

512

-

3

1

1

-

28

Рект.

27

-

14

14

512

-

512

-

-

-

-

-

29

Св.

28

-

14

14

512

-

512

-

3

1

1

-

30

Рект.

29

-

14

14

512

-

512

-

-

-

-

-

31

Пул.

30

-

14

14

512

-

512

-

2

2

0

-

32

Полн.

31

-

7

7

512

-

4096

-

-

-

-

-

33

Рект.

32

-

1

1

4096

-

4096

-

-

-

-

-

34

Полн.

33

-

1

1

4096

-

4096

-

-

-

-

-

35

Рект.

34

-

1

1

4096

-

4096

-

-

-

-

-

36

Полн.

35

-

1

1

4096

-

1000

-

-

-

-

-

Таблица Б.4 - СНС "С"

Номер п/п

Тип

Вх1

Вх2

1

Св.

0

-

227

227

3

-

96

-

7

2

0

-

2

Рект.

1

-

111

111

96

-

96

-

-

-

-

-

3

Пул.

2

-

111

111

96

-

96

-

3

2

0

-

4

Св.

3

-

55

55

96

-

16

-

1

1

0

-

5

Рект.

4

-

55

55

16

-

16

-

-

-

-

-

6

Св.

5

-

55

55

16

-

64

-

1

1

0

-

7

Рект.

6

-

55

55

64

-

64

-

-

-

-

-

8

Св.

5

-

55

55

16

-

64

-

3

1

1

-

9

Рект.

8

-

55

55

64

-

64

-

-

-

-

-

10

Скл.

7

9

55

55

64

64

128

-

-

-

-

-

11

Св.

10

-

55

55

128

-

16

-

1

1

0

-

12

Рект.

11

-

55

55

16

-

16

-

-

-

-

-

13

Св.

12

-

55

55

16

-

64

-

1

1

0

-

14

Рект.

13

-

55

55

64

-

64

-

-

-

-

-

15

Св.

12

-

55

55

16

-

64

-

3

1

1

-

16

Рект.

15

-

55

55

64

-

64

-

-

-

-

-

17

Скл.

14

16

55

55

64

64

128

-

-

-

-

-

18

Св.

17

-

55

55

128

-

32

-

1

1

0

-

19

Рект.

18

-

55

55

32

-

32

-

-

-

-

-

20

Св.

19

-

55

55

32

-

128

-

1

1

0

-

21

Рект.

20

-

55

55

128

-

128

-

-

-

-

-

22

Св.

19

-

55

55

32

-

128

-

3

1

1

-

23

Рект.

22

-

55

55

128

-

128

-

-

-

-

-

24

Скл.

21

23

55

55

128

128

256

-

-

-

-

-

25

Пул.

24

-

55

55

256

-

256

-

3

2

0

-

26

Св.

25

-

27

27

256

-

32

-

1

1

0

-

27

Рект.

26

-

27

27

32

-

32

-

-

-

-

-

28

Св.

27

-

27

27

32

-

128

-

1

1

0

-

29

Рект.

28

-

27

27

128

-

128

-

-

-

-

-

30

Св.

27

-

27

27

32

-

128

-

3

1

1

-

31

Рект.

30

-

27

27

128

-

128

-

-

-

-

-

32

Скл.

29

31

27

27

128

128

256

-

-

-

-

-

33

Св.

32

-

27

27

256

-

48

-

1

1

0

-

34

Рект.

33

-

27

27

48

-

48

-

-

-

-

-

35

Св.

34

-

27

27

48

-

192

-

1

1

0

-

36

Рект.

35

-

27

27

192

-

192

-

-

-

-

-

37

Св.

34

-

27

27

48

-

192

-

3

1

1

-

38

Рект.

37

-

27

27

192

-

192

-

-

-

-

-

39

Скл.

36

38

27

27

192

192

384

-

-

-

-

-

40

Св.

39

-

27

27

384

-

48

-

1

1

0

-

41

Рект.

40

-

27

27

48

-

48

-

-

-

-

-

42

Св.

41

-

27

27

48

-

192

-

1

1

0

-

43

Рект.

42

-

27

27

192

-

192

-

-

-

-

-

44

Св.

41

-

27

27

48

-

192

-

3

1

1

-

45

Рект.

44

-

27

27

192

-

192

-

-

-

-

-

46

Скл.

43

45

27

27

192

192

384

-

-

-

-

-

47

Св.

46

-

27

27

384

-

64

-

1

1

0

-

48

Рект.

47

-

27

27

64

-

64

-

-

-

-

-

49

Св.

48

-

27

27

64

-

256

-

1

1

0

-

50

Рект.

49

-

27

27

256

-

256

-

-

-

-

-

51

Св.

48

-

27

27

64

-

256

-

3

1

1

-

52

Рект.

51

-

27

27

256

-

256

-

-

-

-

-

53

Скл.

50

52

27

27

256

256

512

-

-

-

-

-

54

Пул.

53

-

27

27

512

-

512

-

3

2

0

-

55

Св.

54

-

13

13

512

-

64

-

1

1

0

-

56

Рект.

55

-

13

13

64

-

64

-

-

-

-

-

57

Св.

56

-

13

13

64

-

256

-

1

1

0

-

58

Рект.

57

-

13

13

256

-

256

-

-

-

-

-

59

Св.

56

-

13

13

64

-

256

-

3

1

1

-

60

Рект.

59

-

13

13

256

-

256

-

-

-

-

-

61

Скл.

58

60

13

13

256

256

512

-

-

-

-

-

62

Св.

61

-

13

13

512

-

1000

-

1

1

0

-

63

Рект.

62

-

13

13

1000

-

1000

-

-

-

-

-

64

Пул.

63

-

13

13

1000

-

1000

-

13

1

0

-

Таблица Б.5 - СНС "Р"

Номер п/п

Тип

Вх1

Вх2

1

Св.

0

-

224

224

3

-

64

-

7

2

3

-

2

Рект.

1

-

112

112

64

-

64

-

-

-

-

-

3

Пул.

2

-

112

112

64

-

64

-

3

2

1

-

4

Св.

3

-

56

56

64

-

64

-

1

1

0

-

5

Св.

3

-

56

56

64

-

64

-

3

1

1

-

6

Рект.

5

-

56

56

64

-

64

-

-

-

-

-

7

Св.

6

-

56

56

64

-

64

-

3

1

1

-

8

Поэл.

4

7

56

56

64

64

64

-

-

-

-

-

9

Рект.

8

-

56

56

64

-

64

-

-

-

-

-

10

Св.

9

-

56

56

64

-

64

-

3

1

1

-

11

Рект.

10

-

56

56

64

-

64

-

-

-

-

-

12

Св.

11

-

56

56

64

-

64

-

3

1

1

-

13

Поэл.

9

12

56

56

64

64

64

-

-

-

-

-

14

Рект.

13

-

56

56

64

-

64

-

-

-

-

-

15

Св.

14

-

56

56

64

-

64

-

3

1

1

-

16

Рект.

15

-

56

56

64

-

64

-

-

-

-

-

17

Св.

16

-

56

56

64

-

64

-

3

1

1

-

18

Поэл.

14

17

56

56

64

64

64

-

-

-

-

-

19

Рект.

18

-

56

56

64

-

64

-

-

-

-

-

20

Св.

19

-

56

56

64

-

128

-

1

2

0

-

21

Св.

19

-

56

56

64

-

128

-

3

2

1

-

22

Рект.

21

-

28

28

128

-

128

-

-

-

-

-

23

Св.

22

-

28

28

128

-

128

-

3

1

1

-

24

Поэл.

20

23

28

28

128

128

128

-

-

-

-

-

25

Рект.

24

-

28

28

128

-

128

-

-

-

-

-

26

Св.

25

-

28

28

128

-

128

-

3

1

1

-

27

Рект.

26

-

28

28

128

-

128

-

-

-

-

-

28

Св.

27

-

28

28

128

-

128

-

3

1

1

-

29

Поэл.

25

28

28

28

128

128

128

-

-

-

-

-

30

Рект.

29

-

28

28

128

-

128

-

-

-

-

-

31

Св.

30

-

28

28

128

-

128

-

3

1

1

-

32

Рект.

31

-

28

28

128

-

128

-

-

-

-

-

33

Св.

32

-

28

28

128

-

128

-

3

1

1

-

34

Поэл.

30

33

28

28

128

128

128

-

-

-

-

-

35

Рект.

34

-

28

28

128

-

128

-

-

-

-

-

36

Св.

35

-

28

28

128

-

128

-

3

1

1

-

37

Рект.

36

-

28

28

128

-

128

-

-

-

-

-

38

Св.

37

-

28

28

128

-

128

-

3

1

1

-

39

Поэл.

35

38

28

28

128

128

128

-

-

-

-

-

40

Рект.

39

-

28

28

128

-

128

-

-

-

-

-

41

Св.

40

-

28

28

128

-

256

-

1

2

0

-

42

Св.

40

-

28

28

128

-

256

-

3

2

1

-

43

Рект.

42

-

14

14

256

-

256

-

-

-

-

-

44

Св.

43

-

14

14

256

-

256

-

3

1

1

-

45

Поэл.

41

44

14

14

256

256

256

-

-

-

-

-

46

Рект.

45

-

14

14

256

-

256

-

-

-

-

-

47

Св.

46

-

14

14

256

-

256

-

3

1

1

-

48

Рект.

47

-

14

14

256

-

256

-

-

-

-

-

49

Св.

48

-

14

14

256

-

256

-

3

1

1

-

50

Поэл.

46

49

14

14

256

256

256

-

-

-

-

-

51

Рект.

50

-

14

14

256

-

256

-

-

-

-

-

52

Св.

51

-

14

14

256

-

256

-

3

1

1

-

53

Рект.

52

-

14

14

256

-

256

-

-

-

-

-

54

Св.

53

-

14

14

256

-

256

-

3

1

1

-

55

Поэл.

51

54

14

14

256

256

256

-

-

-

-

-

56

Рект.

55

-

14

14

256

-

256

-

-

-

-

-

57

Св.

56

-

14

14

256

-

256

-

3

1

1

-

58

Рект.

57

-

14

14

256

-

256

-

-

-

-

-

59

Св.

58

-

14

14

256

-

256

-

3

1

1

-

60

Поэл.

56

59

14

14

256

256

256

-

-

-

-

-

61

Рект.

60

-

14

14

256

-

256

-

-

-

-

-

62

Св.

61

-

14

14

256

-

256

-

3

1

1

-

63

Рект.

62

-

14

14

256

-

256

-

-

-

-

-

64

Св.

63

-

14

14

256

-

256

-

3

1

1

-

65

Поэл.

61

64

14

14

256

256

256

-

-

-

-

-

66

Рект.

65

-

14

14

256

-

256

-

-

-

-

-

67

Св.

66

-

14

14

256

-

256

-

3

1

1

-

68

Рект.

67

-

14

14

256

-

256

-

-

-

-

-

69

Св.

68

-

14

14

256

-

256

-

3

1

1

-

70

Поэл.

66

69

14

14

256

256

256

-

-

-

-

-

71

Рект.

70

-

14

14

256

-

256

-

-

-

-

-

72

Св.

71

-

14

14

256

-

512

-

1

2

0

-

73

Св.

71

-

14

14

256

-

512

-

3

2

1

-

74

Рект.

73

-

7

7

512

-

512

-

-

-

-

-

75

Св.

74

-

7

7

512

-

512

-

3

1

1

-

76

Поэл.

72

75

7

7

512

512

512

-

-

-

-

-

77

Рект.

76

-

7

7

512

-

512

-

-

-

-

-

78

Св.

77

-

7

7

512

-

512

-

3

1

1

-

79

Рект.

78

-

7

7

512

-

512

-

-

-

-

-

80

Св.

79

-

7

7

512

-

512

-

3

1

1

-

81

Поэл.

77

80

7

7

512

512

512

-

-

-

-

-

82

Рект.

81

-

7

7

512

-

512

-

-

-

-

-

83

Св.

82

-

7

7

512

-

512

-

3

1

1

-

84

Рект.

83

-

7

7

512

-

512

-

-

-

-

-

85

Св.

84

-

7

7

512

-

512

-

3

1

1

-

86

Поэл.

82

85

7

7

512

512

512

-

-

-

-

-

87

Рект.

86

-

7

7

512

-

512

-

-

-

-

-

88

Пул.

87

-

7

7

512

-

512

-

7

1

0

-

89

Полн.

88

-

1

1

512

-

1000

-

-

-

-

-

Таблица Б.6 - СНС "Ш"

Номер п/п

Тип

Вх1

Вх2

1

Св.

0

-

224

224

3

-

24

-

3

2

1

-

2

Рект.

1

-

112

112

24

-

24

-

-

-

-

-

3

Пул.

2

-

112

112

24

-

24

-

3

2

1

-

4

Пк.Св.

3

-

56

56

24

-

24

-

3

2

1

-

5

Св.

4

-

28

28

24

-

58

-

1

1

0

-

6

Рект.

5

-

28

28

58

-

58

-

-

-

-

-

7

Св.

3

-

56

56

24

-

58

-

1

1

0

-

8

Рект.

7

-

56

56

58

-

58

-

-

-

-

-

9

Пк.Св.

8

-

56

56

58

-

58

-

3

2

1

-

10

Св.

9

-

28

28

58

-

58

-

1

1

0

-

11

Рект.

10

-

28

28

58

-

58

-

-

-

-

-

12

Скл.

6

11

28

28

58

58

116

-

-

-

-

-

13

Пер.

12

-

28

28

116

-

116

-

-

-

-

2

14

Расщ.

13

-

28

28

116

-

58

58

-

-

-

-

15

Св.

14.1

-

28

28

58

-

58

-

1

1

0

-

16

Рект.

15

-

28

28

58

-

58

-

-

-

-

-

17

Пк.Св.

16

-

28

28

58

-

58

-

3

1

1

-

18

Св.

17

-

28

28

58

-

58

-

1

1

0

-

19

Рект.

18

-

28

28

58

-

58

-

-

-

-

-

20

Скл.

14.2

19

28

28

58

58

116

-

-

-

-

-

21

Пер.

20

-

28

28

116

-

116

-

-

-

-

2

22

Расщ.

21

-

28

28

116

-

58

58

-

-

-

-

23

Св.

22.1

-

28

28

58

-

58

-

1

1

0

-

24

Рект.

23

-

28

28

58

-

58

-

-

-

-

-

25

Пк.Св.

24

-

28

28

58

-

58

-

3

1

1

-

26

Св.

25

-

28

28

58

-

58

-

1

1

0

-

27

Рект.

26

-

28

28

58

-

58

-

-

-

-

-

28

Скл.

22.2

27

28

28

58

58

116

-

-

-

-

-

29

Пер.

28

-

28

28

116

-

116

-

-

-

-

2

30

Расщ.

29

-

28

28

116

-

58

58

-

-

-

-

31

Св.

30.1

-

28

28

58

-

58

-

1

1

0

-

32

Рект.

31

-

28

28

58

-

58

-

-

-

-

-

33

Пк.Св.

32

-

28

28

58

-

58

-

3

1

1

-

34

Св.

33

-

28

28

58

-

58

-

1

1

0

-

35

Рект.

34

-

28

28

58

-

58

-

-

-

-

-

36

Скл.

30.2

35

28

28

58

58

116

-

-

-

-

-

37

Пер.

36

-

28

28

116

-

116

-

-

-

-

2

38

Пк.Св.

37

-

28

28

116

-

116

-

3

2

1

-

39

Св.

38

-

14

14

116

-

116

-

1

1

0

-

40

Рект.

39

-

14

14

116

-

116

-

-

-

-

-

41

Св.

37

-

28

28

116

-

116

-

1

1

0

-

42

Рект.

41

-

28

28

116

-

116

-

-

-

-

-

43

Пк.Св.

42

-

28

28

116

-

116

-

3

2

1

-

44

Св.

43

-

14

14

116

-

116

-

1

1

0

-

45

Рект.

44

-

14

14

116

-

116

-

-

-

-

-

46

Скл.

40

45

14

14

116

116

232

-

-

-

-

-

47

Пер.

46

-

14

14

232

-

232

-

-

-

-

2

48

Расщ.

47

-

14

14

232

-

116

116

-

-

-

-

49

Св.

48.1

-

14

14

116

-

116

-

1

1

0

-

50

Рект.

49

-

14

14

116

-

116

-

-

-

-

-

51

Пк.Св.

50

-

14

14

116

-

116

-

3

1

1

-

52

Св.

51

-

14

14

116

-

116

-

1

1

0

-

53

Рект.

52

-

14

14

116

-

116

-

-

-

-

-

54

Скл.

48.2

53

14

14

116

116

232

-

-

-

-

-

55

Пер.

54

-

14

14

232

-

232

-

-

-

-

2

56

Расщ.

55

-

14

14

232

-

116

116

-

-

-

-

57

Св.

56.1

-

14

14

116

-

116

-

1

1

0

-

58

Рект.

57

-

14

14

116

-

116

-

-

-

-

-

59

Пк.Св.

58

-

14

14

116

-

116

-

3

1

1

-

60

Св.

59

-

14

14

116

-

116

-

1

1

0

-

61

Рект.

60

-

14

14

116

-

116

-

-

-

-

-

62

Скл.

56.2

61

14

14

116

116

232

-

-

-

-

-

63

Пер.

62

-

14

14

232

-

232

-

-

-

-

2

64

Расщ.

63

-

14

14

232

-

116

116

-

-

-

-

65

Св.

64.1

-

14

14

116

-

116

-

1

1

0

-

66

Рект.

65

-

14

14

116

-

116

-

-

-

-

-

67

Пк.Св.

66

-

14

14

116

-

116

-

3

1

1

-

68

Св.

67

-

14

14

116

-

116

-

1

1

0

-

69

Рект.

68

-

14

14

116

-

116

-

-

-

-

-

70

Скл.

64.2

69

14

14

116

116

232

-

-

-

-

-

71

Пер.

70

-

14

14

232

-

232

-

-

-

-

2

72

Расщ.

71

-

14

14

232

-

116

116

-

-

-

-

73

Св.

72.1

-

14

14

116

-

116

-

1

1

0

-

74

Рект.

73

-

14

14

116

-

116

-

-

-

-

-

75

Пк.Св.

74

-

14

14

116

-

116

-

3

1

1

-

76

Св.

75

-

14

14

116

-

116

-

1

1

0

-

77

Рект.

76

-

14

14

116

-

116

-

-

-

-

-

78

Скл.

72.2

77

14

14

116

116

232

-

-

-

-

-

79

Пер.

78

-

14

14

232

-

232

-

-

-

-

2

80

Расщ.

79

-

14

14

232

-

116

116

-

-

-

-

81

Св.

80.1

-

14

14

116

-

116

-

1

1

0

-

82

Рект.

81

-

14

14

116

-

116

-

-

-

-

-

83

Пк.Св.

82

-

14

14

116

-

116

-

3

1

1

-

84

Св.

83

-

14

14

116

-

116

-

1

1

0

-

85

Рект.

84

-

14

14

116

-

116

-

-

-

-

-

86

Скл.

80.2

85

14

14

116

116

232

-

-

-

-

-

87

Пер.

86

-

14

14

232

-

232

-

-

-

-

2

88

Расщ.

87

-

14

14

232

-

116

116

-

-

-

-

89

Св.

88.1

-

14

14

116

-

116

-

1

1

0

-

90

Рект.

89

-

14

14

116

-

116

-

-

-

-

-

91

Пк.Св.

90

-

14

14

116

-

116

-

3

1

1

-

92

Св.

91

-

14

14

116

-

116

-

1

1

0

-

93

Рект.

92

-

14

14

116

-

116

-

-

-

-

-

94

Скл.

88.2

93

14

14

116

116

232

-

-

-

-

-

95

Пер.

94

-

14

14

232

-

232

-

-

-

-

2

96

Расщ.

95

-

14

14

232

-

116

116

-

-

-

-

97

Св.

96.1

-

14

14

116

-

116

-

1

1

0

-

98

Рект.

97

-

14

14

116

-

116

-

-

-

-

-

99

Пк.Св.

98

-

14

14

116

-

116

-

3

1

1

-

100

Св.

99

-

14

14

116

-

116

-

1

1

0

-

101

Рект.

100

-

14

14

116

-

116

-

-

-

-

-

102

Скл.

96.2

101

14

14

116

116

232

-

-

-

-

-

103

Пер.

102

-

14

14

232

-

232

-

-

-

-

2

104

Пк.Св.

103

-

14

14

232

-

232

-

3

2

1

-

105

Св.

104

-

7

7

232

-

232

-

1

1

0

-

106

Рект.

105

-

7

7

232

-

232

-

-

-

-

-

107

Св.

103

-

14

14

232

-

232

-

1

1

0

-

108

Рект.

107

-

14

14

232

-

232

-

-

-

-

-

109

Пк.Св.

108

-

14

14

232

-

232

-

3

2

1

-

110

Св.

109

-

7

7

232

-

232

-

1

1

0

-

111

Рект.

110

-

7

7

232

-

232

-

-

-

-

-

112

Скл.

106

111

7

7

232

232

464

-

-

-

-

-

113

Пер.

112

-

7

7

464

-

464

-

-

-

-

2

114

Расщ.

113

-

7

7

464

-

232

232

-

-

-

-

115

Св.

114.1

-

7

7

232

-

232

-

1

1

0

-

116

Рект.

115

-

7

7

232

-

232

-

-

-

-

-

117

Пк.Св.

116

-

7

7

232

-

232

-

3

1

1

-

118

Св.

117

-

7

7

232

-

232

-

1

1

0

-

119

Рект.

118

-

7

7

232

-

232

-

-

-

-

-

120

Скл.

114.2

119

7

7

232

232

464

-

-

-

-

-

121

Пер.

120

-

7

7

464

-

464

-

-

-

-

2

122

Расщ.

121

-

7

7

464

-

232

232

-

-

-

-

123

Св.

122.1

-

7

7

232

-

232

-

1

1

0

-

124

Рект.

123

-

7

7

232

-

232

-

-

-

-

-

125

Пк.Св.

124

-

7

7

232

-

232

-

3

1

1

-

126

Св.

125

-

7

7

232

-

232

-

1

1

0

-

127

Рект.

126

-

7

7

232

-

232

-

-

-

-

-

128

Скл.

122.2

127

7

7

232

232

464

-

-

-

-

-

129

Пер.

128

-

7

7

464

-

464

-

-

-

-

2

130

Расщ.

129

-

7

7

464

-

232

232

-

-

-

-

131

Св.

130.1

-

7

7

232

-

232

-

1

1

0

-

132

Рект.

131

-

7

7

232

-

232

-

-

-

-

-

133

Пк.Св.

132

-

7

7

232

-

232

-

3

1

1

-

134

Св.

133

-

7

7

232

-

232

-

1

1

0

-

135

Рект.

134

-

7

7

232

-

232

-

-

-

-

-

136

Скл.

130.2

135

7

7

232

232

464

-

-

-

-

-

137

Пер.

136

-

7

7

464

-

464

-

-

-

-

2

138

Св.

137

-

7

7

464

-

1024

-

1

1

0

-

139

Рект.

138

-

7

7

1024

-

1024

-

-

-

-

-

140

Пул.

139

-

7

7

1024

-

1024

-

7

1

0

-

Примечание к таблицам Б.1-Б.6 - В данных таблицах использованы следующие обозначения:

Св.

- сверточный слой;

Рект.

- слой ректификации;

Пк.Св.

- поканальный сверточный слой;

Пул.

- слой пулинга;

Полн.

- полносвязный слой;

Скл.

- слой склейки;

Пер.

- слой перемешивания;

Расщ.

- слой расщепления;

Поэл.

- поэлементный слой.

УДК 004:006.354

ОКС 35.240.50

Ключевые слова: высокопроизводительная вычислительная система, сверточные нейронные сети, оценка производительности