o
    1 iú
  ã                   @   s<  d Z ddlZddlZddlmZ ddlmZ ddlm	Z	 dd„ Z
dd	„ Zed
krœddlZe ¡ Zejdddd e ¡ \ZZe	dgdgdZejjeddZeƒ Zejeejdddidejddeeejrgdnddde dd¡e dd¡e dd¡e dd¡e dd¡e dd¡dœdZe ¡ Ze d e !¡ j"ƒ dS dS )!zÂThis example demonstrates the usage of AxSearch with Ray Tune.

It also checks that it is usable with a separate scheduler.

Requires the Ax library to be installed (`pip install ax-platform`).
é    N)Útune)ÚAsyncHyperBandScheduler)ÚAxSearchc           	      C   s¾   t  g d¢¡}t  g d¢g d¢g d¢g d¢g¡}dt  g d¢g d¢g d	¢g d
¢g¡ }d}t|ƒD ]+\}}d}tdƒD ]}||||f | | |||f  d  7 }q;||t  | ¡ 8 }q1|S )N)ç      ð?g333333ó?g      @gš™™™™™	@)é
   é   é   ç      @ç333333û?é   )çš™™™™™©?r   r   çš™™™™™¹?r   é   )r   r	   r
   r   r   r   )r   r   r   r   r   r   g-Cëâ6?)i   i   iÁ  é|   i[   iþ  )i	  i'  is   i˜  iì  i'  )i,	  i«  iÂ  iC  iç  iú  )iÏ  i|"  i"  io  iC  i}  ç        r   é   é   )ÚnpÚarrayÚ	enumerateÚrangeÚexp)	ÚxÚalphaÚAÚPÚyÚjZalpha_jÚtÚk© r    úh/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/ray/tune/examples/ax_example.pyÚ	hartmann6   s,   üÿüÿ*r"   c              	      s`   t ˆ d ƒD ]'}t ‡ fdd„t dƒD ƒ¡}t |t|ƒt |d  ¡ ¡dœ¡ t 	d¡ qd S )NÚ
iterationsc                    s    g | ]}ˆ   d  |d ¡¡‘qS )zx{}é   )ÚgetÚformat)Ú.0Úi©Úconfigr    r!   Ú
<listcomp>.   s     z"easy_objective.<locals>.<listcomp>r   r   )Útimesteps_totalr"   Zl2normg{®Gáz”?)
r   r   r   r   Úreportr"   ÚsqrtÚsumÚtimeÚsleep)r*   r(   r   r    r)   r!   Úeasy_objective,   s   ýÿ÷r2   Ú__main__z--smoke-testÚ
store_truezFinish quickly for testing)ÚactionÚhelpzx1 + x2 <= 2.0zl2norm <= 1.25)Zparameter_constraintsZoutcome_constraintsé   )Zmax_concurrentÚaxr,   éd   )ÚnameÚstopÚminr   é2   )ZmetricÚmodeZ
search_algÚ	schedulerZnum_samplesr   r   )r#   Úx1Zx2Zx3Zx4Zx5Zx6)Z
run_configZtune_configZparam_spacez!Best hyperparameters found were: )#Ú__doc__r0   Únumpyr   Zrayr   Zray.tune.schedulersr   Zray.tune.search.axr   r"   r2   Ú__name__ÚargparseÚArgumentParserÚparserÚadd_argumentÚparse_known_argsÚargsÚ_ÚalgoÚsearchZConcurrencyLimiterr?   ZTunerZ	RunConfigZ
TuneConfigZ
smoke_testÚuniformZtunerÚfitÚresultsÚprintZget_best_resultr*   r    r    r    r!   Ú<module>   s\    ÿþþû





ùóØ