Вычислите градиенты для пользовательских учебных циклов с помощью автоматического дифференцирования
Используйте 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 не поддерживает производные высшего порядка. Другими словами, вы не можете передать выход dlgradient вызовите в другой dlgradient вызвать.
dlgradient вызов должен быть в функции. Чтобы получить числовое значение градиента, необходимо выполнить функцию с помощью dlfeval, и аргументом к функции должен быть dlarray. Смотрите использование автоматическое дифференцирование в Deep Learning Toolbox.
Включить правильную оценку градиентов, y аргумент должен использовать только поддерживаемые функции в dlarray. См. Список Функций с Поддержкой dlarray.
Если вы устанавливаете 'RetainData' аргумент пары "имя-значение" true, трассировка консервов программного обеспечения на время dlfeval вызов функции вместо того, чтобы сразу стереть трассировку после производного расчета. Это сохранение может вызвать последующий dlgradient вызовите в том же dlfeval вызовите, чтобы быть выполненными быстрее, но использует больше памяти. Например, в обучении соперничающей сети, 'RetainData' установка полезна, потому что эти две сети осуществляют обмен данными и функции во время обучения. Смотрите Обучают Порождающую соперничающую сеть (GAN).