
    bIgL                    X    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Z	 G d de      Z
y)	    )annotationsN)Base)expectc                N   | j                   }t        |      dk(  rt        d      |j                   }|d   }|d   }d }	|vt        j                  |t        j
                  |t        j                        d      }	|st        j                  ||k(  d|	      j                  t        j                        }	n:|8t        j                  ||k(  dd      j                  t        j                        }	t        |      dk7  r'| j                  ||df      } |j                  |df      }| j                   d	   }
t        j                  ||
ft        j                        }t        |      D ]6  }t        |
      D ]&  }||   |   |k7  s| |   ||   |      |    ||   |<   ( 8 |}t        |      dk7  r|j                  |      }|	-|	|z  }|d
k(  r#|j                         |	j                         z  }|S |d
k(  rt        j                  |      }|S |dk(  rt        j                  |      }|S )N   zUnsupported shaper   )dtypeclip)mode      meansum)shapelenRuntimeErrornptakearrayint32whereastypefloat32reshapezerosranger   r   )inputtargetweight	reductionignore_indexinput_shapetarget_shapeNCgather_weightDneg_gather_element_inputidlosss                  r/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/case/node/negativeloglikelihoodloss.py$compute_negative_log_likelihood_lossr-      s-    ++K
;1.//<<LAAAA M
 rxx(HvV #HHV|%;QNUUjj V M 
	!<!7A>EEBJJEW ;1q!Rj)B( 	AA!xxAbjjA1X Lq 	LAay||+27(6!9Q<2H2K1K(+A.	LL
 $D ;1||L)  t#88: 1 1 33DKFwwt} K 
e	vvd|K    c                  P   e Zd Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Z	edd       Z
edd       Zedd	       Zedd
       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zy)NegativeLogLikelihoodLossc                    d} t         j                  j                  dddgdg|       }d\  }}t        j                  j                  d       t        j                  j                  ||      j                  t        j                        }t        j                  j                  d||f	      j                  t        j                        }t        ||d | 
      }t        |||g|gd       y )Nnoner0   r   r   r+   inputsoutputsr    r      r   highsizer   r    test_nllloss_NCr4   r5   nameonnxhelper	make_noder   randomseedrandr   r   randintint64r-   r   )r    noder$   r%   r   r   negative_log_likelihood_losss          r,   export_input_shape_is_NCz2NegativeLogLikelihoodLoss.export_input_shape_is_NCO   s    	{{$$'X&H	 % 
 1
		q		q!$++BJJ7""11A4"8??I'K6$)(
$ 	6?12"		
r.   c                    d} t         j                  j                  dddgdg|       }d\  }}}}t        j                  j                  d       t        j                  j                  ||||      j                  t        j                        }t        j                  j                  d||||f	      j                  t        j                        }t        ||d | 
      }t        |||g|gd       y )Nr2   r0   r   r   r+   r3   r   r7      rM   r   r8   r;   test_nllloss_NCd1d2r=   r?   	r    rH   r$   r%   dim1dim2r   r   rI   s	            r,   export_input_shape_is_NCd1d2z6NegativeLogLikelihoodLoss.export_input_shape_is_NCd1d2i   s    	{{$$'X&H	 % 
 &1dD
		q		q!T4077

C""11AtT?"CJJ288T'K6$)(
$ 	6?12&		
r.   c                    d} t         j                  j                  dddgdg|       }d\  }}}}t        j                  j                  d       t        j                  j                  ||||      j                  t        j                        }t        j                  j                  d||||f	      j                  t        j                        }t        ||d | 
      }t        |||g|gd       y )Nr   r0   r   r   r+   r3   rL   r   r8   r;   "test_nllloss_NCd1d2_reduction_meanr=   r?   rO   s	            r,   +export_input_shape_is_NCd1d2_reduction_meanzENegativeLogLikelihoodLoss.export_input_shape_is_NCd1d2_reduction_mean   s    	{{$$'X&H	 % 
 &1dD
		q		q!T4077

C""11AtT?"CJJ288T'K6$)(
$ 	6?125		
r.   c                    d} t         j                  j                  dddgdg|       }d\  }}}}t        j                  j                  d       t        j                  j                  ||||      j                  t        j                        }t        j                  j                  d||||f	      j                  t        j                        }t        ||d | 
      }t        |||g|gd       y )Nr   r0   r   r   r+   r3   rL   r   r8   r;   !test_nllloss_NCd1d2_reduction_sumr=   r?   rO   s	            r,   *export_input_shape_is_NCd1d2_reduction_sumzDNegativeLogLikelihoodLoss.export_input_shape_is_NCd1d2_reduction_sum   s    	{{$$'X&H	 % 
 &1dD
		q		q!T4077

C""11AtT?"CJJ288T'K6$)(
$ 	6?124		
r.   c                 ^   d} t         j                  j                  dg ddg|       }d\  }}}}t        j                  j                  d       t        j                  j                  ||||      j                  t        j                        }t        j                  j                  d||||f      j                  t        j                        }t        j                  j                  |      j                  t        j                        }t        |||| 	      }	t        ||||g|	gd
       y )Nr2   r0   r   r   r   r+   r3   rL   r   r8   r;   test_nllloss_NCd1d2_with_weightr=   r?   
r    rH   r$   r%   rP   rQ   r   r   r   rI   s
             r,   (export_input_shape_is_NCd1d2_with_weightzBNegativeLogLikelihoodLoss.export_input_shape_is_NCd1d2_with_weight   s    	{{$$'0H	 % 
 &1dD
		q		q!T4077

C""11AtT?"CJJ288T"))"**5'K6&I(
$ 	66*122		
r.   c                 ^   d} t         j                  j                  dg ddg|       }d\  }}}}t        j                  j                  d       t        j                  j                  ||||      j                  t        j                        }t        j                  j                  d||||f      j                  t        j                        }t        j                  j                  |      j                  t        j                        }t        |||| 	      }	t        ||||g|	gd
       y )Nr   r0   rZ   r+   r3   rL   r   r8   r;   .test_nllloss_NCd1d2_with_weight_reduction_meanr=   r?   r\   s
             r,   7export_input_shape_is_NCd1d2_with_weight_reduction_meanzQNegativeLogLikelihoodLoss.export_input_shape_is_NCd1d2_with_weight_reduction_mean   s    	{{$$'0H	 % 
 &1dD
		q		q!T4077

C""11AtT?"CJJ288T"))"**5'K6&I(
$ 	66*12A		
r.   c                 ^   d} t         j                  j                  dg ddg|       }d\  }}}}t        j                  j                  d       t        j                  j                  ||||      j                  t        j                        }t        j                  j                  d||||f      j                  t        j                        }t        j                  j                  |      j                  t        j                        }t        |||| 	      }	t        ||||g|	gd
       y )Nr   r0   rZ   r+   r3   rL   r   r8   r;   -test_nllloss_NCd1d2_with_weight_reduction_sumr=   r?   r\   s
             r,   6export_input_shape_is_NCd1d2_with_weight_reduction_sumzPNegativeLogLikelihoodLoss.export_input_shape_is_NCd1d2_with_weight_reduction_sum   s    	{{$$'0H	 % 
 &1dD
		q		q!T4077

C""11AtT?"CJJ288T"))"**5'K6&I(
$ 	66*12@		
r.   c                    d} t        j                  d      }t        j                  j	                  dg ddg| |      }d\  }}}}t         j
                  j                  d       t         j
                  j                  ||||      j                  t         j                        }t         j
                  j                  d||||f      j                  t         j                        }t        j                  d      |d   d   d<   t         j
                  j                  |      j                  t         j                        }	t        |||	| |	      }
t        ||||	g|
gd
       y )Nr   r   r0   rZ   r+   r4   r5   r    r!   rL   r8   r   r    r!   0test_nllloss_NCd1d2_with_weight_reduction_sum_iir=   r   rG   r@   rA   rB   rC   rD   rE   r   r   rF   r-   r   )r    r!   rH   r$   r%   rP   rQ   r   r   r   rI   s              r,   9export_input_shape_is_NCd1d2_with_weight_reduction_sum_iizSNegativeLogLikelihoodLoss.export_input_shape_is_NCd1d2_with_weight_reduction_sum_ii  s%   	xx{{{$$'0H% % 
 &1dD
		q		q!T4077

C""11AtT?"CJJ288T((1+q	!Q"))"**5'K6&IL(
$ 	66*12C		
r.   c                 L   d} t        j                  d      }t        j                  j	                  dddgdg| |      }d\  }}}}t         j
                  j                  d	       t         j
                  j                  ||||      j                  t         j                        }t         j
                  j                  d	||||f
      j                  t         j                        }t        j                  d      |d	   d	   d	<   t        ||| |      }	t        |||g|	gd       y )Nr   r   r0   r   r   r+   re   rL   r   r8   r    r!   /test_nllloss_NCd1d2_no_weight_reduction_mean_iir=   rh   )
r    r!   rH   r$   r%   rP   rQ   r   r   rI   s
             r,   8export_input_shape_is_NCd1d2_no_weight_reduction_mean_iizRNegativeLogLikelihoodLoss.export_input_shape_is_NCd1d2_no_weight_reduction_mean_ii&  s   	xx{{{$$'X&H% % 
 &1dD
		q		q!T4077

C""11AtT?"CJJ288T((1+q	!Q'K6Y\(
$ 	6?12B		
r.   c                    d} t         j                  j                  dddgdg|       }d\  }}}t        j                  j                  d       t        j                  j                  |||      j                  t        j                        }t        j                  j                  d|||f	      j                  t        j                        }t        ||d | 
      }t        |||g|gd       y )Nr   r0   r   r   r+   r3   r   r7   r   r   r8   r;   test_nllloss_NCd1r=   r?   )r    rH   r$   r%   d1r   r   rI   s           r,   export_input_shape_is_NCd1z4NegativeLogLikelihoodLoss.export_input_shape_is_NCd1C  s    	{{$$'X&H	 % 
 1b
		q		q!R(//

;""11Ar7";BB288L'K6$)(
$ 	6?12$		
r.   c                 X   d} t         j                  j                  dg ddg|       }d\  }}}t        j                  j                  d       t        j                  j                  |||      j                  t        j                        }t        j                  j                  d|||f      j                  t        j                        }t        j                  j                  |      j                  t        j                        }t        |||| 	      }t        ||||g|gd
       y )Nr   r0   rZ   r+   r3   ro   r   r8   r;   test_nllloss_NCd1_weightr=   r?   )	r    rH   r$   r%   rq   r   r   r   rI   s	            r,   !export_input_shape_is_NCd1_weightz;NegativeLogLikelihoodLoss.export_input_shape_is_NCd1_weight]  s    	{{$$'0H	 % 
 1b
		q		q!R(//

;""11Ar7";BB288L"))"**5'K6&I(
$ 	66*12+		
r.   c                 B   d} t        j                  d      }t        j                  j	                  dddgdg| |      }d\  }}}t         j
                  j                  d	       t         j
                  j                  |||      j                  t         j                        }t         j
                  j                  d	|||f
      j                  t         j                        }t        j                  d      |d	   d	<   t        ||d | |      }t        |||g|gd       y )Nr   r   r0   r   r   r+   re   ro   r   r8   rf   test_nllloss_NCd1_iir=   rh   )	r    r!   rH   r$   r%   rq   r   r   rI   s	            r,   export_input_shape_is_NCd1_iiz7NegativeLogLikelihoodLoss.export_input_shape_is_NCd1_iix  s    	xx{{{$$'X&H% % 
 1b
		q		q!R(//

;""11Ar7";BB288Lxx{q	!'K6$),(
$ 	6?12'		
r.   c                    d} t        j                  d      }t        j                  j	                  dg ddg| |      }d\  }}}t         j
                  j                  d       t         j
                  j                  |||      j                  t         j                        }t         j
                  j                  d|||f	      j                  t         j                        }t        j                  d      |d   d<   t         j
                  j                  |      j                  t         j                        }t        |||| |
      }	t        ||||g|	gd       y )Nr   r   r0   rZ   r+   re   ro   r   r8   rf   test_nllloss_NCd1_weight_iir=   rh   )
r    r!   rH   r$   r%   rq   r   r   r   rI   s
             r,   $export_input_shape_is_NCd1_weight_iiz>NegativeLogLikelihoodLoss.export_input_shape_is_NCd1_weight_ii  s   	xx{{{$$'0H% % 
 1b
		q		q!R(//

;""11Ar7";BB288Lxx{q	!"))"**5'K6&IL(
$ 	66*12.		
r.   c            
     p   d} t         j                  j                  dg ddg|       }d\  }}}}}}}t        j                  j                  d       t        j                  j                  |||||||      j                  t        j                        }	t        j                  j                  d|||||||f      j                  t        j                        }
t        j                  j                  |      j                  t        j                        }t        |	|
|| 	      }t        ||	|
|g|gd
       y )Nr   r0   rZ   r+   r3   r   r7   rM   rM   r7   r      r   r8   r;   %test_nllloss_NCd1d2d3d4d5_mean_weightr=   r?   )r    rH   r$   r%   rP   rQ   dim3dim4dim5r   r   r   rI   s                r,   .export_input_shape_is_NCd1d2d3d4d5_mean_weightzHNegativeLogLikelihoodLoss.export_input_shape_is_NCd1d2d3d4d5_mean_weight  s   	{{$$'0H	 % 
 .A*1dD$d
		q		q!T4tTBII"**U""AQdD$= # 

&
 	 "))"**5'K6&I(
$ 	66*128		
r.   c            
        d} t         j                  j                  dddgdg|       }d\  }}}}}}}t        j                  j                  d       t        j                  j                  |||||||      j                  t        j                        }	t        j                  j                  d|||||||f	      j                  t        j                        }
t        |	|
| 
      }t        ||	|
g|gd       y )Nr2   r0   r   r   r+   r3   r}   r   r8   )r    (test_nllloss_NCd1d2d3d4d5_none_no_weightr=   r?   )r    rH   r$   r%   rP   rQ   r   r   r   r   r   rI   s               r,   1export_input_shape_is_NCd1d2d3d4d5_none_no_weightzKNegativeLogLikelihoodLoss.export_input_shape_is_NCd1d2d3d4d5_none_no_weight  s    	{{$$'X&H	 % 
 .A*1dD$d
		q		q!T4tTBII"**U""AQdD$= # 

&
 	 (L6Y(
$ 	6?12;		
r.   c                    d} t        j                  d      }t        j                  j	                  dg ddg| |      }d\  }}}t         j
                  j                  d       t         j
                  j                  |||      j                  t         j                        }t         j
                  j                  d|||f	      j                  t         j                        }d|d   d<   t         j
                  j                  |      j                  t         j                        }t        |||| |
      }	t        ||||g|	gd       y )Nr   r   r0   rZ   r+   re   )r   r7   rM   r   r8   rf   )test_nllloss_NCd1_mean_weight_negative_iir=   rh   )
r    r!   rH   r$   r%   rP   r   r   r   rI   s
             r,   2export_input_shape_is_NCd1_mean_weight_negative_iizLNegativeLogLikelihoodLoss.export_input_shape_is_NCd1_mean_weight_negative_ii  s   	xx|{{$$'0H% % 
 
1d
		q		q!T*11"**=""11At9"=DDRXXNq	!"))"**5'K6&IL(
$ 	66*12<		
r.   c                 2   d} t        j                  d      }t        j                  j	                  dddgdg| |      }d\  }}}}}t         j
                  j                  d	       t         j
                  j                  |||||      j                  t         j                        }t         j
                  j                  d	|||||f
      j                  t         j                        }	d|	d	   d	   d	   d	<   t        ||	| |      }
t        |||	g|
gd       y )Nr2   r0   r   r   r+   re   )r   r7   rM   rM   r7   r   r8   rk   0test_nllloss_NCd1d2d3_none_no_weight_negative_iir=   rh   )r    r!   rH   r$   r%   rP   rQ   r   r   r   rI   s              r,   9export_input_shape_is_NCd1d2d3_none_no_weight_negative_iizSNegativeLogLikelihoodLoss.export_input_shape_is_NCd1d2d3_none_no_weight_negative_ii  s   	xx|{{$$'X&H% % 
 "/1dD$
		q		q!T46==bjjI""11AtT43H"IPPHH
  q	!Q'K6Y\(
$ 	6?12C		
r.   c                    d} t        j                  d      }t        j                  j	                  dg ddg| |      }d\  }}t         j
                  j                  d       t         j
                  j                  ||      j                  t         j                        }t         j
                  j                  d||	      j                  t         j                        }d|d<   t         j
                  j                  |      j                  t         j                        }t        |||| |
      }t        ||||g|gd       y )Nr   
   r0   rZ   r+   re   r6   r   r8   rf   (test_nllloss_NCd1d2d3_sum_weight_high_iir=   rh   )	r    r!   rH   r$   r%   r   r   r   rI   s	            r,   1export_input_shape_is_NCd1d2d3_sum_weight_high_iizKNegativeLogLikelihoodLoss.export_input_shape_is_NCd1d2d3_sum_weight_high_ii-  s   	xx|{{$$'0H% % 
 1
		q		q!$++BJJ7""11A"7>>rxxHq	"))"**5'K6&IL(
$ 	66*12;		
r.   N)returnNone)__name__
__module____qualname__staticmethodrJ   rR   rU   rX   r]   r`   rc   ri   rm   rr   ru   rx   r{   r   r   r   r   r    r.   r,   r0   r0   N   sh   
 
2 
 
2 
 
2 
 
2 
 
4 
 
4 
 
4 
 
: 
 
8 
 
2 
 
4 
 
8 
 
: 
 
: 
 
8 
 
< 
 
> 
 
r.   r0   )Nr   N)
__future__r   numpyr   r@   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r-   r0   r   r.   r,   <module>r      s1    #   , . @D>B|
 |
r.   