Низкий балл проверки в предварительно обученной Alexnet из Pytorch models для набора данных ImageNet 2012

#pytorch #imagenet

#pytorch #imagenet

Вопрос:

Я использую предварительно обученную сеть 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%.

Что я здесь делаю не так?

Спасибо.

Ответ №1:

Итак, у Pytorch / Caffe есть свои собственные файлы «ground truth», которые можно получить отсюда:https://gist.github.com/ksimonyan/fd8800eeb36e276cd6f9#note

Я вручную протестировал изображения в папке проверки набора данных Imagenet на соответствие val.txt файл в файле tar, предоставленном по ссылке выше, для проверки порядка.

Обновление: новая точность проверки на основе groundtruth в zip-файле по ссылке:

Top_1 = 56,522%

Top_5 = 79,066%