This example demonstrates some techniques of visualizing
the internal workings of a convolutional neural network (convnet)
in TensorFlow.js, including:
Finding what convolutional layers' filters are sensitive to after
training: calculating maximally-activating input image for
convolutional filters through gradient ascent in the input space.
Getting the internal activation of a convnet by uisng the
functional model API of TensorFlow.js
Finding which part of an input image is most relevant to the
classification decision made by a convnet (
VGG16
in this case), using the gradient-based class activation map (CAM)
approach.