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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。