主要内容

深度学习网络组成

要创建一个本身定义了层图的自定义层,可以声明dlnetwork对象中作为可学习参数的属性(可学的)部分的层定义。这种方法被称为网络的作文.你可以使用网络合成:

  • 创建一个单独的自定义层,表示一个可学习层的块,例如,一个剩余块。

  • 创建一个具有控制流的网络,例如,一个具有可以根据输入数据动态更改的部分的网络。

  • 创建一个带有循环的网络,例如,一个带有将输出反馈回自身的部分的网络。

对于同时具有可学习参数和状态参数的嵌套网络,例如具有批处理归一化层或LSTM层的网络,在属性(可学习,状态)部分的层定义。

一个示例显示如何定义一个包含可学习对象的自定义层dlnetwork对象,看到定义嵌套深度学习层

有关显示如何使用嵌套层训练网络的示例,请参见用嵌套层训练深度学习网络

自动初始化可学习对象dlnetwork培训目标

您可以创建一个自定义层,并允许软件自动初始化任何嵌套的可学习参数dlnetwork完全构造父网络之后的对象。嵌套网络的自动初始化意味着您不需要跟踪传递给每个包含嵌套的自定义层的输入的大小和形状dlnetwork

使用预测而且向前功能dlnetwork对象时,输入数据必须格式化dlarray对象。确保软件经过格式化dlarray对象的层函数,包括Formattable类定义中的Mixin。

classdefmyLayer < nnet.layer.Layer & nnet.layer.Formattable...结束

要利用自动初始化,必须指定构造函数创建一个未初始化的对象dlnetwork对象。创建一个未初始化的dlnetwork对象,设置初始化名称-值选项为false。您不需要指定输入层,因此不需要为该层指定输入大小。

函数图层= myLayer初始化层属性。...定义网络。层= [%网络层到这里。];层。网络= dlnetwork(lgraph,初始化=false);结束

当父网络初始化时,任何嵌套的可学习参数dlnetwork对象同时初始化。可学习参数的大小取决于自定义层输入数据的大小。软件通过嵌套网络传播数据,并根据传播的大小和嵌套网络各层的初始化属性自动初始化参数。

如果父网络是使用trainNetwork函数,然后任意嵌套dlnetwork对象在调用时初始化trainNetwork.如果父网络是dlnetwork,则任意嵌套dlnetwork对象在父网络被构造时初始化(如果父网络被构造dlnetwork在构造时初始化)或当您使用初始化函数与父网络(如果父网络dlnetwork在构造时未初始化)。

如果不想使用自动初始化,可以使用已经初始化的嵌套网络构造自定义层。在这种情况下,嵌套网络在父网络之前初始化。要在构造时初始化嵌套网络,必须手动指定嵌套网络的任何输入的大小。这需要手动指定嵌套网络的任何输入的大小。方法的输入层或提供示例输入可以实现这一点dlnetwork构造函数。类型的任何输入的大小都必须指定dlnetwork对象时,您可能需要在创建层时指定输入大小。属性可以帮助确定层的输入大小analyzeNetwork函数并检查之前图层的激活大小。

预测和转发功能

一些层在训练和预测期间表现不同。例如,dropout层只在训练期间执行dropout,在预测期间没有影响。一个层使用两个函数之一来执行向前传递:预测向前.如果前向传递在预测时间,则该层使用预测函数。如果前向传递是在训练时间,那么层使用向前函数。如果预测时间和训练时间不需要两个不同的函数,则可以省略向前函数。当你这样做时,该层使用预测在训练时间。

在实现预测向前功能的自定义层,以确保层dlnetwork对象的正确行为,则使用预测而且向前功能dlnetwork对象,分别。

自定义层与可学习dlnetwork对象不支持自定义向后函数。万博1manbetx

此示例代码显示如何使用预测而且向前功能与dlnetwork输入。

函数Z = predict(图层,X)使用网络预测。net = layer.Network;Z =预测(净,X);结束函数Z =向前(层,X)使用网络转发通过的百分比。net = layer.Network;Z =正向(净,X);结束

如果dlnetwork对象在训练和预测过程中没有不同的行为,则可以省略正向函数。在这种情况下,软件使用预测在训练中发挥作用。

GPU的兼容性

如果层转发功能完全支持万博1manbetxdlarray对象,那么该层是GPU兼容的。否则,为了与GPU兼容,层函数必须支持类型的输入和返回输出万博1manbetxgpuArray(并行计算工具箱)

许多MATLAB®内置功能支持万博1manbetxgpuArray(并行计算工具箱)而且dlarray输入参数。获取支持的函数列表万博1manbetxdlarray对象,看到支持dlarray的函数列表万博1manbetx.有关在GPU上执行的函数的列表,请参见在图形处理器上运行MATLAB函数(并行计算工具箱)要使用GPU进行深度学习,还必须有支持GPU的设备。万博1manbetx有关受支持设备的信息,请参见万博1manbetxGPU计算要求(并行计算工具箱)有关在MATLAB中使用gpu的更多信息,请参见MATLAB中的GPU计算(并行计算工具箱)

另请参阅

||||

相关的话题