dlarray
Ограничения для генерации кодаДля генерации кода используйте dlarray
(Deep Learning Toolbox) функция, чтобы создать массивы глубокого обучения. Например, предположите, что у вас есть предварительно обученный dlnetwork
(Deep Learning Toolbox) сетевой объект в mynet.mat
Matfile. Чтобы предсказать ответы для этой сети, создайте функцию точки входа в MATLAB® как показано в этом коде.
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
Для массивов глубокого обучения у генерации кода есть нижеследующие ограничения:
Аргумент формата данных dlarray
объект должен быть постоянным временем компиляции. Например,
function out = foo() dlA = dlarray(ones(5,4),'SSC'); %fmt 'SSC' is constant . . . end
Ввод данных к dlarray
объект должен быть фиксированным размером. Например, dlarray
dlA
не поддерживается как A
переменного размера.
function dlA = foo() A = ones(5,4); coder.varsize('A') %'A' is variable sized. dlA = dlarray(A, 'SSC'); % Error: not supported. end
Генерация кода не поддерживает создание dlarray
текстовый объект при помощи coder.typeof
функция с размером верхней границы и переменными размерностями задана. Например,
function dlA = foo() A = dlarray(ones(5,4),'SC'); A_type = coder.typeof(A,[5 10],[1 0]); % Error: not supported. end
Генерация кода поддерживает использование coder.typeof
без аргументов размера. Например,
A = dlarray(ones(5,4),'SC');
A_type = coder.typeof(A);
Отчет генерации кода не отображает размер dlarray
объект. Размер всегда отображается как 1x1
.
В MATLAB, dlarray
осуществляет порядок, маркирует 'SCBTU'
. Это осуществление устраняет неоднозначную семантику в операциях, которые неявно совпадают с метками между входными параметрами. Этому поведению подражают во время генерации кода MEX. Однако для автономной генерации кода, такой как статические, динамические библиотеки или исполняемые файлы, формат данных следует спецификации fmt
аргумент dlarray
объект. В результате, если вводом или выводом функции точки входа является dlarray
возразите и его порядком меток не является 'SCBTU'
, затем формат данных будет отличаться между средой MATLAB и автономным кодом.
Например, рассмотрите функциональный foo
с dlarray
возразите как выход.
function dlA = foo() rng default dlA = dlarray(rand(5,4), 'BC'); end
В MATLAB, dlA
4(C)
- 5(B)
.
dlA = 4(C) × 5(B) dlarray 0.8147 0.9058 0.1270 0.9134 0.6324 0.0975 0.2785 0.5469 0.9575 0.9649 0.1576 0.9706 0.9572 0.4854 0.8003 0.1419 0.4218 0.9157 0.7922 0.9595
Для автономной генерации кода, dlA
5(B)
- 4(C)
.
Для генерации кода, dlarray
введите к predict
метод dlnetwork
объектом должен быть single
тип данных.