深入学习网络组成
要创建一个自定义层本身定义了一层图,你可以声明一个dlnetwork
作为一个可学的参数对象属性(可学的)
部分层定义。这种方法被称为网络的作文。您可以使用网络作文:
创建一个自定义层代表一块可学的层,例如,一个残块。
创建一个网络与控制流,例如,一个网络的部分可以动态地改变取决于输入数据。
创建一个网络与循环,例如,一个网络部分饲料输出回本身。
嵌套网络都可学的和状态参数,例如,网络与批量标准化或LSTM层,宣布的网络属性(可学的,国家)
部分层定义。
为一个例子,演示如何定义一个自定义层包含一个可学的dlnetwork
对象,看到定义嵌套深度学习层。
为一个例子,演示如何训练一个网络嵌套层,明白了火车深学习网络嵌套层。
自动初始化可学的dlnetwork
培训对象
您可以创建一个自定义图层,让软件自动初始化任何嵌套的可学的参数dlnetwork
父后网络完全构造对象。嵌套网络的自动初始化意味着你不需要跟踪的大小和形状的输入传递给每个定制层包含一个嵌套dlnetwork
使用预测
和向前
功能dlnetwork
必须格式化对象,输入数据dlarray
对象。确保软件经过格式化的dlarray
对象层功能,包括Formattable
mixin类定义。
classdefmyLayer < nnet.layer。层& nnet.layer.Formattable…结束
利用自动初始化时,您必须指定该构造函数创建一个未初始化的dlnetwork
对象。创建一个未初始化的dlnetwork
对象,设置初始化
名称错误的选项。你不需要指定一个输入层,因此您不需要指定一个输入规模的层。
函数层= myLayer%初始化层属性。…%定义网络。层= [%网络层到这里。];层。网络= dlnetwork (lgraph,初始化= false);结束
当父网络初始化,可学的任何嵌套的参数dlnetwork
对象初始化在同一时间。可学的参数的大小取决于输入数据的大小自定义层。软件通过嵌套网络传播数据并自动初始化参数根据大小和传播的初始化属性层嵌套网络。
如果父母网络训练使用trainNetwork
函数,那么任何嵌套的dlnetwork
对象初始化时调用trainNetwork
。如果父母是一个网络dlnetwork
,那么任何嵌套的dlnetwork
构造对象时初始化父网络(如果父母dlnetwork
初始化建设)或当你使用初始化
与父母网络功能(如果父母dlnetwork
在建设不是初始化)。
如果你不想使用自动初始化,您可以构建自定义层的嵌套网络已经初始化。在这种情况下,嵌套网络之前初始化父网络。初始化嵌套网络建设,您必须手动指定任何嵌套的输入网络的大小。这需要手动指定任何嵌套的输入网络的大小。可以通过使用输入层或通过提供输入示例dlnetwork
构造函数。因为你必须指定任何输入的大小dlnetwork
对象,您可能需要指定输入大小当您创建图层。帮忙确定输入层的大小,您可以使用analyzeNetwork
大小的函数,检查前一层的激活。
预测和转发功能
一些层在训练和在预测上的表现也不同。例如,一个辍学层执行辍学只在训练和预测期间没有任何影响。一层使用两个函数来执行一个传球前进:预测
或向前
。如果前进传球在预测时间,然后层使用预测
函数。如果前进传球训练时间,然后层使用向前
函数。如果你不需要两个不同的功能预测时间和培训时间,然后你就可以省略了向前
函数。当你这样做时,层使用预测
在训练时间。
当实现预测
和向前
自定义功能层,确保层dlnetwork
对象的行为的正确方法,使用预测
和向前
功能dlnetwork
对象,分别。
自定义层与可学的dlnetwork
向后对象不支持自定义功能。金宝app
此示例代码显示了如何使用预测
和向前
功能与dlnetwork
输入。
函数Z =预测(层,X)%预测使用网络。网= layer.Network;Z =预测(净,X);结束函数Z =前进(层,X)%提出通过使用网络。网= layer.Network;Z =前进(净,X);结束
如果dlnetwork
对象没有在训练和预测上的表现也不同,那么你可以省略转发功能。在这种情况下,软件使用预测
函数在训练。
GPU的兼容性
如果层转发功能完全支持金宝appdlarray
对象,则GPU兼容层。否则,必须支持GPU兼容,层功能的输入并返回输出类型金宝appgpuArray
(并行计算工具箱)。
许多MATLAB®内置函数支持金宝appgpuArray
(并行计算工具箱)和dlarray
输入参数。支持的功能列表金宝appdlarray
对象,看到与dlarray支持函数的列表金宝app。对GPU执行的函数的列表,看看运行在GPU MATLAB函数(并行计算工具箱)。使用GPU深度学习,你也必须有一个支持GPU设备。金宝app支持设备的信息,请参阅金宝appGPU的金宝app支持版本(并行计算工具箱)。在MATLAB与gpu的更多信息,见在MATLAB GPU计算(并行计算工具箱)。
另请参阅
checkLayer
|trainNetwork
|trainingOptions
|analyzeNetwork
|dlnetwork