o
    i%                  	   @   s   d dl mZ d dl mZ d dl mZ d dlmZ d dlZd dlZd dlZd dl	Zd dl
Z
d dlZdddg dfded	ejjd
edefddZdS )    )Any)Dict)Union)BytesIONTcpupathmodelignore_init_mismatchmap_locationc                 K   s  |}|  }	td|   |du rtj| |d}
nt||  }tj||d}
t	|
}d|v r7|d n|}d|v rA|d n|}d|v rK|d n|}t
|trW|d}|dd	g7 }td
|  |durst
|trs|d}td|  |	 D ]}d}|dur|D ]}||rtd| d| d d} nq|rq|}|dur'd}d}tdt|dD ]o}||  dkr|| nd}||d   dkr||d  nd}|dkr|| | v r|| }|dstd| d| d q||r&|||d| v r&|||d}|ds&td| d| d q|| v r\|rU|	| j|| jkrUtd| d||	| jf d||| jf  q|| |	|< qtd| d|   q|j|	dd}td|  d |  dS )!zLoad a model state and set it to the model.

    Args:
            init_param: <file_path>:<src_key>:<dst_key>:<exclude_Keys>

    Examples:

    zckpt: N)r
   
state_dictmodel_state_dictr   ,zmodule.Nonezscope_map: z
excludes: Fzkey: z matching: z
, excludedT r      none   zinit param, map: z from z in ckptzignore_init_mismatch:z, dst: z, src: zWarning, miss key in ckpt: z, )strictzLoading ckpt: z
, status: )r   logginginfotorchloadr   
get_objectreadcopydeepcopy
isinstancestrsplitkeys
startswithrangelenlowerreplaceshapeprintload_state_dict)r   r   r	   r
   
oss_bucket	scope_mapexcludeskwargsobj	dst_state	ori_statebuffer	src_statekexcludes_flagk_exk_src
src_prefix
dst_prefixiflag r9   \/home/ubuntu/.local/lib/python3.10/site-packages/funasr/train_utils/load_pretrained_model.pyload_pretrained_model   st   






$
(r;   )typingr   r   r   ior   r   r   torch.nntorch.optimpdbr   r   nnModuleboolr;   r9   r9   r9   r:   <module>   s0    