coder.ARMNEONConfig

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

Описание

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

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

Создание

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

Свойства

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

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

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

ARMArchitecture необходимо указать для этих случаев:

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

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

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

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

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

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

Примеры

свернуть все

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

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

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

Введенный в R2019a