class_docstr: A wrapper object that turns a `DistributedExplainer` into a remote actor. This allows running multiple distributed
  explainers in parallel.
class_docstr_tok: ["A","wrapper","object","that","turns","a","`","DistributedExplainer","`","into","a","remote","actor",".","This","allows","running","multiple","distributed","explainers","in","parallel","."]
docstr: Creates multiple actors for `DistributedExplainer` so that tasks can be executed in parallel. The actors are
  initialised with different arguments, so they represent different explainers.
  
  Parameters
  ----------
  distributed_opts, explainer_type, explainer_init_args, explainer_init_kwargs, **kwargs
      See :py:meth:`alibi.utils.distributed.PoolCollection`.
code: def create_explainer_handles(
      distributed_opts: Dict[str, Any],
      explainer_type: Any,
      explainer_init_args: List[Tuple],
      explainer_init_kwargs: List[Dict],
      **kwargs,
  ):
      """
      Creates multiple actors for `DistributedExplainer` so that tasks can be executed in parallel. The actors are
      initialised with different arguments, so they represent different explainers.
  
      Parameters
      ----------
      distributed_opts, explainer_type, explainer_init_args, explainer_init_kwargs, **kwargs
          See :py:meth:`alibi.utils.distributed.PoolCollection`.
      """
  
      explainer_handles = [
          ray.remote(DistributedExplainer)
          for _ in range(len(explainer_init_args))
      ]
      distributed_explainers = []
      for handle, exp_args, exp_kwargs in zip(
          explainer_handles, explainer_init_args, explainer_init_kwargs
      ):
          distributed_explainers.append(
              handle.remote(
                  distributed_opts,
                  explainer_type,
                  exp_args,
                  exp_kwargs,
                  **kwargs,
              )
          )
  
      return distributed_explainers
  
imports: import copy
  import logging
  from functools import partial
  from typing import Any, Callable, Dict, Generator, List, Optional, Tuple, Union
  import numpy
  from scipy import sparse
  import ray
label_desc: Use image node_id 6 for calling the PoolCollection obj's underlying member method code with example usage: obj.create_explainer_handles(distributed_opts, explainer_type, explainer_init_args, explainer_init_kwargs) and returns: distributed_explainers