class_docstr: An agent implementing the LinUCB algorithm on top of a neural network.
code: def compute_summaries(self, loss):
      with tf.name_scope("Losses/"):
          tf.compat.v2.summary.scalar(
              name="total_loss", data=loss, step=self.train_step_counter
          )
  
      if self._summarize_grads_and_vars:
          with tf.name_scope("Variables/"):
              trainable_variables = (
                  self._encoding_network.trainable_weights
                  + self._reward_layer.trainable_weights
              )
              for var in trainable_variables:
                  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 Optional, Sequence, Text
  import gin
  import tensorflow
  from tf_agents.agents import data_converter
  from tf_agents.agents import tf_agent
  from tf_agents.bandits.agents import linear_bandit_agent
  from tf_agents.bandits.agents import utils
  from tf_agents.bandits.policies import neural_linucb_policy
  from tf_agents.bandits.specs import utils
  from tf_agents.policies import utils
  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 11 for calling the NeuralLinUCBAgent obj's underlying member method code with example usage: obj.compute_summaries(loss) without return types