如何解决来自ImageNet 2012数据集的Pytorch模型的经过预训练的Alexnet的验证分数低
我正在使用经过预先训练的AlexNet网络来验证以前的工作。
代码如下:
import os
import torch
import torchvision
import torchvision.datasets as datasets
import torchvision.models as models
import torchvision.transforms as transforms
model = torch.hub.load('pytorch/vision:v0.6.0','alexnet',pretrained=True)
model.eval()
batchsize = 50000
workers = 1
dataset_path = 'data/imagenet_2012/'
normalize = transforms.Normalize(mean=[0.485,0.456,0.406],std=[0.229,0.224,0.225])
val_data = datasets.ImageFolder(root=os.path.join(dataset_path,'val'),transform=transforms.Compose( [transforms.Resize(256),transforms.CenterCrop(224),transforms.ToTensor(),normalize,]))
val_loader = torch.utils.data.DataLoader(val_data,batch_size=batchsize,num_workers=workers)
batch = next(iter(val_loader))
images,labels = batch
with torch.no_grad():
output = model(images)
for i in output:
out_soft = torch.nn.functional.softmax(i,dim=0)
print(int(torch.argmax(out_soft)))
执行此操作并与ILSVRC2012_validation_ground_truth.txt
进行比较时,我得到的top-1准确性仅为5%。
我在做什么错了?
谢谢。
解决方法
因此,Pytorch / Caffe有自己的“地面真理”文件,可以从这里获取: https://gist.github.com/ksimonyan/fd8800eeb36e276cd6f9#note
我根据上面链接中提供的tar文件中的val.txt文件手动测试了Imagenet数据集验证文件夹中的图像,以验证顺序。
更新: 基于链接中zip文件中的groundtruth的新验证准确性:
Top_1 = 56.522%
Top_5 = 79.066%
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。