code: def __init__(
      self,
      obs_space,
      action_space,
      num_outputs,
      model_config,
      name,
      fc_size=64,
      lstm_state_size=256,
  ):
      nn.Module.__init__(self)
      super().__init__(
          obs_space, action_space, num_outputs, model_config, name
      )
  
      self.obs_size = get_preprocessor(obs_space)(obs_space).size
      self.fc_size = fc_size
      self.lstm_state_size = lstm_state_size
  
      # Build the Module from fc + LSTM + 2xfc (action + value outs).
      self.fc1 = nn.Linear(self.obs_size, self.fc_size)
      self.lstm = nn.LSTM(
          self.fc_size, self.lstm_state_size, batch_first=True
      )
      self.action_branch = nn.Linear(self.lstm_state_size, num_outputs)
      self.value_branch = nn.Linear(self.lstm_state_size, 1)
      # Holds the current "base" output (before logits layer).
      self._features = None
  
file_path: ray/python/ray/rllib/examples/models/rnn_model.py
imports: import numpy
  from ray.rllib.models.modelv2 import ModelV2
  from ray.rllib.models.preprocessors import get_preprocessor
  from ray.rllib.models.tf.recurrent_net import RecurrentNetwork
  from ray.rllib.models.torch.recurrent_net import RecurrentNetwork
  from ray.rllib.utils.annotations import override
  from ray.rllib.utils.framework import try_import_tf, try_import_torch
label_desc: Use image node_id 1 to create a new TorchRNNModel object from inherited base classes: TorchRNN, nn with example: obj = TorchRNNModel(obs_space, action_space, num_outputs, model_config, name, fc_size, lstm_state_size)