From 6e69d784e4814c3dbe35e8f70c6cf4b920c8b20b Mon Sep 17 00:00:00 2001
From: 天地 <tiandiweizun@gmail.com>
Date: 星期三, 19 三月 2025 23:10:13 +0800
Subject: [PATCH] 1. bug fix:list(mean)和list(var),由于mean和var是numpy,导致写入到文件的格式错误,参考上面的话,大概率是list(mean.tolist()),其实外层list没有必要 (#2437)

---
 funasr/train_utils/load_pretrained_model.py |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/funasr/train_utils/load_pretrained_model.py b/funasr/train_utils/load_pretrained_model.py
index 105e0bd..da2eed5 100644
--- a/funasr/train_utils/load_pretrained_model.py
+++ b/funasr/train_utils/load_pretrained_model.py
@@ -8,6 +8,7 @@
 import torch.nn
 import torch.optim
 import pdb
+import copy
 
 
 def load_pretrained_model(
@@ -35,11 +36,12 @@
     logging.info(f"ckpt: {path}")
 
     if oss_bucket is None:
-        src_state = torch.load(path, map_location=map_location)
+        ori_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)
+        ori_state = torch.load(buffer, map_location=map_location)
 
+    src_state = copy.deepcopy(ori_state)
     src_state = src_state["state_dict"] if "state_dict" in src_state else src_state
     src_state = src_state["model_state_dict"] if "model_state_dict" in src_state else src_state
     src_state = src_state["model"] if "model" in src_state else src_state
@@ -94,9 +96,8 @@
                 )
             else:
                 dst_state[k] = src_state[k_src]
-
         else:
-            print(f"Warning, miss key in ckpt: {k}")
+            print(f"Warning, miss key in ckpt: {k}, {path}")
 
     flag = obj.load_state_dict(dst_state, strict=True)
     logging.info(f"Loading ckpt: {path}, status: {flag}")

--
Gitblit v1.9.1