exponenta event banner

Глубокое обучение с помощью кодера графического процессора

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

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

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

Приложения

развернуть все

Кодер графического процессораСоздание кода графического процессора из кода MATLAB
Проверка среды графического процессораПроверка и настройка среды генерации кода графического процессора

Функции

развернуть все

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

Объекты

развернуть все

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

Основы

Глубокое обучение в MATLAB (инструментарий глубокого обучения)

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

Узнайте о сверточных нейронных сетях (инструментарий для глубокого обучения)

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

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

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

Обучение

Глубокое обучение с помощью изображений (набор инструментов для глубокого обучения)

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

Обзор создания кода

Технологический процесс

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

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

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

Создание кода для массива dlarray

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

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

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

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

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

Темы

MATLAB

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

Создать SeriesNetwork, DAGNetwork, yolov2ObjectDetector, ssdObjectDetector, или dlnetwork объект для создания кода.

Создание кода для сетей глубокого обучения с помощью cuDNN

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

Создание кода для сетей глубокого обучения с помощью TensorRT

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

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

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

Вопросы компоновки данных при глубоком обучении

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

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

Понимание эффектов квантования и способов визуализации динамических диапазонов уровней сетевой свертки.

Создание кода для квантованных сетей глубокого обучения

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

Simulink

Глубокое обучение в Simulink с помощью функционального блока MATLAB

Моделирование и создание кода для моделей глубокого обучения в Simulink с использованием функциональных блоков MATLAB.

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

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

Нацеливание на встраиваемые платы NVIDIA

Сборка и развертывание на платах NVIDIA GPU.

Характерные примеры

Code Generation for a Sequence-to-Sequence LSTM Network

Создание кода для сети LSTM «последовательность-последовательность»

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

Code Generation for a Video Classification Network

Создание кода для сети классификации видео

Создайте код CUDA ® для сети глубокого обучения, которая классифицирует видео и развертывает созданный код на плате NVIDIA ® Jetson Xavier с помощью пакета поддержки Coder™ MATLAB ® для платформ NVIDIA Jetson и NVIDIA DRIVE. Сеть глубокого обучения имеет как сверточный, так и двунаправленный уровни долговременной памяти (BiLSTM). Сформированное приложение считывает данные из указанного видеофайла как последовательность видеокадров и выводит метку, которая классифицирует активность в видео. В этом примере генерируется код для сети, обученной на примере «Классифицировать видео с помощью глубокого обучения» из панели инструментов глубокого обучения (TM). Дополнительные сведения см. в разделе Классификация видео с помощью глубокого обучения (панель инструментов глубокого обучения).

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

Создание кода для модели симулятора глубокого обучения, которая выполняет обнаружение полосы движения и транспортного средства

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