Ë
    ÷Q(hp  ã                   óf  — d dl Z d dlZd dlmZ d dlZd dlZd dlmZ d dl	m
Z
 d dlmZmZmZ d dlmZmZmZ d dlmZ  ed¬	«      \  ZZeej/                  «       z  Zeej1                  «       z  Zd
„ Zd„ Zd„ Zej8                  j;                  de«      d„ «       Zej8                  j;                  deez   «      d„ «       Zd„ Z ej8                  j;                  de«      d„ «       Z!d„ Z"ej8                  j;                  de«      d„ «       Z#d„ Z$ej8                  j;                  de«      d„ «       Z%ej8                  j;                  dejL                  ejL                  fejN                  ejN                  fe(ejN                  fg«      d„ «       Z)d„ Z*ej8                  j;                  dddg«      d„ «       Z+y) é    N)ÚStringIO)Úload_digits)ÚBernoulliRBM)Úassert_allcloseÚassert_almost_equalÚassert_array_equal)ÚCSC_CONTAINERSÚCSR_CONTAINERSÚLIL_CONTAINERS)Úassert_all_finiteT)Ú
return_X_yc                  óä   — t         j                  «       } t        ddddd¬«      }|j                  | «       t	        |j                  | «      j                  «       dd¬	«       t        | t         «       y )
Né@   çš™™™™™¹?é
   é   é	   )Ún_componentsÚlearning_rateÚ
batch_sizeÚn_iterÚrandom_stateç      5Àr   ©Údecimal)ÚXdigitsÚcopyr   Úfitr   Úscore_samplesÚmeanr   )ÚXÚrbms     úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/neural_network/tests/test_rbm.pyÚtest_fitr$      s\   € Ü�‰‹€Aä
Ø s°rÀ!ÐRSô€Cð ‡G�GˆA„Jä˜×)Ñ)¨!Ó,×1Ñ1Ó3°UÀAÕFô �qœ'Õ"ó    c                  óÂ  — t         j                  «       } t        dddd¬«      }| j                  d   }t	        t        j                  t        |«      |j                  z  «      «      }t        j                  | |«      }t        d«      D ]  }|D ]  }|j                  |«       Œ Œ t        |j                  | «      j                  «       dd¬	«       t        | t         «       y )
Nr   r   é   r   ©r   r   r   r   r   r   r   r   )r   r   r   ÚshapeÚintÚnpÚceilÚfloatr   Úarray_splitÚrangeÚpartial_fitr   r   r    r   )r!   r"   Ú	n_samplesÚ	n_batchesÚbatch_slicesÚiÚbatchs          r#   Útest_partial_fitr6   %   sº   € Ü�‰‹€AÜ
Ø s°rÈô€Cð —‘˜‘
€IÜ”B—G‘GœE )Ó,¨s¯~©~Ñ=Ó>Ó?€IÜ—>‘> ! YÓ/€Lä�1‹Xò #ˆØ!ò 	#ˆEØ�O‰O˜EÕ"ñ	#ð#ô ˜×)Ñ)¨!Ó,×1Ñ1Ó3°UÀAÕFÜ�qœ'Õ"r%   c                  ó²   — t         d d } t        dddd¬«      }|j                  | «       |j                  | «      }|j	                  | «      }t        ||«       y )Néd   é   é   é*   ©r   r   r   r   )r   r   r   Ú	transformÚ_mean_hiddensr   )r!   Úrbm1ÚXt1ÚXt2s       r#   Útest_transformrB   6   sP   € Ü��ˆ€AÜ R°A¸aÈbÔQ€DØ‡H�HˆQ„Kà
�.‰.˜Ó
€CØ
×
Ñ
˜QÓ
€Cä�s˜CÕ r%   Úcsr_containerc                 óT   —  | t         d d «      }t        «       j                  |«       y )Né   )r   r   r   )rC   r!   s     r#   Útest_small_sparserF   A   s$   € ñ 	”g˜b˜q�kÓ"€AÜƒN×Ñ�qÕr%   Úsparse_containerc                 ó`  —  | t         d d «      }t         d d j                  «       }t        dddd¬«      }t        dddd¬«      }|j                  |«       |j                  |«       t	        |j                  |«      j                  «       |j                  |«      j                  «       d¬«       y )	Nr8   r   r   r   r   r(   r   r   )r   r   r   r0   r   r   r    )rG   ÚX_sparser!   r?   Úrbm2s        r#   Útest_small_sparse_partial_fitrK   H   s£   € á¤¨¨ Ó.€HÜ��ˆ×ÑÓ€AäØ s°rÈô€Dô Ø s°rÈô€Dð 	×Ñ�XÔØ×Ñ�QÔäØ×Ñ˜1Ó×"Ñ"Ó$ d×&8Ñ&8¸Ó&;×&@Ñ&@Ó&BÈAör%   c            	      ób  — t         j                  j                  d«      } t        d d }t	        dddd¬«      }|j                  |«       |j                  |d   «      }t        j                  t        d«      D �cg c]  }|j                  |d   | «      ‘Œ c}d«      }t        ||d¬«       y c c}w )	Nr   r8   é   r:   r;   r<   é   r   )r+   ÚrandomÚRandomStater   r   r   r>   r    r/   Ú_sample_hiddensr   )Úrngr!   r?   Úhr4   Úhss         r#   Útest_sample_hiddensrU   \   s’   € Ü
�)‰)×
Ñ
 Ó
"€CÜ��ˆ€AÜ Q°1¸QÈRÔP€DØ‡H�HˆQ„Kà×Ñ˜1˜Q™4Ó €AÜ	�‰¼5À»:ÖF°a�$×&Ñ& q¨¡t¨SÕ1ÒFÈÓ	J€Bä˜˜2 qÖ)ùò Gs   Á9B,Úcsc_containerc                 óÎ  — t         j                  j                  d«      }t        j                  dgdgg«      }t	        ddd|¬«      }|j                  |«       t        |j                  t        j                  dgdgg«      d¬	«       t        |j                  |«      |«       t         j                  j                  d«      } | dgdgg«      }t	        ddd|¬«      }|j                  |«       t        |j                  t        j                  dgdgg«      d¬	«       t        |j                  |«      |j                  «       «       t        |j                  |j                  «       y )
Nr;   ç        ç      ð?rM   r<   gÏ¾ÑT"›?g&ÿr±’”?rE   r   )
r+   rO   rP   Úarrayr   r   r   Úcomponents_ÚgibbsÚtoarray)rV   rR   r!   r?   rJ   s        r#   Útest_fit_gibbsr^   h   s  € ô �)‰)×
Ñ
 Ó
#€CÜ
�‰�3�%˜#˜�Ó €AÜ Q°1¸RÈcÔR€Dà‡H�HˆQ„KÜØ×Ñœ"Ÿ(™( Z L°:°,Ð#?Ó@È!õô ˜Ÿ
™
 1› qÔ)ô �)‰)×
Ñ
 Ó
#€CÙ˜�u˜s˜e�nÓ%€AÜ Q°1¸RÈcÔR€DØ‡H�HˆQ„KÜØ×Ñœ"Ÿ(™( Z L°:°,Ð#?Ó@È!õô ˜Ÿ
™
 1› q§y¡y£{Ô3Ü˜×(Ñ(¨$×*:Ñ*:Õ;r%   c                  óþ   — t         } t        dddd¬«      }|j                  | «       |j                  | «      }t	        |«       |j                  | «      }t        j                  ||k7  j                  d¬«      «      sJ ‚y )Nr;   é(   r'   r<   rN   )Úaxis)r   r   r   r\   r   r+   ÚallÚmax)r!   r?   Ú	X_sampledÚ
X_sampled2s       r#   Útest_gibbs_smokerf   …   sl   € ô 	€AÜ R°B¸rÐPRÔS€DØ‡H�HˆQ„KØ—
‘
˜1“€IÜ�iÔ Ø—‘˜A“€JÜ�6‰6�9 
Ñ*×/Ñ/°QÐ/Ó7Ô8Ð8Ñ8r%   Úlil_containersc                 ón  — t         j                  j                  d«      }t        j                  t        j                  d«      t        j
                  d«      g«      }t        ddd|¬«      }|j                  |«       |j                  |«      dk  j                  «       sJ ‚d|_
        |j                  |«      }d|_
        |j                   | |«      «      }t        ||«       t        j                  d¬«      5  |j                  t        j                  d«      d	z  g«       d d d «       y # 1 sw Y   y xY w)
Nr;   iè  r   rM   r<   iÔþÿÿÚignore)Úunderr8   )r+   rO   rP   ÚvstackÚzerosÚonesr   r   r   rb   r   r   ÚerrstateÚarange)rg   rR   r!   r?   Úd_scoreÚs_scores         r#   Útest_score_samplesrr   ‘   sú   € ô
 �)‰)×
Ñ
 Ó
#€CÜ
�	‰	”2—8‘8˜D“>¤2§7¡7¨4£=Ð1Ó2€AÜ R°A¸bÈsÔS€DØ‡H�HˆQ„KØ×Ñ˜qÓ! DÑ(×-Ñ-Ô/Ð/Ð/ð €DÔØ× Ñ  Ó#€GØ€DÔØ× Ñ ¡°Ó!2Ó3€GÜ˜ Ô)ô 
�‰˜8Ô	$ñ 4Ø×ÑœBŸI™I d›O¨cÑ1Ð2Ô3÷4÷ 4ñ 4ús   Ã9)D+Ä+D4c                  óÆ   — t        dd¬«      } t        j                  }t        «       t        _        	 | j	                  t
        «       |t        _        y # |t        _        w xY w)NrM   r   )r   Úverbose)r   ÚsysÚstdoutr   r   r   )r"   Ú
old_stdouts     r#   Útest_rbm_verboserx   ª   s@   € Ü
˜a¨Ô
,€CÜ—‘€JÜ“„C„Jð Ø�‰”ÔàŒ�
ø�ZŒ�
ús   ²A ÁA c                 óJ  — t         j                  }t        «       t         _         | dgdgg«      }t        ddddd¬«      }	 |j	                  |«       t         j                  j                  «       }t        j                  d|«      sJ ‚	 |t         _        y # |t         _        w xY w)	NrX   rY   rM   rN   r;   T)r   r   r   r   rt   zS\[BernoulliRBM\] Iteration 1, pseudo-likelihood = -?(\d)+(\.\d+)?, time = (\d|\.)+s)ru   rv   r   r   r   ÚgetvalueÚreÚmatch)rV   rw   r!   r"   Úss        r#   Útest_sparse_and_verboser~   ´   s�   € ô —‘€JÜ“„C„Já˜�u˜s˜e�nÓ%€AÜ
Ø 1¨Q¸RÈô€Cð Ø�‰�Œ
Ü�J‰J×ÑÓ!ˆä�x‰xð!ð ô	
ð 	
ñ 
ð  Œ�
ø�ZŒ�
ús   ÁAB ÂB"zdtype_in, dtype_outc                 óè   — t         d d j                  | «      }t        dddd¬«      }|j                  |«      }|j                  |k(  s+J dj                  |j                  |j                  «      «       ‚y )Nr8   r9   r:   r;   r<   z(transform dtype: {} - original dtype: {})r   Úastyper   Úfit_transformÚdtypeÚformat)Údtype_inÚ	dtype_outr!   r"   ÚXts        r#   Útest_transformer_dtypes_castingr‡   Ì   sp   € ô
 	��ˆ×Ñ˜XÓ&€AÜ
 B°1¸QÈRÔ
P€CØ	×	Ñ	˜1Ó	€Bð �8‰8�yÒ ð Ð"L×"SÑ"SØ
�‰�!—'‘'ó#ó Ñ r%   c                  óL  — t         d d j                  t        j                  «      } t	        dddd¬«      }|j                  | «      }t         d d j                  t        j                  «      }t	        dddd¬«      }|j                  |«      }t        ||dd¬«       t        |j                  |j                  dd¬«       t        |j                  |j                  d	d¬«       t        |j                  |j                  d
d¬«       t        |j                  |j                  «       y )Nr8   r9   r:   r;   r<   g�íµ ÷Æ°>r   )ÚrtolÚatolgñhãˆµøä>gü©ñÒMbP?)r   r€   r+   Úfloat64r   r�   Úfloat32r   Úintercept_hidden_Úintercept_visible_r[   Ú
h_samples_)ÚX_64Úrbm_64ÚXt_64ÚX_32Úrbm_32ÚXt_32s         r#   Ú"test_convergence_dtype_consistencyr–   Û   sø   € ä�4�Cˆ=×Ñ¤§
¡
Ó+€DÜ r°aÀÐPRÔS€FØ× Ñ  Ó&€Eô �4�Cˆ=×Ñ¤§
¡
Ó+€DÜ r°aÀÐPRÔS€FØ× Ñ  Ó&€Eô �E˜5 u°1Õ5ÜØ× Ñ  &×":Ñ":ÀÈQõô Ø×!Ñ! 6×#<Ñ#<À5Èqõô �F×&Ñ&¨×(:Ñ(:ÀÈQÕOÜ�F×%Ñ% v×'8Ñ'8Õ9r%   Úmethodr   r0   c                 óÄ   — d}t        |¬«      } t        || «      t        «       |j                  «       }t	        |«      D �cg c]  }d|› �‘Œ	 }}t        ||«       yc c}w )z1Check `get_feature_names_out` for `BernoulliRBM`.r   )r   ÚbernoullirbmN)r   Úgetattrr   Úget_feature_names_outr/   r   )r—   r   r"   Únamesr4   Úexpected_namess         r#   Útest_feature_names_outrž   ò   sa   € ð €LÜ
 LÔ
1€CØ„GˆC�ÓœÔ!à×%Ñ%Ó'€EÜ27¸Ó2EÖF¨Q˜ Q CÒ(ÐF€NÐFÜ�~ uÕ-ùò Gs   ÁA),r{   ru   Úior   Únumpyr+   ÚpytestÚsklearn.datasetsr   Úsklearn.neural_networkr   Úsklearn.utils._testingr   r   r   Úsklearn.utils.fixesr	   r
   r   Úsklearn.utils.validationr   r   Ú_Úminrc   r$   r6   rB   ÚmarkÚparametrizerF   rK   rU   r^   rf   rr   rx   r~   rŒ   r‹   r*   r‡   r–   rž   © r%   r#   ú<module>r¬      s¿  ðÛ 	Û 
Ý ã Û å (Ý /÷ñ ÷
 OÑ NÝ 6á DÔ)�
€ˆØ ˆ7�;‰;‹=Ñ €Ø ˆ7�;‰;‹=Ñ €ò#ò#ò"!ð ‡�×Ñ˜¨.Ó9ñó :ðð ‡�×ÑÐ+¨^¸nÑ-LÓMñó Nðò&	*ð ‡�×Ñ˜¨.Ó9ñ<ó :ð<ò8	9ð ‡�×ÑÐ)¨>Ó:ñ4ó ;ð4ò0 ð ‡�×Ñ˜¨.Ó9ñ ó :ð ð. ‡�×ÑØØ‡j�j�"—*‘*Ð §
¡
¨B¯J©JÐ7¸#¸r¿z¹zÐ9JÐKóñó	ðò:ð. ‡�×Ñ˜ E¨=Ð#9Ó:ñ.ó ;ñ.r%   