exponenta event banner

кодер. ARMNEONConfig

Параметры для настройки генерации кода глубокого обучения с помощью вычислительной библиотеки ARM

Описание

coder.ARMNEONConfig объект содержит вычислительную библиотеку ARM ® и целевые параметры, которые codegen использует для генерации кода C++ для глубоких нейронных сетей.

Использование coder.ARMNEONConfig для создания кода присвойте его DeepLearningConfig свойство объекта конфигурации генерации кода, которому передается codegen.

Создание

Создайте объект конфигурации ARM NEON с помощью coder.DeepLearningConfig функция с целевой библиотекой, установленной как 'arm-compute'.

Свойства

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

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

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

ARMArchitecture должны быть указаны для следующих случаев:

  • Вы не используете пакет поддержки оборудования ( Hardware свойство объекта конфигурации генерации кода пустое).

  • Вы используете пакет поддержки оборудования, но генерируете только код.

Укажите точность вычислений вывода в поддерживаемых слоях. При выполнении вывода в 32-разрядных поплавках используйте 'fp32'. Для 8-разрядного целого числа используйте 'int8'. Значение по умолчанию: 'fp32'.

Местоположение MAT-файла, содержащего данные калибровки. Значение по умолчанию: ''. Этот параметр применим только в том случае, если DataType имеет значение 'int8'.

При выполнении квантования глубокой сверточной нейронной сети calibrate Функция (Deep Learning Toolbox) выполняет функции сети и собирает динамические диапазоны весов и смещений в свертке и полностью соединенных слоях сети, а также динамические диапазоны активизаций во всех слоях сети. Чтобы создать код для квантованной сети, сохраните результаты из calibrate в MAT-файл и укажите местоположение этого MAT-файла в генераторе кода с помощью этого свойства. Дополнительные сведения см. в разделе Создание кода для квантованных сетей глубокого обучения.

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

Примеры

свернуть все

Создание функции точки входа squeezenet который использует coder.loadDeepLearningNetwork для загрузки squeezenet(Панель инструментов глубокого обучения).

function out = squeezenet_predict(in)

persistent mynet;
if isempty(mynet)
    mynet = coder.loadDeepLearningNetwork('squeezenet', 'squeezenet');
end

out = predict(mynet,in);

Создать coder.config объект конфигурации для создания статической библиотеки.

cfg = coder.config('lib');

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

cfg.TargetLang = 'C++';
cfg.GenCodeOnly=true;

Создать coder.ARMNEONConfig объект конфигурации глубокого обучения. Присвойте его DeepLearningConfig имущества cfg объект конфигурации.

dlcfg = coder.DeepLearningConfig('arm-compute');
dlcfg.ArmArchitecture = 'armv8';
dlcfg.ArmComputeVersion = '20.02.1';
cfg.DeepLearningConfig = dlcfg;

Используйте -config вариант codegen для указания cfg объект конфигурации. codegen функция должна определять размер, класс и сложность входов функции MATLAB ®. Используйте -args для указания размера входных данных функции точки входа.

codegen -args {ones(227,227,3,'single')} -config cfg squeezenet_predict

codegen помещает все сгенерированные файлы в codegen папка. Папка содержит код C++ для функции точки входа squeezenet_predict.cpp, заголовки и исходные файлы, содержащие определения класса C++ для сверточной нейронной сети (CNN), веса и файлов смещения.

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