coder.ARMNEONConfig

Параметры, чтобы сконфигурировать генерацию кода глубокого обучения с ARM Вычисляют Библиотеку

Описание

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

Использовать 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 Объект (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

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

Введенный в R2019a