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.

    Screen shot of sample report generator showing dlarray size as 1-by-1

  • В 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 объекты.

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

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

Объекты

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

Больше о