class_docstr: GRU-based policy model.
      
docstr: Args:
      inputs:       (batch_size * n_agents, rnn_hidden_dim)
      hidden_state: (batch_size, rnn_hidden_dim)
  Returns:
      q: local q values
      h: hidden states
docstr_tok: ["Args",":","inputs",":","(","batch_size","*","n_agents",",","rnn_hidden_dim",")","hidden_state",":","(","batch_size",",","rnn_hidden_dim",")","Returns",":","q",":","local","q","values","h",":","hidden","states"]
code: def __call__(self, inputs, hidden_state):
      """
      Args:
          inputs:       (batch_size * n_agents, rnn_hidden_dim)
          hidden_state: (batch_size, rnn_hidden_dim)
      Returns:
          q: local q values
          h: hidden states
      """
      x = fluid.layers.relu(self.fc1(inputs))
      h, _ = self.gru(x, hidden_state)
      q = self.fc2(h)
      return q, h
  
file_path: PARL/benchmark/fluid/QMIX/rnn_model.py
imports: import numpy
  import parl
  from parl import layers
  import paddle.fluid
label_desc: Use image node_id 2 for calling the RNNModel obj's underlying member method code with example usage: obj.__call__(inputs, hidden_state) and returns: q,  h