class_docstr: Custom model for policy gradient algorithms.
code: def forward(self, input_dict, state, seq_lens):
      if self.model_config["vf_share_layers"]:
          model_out, self._value_out = self.base_model(
              input_dict["obs"]
          )
      else:
          model_out = self.base_model(input_dict["obs"])
          self._value_out = tf.zeros(
              shape=(tf.shape(input_dict["obs"])[0],)
          )
      return model_out, state
  
imports: import h5py
  import numpy
  from pathlib import Path
  import unittest
  import ray
  from ray.rllib.algorithms.ppo import PPOConfig
  from ray.rllib.models.catalog import ModelCatalog
  from ray.rllib.models.tf.misc import normc_initializer
  from ray.rllib.models.tf.tf_modelv2 import TFModelV2
  from ray.rllib.models.torch.torch_modelv2 import TorchModelV2
  from ray.rllib.policy.sample_batch import DEFAULT_POLICY_ID
  from ray.rllib.utils.framework import try_import_tf, try_import_torch
  from ray.rllib.utils.test_utils import check, framework_iterator
label_desc: Use image node_id 2 for calling the MyKerasModel obj's underlying member method code with example usage: obj.forward(input_dict, state, seq_lens) and returns: model_out,  state