数据加载器

数据加载器是指将数据集读入内存并进行预处理后,以可供模型训练使用的形式传输给模型的程序。以下是一个简单的数据加载器的示例代码,假设数据集为图像数据集,每个样本包含一张图像和对应的标签。

上述代码中,我们首先定义了一个自定义的 Dataset
类 MyDataset
,其中 __len__
方法返回数据集的长度,__getitem__
方法根据索引返回一个样本,并进行预处理(可选)。我们使用 torchvision.transforms
中的一些预处理函数对图像进行了预处理,比如将图像缩放到统一的大小、进行随机水平翻转、将图像转化为张量,并将像素值归一化到 [-1, 1] 之间。然后,我们将训练集和验证集分别封装为 MyDataset
类型的对象 train_dataset
和 valid_dataset
,并使用 DataLoader
类将它们封装为可迭代的加载器对象 train_loader
和 valid_loader
。在 DataLoader
中我们设置了 batch_size
、shuffle
和 num_workers
参数,其中 batch_size
表示每个批次的样本数,shuffle
表示是否在每个 epoch 开始时打乱数据集,num_workers
表示数据加载所需的进程数。然后我们就可以通过迭代器 train_loader
和 valid_loader
来访问数据集中的每个批次数据进行模型的训练和验证了。