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

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

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

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

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

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

Сетью распознавания логотипа (LogoNet) является MATLAB® разработанная идентификационная сеть логотипа. Для получения дополнительной информации смотрите Сеть Распознавания Логотипа.

Серийная сетьДаДаДаДаДаДаКлассификация
DigitsNet

Сеть классификации цифр. Смотрите Создают Простую сеть глубокого обучения для Классификации

Серийная сетьДаДаДаДаДаДаКлассификация
Детектор линий разметки

Сверточная нейронная сеть LaneNet. Для получения дополнительной информации смотрите, Развертывают Сеть Передачи обучения для Обнаружения Маршрута.

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

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

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

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

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

Cверточная нейронная сеть DarkNet-19. Для предварительно обученного даркнета 19 моделей смотрите darknet19.

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

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

Deep Learning HDL Toolbox поддерживает слои, перечисленные в этих таблицах.

Входные слои

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

imageInputLayer

SW

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

Да. Запуски как один тип данных в SW.

Свертки и полносвязные слои

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

convolution2dLayer

HWСвертка (Conv)

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

При генерации кода для сети с помощью этого слоя применяются эти ограничения:

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

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

  • Дополнение размера должно быть в области значений 0-8.

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

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

Да

groupedConvolution2dLayer

HWСвертка (Conv)

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

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

При генерации кода для сети с помощью этого слоя применяются эти ограничения:

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

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

  • Дополнение размера должно быть в области значений 0-8.

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

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

  • Входной номер функции должен быть больше одного кратного квадратный корень из ConvThreadNumber.

  • Когда NumGroups не установлен как 'channel-wise', количество фильтров на группу должно быть кратным квадратному корню из ConvThreadNumber.

Да

fullyConnectedLayer

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

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

При генерации кода для сети с помощью этого слоя применяются эти ограничения:

  • Размер ввода и вывода слоя ограничивается значениями, заданными в InputMemorySize и OutputMemorySize.

Да

Слои активации

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

reluLayer

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

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

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

  • Свертка

  • Полностью соединенный

  • Сумматор

Да

leakyReluLayer

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

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

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

  • Свертка

  • Полностью соединенный

  • Сумматор

Да

clippedReluLayer

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

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

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

  • Свертка

  • Полностью соединенный

  • Сумматор

Да

Нормализация, уволенный и слои обрезки

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

batchNormalizationLayer

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

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

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

Да

crossChannelNormalizationLayer

HWСвертка (Conv)

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

WindowChannelSize должен быть в области значений 3-9 для генерации кода.

Да. Запуски как один тип данных в HW.

dropoutLayer

NoOP на выводеNoOP на выводе

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

Да

Объединение и необъединение слоев

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

maxPooling2dLayer

HWСвертка (Conv)

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

При генерации кода для сети с помощью этого слоя применяются эти ограничения:

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

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

  • Дополнение размера должно быть в области значений 0-2.

Да

averagePooling2dLayer

HWСвертка (Conv)

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

При генерации кода для сети с помощью этого слоя применяются эти ограничения:

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

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

  • Дополнение размера должно быть в области значений 0-2.

Да

globalAveragePooling2dLayer

HWСвертка (Conv) или Полностью соединенный (FC). Когда входной размер активации ниже, чем порог памяти, выходной формат слоя является FC.

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

При генерации кода для сети с помощью этого слоя применяются эти ограничения:

  • Может принять входные параметры размеров до 15 15 N.

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

Да

Слои комбинации

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

additionLayer

HWНаследуйтесь входу.

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

Вы можете теперь сгенерированный код для этого слоя с int8 тип данных, когда слой объединен со слоем Leaky ReLU или Clipped ReLU.

При генерации кода для сети с помощью этого слоя применяются эти ограничения:

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

Да

depthConcatenationLayer

HWНаследуйтесь входу.

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

При генерации кода для сети с помощью этого слоя применяются эти ограничения:

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

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

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

Да

Выведите слой

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

softmax

SW и HW

softmax слой применяет функцию softmax к входу.

Если softmax слой реализован в оборудовании:

  • Входные параметры должны быть в области значений exp(-87) к exp(88).

  • Слой Softmax, сопровождаемый слоем сумматора или слоем конкатенации глубины, не поддерживается.

Да. Запуски как один тип данных в SW.

classificationLayer

SW

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

Да

regressionLayer

SW

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

Да

Keras и ONNX Layers

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

Сгладьте активации на 1D слои, принимающие C-стиль (упорядоченный по строкам) порядок.

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

Да

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

Нулевой дополнительный слой для 2D входа.

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

Да

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

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

  • Xilinx Zynq®- 7 000 ZC706

  • Intel Arria® 10 SoC

  • Xilinx Zynq UltraScale +™ MPSoC ZCU102

Сторонние инструменты синтеза и поддержка версии

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

  • Набор проекта Xilinx Vivado 2020.1

  • Intel Куарт главные 18.1

Похожие темы