class_docstr: A neural-network based bandit agent for multi-objective optimization.
  
  This agent receives multiple neural networks. Each network will be trained by
  the agent to predict a specific objective. The agent also receives a
  Scalarizer, which transforms multiple predicted objectives to a single reward.
  The action is chosen greedily by the policy with respect to the scalarized
  predicted reward.
code: def compute_summaries(self, losses: Sequence[tf.Tensor]):
      if self._num_objectives != len(losses):
          raise ValueError(
              "The number of losses: {} does not equal the number "
              "of objectives: {}".format(
                  len(losses), self._num_objectives
              )
          )
      if self.summaries_enabled:
          with tf.name_scope("Losses/"):
              for idx in range(self._num_objectives):
                  name_of_loss = self._objective_networks[idx].name
                  if not name_of_loss:
                      name_of_loss = "loss_{}".format(idx)
                  tf.compat.v2.summary.scalar(
                      name=name_of_loss,
                      data=losses[idx],
                      step=self.train_step_counter,
                  )
  
          if self._summarize_grads_and_vars:
              with tf.name_scope("Variables/"):
                  for var in self._variables_to_train():
                      tf.compat.v2.summary.histogram(
                          name=var.name.replace(":", "_"),
                          data=var,
                          step=self.train_step_counter,
                      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from typing import Callable, Optional, Sequence, Text, Tuple
  from absl import logging
  import gin
  import tensorflow
  from tf_agents.agents import data_converter
  from tf_agents.agents import tf_agent
  from tf_agents.bandits.agents import utils
  from tf_agents.bandits.multi_objective import multi_objective_scalarizer
  from tf_agents.bandits.networks import heteroscedastic_q_network
  from tf_agents.bandits.policies import greedy_multi_objective_neural_policy
  from tf_agents.bandits.specs import utils
  from tf_agents.networks.network import Network
  from tf_agents.policies import utils
  from tf_agents.trajectories import time_step
  from tf_agents.typing import types
  from tf_agents.utils import common
  from tf_agents.utils import eager_utils
label_desc: Use image node_id 7 for calling the GreedyMultiObjectiveNeuralAgent obj's underlying member method code with example usage: obj.compute_summaries(losses) without return types