класс набора данных
pytorch поставляется с наборами данных
- torchvision предоставляет данные изображения
- torchtext предоставляет текстовые данные
import torch
import torchvision
# 下载数据集
# torchvision.datasets 提供数据集下载方式,把MNIST换成其他名字,MNIST是灰度图/IMDB电影评论文本数据
# torchvision.datasets.DatasetFolder 加载其他数据集
train_set = torchvision.datasets.MNIST(root='./data', train=True, download=True)
test_set = torchvision.datasets.MNIST(root='./data', train=False, download=True)
Загрузить локальный набор данных
data_path = r"../../../" # r表该句为字符串
# 完成数据类
class MyDataset(Dataset):
def __init__(slef):
self.lines = open(data_path).readlines()
def __getitem__(self, index):
return self.lines[index]
def __len__(self):
return len(self.lines)
my_dataset = MyDataset()
загрузчик данных
При обучении данных с очень большим объемом данных все данные часто перемешиваются случайным образом, данные обрабатываются в пакеты, и данные одновременно подвергаются предварительной обработке.
# 数据加载器--处理数据
# 批处理数据batch 打乱数据shuffing
from torch.utils.data import DataLoader
batch_size = 128 # 并行处理样本数量,会将128份样本压缩成一份来进行处理
'''
shuffle 是否提前打乱数据
num_workers 加载数据的线程数
'''
train_set = DataLoader(dataset=train_set, batch_size=batch_size, shuffle=True, num_workers=2)
print('afterLoader_train_set len=', len(train_set))
print('afterLoader_train_set type=', type(train_set))
Подготовить данные
Формат набора данных изображения PIL.Image.Image, Чтобы обучить модель и обработать данные, используйтеtorchvision.transforms
Преобразуйте объект данных в тензор, соответствующий требованиям, а затем стандартизируйте/регуляризируйте данные.