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
использование с GPU Coder™, см. «Генерация цифровых изображений на графическом процессоре NVIDIA с использованием вариационного автоэнкодера».
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 | Если вход |