class_docstr: MultiCategorical distribution for MultiDiscrete action spaces.
class_docstr_tok: ["MultiCategorical","distribution","for","MultiDiscrete","action","spaces","."]
code: def kl(self, other: Distribution) -> TensorType:
      kls = torch.stack(
          [
              cat.kl(oth_cat)
              for cat, oth_cat in zip(self._cats, other._cats)
          ],
          dim=-1,
      )
      return torch.sum(kls, dim=-1)
  
imports: import gymnasium
  import numpy
  from typing import Optional, List, Mapping, Iterable, Dict
  import tree
  import abc
  from ray.rllib.models.distributions import Distribution
  from ray.rllib.utils.annotations import override, DeveloperAPI
  from ray.rllib.utils.framework import try_import_torch
  from ray.rllib.utils.typing import TensorType, Union, Tuple
label_desc: Use image node_id 6 for calling the TorchMultiCategorical obj's underlying member method code with example usage: obj.kl(other) and returns: torch