主要内容

gru.

门控复发单位

描述

门控循环单元(GRU)操作允许网络学习时间序列和序列数据中时间步骤之间的依赖关系。

笔记

此功能适用于深度学习GRU操作dlarray.数据。如果您想在a中申请GRU操作layerGraph对象或数组,使用下面的图层:

例子

d= gru(DLX.H0.权重经常性重量偏见将门控循环单元(GRU)计算应用于输入DLX.使用初始隐藏状态H0.和参数权重经常性重量,偏见.输入DLX.是一个格式化的dlarray.有维标签。输出d是一个格式化的dlarray.尺寸标签与DLX.,除了任何'方面。

gru.函数使用双曲线切线函数(Tanh)更新隐藏状态作为状态激活功能。这gru.功能使用由sigmoid函数给出 σ X = 1 + E. - X - 1 作为门的激活功能。

[d隐静塔] = GRU(DLX.H0.权重经常性重量偏见也返回GRU操作后的隐藏状态。

[___] = GRU(___“DataFormat”,FMT.还指定维度格式FMT.什么时候DLX.不是格式化的dlarray..输出d是一个非格式化dlarray.尺寸顺序和DLX.,除了任何'方面。

例子

全部折叠

使用100个隐藏单元执行GRU操作。

将输入序列数据创建为具有十个通道的32个观察,序列长度为64。

numfeatures = 10;numobservations = 32;sequencelength = 64;X = RANDN(NUMFEATURE,NUMOBSERERATIONS,SEDENCLENG);dlx = dlarray(x,“认知行为治疗”);

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

numhidendunits = 100;H0 =零(numhidendunits,1);

创建GRU操作的可学习参数。

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

GRU计算。

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

查看大小和维度标签d

尺寸(dly)
ans =.1×3100 32 64.
dly.dims.
ans =“认知行为治疗”

查看隐静塔

尺寸(暗息)
ans =.1×2100 32.

可以使用隐藏状态跟踪GRU操作的状态,并进一步输入顺序数据。

输入参数

全部折叠

输入数据,指定为adlarray.有或没有维度标签或数字数组。当DLX.不是格式化的dlarray.,则必须使用FMT, DataFormat”.如果DLX.是一个数字数组,至少有一个H0.权重经常性重量, 要么偏见必须是A.dlarray.

DLX.必须包含一个序列维度标记'T'.如果DLX.有标注空间尺寸吗',它们被压平成'C'通道尺寸。如果DLX.没有频道维度,然后添加一个。如果DLX.有标记的任何未指定的尺寸'U',他们必须是单身。

数据类型:单身的|双倍的

初始隐藏状态向量,指定为adlarray.有或没有维度标签或数字数组。

如果H0.是一个格式化的dlarray.,它必须包含标有频道维度'C'并且可选择标记的批处理维度'B'与尺寸相同'B'维度的DLX..如果H0.没有一个'B'维度,该函数使用相同的隐藏状态向量为每个观察DLX.

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

数据类型:单身的|双倍的

权重,指定为dlarray.有或没有维度标签或数字数组。

指定权重作为大小的矩阵3 * numhidentunits.——- - - - - -InputSize, 在哪里numhidandunits.尺码是多少'C'维度的H0.,InputSize尺码是多少'C'维度的DLX.乘以每个的大小'维度的DLX.在现有的地方。

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

数据类型:单身的|双倍的

循环权重,指定为adlarray.有或没有维度标签或数字数组。

指定经常性重量作为大小的矩阵3 * numhidentunits.——- - - - - -numhidandunits., 在哪里numhidandunits.尺码是多少'C'维度的H0.

如果经常性重量是一个格式化的dlarray.,它必须包含一个'C'尺寸的大小3 * numhidentunits.和一个'U'尺寸的大小numhidandunits.

数据类型:单身的|双倍的

偏差,指定为dlarray.有或没有维度标签的向量或数字向量。

指定偏见作为长度的矢量3 * numhidentunits., 在哪里numhidandunits.尺码是多少'C'维度的H0.

如果偏见是一个格式化的dlarray.,则非单例维度必须标记为'C'

数据类型:单身的|双倍的

未格式化输入数据的维度顺序,指定为逗号分隔对,由“DataFormat”以及字符数组或字符串FMT.为数据的每个维度提供标签。每个角色FMT.必须是以下之一:

  • '- 空间

  • 'C'- 渠道

  • 'B'-批次(例如,样品和观察)

  • 'T'- 时间(例如,序列)

  • 'U'- 未指定

您可以指定多个标注的维度''U'.你可以使用标签'C''B','T'最多一次。

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

例子:“DataFormat”、“SSCB”

数据类型:字符|细绳

输出参数

全部折叠

GRU输出,返回为dlarray..输出d具有与输入相同的底层数据类型DLX.

如果输入数据DLX.是一个格式化的dlarray.d有相同的尺寸标签DLX.,除了任何'方面。如果输入数据不是格式化的dlarray.d是一个非格式化dlarray.与输入数据相同的维度顺序。

尺寸'C'维度的d与隐藏单元的数量相同,由大小指定'C'维度的H0.

每个观测的隐藏状态向量,返回为dlarray.或具有相同数据类型的数字数组H0.

如果输入H0.是一个格式化的dlarray.,然后输出隐静塔是一个格式化的dlarray.格式'cb'

限制

  • functionToLayerGraph不支持金宝appgru.功能。如果你使用functionToLayerGraph包含包含的函数gru.操作,由此产生分层图包含占位符层。

更多关于

全部折叠

门控复发单位

GRU操作允许网络在时间序列和序列数据的时间步骤之间学习依赖性。有关更多信息,请参阅门控递归单元层关于的定义格拉勒参考页面。

参考文献

[1] Cho,Kyunghyun,Bart VanMerriënboboer,Caglar Gulcehre,Dzmitry Bahdanau,Fethi Bougares,Holger Schwenk和Yoshua Bengio。“使用RNN编码器解码器进行学习短语表示,用于统计机器翻译。”ARXIV预印亚克日期:1406.1078(2014)。

扩展能力

在R2020A中介​​绍