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

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

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

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

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

Последовательная сетьДаДаДаДаДаДаКлассификация
LogoNet

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

Последовательная сетьДаДаДаДаДаДаКлассификация
MNIST

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

Последовательная сетьДаДаДаДаДаДаКлассификация
Обнаружение маршрута

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

Последовательная сетьДаДаДаДаДаДаКлассификация
VGG-16

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

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

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

Последовательная сетьНет. Сеть превышает размер памяти PL DDRНет. Сеть превышает размер памяти модуля 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), основаннаяНет. Сеть превышает размер памяти PL DDR.Нет. Сеть превышает размер памяти PL DDR.ДаДаДаДаКлассификация
ResNet-18ResNet-18 сверточную нейронную сеть. Для предварительно обученной модели ResNet-18 смотрите resnet18.Ориентированная сеть ациклического графика (DAG), основаннаяДа ДаДаДаДаКлассификация
ResNet-50ResNet-50 сверточную нейронную сеть. Для предварительно обученной модели ResNet-50 смотрите resnet50.Ориентированная сеть ациклического графика (DAG), основаннаяНет. Сеть превышает размер памяти PL DDR.Нет. Сеть превышает размер памяти PL DDR.ДаДаДаДаКлассификация
YOLO v2 на основе ResNetВы смотрите только один раз (YOLO) является детектором объектов, который декодирует предсказания от сверточной нейронной сети и генерирует ограничительные рамки вокруг объектов. Для получения дополнительной информации смотрите Обнаружение транспортных средств с использованием DAG Network Based YOLO v2 Deployed to FPGA.Ориентированная сеть ациклического графика (DAG), основаннаяДаДаДаДаДаДаОбнаружение объектов
MobileNetV2MobileNet-v2 сверточную нейронную сеть. Для предварительно обученной модели MobileNet-v2 смотрите mobilenetv2.Ориентированная сеть ациклического графика (DAG), основаннаяДаДаДаНетНетНетКлассификация

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

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

Входные слои

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

imageInputLayer

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

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

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

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

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

convolution2dLayer

HWСвертка (Conv)

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

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

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

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

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

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

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

Да

groupedConvolution2dLayer

HWСвертка (Conv)

Сгруппированный 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)

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

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

  • Вход и выходных параметров слоя ограничен значениями, заданными в 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)

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

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

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

dropoutLayer

NoOP при выводеNoOP при выводе

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

Да

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

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

maxPooling2dLayer

HWСвертка (Conv)

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

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

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

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

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

Да

averagePooling2dLayer

HWСвертка (Conv)

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

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

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

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

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

Да

globalAveragePooling2dLayer

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

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

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

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

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

Да

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

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

additionLayer

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

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

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

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

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

Да

depthConcatenationLayer

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

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

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

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

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

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

Нет

Выходной слой

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

softmax

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

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

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

classificationLayer

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

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

Да

regressionLayer

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

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

Да

Слои Keras и ONNX

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

Сплющите активации в 1-D слои в порядке C-стиля (основная строка).

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

Да

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

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

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

Да

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

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

  • Xilinx Zynq®- 7 000 ZC706.

  • Программа Intel Arria® 10 СнК.

  • Xilinx Zynq UltraScale+™ MPSoC ZCU102.

Поддержка сторонних Инструментов и версий

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

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

  • Intel Quartus Prime 18.1

Похожие темы