语帆
2024-02-28 eb92e79fb94e7b3df8f27c8ce3e607a70dff2a2e
funasr/train_utils/load_pretrained_model.py
@@ -7,7 +7,7 @@
import torch
import torch.nn
import torch.optim
import pdb
def filter_state_dict(
   dst_state: Dict[str, Union[float, torch.Tensor]],
@@ -96,17 +96,17 @@
   
   obj = model
   dst_state = obj.state_dict()
   # import pdb;
   # pdb.set_trace()
   print(f"ckpt: {path}")
   if oss_bucket is None:
      src_state = torch.load(path, map_location=map_location)
   else:
      buffer = BytesIO(oss_bucket.get_object(path).read())
      src_state = torch.load(buffer, map_location=map_location)
   if "state_dict" in src_state:
      src_state = src_state["state_dict"]
   for k in dst_state.keys():
      if not k.startswith("module.") and "module." + k in src_state.keys():
         k_ddp = "module." + k
@@ -116,7 +116,6 @@
         dst_state[k] = src_state[k_ddp]
      else:
         print(f"Miss key in ckpt: model: {k}, ckpt: {k_ddp}")
   flag = obj.load_state_dict(dst_state, strict=True)
   # print(flag)