o
    toi                     @  s@   d dl mZ d dlmZ d dlZG dd dZG dd dZdS )    )annotations)AnyNc                   @  s(   e Zd Zdd Zdd	d
ZdddZdS )SVMAttributesc                 C  s
   g | _ d S )N)_names)self r   ]/home/ubuntu/.local/lib/python3.10/site-packages/onnx/reference/ops/aionnxml/op_svm_helper.py__init__   s   
zSVMAttributes.__init__namestrvaluer   returnNonec                 C  sL   t |tr|dvr|dv rtj|tjd}ntj|tjd}t| || d S )N>   kernel_params>   vectors_per_classdtype)
isinstancelistnparrayint64float32setattr)r   r
   r   r   r   r   add   s
   zSVMAttributes.addc              	   C  s8   dg}| j D ]}|d| dt| |  qd|S )N
Attributesz  =
)r   appendgetattrjoin)r   rowsr
   r   r   r   __str__   s   

zSVMAttributes.__str__N)r
   r   r   r   r   r   r   r   )__name__
__module____qualname__r	   r   r"   r   r   r   r   r      s    
r   c                   @  s6   e Zd ZdZdd ZdddZdddZdddZdS )	SVMCommonzBase class for SVM.c                 K  sx   t  | _| D ]\}}| j|| q| jjr1| jjd | _| jjd | _t| jjd | _d S d| _d| _d| _d S )Nr                 )	r   attsitemsr   r   gamma_coef0_intdegree_)r   kwargsr
   r   r   r   r   r	   !   s   
zSVMCommon.__init__r   r   c                 C  s"   dd| j  t| jg}d|S )NTreeEnsemblezroot_index=r   )
root_indexr   r+   r    )r   r!   r   r   r   r"   0   s   
zSVMCommon.__str__pA
np.ndarraypBkernelc                 C  s   |  }|dkrt||}|| j | j }|| j S |dkr2t||}|| j | j }t|S |dkrI|| }||  }t| j | S |dkrSt||S t	d|d)NpolysigmoidrbflinearzUnexpected kernel=.)
lowerr   dotr-   r.   r0   tanhsumexp
ValueError)r   r4   r6   r7   ksdiffr   r   r   
kernel_dot4   s    

zSVMCommon.kernel_dotXc           
      C  s   | j jdkrd}| j j}| j j| j jdf}nd}d}tj|jd df|jd}t	|jd D ]]}d}|dkr_t	| j jD ]}| 
|| || |}	|| j j| |	 7 }q>|| j jd 7 }n|dkrv| 
|| | j j|}|| j jd 7 }| j jr|dkrdnd||df< q0|||df< q0|S )	Nr   SVM_SVC
SVM_LINEARLINEARr(   r   r*   )r+   
n_supportskernel_typesupport_vectorsreshaper   emptyshaper   rangerF   coefficientsrho	one_class)
r   rG   mode_kernel_type_svznrD   jdr   r   r   run_regF   s*   zSVMCommon.run_regNr#   )r4   r5   r6   r5   r7   r   r   r5   )rG   r5   r   r5   )r$   r%   r&   __doc__r	   r"   rF   r]   r   r   r   r   r'      s    

r'   )
__future__r   typingr   numpyr   r   r'   r   r   r   r   <module>   s
   