使用自动差异计算自定义训练环路的渐变
采用Dlgradient.
计算使用自动分化进行自定义训练循环计算衍生物。
小费
对于大多数深度学习任务,您可以使用备用网络并将其调整到您自己的数据。出于一个示例,展示了如何使用传输学习培育卷积神经网络以对新一组图像进行分类,请参阅火车深学习网络分类新形象.或者,您可以使用从头开始创建和培训网络layerGraph
与对象trainNetwork
和trainingOptions
功能。
如果是trainingOptions
功能不提供您需要的培训选项,然后您可以使用自动差异创建自定义训练循环。要了解更多信息,请参阅定义深学习网络定制培训循环.
[
返回梯度dydx1,...,dydxk
] = dlgradient(y
那X1,...,XK
)y
关于变量X1
通过XK.
.
称呼Dlgradient.
从内部功能传递给dlfeval.
.看使用自动差异计算梯度和使用自动分化深度学习工具箱.
[
使用一个或多个名称值对返回梯度和指定的附加选项。例如,dydx1,...,dydxk
] = dlgradient(y
那X1,...,XK
那名称,价值
)dydx = dlgradient(y,x,'retaindata',true)
使梯度保留中间值以供后续重用Dlgradient.
呼叫。此语法可以节省时间,但使用更多内存。有关更多信息,请参阅提示.
这DLGRIPREDENT.
功能不支持计算时计算高阶导数金宝appdlnetwork
包含自定义后向后函数的自定义图层的对象。
这DLGRIPREDENT.
功能不支持计算时计算高阶导数金宝appdlnetwork
对象含有以下层:
格拉勒
lstmLayer
bilstmLayer
这Dlgradient.
函数不支持计算依赖于以下功能的高阶导金宝app数:
GRU
LSTM.
嵌入
prod
interp1
一种Dlgradient.
呼叫必须在函数内。要获得渐变的数值,必须使用函数评估使用dlfeval.
,函数的论点必须是一个dlarray.
.看使用自动分化深度学习工具箱.
为了使梯度,在正确评价y
参数必须使用仅支持的功能金宝appdlarray.
.看与dlarray支持功能列表金宝app.
如果你设置了'etaindata'
名称 - 值对参数真的
,该软件保留了追踪的持续时间dlfeval.
函数调用,而不是衍生计算后立即删除的痕迹。这种防护可能会导致后续Dlgradient.
在同一范围内调用dlfeval.
调用更快地执行,但使用更多内存。例如,在训练对抗性网络时,'etaindata'
设置是有用的,因为两个网络在培训期间共享数据和功能。看火车生成对抗网络(GaN).
当你只需要计算一阶导数,确保'EnableHigherDerivatives'
选项是错误的
因为这是通常更快,需要较少的存储器。