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


Python tf.raw_ops.GRUBlockCell用法及代碼示例


計算 1 個時間步的 GRU 單元前向傳播。

用法

tf.raw_ops.GRUBlockCell(
    x, h_prev, w_ru, w_c, b_ru, b_c, name=None
)

參數

  • x 一個Tensor。必須是以下類型之一:float32
  • h_prev 一個Tensor。必須與 x 具有相同的類型。
  • w_ru 一個Tensor。必須與 x 具有相同的類型。
  • w_c 一個Tensor。必須與 x 具有相同的類型。
  • b_ru 一個Tensor。必須與 x 具有相同的類型。
  • b_c 一個Tensor。必須與 x 具有相同的類型。
  • name 操作的名稱(可選)。

返回

  • Tensor 對象(r、u、c、h)的元組。
  • r 一個Tensor。具有與 x 相同的類型。
  • u 一個Tensor。具有與 x 相同的類型。
  • c 一個Tensor。具有與 x 相同的類型。
  • h 一個Tensor。具有與 x 相同的類型。

Args x:GRU 單元的輸入。 h_prev:來自前一個 GRU 單元的狀態輸入。 w_ru:重置和更新門的權重矩陣。 w_c:單元連接門的權重矩陣。 b_ru:複位和更新門的偏置向量。 b_c:單元連接門的偏置向量。

返回 r:複位門的輸出。 u:更新門的輸出。 c:單元連接門的輸出。 h:GRU 單元的當前狀態。

注意變量的符號:

a 和 b 的連接由 a_b 表示 a 和 b 的逐元素點積由 ab 表示逐元素點積由 \circ 表示 矩陣乘法由 * 表示

偏差初始化為:b_ru - constant_initializer(1.0) b_c - constant_initializer(0.0)

這個內核操作實現了以下數學方程:

x_h_prev = [x, h_prev]

[r_bar u_bar] = x_h_prev * w_ru + b_ru

r = sigmoid(r_bar)
u = sigmoid(u_bar)

h_prevr = h_prev \circ r

x_h_prevr = [x h_prevr]

c_bar = x_h_prevr * w_c + b_c
c = tanh(c_bar)

h = (1-u) \circ c + u \circ h_prev

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.raw_ops.GRUBlockCell。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。