ГОСТ Р 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.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 Краткое описание слоя
Ширину и высоту выходной карты признаков вычисляют по формулам:
|
Примечания
1 Встречаются также описания сверточного слоя, содержащие дополнительные параметры помимо описанных выше параметров. При этом слой также можно классифицировать как сверточный, если найдется набор значений дополнительных параметров, при фиксации которых слой выполняет те же вычисления, что и сверточный слой.
2 Как правило, СНС содержат от нескольких единиц до нескольких сотен сверточных слоев.
6.2 Слой пулинга
6.2.1 Общие сведения
Слой пулинга (англ. pooling layer) применяется в СНС для уменьшения ширины и высоты карт признаков, используемых в СНС.
6.2.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 Иногда поканальный сверточный слой описывается как модификация сверточного слоя или как сверточный слой с определенными ограничениями на параметры.
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 Для обозначения полносвязного слоя иногда используются термины "dense", "inner product", реже "linear".
2 Как правило, СНС содержат не более трех полносвязных слоев, расположенных последовательно друг за другом.
6.9 Слой перемешивания
6.9.1 Общие сведения
Слой перемешивания (англ. shuffle layer) используется в СНС для придания им определенных свойств.
6.9.2 Краткое описание слоя
Примечания
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;
- создается эталонная реализация СНС, при этом для СНС, описанных в настоящем стандарте, эталонная реализация СНС создается согласно описанию, приведенному в настоящем стандарте;
- если условия задачи, в интересах которой создана верифицируемая реализация СНС, допускают погрешности вычислений, и для этих погрешностей вычислений можно аналитически определить максимально допустимое значение СКО, то задается значение СКОП, равное максимально допустимому значению СКО; в противном случае задается значение СКОП, равное нулю;
- если значение СКО оказалось меньше СКОП, то считается, что верифицируемая реализация СНС может считаться корректной, но эталонной считаться не может, процедура верификации завершается;
- если значение СКО оказалось не меньше СКОП, то считается, что верифицируемая реализация СНС не может считаться корректной, процедура верификации завершается.
9 Методика оценки производительности
9.1 Ключевым компонентом методики оценки производительности ВВС на алгоритмах, использующих СНС, являются тесты производительности, основанные на типовых СНС, приведенных в приложении Б.
9.2 Для обозначения теста производительности применяется специальная нотация. Схема формирования обозначения теста производительности приведена на рисунке 3.
9.3 Тест производительности для обучения применяется согласно следующим правилам:
- для теста производительности выбирается одна из шести типовых СНС;
- определяется ВВС, на которой будет запущен тест производительности; в ВВС выделяется максимально возможное число одинаковых с точки зрения программирования и доступа к общим ресурсам (дисковым накопителям, коммуникационным связям) вычислительных ячеек, содержащих основные вычислительные ресурсы ВВС;
- создается высокопроизводительная реализация выбранной для теста производительности СНС, позволяющая выполнять последовательные итерации обучения в одной вычислительной ячейке с использованием выбранного типа данных; реализация СНС должна быть верифицирована с помощью методики, описанной в разделе 8;
- для каждой вычислительной ячейки создается набор из 1000000 изображений, каждое из которых по размеру совпадает с входной картой признаков первого слоя выбранной СНС, при этом наборы, используемые разными вычислительными ячейками, не должны совпадать;
- выполняется прямой ход СНС;
- массив невязок, ассоциированный с выходной картой признаков последнего слоя СНС, заполняется любыми действительными значениями с плавающей точкой одинарной точности (float);
- выполняется обратный ход;
- для всех слоев СНС выполняется вычисление градиента и изменение значений весов;
9.4 Тест производительности для применения СНС применяется согласно следующим правилам:
- определяется ВВС, на которой будет запущен тест производительности; в ВВС выделяется максимально возможное число одинаковых с точки зрения программирования и доступа к общим ресурсам (дисковым накопителям, коммуникационным связям) вычислительных ячеек, содержащих основные вычислительные ресурсы ВВС;
- создается реализация выбранной для теста производительности СНС, позволяющая выполнять применение нейронной сети в одной вычислительной ячейке с использованием выбранного типа данных; реализация СНС должна быть верифицирована с помощью методики, описанной в разделе 8;
- произвольным образом выбирается входная карта признаков первого слоя;
- выполняется прямой ход СНС;
Таблица 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 |
Ключевые слова: высокопроизводительная вычислительная система, сверточные нейронные сети, оценка производительности |