class_docstr: A model arch similar to FullyConnectedActor, except that the last layer
  represents the parameters of a multi-dimensional Gaussian distribution.
  The action to return is sampled from the Gaussian distribution.
code: def _squash_raw_action(
      self, raw_action: torch.Tensor
  ) -> torch.Tensor:
      # NOTE: without clamping to (-(1-eps), 1-eps), torch.tanh would output
      # 1, and torch.atanh would map it to +inf, causing log_prob to be -inf.
      squashed_action = torch.clamp(
          torch.tanh(raw_action), -1.0 + self.eps, 1.0 - self.eps
      )
      if self.use_l2_normalization:
          # pyre-fixme[58]: `**` is not supported for operand types `Tensor` and
          #  `int`.
          l2_norm = (
              (squashed_action**2).sum(dim=1, keepdim=True).sqrt()
          )
          squashed_action = squashed_action / l2_norm
      return squashed_action
  
imports: import math
  from typing import List, Optional
  import torch
  from reagent.core import types
  from reagent.core.parameters import CONTINUOUS_TRAINING_ACTION_RANGE
  from reagent.core.tensorboardX import SummaryWriterContext
  from reagent.models.base import ModelBase
  from reagent.models.fully_connected_network import FullyConnectedNetwork
  from torch.distributions import Dirichlet
  from torch.distributions.normal import Normal
label_desc: Use image node_id 6 for calling the GaussianFullyConnectedActor obj's underlying member method code with example usage: obj._squash_raw_action(raw_action) and returns: squashed_action