class_docstr: Base class for wrapping Torch probability distributions.
  
  :param dist: The torch probability distribution.
  :param action_space: The gym action space.
class_docstr_tok: ["Base","class","for","wrapping","Torch","probability","distributions",".",":","param","dist",":","The","torch","probability","distribution",".",":","param","action_space",":","The","gym","action","space","."]
docstr: implementation of :class:`~maze.distributions.distribution.ProbabilityDistribution` interface
          
docstr_tok: ["implementation","of",":","class",":","`","~maze.distributions.distribution.ProbabilityDistribution","`","interface"]
code: def kl(self, other: "TorchProbabilityDistribution") -> torch.Tensor:
      """implementation of :class:`~maze.distributions.distribution.ProbabilityDistribution` interface"""
      return torch_dist.kl.kl_divergence(self.dist, other.dist)
  
file_path: maze/maze/distributions/torch_dist.py
imports: from abc import ABC, abstractmethod
  from typing import Sequence, Generic, TypeVar
  import torch
  import torch.distributions
  from gym import spaces
  from maze.core.annotations import override
  from maze.distributions.distribution import ProbabilityDistribution
label_desc: Use image node_id 5 for calling the TorchProbabilityDistribution obj's underlying member method code with example usage: obj.kl(other) and returns: torch_dist