code: def ffn_model_subclass_list_input(request):
      """
      Simple subclassed, multi-input feed-forward model with configurable data,
      loss function, output activation and dimension
      """
      config = request.param
  
      class Linear(Model):
          def __init__(self, output_dim, activation):
              super(Linear, self).__init__()
              self.flat = tf.keras.layers.Flatten()
              self.concat = tf.keras.layers.Concatenate()
              self.dense_1 = tf.keras.layers.Dense(
                  20, activation="relu"
              )
              self.dense_2 = tf.keras.layers.Dense(
                  output_dim, activation
              )
  
          def call(self, inputs):
              inp0 = self.flat(inputs[0])
              inp1 = self.flat(inputs[1])
              x = self.concat([inp0, inp1])
              x = self.dense_1(x)
              outputs = self.dense_2(x)
              return outputs
  
      model = Linear(
          config["output_dim"], activation=config["activation"]
      )
      model.compile(loss=config["loss"], optimizer="adam")
  
      model.fit(
          config["X_train_multi_inputs"],
          config["y_train"],
          epochs=1,
          batch_size=256,
          verbose=1,
      )
  
      return model
  
imports: from functools import partial
  import numpy
  import pytest
  import tensorflow
  from numpy.testing import assert_allclose
  from tensorflow.keras import Model
  from alibi.api.interfaces import Explanation
  from alibi.explainers import IntegratedGradients
  from alibi.explainers.integrated_gradients import _get_target_from_target_fn, _run_forward_from_layer, _run_forward_to_layer, _check_target, _select_target
label_desc: Use image node_id 4 for calling a global function with example usage: ffn_model_subclass_list_input(request) and returns: model, outputs