pytorch导入自己的数据集
时间: 2025-06-28 21:22:36 浏览: 8
### 如何在PyTorch中导入自定义数据集
为了创建并加载自定义的数据集,在PyTorch中有两种主要的方法:一种是继承`torch.utils.data.Dataset`类来构建自己的数据集处理逻辑;另一种则是利用现成工具简化特定类型(如图像、文本或音频)数据集的准备过程。
对于图片分类任务,可以参照cats-dogs-resized目录结构下的实例[^3]。这里有一个CSV文件`cats_dogs.csv`记录着每张图片对应的类别标签。通过编写Python脚本读取这个表格以及关联的图片路径,能够轻松实现对这些样本的学习与测试划分。具体来说:
```python
import os
from PIL import Image
import pandas as pd
from torchvision.io import read_image
from torch.utils.data import Dataset
class CustomImageDataset(Dataset):
def __init__(self, annotations_file, img_dir, transform=None, target_transform=None):
self.img_labels = pd.read_csv(annotations_file)
self.img_dir = img_dir
self.transform = transform
self.target_transform = target_transform
def __len__(self):
return len(self.img_labels)
def __getitem__(self, idx):
img_path = os.path.join(self.img_dir, self.img_labels.iloc[idx, 0])
image = read_image(img_path)
label = self.img_labels.iloc[idx, 1]
if self.transform:
image = self.transform(image)
if self.target_transform:
label = self.target_transform(label)
return image, label
```
上述代码展示了如何基于给定的文件列表和标签信息建立一个新的数据集对象CustomImageDataset。此方法适用于任何具有相似组织形式的小规模视觉识别项目。当面对更复杂的情况时——比如涉及自然语言处理的任务,则可能需要考虑其他方式来适应不同的输入格式[^4]。
一旦完成了自定义数据集的设计之后,就可以借助于`DataLoader`进一步优化迭代效率,并支持多线程加速等功能特性[^1]。
阅读全文
相关推荐


















