code: def forward(
      self, state: rlt.FeatureData, action: rlt.FeatureData
  ) -> torch.Tensor:
      advantage, value, q_value = self._get_values((state, action))
  
      # TODO: export these as observable values
      if SummaryWriterContext._global_step % 1000 == 0:
          _log_histogram_and_mean(self._name, "value", value)
          _log_histogram_and_mean(self._name, "q_value", q_value)
          _log_histogram_and_mean(self._name, "advantage", advantage)
  
      return q_value
  
imports: import logging
  from typing import List, Optional, Tuple
  import torch
  from reagent.core import types
  from reagent.core.tensorboardX import SummaryWriterContext
  from reagent.models.base import ModelBase
  from reagent.models.critic import FullyConnectedCritic
  from reagent.models.dqn import FullyConnectedDQN
label_desc: Use image node_id 5 for calling the ParametricDuelingQNetwork obj's underlying member method code with example usage: obj.forward(state, action) and returns: q_value