class_docstr: A model arch similar to FullyConnectedActor, except that the last layer
  is sampled from a Dirichlet distribution
code: def forward(self, state):
      concentration = self._get_concentration(state)
      if self.training:
          # PyTorch can't backwards pass _sample_dirichlet
          action = Dirichlet(concentration).rsample()
      else:
          # ONNX can't export Dirichlet()
          action = torch._sample_dirichlet(concentration)
  
      log_prob = Dirichlet(concentration).log_prob(action)
      return rlt.ActorOutput(
          action=action, log_prob=log_prob.unsqueeze(dim=1)
      )
  
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 5 for calling the DirichletFullyConnectedActor obj's underlying member method code with example usage: obj.forward(state) and returns: rlt