exponenta event banner

cnncodegen

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

Описание

cnncodegen(net,'targetlib','arm-compute-mali') создает код C++ для указанного сетевого объекта с помощью графического процессора ARM ® Compute Library для Мали.

Требуется графический процессор Coder™ и интерфейс кодера графического процессора для библиотек глубокого обучения.

пример

cnncodegen(net,'targetlib','arm-compute-mali',targetparams) генерирует код C++ для указанного сетевого объекта с помощью вычислительной библиотеки ARM для графических процессоров Мали с дополнительными опциями генерации кода.

Примеры

свернуть все

Использовать cnncodegen для генерации кода C++ для предварительно обученной сети для развертывания на графическом процессоре ARM Mali.

Получите предварительно подготовленную модель GoogLeNet с помощью googlenet (Deep Learning Toolbox). Для этой функции требуется модель Deep Learning Toolbox™ для сети GoogLeNet. Если этот пакет поддержки не установлен, функция предоставляет ссылку для загрузки. Кроме того, см. раздел https://www.mathworks.com/matlabcentral/fileexchange/64456-deep-learning-toolbox-model-for-googlenet-network.

net = googlenet;

Создание кода с помощью cnncodegen с 'targetlib' установить в значение 'arm-compute-mali'. По умолчанию генератор кода предназначен для версии '19.05' АРМ. Для назначения другой версии библиотеки вычислений используйте 'ArmComputeVersion' параметр.

cnncodegen(net,'targetlib','arm-compute-mali'...
,'targetparams',struct('ArmComputeVersion','19.02'));
------------------------------------------------------------------------
Compilation suppressed: generating code only.
------------------------------------------------------------------------
### Codegen Successfully Generated for arm device

Генератор кода генерирует .cpp и заголовочные файлы в '/pwd/codegen' папка. Сеть DAG создается как класс C++ с именем CnnMain, содержащий массив из 87 классов слоев. Генератор кода уменьшает количество слоев за счет оптимизации слоевого слияния слоев сверточной и пакетной нормализации. setup() метод этого класса устанавливает дескрипторы и выделяет ресурсы для каждого объекта уровня. predict() способ вызывает прогнозирование для каждого из 87 уровней в сети. cleanup() освобождает все память и системные ресурсы, выделенные для каждого объекта уровня. Все бинарные веса (cnn_**_w) и файлы смещения (cnn_**_b) для уровней свертки сети хранятся в codegen папка.

Чтобы построить библиотеку, переместите созданный код на целевую платформу ARM и используйте созданный make-файл cnnbuild_rtw.mk.

Входные аргументы

свернуть все

Предварительно обученный SeriesNetwork или DAGNetwork объект.

Примечание

cnncodegen не поддерживает dlnetwork объекты.

Параметры библиотеки вычислений ARM, указанные как 1около-1 структура, содержащая поля, описанные в этих таблицах.

Область

Описание

ArmComputeVersion

Версия вычислительной библиотеки ARM на целевом оборудовании, указанная как '19.02' или '19.05'. Значение по умолчанию: '19.05'. Если установить ArmComputeVersion до версии, более поздней, чем '19.05', ArmComputeVersion имеет значение '19.05'.

Вопросы совместимости

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

Предупреждает, начиная с R2021a

Представлен в R2017b