code: def ig_explainer(request, iris_data, ffn_classifier):
      layer_meta = request.param
  
      if layer_meta == LayerState.CALLABLE:
  
          def layer(model):
              return model.layers[1]
  
      elif isinstance(layer_meta, numbers.Integral):
          layer = ffn_classifier.layers[layer_meta]
      else:
          layer = None
  
      ig = IntegratedGradients(model=ffn_classifier, layer=layer)
      return ig
  
imports: import numbers
  import sys
  import numpy
  from numpy.testing import assert_allclose
  import pytest
  from pytest_lazyfixture import lazy_fixture
  from sklearn.linear_model import LogisticRegression
  from sklearn.ensemble import RandomForestClassifier
  import tempfile
  import tensorflow
  from typing import List, Union
  from alibi.explainers import ALE, AnchorImage, AnchorTabular, AnchorText, IntegratedGradients, KernelShap, TreeShap, CounterfactualRLTabular, GradientSimilarity
  from alibi.explainers.integrated_gradients import LayerState
  from alibi.saving import load_explainer
  from alibi_testing.data import get_adult_data, get_iris_data, get_movie_sentiment_data
  import alibi_testing
  from alibi.utils.download import spacy_model
  from alibi.explainers.tests.utils import predict_fcn
label_desc: Use image node_id 12 for calling a global function with example usage: ig_explainer(request, iris_data, ffn_classifier) and returns: ig, model