我正在使用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
我不确定测试数据的格式,但是要从数据集中随机选择一个样本,可以使用模块random.choice
中的random
。
您必须将Dataloader与shuffle = True
一起使用val_loader = DataLoader(val_dataset, shuffle=True)
带有此标志的数据集中的样本将被随机选择(doc)。