class_docstr: Keras version of above BatchNormModel with exactly the same structure.
  
  IMORTANT NOTE: This model will not work with PPO due to a bug in keras
  that surfaces when having more than one input placeholder (here: `inputs`
  and `is_training`) AND using the `make_tf_callable` helper (e.g. used by
  PPO), in which auto-placeholders are generated, then passed through the
  tf.keras. models.Model. In this last step, the connection between 1) the
  provided value in the auto-placeholder and 2) the keras `is_training`
  Input is broken and keras complains.
  Use the below `BatchNormModel` (a non-keras based TFModelV2), instead.
code: def value_function(self):
      return tf.reshape(self._value_out, [-1])
  
imports: import numpy
  from ray.rllib.models.modelv2 import ModelV2
  from ray.rllib.models.tf.misc import normc_initializer
  from ray.rllib.models.tf.tf_modelv2 import TFModelV2
  from ray.rllib.models.torch.misc import SlimFC, normc_initializer
  from ray.rllib.models.torch.torch_modelv2 import TorchModelV2
  from ray.rllib.policy.sample_batch import SampleBatch
  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 3 for calling the KerasBatchNormModel obj's underlying member method code with example usage: obj.value_function() and returns: tf