多类别图像分类:Yolov8召回率远高于PyTorch版ResNet50的问题求助
多类别图像分类:Yolov8召回率远高于PyTorch版ResNet50的问题求助
我正在做木饰面缺陷的多类别图像分类任务,一共有11个类别,每个类别只有60-150张图片——数据量太少,任务难度确实不小。
我先拿Yolov8和Roboflow 2.0做了基准测试,它们在验证集上的单类别召回率能达到0.5-0.7,这个结果还算说得过去。
但当我用完全相同的数据集,在PyTorch里基于ResNet50训练模型时,情况就特别糟糕:验证集的召回率最高只能到0.1,而且模型明显过拟合,训练集的召回率直接冲到了100%。
以下是我训练ResNet50的核心代码:
import torch import torch.nn as nn import torch.optim as optim from torchvision import models model = models.resnet50(pretrained=True) num_ftrs = model.fc.in_features model.fc = nn.Linear(num_ftrs, len(class_names)) # 适配类别数量 device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") model = model.to(device) criterion = nn.CrossEntropyLoss() optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9) def train_model(model, criterion, optimizer, num_epochs=25): for epoch in range(num_epochs): # 训练循环的具体逻辑(此处省略) ...
有没有大佬能帮我分析下问题出在哪?是我的ResNet50训练配置不合理,还是数据预处理环节没做到位?毕竟用的是完全一样的数据集,结果差距这么大实在让人摸不着头脑,求指点!
备注:内容来源于stack exchange,提问作者Karel Debedts
相关产品推荐
相关产品推荐

