exponenta event banner

Создание кода для dlarray

Массив глубокого обучения хранит данные с необязательными метками формата данных для пользовательских циклов обучения и позволяет функциям вычислять и использовать производные с помощью автоматического дифференцирования. Дополнительные сведения о пользовательских циклах обучения, автоматическом различении и массивах глубокого обучения см. в разделе Индивидуальные контуры обучения глубокого обучения (панель инструментов глубокого обучения).

Создание кода поддерживает как форматированные, так и неформатированные массивы глубокого обучения. dlarray объекты, содержащие gpuArrays также поддерживаются для генерации кода. При использовании массивов глубокого обучения с генерацией кода CPU и GPU соблюдайте следующие ограничения:

Определить dlarray для создания кода

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

Существует две возможности:

Примечание

Для создания кода, dlarray входные данные для predict способ dlnetwork объект должен быть single тип данных.

Проект 1 (не рекомендуется)

В этом примере конструкции ввод и вывод в функцию точки входа, 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

Проект 2 (рекомендуется)

В этом примере конструкции входные и выходные данные для foo являются примитивными типами данных и dlarray создается внутри функции. extractdata (Deep Learning Toolbox) метод dlarray объект возвращает данные в dlarray dlA в качестве выхода foo. Продукция a имеет тот же тип данных, что и базовый тип данных в dlA.

По сравнению с Design 1, эта исходная конструкция имеет следующие преимущества:

  • Упрощение интеграции с автономными рабочими процессами создания кода, такими как статические, динамические библиотеки или исполняемые файлы.

  • Формат данных выходных данных extractdata имеет тот же порядок ('SCBTU') как в среде MATLAB, так и в сгенерированном коде.

  • Повышает производительность рабочих процессов MEX.

  • Упрощает рабочие процессы Simulink ® с использованием функциональных блоков MATLAB, поскольку 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 GPU с использованием вариационного автокодера.

dlarray Функции объекта с поддержкой генерации кода

Для создания кода доступны только функции объектов массива глубокого обучения, перечисленные в этой таблице.

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

Метки размеров для dlarray

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

Извлечь данные из dlarray

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

Поиск размеров с указанной меткой

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

Удалить dlarray этикетки

Функции набора инструментов для глубокого обучения с помощью dlarray Поддержка создания кода

Операции глубокого обучения

ФункцияОписание
fullyconnect (инструментарий для глубокого обучения)

Операция полного соединения умножает входной сигнал на весовую матрицу и затем добавляет вектор смещения.

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

Операция активации сигмоида применяет сигмоидальную функцию к входным данным.

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

Операция активации softmax применяет функцию softmax к размерности канала входных данных.

Функции MATLAB с dlarray Поддержка создания кода

Унарные элементные функции

ФункцияПримечания и ограничения
abs

Продукция dlarray имеет тот же формат данных, что и входной dlarray.

cos

Продукция dlarray имеет тот же формат данных, что и входной dlarray.

cosh
cot
csc
exp
log

  • Продукция dlarray имеет тот же формат данных, что и входной dlarray.

  • Поскольку dlarray не поддерживает комплексные числа, вход dlarray должны иметь неотрицательные значения.

sec

Продукция dlarray имеет тот же формат данных, что и входной dlarray.

sign
sin
sinh
sqrt

  • Продукция dlarray имеет тот же формат данных, что и входной dlarray.

  • Поскольку dlarray не поддерживает комплексные числа, вход dlarray должны иметь неотрицательные значения.

tan

Продукция dlarray имеет тот же формат данных, что и входной dlarray.

tanh
uplus, +
uminus, -

Экстремальные функции

ФункцияПримечания и ограничения
ceil

Продукция dlarray имеет тот же формат данных, что и входной dlarray.

eps

  • Продукция dlarray имеет тот же формат данных, что и входной dlarray.

  • Использовать eps(ones(‘like’, x)) получение скалярного значения epsilon на основе типа данных dlarray x.

fix

Продукция dlarray имеет тот же формат данных, что и входной dlarray.

floor

Продукция dlarray имеет тот же формат данных, что и входной dlarray.

round

  • Только синтаксис Y = round(X) поддерживается.

  • Продукция dlarray имеет тот же формат данных, что и входной dlarray.

Функции преобразования

ФункцияПримечания и ограничения
double

Выходные данные представляют собой dlarray который содержит данные типа double.

logicalВыходные данные представляют собой dlarray который содержит данные типа logical.
singleВыходные данные представляют собой dlarray который содержит данные типа single.

Функции сравнения

ФункцияПримечания и ограничения
isequal

  • Синтаксис с более чем двумя входными аргументами не поддерживается.

  • Два dlarray входные данные равны, если числовые данные, которые они представляют, равны, и если они оба отформатированы с одним и тем же форматом данных или неформатированы.

isequaln

  • Синтаксис с более чем двумя входными аргументами не поддерживается.

  • Два dlarray входы равны, если числовые данные, которые они представляют, равны (обработка NaNs равно) и если они оба отформатированы с одинаковым форматом данных или неформатированы.

Функции идентификации типа данных и значений

ФункцияПримечания и ограничения
isfloat

Программное обеспечение применяет функцию к базовым данным входа dlarray.

islogical
isnumeric
isreal

Поскольку dlarray не поддерживает комплексные числа, эта функция всегда возвращает true для dlarray вход.

Функции идентификации размера

ФункцияПримечания и ограничения
lengthН/Д
ndims

Если вход dlarray dlX форматируется, затем ndims(dlX) возвращает количество меток размеров, даже если некоторые из помеченных размеров являются задними одиночными размерами.

numelН/Д
size

Если вход dlarray dlX форматируется, затем size(dlX) возвращает вектор длины, равный количеству меток размеров, даже если некоторые из помеченных размеров являются задними одиночными размерами.

Функции создателя

ФункцияПримечания и ограничения
falseТолько 'like' синтаксис поддерживается для dlarray.
inf
nan
ones
rand
true
zeros

См. также

Объекты

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

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

Подробнее