From 3ca5d6e7d0ce78b895bf90fd6c4ed9d78bc5c4e7 Mon Sep 17 00:00:00 2001 From: zhangpu <1250681871@qq.com> Date: Thu, 6 Nov 2025 11:01:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BD=AC=E5=AE=89=E5=8D=93?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E7=9A=84=E4=BB=A3=E7=A0=81=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=8A=A0=E8=BD=BDcosFace=E6=A8=A1=E5=9E=8B=E7=9A=84?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- toAndroid/toAndroidEmbedding.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/toAndroid/toAndroidEmbedding.py b/toAndroid/toAndroidEmbedding.py index f509169..bd10210 100644 --- a/toAndroid/toAndroidEmbedding.py +++ b/toAndroid/toAndroidEmbedding.py @@ -17,8 +17,8 @@ def main(): # 1. 加载训练好的embedding模型权重 # base_model = create_resnet50_embedding(embedding_dim=512, pretrained=True) base_model = create_mobile_resnet50_embedding(embedding_dim=512, pretrained=True) - # model_path = "../model/embedding_20250930_102826/best_embedding_model.pth" - model_path = "../model/WholeIngredientRecognition/embedding_20251030_135024/best_embedding_model.pth" + model_path = "../model/DishClassification/cosface_20251105_200551/best_cosface_model.pth" + # model_path = "../model/WholeIngredientRecognition/embedding_20251030_135024/best_embedding_model.pth" # model_path = "../model/ProcessedIngredientRecognition/embedding_20251029_173607/best_embedding_model.pth" if not os.path.exists(model_path): @@ -30,7 +30,12 @@ def main(): if isinstance(checkpoint, dict) and 'model_state_dict' in checkpoint: # 如果保存的是完整的checkpoint base_model.load_state_dict(checkpoint['model_state_dict']) - print("✓ 从checkpoint加载模型权重成功") + print("✓ 检测到Triplet模型格式,使用'model_state_dict'加载") + elif 'backbone_state_dict' in checkpoint: + # CosFace格式:使用backbone_state_dict(只加载backbone部分) + base_model.load_state_dict(checkpoint['backbone_state_dict']) + print("✓ 检测到CosFace模型格式,使用'backbone_state_dict'加载") + else: # 如果保存的是纯模型权重 base_model.load_state_dict(checkpoint) @@ -87,7 +92,8 @@ def main(): traced_model = torch.jit.trace(mobile_wrapper, single_input) # 保存模型 - output_path = "../model/WholeIngredientRecognition/embedding_20251030_135024/best_embedding_model_mobile.pt" + output_path = "../model/DishClassification/cosface_20251105_200551/best_embedding_model_mobile.pt" + # output_path = "../model/WholeIngredientRecognition/embedding_20251030_135024/best_embedding_model_mobile.pt" # output_path = "../model/ProcessedIngredientRecognition/embedding_20251029_173607/best_embedding_model_mobile.pt" traced_model.save(output_path) print(f"✓ TorchScript模型保存成功: {output_path}")