class_docstr: Convenience interface for analyzers.
  
  This class provides helpful functionality to create analyzer's.
  Basically it:
  
  * takes the input model and adds a layer that selects
    the desired output neuron to analyze.
  * passes the new model to :func:`_create_analysis` which should
    return the analysis as Keras tensors.
  * compiles the function and serves the output to :func:`analyze` calls.
  * allows :func:`_create_analysis` to return tensors
    that are intercept for debugging purposes.
  
  :param allow_lambda_layers: Allow the model to contain lambda layers.
docstr: Interface that needs to be implemented by a derived class.
  
  This function is expected to create a Keras graph that creates
  a custom analysis for the model inputs given the model outputs.
  
  :param model: Target of analysis.
  :param stop_analysis_at_tensors: A list of tensors where to stop the
    analysis. Similar to stop_gradient arguments when computing the
    gradient of a graph.
  :return: Either one-, two- or three-tuple of lists of tensors.
    * The first list of tensors represents the analysis for each
      model input tensor. Tensors present in stop_analysis_at_tensors
      should be omitted.
    * The second list, if present, is a list of debug tensors that will
      be passed to :func:`_handle_debug_output` after the analysis
      is executed.
    * The third list, if present, is a list of constant input tensors
      added to the analysis model.
docstr_tok: ["Interface","that","needs","to","be","implemented","by","a","derived","class",".","This","function","is","expected","to","create","a","Keras","graph","that","creates","a","custom","analysis","for","the","model","inputs","given","the","model","outputs",".",":","param","model",":","Target","of","analysis",".",":","param","stop_analysis_at_tensors",":","A","list","of","tensors","where","to","stop","the","analysis",".","Similar","to","stop_gradient","arguments","when","computing","the","gradient","of","a","graph",".",":","return",":","Either","one-",",","two-","or","three-tuple","of","lists","of","tensors",".","*","The","first","list","of","tensors","represents","the","analysis","for","each","model","input","tensor",".","Tensors","present","in","stop_analysis_at_tensors","should","be","omitted",".","*","The","second","list",",","if","present",",","is","a","list","of","debug","tensors","that","will","be","passed","to",":","func",":","`","_handle_debug_output","`","after","the","analysis","is","executed",".","*","The","third","list",",","if","present",",","is","a","list","of","constant","input","tensors","added","to","the","analysis","model","."]
code: def _create_analysis(
      self, model: Model, stop_analysis_at_tensors: list[Tensor] = None
  ) -> (
      tuple[list[Tensor]]
      | tuple[list[Tensor], list[Tensor]]
      | tuple[list[Tensor], list[Tensor], list[Tensor]]
  ):
      """
      Interface that needs to be implemented by a derived class.
  
      This function is expected to create a Keras graph that creates
      a custom analysis for the model inputs given the model outputs.
  
      :param model: Target of analysis.
      :param stop_analysis_at_tensors: A list of tensors where to stop the
        analysis. Similar to stop_gradient arguments when computing the
        gradient of a graph.
      :return: Either one-, two- or three-tuple of lists of tensors.
        * The first list of tensors represents the analysis for each
          model input tensor. Tensors present in stop_analysis_at_tensors
          should be omitted.
        * The second list, if present, is a list of debug tensors that will
          be passed to :func:`_handle_debug_output` after the analysis
          is executed.
        * The third list, if present, is a list of constant input tensors
          added to the analysis model.
      """
      raise NotImplementedError()
  
imports: from __future__ import annotations
  from typing import Any
  import numpy
  import tensorflow.keras.backend
  import tensorflow.keras.layers
  import tensorflow.keras.models
  import innvestigate.backend
  import innvestigate.backend.checks
  import innvestigate.layers
  from innvestigate.analyzer.base import AnalyzerBase
  from innvestigate.backend.types import Layer, LayerCheck, Model, OptionalList, Tensor
label_desc: Use image node_id 6 for calling the AnalyzerNetworkBase obj's underlying member method code with example usage: obj._create_analysis(model, stop_analysis_at_tensors) without return types