ó
    †ñ:iZ	  ã                   ó   • S r S rS rg)zRThis file contains various utility functions that are useful but not core to SHAP.c                 óz  • SSK n[        U[        5      (       a  U R                  U   n[        U[        5      (       a  U R                  U   nUR	                  S5      nUR
                  R                  USS S9nUR                  R                  U0n[        U R                  5      nSnSn	[        U5      S:”  Ga(  UR                  S5      n
[        U5      U:X  a  U	S-  n	OSn	[        U5      nU	[        U5      :”  a  [        S5      e [        U
R                  [        5      (       a)  U
R                   Vs/ s H  o¶UR                     PM     nnOXjR                  R                     n U
R                  R                  U;  a  U
" U5      XjR                  R                  '   U
R                  R                  UR                  R                  :X  a  O[        U5      S:”  a  GM(  UR
                  R!                  XVUR                  R                     5      $ s  snf ! [         a    UR                  U
5         GMŽ  f = f)zHClones the keras layers between the start and stop layer as a new model.é    Né   )Úshapez<Failed to find a complete graph starting at the given layer!)Ú
tensorflowÚ
isinstanceÚintÚlayersÚget_input_shape_atÚkerasÚInputÚinputÚnameÚlistÚlenÚpopÚ	ExceptionÚKeyErrorÚappendÚoutputÚModel)ÚmodelÚstart_layerÚ
stop_layerÚtfÚinput_shapeÚlayer_inputÚ
new_layersÚlayers_to_processÚlast_lenÚdup_tryÚlayerÚvÚlayer_inputss                ÚT/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/shap/utils/_keras.pyÚclone_keras_layersr%      sè  € ãä�+œs×#Ñ#Ø—l‘l ;Ñ/ˆÜ�*œc×"Ñ"Ø—\‘\ *Ñ-ˆ
à×0Ñ0°Ó3€KØ—(‘(—.‘. {°1°2 �.Ð7€Kà×#Ñ#×(Ñ(¨+Ð6€JÜ˜UŸ\™\Ó*ÐØ€HØ€GÜ
ÐÓ
  1Ô
$Ø!×%Ñ% aÓ(ˆÜÐ Ó! XÓ-Ø�q‰L‰GàˆGÜÐ(Ó)ˆØ”SÐ*Ó+Ó+ÜÐZÓ[Ð[ð		Ü˜%Ÿ+™+¤t×,Ñ,Ø<A¿KºKÓHºK°q¨1¯6©6Ô 2¹K�ÐH�à)¯+©+×*:Ñ*:Ñ;‘ð �<‰<×Ñ JÓ.Ù,1°,Ó,?ˆJ—|‘|×(Ñ(Ñ)Ø�<‰<×Ñ 
× 1Ñ 1× 6Ñ 6Ó6Øô- ÐÓ
  1Ö
$ð. �8‰8�>‰>˜+°*×2CÑ2C×2HÑ2HÑ'IÓJÐJùò  Iøô ó 	ð ×$Ñ$ UÔ+Ûð		ús*   Ä	-H Ä6HÅH ÅH ÈH ÈH:È9H:c                 óz  • [        U[        5      (       a  U R                  U5      nO$[        U[        5      (       a  U R                  U   nU R                  UR                  S5      R                  R                  S5      S   5      n[        X R                  S   U5      n[        XU R                  S   5      nX44$ )z„Splits the keras model around layer into two models.

This is done such that model2(model1(X)) = model(X)
and mode11(X) == layer(X)
r   Ú/r   éÿÿÿÿ)	r   ÚstrÚ	get_layerr   r	   Úget_input_atr   Úsplitr%   )r   r!   Ú
prev_layerÚmodel1Úmodel2s        r$   Úsplit_keras_modelr0   .   sš   € ô �%œ×ÑØ—‘ Ó&‰Ü	�Eœ3×	Ñ	Ø—‘˜UÑ#ˆà—‘ ×!3Ñ!3°AÓ!6×!;Ñ!;×!AÑ!AÀ#Ó!FÀqÑ!IÓJ€Jä §|¡|°A¡¸
ÓC€FÜ ¨e¯l©l¸2Ñ.>Ó?€Fàˆ>Ðó    N)Ú__doc__r%   r0   © r1   r$   Ú<module>r4      s   ðÙ Xò'KóTr1   