class_docstr: A general model arch for mapping from states to scalar values.
  
  The model arch is often used to implement Deep Q-network, where
  the outputs are q-values of all defined actions.
code: def forward(
      self,
      state: rlt.FeatureData,
      possible_actions_mask: Optional[torch.Tensor] = None,
  ) -> torch.Tensor:
      x = super().forward(state=state)
  
      # Only used when FullyConnectedDQN is used as policy.scorer in ReinforceTrainer
      if possible_actions_mask is not None:
          # subtract huge value from impossible actions to force their probabilities to 0
          x = (
              x
              + (1 - possible_actions_mask.float())
              * INVALID_ACTION_CONSTANT
          )
      return x
  
file_path: ReAgent/reagent/models/dqn.py
imports: from typing import Optional
  import torch
  from reagent.core import types
  from reagent.models.fully_connected_network import FloatFeatureFullyConnected
label_desc: Use image node_id 2 for calling the FullyConnectedDQN obj's underlying member method code with example usage: obj.forward(state, possible_actions_mask) and returns: x