В Pytorch при использовании набора данных torchvision MNIST мы можем получить следующую цифру:
import torchvision
import torchvision.transforms as transforms
from torch.utils.data import DataLoader, Dataset, TensorDataset
tsfm = transforms.Compose([transforms.Resize((16, 16)),
transforms.ToTensor(),
transforms.Normalize((0.1307,), (0.3081,))])
mnist_ds = torchvision.datasets.MNIST(root='../../../_data/mnist',train=True,
download=True, transform=tsfm)
digit_12 = mnist_ds[12]
Хотя на большинство наборов данных можно нарезать, мы не можем нарезать на этот:
digit_12_to_14 = mnist_ds[12:15]
вернется
ValueError: Too many dimensions: 3 > 2.
Это связано с тем, что Image.fromarray () в getItem ()
Можно ли использовать набор данных MNIST без использования загрузчика данных? Как?
PS: Причина, по которой я хотел бы избежать использования Dataloader, заключается в том, что отправка пакетов по одному в GPU замедляет обучение. Я предпочитаю отправлять в GPU целые данные только один раз. Для этого мне нужен доступ ко всему преобразованному набору данных.