pytorch dataset用法
时间: 2023-11-14 21:09:17 浏览: 99
PyTorch中的Dataset是一个抽象类,用于表示数据集。它提供了两个必须实现的方法:__len__和__getitem__。其中,__len__方法返回数据集的大小,__getitem__方法根据给定的索引返回数据集中的一个样本。
下面是一个简单的例子,展示如何使用Dataset类:
```python
from torch.utils.data import Dataset
class MyDataset(Dataset):
def __init__(self, data):
self.data = data
def __len__(self):
return len(self.data)
def __getitem__(self, index):
return self.data[index]
```
在这个例子中,我们定义了一个名为MyDataset的类,它继承自Dataset类。我们在构造函数中传入了一个数据列表,并在__len__方法中返回了数据列表的长度。在__getitem__方法中,我们根据给定的索引返回了数据列表中对应位置的元素。
使用这个数据集非常简单。我们只需要创建一个MyDataset对象,并将其传递给DataLoader类即可:
```python
from torch.utils.data import DataLoader
data = [1, 2, 3, 4, 5]
dataset = MyDataset(data)
dataloader = DataLoader(dataset, batch_size=2)
for batch in dataloader:
print(batch)
```
在这个例子中,我们创建了一个名为data的列表,并将其传递给MyDataset类的构造函数。然后,我们创建了一个名为dataset的MyDataset对象,并将其传递给DataLoader类的构造函数。我们还指定了batch_size参数,表示每个批次的大小为2。最后,我们使用for循环遍历dataloader,并打印每个批次的内容。
阅读全文