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: From AnalyzerBase super init:
  * Initializes empty list of _model_checks
  * set _neuron_selection_mode
  
  Here:
  * add check for lambda layers through 'allow_lambda_layers'
  * define attributes for '_prepare_model', which is later called
      through 'create_analyzer_model'
docstr_tok: ["From","AnalyzerBase","super","init",":","*","Initializes","empty","list","of","_model_checks","*","set","_neuron_selection_mode","Here",":","*","add","check","for","lambda","layers","through","'allow_lambda_layers'","*","define","attributes","for","'_prepare_model","'",",","which","is","later","called","through","'create_analyzer_model","'"]
code: def __init__(
      self,
      model: Model,
      allow_lambda_layers: bool = False,
      **kwargs,
  ) -> None:
      """
      From AnalyzerBase super init:
      * Initializes empty list of _model_checks
      * set _neuron_selection_mode
  
      Here:
      * add check for lambda layers through 'allow_lambda_layers'
      * define attributes for '_prepare_model', which is later called
          through 'create_analyzer_model'
      """
      # Call super init to initialize self._model_checks
      super().__init__(model, **kwargs)
  
      # Add model check for lambda layers
      self._allow_lambda_layers: bool = allow_lambda_layers
      self._add_lambda_layers_check()
  
      # Attributes of prepared model created by '_prepare_model'
      self._analyzer_model_done: bool = False
      self._analyzer_model: Model = None
      self._special_helper_layers: list[
          Layer
      ] = []  # added for _reverse_mapping
      self._analysis_inputs: list[Tensor] | None = None
      self._n_data_input: int = 0
      self._n_constant_input: int = 0
      self._n_data_output: int = 0
      self._n_debug_output: int = 0
  
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 1 to create a new AnalyzerNetworkBase object from inherited base classes: AnalyzerBase with example: obj = AnalyzerNetworkBase(model, allow_lambda_layers)