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'.

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

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

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

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

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

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

  • C — Канал

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

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

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

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

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

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

Для получения информации о fmt, смотрите Использование.

Пример: "SSB"

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

Вектор данных в виде числового вектора типа данных удваивается или один, логический вектор, gpuArray векторный объект или 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 обеспечивает функции для удаления меток (stripdims), получая размерности, сопоставленные с метками (finddim), и листинг меток сопоставлен с dlarray (dims).

Для получения дополнительной информации о как 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 из матрицы.

rng default % For reproducibility
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'.

rng default % For reproducibility
X = randn(3,5);
dlX = dlarray(X,'SC')
dlX = 
  3(S) × 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) × 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'.

rng default % For reproducibility
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