U
    ¯Ê¹j  ã                   @   s2   d dl Z ddlT e  e¡Zd	dd„Zd
dd„ZdS )é    Né   )Ú*Fc                 C   sV  |s| s|st dƒ‚| pi } |p"i }|s@|d k	r@t|dƒr@|j}i }d}|  dd ¡d k	rb| d }n|  dd ¡d k	rz| d }|ddf}|  dd ¡d k	rÔt| d ttfƒsªt ‚t| d ƒdks¾t ‚t| d ƒ}|d }nt|  d	d ¡d k	�rt| d	 tƒsøt ‚|| d	 | d	 f}n<|�r.| d
d ¡d k	�r.|d
 }n| dd ¡d k	�rH|d }||d< d|d< |  dd ¡�rt| d |d< n| dd ¡�rŽ|d |d< t	|d< |  dd ¡d k	�rðt| d ƒ}t|ƒdk�rÔtt|ƒ| ƒ}nt|ƒ|k�sæt ‚||d< n| dd ¡�r
|d |d< t
|d< |  dd ¡d k	�rlt| d ƒ}	t|	ƒdk�rPtt|	ƒ| ƒ}	nt|	ƒ|k�sbt ‚|	|d< n| dd ¡�r†|d |d< t}
|  dd ¡�r¢| d }
n4|�rÀ| dd ¡�rÀ|d }
n| dd ¡�rÖ|d }
|
|d< t}|  dd ¡�rú| d }n| dd ¡�r|d }||d< |�rRt d¡ | ¡ D ] \}}t d|t|ƒf ¡ �q0|S )NzHAt least one of model, args, or pretrained_cfg required for data config.Úpretrained_cfgé   Úin_chansZchanséà   Ú
input_sizer   Zimg_sizeZtest_input_sizeZbicubicÚinterpolationÚmeanr   ÚstdÚcrop_pctZtest_crop_pctÚ	crop_modez:Data processing configuration for current model + dataset:z	%s: %s)ÚAssertionErrorÚhasattrr   ÚgetÚ
isinstanceÚtupleÚlistÚlenÚintZIMAGENET_DEFAULT_MEANZIMAGENET_DEFAULT_STDZDEFAULT_CROP_PCTZDEFAULT_CROP_MODEÚ_loggerÚinfoÚitemsÚstr)Úargsr   ÚmodelÚuse_test_sizeÚverboseZdata_configr   r   r
   r   r   r   ÚnÚv© r    úO/var/www/html/bwave/python/venv/lib/python3.8/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    û