class_docstr: Custom model that adds an imitation loss on top of the policy loss.
class_docstr_tok: ["Custom","model","that","adds","an","imitation","loss","on","top","of","the","policy","loss","."]
code: def __init__(
      self, obs_space, action_space, num_outputs, model_config, name
  ):
      super().__init__(
          obs_space, action_space, num_outputs, model_config, name
      )
  
      self.fcnet = FullyConnectedNetwork(
          self.obs_space,
          self.action_space,
          num_outputs,
          model_config,
          name="fcnet",
      )
  
imports: import numpy
  from ray.rllib.models.modelv2 import ModelV2, restore_original_dimensions
  from ray.rllib.models.tf.tf_action_dist import Categorical
  from ray.rllib.models.tf.tf_modelv2 import TFModelV2
  from ray.rllib.models.tf.fcnet import FullyConnectedNetwork
  from ray.rllib.models.torch.torch_action_dist import TorchCategorical
  from ray.rllib.models.torch.torch_modelv2 import TorchModelV2
  from ray.rllib.models.torch.fcnet import FullyConnectedNetwork
  from ray.rllib.utils.annotations import override
  from ray.rllib.utils.framework import try_import_tf, try_import_torch
  from ray.rllib.offline import JsonReader
label_desc: Use image node_id 1 to create a new CustomLossModel object from inherited base classes: TFModelV2 with example: obj = CustomLossModel(obs_space, action_space, num_outputs, model_config, name)