实际上我想做的是,我有大约 80 张图片的小图像数据,然后我想正确准备它,所以我不确定我的步骤是否正确。
class MyCustomDataset(Dataset):
def __init__(self,path,transform=None):
self.transformations = transforms.Compose([transforms.Normalize((.5, .5, .5), (.5, .5, .5)),
transforms.ToTensor()])
self.name=os.listdir(path)
self.count=np.size(self.name)
self.transform = transform
self.to_tensor = transforms.ToTensor()
#transforms.CenterCrop(100),
def __getitem__(self, index):
label=self.name[index]
im3 = Image.open(path2 + '//' + label)
imge=self.to_tensor(im3)
if self.transform is not None:
imge = self.transform(imge)
return (imge, label)
def __len__(self):
return self.count # of how many data(images?) you have
if __name__ == '__main__':
# Call the dataset
path=path2
custom_dataset = MyCustomDataset(path)#.(Dataset).__init__(path)
data_loader = torch.utils.data.DataLoader(custom_dataset, batch_size=100, shuffle=True)
num_batches = len(data_loader)
最佳答案
您的实现中有两个 transforms.ToTensor()
。你只需要一个。请注意,某些变换对 PIL.Image
对象进行操作,而其他变换则对张量进行操作。请参阅torchvision.transforms
哪个是哪个。
关于python - 如何准备我自己的数据集并使用 pytorch 或 tensorflow 对其进行转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54112169/