dlarrayГлубокое обучение сохраняет данные с необязательными метками формата данных для пользовательских циклов обучения и позволяет функциям вычислять и использовать производные посредством автоматической дифференциации. Дополнительные сведения о пользовательских циклах обучения, автоматической дифференциации и глубоких массивах обучения см. в разделе «Пользовательские циклы обучения глубокого обучения» (Deep Learning Toolbox).
Генерация кода поддерживает как форматированные, так и неформатированные массивы глубокого обучения. dlarray объекты, содержащие gpuArrays также поддерживаются для генерации кода. Когда вы используете глубокое обучение ячеек с центральным процессором и графический процессор генерацией кода, придерживайтесь следующих ограничений:
dlarray для генерации кодаДля генерации кода используйте dlarray (Deep Learning Toolbox) функция для создания глубоких обучающих массивов. Например, предположим, что у вас есть предварительно обученный dlnetwork (Deep Learning Toolbox) сетевой объект в mynet.mat MAT-файл. Чтобы предсказать отклики для этой сети, создайте функцию точки входа в 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) | Операция полного соединения умножает вход на весовую матрицу и затем добавляет вектор смещения. |
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 | Если вход |