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 forward(self, state: rlt.FeatureData):
      loc, scale_log = self._get_loc_and_scale_log(state)
      r = torch.randn_like(scale_log, device=scale_log.device)
      raw_action = loc + r * scale_log.exp()
      squashed_action = self._squash_raw_action(raw_action)
      squashed_loc = self._squash_raw_action(loc)
      if SummaryWriterContext._global_step % 1000 == 0:
          SummaryWriterContext.add_histogram(
              "actor/forward/loc", loc.detach().cpu()
          )
          SummaryWriterContext.add_histogram(
              "actor/forward/scale_log", scale_log.detach().cpu()
          )
  
      return rlt.ActorOutput(
          action=squashed_action,
          log_prob=self.get_log_prob(state, squashed_action),
          squashed_mean=squashed_loc,
      )
  
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 7 for calling the GaussianFullyConnectedActor obj's underlying member method code with example usage: obj.forward(state) and returns: rlt