code: def _init_hidden_states(self, batch_size):
      self.hidden_states = (
          self.agent_model.init_hidden()
          .unsqueeze(0)
          .expand(batch_size, self.n_agents, -1)
      )
      self.target_hidden_states = (
          self.target_agent_model.init_hidden()
          .unsqueeze(0)
          .expand(batch_size, self.n_agents, -1)
      )
  
file_path: PARL/parl/algorithms/torch/qmix.py
imports: import torch
  import torch.optim
  import torch.nn.functional
  import parl
  from parl.utils.utils import check_model_method
  import numpy
  from copy import deepcopy
label_desc: Use image node_id 2 for calling the QMIX obj's underlying member method code with example usage: obj._init_hidden_states(batch_size) without return types