exponenta event banner

Поддерживаемые сети, слои, платы и инструменты

Поддерживаемые предварительно обученные сети

Deep Learning HDL Toolbox™ поддерживает генерацию кода для сверточных нейронных сетей серии (CNN или ConvNets). Можно создать код для любой обученной сверточной нейронной сети, вычислительные уровни которой поддерживаются для генерации кода. См. раздел Поддерживаемые слои. Вы можете использовать одну из предварительно подготовленных сетей, перечисленных в таблице, и создавать код для ваших целевых плат Intel ® или Xilinx ® FPGA.

СетьОписание сетиНапечататьОтдельный тип данных (с битовыми потоками отгрузки)INT8 тип данных (с битовыми потоками доставки)Область применения
   ZCU102ZC706Arria10 SoCZCU102ZC706Arria10 SoCКлассификация
AlexNet

Сверточная нейронная сеть AlexNet.

Сеть серииДаДаДаДаДаДаКлассификация
LogoNet

Сеть распознавания логотипов (LogoNet) - это разработанная компанией MATLAB ® сеть идентификации логотипов. Дополнительные сведения см. в разделе Сеть распознавания логотипов.

Сеть серииДаДаДаДаДаДаКлассификация
MNIST

Классификация цифр MNIST. См. раздел Создание простой сети глубокого обучения для классификации

Сеть серииДаДаДаДаДаДаКлассификация
Обнаружение полосы движения

LaneNet сверточная нейронная сеть. Дополнительные сведения см. в разделе Развертывание сети обучения переносу для определения полосы движения

Сеть серииДаДаДаДаДаДаКлассификация
VGG-16

VGG-16 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели VGG-16 см. vgg16.

Сеть серииНет. Сеть превышает размер памяти DDR PLНет. Сеть превышает размер памяти модуля FC.ДаДаНет. Сеть превышает размер памяти модуля FC.ДаКлассификация
VGG-19

VGG-19 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели VGG-19 см. vgg19 .

Сеть серииНет. Сеть превышает размер памяти DDR PLНет. Сеть превышает размер памяти модуля FC.ДаДаНет. Сеть превышает размер памяти модуля FC.ДаКлассификация
Darknet-19

Darknet-19 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели darknet-19 см. darknet19.

Сеть серииДаДаДаДаДаДаКлассификация
Классификация радаровСверточная нейронная сеть, использующая микродоплеровские сигнатуры для идентификации и классификации объекта. Дополнительные сведения см. в разделе Классификация велосипедистов и пешеходов с использованием FPGA.Сеть серииДаДаДаДаДаДаКлассификация и программно-определяемое радио (SDR)
Обнаружение дефектов snet_defnetsnet_defnet является пользовательской сетью AlexNet, используемой для выявления и классификации дефектов. Дополнительные сведения см. в разделе Обнаружение дефектов.Сеть серииДаДаДаДаДаДаКлассификация
Обнаружение дефектов snet_blemdetnetsnet_blemdetnet - пользовательская сверточная нейронная сеть, используемая для выявления и классификации дефектов. Дополнительные сведения см. в разделе Обнаружение дефектов.Сеть серииДаДаДаДаДаДаКлассификация
Обнаружение транспортных средств YOLO v2Вы смотрите только один раз (YOLO) - детектор объектов, который декодирует предсказания из сверточной нейронной сети и генерирует ограничивающие рамки вокруг объектов. Дополнительные сведения см. в разделе Обнаружение транспортных средств с помощью YOLO v2, развернутых в FPGAСетевая сеть серииДаДаДаДаДаДаОбнаружение объектов
DarkNet-53Darknet-53 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели DarkNet-53 см. darknet53.Сеть на основе направленного ациклического графа (DAG)Нет. Сеть превышает размер памяти DDR PL.Нет. Сеть превышает размер памяти DDR PL.ДаДаДаДаКлассификация
ResNet-18ResNet-18 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели ResNet-18 см. resnet18.Сеть на основе направленного ациклического графа (DAG)Да ДаДаДаДаКлассификация
ResNet-50ResNet-50 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели ResNet-50 см. resnet50.Сеть на основе направленного ациклического графа (DAG)Нет. Сеть превышает размер памяти DDR PL.Нет. Сеть превышает размер памяти DDR PL.ДаДаДаДаКлассификация
YOLO v2 на основе ResNetВы смотрите только один раз (YOLO) - детектор объектов, который декодирует предсказания из сверточной нейронной сети и генерирует ограничивающие рамки вокруг объектов. Дополнительные сведения см. в разделе Обнаружение транспортных средств с использованием сетевой базы данных YOLO v2, развернутой в FPGA.Сеть на основе направленного ациклического графа (DAG)ДаДаДаДаДаДаОбнаружение объектов
MobileNetV2MobileNet-v2 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели MobileNet-v2 см. mobilenetv2.Сеть на основе направленного ациклического графа (DAG)ДаДаДаНетНетНетКлассификация

Поддерживаемые слои

Следующие слои поддерживаются панелью инструментов Deep Learning HDL Toolbox.

Входные слои

Слой Аппаратные средства уровня (HW) или программное обеспечение (SW)Описание и ограниченияINT8 Совместимый

imageInputLayer

Коротковолновый

Уровень ввода изображения вводит 2-D изображения в сеть и применяет нормализацию данных.

Да. Выполняется как один тип данных в ПО.

Свертка и полностью соединенные слои

Слой Аппаратные средства уровня (HW) или программное обеспечение (SW)Формат вывода слоевОписание и ограниченияINT8 Совместимый

convolution2dLayer

HWСвертка (конвейер)

2-D сверточный слой применяет скользящие сверточные фильтры к входу.

Эти ограничения применяются при создании кода для сети с использованием этого уровня:

  • Размер фильтра должен быть 1-14 и квадратным. Например, [1 1] или [14 14].

  • Размер шага должен быть 1-12 и квадратным.

  • Размер заполнения должен находиться в диапазоне 0-8.

  • Коэффициент расширения должен быть [1 1].

  • Значение дополнения не поддерживается.

Да

groupedConvolution2dLayer

HWСвертка (конвейер)

2-D сгруппированный сверточный слой разделяет входные каналы на группы и применяет скользящие сверточные фильтры. Используйте сгруппированные сверточные слои для разделяемых по каналам (также называемых разделяемыми по глубине) сверток.

Создание кода теперь поддерживается для 2-D сгруппированного слоя свертки, который имеет NumGroups свойство установлено как 'channel-wise'.

Эти ограничения применяются при создании кода для сети с использованием этого уровня:

  • Размер фильтра должен быть 1-14 и квадратным. Например, [1 1] или [14 14]. Когда NumGroups устанавливается как 'channel-wise', размер фильтра должен быть 3-14.

  • Размер шага должен быть 1-12 и квадратным.

  • Размер заполнения должен находиться в диапазоне 0-8.

  • Коэффициент расширения должен быть [1 1].

  • Число групп должно быть равно 1 или 2.

Да

fullyConnectedLayer

HWПолностью подключенный (FC)

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

Эти ограничения применяются при создании кода для сети с использованием этого уровня:

  • Входной и выходной размер слоя ограничен значениями, указанными в InputMemureSize и OutputMemureSize.

Да

Уровни активации

СлойАппаратные средства уровня (HW) или программное обеспечение (SW)Формат вывода слоевОписание и ограниченияINT8 Совместимый

reluLayer

HWСлой сплавлен.

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

Уровень ReLU поддерживается только тогда, когда ему предшествует любой из следующих уровней:

  • слой свертки

  • полностью подключенный слой

  • слой сумматора

Да

leakyReluLayer

HWСлой сплавлен.

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

Протекающий уровень ReLU поддерживается только тогда, когда ему предшествует любой из следующих уровней:

  • слой свертки

  • полностью подключенный слой

  • слой сумматора

Да

clippedReluLayer

HWСлой сплавлен.

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

Подрезанный слой ReLU поддерживается только тогда, когда ему предшествует любой из следующих слоев:

  • слой свертки

  • полностью подключенный слой

  • слой сумматора

Да

Нормализация, отсев и обрезка слоев

СлойАппаратные средства уровня (HW) или программное обеспечение (SW)Формат вывода слоевОписание и ограниченияINT8 Совместимый

batchNormalizationLayer

HWСлой сплавлен.

Уровень нормализации пакета нормализует каждый входной канал в мини-пакете.

Слой пакетной нормализации поддерживается только тогда, когда ему предшествует слой свертки.

Да

crossChannelNormalizationLayer

HWСвертка (конвейер)

Канальный уровень локальной (кросс-канальной) нормализации выполняет канальную нормализацию.

WindowChannelSize должен находиться в диапазоне 3-9 для генерации кода.

Да. Выполняется как один тип данных в HW.

dropoutLayer

NoOP о выводеNoOP о выводе

Уровень отсева случайным образом устанавливает входные элементы в ноль с заданной вероятностью.

Да

Объединение в пулы и удаление из пула слоев

СлойАппаратные средства уровня (HW) или программное обеспечение (SW)Формат вывода слоевОписание и ограниченияINT8 Совместимый

maxPooling2dLayer

HWСвертка (конвейер)

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

Эти ограничения применяются при создании кода для сети с использованием этого уровня:

  • Размер бассейна должен быть 1-14 и квадратным. Например, [1 1] или [12 12].

  • Размер шага должен быть 1-7 и квадратным.

  • Размер заполнения должен быть в диапазоне 0-2.

Да

averagePooling2dLayer

HWСвертка (конвейер)

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

Эти ограничения применяются при создании кода для сети с использованием этого уровня:

  • Размер бассейна должен быть 1-14 и квадратным. Например, [3 3]

  • Размер шага должен быть 1-7 и квадратным.

  • Размер заполнения должен быть в диапазоне 0-2.

Да

globalAveragePooling2dLayer

HWСвертка (конвейер) или полное подключение (FC). Если размер активации ввода меньше порогового значения памяти, то формат вывода уровня - FC.

Уровень глобального среднего объединения выполняет выборку вниз путем вычисления среднего значения высоты и ширины входного сигнала.

Эти ограничения применяются при создании кода для сети с использованием этого уровня:

  • Значение размера пула должно находиться в диапазоне 1-14 для уровня глобального среднего пула на основе модуля конвейера и в диапазоне 1-12 для уровня глобального среднего пула на основе FC. Значение размера пула должно быть квадратным. Например, [1 1] или [12 12].

  • Общий размер пикселя активации должен быть меньше размера входной памяти модуля свертки процессора глубокого обучения. Дополнительные сведения см. в разделе InputMemureSize

Да

Комбинированные слои

СлойАппаратные средства уровня (HW) или программное обеспечение (SW)Формат вывода слоевОписание и ограниченияINT8 Совместимый

additionLayer

HWНаследовать из входных данных.

Уровень сложения добавляет входные данные от нескольких уровней нейронной сети по элементам.

Эти ограничения применяются при создании кода для сети с использованием этого уровня:

  • Максимальное количество входов в слой сложения равно двум, если тип входных данных int8.

  • Оба входных слоя должны иметь одинаковый формат выходных слоев. Например, оба слоя должны иметь выходной формат конвейера или выходной формат fc.

Да

depthConcatenationLayer

HWНаследовать из входных данных.

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

Эти ограничения применяются при создании кода для сети с использованием этого уровня:

  • Номер функции активации ввода должен быть кратен квадратному корню ConvThreadNumber.

  • Входные данные слоя конкатенации глубины должны быть исключительными для слоя конкатенации глубины.

  • Слои с выходным форматом конвейера и слои с выходным форматом FC не могут быть объединены вместе.

Нет

Уровень вывода

СлойАппаратные средства уровня (HW) или программное обеспечение (SW)Описание и ограниченияINT8 Совместимый

softmax

Коротковолновый

Уровень softmax применяет функцию softmax к входу.

Да. Выполняется как один тип данных в ПО.

classificationLayer

Коротковолновый

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

Да

regressionLayer

Коротковолновый

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

Да

Уровни Keras и ONNX

СлойАппаратные средства уровня (HW) или программное обеспечение (SW)Формат вывода слоевОписание и ограниченияINT8 Совместимый
nnet.keras.layer.FlattenCStyleLayerHWСлой будет сплавлен

Распрямление активаций на 1-D слои в соответствии с порядком C-style (строка-мажор).

A nnet.keras.layer.FlattenCStyleLayer поддерживается только тогда, когда за ним следует полностью подключенный уровень.

Да

nnet.keras.layer.ZeroPadding2dLayerHWСлой будет сплавлен.

Нулевой слой заполнения для ввода 2-D.

A nnet.keras.layer.ZeroPadding2dLayer поддерживается только тогда, когда за ним следует слой свертки или слой maxpool.

Да

Поддерживаемые платы

Эти платы поддерживаются панелью инструментов Deep Learning HDL Toolbox:

  • Xilinx Zynq ® -7000 ZC706.

  • Intel Arria ® 10 SoC.

  • Xilinx Zynq UltraScale+™ MPSoC ZCU102.

Средства синтеза сторонних производителей и поддержка версий

Deep Learning HDL Toolbox был протестирован с помощью:

  • Комплект дизайна Xilinx Vivado 2020.1

  • Intel Quartus Prime 18.1

Связанные темы