MCPcopy Create free account
hub / github.com/CompVis/diff2flow / DataModuleFromConfig

Class DataModuleFromConfig

diff2flow/dataloader.py:213–261  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

211
212
213class DataModuleFromConfig(pl.LightningDataModule):
214 def __init__(self,
215 batch_size: int,
216 val_batch_size: int = None,
217 train: dict = None,
218 validation: dict = None,
219 test: dict = None,
220 shuffle_validation: bool = False,
221 num_workers: int = 0
222 ):
223 super().__init__()
224 self.batch_size = batch_size
225 self.train = train
226 self.validation = validation
227 self.num_workers = num_workers
228 self.val_batch_size = val_batch_size if val_batch_size is not None else batch_size
229 self.shuffle_validation = shuffle_validation
230
231 self.dataset_configs = {}
232 if train is not None:
233 self.dataset_configs["train"] = train
234 self.train_dataloader = self._train_dataloader
235 if validation is not None:
236 self.dataset_configs["validation"] = validation
237 self.val_dataloader = self._val_dataloader
238 if test is not None:
239 self.dataset_configs["test"] = test
240 self.test_dataloader = self._test_dataloader
241
242 def _train_dataloader(self):
243 return DataLoader(self.datasets["train"], batch_size=self.batch_size,
244 num_workers=self.num_workers, shuffle=True)
245
246 def _val_dataloader(self):
247 return DataLoader(self.datasets["validation"], batch_size=self.val_batch_size,
248 num_workers=self.num_workers, shuffle=self.shuffle_validation)
249
250 def _test_dataloader(self):
251 return DataLoader(self.datasets["test"], batch_size=self.val_batch_size,
252 num_workers=self.num_workers, shuffle=self.shuffle_validation)
253
254 def prepare_data(self):
255 for data_cfg in self.dataset_configs.values():
256 instantiate_from_config(data_cfg)
257
258 def setup(self, stage=None):
259 self.datasets = dict(
260 (k, instantiate_from_config(self.dataset_configs[k]))
261 for k in self.dataset_configs)
262
263
264class DummyDataset(Dataset):

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected