dlgradient
描述
使用dlgradient
计算衍生品使用自动分化为自定义训练循环。
提示
对于大多数深度学习的任务,您可以使用一个pretrained神经网络和适应您自己的数据。为例展示如何使用转移学习再教育卷积神经网络分类一套新的图片,明白了火车深入学习网络对新图像进行分类。或者,您可以创建和使用从头训练神经网络layerGraph
的对象trainNetwork
和trainingOptions
功能。
如果trainingOptions
功能不提供训练选项,你需要你的任务,你可以创建一个自定义训练循环使用自动分化。欲了解更多,请看为自定义训练循环定义深度学习网络。
(
返回的梯度dydx1,…, dydxk
)= dlgradient (y
,x1,…, xk
)y
关于变量x1
通过xk
。
调用dlgradient
从传递给函数dlfeval
。看到计算梯度使用自动分化和在深度学习工具箱使用自动分化。
(
返回梯度和指定附加选项使用一个或多个名称-值对。例如,dydx1,…, dydxk
)= dlgradient (y
,x1,…, xk
,名称,值
)就要= dlgradient (y, x, RetainData,真的)
导致梯度保留中间值在随后的重用dlgradient
调用。这个语法可以节省时间,但使用更多的内存。有关更多信息,请参见提示。
例子
输入参数
输出参数
限制
的
dlgradient
功能不支持计算高阶衍生品在使用金宝appdlnetwork
对象包含自定义层与向后一个自定义函数。的
dlgradient
功能不支持计算高阶衍生品在使用金宝appdlnetwork
对象包含以下层:gruLayer
lstmLayer
bilstmLayer
的
dlgradient
功能不支持计算高阶导数,取决于以下功金宝app能:格勒乌
lstm
嵌入
刺激
interp1
更多关于
提示
一个
dlgradient
调用必须在一个函数。获得一个数字值的梯度,你必须评估函数使用dlfeval
,参数必须是一个函数dlarray
。看到在深度学习工具箱使用自动分化。梯度,使正确的评价,
y
参数必须使用仅支持功能金宝appdlarray
。看到与dlarray支持函数的列表金宝app。如果你设置
“RetainData”
名称-值对参数真正的
期间,软件保持跟踪dlfeval
函数调用,而不是消除后立即跟踪导数计算。这种保护可以导致后续dlgradient
电话在同一dlfeval
调用被执行得更快,但使用更多的内存。例如,在训练一个敌对的网络“RetainData”
设置是有用的,因为两个网络共享数据和函数在训练。看到火车生成对抗网络(甘)。当您只需要计算一阶导数,确保
“EnableHigherDerivatives”
选择是假
因为这是通常更快,需要更少的内存。使用线路复杂的梯度计算导数。增加的方向的梯度定义函数的实部来区分。这是因为变量来区分——例如,损失,必须真实,即使是复杂的函数。
扩展功能
版本历史
介绍了R2019b