dlarrayМассив глубокого обучения хранит данные с метками формата дополнительных данных для пользовательских учебных циклов и позволяет функциям вычислить и использовать производные посредством автоматического дифференцирования. Чтобы узнать больше о пользовательских учебных циклах, автоматическое дифференцирование и массивы глубокого обучения, видят Глубокое обучение Пользовательские Учебные Циклы (Deep Learning Toolbox).
Генерация кода поддерживает и отформатированные и восстановленные после форматирования массивы глубокого обучения. dlarray объекты, содержащие gpuArrays также поддерживаются для генерации кода. Когда вы используете массивы глубокого обучения с генерацией кода центрального процессора и графического процессора, придерживаетесь этих ограничений:
dlarray для генерации кодаДля генерации кода используйте dlarray (Deep Learning Toolbox) функция, чтобы создать массивы глубокого обучения. Например, предположите, что у вас есть предварительно обученный dlnetwork (Deep Learning Toolbox) сетевой объект в mynet.mat Matfile. Чтобы предсказать ответы для этой сети, создайте функцию точки входа в MATLAB®.
Существует две возможности:
Примечание
Для генерации кода, dlarray введите к predict метод dlnetwork объектом должен быть single тип данных.
В этом примере проекта, вводе и выводе к функции точки входа, 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
В этом примере проекта, вводе и выводе к 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 Функции объекта с поддержкой генерации кодаДля генерации кода вы ограничиваетесь функциями объекта глубокого обучения массивов, перечисленными в этой таблице.
| Размерность помечает для |
| Извлеките данные из |
| Найдите размерности с заданной меткой |
| Удалите |
dlarray Поддержка генерации кода| Функция | Описание |
|---|---|
fullyconnect (Deep Learning Toolbox) | Полностью операция connect умножает вход на матрицу веса и затем добавляет вектор смещения. |
sigmoid (Deep Learning Toolbox) | Сигмоидальная операция активации применяет сигмоидальную функцию к входным данным. |
softmax (Deep Learning Toolbox) | softmax операция активации применяет функцию softmax к размерности канала входных данных. |
dlarray Поддержка генерации кода| Функция | Примечания и ограничения |
|---|---|
abs | Выход |
cos | Выход |
cosh | |
cot | |
csc | |
exp | |
log |
|
sec | Выход |
sign | |
sin | |
sinh | |
sqrt |
|
tan | Выход |
tanh | |
uplus, + | |
uminus, - |
| Функция | Примечания и ограничения |
|---|---|
ceil | Выход |
eps |
|
fix | Выход |
floor | Выход |
round |
|
| Функция | Примечания и ограничения |
|---|---|
isequal |
|
isequaln |
|
| Функция | Примечания и ограничения |
|---|---|
length | Нет данных |
ndims | Если вход |
numel | Нет данных |
size | Если вход |