o
    ÓÙ¾i  ã                   @   sD   d dl Z ddlT e  e¡Z					d	dd„Z				d
dd„ZdS )é    Né   )Ú*Fc                 C   sB  |s
| s
|s
J dƒ‚| pi } |pi }|s |d ur t |dƒr |j}i }d}|  dd ¡d ur1| d }n|  dd ¡d ur=| d }|ddf}|  dd ¡d urjt| d ttfƒsUJ ‚t| d ƒdks_J ‚t| d ƒ}|d }n6|  d	d ¡d ur…t| d	 tƒs{J ‚|| d	 | d	 f}n|r”| d
d ¡d ur”|d
 }n| dd ¡d ur |d }||d< d|d< |  dd ¡rµ| d |d< n| dd ¡rÁ|d |d< t|d< |  dd ¡d urït| d ƒ}t|ƒdkrâtt|ƒ| ƒ}nt|ƒ|ksêJ ‚||d< n| dd ¡rû|d |d< t	|d< |  dd ¡d ur,t| d ƒ}	t|	ƒdkrtt|	ƒ| ƒ}	n	t|	ƒ|ks'J ‚|	|d< n| dd ¡r9|d |d< t
}
|  dd ¡rG| d }
n|rV| dd ¡rV|d }
n| dd ¡ra|d }
|
|d< t}|  dd ¡rs| d }n| dd ¡r~|d }||d< |rŸt d¡ | ¡ D ]\}}t d|t|ƒf ¡ qŽ|S )NzHAt least one of model, args, or pretrained_cfg required for data config.Úpretrained_cfgé   Úin_chansÚchanséà   Ú
input_sizer   Úimg_sizeÚtest_input_sizeÚbicubicÚinterpolationÚmeanr   ÚstdÚcrop_pctÚtest_crop_pctÚ	crop_modez:Data processing configuration for current model + dataset:z	%s: %s)Úhasattrr   ÚgetÚ
isinstanceÚtupleÚlistÚlenÚintÚIMAGENET_DEFAULT_MEANÚIMAGENET_DEFAULT_STDÚDEFAULT_CROP_PCTÚDEFAULT_CROP_MODEÚ_loggerÚinfoÚitemsÚstr)Úargsr   ÚmodelÚuse_test_sizeÚverboseÚdata_configr   r	   r   r   r   r   ÚnÚv© r)   úD/home/ubuntu/.local/lib/python3.10/site-packages/timm/data/config.pyÚresolve_data_config   s†   









r+   c                 C   s   t ||| ||dS )ab   Resolve Model Data Config
    This is equivalent to resolve_data_config() but with arguments re-ordered to put model first.

    Args:
        model (nn.Module): the model instance
        args (dict): command line arguments / configuration in dict form (overrides pretrained_cfg)
        pretrained_cfg (dict): pretrained model config (overrides pretrained_cfg attached to model)
        use_test_size (bool): use the test time input resolution (if one exists) instead of default train resolution
        verbose (bool): enable extra logging of resolved values

    Returns:
        dictionary of config
    )r"   r   r#   r$   r%   )r+   )r#   r"   r   r$   r%   r)   r)   r*   Úresolve_model_data_configg   s   ûr,   )NNNFF)NNFF)ÚloggingÚ	constantsÚ	getLoggerÚ__name__r   r+   r,   r)   r)   r)   r*   Ú<module>   s    

ûaû