pytorch自定义dataset的两种方法

Pytorch自定义加载数据--自定义Dataset_xuan_liu123的博客-CSDN博客_dataset pytorch

总结:

方法一:继承Dataset类,自定义一个Dataset的数据集类,并改写__init__, __len__,__getitme__函数。

方法二:使用torchvision.datasets.imageFolder函数生成数据集。

注意:原博客中的方法一种,有两个错误:

1.改写__init__函数时,需要添加对父类的初始化:

super(AnimalData, self)__init__()

2.使用transoform转换图像时,输入应该是image,而不是sample字典。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch 中对数据集进行归一化有多种方法,其中一种常用的方法是使用 torchvision.transforms.Normalize() 函数。 具体步骤如下: 1. 定义一个自定义数据集类,并在 __init__() 方法中指定数据集的路径和转换(transform)。 ```python class CustomDataset(Dataset): def __init__(self, data_path, transform=None): self.data = pd.read_csv(data_path) self.transform = transform def __len__(self): return len(self.data) def __getitem__(self, idx): img_path = self.data.iloc[idx, 0] label = self.data.iloc[idx, 1] img = Image.open(img_path).convert('RGB') if self.transform: img = self.transform(img) return img, label ``` 2. 在训练前,定义一个 transforms.Compose() 函数,将多种转换组合在一起。其中,transforms.Normalize() 函数可以对数据进行归一化。该函数需要传入两个参数:均值和标准差。这两个参数的计算可以使用 numpy.mean() 和 numpy.std() 函数。 ```python transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) ``` 3. 在实例化数据集类对象时,将 transform 参数传入。 ```python dataset = CustomDataset(data_path='data.csv', transform=transform) ``` 4. 在 DataLoader 中设置 batch_size 和 shuffle 参数,以及 num_workers(数据加载器使用的子进程数)参数。 ```python dataloader = DataLoader(dataset, batch_size=32, shuffle=True, num_workers=4) ``` 这样,在每次迭代中,DataLoader 会自动对数据进行归一化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值