Skip to contents

Computes integrated gradients scores for model and an input sequence. This can be used to visualize what part of the input is import for the models decision. Code is R implementation of python code from here. Tensorflow implementation is based on this paper.

Usage

integrated_gradients(
  m_steps = 50,
  baseline_type = "zero",
  input_seq,
  target_class_idx,
  model,
  pred_stepwise = FALSE,
  num_baseline_repeats = 1
)

Arguments

m_steps

Number of steps between baseline and original input.

baseline_type

Baseline sequence, either "zero" for all zeros or "shuffle" for random permutation of input_seq.

input_seq

Input tensor.

target_class_idx

Index of class to compute gradient for

model

Model to compute gradient for.

pred_stepwise

Whether to do predictions with batch size 1 rather than all at once. Can be used if input is too big to handle at once. Only supported for single input layer.

num_baseline_repeats

Number of different baseline estimations if baseline_type is "shuffle" (estimate integrated gradient repeatedly for different shuffles). Final result is average of num_baseline single calculations.

Value

A tensorflow tensor.

Examples

if (FALSE) { # reticulate::py_module_available("tensorflow")
library(reticulate)
model <- create_model_lstm_cnn(layer_lstm = 8, layer_dense = 3, maxlen = 20, verbose = FALSE)
random_seq <- sample(0:3, 20, replace = TRUE)
input_seq <- array(keras::to_categorical(random_seq), dim = c(1, 20, 4))
integrated_gradients(
  input_seq = input_seq,
  target_class_idx = 3,
  model = model)
  
}