为了账号安全,请及时绑定邮箱和手机立即绑定

PyTorch - 使用 torchvision.datasets.ImageFolder

PyTorch - 使用 torchvision.datasets.ImageFolder

陪伴而非守候 2021-09-14 16:44:29
我按照以下方式构建了我的数据集:dataset/train/0/456.jpgdataset/train/1/456456.jpgdataset/train/2/456.jpgdataset/train/...dataset/val/0/878.jpgdataset/val/1/234.jpgdataset/val/2/34554.jpgdataset/val/...所以我曾经torchvision.datasets.ImageFolder将我的数据集导入 PyTorch。然而,它似乎没有给正确的图像贴上正确的标签。我在下面添加了我的代码:data_transforms = {    'train': transforms.Compose(        [transforms.Resize((176,176)),         transforms.RandomRotation((0,360)),         transforms.RandomHorizontalFlip(),         transforms.RandomVerticalFlip(),         transforms.CenterCrop(128),                  transforms.Grayscale(),         transforms.ToTensor(),         transforms.Normalize((0.5,0.5,0.5), (0.5,0.5,0.5))    ]),    'val': transforms.Compose(        [transforms.Resize((128,128)),         transforms.Grayscale(),         transforms.ToTensor(),         transforms.Normalize((0.5,0.5,0.5), (0.5,0.5,0.5))    ]),}data_dir = 'dataset'image_datasets = {x: datasets.ImageFolder(os.path.join(data_dir, x),                                          data_transforms[x])                  for x in ['train', 'val']}dataloaders = {x: torch.utils.data.DataLoader(image_datasets[x], batch_size=4,                                             shuffle=True, num_workers=4)              for x in ['train', 'val']}dataset_sizes = {x: len(image_datasets[x]) for x in ['train', 'val']}class_names = image_datasets['train'].classesdevice = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")我发现标签是错误的,使用以下函数:def imshow(img):    img = img / 2 + 0.5    npimg = img.numpy()    plt.imshow(np.transpose(npimg, (1, 2, 0)))    plt.show()dataiter = iter(dataloaders['val'])images, labels = dataiter.next()imshow(torchvision.utils.make_grid(images))print(labels)使用显示的图像和标签,我手动检查它们是否正确。不幸的是,标签与图像不对应。有人能告诉我我做错了什么吗?
查看完整描述

2 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

有人帮我解决了这个问题。ImageFolder 创建自己的内部标签。通过打印,image_datasets['train'].class_to_idx您可以看到哪个标签与哪个内部标签配对。使用这本词典,您可以追溯原始标签。


查看完整回答
反对 回复 2021-09-14
  • 2 回答
  • 0 关注
  • 685 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号