class_docstr: Perform gradients backpropagation for a given input
  
  Paper: [Deep Inside Convolutional Networks: Visualising Image Classification
      Models and Saliency Maps](https://arxiv.org/abs/1312.6034)
class_docstr_tok: ["Perform","gradients","backpropagation","for","a","given","input","Paper",":","[","Deep","Inside","Convolutional","Networks",":","Visualising","Image","Classification","Models","and","Saliency","Maps","]","(","https",":","\/\/arxiv.org\/abs\/1312.6034",")"]
docstr: Draw VanillaGradients outputs at each epoch end to Tensorboard.
  
  Args:
      epoch (int): Epoch index
      logs (dict): Additional information on epoch
docstr_tok: ["Draw","VanillaGradients","outputs","at","each","epoch","end","to","Tensorboard",".","Args",":","epoch","(","int",")",":","Epoch","index","logs","(","dict",")",":","Additional","information","on","epoch"]
code: def on_epoch_end(self, epoch, logs=None):
      """
      Draw VanillaGradients outputs at each epoch end to Tensorboard.
  
      Args:
          epoch (int): Epoch index
          logs (dict): Additional information on epoch
      """
      grid = self.explainer.explain_score_model(
          self.validation_data, self.score_model, self.class_index
      )
  
      # Using the file writer, log the reshaped image.
      with self.file_writer.as_default():
          tf.summary.image(
              self.explainer.__class__.__name__,
              np.expand_dims([grid], axis=-1),
              step=epoch,
          )
  
file_path: tf-explain/tf_explain/callbacks/vanilla_gradients.py
imports: from datetime import datetime
  from pathlib import Path
  import numpy
  import tensorflow
  from tensorflow.keras.callbacks import Callback
  from tf_explain.core.vanilla_gradients import VanillaGradients
label_desc: Use image node_id 3 for calling the VanillaGradientsCallback obj's underlying member method code with example usage: obj.on_epoch_end(epoch, logs) without return types