§
    Þ˜ºh´=  ã                   ó¸   — d dl 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l
mZmZ d„ Zdd„Zd	„ Z G d
„ d¦  «        Z G d„ de¦  «        Z G d„ de	¦  «        ZdS )é    N)ÚOptionalé   )ÚTrainerCallback)ÚIntervalStrategyÚ
has_lengthc                 óz   — t          | ¦  «        } | dz  | dz  dz  | dz  }}}|dk    r|› d|d›d|d›�n|d›d|d›�S )z$Format `t` (in seconds) to (h):mm:ssi  é<   r   ú:Ú02d)Úint)ÚtÚhÚmÚss       úc/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/transformers/utils/notebook.pyÚformat_timer      sm   € åˆA‰Œ€AØ�4‰i˜!˜r™' R™¨¨R©ˆ!€q€AØ%&¨!¢V VˆaÐ!Ð!�!Ð!Ð!Ð!˜!Ð!Ð!Ð!Ð!°AÐ1CÐ1CÐ1C¸AÐ1CÐ1CÐ1CÐCó    é,  c                 ó&   — d|› d| › d|› d|› d|› d�S )Nz
    <div>
      z
      <progress value='z' max='z' style='width:z<px; height:20px; vertical-align: middle;'></progress>
      z
    </div>
    © )ÚvalueÚtotalÚprefixÚlabelÚwidths        r   Úhtml_progress_barr   !   s[   € ðàðð ð ðð ð ',ðð ð =Bðð ð ð	ð ð ð r   c                 óê   — d}|dz  }| d         D ]}|d|› d�z  }Œ|dz  }| dd…         D ]B}|d	z  }|D ]3}t          |t          ¦  «        r|d
›nt          |¦  «        }|d|› d�z  }Œ4|dz  }ŒC|dz  }|S )z*Put the texts in `items` in an HTML table.z%<table border="1" class="dataframe">
z*  <thead>
 <tr style="text-align: left;">
r   z
      <th>z</th>
z    </tr>
  </thead>
  <tbody>
é   Nz	    <tr>
z.6fz
      <td>z</td>
z
    </tr>
z  </tbody>
</table><p>)Ú
isinstanceÚfloatÚstr)ÚitemsÚ	html_codeÚiÚlineÚelts        r   Útext_to_html_tabler'   ,   sÏ   € à<€IØÐCÑC€IØ�1ŒXð -ð -ˆØÐ, !Ð,Ð,Ð,Ñ,ˆ	ˆ	ØÐ5Ñ5€IØ�a�b�b”	ð #ð #ˆØ�\Ñ!ˆ	Øð 	3ð 	3ˆCÝ",¨Sµ%Ñ"8Ô"8ÐF�S�,�,�,½cÀ#¹h¼hˆCØÐ2 cÐ2Ð2Ð2Ñ2ˆIˆIØ�]Ñ"ˆ	ˆ	ØÐ*Ñ*€IØÐr   c                   óŽ   — e Zd ZdZdZdZ	 	 	 	 ddedee         d	e	d
ed         def
d„Z
ddede	dee         fd„Zdd„Zd„ Zd„ ZdS )ÚNotebookProgressBaraÀ  
    A progress par for display in a notebook.

    Class attributes (overridden by derived classes)

        - **warmup** (`int`) -- The number of iterations to do at the beginning while ignoring `update_every`.
        - **update_every** (`float`) -- Since calling the time takes some time, we only do it every presumed
          `update_every` seconds. The progress bar uses the average time passed up until now to guess the next value
          for which it will call the update.

    Args:
        total (`int`):
            The total number of iterations to reach.
        prefix (`str`, *optional*):
            A prefix to add before the progress bar.
        leave (`bool`, *optional*, defaults to `True`):
            Whether or not to leave the progress bar once it's completed. You can always call the
            [`~utils.notebook.NotebookProgressBar.close`] method to make the bar disappear.
        parent ([`~notebook.NotebookTrainingTracker`], *optional*):
            A parent object (like [`~utils.notebook.NotebookTrainingTracker`]) that spawns progress bars and handle
            their display. If set, the object passed must have a `display()` method.
        width (`int`, *optional*, defaults to 300):
            The width (in pixels) that the bar will take.

    Example:

    ```python
    import time

    pbar = NotebookProgressBar(100)
    for val in range(100):
        pbar.update(val)
        time.sleep(0.07)
    pbar.update(100)
    ```é   gš™™™™™É?NTr   r   r   ÚleaveÚparentÚNotebookTrainingTrackerr   c                 óÈ   — || _         |€dn|| _        || _        || _        || _        d | _        d | _        d | _        d | _        d | _	        dt          j        v r	d| _        d S d S )NÚ Ú
VSCODE_PIDg      à?)r   r   r+   r,   r   Ú
last_valueÚcommentÚoutputr   r   ÚosÚenvironÚupdate_every)Úselfr   r   r+   r,   r   s         r   Ú__init__zNotebookProgressBar.__init__e   su   € ð ˆŒ
Ø"˜N�b�b°ˆŒØˆŒ
ØˆŒØˆŒ
ØˆŒØˆŒØˆŒØˆŒ
ØˆŒ
Ø�2œ:Ð%Ð%Ø #ˆDÔÐÐð &Ð%r   Fr   Úforce_updater2   c                 óÖ  — || _         |�|| _        | j        €et          j        ¦   «         x| _        | _        |x| _        | _        dx| _        | _        | j	        | _
        d| _        |                      |¦  «         dS || j        k    r|sdS |s2| j
        dk    s'|t          | j        | j        z   | j        ¦  «        k    �r)| j
        dk    r| xj
        dz  c_
        t          j        ¦   «         }|| j        z
  | _        || j        k    r| j        || j        z
  z  | _        nd| _        || j        k    r*| j        }d| _        | j        s|                      ¦   «          n| j        �| j        | j        |z
  z  | _        |                      |¦  «         || _        || _        | j        �| j        dk    r	d| _        dS t%          t'          | j        | j        z  ¦  «        d¦  «        | _        dS dS )a–  
        The main method to update the progress bar to `value`.

        Args:
            value (`int`):
                The value to use. Must be between 0 and `total`.
            force_update (`bool`, *optional*, defaults to `False`):
                Whether or not to force and update of the internal state and display (by default, the bar will wait for
                `value` to reach the value it predicted corresponds to a time of more than the `update_every` attribute
                since the last update to avoid adding boilerplate).
            comment (`str`, *optional*):
                A comment to add on the left of the progress bar.
        Nr   r   )r   r2   r1   ÚtimeÚ
start_timeÚ	last_timeÚstart_valueÚelapsed_timeÚpredicted_remainingÚwarmupÚfirst_callsÚwait_forÚ
update_barÚminr   Úaverage_time_per_itemr+   ÚcloseÚmaxr   r6   )r7   r   r9   r2   Úcurrent_times        r   ÚupdatezNotebookProgressBar.update{   s  € ð ˆŒ
ØÐØ"ˆDŒLØŒ?Ð"Ý/3¬y©{¬{Ð:ˆDŒO˜dœnØ16Ð6ˆDÔ˜tœØ;?Ð?ˆDÔ Ô 8Ø#œ{ˆDÔØˆDŒMØ�OŠO˜EÑ"Ô"Ð"Ð"Ð"Ø�d”oÒ%Ð%¨lÐ%ØˆFØð 	\˜TÔ-°Ò1Ð1°U½cÀ$Ä/ÐTXÔTaÑBaÐcgÔcmÑ>nÔ>nÒ5nÑ5nØÔ !Ò#Ð#ØÐ Ô  AÑ%Ð Ô Ýœ9™;œ;ˆLØ ,¨t¬Ñ >ˆDÔà�tÔ'Ò'Ð'Ø-1Ô->À%È$ÔJZÑBZÑ-[�Ô*Ð*à-1�Ô*Ø˜œ
Ò"Ð"Øœ
�Ø+/�Ô(Ø”zð !Ø—J’J‘L”L�LøØÔ+Ð7Ø+/Ô+EÈÌÐV[ÑI[Ñ+\�Ô(Ø�OŠO˜EÑ"Ô"Ð"Ø#ˆDŒOØ)ˆDŒNØÔ*Ð2¸Ô8RÐVWÒ8WÐ8WØ !�”��å #¥C¨Ô(9¸DÔ<VÑ(VÑ$WÔ$WÐYZÑ [Ô [�”��ð/ 6oÐ5nr   c           
      óÂ  — dt          t          | j        ¦  «        ¦  «        t          t          |¦  «        ¦  «        z
  z  t          |¦  «        z   }| j        €d|› d| j        › d�| _        n¤| j        €(d|› d| j        › dt          | j        ¦  «        › �| _        nud|› d| j        › dt          | j        ¦  «        › dt          | j        ¦  «        › �| _        | j        dk    r| xj        dz  c_        n| xj        dd	| j        z  d
›d�z  c_        | xj        | j        �t          | j        ¦  «        dk    rdn
d| j        › d�z  c_        |  	                    ¦   «          d S )Nú ú[ú/z : < :z < r   z, +inf it/sz, r   ú.2fz it/sú])
Úlenr!   r   r?   r   r@   r   rF   r2   Údisplay)r7   r   r2   Úspaced_values       r   rD   zNotebookProgressBar.update_bar®   s„  € Ø�c¥# d¤j¡/¤/Ñ2Ô2µS½¸U¹¼±_´_ÑDÑEÍÈEÉ
Ì
ÑRˆØÔÐ$Ø>˜\Ð>Ð>¨D¬JÐ>Ð>Ð>ˆDŒJˆJØÔ%Ð-ØY˜\ÐYÐY¨D¬JÐYÐY½ÀTÔEVÑ9WÔ9WÐYÐYˆDŒJˆJð<�Lð <ð < 4¤:ð <ð <µ¸DÔ<MÑ0NÔ0Nð <ð <Ý Ô 8Ñ9Ô9ð<ð <ð ŒJð Ô)¨QÒ.Ð.Ø�
”
˜mÑ+�
”
�
à�
”
ÐL 1 tÔ'AÑ#AÐLÐLÐLÐLÑL�
”
àˆ
Œ
˜Tœ\Ð1µS¸¼Ñ5FÔ5FÈ!Ò5KÐ5K�c�cÐQeÐVZÔVbÐQeÐQeÐQeÑeˆ
Œ
Ø�Š‰Œˆˆˆr   c                 ó„  — t          | j        | j        | j        | j        | j        ¦  «        | _        | j        �| j                             ¦   «          d S | j	        €4t          j        t          j        | j        ¦  «        d¬¦  «        | _	        d S | j	                             t          j        | j        ¦  «        ¦  «         d S ©NT)Ú
display_id)r   r   r   r   r   r   r#   r,   rR   r3   ÚdispÚHTMLrJ   ©r7   s    r   rR   zNotebookProgressBar.displayÁ   sž   € Ý*¨4¬:°t´zÀ4Ä;ÐPTÔPZÐ\`Ô\fÑgÔgˆŒØŒ;Ð"àŒK×ÒÑ!Ô!Ð!ØˆFØŒ;ÐÝœ,¥t¤y°´Ñ'@Ô'@ÈTÐRÑRÔRˆDŒKˆKˆKàŒK×Ò�tœy¨¬Ñ8Ô8Ñ9Ô9Ð9Ð9Ð9r   c                 ó‚   — | j         €5| j        �0| j                             t          j        d¦  «        ¦  «         dS dS dS )zCloses the progress bar.Nr/   )r,   r3   rJ   rW   rX   rY   s    r   rG   zNotebookProgressBar.closeÌ   sC   € àŒ;Ð 4¤;Ð#:ØŒK×Ò�tœy¨™}œ}Ñ-Ô-Ð-Ð-Ð-ð ÐÐ#:Ð#:r   )NTNr   )FN©N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rA   r6   r   r   r!   Úboolr8   rJ   rD   rR   rG   r   r   r   r)   r)   =   sù   € € € € € ð"ð "ðH €FØ€Lð
 !%ØØ6:Øð$ð $àð$ð ˜”ð$ð ð	$ð
 Ð2Ô3ð$ð ð$ð $ð $ð $ð,1\ð 1\˜Cð 1\¨tð 1\ÀhÈsÄmð 1\ð 1\ð 1\ð 1\ðfð ð ð ð&	:ð 	:ð 	:ð.ð .ð .ð .ð .r   r)   c                   ó>   ‡ — e Zd ZdZd	ˆ fd„	Zd„ Zd„ Zd
d„Zd„ Zˆ xZ	S )r-   a�  
    An object tracking the updates of an ongoing training with progress bars and a nice table reporting metrics.

    Args:
        num_steps (`int`): The number of steps during training. column_names (`list[str]`, *optional*):
            The list of column names for the metrics table (will be inferred from the first call to
            [`~utils.notebook.NotebookTrainingTracker.write_line`] if not set).
    Nc                 óp   •— t          ¦   «                              |¦  «         |€d n|g| _        d | _        d S r[   )Úsuperr8   Úinner_tableÚ	child_bar)r7   Ú	num_stepsÚcolumn_namesÚ	__class__s      €r   r8   z NotebookTrainingTracker.__init__Ü   s9   ø€ Ý‰Œ×Ò˜Ñ#Ô#Ð#Ø#/Ð#7˜4˜4¸l¸^ˆÔØˆŒˆˆr   c                 óÔ  — t          | j        | j        | j        | j        | j        ¦  «        | _        | j        �"| xj        t          | j        ¦  «        z  c_        | j	        �| xj        | j	        j        z  c_        | j
        €4t          j        t          j        | j        ¦  «        d¬¦  «        | _
        d S | j
                             t          j        | j        ¦  «        ¦  «         d S rU   )r   r   r   r   r   r   r#   rd   r'   re   r3   rW   rR   rX   rJ   rY   s    r   rR   zNotebookTrainingTracker.displayá   s¿   € Ý*¨4¬:°t´zÀ4Ä;ÐPTÔPZÐ\`Ô\fÑgÔgˆŒØÔÐ'ØˆNŒNÕ0°Ô1AÑBÔBÑBˆNŒNØŒ>Ð%ØˆNŒN˜dœnÔ6Ñ6ˆNŒNØŒ;ÐÝœ,¥t¤y°´Ñ'@Ô'@ÈTÐRÑRÔRˆDŒKˆKˆKàŒK×Ò�tœy¨¬Ñ8Ô8Ñ9Ô9Ð9Ð9Ð9r   c                 óÆ  ‡‡— | j         €It          ‰                     ¦   «         ¦  «        t          ‰                     ¦   «         ¦  «        g| _         dS | j         d         }‰D ]}||vr|                     |¦  «         Œ|| j         d<   t          | j         ¦  «        dk    r›| j         d         }| j         d         d         }|d         ‰|         k    r(| j                              ˆfd„|D ¦   «         ¦  «         dS ‰Š|D ]$}|‰vr||                     |¦  «                 ‰|<   Œ%ˆfd„|D ¦   «         | j         d<   dS | j                              ˆfd„|D ¦   «         ¦  «         dS )z…
        Write the values in the inner table.

        Args:
            values (`dict[str, float]`): The values to display.
        Nr   r   éÿÿÿÿc                 ó<   •— g | ]}‰                      |d ¦  «        ‘ŒS )zNo Log)Úget©Ú.0ÚcÚvaluess     €r   ú
<listcomp>z6NotebookTrainingTracker.write_line.<locals>.<listcomp>   s'   ø€ Ð,VÐ,VÐ,VÈ¨V¯ZªZ¸¸8Ñ-DÔ-DÐ,VÐ,VÐ,Vr   c                 ó    •— g | ]
}‰|         ‘ŒS r   r   )ro   rp   Ú
new_valuess     €r   rr   z6NotebookTrainingTracker.write_line.<locals>.<listcomp>  s   ø€ Ð+KÐ+KÐ+K¸a¨J°q¬MÐ+KÐ+KÐ+Kr   c                 ó    •— g | ]
}‰|         ‘ŒS r   r   rn   s     €r   rr   z6NotebookTrainingTracker.write_line.<locals>.<listcomp>	  s   ø€ Ð(DÐ(DÐ(D°q¨°¬Ð(DÐ(DÐ(Dr   )rd   ÚlistÚkeysrq   ÚappendrQ   Úindex)r7   rq   ÚcolumnsÚkeyÚlast_valuesÚfirst_columnrp   rt   s    `     @r   Ú
write_linez"NotebookTrainingTracker.write_lineì   s›  øø€ ð ÔÐ#Ý $ V§[¢[¡]¤]Ñ 3Ô 3µT¸&¿-º-¹/¼/Ñ5JÔ5JÐKˆDÔÐÐàÔ& qÔ)ˆGØð (ð (�Ø˜gÐ%Ð%Ø—N’N 3Ñ'Ô'Ð'øØ")ˆDÔ˜QÑÝ�4Ô#Ñ$Ô$ qÒ(Ð(Ø"Ô.¨rÔ2�Ø#Ô/°Ô2°1Ô5�Ø˜q”> V¨LÔ%9Ò9Ð9àÔ$×+Ò+Ð,VÐ,VÐ,VÐ,VÈgÐ,VÑ,VÔ,VÑWÔWÐWÐWÐWð "(�JØ$ð Jð J˜Ø JÐ.Ð.Ø,7¸¿ºÀaÑ8HÔ8HÔ,I˜J q™MøØ+KÐ+KÐ+KÐ+KÀ7Ð+KÑ+KÔ+K�DÔ$ RÑ(Ð(Ð(àÔ ×'Ò'Ð(DÐ(DÐ(DÐ(D¸GÐ(DÑ(DÔ(DÑEÔEÐEÐEÐEr   r   c                 ó@   — t          ||| |¬¦  «        | _        | j        S )a·  
        Add a child progress bar displayed under the table of metrics. The child progress bar is returned (so it can be
        easily updated).

        Args:
            total (`int`): The number of iterations for the child progress bar.
            prefix (`str`, *optional*): A prefix to write on the left of the progress bar.
            width (`int`, *optional*, defaults to 300): The width (in pixels) of the progress bar.
        )r   r,   r   )r)   re   )r7   r   r   r   s       r   Ú	add_childz!NotebookTrainingTracker.add_child  s%   € õ -¨U¸6È$ÐV[Ð\Ñ\Ô\ˆŒØŒ~Ðr   c                 ó<   — d| _         |                      ¦   «          dS )z0
        Closes the child progress bar.
        N)re   rR   rY   s    r   Úremove_childz$NotebookTrainingTracker.remove_child  s   € ð ˆŒØ�Š‰Œˆˆˆr   r[   )Nr   )
r\   r]   r^   r_   r8   rR   r~   r€   r‚   Ú__classcell__)rh   s   @r   r-   r-   Ò   s‹   ø€ € € € € ðð ðð ð ð ð ð ð
	:ð 	:ð 	:ðFð Fð Fð>ð ð ð ðð ð ð ð ð ð r   r-   c                   óH   — e Zd ZdZd„ Zd„ Zd„ Zdd„Zd„ Zdd„Z	dd	„Z
d
„ ZdS )ÚNotebookProgressCallbackzŠ
    A [`TrainerCallback`] that displays the progress of training or evaluation, optimized for Jupyter Notebooks or
    Google colab.
    c                 ó0   — d | _         d | _        d| _        d S )NF)Útraining_trackerÚprediction_barÚ_force_next_updaterY   s    r   r8   z!NotebookProgressCallback.__init__&  s    € Ø $ˆÔØ"ˆÔØ"'ˆÔÐÐr   c                 óþ   — |j         t          j        k    rdnd| _        d| _        d| _        | j        gdgz   }|j         t          j        k    r|                     d¦  «         t          |j	        |¦  «        | _
        d S )NÚEpochÚStepr   úTraining LossúValidation Loss)Úeval_strategyr   ÚEPOCHr}   Útraining_lossÚlast_logÚNOrx   r-   Ú	max_stepsr‡   )r7   ÚargsÚstateÚcontrolÚkwargsrg   s         r   Úon_train_beginz'NotebookProgressCallback.on_train_begin+  sƒ   € Ø'+Ô'9Õ=MÔ=SÒ'SÐ'S˜G˜GÐY_ˆÔØˆÔØˆŒØÔ)Ð*¨oÐ->Ñ>ˆØÔÕ!1Ô!4Ò4Ð4Ø×ÒÐ 1Ñ2Ô2Ð2Ý 7¸¼ÈÑ VÔ VˆÔÐÐr   c                 óò   — t          |j        ¦  «        |j        k    rt          |j        ¦  «        n|j        d›}| j                             |j        dz   d|› d|j        › �| j        ¬¦  «         d| _        d S )NrO   r   úEpoch rN   ©r2   r9   F)r   Úepochr‡   rJ   Úglobal_stepÚnum_train_epochsr‰   )r7   r•   r–   r—   r˜   r�   s         r   Úon_step_endz$NotebookProgressCallback.on_step_end4  s‹   € Ý$'¨¬Ñ$4Ô$4¸¼Ò$CÐ$C•�E”KÑ Ô Ð ÈEÌKÐI]ÐI]ˆØÔ×$Ò$ØÔ Ñ!Ø=˜UÐ=Ð= UÔ%;Ð=Ð=ØÔ0ð 	%ñ 	
ô 	
ð 	
ð
 #(ˆÔÐÐr   Nc                 óf  — t          |¦  «        sd S | j        €q| j        �-| j                             t	          |¦  «        ¦  «        | _        n!t          t	          |¦  «        ¦  «        | _        | j                             d¦  «         d S | j                             | j        j        dz   ¦  «         d S )Nr   )r   rˆ   r‡   r€   rQ   r)   rJ   r   )r7   r•   r–   r—   Úeval_dataloaderr˜   s         r   Úon_prediction_stepz+NotebookProgressCallback.on_prediction_step=  sª   € Ý˜/Ñ*Ô*ð 	ØˆFØÔÐ&ØÔ$Ð0Ø&*Ô&;×&EÒ&EÅcÈ/ÑFZÔFZÑ&[Ô&[�Ô#Ð#å&9½#¸oÑ:NÔ:NÑ&OÔ&O�Ô#ØÔ×&Ò& qÑ)Ô)Ð)Ð)Ð)àÔ×&Ò& tÔ':Ô'@À1Ñ'DÑEÔEÐEÐEÐEr   c                 óT   — | j         �| j                              ¦   «          d | _         d S r[   )rˆ   rG   ©r7   r•   r–   r—   r˜   s        r   Ú
on_predictz#NotebookProgressCallback.on_predictI  s.   € ØÔÐ*ØÔ×%Ò%Ñ'Ô'Ð'Ø"ˆÔÐÐr   c                 óœ   — |j         t          j        k    r4d|v r2d|d         i}|j        |d<   | j                             |¦  «         d S d S d S )NÚlossr�   rŒ   )r�   r   r“   rž   r‡   r~   )r7   r•   r–   r—   Úlogsr˜   rq   s          r   Úon_logzNotebookProgressCallback.on_logN  s_   € àÔÕ!1Ô!4Ò4Ð4¸À4¸¸Ø% t¨F¤|Ð4ˆFà"Ô.ˆF�6‰NØÔ!×,Ò,¨VÑ4Ô4Ð4Ð4Ð4ð	 5Ð4¸¸r   c                 óš  — | j         ��Âdddœ}t          |j        ¦  «        D ]}d|v r|d         |d<    nŒ| j        dk    rt	          |j        ¦  «        |d<   n
|j        |d<   d}|D ]-}	|	                     d¦  «        rt          j	        d	d
|	¦  «        }Œ.| 
                    dd ¦  «        }
| 
                    dd ¦  «        }
| 
                    |› d�d ¦  «        }
| 
                    |› d�d ¦  «        }
| 
                    |› d�d ¦  «        }
| 
                    |› d�d ¦  «        }
|                     ¦   «         D ]N\  }	}|	                     d¦  «        }d                     d„ |dd …         D ¦   «         ¦  «        }|dk    rd}|||<   ŒO| j                              |¦  «         | j                              ¦   «          d | _        d| _        d S d S )NzNo log)r�   rŽ   r¨   r�   r‹   rŒ   ÚevalÚ_lossz\_loss$r/   Ú
total_flosr�   Ú_runtimeÚ_samples_per_secondÚ_steps_per_secondÚ_jit_compilation_timeÚ_rL   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   )Ú
capitalize)ro   Úparts     r   rr   z8NotebookProgressCallback.on_evaluate.<locals>.<listcomp>n  s"   € Ð JÐ JÐ J°t §¢Ñ!2Ô!2Ð JÐ JÐ Jr   r   ÚLossrŽ   T)r‡   ÚreversedÚlog_historyr}   r   r�   rž   ÚendswithÚreÚsubÚpopr"   ÚsplitÚjoinr~   r‚   rˆ   r‰   )r7   r•   r–   r—   Úmetricsr˜   rq   ÚlogÚmetric_key_prefixÚkr³   ÚvÚsplitsÚnames                 r   Úon_evaluatez$NotebookProgressCallback.on_evaluateV  s  € ØÔ Ñ,Ø'/ÀHÐMÐMˆFÝ Ô 1Ñ2Ô2ð ð �Ø˜S�=�=Ø.1°&¬k�F˜?Ñ+Ø�Eð !ð Ô  GÒ+Ð+Ý"% e¤kÑ"2Ô"2��w‘�à!&Ô!2��v‘Ø &ÐØð Bð B�Ø—:’:˜gÑ&Ô&ð BÝ(*¬¨z¸2¸qÑ(AÔ(AÐ%øØ—’˜L¨$Ñ/Ô/ˆAØ—’˜G TÑ*Ô*ˆAØ—’Ð0Ð:Ð:Ð:¸DÑAÔAˆAØ—’Ð0ÐEÐEÐEÀtÑLÔLˆAØ—’Ð0ÐCÐCÐCÀTÑJÔJˆAØ—’Ð0ÐGÐGÐGÈÑNÔNˆAØŸš™œð !ð !‘��1ØŸš ™œ�Ø—x’xÐ JÐ J¸vÀaÀbÀb¼zÐ JÑ JÔ JÑKÔK�Ø˜6’>�>à,�DØ ��t‘�ØÔ!×,Ò,¨VÑ4Ô4Ð4ØÔ!×.Ò.Ñ0Ô0Ð0Ø"&ˆDÔà&*ˆDÔ#Ð#Ð#ðA -Ð,r   c                 ó’   — | j                              |j        dt          |j        ¦  «        › d|j        › �d¬¦  «         d | _         d S )Nr›   rN   Trœ   )r‡   rJ   rž   r   r�   rŸ   r¥   s        r   Úon_train_endz%NotebookProgressCallback.on_train_endy  s[   € ØÔ×$Ò$ØÔØH�S ¤Ñ-Ô-ÐHÐH°Ô0FÐHÐHØð 	%ñ 	
ô 	
ð 	
ð
 !%ˆÔÐÐr   r[   )r\   r]   r^   r_   r8   r™   r    r£   r¦   rª   rÇ   rÉ   r   r   r   r…   r…      s­   € € € € € ðð ð
(ð (ð (ð
Wð Wð Wð(ð (ð (ð
Fð 
Fð 
Fð 
Fð#ð #ð #ð
5ð 5ð 5ð 5ð!+ð !+ð !+ð !+ðF%ð %ð %ð %ð %r   r…   )r   )r4   r»   r;   Útypingr   ÚIPython.displayrR   rW   Útrainer_callbackr   Útrainer_utilsr   r   r   r   r'   r)   r-   r…   r   r   r   ú<module>rÎ      sH  ðð 
€	€	€	Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð à .Ð .Ð .Ð .Ð .Ð .Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8ðDð Dð Dðð ð ð ðð ð ð"R.ð R.ð R.ð R.ð R.ñ R.ô R.ð R.ðjKð Kð Kð Kð KÐ1ñ Kô Kð Kð\_%ð _%ð _%ð _%ð _%˜ñ _%ô _%ð _%ð _%ð _%r   