def gru_single_step_sentence_level(self, Xt,
h_t_minus_1): # Xt:[batch_size, hidden_size*2]; h_t:[batch_size, hidden_size*2]
"""
single step of gru for sentence level
:param Xt:[batch_size, hidden_size*2]
:param h_t_minus_1:[batch_size, hidden_size*2]
:return:h_t:[batch_size,hidden_size]
"""
# update gate: decides how much past information is kept and how much new information is added.
z_t = tf.nn.sigmoid(tf.matmul(Xt, self.W_z_sentence) + tf.matmul(h_t_minus_1,
self.U_z_sentence) + self.b_z_sentence) # z_t:[batch_size,self.hidden_size]
# reset gate: controls how much the past state contributes to the candidate state.
r_t = tf.nn.sigmoid(tf.matmul(Xt, self.W_r_sentence) + tf.matmul(h_t_minus_1,
self.U_r_sentence) + self.b_r_sentence) # r_t:[batch_size,self.hidden_size]
# candiate state h_t~
h_t_candiate = tf.nn.tanh(tf.matmul(Xt, self.W_h_sentence) + r_t * (
tf.matmul(h_t_minus_1, self.U_h_sentence)) + self.b_h_sentence) # h_t_candiate:[batch_size,self.hidden_size]
# new state: a linear combine of pervious hidden state and the current new state h_t~
h_t = (1 - z_t) * h_t_minus_1 + z_t * h_t_candiate
return h_t
# forward gru for first level: word levels
p1_HierarchicalAttention_model_transformer.py 文件源码
python
阅读 38
收藏 0
点赞 0
评论 0
评论列表
文章目录