class_docstr: Same as the above ParametricActionsModel.
  
  However, this version also learns the action embeddings.
code: def forward(self, input_dict, state, seq_lens):
      # Extract the available actions mask tensor from the observation.
      valid_avail_actions_mask = input_dict["obs"][
          "valid_avail_actions_mask"
      ]
  
      action_logits, self._value_out = self.param_actions_model(
          [input_dict["obs"]["cart"], valid_avail_actions_mask]
      )
  
      return action_logits, state
  
imports: from gymnasium.spaces import Box
  from ray.rllib.algorithms.dqn.distributional_q_tf_model import DistributionalQTFModel
  from ray.rllib.algorithms.dqn.dqn_torch_model import DQNTorchModel
  from ray.rllib.models.tf.fcnet import FullyConnectedNetwork
  from ray.rllib.models.torch.fcnet import FullyConnectedNetwork
  from ray.rllib.utils.framework import try_import_tf, try_import_torch
  from ray.rllib.utils.torch_utils import FLOAT_MAX, FLOAT_MIN
label_desc: Use image node_id 2 for calling the ParametricActionsModelThatLearnsEmbeddings obj's underlying member method code with example usage: obj.forward(input_dict, state, seq_lens) and returns: action_logits,  state