GPU Coder™ поддерживает генерацию кода для сверточных нейронных сетей серии и направленного ациклического графа (DAG) (CNN или ConvNets). Можно создать код для любой обученной сверточной нейронной сети, уровни которой поддерживаются для генерации кода. См. раздел Поддерживаемые слои. Можно обучить сверточную нейронную сеть либо на CPU, либо на GPU, либо на нескольких GPU с помощью Toolbox™ Deep Learning, либо использовать одну из предварительно подготовленных сетей, перечисленных в таблице, и создать код CUDA ®.
| Сетевое имя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM ® для графического процессора Мали |
|---|---|---|---|---|
AlexNet | Сверточная нейронная сеть AlexNet. Для получения информации о предварительно подготовленной модели AlexNet см. Синтаксис | Да | Да | Да |
Сеть Caffe | Сверточные модели нейронных сетей от 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 - Большой | NASNet - Крупная сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели NASNet-Large см. | Да | Да | Нет |
NASNet-Mobile | Сверточная нейронная сеть NASNet-Mobile. Для получения информации о предварительно подготовленной модели NASNet-Mobile см. | Да | Да | Нет |
ResNet | ResNet-18, ResNet-50 и ResNet-101 сверточные нейронные сети. Для получения информации о предварительно подготовленных моделях ResNet см. Синтаксис | Да | Да | Да |
SegNet | Многоклассная пиксельная сегментационная сеть. Дополнительные сведения см. в разделе | Да | Да | Нет |
SqueezeNet | Небольшая глубокая нейронная сеть. Для получения информации о предварительно подготовленных моделях SqueeeNet см. Синтаксис | Да | Да | Да |
VGG-16 | VGG-16 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели VGG-16 см. Синтаксис | Да | Да | Да |
VGG-19 | VGG-19 сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели VGG-19 см. Синтаксис | Да | Да | Да |
Xception | Xception сверточная нейронная сеть. Для получения информации о предварительно подготовленной модели Xception см. Синтаксис | Да | Да | Да |
YOLO v2 | Вы ищете только один сверточный детектор объектов на основе нейронной сети версии 2. Дополнительные сведения см. в разделе | Да | Да | Да |
Следующие уровни поддерживаются для генерации кода кодером графического процессора для целевых библиотек глубокого обучения, указанных в таблице.
| Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Мали |
|---|---|---|---|---|
| Уровень ввода изображения вводит 2-D изображения в сеть и применяет нормализацию данных. Создание кода не поддерживает | Да | Да | Да |
| Входной уровень последовательности вводит данные последовательности в сеть. Библиотека cuDNN поддерживает векторные и 2-D последовательности изображений. Библиотека TensorRT поддерживает только векторные входные последовательности. Для входов векторной последовательности число элементов должно быть константой во время генерации кода. Для входных данных последовательности изображений высота, ширина и количество каналов должны быть постоянными во время генерации кода. Создание кода не поддерживает | Да | Да | Нет |
| Входной уровень элемента вводит данные элемента в сеть и применяет нормализацию данных. | Да | Да | Да |
| Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Мали |
|---|---|---|---|---|
| 2-D сверточный слой применяет скользящие сверточные фильтры к входу. | Да | Да | Да |
| Полностью связанный слой умножает входной сигнал на весовую матрицу и затем добавляет вектор смещения. | Да | Да | Нет |
| 2-D сгруппированный сверточный слой разделяет входные каналы на группы и применяет скользящие сверточные фильтры. Используйте сгруппированные сверточные слои для разделяемых по каналам (также называемых разделяемыми по глубине) сверток. Генерация кода для графического процессора ARM Mali не поддерживается для 2-D сгруппированного слоя свертки, который имеет | Да | Да | Да |
| Транспонированный слой свертки 2-D увеличивает выборку карт элементов. | Да | Да | Да |
| Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Мали |
|---|---|---|---|---|
| Уровень двунаправленного LSTM (BiLSTM) изучает двунаправленные долгосрочные зависимости между временными шагами временных рядов или данных последовательности. Эти зависимости могут быть полезны, если необходимо, чтобы сеть извлекала уроки из полного временного ряда на каждом временном шаге. Для создания кода, Для создания кода, | Да | Да | Нет |
| Плоский слой сворачивает пространственные размеры входа в размер канала. | Да | Нет | Нет |
| Уровень GRU распознает зависимости между временными шагами во временных рядах и данными последовательности. Генерация кода поддерживает только | Да | Да | Нет |
| Уровень LSTM распознает долгосрочные зависимости между временными шагами во временных рядах и данными последовательности. Для создания кода, Для создания кода, | Да | Да | Нет |
| Слой складывания последовательности преобразует пакет последовательностей изображений в пакет изображений. Используйте слой сворачивания последовательности для выполнения операций свертки на временных шагах последовательностей изображений независимо. | Да | Нет | Нет |
| Входной уровень последовательности вводит данные последовательности в сеть. Библиотека cuDNN поддерживает векторные и 2-D последовательности изображений. Библиотека TensorRT поддерживает только векторные входные последовательности. Для входов векторной последовательности число элементов должно быть константой во время генерации кода. Для входных данных последовательности изображений высота, ширина и количество каналов должны быть постоянными во время генерации кода. Создание кода не поддерживает | Да | Да | Нет |
| Слой развертки последовательности восстанавливает структуру последовательности входных данных после свертывания последовательности. | Да | Нет | Нет |
| Слой встраивания слов отображает индексы слов в векторы. | Да | Да | Нет |
| Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Мали |
|---|---|---|---|---|
| Подрезанный слой ReLU выполняет пороговую операцию, при которой любое входное значение меньше нуля устанавливается равным нулю, а любое значение выше подрезанного потолка устанавливается на этот подрезанный потолок. | Да | Да | Да |
| Уровень активации ЗЭС выполняет операцию идентификации на положительных входах и экспоненциальную нелинейность на отрицательных входах. | Да | Да | Нет |
| Уровень ReLU с утечкой выполняет пороговую операцию, где любое входное значение, меньшее нуля, умножается на фиксированный скаляр. | Да | Да | Да |
| Уровень ReLU выполняет пороговую операцию для каждого элемента входа, где любое значение меньше нуля устанавливается равным нулю. | Да | Да | Да |
| A | Да | Да | Нет |
| Слой активации гиперболической касательной (tanh) применяет функцию tanh на входах слоя. | Да | Да | Да |
| Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Мали |
|---|---|---|---|---|
| Уровень нормализации пакета нормализует каждый входной канал в мини-пакете. | Да | Да | Да |
| Слой подрезки 2-D применяется 2-D обрезки к вводу. | Да | Да | Да |
| Канальный уровень локальной (кросс-канальной) нормализации выполняет канальную нормализацию. | Да | Да | Да |
| Уровень отсева случайным образом устанавливает входные элементы в ноль с заданной вероятностью. | Да | Да | Да |
| Уровень масштабирования для сети актеров или критиков. Для генерации кода значения для | Да | Да | Да |
| Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Мали |
|---|---|---|---|---|
| Средний уровень объединения выполняет понижающую выборку путем разделения входных данных на прямоугольные области объединения и вычисления средних значений каждой области. | Да | Да | Да |
| Уровень глобального среднего объединения выполняет понижающую выборку путем вычисления среднего значения высоты и ширины входного сигнала. | Да | Да | Да |
| Глобальный уровень максимального объединения выполняет понижающую выборку путем вычисления максимума высоты и ширины входного сигнала. | Да | Да | Да |
| Максимальный уровень объединения выполняет понижающую выборку путем разделения входных данных на прямоугольные области объединения и вычисления максимума каждой области. | Да | Да | Да |
| Уровень макс. расхолаживания распаковывает выходные данные уровня макс. пула. | Да | Да | Нет |
| Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Мали |
|---|---|---|---|---|
| Уровень сложения добавляет входные данные от нескольких уровней нейронной сети по элементам. | Да | Да | Да |
| Слой конкатенации принимает входные данные и выполняет их конкатенацию вдоль заданного размера. | Да | Да | Нет |
| Слой конкатенации глубины принимает входные данные одинаковой высоты и ширины и объединяет их вдоль третьего размера (размера канала). | Да | Да | Да |
| Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Мали |
|---|---|---|---|---|
| Слой поля привязки хранит поля привязки для карты элементов, используемой в сетях обнаружения объектов. | Да | Да | Да |
| Уровень фокальных потерь предсказывает классы объектов с использованием фокальных потерь. | Да | Да | Да |
| Слой «пробел-глубина» преобразует пространственные блоки ввода в размер глубины. Этот слой используется в тех случаях, когда необходимо объединить карты элементов разного размера без отбрасывания каких-либо данных элементов. | Да | Да | Да |
| Уровень объединения SSD объединяет выходные данные карт элементов для последующей регрессии и вычисления потерь классификации. | Да | Да | Нет |
| Слой регрессии параллелепипеда позволяет уточнить расположение ограничивающего параллелепипеда с помощью функции сглаживания потерь L1. Этот уровень используется для создания сети обнаружения объектов Fast или Faster R-CNN. | Да | Да | Да |
| Слой классификации сети предложений области (RPN) классифицирует области изображения как объект или фон с помощью функции перекрестных потерь энтропии. Этот уровень используется для создания более быстрой сети обнаружения объектов R-CNN. | Да | Да | Да |
| Создание выходного уровня для сети обнаружения объектов YOLO v2. | Да | Да | Да |
| Создание уровня реорганизации для сети обнаружения объектов YOLO v2. | Да | Да | Да |
| Создание слоя преобразования для сети обнаружения объектов YOLO v2. | Да | Да | Да |
| Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Мали |
|---|---|---|---|---|
| Уровень классификации вычисляет потери перекрестной энтропии для проблем классификации нескольких классов с взаимоисключающими классами. | Да | Да | Да |
| Слой классификации пикселей Dice предоставляет категориальную метку для каждого пикселя изображения или вокселя с использованием обобщенной потери Dice. | Да | Да | Да |
| Уровень фокальных потерь предсказывает классы объектов с использованием фокальных потерь. | Да | Да | Да |
| Все выходные слои, включая пользовательские слои классификации или регрессии, созданные с помощью Пример определения пользовательского выходного слоя классификации и функции потери см. в разделе Определение пользовательского выходного слоя классификации (панель инструментов глубокого обучения). Пример определения пользовательского выходного слоя регрессии и определения функции потери см. в разделе Определение пользовательского выходного слоя регрессии (панель инструментов глубокого обучения). | Да | Да | Да |
| Слой классификации пикселей обеспечивает категориальную метку для каждого пикселя изображения или вокселя. | Да | Да | Да |
| Слой регрессии параллелепипеда позволяет уточнить расположение ограничивающего параллелепипеда с помощью функции сглаживания потерь L1. Этот уровень используется для создания сети обнаружения объектов Fast или Faster R-CNN. | Да | Да | Да |
| Регрессионный уровень вычисляет среднеквадратичную потерю ошибок для регрессионных задач. | Да | Да | Да |
| Слой классификации сети предложений области (RPN) классифицирует области изображения как объект или фон с помощью функции перекрестных потерь энтропии. Этот уровень используется для создания более быстрой сети обнаружения объектов R-CNN. | Да | Да | Да |
| Сигмоидальный слой применяет к входу сигмоидальную функцию. | Да | Да | Да |
| Уровень softmax применяет функцию softmax к входу. | Да | Да | Да |
| Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Мали |
|---|---|---|---|---|
| Распрямить активации в 1-D, предполагая порядок C-style (строка-мажор). | Да | Да | Да |
| Уровень глобального среднего объединения пространственных данных. | Да | Да | Да |
| Слой активации сигмоида. | Да | Да | Да |
| Слой активации гиперболических касательных. | Да | Да | Да |
| Нулевой слой заполнения для ввода 2-D. | Да | Да | Да |
| Слой, выполняющий масштабирование входных данных по элементам с последующим добавлением. | Да | Да | Да |
| Выравнивает пространственные размеры входного тензора по размерам канала. | Да | Да | Да |
| Уровень, реализующий оператор идентификации ONNX. | Да | Да | Да |
| Имя слоя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Мали |
|---|---|---|---|---|
| Пользовательские слои с обучаемыми параметрами или без них, определяемые для данной проблемы. Сведения об определении пользовательских слоев глубокого обучения см. в разделах Определение пользовательских слоев глубокого обучения (панель инструментов глубокого обучения) и Определение пользовательских слоев глубокого обучения для создания кода (панель инструментов глубокого обучения). Пример создания кода для сети с пользовательскими слоями см. в разделе Создание кода для обнаружения объектов с помощью глубокого обучения YOLO v3. Выходами пользовательского слоя должны быть массивы фиксированного размера. Используя Цели cuDNN поддерживают генерацию кода типа «строка-большая» и «столбец-большая» для пользовательских уровней. Цели TensorRT поддерживают только генерацию основного кода столбца. Для создания кода пользовательские слои должны содержать Создание кода для сети последовательностей, содержащей пользовательский уровень и уровень LSTM или GRU, не поддерживается. Создание кода для сети глубокого обучения с пользовательским уровнем не поддерживается в Simulink ®. | Да | Да | Нет |
Следующие классы поддерживаются для генерации кода кодером графического процессора для целевых библиотек глубокого обучения, указанных в таблице.
| Имя | Описание | cuDNN | TensorRT | Вычислительная библиотека ARM для графического процессора Мали |
|---|---|---|---|---|
DAGNetwork (инструментарий для глубокого обучения) | Сеть направленных ациклических графов (DAG) для глубокого обучения
| Да | Да | Да |
dlnetwork (инструментарий для глубокого обучения) | Сеть глубокого обучения для пользовательских циклов обучения
| Да | Да | Нет |
SeriesNetwork (инструментарий для глубокого обучения) | Сеть серии для глубокого обучения
| Да | Да | Да |
ssdObjectDetector(Панель инструментов компьютерного зрения) | Объект для обнаружения объектов с помощью SSD-детектора.
| Да | Да | Нет |
yolov2ObjectDetector(Панель инструментов компьютерного зрения) | Обнаружение объектов с помощью детектора объектов YOLO v2
| Да | Да | Да |
coder.CodeConfig | coder.CuDNNConfig | coder.EmbeddedCodeConfig | coder.gpuConfig | coder.gpuEnvConfig | coder.TensorRTConfig