U
    rh
                     @  s\   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dddd	d
Z	G dd deZ
dS )    )annotationsN)Base)expectz
np.ndarrayint)xaxisreturnc                 C  s@   t j| |dd}t | | }t j||dd}| | t | S )NT)r   Zkeepdims)npmaxexpsumlog)r   r   Zx_maxtmps r   J/tmp/pip-unpacked-wheel-xnis5xre/onnx/backend/test/case/node/logsoftmax.py
logsoftmax   s    r   c                   @  s0   e Zd ZeddddZeddddZdS )
LogSoftmaxNone)r	   c                  C  sP   t jjddgdgd} tdddggtj}t|}t| |g|gdd	 d S )
Nr   r   yinputsoutputsr   r      Ztest_logsoftmax_example_1r   r   name)	onnxhelper	make_noder
   arrayastypefloat32r   r   )noder   r   r   r   r   export   s    zLogSoftmax.exportc                  C  s  t ddddgddddggt j} t| }tjjd	d
gdgd}t|| g|gdd t 	t j
dddt j} tjjd	d
gdgdd}t| dd}t|| g|gdd tjjd	d
gdgdd}t| dd}t|| g|gdd tjjd	d
gdgdd}t| dd}t|| g|gdd tjjd	d
gdgdd}t| dd}t|| g|gdd tjjd	d
gdgd}t|| g|gdd d S )Nr   r         i'  i'  i'  i'  r   r   r   r   Ztest_logsoftmax_large_numberr         )r   r   r   )r   Ztest_logsoftmax_axis_0Ztest_logsoftmax_axis_1Ztest_logsoftmax_axis_2r   Ztest_logsoftmax_negative_axisZtest_logsoftmax_default_axis)r
   r    r!   r"   r   r   r   r   r   absrandomZrandn)r   r   r#   r   r   r   export_logsoftmax_axis"   s^    &z!LogSoftmax.export_logsoftmax_axisN)__name__
__module____qualname__staticmethodr$   r+   r   r   r   r   r      s   r   )r   )
__future__r   Znumpyr
   r   Zonnx.backend.test.case.baser   Zonnx.backend.test.case.noder   r   r   r   r   r   r   <module>   s   