exponenta event banner

dlarray Ограничения для создания кода

Рекомендуемое использование

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

См. также

Объекты

  • (инструментарий для глубокого обучения) | (инструментарий для глубокого обучения)

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

Подробнее