class_docstr: Defines an abstract neural network model for use with RLlib.
  
  Custom models should extend either TFModelV2 or TorchModelV2 instead of
  this class directly.
  
  Data flow:
      obs -> forward() -> model_out
          \-> value_function() -> V(s)
class_docstr_tok: ["Defines","an","abstract","neural","network","model","for","use","with","RLlib",".","Custom","models","should","extend","either","TFModelV2","or","TorchModelV2","instead","of","this","class","directly",".","Data","flow",":","obs","-",">","forward","(",")","-",">","model_out","\\-",">","value_function","(",")","-",">","V","(","s",")"]
docstr: Returns the list of trainable variables for this model.
  
  Args:
      as_dict: Whether variables should be returned as dict-values
          (using descriptive keys).
  
  Returns:
      The list (or dict if `as_dict` is True) of all trainable
      (tf)/requires_grad (torch) variables of this ModelV2.
docstr_tok: ["Returns","the","list","of","trainable","variables","for","this","model",".","Args",":","as_dict",":","Whether","variables","should","be","returned","as","dict-values","(","using","descriptive","keys",")",".","Returns",":","The","list","(","or","dict","if","`","as_dict","`","is","True",")","of","all","trainable","(","tf",")","\/requires_grad","(","torch",")","variables","of","this","ModelV2","."]
code: def trainable_variables(
      self, as_dict: bool = False
  ) -> Union[List[TensorType], Dict[str, TensorType]]:
      """Returns the list of trainable variables for this model.
  
      Args:
          as_dict: Whether variables should be returned as dict-values
              (using descriptive keys).
  
      Returns:
          The list (or dict if `as_dict` is True) of all trainable
          (tf)/requires_grad (torch) variables of this ModelV2.
      """
      raise NotImplementedError
  
imports: from collections import OrderedDict
  import contextlib
  import gymnasium
  from gymnasium.spaces import Space
  import numpy
  from typing import Dict, List, Any, Union
  from ray.rllib.models.preprocessors import get_preprocessor, RepeatedValuesPreprocessor
  from ray.rllib.models.repeated_values import RepeatedValues
  from ray.rllib.policy.sample_batch import SampleBatch
  from ray.rllib.policy.view_requirement import ViewRequirement
  from ray.rllib.utils import NullContextManager
  from ray.rllib.utils.annotations import DeveloperAPI, PublicAPI
  from ray.rllib.utils.deprecation import Deprecated
  from ray.rllib.utils.framework import try_import_tf, try_import_torch, TensorType
  from ray.rllib.utils.spaces.repeated import Repeated
  from ray.rllib.utils.typing import ModelConfigDict, ModelInputDict, TensorStructType
label_desc: Use image node_id 12 for calling the ModelV2 obj's underlying member method code with example usage: obj.trainable_variables(as_dict) without return types