主要内容

指定自定义输出层向后损耗功能

如果深度学习工具箱™不提供您的分类或回归问题所需的层,那么您可以定义自己的自定义层。有关内置层的列表,请参见深度学习层列表

这个例子定义自定义分类输出层演示了如何定义和创建一个自定义分类输出层的平方和误差(SSE)损失,并通过以下步骤:

  1. 命名层-给层一个名字,以便它可以在MATLAB中使用®

  2. 声明图层属性-指定图层的属性。

  3. 创建构造函数(可选)-指定如何构造层和初始化它的属性。如果您没有指定构造函数,则软件将初始化属性''在创建。

  4. 创建前向损失函数——指定预测和训练目标之间的损失。

  5. 创建向后损失函数(可选)-指定损失相对于预测的导数。如果不指定向后损失函数,则向前损失函数必须支持金宝appdlarray对象。

创建后向损耗功能是可选的。如果前向损耗函数仅使用支持的功能金宝appdlarray对象,然后软件通过自动鉴别自动确定衍生品。获取支持的函数列表金宝appdlarray对象,参见Dlarray支持的函数列表金宝app.如果你想使用不支持的函数金宝appdlarray对象,或希望为向后损失函数使用特定算法,则可以使用此示例作为指南定义自定义向后函数。

创建自定义层

这个例子定义自定义分类输出层演示如何创建SSE分类层。

分类SSE层计算分类问题的平方和误差损失。SSE是两个连续随机变量之间的错误测量。为了预测Y和培训目标T,SSE损失之间YT是由

l 1 N n 1 N 1 K Y n T n 2

在哪里N是观察人数和K为类数。

查看示例中创建的图层定义自定义分类输出层.这一层没有背瓣函数。

classdefsseclassificationlayer %示例自定义分类层,具有方块错误丢失的总和。方法功能tillay = sseclassificationlayer(名称)%layer = sseclassificationlayer(name)创建一个正方形%错误分类层,并指定层名。%设置图层名称。层。Name = name;%设置图层描述。层。描述=平方和误差结束功能loss = forwardLoss(layer, Y, T)% loss = forwardLoss(layer, Y, T)返回SSE之间的损失%预测Y和训练目标T。%计算平方和。SUMSQUARES = SUM((Y-T)。^ 2);在小批量上取平均值。N =大小(Y, 4);损失= (sumSquares) / N;结束结束结束

创建向后损失函数

实现背瓣函数返回到输入数据和可知参数的丢失衍生物。

的语法背瓣dLdY = backwardLoss(layer, Y, T).输入Y包含网络和网络所做的预测T包含培训目标。输出dLdY是关于预测的损失的衍生物Y.输出dLdY必须与图层输入的大小相同Y

的尺寸YT与输入相同forwardLoss

SSE损失相对于预测的导数Y是由

δ. l δ. Y 2 N Y T

在哪里N为输入中观测值的个数。

创建返回这些衍生工具的后退损耗函数。

功能dLdY = backwardLoss(layer, Y, T)% dLdY = backwardLoss(layer, Y, T)返回% SSE损失相对于预测Y。N =大小(Y, 4);DLDY = 2 *(Y-T)/ n;结束

完整的一层

查看已完成的图层类文件。

classdefsseclassificationlayer %示例自定义分类层,具有方块错误丢失的总和。方法功能tillay = sseclassificationlayer(名称)%layer = sseclassificationlayer(name)创建一个正方形%错误分类层,并指定层名。%设置图层名称。层。Name = name;%设置图层描述。层。描述=平方和误差结束功能loss = forwardLoss(layer, Y, T)% loss = forwardLoss(layer, Y, T)返回SSE之间的损失%预测Y和训练目标T。%计算平方和。SUMSQUARES = SUM((Y-T)。^ 2);在小批量上取平均值。N =大小(Y, 4);损失= (sumSquares) / N;结束功能dLdY = backwardLoss(layer, Y, T)% dLdY = backwardLoss(layer, Y, T)返回% SSE损失相对于预测Y。N =大小(Y, 4);DLDY = 2 *(Y-T)/ n;结束结束结束

GPU的兼容性

如果层转发功能完全支持金宝appdlarray对象,然后该图层是GPU兼容。否则,兼容GPU,图层函数必须支持类型的输入和返回输出金宝appgpuArray(并行计算工具箱)

许多MATLAB内置函数支持金宝appgpuArray(并行计算工具箱)dlarray输入参数。获取支持的函数列表金宝appdlarray对象,参见Dlarray支持的函数列表金宝app.有关在GPU上执行的函数列表,请参见在GPU上运行MATLAB函数(并行计算工具箱)要使用GPU进行深度学习,您还必须有支持的GPU设备。金宝app有关支持的设备的信息,请参见金宝appGPU通金宝app过发布支持(并行计算工具箱)有关在MATLAB中使用gpu的更多信息,请参见MATLAB中的GPU计算(并行计算工具箱)

另请参阅

|

相关话题