在pytorch上加载带有错误类的ImageNet
数据加载器工作不正常 我下载了ImageNet 12,在pytorch的预训练模型上对其进行评估。当我加载这些类时,它们只有0到1之间的值,这是错误的。因为有1000个不同的班级 这是示例代码:在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
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节课。一开始没有任何问题,没有理解的错误。。。不是编码问题。。。