From da67cb9f4c00bd01f9f6a16383c8259236194820 Mon Sep 17 00:00:00 2001 From: zhanghuan <1262329256@qq.com> Date: Thu, 11 Sep 2025 17:56:25 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=B0=E5=9C=A8=E7=BB=9F=E4=B8=80=E4=BD=BF?= =?UTF-8?q?=E7=94=A8Torch=E4=B8=AD=E7=9A=84interpolate=E8=BF=99=E4=B8=AA?= =?UTF-8?q?=E7=BC=A9=E6=94=BE=E6=96=B9=E6=B3=95=EF=BC=8C=E4=B8=8D=E7=94=A8?= =?UTF-8?q?torchvision=E4=B8=AD=E7=9A=84transforms=E7=9A=84Resize=E4=BA=86?= =?UTF-8?q?=EF=BC=8C=E5=BA=94=E8=AF=A5=E5=B0=B1=E5=8F=AF=E4=BB=A5=E4=BA=86?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- net/food_net.py | 18 ++++++++++++++---- settings/settings.py | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/net/food_net.py b/net/food_net.py index 368ec63..01aac77 100644 --- a/net/food_net.py +++ b/net/food_net.py @@ -54,7 +54,7 @@ class FoodCNN(nn.Module): def preprocess_image(self, image): """ - 预处理单张图片 + 预处理单张图片(使用与移动端相同的插值方法) Args: image: PIL Image 或 numpy array @@ -69,10 +69,20 @@ class FoodCNN(nn.Module): else: raise ValueError("输入必须是PIL Image或numpy array") - # 应用预处理变换 - processed = self.preprocess(image) + # 转换为tensor(不做resize) + tensor = transforms.ToTensor()(image) # 添加batch维度 - return processed.unsqueeze(0) + tensor = tensor.unsqueeze(0) + + # 使用与移动端相同的插值方法缩放到32x32 + tensor = F.interpolate(tensor, size=(32, 32), mode='bilinear', align_corners=False) + + # ImageNet标准化 + mean = torch.tensor([0.485, 0.456, 0.406]).view(1, 3, 1, 1) + std = torch.tensor([0.229, 0.224, 0.225]).view(1, 3, 1, 1) + tensor = (tensor - mean) / std + + return tensor def mobile_preprocess(self, x): """ diff --git a/settings/settings.py b/settings/settings.py index b98788c..e1153a8 100644 --- a/settings/settings.py +++ b/settings/settings.py @@ -15,7 +15,7 @@ VAL_DATA_DIR = os.path.join(DATASET_DIR, 'val') TEST_DATA_DIR = os.path.join(DATASET_DIR, 'test') # 模型保存路径 -MODEL_DIR = os.path.join(BASE_DIR, 'model', '09') +MODEL_DIR = os.path.join(BASE_DIR, 'model', '10') BEST_MODEL_PATH = os.path.join(MODEL_DIR, 'best_food_model.pth') TRAINING_CURVES_PATH = os.path.join(MODEL_DIR, 'training_curves.png') TRAINING_RESULTS_PATH = os.path.join(MODEL_DIR, 'training_results.txt')