| from src import utils, preprocessing |
|
|
| import logging |
| import torchvision |
| import torchvision.transforms as transforms |
| import pytorch_lightning as pl |
|
|
| from torch.utils.data import DataLoader |
|
|
| class MNISTDataModule(pl.LightningDataModule): |
| def __init__(self, batch_size=64): |
| super().__init__() |
| self.batch_size = batch_size |
| self.transform = transforms.Compose([ |
| transforms.ToTensor(), |
| ]) |
|
|
| def setup(self, stage=None): |
| self.train_dataset = torchvision.datasets.MNIST( |
| root='./data', train=True, transform=self.transform |
| ) |
| self.test_dataset = torchvision.datasets.MNIST( |
| root='./data', train=False, transform=self.transform |
| ) |
|
|
| def train_dataloader(self): |
| return DataLoader(self.train_dataset, batch_size=self.batch_size, shuffle=True) |
|
|
| def val_dataloader(self): |
| return DataLoader(self.test_dataset, batch_size=self.batch_size) |
|
|
| def define_dataloaders(batch_size=64): |
| logger = logging.getLogger(__name__) |
| logger.debug("Cargando datasets de MNIST...") |
| utils.download_mnist() |
| logger.debug("Datasets de MNIST cargados correctamente") |
|
|
| logger.debug("Preprocesando datos...") |
| preprocessing.preprocess_data() |
| logger.debug("Datos preprocesados correctamente") |
|
|
| logger.debug("Creando DataModule...") |
| data_module = MNISTDataModule(batch_size=batch_size) |
| logger.debug("DataModule creado correctamente") |
| return data_module |