
    bIg                    ^    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  G d de      Zy)    )annotationsN)Base)expect)AI_ONNX_PREVIEW_TRAINING_DOMAINONNX_DOMAINc                  0    e Zd Zedd       Zedd       Zy)Gradientc                    t         j                  j                  dddgdgd      } t         j                  j                  dddgdd	gd
t        ddgd      }t	        j
                  d      j                  t        j                        }t	        j
                  d      j                  t        j                        }||z   }t	        j
                  d      j                  t        j                        }t	        j
                  d      j                  t        j                        }t         j                  j                  | |gdt         j                  j                  dt         j                  j                  g       t         j                  j                  dt         j                  j                  g       gt         j                  j                  dt         j                  j                  g       t         j                  j                  dt         j                  j                  g       t         j                  j                  d	t         j                  j                  g       g      }t         j                  j                  t        d      t         j                  j                  t        d      g}t         j                  j                  |d|      }	t        |	||g|||gd       y )NAddabcmy_addnamer	   dc_dadc_dbmy_gradientr   domainxsy      ?       @   GradientOfAddnodesr   inputsoutputs   backend-testproducer_nameopset_importstest_gradient_of_addr   r    r   onnxhelper	make_noder   nparrayastypefloat32
make_graphmake_tensor_value_infoTensorProtoFLOATmake_operatorsetidr   make_model_gen_versionr   )
add_nodegradient_noder   r   r   r   r   graphopsetsmodels
             b/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/case/model/gradient.pyexport_gradient_scalar_addz#Gradient.export_gradient_scalar_add   s-   ;;((c
SE(Q--#Jg2Sz . 
 HHSM  ,HHSM  ,E""2::.""2::.&&]+ 2238H8H8N8NPRS2238H8H8N8NPRS
 2238H8H8N8NPRS227D<L<L<R<RTVW227D<L<L<R<RTVW ' 
 KK**;;KK**+JAN
 22v 3 
 	1a&1eU*;BX	
    c                    t         j                  j                  dddgdgd      } t         j                  j                  dddgdgd	      }t         j                  j                  d
ddgddgdt        ddgd      }t	        j
                  d      j                  t        j                        }t	        j
                  d      j                  t        j                        }||z   }||z  }d|z  |z   j                  t        j                        }|}t         j                  j                  | ||gdt         j                  j                  dt         j                  j                  g       t         j                  j                  dt         j                  j                  g       gt         j                  j                  dt         j                  j                  g       t         j                  j                  dt         j                  j                  g       t         j                  j                  dt         j                  j                  g       g      }	t         j                  j                  t        d      t         j                  j                  t        d      g}
t         j                  j                  |	d|
      }t        |||g|||gd       y )Nr   r   r   r   r   r   Muldmy_mulr	   dd_dadd_dbr   r   r   r      GradientOfTwoOperatorsr   r!   r   r"   r#   test_gradient_of_add_and_mulr'   r(   )r6   mul_noder7   r   r   r   r@   rB   rC   r8   r9   r:   s               r;   "export_gradient_scalar_add_and_mulz+Gradient.export_gradient_scalar_add_and_mul<   sF   ;;((c
SE(Q;;((c
SE(Q--#Jg2Sz . 
 HHSM  ,HHSM  ,EEQ""2::.&&X}5)2238H8H8N8NPRS2238H8H8N8NPRS
 2238H8H8N8NPRS227D<L<L<R<RTVW227D<L<L<R<RTVW ' 
 KK**;;KK**+JAN
 22v 3 
 	q6u%/		
r=   N)returnNone)__name__
__module____qualname__staticmethodr<   rH    r=   r;   r	   r	      s)    *
 *
X 1
 1
r=   r	   )
__future__r   numpyr,   r)   onnx.backend.test.case.baser   onnx.backend.test.case.modelr   	onnx.defsr   r   r	   rO   r=   r;   <module>rU      s'    #   , / B`
t `
r=   