最近我一直在进行足迹图像分类项目。我刚刚从pytorch网站(here)的官方文档中阅读了迁移学习教程。 所有的足迹图像都是这样的: footprint image
该数据集包含20个人的足迹图像,每个人都有10个人的足迹图像。 我尝试了前面提到的教程中的脚本。而且我只更改了将数据转换成这样的部分:
data_transforms = {
‘train’: transforms.Compose([
#transforms.RandomResizedCrop(224),
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.RandomHorizontalFlip(),
#transforms.RandomVerticalFlip(),
transforms.RandomRotation(degrees=15),
transforms.RandomRotation(degrees=30),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
]),
‘val’: transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
]),
}
因此,这是困扰我很多时间的结果。 当我从官方教程中使用它时:
model_ft = models.resnet50(pretrained=True)
num_ftrs = model_ft.fc.in_features
model_ft.fc = nn.Linear(num_ftrs, 20)
我只能获得大约60%的acc。但是当我没有像这样更改fc层时:
model_ft = se_resnet50(pretrained = True)
我什至可以使acc的结果达到97.5%。 这是我的问题: 1.当我更改fc层时,这意味着它只能输出20个概率(因为我有20个人的数据集)。但是,为什么更改fc层会得到更差的结果呢?
2。我一直在考虑使用SEnet(se-resnet50 here)来改善结果(从97.5%改善)。但是我得到的acc大约是80%,比resnet50差。怎么会更糟?
3。如果我想改善自己的成绩(从97.5%起),我该怎么做?
先谢谢了。我将不胜感激。