o
    Ti                     @   s>   d dl T zddlZW n ey   dZY nw G dd dZdS )   )*    Nc                   @   s&   e Zd Zd	ddZdd Zdd ZdS )
XGBoostCostModelN   c              	   C   s   t d usJ d|| _|dkrdddddddd	d
| _n|dkr-ddddddddd
| _ntd| d| jd< |rA|| jd< d S d S )NzHmissing requirements, please install deepspeed w. 'autotuning_ml' extra.reg   g-C6?r   g      ?g333333?r   z
reg:linear)	max_depthgammamin_child_weight	subsampleetalambdaalpha	objectiverankzrank:pairwisezInvalid loss type: 	verbositynthread)xgb	loss_type
xgb_paramsRuntimeError)selfr   num_threadslog_intervalupper_model r   Y/home/ubuntu/.local/lib/python3.10/site-packages/deepspeed/autotuning/tuner/cost_model.py__init__   s6   



zXGBoostCostModel.__init__c                 C   sp   t j|t jd}t j|t jd}t |}|t|d }t jt|}t|| || }t	| j
|| _d S )N)dtypeg&.>)nparrayfloat32maxrandompermutationlenr   DMatrixtrainr   bst)r   xsysx_trainy_trainy_maxindexdtrainr   r   r   fit3   s   
zXGBoostCostModel.fitc                 C   s   t |}| j|S )N)r   r&   r(   predict)r   r)   featuresr   r   r   r1   >   s   
zXGBoostCostModel.predict)Nr   N)__name__
__module____qualname__r   r0   r1   r   r   r   r   r      s    
#r   )utilsxgboostr   ImportErrorr   r   r   r   r   <module>   s   