在pytorch上加载带有错误类的ImageNet

在pytorch上加载带有错误类的ImageNet,pytorch,torchvision,imagenet,Pytorch,Torchvision,Imagenet,数据加载器工作不正常 我下载了ImageNet 12,在pytorch的预训练模型上对其进行评估。当我加载这些类时,它们只有0到1之间的值,这是错误的。因为有1000个不同的班级 这是示例代码: import os, sys, pdb import argparse import torch import torch.nn as nn import torchvision.datasets as datasets import torch.utils.data as data import to

数据加载器工作不正常

我下载了ImageNet 12,在pytorch的预训练模型上对其进行评估。当我加载这些类时,它们只有0到1之间的值,这是错误的。因为有1000个不同的班级

这是示例代码:

import os, sys, pdb
import argparse
import torch
import torch.nn as nn
import torchvision.datasets as datasets
import torch.utils.data as data
import torchvision.transforms as transforms
import torchvision.models as models

sys.path.insert(0,'..')

if __name__ == '__main__'
    model = models.wide_resnet50_2(pretrained=True)
    model.cuda()
    model.eval()

    # load data
    transform_list = [transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor()]
    transform_chain = transforms.Compose(transform_list)
    
    # data_dir = 'path_to_imagenet'

    item = datasets.ImageNet(data_dir, split='val', transform=transform_chain)
    test_loader = data.DataLoader(item, batch_size=100, shuffle=False, num_workers=4,pin_memory=True)

    inputs, classes = next(iter(test_loader))
    print("classes: ", classes)
    pdb.set_trace()
输出是

classes:  tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1])
imagenet文件夹如下所示

ImageNet
 - ILSVRC2012_devkit_t12
 - - dat
 - - - ILSVRC2012_devkit_t12
 - - - meta.mat
 - - evaluation
 - - - COPYING
 - - - readme.txt
 - train
 - - n03738383
 - - ...
 - - n03337373
 - test
 - - 043344.JPEG
 - - ...
 - val
 - - n03738383
 - - ...
 - - n03337373
 - meta.bin

编辑:当我将shuffle设置为True时,我可以看到不同的类

该集中有多少图像?你打印了多少?批量大小为100。。。还有50000张图片。经过一番反复,我放弃了。我认为洗牌是解决办法…我的意思是。1000节课上有50000张图片,所以很明显,如果你选择前100张图片,你只会得到2节课。一开始没有任何问题,没有理解的错误。。。不是编码问题。。。