Генерация кода для dlarray

Массив глубокого обучения хранит данные с метками формата дополнительных данных для пользовательских учебных циклов и позволяет функциям вычислить и использовать производные посредством автоматического дифференцирования. Чтобы узнать больше о пользовательских учебных циклах, автоматическое дифференцирование и массивы глубокого обучения, видят Глубокое обучение Пользовательские Учебные Циклы (Deep Learning Toolbox).

Генерация кода поддерживает и отформатированные и восстановленные после форматирования массивы глубокого обучения. dlarray объекты, содержащие gpuArrays также поддерживаются для генерации кода. Когда вы используете массивы глубокого обучения с генерацией кода центрального процессора и графического процессора, придерживаетесь этих ограничений:

Задайте dlarray для генерации кода

Для генерации кода используйте dlarray (Deep Learning Toolbox) функция, чтобы создать массивы глубокого обучения. Например, предположите, что у вас есть предварительно обученный dlnetwork (Deep Learning Toolbox) сетевой объект в mynet.mat Matfile. Чтобы предсказать ответы для этой сети, создайте функцию точки входа в MATLAB®.

Существует две возможности:

Примечание

Для генерации кода, dlarray введите к predict метод dlnetwork объектом должен быть single тип данных.

Проект 1 (Не рекомендуемый)

В этом примере проекта, вводе и выводе к функции точки входа, foo имеют dlarray типы. Этот тип функции точки входа не рекомендуется для генерации кода потому что в MATLAB, dlarray осуществляет порядок, маркирует 'SCBTU'. Это поведение реплицировано для генерации кода MEX. Однако для автономной генерации кода, такой как статические, динамические библиотеки или исполняемые файлы, формат данных следует спецификации fmt аргумент dlarray объект. В результате, если вводом или выводом функции точки входа является dlarray возразите и его порядком меток не является 'SCBTU', затем формат данных будет отличаться между средой MATLAB и автономным кодом.

function dlOut = foo(dlIn)

persistent dlnet;
if isempty(dlnet)
    dlnet = coder.loadDeepLearningNetwork('mynet.mat');
end

dlOut = predict(dlnet, dlIn);

end

(Рекомендуемый) проект 2

В этом примере проекта, вводе и выводе к foo имеют примитивные типы данных и dlarray объект создается в функции. extractdata (Deep Learning Toolbox) метод dlarray объект возвращает данные в dlarray dlA как выход foo. Выход a имеет совпадающий тип данных как базовый тип данных в dlA.

Когда по сравнению с Design 1, этот проект точки входа имеет следующие преимущества:

  • Более легкая интеграция с автономными рабочими процессами генерации кода, такими как статические, динамические библиотеки или исполняемые файлы.

  • Формат данных выхода от extractdata функция имеет тот же порядок ('SCBTU') и в среде MATLAB и в сгенерированном коде.

  • Улучшает производительность для рабочих процессов MEX.

  • Упрощает рабочие процессы Simulink® с помощью блоков MATLAB Function, когда Simulink исходно не поддерживает dlarray объекты.

function a = foo(in)
dlIn = dlarray(in, 'SSC');

persistent dlnet;
if isempty(dlnet)
    dlnet = coder.loadDeepLearningNetwork('mynet.mat');
end

dlA = predict(dlnet, dlIn);

a = extractdata(dlA);

end

Видеть пример dlnetwork и dlarray использование с MATLAB Coder™, смотрите, Генерируют Изображения Цифры Используя Вариационный Автоэнкодер на центральных процессорах Intel.

dlarray Функции объекта с поддержкой генерации кода

Для генерации кода вы ограничиваетесь функциями объекта глубокого обучения массивов, перечисленными в этой таблице.

dims (Deep Learning Toolbox)

Размерность помечает для dlarray

extractdata (Deep Learning Toolbox)

Извлеките данные из dlarray

finddim (Deep Learning Toolbox)

Найдите размерности с заданной меткой

stripdims (Deep Learning Toolbox)

Удалите dlarray метки

Функции Deep Learning Toolbox с dlarray Поддержка генерации кода

Операции глубокого обучения

ФункцияОписание
fullyconnect (Deep Learning Toolbox)

Полностью операция connect умножает вход на матрицу веса и затем добавляет вектор смещения.

sigmoid (Deep Learning Toolbox)

Сигмоидальная операция активации применяет сигмоидальную функцию к входным данным.

softmax (Deep Learning Toolbox)

softmax операция активации применяет функцию softmax к размерности канала входных данных.

Функции MATLAB с dlarray Поддержка генерации кода

Унарные поэлементные функции

ФункцияПримечания и ограничения
abs

Выход dlarray имеет тот же формат данных как вход dlarray.

cos

Выход dlarray имеет тот же формат данных как вход dlarray.

cosh
cot
csc
exp
log

  • Выход dlarray имеет тот же формат данных как вход dlarray.

  • Поскольку dlarray не поддерживает комплексные числа, вход dlarray должен иметь неотрицательные значения.

sec

Выход dlarray имеет тот же формат данных как вход dlarray.

sign
sin
sinh
sqrt

  • Выход dlarray имеет тот же формат данных как вход dlarray.

  • Поскольку dlarray не поддерживает комплексные числа, вход dlarray должен иметь неотрицательные значения.

tan

Выход dlarray имеет тот же формат данных как вход dlarray.

tanh
uplus, +
uminus, -

Функции Extrema

ФункцияПримечания и ограничения
ceil

Выход dlarray имеет тот же формат данных как вход dlarray.

eps

  • Выход dlarray имеет тот же формат данных как вход dlarray.

  • Используйте eps(ones(‘like’, x)) получить скалярное значение эпсилона на основе типа данных dlarray x.

fix

Выход dlarray имеет тот же формат данных как вход dlarray.

floor

Выход dlarray имеет тот же формат данных как вход dlarray.

round

  • Только синтаксис Y = round(X) поддерживается.

  • Выход dlarray имеет тот же формат данных как вход dlarray.

Функции преобразования

ФункцияПримечания и ограничения
double

Выходом является dlarray это содержит данные типа double.

logicalВыходом является dlarray это содержит данные типа logical.
singleВыходом является dlarray это содержит данные типа single.

Функции сравнения

ФункцияПримечания и ограничения
isequal

  • Синтаксис больше чем с двумя входными параметрами не поддерживается.

  • Два dlarray входные параметры равны, если числовые данные, которые они представляют, равны и если они оба или отформатированы с тем же форматом данных или восстановлены после форматирования.

isequaln

  • Синтаксис больше чем с двумя входными параметрами не поддерживается.

  • Два dlarray входные параметры равны, если числовые данные, которые они представляют, равны (обработка NaNs как равный) и если они оба или отформатированы с тем же форматом данных или восстановлены после форматирования.

Тип данных и идентификационные функции значения

ФункцияПримечания и ограничения
isfloat

Программное обеспечение применяет функцию к базовым данным входа dlarray.

islogical
isnumeric
isreal

Поскольку dlarray не поддерживает комплексные числа, эта функция всегда возвращает true для dlarray входной параметр.

Идентификационные функции размера

ФункцияПримечания и ограничения
lengthНет данных
ndims

Если вход dlarray dlX отформатирован, затем ndims(dlX) возвращает количество меток размерности, даже если некоторые помеченные размерности запаздывают одноэлементные размерности.

numelНет данных
size

Если вход dlarray dlX отформатирован, затем size(dlX) возвращает вектор из длины, равной количеству меток размерности, даже если некоторые помеченные размерности запаздывают одноэлементные размерности.

Функции создателя

ФункцияПримечания и ограничения
falseТолько 'like' синтаксис поддерживается для dlarray.
inf
nan
ones
rand
true
zeros

Смотрите также

Объекты

Связанные примеры

Больше о