主要内容

格勒乌

封闭的复发性单元

描述

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

请注意

该函数将深度学习GRU运算应用于dlarray数据。如果你想应用GRU操作layerGraph对象或数组,使用以下层:

例子

Y=格勒乌(XH0权重recurrentWeights偏见对输入应用门控循环单元(GRU)计算X使用初始隐藏状态H0和参数权重recurrentWeights,偏见.输入X必须是格式化的dlarray.输出Y是一个格式化的dlarray具有相同的尺寸格式X,除任何“年代”维度。

格勒乌函数使用双曲正切函数(tanh)作为状态激活函数更新隐藏状态。的格勒乌函数的sigmoid函数由 σ x 1 + e x 1 作为门激活函数。

YhiddenState) =格勒乌(XH0权重recurrentWeights偏见也返回GRU操作后的隐藏状态。

___) =格勒乌(___“DataFormat”,FMT还指定维度格式FMTX不是格式化的dlarray.输出Y是一个非格式化dlarray具有相同的尺寸顺序X,除任何“年代”维度。

例子

全部折叠

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

创建输入序列数据为32个观测值,10个通道,序列长度为64。

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

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

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

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

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

执行GRU计算。

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

的尺寸和尺寸格式海底

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

查看的大小hiddenState

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

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

输入参数

全部折叠

输入数据,指定为格式化的dlarray,一个非格式化dlarray,或数字数组。当X不是格式化的dlarray,您必须使用指定尺寸标签格式FMT, DataFormat”.如果X一个数字数组,至少是其中之一H0权重recurrentWeights,或偏见必须是一个dlarray

X必须包含已标记的序列维度“T”.如果X有标注空间维度吗“年代”,它们被压扁成“C”通道尺寸。如果X没有通道维度,则添加通道维度。如果X是否有未指明的尺寸标注“U”,他们必须是独生子女。

数据类型:|

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

如果H0是一个格式化的dlarray,它必须包含标记的通道尺寸“C”和可选的批处理维度标记“B”尺寸和“B”维度的X.如果H0没有“B”维中,函数对每个观察都使用相同的隐藏状态向量X

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

数据类型:|

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

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

如果权重是一个格式化的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,非单例维度必须用“C”

数据类型:|

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

  • “年代”——空间

  • “C”——频道

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

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

  • “U”——未指明的

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

您必须指定FMT, DataFormat”当输入数据没有格式化时dlarray

例子:“DataFormat”、“SSCB”

数据类型:字符|字符串

输出参数

全部折叠

GRU输出,返回为dlarray.输出Y是否与输入具有相同的基础数据类型X

如果输入数据X是一个格式化的dlarrayY具有与?相同的维度格式X,除任何“年代”维度。如果输入数据没有格式化dlarrayY是一个非格式化dlarray具有与输入数据相同的维度顺序。

的大小“C”维度的Y是否与隐藏单元的数量相同,由大小指定“C”维度的H0

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

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

限制

  • functionToLayerGraph不支持格勒乌函数。如果你使用functionToLayerGraph类的函数格勒乌操作,由此产生的LayerGraph包含占位符层。

更多关于

全部折叠

封闭的复发性单元

GRU操作允许网络学习时间序列和序列数据中时间步骤之间的依赖关系。有关更多信息,请参见门控循环单元层定义上的gruLayer参考页面。

参考文献

[1] Cho, Kyunghyun, Bart Van Merriënboer, Caglar Gulcehre, Dzmitry Bahdanau, Fethi Bougares, Holger Schwenk, Yoshua Bengio。“学习使用RNN编码器-解码器进行统计机器翻译的短语表示。”arXiv预印本arXiv: 1406.1078(2014)。

扩展功能

版本历史

介绍了R2020a

Baidu
map