class_docstr: GRU-based policy model.
      
class_docstr_tok: ["GRU-based","policy","model","."]
docstr: Args:
  inputs:       (batch_size * n_agents, rnn_hidden_dim)
  hidden_state: (batch_size, rnn_hidden_dim)
docstr_tok: ["Args",":","inputs",":","(","batch_size","*","n_agents",",","rnn_hidden_dim",")","hidden_state",":","(","batch_size",",","rnn_hidden_dim",")"]
code: def __call__(self, inputs, hidden_state):
      """Args:
      inputs:       (batch_size * n_agents, rnn_hidden_dim)
      hidden_state: (batch_size, rnn_hidden_dim)
      """
      x = fluid.layers.relu(self.fc1(inputs))
      h, _ = self.gru(x, hidden_state)
      q = self.fc2(h)
      return q, h
  
file_path: PARL/parl/core/fluid/tests/gru_cell_test_fluid.py
imports: from parl import layers
  from copy import deepcopy
  import unittest
  import paddle.fluid
  import parl
  from parl.utils import get_gpu_count
  import numpy
label_desc: Use image node_id 2 for calling the GRUModel obj's underlying member method code with example usage: obj.__call__(inputs, hidden_state) and returns: q,  h