當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python mxnet.gluon.rnn.RNN用法及代碼示例

用法:

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

參數

  • hidden_size(int) - 隱藏狀態 h 的特征數量。
  • num_layers(int, default 1) - 循環層數。
  • activation({'relu' or 'tanh'}, default 'relu') - 要使用的激活函數。
  • 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) - 偏置向量的初始化器。
  • input_size(int, default 0) - 輸入 x 中預期特征的數量。如果未指定,將從輸入推斷。
  • dtype(str, default 'float32') - 類型初始化參數和默認狀態為
  • prefix(str or None) - 這個前綴Block.
  • params(ParameterDict or None) - 為此共享參數Block.

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

將具有 tanhReLU 非線性的多層 Elman RNN 應用於輸入序列。

對於輸入序列中的每個元素,每一層計算以下函數:

其中 是時間 t 的隱藏狀態,而 是第一層時間 t 的前一層的輸出。如果非線性='relu',則使用 ReLU 而不是 tanh

輸入:
  • 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.RNN(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.RNN。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。