当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python mxnet.gluon.rnn.GRU用法及代码示例


用法:

class mxnet.gluon.rnn.GRU(hidden_size, num_layers=1, layout='TNC', dropout=0, bidirectional=False, input_size=0, i2h_weight_initializer=None, h2h_weight_initializer=None, i2h_bias_initializer='zeros', h2h_bias_initializer='zeros', dtype='float32', **kwargs)

参数

  • hidden_size(int) - 隐藏状态 h 的特征数量
  • num_layers(int, default 1) - 循环层数。
  • layout(str, default 'TNC') - 输入和输出张量的格式。 T、N 和 C 分别代表序列长度、批量大小和特征维度。
  • dropout(float, default 0) - 如果非零,则在除最后一层之外的每个 RNN 层的输出上引入一个 dropout 层
  • bidirectional(bool, default False) - 如果为 True,则成为双向 RNN。
  • i2h_weight_initializer(str or Initializer) - 输入权重矩阵的初始化器,用于输入的线性变换。
  • h2h_weight_initializer(str or Initializer) - 循环权重矩阵的初始化器,用于循环状态的线性变换。
  • i2h_bias_initializer(str or Initializer) - 偏置向量的初始化器。
  • h2h_bias_initializer(str or Initializer) - 偏置向量的初始化器。
  • dtype(str, default 'float32') - 类型初始化参数和默认状态为
  • input_size(int, default 0) - 输入 x 中预期特征的数量。如果未指定,将从输入推断。
  • prefix(str or None) - 这个前缀Block.
  • params(ParameterDict or None) - 为此共享参数Block.

基础:mxnet.gluon.rnn.rnn_layer._RNNLayer

将多层门控循环单元 (GRU) RNN 应用于输入序列。注意:这是 GRU 的 cuDNN 版本的实现(与 Cho et al. 2014 相比略有修改;重置门 在矩阵乘法后应用)。

对于输入序列中的每个元素,每一层计算以下函数:

其中 是时间t的隐藏状态, 是第一层时间t 的前一层的隐藏状态, 分别是复位门、输入门和新门。

输入:
  • data: 输入带形状的张量(sequence_length, batch_size, input_size)layout是“TNC”。对于其他布局,使用 transpose() 运算符相应地排列尺寸,这会增加性能开销。考虑在数据批处理步骤中在 TNC 布局中创建批处理。
  • states:具有形状的初始循环状态张量(num_layers, batch_size, num_hidden).如果bidirectional为真,形状将改为(2*num_layers, batch_size, num_hidden).如果states为无,零将用作默认开始状态。
输出:
  • out: 输出具有形状的张量(sequence_length, batch_size, num_hidden)layout是“TNC”。如果bidirectional为真,输出形状将改为(sequence_length, batch_size, 2*num_hidden)
  • out_states:输出具有相同形状的循环状态张量states.如果states是无out_states不会被退回。

例子

>>> layer = mx.gluon.rnn.GRU(100, 3)
>>> layer.initialize()
>>> input = mx.nd.random.uniform(shape=(5, 3, 10))
>>> # by default zeros are used as begin state
>>> output = layer(input)
>>> # manually specify begin state.
>>> h0 = mx.nd.random.uniform(shape=(3, 3, 100))
>>> output, hn = layer(input, h0)

相关用法


注:本文由纯净天空筛选整理自apache.org大神的英文原创作品 mxnet.gluon.rnn.GRU。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。