pytorch从dataloader取一个batch的数据
有时候我们需要创建两个DataLoader,来构建正负样本对。这就意味着我们需要从不同DataLoader中取数据。
dataloader本质上是一个可迭代对象,可以使用iter()进行访问,采用iter(dataloader)返回的是一个迭代器,然后使用for i in iter(dataloader)循环读取,也可以使用next()访问一次。
dataset1= MyDataSet(transform=transforms,dataset_path = './GAN_image_data/')
dataset2= MyDataSet(transform=transforms,dataset_path = './GAN_image_data/')
loader1 = DataLoader(dataset1, batch_size=BATCH_SIZE, shuffle=False,drop_last=False)
loader2 = DataLoader(dataset2, batch_size=BATCH_SIZE, shuffle=False,drop_last=False)
for batch_idx, (data, _) in enumerate(loader1):
y = data
y_pred =next(iter(loader2))[0] #[tensor] 列表里是tensor
m.update((y_pred, y))