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

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

GPU Coder™ поддерживает генерацию кода для последовательных и ориентированных ациклических графовых (DAG) сверточных нейронных сетей (CNNs или ConvNets). Можно сгенерировать код для любой обученной сверточной нейронной сети, слои которой поддерживаются для генерации кода. См. «Поддерживаемые слои». Можно обучить сверточную нейронную сеть на центральном процессоре, графическом процессоре или нескольких графических процессорах с помощью Deep Learning Toolbox™ или использовать одну из предварительно обученных сетей, перечисленных в таблице, и сгенерировать CUDA® код.

Имя сетиОписаниеcuDNNTensorRTРУКА® Вычислительная библиотека для графического процессора Мали

AlexNet

Сверточная нейронная сеть AlexNet. Для предварительно обученной модели AlexNet см. alexnet (Deep Learning Toolbox).

Синтаксис alexnet('Weights','none') не поддерживается для генерации кода.

Да

Да

Да

Сеть Каффе

Сверточные нейронные сети от Caffe. Для импорта предварительно обученной сети из Caffe смотрите importCaffeNetwork (Deep Learning Toolbox).

Да

Да

Да

Darknet-19

Darknet-19 сверточную нейронную сеть. Для получения дополнительной информации см. darknet19 (Deep Learning Toolbox).

Синтаксис darknet19('Weights','none') не поддерживается для генерации кода.

Да

Да

Да

Darknet-53

Darknet-53 сверточную нейронную сеть. для получения дополнительной информации см. darknet53 (Deep Learning Toolbox).

Синтаксис darknet53('Weights','none') не поддерживается для генерации кода.

Да

Да

Да

DeepLab v3 +

DeepLab v3 + сверточная нейронная сеть. Для получения дополнительной информации см.deeplabv3plusLayers (Computer Vision Toolbox).

Да

Да

Нет

DenseNet-201

DenseNet-201 сверточную нейронную сеть. Для предварительно обученной модели DenseNet-201 см. densenet201 (Deep Learning Toolbox).

Синтаксис densenet201('Weights','none') не поддерживается для генерации кода.

Да

Да

Да

EfficientNet-b0

EfficientNet-b0 сверточную нейронную сеть. Для предварительно обученной модели EfficientNet-b0 см. efficientnetb0 (Deep Learning Toolbox).

Синтаксис efficientnetb0('Weights','none') не поддерживается для генерации кода.

ДаДаДа

GoogLeNet

Сверточная нейронная сеть GoogLeNet. Для предварительно обученной модели GoogLeNet см. googlenet (Deep Learning Toolbox).

Синтаксис googlenet('Weights','none') не поддерживается для генерации кода.

Да

Да

Да

Inception-ResNet-v2

Inception-ResNet-v2 сверточную нейронную сеть. Для предварительно обученной модели Inception-ResNet-v2 см. inceptionresnetv2 (Deep Learning Toolbox).

Да

Да

Нет

Inception-v3

Inception-v3 сверточную нейронную сеть. Для предварительно обученной модели Inception-v3 см. inceptionv3 (Deep Learning Toolbox).

Синтаксис inceptionv3('Weights','none') не поддерживается для генерации кода.

Да

Да

Да

Mobilenet-v2

MobileNet-v2 сверточную нейронную сеть. Для предварительно обученной модели MobileNet-v2 см. mobilenetv2 (Deep Learning Toolbox).

Синтаксис mobilenetv2('Weights','none') не поддерживается для генерации кода.

Да

Да

Да

NASNet-Large

NASNet - большая сверточная нейронная сеть. Для предварительно обученной модели NASNet-Large см. nasnetlarge (Deep Learning Toolbox).

Да

Да

Нет

NASNet-Mobile

NASNet-Мобильная сверточная нейронная сеть. Для предварительно обученной модели NASNet-Mobile см. nasnetmobile (Deep Learning Toolbox).

Да

Да

Нет

ResNet

ResNet-18, ResNet-50 и ResNet-101 сверточные нейронные сети. Для предварительно обученных моделей ResNet см. resnet50 (Deep Learning Toolbox), resnet18 (Deep Learning Toolbox), и resnet101 (Deep Learning Toolbox).

Синтаксис resnetXX('Weights','none') не поддерживается для генерации кода.

Да

Да

Да

SegNet

Многоклассовая пиксельная сеть сегментации. Для получения дополнительной информации см. segnetLayers (Computer Vision Toolbox).

Да

Да

Нет

SqueezeNet

Маленькая глубокая нейронная сеть. Для предварительно обученных моделей SqueezeNet см. squeezenet (Deep Learning Toolbox).

Синтаксис squeezenet('Weights','none') не поддерживается для генерации кода.

Да

Да

Да

VGG-16

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

Синтаксис vgg16('Weights','none') не поддерживается для генерации кода.

Да

Да

Да

VGG-19

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

Синтаксис vgg19('Weights','none') не поддерживается для генерации кода.

Да

Да

Да

Xception

Xception сверточная нейронная сеть. Для предварительно обученной модели Xception см. xception (Deep Learning Toolbox).

Синтаксис xception('Weights','none') не поддерживается для генерации кода.

Да

Да

Да

YOLO v2

Вы смотрите только один раз сверточный детектор объектов на основе нейронной сети версии 2. Для получения дополнительной информации см. yolov2Layers (Computer Vision Toolbox)

Да

Да

Да

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

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

Входные слои

Имя слояОписаниеcuDNNTensorRTВычислительная библиотека ARM для графического процессора Mali

imageInputLayer (Deep Learning Toolbox)

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

Генерация кода не поддерживает 'Normalization' задается с помощью указателя на функцию.

Да

Да

Да

sequenceInputLayer (Deep Learning Toolbox)

Входной слой последовательности вводит данные последовательности в сеть.

Библиотека cuDNN поддерживает векторные и 2-D последовательности изображений. Библиотека TensorRT поддерживает только векторные входные последовательности.

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

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

Генерация кода не поддерживает 'Normalization' задается с помощью указателя на функцию.

Да

Да

Нет

featureInputLayer (Deep Learning Toolbox)

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

Да

Да

Да

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

Имя слояОписаниеcuDNNTensorRTВычислительная библиотека ARM для графического процессора Mali

convolution2dLayer (Deep Learning Toolbox)

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

Да

Да

Да

fullyConnectedLayer (Deep Learning Toolbox)

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

Да

Да

Нет

groupedConvolution2dLayer (Deep Learning Toolbox)

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

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

Да

Да

Да

transposedConv2dLayer (Deep Learning Toolbox)

Транспонированный 2-D слой свертки преобразует функции.

Да

Да

Да

Слои последовательности

Имя слояОписаниеcuDNNTensorRTВычислительная библиотека ARM для графического процессора Mali

bilstmLayer (Deep Learning Toolbox)

Двунаправленный слой LSTM (BiLSTM) изучает двунаправленные долгосрочные зависимости между временными шагами временных рядов или данных последовательности. Эти зависимости могут быть полезны, когда необходимо, чтобы сеть училась из полных временных рядов на каждом временном шаге.

Для генерации кода, StateActivationFunction свойство должно быть установлено в 'tanh'.

Для генерации кода, GateActivationFunction свойство должно быть установлено в 'sigmoid'.

Да

Да

Нет

flattenLayer (Deep Learning Toolbox)

Плоский слой сворачивает пространственные размерности входа в размерность канала.

Да

Нет

Нет

gruLayer (Deep Learning Toolbox)

GRU слоя изучает зависимости между временными шагами во временных рядах и данными последовательности.

Генерация кода поддерживает только 'after-multiplication' и 'recurrent-bias-after-multiplication' сбросить режимы управления ключами.

Да

Да

Нет

lstmLayer (Deep Learning Toolbox)

LSTM слоя изучает долгосрочные зависимости между временными шагами во временных рядах и данными последовательности.

Для генерации кода, StateActivationFunction свойство должно быть установлено в 'tanh'.

Для генерации кода, GateActivationFunction свойство должно быть установлено в 'sigmoid'.

Да

Да

Нет

sequenceFoldingLayer (Deep Learning Toolbox)

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

Да

Нет

Нет

sequenceInputLayer (Deep Learning Toolbox)

Входной слой последовательности вводит данные последовательности в сеть.

Библиотека cuDNN поддерживает векторные и 2-D последовательности изображений. Библиотека TensorRT поддерживает только векторные входные последовательности.

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

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

Генерация кода не поддерживает 'Normalization' задается с помощью указателя на функцию.

Да

Да

Нет

sequenceUnfoldingLayer (Deep Learning Toolbox)

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

Да

Нет

Нет

wordEmbeddingLayer (Symbolic Math Toolbox)

Слой встраивания слов сопоставляет индексы слов с векторами.

Да

Да

Нет

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

Имя слояОписаниеcuDNNTensorRTВычислительная библиотека ARM для графического процессора Mali

clippedReluLayer (Deep Learning Toolbox)

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

Да

Да

Да

eluLayer (Deep Learning Toolbox)

Слой активации ELU выполняет операцию тождеств на положительных входах и экспоненциальную нелинейность на отрицательных входах.

Да

Да

Нет

leakyReluLayer (Deep Learning Toolbox)

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

Да

Да

Да

reluLayer (Deep Learning Toolbox)

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

Да

Да

Да

softplusLayer(Набор Reinforcement Learning Toolbox)

A SoftplusLayer - слой глубокой нейронной сети, который реализует активацию softplus Y = журнал (1 + eX), что гарантирует, что выход всегда положительный.

Да

Да

Нет

tanhLayer (Deep Learning Toolbox)

Слой активации гиперболического тангенса (tanh) применяет функцию tanh к входам слоя.

Да

Да

Да

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

Имя слояОписаниеcuDNNTensorRTВычислительная библиотека ARM для графического процессора Mali

batchNormalizationLayer (Deep Learning Toolbox)

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

Да

Да

Да

crop2dLayer (Deep Learning Toolbox)

Слой обрезки 2-D применяется 2-D обрезки к входу.

Да

Да

Да

crossChannelNormalizationLayer (Deep Learning Toolbox)

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

Да

Да

Да

dropoutLayer (Deep Learning Toolbox)

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

Да

Да

Да

scalingLayer(Набор Reinforcement Learning Toolbox)

Масштабный слой для сети актёра или критика.

Для генерации кода, значения для 'Scale' и 'Bias' свойства должны иметь ту же размерность.

Да

Да

Да

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

Имя слояОписаниеcuDNNTensorRTВычислительная библиотека ARM для графического процессора Mali

averagePooling2dLayer (Deep Learning Toolbox)

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

Да

Да

Да

globalAveragePooling2dLayer (Deep Learning Toolbox)

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

Да

Да

Да

globalMaxPooling2dLayer (Deep Learning Toolbox)

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

Да

Да

Да

maxPooling2dLayer (Deep Learning Toolbox)

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

Да

Да

Да

maxUnpooling2dLayer (Deep Learning Toolbox)

Максимальный слой отмены охлаждения отменяет восстановление выхода максимального слоя объединения.

Да

Да

Нет

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

Имя слояОписаниеcuDNNTensorRTВычислительная библиотека ARM для графического процессора Mali

additionLayer (Deep Learning Toolbox)

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

Да

Да

Да

concatenationLayer (Deep Learning Toolbox)

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

Да

Да

Нет

depthConcatenationLayer (Deep Learning Toolbox)

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

Да

Да

Да

Слои обнаружения объектов

Имя слояОписаниеcuDNNTensorRTВычислительная библиотека ARM для графического процессора Mali

anchorBoxLayer (Computer Vision Toolbox)

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

Да

Да

Да

focalLossLayer (Computer Vision Toolbox)

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

Да

Да

Да

spaceToDepthLayer(Набор Image Processing Toolbox)

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

Да

Да

Да

ssdMergeLayer (Computer Vision Toolbox)

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

Да

Да

Нет

rcnnBoxRegressionLayer (Computer Vision Toolbox)

Слой прямоугольной регрессии уточняет положения ограничивающих прямоугольников с помощью функции сглаживания потерь L1. Используйте этот слой для создания сети обнаружения объектов Fast или Faster R-CNN.

Да

Да

Да

rpnClassificationLayer (Computer Vision Toolbox)

Слой классификации сети предложений регионов (RPN) классифицирует области изображений как объект или фон при помощи функции потери перекрестной энтропии. Используйте этот слой для создания сети обнаружения объектов Faster R-CNN.

Да

Да

Да

YOLOv2OutputLayer (Computer Vision Toolbox)

Создайте выходной слой для сети обнаружения объектов YOLO v2.

Да

Да

Да

YOLOv2ReorgLayer (Computer Vision Toolbox)

Создайте слой реорганизации для сети обнаружения объектов YOLO v2.

Да

Да

Да

YOLOv2TransformLayer (Computer Vision Toolbox)

Создайте слой преобразования для сети обнаружения объектов YOLO v2.

Да

Да

Да

Выходные слои

Имя слояОписаниеcuDNNTensorRTВычислительная библиотека ARM для графического процессора Mali

classificationLayer (Deep Learning Toolbox)

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

Да

Да

Да

dicePixelClassificationLayer (Computer Vision Toolbox)

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

Да

Да

Да

focalLossLayer (Computer Vision Toolbox)

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

Да

Да

Да

Output Layer (Deep Learning Toolbox)

Все выходные слои, включая пользовательские слои классификации или регрессии, созданные при помощи nnet.layer.ClassificationLayer или nnet.layer.RegressionLayer.

Для примера, показывающего, как задать пользовательский выходной слой классификации и задать функцию потерь, смотрите Define Custom Classification Output Layer (Deep Learning Toolbox).

Для примера, показывающего, как задать пользовательский выходной слой регрессии и задать функцию потерь, смотрите Define Custom Regression Output Layer (Deep Learning Toolbox).

Да

Да

Да

pixelClassificationLayer (Computer Vision Toolbox)

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

Да

Да

Да

rcnnBoxRegressionLayer (Computer Vision Toolbox)

Слой прямоугольной регрессии уточняет положения ограничивающих прямоугольников с помощью функции сглаживания потерь L1. Используйте этот слой для создания сети обнаружения объектов Fast или Faster R-CNN.

Да

Да

Да

regressionLayer (Deep Learning Toolbox)

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

Да

Да

Да

rpnClassificationLayer (Computer Vision Toolbox)

Слой классификации сети предложений регионов (RPN) классифицирует области изображений как объект или фон при помощи функции потери перекрестной энтропии. Используйте этот слой для создания сети обнаружения объектов Faster R-CNN.

Да

Да

Да

sigmoidLayer (Deep Learning Toolbox)

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

Да

Да

Да

softmaxLayer (Deep Learning Toolbox)

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

Да

Да

Да

Слои Keras и ONNX

Имя слояОписаниеcuDNNTensorRTВычислительная библиотека ARM для графического процессора Mali

nnet.keras.layer.FlattenCStyleLayer (Deep Learning Toolbox)

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

Да

Да

Да

nnet.keras.layer.GlobalAveragePooling2dLayer (Deep Learning Toolbox)

Глобальный средний слой объединения пространственных данных.

Да

Да

Да

nnet.keras.layer.SigmoidLayer (Deep Learning Toolbox)

Слой активации сигмоида.

Да

Да

Да

nnet.keras.layer.TanhLayer (Deep Learning Toolbox)

Слой активации гиперболического тангенса.

Да

Да

Да

nnet.keras.layer.ZeroPadding2dLayer (Deep Learning Toolbox)

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

Да

Да

Да

nnet.onnx.layer.ElementwiseAffineLayer (Deep Learning Toolbox)

Слой, который выполняет поэлементное масштабирование входа с последующим сложением.

Да

Да

Да

nnet.onnx.layer.FlattenLayer (Deep Learning Toolbox)

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

Да

Да

Да

nnet.onnx.layer.IdentityLayer (Deep Learning Toolbox)

Слой, который реализует оператор тождеств ONNX.

Да

Да

Да

Пользовательские слои

Имя слояОписаниеcuDNNTensorRTВычислительная библиотека ARM для графического процессора Mali

Custom layers

Пользовательские слои с настраиваемыми параметрами или без них, которые вы задаете для своей задачи.

Чтобы узнать, как задать пользовательские слои глубокого обучения, смотрите Deep Learning Layers (Deep Learning Toolbox) и Define Custom Deep Learning Layer для генерации кода (Deep Learning Toolbox).

Для примера о том, как сгенерировать код для сети с пользовательскими слоями, смотрите Генерацию кода для обнаружения объектов Использование YOLO v3 Глубокое обучение.

Выходы пользовательского слоя должны быть массивами фиксированного размера.

Использование 'unified' как MallocMode в coder.gpuConfig требуются дополнительные копии памяти, что приводит к снижению эффективности. Для пользовательских слоев рекомендуется использовать 'discrete' режим. Для получения дополнительной информации о выделении памяти графический процессор смотрите Дискретный и Управляемый режимы

cuDNN-целевые системы поддерживают генерацию кода как для основной строки, так и для основного столбца для пользовательских слоев. Целевые системы TensorRT поддерживают только генерацию кода основного столбца.

Для генерации кода пользовательские слои должны содержать %#codegen прагма.

Генерация кода для сети последовательности, содержащей пользовательский слой и слой LSTM или GRU, не поддерживается.

Генерация кода для нейронной сети для глубокого обучения с пользовательским слоем не поддерживается в Simulink®.

Да

Да

Нет

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

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

ИмяОписаниеcuDNNTensorRTВычислительная библиотека ARM для графического процессора Mali
DAGNetwork (Deep Learning Toolbox)

Ориентированная сеть ациклического графика (DAG) для глубокого обучения

  • Только activations, predict, и classify поддерживаются методы.

Да

Да

Да

dlnetwork (Deep Learning Toolbox)

Нейронная сеть для глубокого обучения для пользовательских циклов обучения

  • Генерация кода поддерживает только InputNames и OutputNames свойства.

  • Генерация кода не поддерживает dlnetwork объекты без входных слоев.

  • Генерация кода для dlnetwork объекты с sequenceInputLayer объекты не поддерживаются.

  • Генерация кода поддерживает только predict функция объекта. The dlarray вход в predict метод должен быть single тип данных.

Да

Да

Нет

SeriesNetwork (Deep Learning Toolbox)

Сеть серии для глубокого обучения

  • Только activations, classify, predict, predictAndUpdateState, classifyAndUpdateState, и resetState поддерживаются функции объекта.

Да

Да

Да

ssdObjectDetector (Computer Vision Toolbox)

Объект для обнаружения объектов с помощью детектора на основе SSD.

  • Только detect (Computer Vision Toolbox) метод ssdObjectDetector поддерживается для генерации кода.

  • The roi аргумент в detect метод должен быть константой кодегена (coder.const()) и вектор 1x4.

  • Только Threshold, SelectStrongest, MinSize, MaxSize, и MiniBatchSize Поддерживаются пары «» имя-значение «». Все пары "имя-значение" должны быть константами времени компиляции.

  • Размер канала и пакета входа изображения должен быть фиксированным.

  • The labels выход возвращается как категориальный массив.

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

  • Ограничительные рамки могут не совпадать численно с результатами симуляции.

Да

Да

Нет

yolov2ObjectDetector (Computer Vision Toolbox)

Обнаружение объектов с помощью детектора объектов YOLO v2

  • Только detect (Computer Vision Toolbox) метод yolov2ObjectDetector поддерживается для генерации кода.

  • The roi аргумент в detect метод должен быть константой кодегена (coder.const()) и вектор 1x4.

  • Только Threshold, SelectStrongest, MinSize, MaxSize, и MiniBatchSize Поддерживаются пары «» имя-значение «».

  • Высота, ширина, размер канала и пакета входного изображения должны быть фиксированными.

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

  • Выход меток возвращается как массив ячеек из векторов символов, таких как {'car', 'bus'}.

Да

Да

Да

См. также

Функции

Объекты

Похожие темы