
    sgp                     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      5r   decimal)Xdigitscopyr   fitr   score_samplesmeanr   )Xrbms     X/var/www/html/venv/lib/python3.12/site-packages/sklearn/neural_network/tests/test_rbm.pytest_fitr$      s\    A
sr!RSC GGAJ))!,113UA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
srC 
IBGGE),s~~=>?I>>!Y/L1X #! 	#EOOE"	## ))!,113UAFq'"r%   c                      t         d d } t        dddd      }|j                  |        |j                  |       }|j	                  |       }t        ||       y )Nd         *   r   r   r   r   )r   r   r   	transform_mean_hiddensr   )r!   rbm1Xt1Xt2s       r#   test_transformrB   6   sP    ARAabQDHHQK
..
C


Q
CsC r%   csr_containerc                 T     | t         d d       }t               j                  |       y )N   )r   r   r   )rC   r!   s     r#   test_small_sparserF   A   s$     	gbqk"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srD srD 	XQ1""$d&8&8&;&@&@&BA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Q1QRPDHHQK1Q4 A	5:Fa$&&qtS1F	JB2q) 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Q1RcRDHHQK"((ZL:,#?@! 

1q) ))


#Cusen%AQ1RcRDHHQK"((ZL:,#?@! 

1qyy{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RBrPRSDHHQK

1Ii AJ669
*//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
		288D>2774=12ARAbsSDHHQKq!D(--/// D  #GD  !23G) 
8	$ 4BIIdOc1234 4 4s   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CJ 
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CJusen%A
1QRC 
JJ!xx! 	
 	
 
  
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
B1QR
PC			1	B 88y  "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atolgh㈵>gMbP?)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    4C=

+DraPRSF  &E 4C=

+DraPRSF  &E E5u15  &":":Q !!6#<#<5q 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
1CGC!%%'E272EFQQC(FN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 ;40  .9  : . jj"**

BJJ7#rzz9JK	:. E=#9:. ;.r%   