cnncodegen

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

Описание

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

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

пример

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

Примеры

свернуть все

Использовать cnncodegen чтобы сгенерировать код С++ для предварительно обученной сети для развертывания на графическом процессоре 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 классов слоев. Генератор кода уменьшает количество слоев путем оптимизации слияния слоев сверточной и пакетной нормализации. The setup() метод этого класса настраивает указатели и выделяет ресурсы для каждого объекта слоя. The predict() способ вызывает предсказание для каждого из 87 слоев в сети. The cleanup() метод освобождает все ресурсы памяти и системы, выделенные для каждого объекта слоя. Все бинарные веса (cnn_**_w) и файлы смещения (cnn_**_b) для свертки слои сети хранятся в codegen папка.

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

Входные параметры

свернуть все

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

Примечание

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

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

Область

Описание

ArmComputeVersion

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

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

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

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

Введенный в R2017b