o
    iS                     @  s   U d dl mZ d dlZd dlmZ d dlmZ d dlmZm	Z	 ee
 jd Zed d d	 Zed d d
 ZdddZe Zded< dd eeD Zded< dd e D Zded< eeZedkshJ eddG dd dZdS )    )annotationsN)	dataclass)Path)DictTuple   dataemotionzemotion_labels.jsonzemotion_vad_anchors.jsonreturnTuple[str, ...]c                  C  sd   t tjddd } t| dd d} dd | D }|ttd	ks)J d
| tdd | D S )Nzutf-8)encodinglabelsc                 S  s   | d S )Nid )xr   r   Q/dataset/kemix-engine/package/face/animasync-face-v3/models/microalbert/config.py<lambda>   s    z_load_labels.<locals>.<lambda>)keyc                 S  s   g | ]}|d  qS )r   r   .0r   r   r   r   
<listcomp>   s    z _load_labels.<locals>.<listcomp>   z+emotion_labels.json ids must be 0..15, got c                 s  s    | ]}|d  V  qdS )nameNr   r   r   r   r   	<genexpr>   s    z_load_labels.<locals>.<genexpr>)jsonloadsLABELS_PATH	read_textsortedlistrangetuple)r   idsr   r   r   _load_labels   s
   r#   EMOTION_LABELSc                 C     i | ]\}}||qS r   r   )r   ir   r   r   r   
<dictcomp>       r'   zDict[str, int]EMOTION_TO_IDc                 C  r%   r   r   )r   r   r&   r   r   r   r'      r(   zDict[int, str]ID_TO_EMOTIONr   T)frozenc                   @  s  e Zd ZU dZded< dZded< dZded< dZded	< d
Zded< d
Z	ded< dZ
ded< dZded< dZded< dZded< dZded< dZded< dZded< dZded< dZded< dZded< d Zded!< d"Zded#< d$Zd%ed&< dZded'< d(Zded)< d*Zded+< d,Zded-< dZded.< d/Zded0< d1Zded2< d3Zded4< d5Zd6ed7< d8Z ded9< d:Z!ded;< dZ"ded<< d=Z#d6ed>< d?Z$ded@< dAZ%dedB< d3Z&dedC< dDZ'dedE< dFS )GMicroAlbertConfigi>  int
vocab_sizer   pad_token_id   embedding_sizei  hidden_size   
num_layers	num_headsi   ffn_sizemax_seq_leng?floatdropoutg333333?attention_dropoutg-q=layer_norm_epsr   num_emotions   vad_dim@   vad_head_hiddeng{Gz?initializer_rangelabel_smoothingg      ?vad_loss_weight_max   vad_warmup_epochs)      ?rF         ?zTuple[float, float, float]vad_dim_weightssnap_loss_weightr   snap_start_epochg      ?snap_conf_thresholdg       @snap_softmax_temp
snap_levelg?range_loss_weightgffffff?range_target_stdg?smooth_l1_beta)rG   g      @zTuple[float, float]class_weight_clipg-C6*?backbone_lrgMbP?head_lrweight_decay)g?g\(\?
adam_betasgư>adam_epsrF   	grad_clipwarmup_ratio*   seedN)(__name__
__module____qualname__r.   __annotations__r/   r1   r2   r4   r5   r6   r7   r9   r:   r;   r<   r>   r@   rA   rB   rC   rE   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rZ   r   r   r   r   r,      sJ   
 r,   )r
   r   )
__future__r   r   dataclassesr   pathlibr   typingr   r   __file__resolveparents	REPO_ROOTr   ANCHORS_PATHr#   r$   r^   	enumerater)   itemsr*   lenNUM_EMOTIONSr,   r   r   r   r   <module>   s     
