class_docstr: Effect of GRU with attentional update gate (AUGRU). AUGRU combines attention mechanism and GRU seamlessly.
  
  Formally:
      ..math:         ilde{{u}}_{t}^{\prime}=a_{t} * {u}_{t}^{\prime} \
              {h}_{t}^{\prime}=\left(1-       ilde{{u}}_{t}^{\prime}
  ight) \circ {h}_{t-1}^{\prime}+ ilde{{u}}_{t}^{\prime} \circ    ilde{{h}}_{t}^{\prime}
code: def forward(self, input, hidden_output, att_score):
      gi = F.linear(input, self.weight_ih, self.bias_ih)
      gh = F.linear(hidden_output, self.weight_hh, self.bias_hh)
      i_r, i_u, i_h = gi.chunk(3, 1)
      h_r, h_u, h_h = gh.chunk(3, 1)
  
      reset_gate = torch.sigmoid(i_r + h_r)
      update_gate = torch.sigmoid(i_u + h_u)
      new_state = torch.tanh(i_h + reset_gate * h_h)
  
      att_score = att_score.view(-1, 1)
      update_gate = att_score * update_gate
      hy = (1 - update_gate) * hidden_output + update_gate * new_state
  
      return hy
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  from torch.nn.init import xavier_normal_, constant_
  from torch.nn.utils.rnn import pack_padded_sequence, pad_packed_sequence, PackedSequence
  from recbole.utils import ModelType, InputType, FeatureType
  from recbole.model.layers import FMEmbedding, MLPLayers, ContextSeqEmbLayer, SequenceAttLayer
  from recbole.model.abstract_recommender import SequentialRecommender
label_desc: Use image node_id 2 for calling the AUGRUCell obj's underlying member method code with example usage: obj.forward(input, hidden_output, att_score) and returns: hy