Вычислите градиенты для пользовательских учебных циклов с помощью автоматического дифференцирования
Использование dlgradient
вычислить производные с помощью автоматического дифференцирования для пользовательских учебных циклов.
Совет
Для большинства задач глубокого обучения можно использовать предварительно обученную сеть и адаптировать ее к собственным данным. Для примера, показывающего, как использовать передачу обучения, чтобы переобучить сверточную нейронную сеть, чтобы классифицировать новый набор изображений, смотрите, Обучают Нейронную сеть для глубокого обучения Классифицировать Новые Изображения. В качестве альтернативы можно создать и обучить нейронные сети с нуля с помощью layerGraph
объекты с trainNetwork
и trainingOptions
функции.
Если trainingOptions
функция не обеспечивает опции обучения, в которых вы нуждаетесь для своей задачи, затем можно создать пользовательский учебный цикл с помощью автоматического дифференцирования. Чтобы узнать больше, смотрите, Задают Нейронную сеть для глубокого обучения для Пользовательских Учебных Циклов.
[
возвращает градиенты dydx1,...,dydxk
] = dlgradient(y
,x1,...,xk
)y
относительно переменных x1
через xk
.
Вызвать dlgradient
из функции, переданной dlfeval
. Смотрите вычисляют градиент Используя автоматическое дифференцирование и используют автоматическое дифференцирование в Deep Learning Toolbox.
[
заставляет градиент сохранять промежуточные значения для повторного использования в последующем dydx1,...,dydxk
] = dlgradient(y
,x1,...,xk
,'RetainData'
,true)dlgradient
вызовы. Этот синтаксис может сэкономить время, но использует больше памяти. Смотрите Советы.
dlgradient
не поддерживает производные высшего порядка. Другими словами, вы не можете передать выход a dlgradient
вызовите в другого dlgradient
вызвать.
A dlgradient
вызов должен быть в функции. Чтобы получить числовое значение градиента, необходимо оценить функциональное использование dlfeval
, и аргументом к функции должен быть dlarray
. Смотрите использование автоматическое дифференцирование в Deep Learning Toolbox.
Включить правильную оценку градиентов, y
аргумент должен использовать только поддерживаемые функции для dlarray
. См. Список Функций с Поддержкой dlarray.
Если вы устанавливаете 'RetainData'
аргумент пары "имя-значение" true
, трассировка консервов программного обеспечения на время dlfeval
вызов функции вместо того, чтобы сразу стереть трассировку после производного расчета. Это сохранение может вызвать последующее dlgradient
вызовите в том же самом dlfeval
вызовите, чтобы быть выполненными быстрее, но использует больше памяти. Например, в обучении соперничающей сети, 'RetainData'
установка полезна, потому что эти две сети осуществляют обмен данными и функции во время обучения. Смотрите Обучают Порождающую соперничающую сеть (GAN).