GPU Coder™ поддерживает генерацию кода для последовательных и ориентированных ациклических графовых (DAG) сверточных нейронных сетей (CNNs или ConvNets). Можно сгенерировать код для любой обученной сверточной нейронной сети, слои которой поддерживаются для генерации кода. См. «Поддерживаемые слои». Можно обучить сверточную нейронную сеть на центральном процессоре, графическом процессоре или нескольких графических процессорах с помощью Deep Learning Toolbox™ или использовать одну из предварительно обученных сетей, перечисленных в таблице, и сгенерировать CUDA® код.
Имя сети | Описание | cuDNN | TensorRT | РУКА® Вычислительная библиотека для графического процессора Мали |
---|---|---|---|---|
AlexNet | Сверточная нейронная сеть AlexNet. Для предварительно обученной модели AlexNet см. Синтаксис | Да | Да | Да |
Сеть Каффе | Сверточные нейронные сети от Caffe. Для импорта предварительно обученной сети из Caffe смотрите | Да | Да | Да |
Darknet-19 | Darknet-19 сверточную нейронную сеть. Для получения дополнительной информации см. Синтаксис | Да | Да | Да |
Darknet-53 | Darknet-53 сверточную нейронную сеть. для получения дополнительной информации см. Синтаксис | Да | Да | Да |
DeepLab v3 + | DeepLab v3 + сверточная нейронная сеть. Для получения дополнительной информации см. | Да | Да | Нет |
DenseNet-201 | DenseNet-201 сверточную нейронную сеть. Для предварительно обученной модели DenseNet-201 см. Синтаксис | Да | Да | Да |
EfficientNet-b0 | EfficientNet-b0 сверточную нейронную сеть. Для предварительно обученной модели EfficientNet-b0 см. Синтаксис | Да | Да | Да |
GoogLeNet | Сверточная нейронная сеть GoogLeNet. Для предварительно обученной модели GoogLeNet см. Синтаксис | Да | Да | Да |
Inception-ResNet-v2 | Inception-ResNet-v2 сверточную нейронную сеть. Для предварительно обученной модели Inception-ResNet-v2 см. | Да | Да | Нет |
Inception-v3 | Inception-v3 сверточную нейронную сеть. Для предварительно обученной модели Inception-v3 см. Синтаксис | Да | Да | Да |
Mobilenet-v2 | MobileNet-v2 сверточную нейронную сеть. Для предварительно обученной модели MobileNet-v2 см. Синтаксис | Да | Да | Да |
NASNet-Large | NASNet - большая сверточная нейронная сеть. Для предварительно обученной модели NASNet-Large см. | Да | Да | Нет |
NASNet-Mobile | NASNet-Мобильная сверточная нейронная сеть. Для предварительно обученной модели NASNet-Mobile см. | Да | Да | Нет |
ResNet | ResNet-18, ResNet-50 и ResNet-101 сверточные нейронные сети. Для предварительно обученных моделей ResNet см. Синтаксис | Да | Да | Да |
SegNet | Многоклассовая пиксельная сеть сегментации. Для получения дополнительной информации см. | Да | Да | Нет |
SqueezeNet | Маленькая глубокая нейронная сеть. Для предварительно обученных моделей SqueezeNet см. Синтаксис | Да | Да | Да |
VGG-16 | VGG-16 сверточную нейронную сеть. Для предварительно обученной модели VGG-16 см. Синтаксис | Да | Да | Да |
VGG-19 | VGG-19 сверточную нейронную сеть. Для предварительно обученной модели VGG-19 см. Синтаксис | Да | Да | Да |
Xception | Xception сверточная нейронная сеть. Для предварительно обученной модели Xception см. Синтаксис | Да | Да | Да |
YOLO v2 | Вы смотрите только один раз сверточный детектор объектов на основе нейронной сети версии 2. Для получения дополнительной информации см. | Да | Да | Да |
Следующие слои поддерживаются для генерации кода GPU Coder для целевых библиотек глубокого обучения, указанных в таблице.
Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Mali |
---|---|---|---|---|
| Входной слой изображений вводит 2-D изображения в сеть и применяет нормализацию данных. Генерация кода не поддерживает | Да | Да | Да |
| Входной слой последовательности вводит данные последовательности в сеть. Библиотека cuDNN поддерживает векторные и 2-D последовательности изображений. Библиотека TensorRT поддерживает только векторные входные последовательности. Для входов векторной последовательности количество функций должно быть константой во время генерации кода. Для входов последовательности изображений высота, ширина и количество каналов должны быть константой во время генерации кода. Генерация кода не поддерживает | Да | Да | Нет |
| Входной слой функций вводит данные функций в сеть и применяет нормализацию данных. | Да | Да | Да |
Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Mali |
---|---|---|---|---|
| Сверточный слой 2-D применяет сверточные фильтры скольжения к входу. | Да | Да | Да |
| A полносвязного слоя умножает вход на весовую матрицу и затем добавляет вектор смещения. | Да | Да | Нет |
| Сгруппированный 2-D сверточный слой разделяет входные каналы на группы и применяет скользящие сверточные фильтры. Используйте сгруппированные сверточные слои для разделяемой по каналу (также известной как разделяемая по глубине) свертки. Генерация кода для графического процессора ARM Mali не поддерживается для 2-D сгруппированного слоя свертки, который имеет | Да | Да | Да |
| Транспонированный 2-D слой свертки преобразует функции. | Да | Да | Да |
Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Mali |
---|---|---|---|---|
| Двунаправленный слой LSTM (BiLSTM) изучает двунаправленные долгосрочные зависимости между временными шагами временных рядов или данных последовательности. Эти зависимости могут быть полезны, когда необходимо, чтобы сеть училась из полных временных рядов на каждом временном шаге. Для генерации кода, Для генерации кода, | Да | Да | Нет |
| Плоский слой сворачивает пространственные размерности входа в размерность канала. | Да | Нет | Нет |
| GRU слоя изучает зависимости между временными шагами во временных рядах и данными последовательности. Генерация кода поддерживает только | Да | Да | Нет |
| LSTM слоя изучает долгосрочные зависимости между временными шагами во временных рядах и данными последовательности. Для генерации кода, Для генерации кода, | Да | Да | Нет |
| Слой складывания последовательности преобразует пакет последовательностей изображений в пакет изображений. Используйте слой складывания последовательности для выполнения операций свертки на временных шагах последовательностей изображений независимо. | Да | Нет | Нет |
| Входной слой последовательности вводит данные последовательности в сеть. Библиотека cuDNN поддерживает векторные и 2-D последовательности изображений. Библиотека TensorRT поддерживает только векторные входные последовательности. Для входов векторной последовательности количество функций должно быть константой во время генерации кода. Для входов последовательности изображений высота, ширина и количество каналов должны быть константой во время генерации кода. Генерация кода не поддерживает | Да | Да | Нет |
| Слой развертывания последовательности восстанавливает структуру последовательности входных данных после складывания последовательности. | Да | Нет | Нет |
| Слой встраивания слов сопоставляет индексы слов с векторами. | Да | Да | Нет |
Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Mali |
---|---|---|---|---|
| Обрезанный слой ReLU выполняет операцию порога, где любое входное значение, меньше нуля, устанавливается равным нулю, а любое значение над усечением устанавливается равным этому усечению. | Да | Да | Да |
| Слой активации ELU выполняет операцию тождеств на положительных входах и экспоненциальную нелинейность на отрицательных входах. | Да | Да | Нет |
| Утечный слой ReLU выполняет операцию порога, где любое значение входа, меньше нуля, умножается на фиксированный скаляр. | Да | Да | Да |
| Слой ReLU выполняет операцию порога каждому элементу входа, где любое значение, меньше нуля, устанавливается в ноль. | Да | Да | Да |
| A | Да | Да | Нет |
| Слой активации гиперболического тангенса (tanh) применяет функцию tanh к входам слоя. | Да | Да | Да |
Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Mali |
---|---|---|---|---|
| Слой нормализации партии . нормализует каждый входной канал через мини-пакет. | Да | Да | Да |
| Слой обрезки 2-D применяется 2-D обрезки к входу. | Да | Да | Да |
| Слой нормализации локального отклика (перекрестного канала) канала выполняет нормализацию канала. | Да | Да | Да |
| Выпадающий слой случайным образом устанавливает элементы входа для нуля с заданной вероятностью. | Да | Да | Да |
| Масштабный слой для сети актёра или критика. Для генерации кода, значения для | Да | Да | Да |
Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Mali |
---|---|---|---|---|
| Средний слой объединения выполняет понижающую дискретизацию, разделяя вход на прямоугольные области объединения и вычисляя средние значения каждой области. | Да | Да | Да |
| Глобальный средний слой объединения выполняет понижающую дискретизацию, вычисляя среднее значение размерностей высоты и ширины входа. | Да | Да | Да |
| Глобальный слой максимального объединения выполняет понижающую дискретизацию, вычисляя максимальные размерности высоты и ширины входа. | Да | Да | Да |
| Максимальный слой объединения выполняет понижающую дискретизацию, разделяя вход на прямоугольные области объединения и вычисляя максимальное значение каждой области. | Да | Да | Да |
| Максимальный слой отмены охлаждения отменяет восстановление выхода максимального слоя объединения. | Да | Да | Нет |
Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Mali |
---|---|---|---|---|
| Слой сложения добавляет входов из нескольких слоев нейронной сети поэлементно. | Да | Да | Да |
| Слой конкатенации принимает входы и конкатенирует их вдоль заданного измерения. | Да | Да | Нет |
| Слой конкатенации глубин принимает входы, которые имеют ту же высоту и ширину и конкатенирует их вдоль третьей размерности (размерность канала). | Да | Да | Да |
Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Mali |
---|---|---|---|---|
| Слой якорного ящика хранит якорные ящики для карты функций, используемой в сетях обнаружения объектов. | Да | Да | Да |
| Слой очаговых потерь предсказывает классы объектов, используя очаговые потери. | Да | Да | Да |
| Слой «пространство на глубину» переключает пространственные блоки входа в размерность глубины. Используйте этот слой, когда необходимо объединить карты функций разного размера, не отбрасывая никаких данных о функциях. | Да | Да | Да |
| Слой слияния твердотельных накопителей объединяет выходы карт функций для последующих расчетов регрессии и классификационных потерь. | Да | Да | Нет |
| Слой прямоугольной регрессии уточняет положения ограничивающих прямоугольников с помощью функции сглаживания потерь L1. Используйте этот слой для создания сети обнаружения объектов Fast или Faster R-CNN. | Да | Да | Да |
| Слой классификации сети предложений регионов (RPN) классифицирует области изображений как объект или фон при помощи функции потери перекрестной энтропии. Используйте этот слой для создания сети обнаружения объектов Faster R-CNN. | Да | Да | Да |
| Создайте выходной слой для сети обнаружения объектов YOLO v2. | Да | Да | Да |
| Создайте слой реорганизации для сети обнаружения объектов YOLO v2. | Да | Да | Да |
| Создайте слой преобразования для сети обнаружения объектов YOLO v2. | Да | Да | Да |
Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Mali |
---|---|---|---|---|
| Классификационный слой вычисляет потери перекрестной энтропии для многоклассовых задач классификации с взаимоисключающими классами. | Да | Да | Да |
| Слой классификации пикселей Dice обеспечивает категориальную метку для каждого пикселя изображения или воксель, используя обобщённый Dice Loss. | Да | Да | Да |
| Слой очаговых потерь предсказывает классы объектов, используя очаговые потери. | Да | Да | Да |
| Все выходные слои, включая пользовательские слои классификации или регрессии, созданные при помощи Для примера, показывающего, как задать пользовательский выходной слой классификации и задать функцию потерь, смотрите Define Custom Classification Output Layer (Deep Learning Toolbox). Для примера, показывающего, как задать пользовательский выходной слой регрессии и задать функцию потерь, смотрите Define Custom Regression Output Layer (Deep Learning Toolbox). | Да | Да | Да |
| Слой классификации пикселей обеспечивает категориальную метку для каждого пикселя или воксель изображения. | Да | Да | Да |
| Слой прямоугольной регрессии уточняет положения ограничивающих прямоугольников с помощью функции сглаживания потерь L1. Используйте этот слой для создания сети обнаружения объектов Fast или Faster R-CNN. | Да | Да | Да |
| Регрессионный слой вычисляет полусреднюю потерю в квадратичной невязке для проблем регрессии. | Да | Да | Да |
| Слой классификации сети предложений регионов (RPN) классифицирует области изображений как объект или фон при помощи функции потери перекрестной энтропии. Используйте этот слой для создания сети обнаружения объектов Faster R-CNN. | Да | Да | Да |
| Сигмоидный слой применяет сигмоидную функцию к входу. | Да | Да | Да |
| Слой softmax применяет функцию softmax к входу. | Да | Да | Да |
Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Mali |
---|---|---|---|---|
| Сплюсните активации в 1-D, принимающий порядок C-стиля (основная строка). | Да | Да | Да |
| Глобальный средний слой объединения пространственных данных. | Да | Да | Да |
| Слой активации сигмоида. | Да | Да | Да |
| Слой активации гиперболического тангенса. | Да | Да | Да |
| Нулевой слой заполнения для 2-D входа. | Да | Да | Да |
| Слой, который выполняет поэлементное масштабирование входа с последующим сложением. | Да | Да | Да |
| Сглаживает пространственные размерности тензора входа к размерностям канала. | Да | Да | Да |
| Слой, который реализует оператор тождеств ONNX. | Да | Да | Да |
Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Mali |
---|---|---|---|---|
| Пользовательские слои с настраиваемыми параметрами или без них, которые вы задаете для своей задачи. Чтобы узнать, как задать пользовательские слои глубокого обучения, смотрите Deep Learning Layers (Deep Learning Toolbox) и Define Custom Deep Learning Layer для генерации кода (Deep Learning Toolbox). Для примера о том, как сгенерировать код для сети с пользовательскими слоями, смотрите Генерацию кода для обнаружения объектов Использование YOLO v3 Глубокое обучение. Выходы пользовательского слоя должны быть массивами фиксированного размера. Использование cuDNN-целевые системы поддерживают генерацию кода как для основной строки, так и для основного столбца для пользовательских слоев. Целевые системы TensorRT поддерживают только генерацию кода основного столбца. Для генерации кода пользовательские слои должны содержать Генерация кода для сети последовательности, содержащей пользовательский слой и слой LSTM или GRU, не поддерживается. Генерация кода для нейронной сети для глубокого обучения с пользовательским слоем не поддерживается в Simulink®. | Да | Да | Нет |
Следующие классы поддерживаются для генерации кода GPU Coder для целевых библиотек глубокого обучения, указанных в таблице.
Имя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Mali |
---|---|---|---|---|
DAGNetwork (Deep Learning Toolbox) | Ориентированная сеть ациклического графика (DAG) для глубокого обучения
| Да | Да | Да |
dlnetwork (Deep Learning Toolbox) | Нейронная сеть для глубокого обучения для пользовательских циклов обучения
| Да | Да | Нет |
SeriesNetwork (Deep Learning Toolbox) | Сеть серии для глубокого обучения
| Да | Да | Да |
ssdObjectDetector (Computer Vision Toolbox) | Объект для обнаружения объектов с помощью детектора на основе SSD.
| Да | Да | Нет |
yolov2ObjectDetector (Computer Vision Toolbox) | Обнаружение объектов с помощью детектора объектов YOLO v2
| Да | Да | Да |
coder.CodeConfig
| coder.CuDNNConfig
| coder.EmbeddedCodeConfig
| coder.gpuConfig
| coder.gpuEnvConfig
| coder.TensorRTConfig