class_docstr: VectorEnv where each env is run in its own subprocess.
  
  Args:
      env_fns (list of callable): List of callables, each of which
          returns gym.Env that is run in its own subprocess.
class_docstr_tok: ["VectorEnv","where","each","env","is","run","in","its","own","subprocess",".","Args",":","env_fns","(","list","of","callable",")",":","List","of","callables",",","each","of","which","returns","gym.Env","that","is","run","in","its","own","subprocess","."]
code: def seed(self, seeds=None):
      self._assert_not_closed()
      if seeds is not None:
          if isinstance(seeds, int):
              seeds = [seeds] * self.num_envs
          elif isinstance(seeds, list):
              if len(seeds) != self.num_envs:
                  raise ValueError(
                      "length of seeds must be same as num_envs {}".format(
                          self.num_envs
                      )
                  )
          else:
              raise TypeError(
                  "Type of Seeds {} is not supported.".format(
                      type(seeds)
                  )
              )
      else:
          seeds = [None] * self.num_envs
  
      for remote, seed in zip(self.remotes, seeds):
          remote.send(("seed", seed))
      results = [remote.recv() for remote in self.remotes]
      return results
  
file_path: pfrl/pfrl/envs/multiprocess_vector_env.py
imports: import signal
  import warnings
  from multiprocessing import Pipe, Process
  import numpy
  from torch.distributions.utils import lazy_property
  import pfrl
label_desc: Use image node_id 7 for calling the MultiprocessVectorEnv obj's underlying member method code with example usage: obj.seed(seeds) and returns: results