我正在 Kaggle 上进行仙人掌图像竞赛,我正在尝试将 PyTorch 数据加载器用于我的 CNN。但是,我遇到了无法为训练集设置标签的问题。训练集图像在文件夹中给出,标签在 csv 文件中。这是我的代码。
train = torchvision.datasets.ImageFolder(root='../input/train',
transform=transform)
train.targets = torch.from_numpy(df['has_cactus'].values)
train_loader = torch.utils.data.DataLoader(train, batch_size=64, shuffle=True, num_workers=2)
for i, data in enumerate(train_loader, 0):
print(data[1])
Run Code Online (Sandbox Code Playgroud)
此代码输出全为零的批处理张量,这显然是不正确的,因为绝大多数标签(如果您要查看数据帧)都是 1。我相信这是将标签分配给“train.targets”的问题。如果在分配其他标签之前打印“train.targets”,它会返回一个全为零的张量,这与我得到的错误结果一致。我该如何解决这个问题?