Глубокое обучение для GPU Coder

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

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

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

Приложения

GPU CoderСгенерируйте код графического процессора из кода MATLAB
Check GPU InstallПроверьте и настройте среду генерации кода графического процессора

Функции

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

Объекты

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

Основы

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

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

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

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

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

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

Обучение

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

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

Разверните сгенерированный код в графические процессоры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Изучите эффекты квантования и как визуализировать динамические диапазоны сетевых слоев свертки.

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

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

Сопутствующая информация

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

Integrating Deep Learning with GPU Coder into Simulink

Интеграция глубокого обучения для GPU Coder в Simulink

Интегрируйте код CUDA®, сгенерированный для нейронной сети для глубокого обучения в Simulink®. Графический процессор coder™ не поддерживает генерацию кода для блоков Simulink, но можно все еще использовать вычислительную мощность графических процессоров в Simulink путем генерации динамически подключаемой библиотеки (dll) с GPU Coder и затем интеграции его в Simulink как Блок s-function при помощи Legacy Code Tool. Для получения дополнительной информации см. legacy_code. Чтобы проиллюстрировать эту концепцию, пример использует Обнаружение Маршрута, Оптимизированное с GPU Coder. Исходный пример использовал файл C++ с функциями OpenCV, чтобы считать системы координат, чертить маршруты и наложить информацию о частоте кадров о видеовыходе. Этот пример использует блоки Simulink от Системы Компьютерного зрения Toolbox™, чтобы выполнить те же операции.

Code Generation for a Sequence-to-Sequence LSTM Network

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

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