Глубокое обучение с помощью GPU Coder

Сгенерируйте CUDA® код для глубоких нейронных сетей

Глубокое обучение - это ветвь машинного обучения, которая учит компьютеры делать то, что приходит человеку естественным путем: учиться на опыте. Алгоритмы обучения используют вычислительные методы, чтобы «узнать» информацию непосредственно из данных, не полагаясь на заранее определенное уравнение в качестве модели. Глубокое обучение использует сверточные нейронные сети (CNNs), чтобы узнать полезные представления данных непосредственно с изображений. Нейронные сети объединяют несколько нелинейных слоев обработки, используя простые элементы, работающие параллельно и вдохновленные биологическими нервными системами. Модели глубокого обучения обучаются с помощью большого набора маркированных данных и архитектур нейронных сетей, которые содержат много слоев, обычно включая некоторые сверточные слои.

Можно использовать GPU Coder™ в паре с Deep Learning Toolbox™, чтобы сгенерировать код и развернуть CNN на нескольких встраиваемых платформах, которые используют NVIDIA® или ARM® Графические процессоры. Deep Learning Toolbox обеспечивает простой MATLAB® команды для создания и соединения слоев глубокой нейронной сети. Доступность предварительно обученных сетей и примеров, таких как приложения распознавания изображений и помощи драйверу, позволяет вам использовать GPU Coder для глубокого обучения, без экспертных знаний о нейронных сетях, глубоком обучении или передовых алгоритмах компьютерного зрения.

Приложения

расширить все

GPU CoderСгенерируйте код GPU из кода MATLAB
GPU Environment CheckПроверьте и настройте окружение генерации кода GPU

Функции

расширить все

codegenСгенерируйте код C/C + + из кода MATLAB
cnncodegenСгенерируйте код для нейронной сети для глубокого обучения для целевого графического процессора ARM Mali
coder.loadDeepLearningNetworkЗагрузка модели нейронной сети для глубокого обучения
coder.DeepLearningConfigСоздайте объекты строения генерации кода глубокого обучения
coder.getDeepLearningLayersПолучите список слоев, поддерживаемых для генерации кода для определенной библиотеки глубокого обучения

Объекты

расширить все

coder.CuDNNConfigПараметры для настройки генерации кода глубокого обучения с помощью библиотеки CUDA Глубокой Нейронной Сети
coder.TensorRTConfigПараметры для настройки генерации кода глубокого обучения с помощью библиотеки NVIDIA TensorRT
coder.gpuConfigПараметры конфигурации для генерации кода CUDA из кода MATLAB с помощью GPU Coder
coder.gpuEnvConfigСоздайте объект строения, содержащий параметры, переданные в coder.checkGpuInstall для выполнения проверок окружения генерации кода GPU

Основы

Глубокое обучение в MATLAB (Deep Learning Toolbox)

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

Узнайте о сверточных нейронных сетях (Deep Learning Toolbox)

Введение в сверточные нейронные сети и как они работают в MATLAB.

Предварительно обученные глубокие нейронные сети (Deep Learning Toolbox)

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

Обучение

Глубокое обучение с изображениями (Deep Learning Toolbox)

Обучите сверточные нейронные сети с нуля или используйте предварительно обученные сети, чтобы быстро узнать новые задачи

Обзор генерации кода

Рабочий процесс

Обзор рабочего процесса генерации кода CUDA для сверточных нейронных сетей.

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

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

Генерация кода для dlarray

Используйте глубокое обучение arrays в коде MATLAB, предназначенном для генерации кода.

Ограничения dlarray для генерации кода

Придерживайтесь ограничений генерации кода для глубокого обучения массивов.

Сгенерированная иерархия классов CNN

Архитектура сгенерированного класса CNN и его методов.

Темы

MATLAB

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

Создайте SeriesNetwork, DAGNetwork, yolov2ObjectDetector, ssdObjectDetector, или dlnetwork объект для генерации кода.

Генерация кода для нейронных сетей для глубокого обучения при помощи cuDNN

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

Генерация кода для нейронных сетей для глубокого обучения при помощи TensorRT

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

Генерация кода для нейронных сетей для глубокого обучения, нацеленных на графические процессоры ARM Mali

Сгенерируйте Код С++ для предсказания от нейронной сети для глубокого обучения, нацеленной на процессор ARM Mali графического процессора.

Факторы о размещении данных в глубоком обучении

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

Квантование глубоких нейронных сетей

Осмыслите эффекты квантования и как визуализировать динамические области значений слоев свертки сети.

Генерация кода для квантованных нейронных сетей для глубокого обучения

Квантуйте и сгенерируйте код для предварительно обученной сверточной нейронной сети.

Simulink

Глубокое обучение в Simulink при помощи блока MATLAB function

Симулируйте и сгенерируйте код для моделей глубокого обучения в Simulink с помощью блоков MATLAB function.

Глубокое обучение в Simulink при помощи библиотеки глубоких нейронных сетей

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

Целевые платы NVIDIA для встраиваемых систем

Сборка и развертывание на платах графических процессоров NVIDIA.

Связанная информация

Рекомендуемые примеры

Code Generation for a Sequence-to-Sequence LSTM Network

Генерация кода для сети LSTM с последовательностью в последовательности

Демонстрирует, как сгенерировать код CUDA ® для сети долгой краткосрочной памяти (LSTM). Пример генерирует приложение MEX, которое делает предсказания на каждом шаге входного timeseries. Демонстрируются два метода: метод, использующий стандартную сеть LSTM, и метод, использующий поведение одной и той же сети LSTM с учетом состояния. Этот пример использует данные датчика акселерометра со смартфона, носимого на корпусе, и делает предсказания по активности пользователя. Движения пользователей классифицируются в одну из пяти категорий, а именно танцы, бег, сидение, стоя и ходьба. В примере используется предварительно обученная сеть LSTM. Для получения дополнительной информации о обучении смотрите пример классификации последовательности с использованием глубокого обучения (Deep Learning Toolbox) из Deep Learning Toolbox™.

Code Generation for a Deep Learning Simulink Model that Performs Lane and Vehicle Detection

Генерация кода для модели глубокого обучения Simulink, которая выполняет обнаружение маршрута и транспортного средства

Разработайте приложение CUDA ® из модели Simulink ®, которое выполняет обнаружение маршрута и транспортного средства с помощью сверточных нейронных сетей (CNN). Этот пример принимает системы координат видео трафика в качестве входов, выводит два контуров маршрута, которые соответствуют левой и правой полосам автомобиля , оборудованного датчиком, и обнаруживает транспортные средства в системе координат. Этот пример использует предварительно обученную сеть обнаружения маршрута из примера обнаружения маршрута, оптимизированного с помощью GPU Coder Toolbox™ GPU Coder. Для получения дополнительной информации смотрите Обнаружение маршрута Оптимизированное с GPU Coder. Этот пример также использует предварительно обученную сеть обнаружения транспортных средств из обнаружения объектов, используя пример глубокого обучения YOLO v2 toolbox™ Компьютерное Зрение. Для получения дополнительной информации смотрите Обнаружение объектов с использованием YOLO v2 Глубокое Обучение (Computer Vision Toolbox).