code: def build_q_network(
      self,
      state_feature_config: rlt.ModelFeatureConfig,
      state_normalization_data: NormalizationData,
      output_dim: int,
  ) -> models.ModelBase:
      state_dense_dim = self._get_input_dim(state_normalization_data)
      embedding_concat = models.EmbeddingBagConcat(
          state_dense_dim=state_dense_dim,
          model_feature_config=state_feature_config,
      )
      return models.Sequential(  # type: ignore
          embedding_concat,
          rlt.TensorFeatureData(),
          models.FullyConnectedDQN(
              embedding_concat.output_dim,
              action_dim=output_dim,
              sizes=self.sizes,
              activations=self.activations,
              dropout_ratio=self.dropout_ratio,
          ),
      )
  
file_path: ReAgent/reagent/net_builder/discrete_dqn/fully_connected_with_embedding.py
imports: from typing import List
  import reagent.models
  from reagent.core import types
  from reagent.core.dataclasses import dataclass, field
  from reagent.core.parameters import NormalizationData, param_hash
  from reagent.net_builder.discrete_dqn_net_builder import DiscreteDQNNetBuilder
label_desc: Use image node_id 2 for calling the FullyConnectedWithEmbedding obj's underlying member method code with example usage: obj.build_q_network(state_feature_config, state_normalization_data, output_dim) and returns: models