class_docstr: Tanh-squashed diagonal Gaussian (Normal) Torch probability distribution.
  
  :param logits: the logits for both mean and standard deviation.
  :param action_space: the underlying gym.spaces action space.
class_docstr_tok: ["Tanh-squashed","diagonal","Gaussian","(","Normal",")","Torch","probability","distribution",".",":","param","logits",":","the","logits","for","both","mean","and","standard","deviation",".",":","param","action_space",":","the","underlying","gym.spaces","action","space","."]
docstr: implementation of :class:`~maze.distributions.torch_dist.TorchProbabilityDistribution` interface
          
docstr_tok: ["implementation","of",":","class",":","`","~maze.distributions.torch_dist.TorchProbabilityDistribution","`","interface"]
code: def log_prob(self, actions: torch.Tensor) -> torch.Tensor:
      """implementation of :class:`~maze.distributions.torch_dist.TorchProbabilityDistribution` interface"""
      un_squashed_values = self._un_squash(actions)
      log_prob_gaussian = self.dist.log_prob(un_squashed_values)
      log_prob_gaussian = torch.clamp(log_prob_gaussian, -100, 100)
      log_prob_gaussian = log_prob_gaussian.mean(-1)
      un_squashed_values_tanh = torch.tanh(un_squashed_values)
      log_prob = log_prob_gaussian - torch.log(
          1 - un_squashed_values_tanh**2 + EPSILON
      ).mean(-1)
      assert self.dist.mean.shape[:-1] == log_prob.shape
      return log_prob
  
file_path: maze/maze/distributions/squashed_gaussian.py
imports: from typing import Sequence
  import numpy
  import gym
  import torch
  from torch.distributions import Normal, kl_divergence
  from maze.core.annotations import override
  from maze.distributions.torch_dist import TorchProbabilityDistribution
  from maze.distributions.utils import MIN_LOG_NN_OUTPUT, MAX_LOG_NN_OUTPUT, EPSILON, tensor_clamp, atanh
  from maze.perception.perception_utils import convert_to_torch
label_desc: Use image node_id 3 for calling the SquashedGaussianProbabilityDistribution obj's underlying member method code with example usage: obj.log_prob(actions) and returns: log_prob