主要内容

dlfeval.

评估定制训练循环的深度学习模型

描述

dlfeval.评估自定义深度学习模型的自定义训练循环。

小费

对于大多数深度学习任务,您可以使用备用网络并将其调整到您自己的数据。出于一个示例,展示了如何使用传输学习培育卷积神经网络以对新一组图像进行分类,请参阅培训深度学习网络以分类新图像.或者,您可以从头创建和训练网络使用layerGraph的对象Trainnetwork.trainingOptions功能。

如果是trainingOptions功能不提供您需要的培训选项,然后您可以使用自动差异创建自定义训练循环。要了解更多信息,请参阅定义自定义训练循环的深度学习网络.

例子

[Y1,...,YK] = dlfeval(有趣的x1,…,xn评估深度学习数组函数有趣的在输入参数x1,…,xn.函数传递给dlfeval.可以包含对Dlgradient.,从输入中计算渐变x1,…,xn通过使用自动差异化。

例子

全部收缩

Rosenbrock函数是优化的标准测试函数。的罗森布罗克.M.辅助功能计算功能值,并使用自动差异来计算其渐变。

类型罗森布罗克.M.
函数[y,就要]=。(x) y = 100 * (x - x(1)(2)。^ 2)。²+ (1 - x(1)) ^2;就要= dlgradient (y、x);结尾

评估Rosenbrock的功能及其梯度[1,2], 创建一个dlarray.然后调用dlfeval.在功能手柄上@rosenbrock..

x0 = dlarray ([1, 2]);[fval, gradval] = dlfeval (x0 @rosenbrock)
Fval = 1x1 dlarray 104
Gradval = 1x2 Dlarray 396 200

或者,将RosenBrock的功能定义为两个输入的函数,X1和x2.

类型罗森布罗克2.M.
函数[y,dydx1,dydx2] = rosenbrock2(x1,x2) y = 100*(x2 - x1.^2)。^2 + (1 - x1) ^2;[dydx1, dydx2] = dlgradient (y, x1, x2);结尾

称呼dlfeval.评估rosenbrock2.在两者dlarray.表示输入的参数-12.

x1 = dlarray(-1);x2 = dlarray(2);[fval,dydx1,dydx2] = dlfeval(@ rosenbrock2,x1,x2)
Fval = 1x1 dlarray 104
dlarray 396
dydx2 = 1x1 dlarray 200

绘制RosenBrock函数的渐变,在单位广场中的几个点。首先,初始化表示评估点和函数输出的阵列。

[x1 x2] = meshgrid(linspace(0,1,10));x1 = dlarray(x1(:));x2 = dlarray(x2(:));y = dlarray(零(尺寸(x1)));dydx1 = y;dydx2 = y;

评估循环中的函数。使用结果绘制结果箭袋.

为了i = 1:长度(x1)[y(i),dydx1(i),dydx2(i)] = dlfeval(@ rosenbrock2,x1(i),x2(i));结尾箭袋(extractdata (X1)、extractdata (X2)、extractdata (DYDX1) extractdata (DYDX2))包含('x1') ylabel ('x2'

图中包含一个轴。轴包含一个颤动类型的对象。

输入参数

全部收缩

函数来评估,指定为函数句柄。如果有趣的包括A.Dlgradient.然后打电话dlfeval.使用自动微分法计算梯度。在这个梯度计算中,每个参数的Dlgradient.呼叫必须是一个dlarray.或包含a的单元阵列,结构或表dlarray..输入参数的数量dlfeval.必须与输入参数的数量相同有趣的.

例子:@rosenbrock.

数据类型:function_handle.

函数参数,指定为任何MATLAB数据类型或dlnetwork.对象。

输入参数XJ.这是a的一个微分变量Dlgradient.呼叫必须是一个追踪的dlarray.或包含追踪的单元阵列,结构或表dlarray..额外的变量,如超参数或常量数据数组不一定是dlarray..

要评估深度学习的梯度,您可以提供一个dlnetwork.对象作为函数参数,并评估内部网络的前进通行证有趣的.

例子:dlarray ([1 2; 3 4])

数据类型:单身的|双倍的|INT8.|int16|int32|INT64.|uint8.|uint16|UINT32.|UINT64|逻辑|字符|细绳|塑造|桌子|细胞|function_handle.|分类|datetime|期间|日历|FI.

输出参数

全部收缩

函数输出,作为任何数据类型返回。如果输出结果来自Dlgradient.调用时,输出是adlarray..

提示

在R2019B中介绍