主要内容

格勒乌

封闭的复发性单元

描述

封闭的复发性单元(格勒乌)操作允许网络学习时间步骤时间序列和序列数据之间的依赖关系。

请注意

这个函数应用深度学习格勒乌操作dlarray数据。如果你想申请一个格勒乌操作在一个layerGraph对象或数组,使用以下层:

例子

海底=格勒乌(dlX,H0,权重,recurrentWeights,偏见)一个封闭的复发性单元(格勒乌)计算适用于输入dlX使用最初的隐藏状态H0和参数权重,recurrentWeights,偏见。输入dlX必须是一个格式化的dlarray。输出海底是一个格式化的dlarray同样的尺寸格式dlX,除了任何“年代”维度。

格勒乌函数使用双曲正切函数更新隐藏的状态(双曲正切)状态激活函数。的格勒乌函数使用的s形的函数 σ ( x ) = ( 1 + e x ) 1 随着门激活函数。

(海底,hiddenState)=格勒乌(dlX,H0,权重,recurrentWeights,偏见)格勒乌操作后还返回隐藏状态。

(___)=格勒乌(___“DataFormat”,FMT)还指定了尺寸格式FMTdlX不是一个格式化的dlarray。输出海底是一个非格式化dlarray顺序相同的维度dlX,除了任何“年代”维度。

例子

全部折叠

使用100隐藏单位执行格勒乌操作。

创建输入序列数据32观察十频道和序列长度为64。

numFeatures = 10;numObservations = 32;sequenceLength = 64;X = randn (numFeatures numObservations sequenceLength);dlX = dlarray (X,“认知行为治疗”);

用100个隐藏单位创建初始隐藏状态。对所有观察使用相同的初始隐藏状态。

numHiddenUnits = 100;H0 = 0 (numHiddenUnits, 1);

创建可学的格勒乌操作的参数。

重量= dlarray (randn (3 * numHiddenUnits numFeatures));recurrentWeights = dlarray (randn (3 * numHiddenUnits numHiddenUnits));偏见= dlarray (randn (3 * numHiddenUnits, 1));

执行格勒乌计算。

[海底,hiddenState] =格勒乌(H0 dlX,重量、recurrentWeights、偏差);

视图的大小和尺寸格式海底

大小(海底)
ans =1×3100 32 64
dlY.dims
ans =“认知行为治疗”

视图的大小hiddenState

大小(hiddenState)
ans =1×2100年32

您可以使用隐藏的状态跟踪的状态进一步格勒乌操作和输入序列数据。

输入参数

全部折叠

输入数据,指定为一个格式化的dlarray,一个非格式化dlarray或数字数组。当dlX不是一个格式化的dlarray,您必须指定维度标签格式使用FMT, DataFormat”。如果dlX是一个数值数组,至少有一个的H0,权重,recurrentWeights,或偏见必须是一个dlarray

dlX必须包含一个序列维标签吗“T”。如果dlX有任何空间维度标签吗“年代”,它们夷为平地“C”通道尺寸。如果dlX没有一个通道尺寸,然后一个是补充道。如果dlX尺寸标注不明确吗“U”,他们必须独立。

数据类型:|

最初的隐藏状态向量,指定为一个格式化的dlarray,一个非格式化dlarray或数字数组。

如果H0是一个格式化的dlarray,它必须包含一个通道尺寸标注“C”和可选一批尺寸标注“B”相同的大小“B”维度的dlX。如果H0没有一个“B”维度,这个函数使用相同的隐藏状态向量中每个观测dlX

如果H0是一个格式化的dlarray,然后的大小“C”尺寸决定隐藏单位的数量。否则,第一个维度的大小决定隐藏单位的数量。

数据类型:|

重量、指定为一个格式化的dlarray,一个非格式化dlarray或数字数组。

指定权重矩阵的大小3 * NumHiddenUnits——- - - - - -InputSize,在那里NumHiddenUnits的大小吗“C”维度的H0,InputSize的大小吗“C”维度的dlX乘以每个的大小“年代”维度的dlX,礼物。

如果权重是一个格式化的dlarray,它必须包含一个“C”尺寸的大小3 * NumHiddenUnits和一个“U”尺寸的大小InputSize

数据类型:|

经常性的权重,指定为一个格式化的dlarray,一个非格式化dlarray或数字数组。

指定recurrentWeights矩阵的大小3 * NumHiddenUnits——- - - - - -NumHiddenUnits,在那里NumHiddenUnits的大小吗“C”维度的H0

如果recurrentWeights是一个格式化的dlarray,它必须包含一个“C”尺寸的大小3 * NumHiddenUnits和一个“U”尺寸的大小NumHiddenUnits

数据类型:|

偏见,指定为一个格式化的dlarray,一个非格式化dlarray或数字数组。

指定偏见作为一个向量的长度3 * NumHiddenUnits,在那里NumHiddenUnits的大小吗“C”维度的H0

如果偏见是一个格式化的dlarray必须贴上,nonsingleton维度“C”

数据类型:|

维度的非格式化输入数据,指定为逗号分隔组成的“DataFormat”和一个字符数组或字符串FMT为每个维度的数据提供一个标签。每个字符在FMT必须是下列之一:

  • “年代”——空间

  • “C”——频道

  • “B”批处理(例如,样品和观察)

  • “T”时间(例如,序列)

  • “U”——未指明的

您可以指定多个维度标签“年代”“U”。您可以使用标签“C”,“B”,“T”最多一次。

您必须指定FMT, DataFormat”当输入数据不是一个格式化的dlarray

例子:“DataFormat”、“SSCB”

数据类型:字符|字符串

输出参数

全部折叠

格勒乌输出,作为一个返回dlarray。输出海底有相同的底层数据类型作为输入dlX

如果输入数据dlX是一个格式化的dlarray,海底有相同的尺寸格式吗dlX,除了任何“年代”维度。如果没有一个格式化的输入数据dlarray,海底是一个非格式化dlarray相同的尺寸订单作为输入数据。

的大小“C”维度的海底是一样的隐藏单位的数量,规定的大小“C”维度的H0

为每个观察隐藏状态向量,作为一个返回dlarray或数字数组数据类型一样H0

如果输入H0是一个格式化的dlarray,然后输出hiddenState是一个格式化的dlarray的格式“CB”

限制

  • functionToLayerGraph不支持金宝app格勒乌函数。如果你使用functionToLayerGraph一个函数,它包含了格勒乌操作,由此产生的LayerGraph包含占位符层。

更多关于

全部折叠

封闭的复发性单元

格勒乌操作允许网络学习时间步骤时间序列和序列数据之间的依赖关系。有关更多信息,请参见封闭的复发性单元层定义上的gruLayer参考页面。

引用

[1]曹、Kyunghyun Bart Van Merrienboer卡Gulcehre, Dzmitry Bahdanau, Fethi Bougares, Holger Schwenk, Yoshua Bengio。“学习使用短语表示RNN encoder-decoder统计机器翻译。”arXiv预印本arXiv: 1406.1078(2014)。

扩展功能

介绍了R2020a