cnncodegen

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

Описание

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

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

пример

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

Примеры

свернуть все

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

Получите предварительно обученную модель 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' из ARM. Чтобы предназначаться для различной версии Вычислить Библиотеки, используйте '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