AIMET Visualization for Quantization for TensorFlow API

Top-level API for Visualization of Weight tensors

aimet_tensorflow.plotting_utils.visualize_weight_ranges_single_layer(sess, layer, results_dir)[source]

Given a layer, visualizes weight ranges with scatter plots and line plots

Parameters
  • sess – tf.compat.v1.Session

  • layer – layer with weights

  • results_dir – Directory to save the Bokeh plots

Returns

Bokeh plot


aimet_tensorflow.plotting_utils.visualize_relative_weight_ranges_single_layer(sess, layer, results_dir)[source]

Publishes a line plot showing weight ranges for each layer, summary statistics for relative weight ranges, and a histogram showing weight ranges of output channels

Parameters
  • sess – tf.compat.v1.Session

  • layer – layer with weights

  • results_dir – Directory to save the Bokeh plots

Returns

bokeh plot


Code Examples for Visualization of Weight tensors

Required imports

import tensorflow as tf
from tensorflow.keras.applications.resnet50 import ResNet50
from aimet_tensorflow import plotting_utils

Visualizing weight ranges for layer

def visualizing_weight_ranges_for_single_layer():
    # load a model
    tf.keras.backend.clear_session()
    _ = ResNet50(weights='imagenet', input_shape=(224, 224, 3))
    sess = tf.compat.v1.keras.backend.get_session()

    results_dir = 'artifacts'

    with sess.as_default():
        # Getting a layer for visualizaing its weight ranges
        conv_op = sess.graph.get_operation_by_name('conv1_conv/Conv2D')

        plotting_utils.visualize_weight_ranges_single_layer(sess=sess, layer=conv_op, results_dir=results_dir)
    sess.close()

Visualizing Relative weight ranges for layer

def visualizing_relative_weight_ranges_for_single_layer():
    # load a model
    tf.keras.backend.clear_session()
    _ = ResNet50(weights='imagenet', input_shape=(224, 224, 3))
    sess = tf.compat.v1.keras.backend.get_session()

    results_dir = 'artifacts'

    with sess.as_default():
        # Getting a layer for visualizaing its weight ranges
        conv_op = sess.graph.get_operation_by_name('conv1_conv/Conv2D')

        plotting_utils.visualize_relative_weight_ranges_single_layer(sess=sess, layer=conv_op,
                                                                     results_dir=results_dir)
    sess.close()