dlarray

Массив глубокого обучения для пользовательских учебных циклов

Описание

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

Совет

Для большинства задач глубокого обучения можно использовать предварительно обученную сеть и адаптировать ее к собственным данным. Для примера, показывающего, как использовать передачу обучения, чтобы переобучить сверточную нейронную сеть, чтобы классифицировать новый набор изображений, смотрите, Обучают Нейронную сеть для глубокого обучения Классифицировать Новые Изображения. В качестве альтернативы можно создать и обучить нейронные сети с нуля с помощью layerGraph объекты с trainNetwork и trainingOptions функции.

Если trainingOptions функция не обеспечивает опции обучения, в которых вы нуждаетесь для своей задачи, затем можно создать пользовательский учебный цикл с помощью автоматического дифференцирования. Чтобы узнать больше, смотрите, Задают Нейронную сеть для глубокого обучения для Пользовательских Учебных Циклов.

Создание

Описание

пример

dlX = dlarray(X) возвращает dlarray объект, представляющий X. Если X dlarray, dlX копия X.

пример

dlX = dlarray(X,fmt) форматирует данные в dlX с размерностью помечает согласно формату данных в fmt. Размерность помечает справку мимоходом данными о глубоком обучении между функциями. Для получения дополнительной информации о метках размерности смотрите Использование. Если X отформатированный dlarray, затем fmt заменяет существующий формат.

пример

dlX = dlarray(v,dim) принимает векторный v и односимвольный формат dim, и возвращает вектор-столбец dlarray. Первая размерность dlX имеет метку dim размерности, и второе (одиночный элемент) размерность имеет метку 'U' размерности.

Входные параметры

развернуть все

Массив данных в виде числового массива типа данных double или single, logical массив, gpuArray объект или dlarray объект. X должно быть полным, не разреженным.

Пример: rand(31*23,23)

Типы данных: single | double | logical
Поддержка комплексного числа: Да

Формат данных в виде вектора символов или строкового скаляра. Каждый символ в fmt должна быть одна из следующих меток размерности:

  • S — Пространственный

  • C — Канал

  • B — Пакетные наблюдения

  • T — Время или последовательность

  • U — Незаданный

Можно задать любое количество S и U метки. Можно задать самое большее один из каждого CB, и T метки.

Каждый элемент fmt помечает соответствующую размерность dlX. Если fmt не находится в перечисленном порядке ('S' сопровождаемый 'C' и так далее), затем dlarray неявно переставляет оба fmt и данные, чтобы совпадать с порядком, не изменяя устройство хранения данных данных.

fmt должен содержать, по крайней мере, то же количество меток размерности как количество размерностей dlX. Если вы задаете больше, чем то количество меток размерности, dlarray создает пустой (одиночный элемент) размерности для дополнительных меток.

Следующая таблица указывает на рекомендуемые форматы данных для общих типов данных.

Данные Пример
ФормаФормат данных
2D изображения

h-by-w-by-c-by-n числовой массив, где h, w, c и n являются высотой, шириной, количеством каналов изображений и количеством наблюдений, соответственно.

"SSCB"
3-D изображенияh-by-w-by-d-by-c-by-n числовой массив, где h, w, d, c и n являются высотой, шириной, глубиной, количеством каналов изображений и количеством наблюдений изображений, соответственно."SSSCB"
Векторные последовательности

c-by-s-by-n матрица, где c является количеством функций последовательности, s, является длиной последовательности, и n является количеством наблюдений последовательности.

"CTB"
2D последовательности изображений

h-by-w-by-c-by-s-by-n массив, где h, w и c соответствуют высоте, ширине и количеству каналов изображения, соответственно, s, является длиной последовательности, и n является количеством наблюдений последовательности изображений.

"SSCTB"
3-D последовательности изображений

h-by-w-by-d-by-c-by-s-by-n массив, где h, w, d и c соответствуют высоте, ширине, глубине и количеству каналов изображения, соответственно, s, является длиной последовательности, и n является количеством наблюдений последовательности изображений.

"SSSCTB"
Функцииc-by-n массив, где c является количеством функций и n, является количеством наблюдений."CB"

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

Пример: "SSB"

Пример: 'CBUSS', который dlarray переупорядочивание к 'SSCBU'

Вектор данных в виде числового вектора из типа данных удваивается или один, логический вектор или dlarray векторный объект. Здесь, "вектор" означает любой массив точно с одной неодноэлементной размерностью.

Пример: rand(100,1)

Метка Dimension в виде отдельного символа типа допускала fmt.

Примеры

Примеры

Выходные аргументы

развернуть все

Массив глубокого обучения, возвращенный как dlarray объект. dlX включает автоматическое использование дифференцирования dlgradient и dlfeval. Если вы предоставляете fmt аргумент, dlX имеет метки.

  • Если X числовой или логический массив, dlX содержит его данные, возможно переупорядоченные из-за формата данных в fmt.

  • Если X gpuArray, данные в dlX находится также на графическом процессоре. Последующие вычисления с помощью dlX выполняются на графическом процессоре.

Использование

dlarray форматы данных позволяют вам выполнить функции в следующей таблице с обеспечением, что данные имеют соответствующую форму.

ФункцияОперацияПодтверждает входную размерностьВлияет на размер входной размерности
avgpoolВычислите среднее значение входных данных по перемещению прямоугольного (или кубовидный) пространственный ('S') области заданы параметром размера пула.'S''S'
batchnormНормируйте значения, содержавшиеся в каждом канале ('C') из входных данных.'C' 
crossentropyВычислите перекрестную энтропию между оценками и целевыми значениями, усредненными размером пакета ('B') размерность.'S'CBTU (Оценки и целевые массивы должны иметь те же размеры.)'S'CBTU (Выход является бесформатным скаляром.)
dlconvВычислите свертку глубокого обучения входных данных с помощью массива фильтров, совпадая с количеством пространственных ('S') и (функция) канал ('C') размерности входа и добавление систематической ошибки.'S'C'S'C
dltranspconvВычислите транспонированную свертку глубокого обучения входных данных с помощью массива фильтров, совпадая с количеством пространственных ('S') и (функция) канал ('C') размерности входа и добавление систематической ошибки.'S'C'S'C
fullyconnectВычислите взвешенную сумму входных данных и примените смещение для каждого пакета ('B') и время ('T') размерность.'S'CU'S'CBTU (Выведите, всегда имеет формат данных 'CB'ct , или 'CTB'.)
gru

Примените закрытое текущее модульное вычисление к входным данным.

'S'CT'C'
lstm

Примените долгое краткосрочное вычисление памяти к входным данным.

'S'CT'C'
maxpoolВычислите максимум входных данных по перемещению прямоугольного пространственный ('S') области заданы параметром размера пула.'S''S'
maxunpoolВычислите операцию необъединения по пространственному ('S'Размерности.'S''S'
mseВычислите половину среднеквадратической ошибки между оценками и целевыми значениями, усредненными размером пакета ('B') размерность.'S'CBTU (Оценки и целевые массивы должны иметь те же размеры.)'S'CBTU (Выход является бесформатным скаляром.)
softmaxПримените softmax активацию к каждому каналу ('C') из входных данных.'C' 

Эти функции требуют, чтобы каждая размерность имела метку. Можно задать формат этикетки размерности путем обеспечения первого входа как отформатированного dlarray, или при помощи 'DataFormat' аргумент значения имени функции.

dlarray осуществляет упорядоченное расположение метки размерности 'SCBTU'. Это осуществление устраняет неоднозначную семантику в операциях, которые неявно совпадают с метками между входными параметрами. dlarray также осуществляет это, размерность маркирует 'C'B, и 'T' может каждый появиться самое большее однажды. Функции, которые используют эти метки размерности, принимают самое большее одну размерность для каждой метки.

dlarray обеспечивает функции для получения формата данных, сопоставленного с dlarray (dims), удаляя формат данных (stripdims) и получение размерностей, сопоставленных с определенными метками размерности (finddim).

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

Функции объекта

avgpoolОбъедините данные к средним значениям по пространственным размерностям
batchnormНормируйте данные через все наблюдения для каждого канала независимо
crossentropyПотеря перекрестной энтропии для задач классификации
dimsМетки размерности dlarray
dlconvСвертка глубокого обучения
dlgradientВычислите градиенты для пользовательских учебных циклов с помощью автоматического дифференцирования
dltranspconvГлубокое обучение транспонировало свертку
extractdataИзвлеките данные из dlarray
finddimНайдите размерности с заданной меткой
fullyconnectСуммируйте все взвешенные входные данные и примените смещение
gruЗакрытый текущий модуль
leakyreluПримените текучую исправленную линейную модульную активацию
lstmДолгая краткосрочная память
maxpoolОбъедините данные к максимальному значению
maxunpoolНе объедините выход максимальной операции объединения
mseПоловина среднеквадратической ошибки
reluПримените исправленную линейную модульную активацию
sigmoidПримените сигмоидальную активацию
softmaxПримените softmax активацию, чтобы образовать канал размерность
stripdimsУдалите dlarray формат данных

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

Примеры

свернуть все

Создайте бесформатный dlarray из матрицы.

X = randn(3,5);
dlX = dlarray(X)
dlX = 
  3x5 dlarray

    0.5377    0.8622   -0.4336    2.7694    0.7254
    1.8339    0.3188    0.3426   -1.3499   -0.0631
   -2.2588   -1.3077    3.5784    3.0349    0.7147

Создайте dlarray это имеет формат данных, содержащий размерность, маркирует 'S' и 'C'.

X = randn(3,5);
dlX = dlarray(X,'SC')
dlX = 
  3(S) x 5(C) dlarray

    0.5377    0.8622   -0.4336    2.7694    0.7254
    1.8339    0.3188    0.3426   -1.3499   -0.0631
   -2.2588   -1.3077    3.5784    3.0349    0.7147

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

dlX = dlarray(X,'CS')
dlX = 
  5(S) x 3(C) dlarray

    0.5377    1.8339   -2.2588
    0.8622    0.3188   -1.3077
   -0.4336    0.3426    3.5784
    2.7694   -1.3499    3.0349
    0.7254   -0.0631    0.7147

Создайте dlarray вектор с первой меткой 'T' размерности. Метка второго измерения, который dlarray автоматически создает, 'U'.

X = randn(6,1);
dlX = dlarray(X,'T')
dlX = 
  6(T) x 1(U) dlarray

    0.5377
    1.8339
   -2.2588
    0.8622
    0.3188
   -1.3077

Если вы задаете вектор-строку для X, dlarray неявно переупорядочивает результат быть вектор-столбцом.

X = X';
dlX = dlarray(X,'T')
dlX = 
  6(T) x 1(U) dlarray

    0.5377
    1.8339
   -2.2588
    0.8622
    0.3188
   -1.3077

Советы

Расширенные возможности

Введенный в R2019b