1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| class MNISTDataModule(LightningDataModule):
def __init__(
self,
data_dir=PATH_DATASETS,
batch_size=BATCH_SIZE,
num_workers=NUM_WORKERS,
):
super().__init__()
self.data_dir = data_dir
self.batch_size = batch_size
self.num_workers = num_workers
self.transform = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.1307,), (0.3081,)),
])
def prepare_data(self):
MNIST(self.data_dir, train=True, download=True)
MNIST(self.data_dir, train=False, download=True)
def setup(self, stage=None):
if stage == 'fit' or stage is None:
full = MNIST(
self.data_dir,
train=True,
transform=self.transform,
)
self.mnist_train, self.mnist_val = random_split(
full, [55000, 5000]
)
if stage == 'test' or stage is None:
self.mnist_test = MNIST(
self.data_dir,
train=False,
transform=self.transform,
)
|