ValueError:采样器选项与shuffle pytorch互斥

问题描述 投票:0回答:2

我正在使用pytorch和mtcnn进行人脸识别项目,并且在训练了我的训练数据集之后,现在我想对测试数据集进行预测

这是我训练有素的代码

optimizer = optim.Adam(resnet.parameters(), lr=0.001)
scheduler = MultiStepLR(optimizer, [5, 10])

trans = transforms.Compose([
   np.float32,
   transforms.ToTensor(),
   fixed_image_standardization
])
dataset = datasets.ImageFolder(data_dir, transform=trans)
img_inds = np.arange(len(dataset))
np.random.shuffle(img_inds)
train_inds = img_inds[:int(0.8 * len(img_inds))]
val_inds = img_inds[int(0.8 * len(img_inds)):]

train_loader = DataLoader(
   dataset,
   num_workers=workers,
   batch_size=batch_size,
   sampler=SubsetRandomSampler(train_inds)
)
val_loader = DataLoader(
   dataset,
   shuffle=True,
   num_workers=workers,
   batch_size=batch_size,
   sampler=SubsetRandomSampler(val_inds)
)

我想在pytorch中进行预测(从测试数据集中随机选择)?这就是为什么我应该使用shuffle=True我关注了这个仓库facenet-pytorch

python opencv pytorch face-recognition
2个回答
1
投票

我不确定测试数据的格式,但是要从数据集中随机选择一个样本,可以使用模块random.choice中的random


1
投票

您必须将Dataloader与shuffle = True

一起使用
val_loader = DataLoader(val_dataset, shuffle=True)

带有此标志的数据集中的样本将被随机选择(doc)。

© www.soinside.com 2019 - 2024. All rights reserved.