class_docstr: Generic fully connected network.
code: def forward(
      self,
      input_dict: Dict[str, TensorType],
      state: List[TensorType],
      seq_lens: TensorType,
  ) -> (TensorType, List[TensorType]):
      obs = input_dict["obs_flat"].float()
      self._last_flat_in = obs.reshape(obs.shape[0], -1)
      self._features = self._hidden_layers(self._last_flat_in)
      logits = (
          self._logits(self._features)
          if self._logits
          else self._features
      )
      if self.free_log_std:
          logits = self._append_free_log_std(logits)
      return logits, state
  
file_path: ray/python/ray/rllib/models/torch/fcnet.py
imports: import logging
  import numpy
  import gymnasium
  from ray.rllib.models.torch.torch_modelv2 import TorchModelV2
  from ray.rllib.models.torch.misc import SlimFC, AppendBiasLayer, normc_initializer
  from ray.rllib.utils.annotations import override
  from ray.rllib.utils.framework import try_import_torch
  from ray.rllib.utils.typing import Dict, TensorType, List, ModelConfigDict
label_desc: Use image node_id 2 for calling the FullyConnectedNetwork obj's underlying member method code with example usage: obj.forward(input_dict, state, seq_lens) and returns: logits,  state