MCPcopy Create free account
hub / github.com/GasaiYU/PartRM / DataModuleFromConfig

Class DataModuleFromConfig

preprocess/src/data/objaverse.py:29–71  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

27
28
29class DataModuleFromConfig(pl.LightningDataModule):
30 def __init__(
31 self,
32 batch_size=8,
33 num_workers=4,
34 train=None,
35 validation=None,
36 test=None,
37 **kwargs,
38 ):
39 super().__init__()
40
41 self.batch_size = batch_size
42 self.num_workers = num_workers
43
44 self.dataset_configs = dict()
45 if train is not None:
46 self.dataset_configs['train'] = train
47 if validation is not None:
48 self.dataset_configs['validation'] = validation
49 if test is not None:
50 self.dataset_configs['test'] = test
51
52 def setup(self, stage):
53
54 if stage in ['fit']:
55 self.datasets = dict((k, instantiate_from_config(self.dataset_configs[k])) for k in self.dataset_configs)
56 else:
57 raise NotImplementedError
58
59 def train_dataloader(self):
60
61 sampler = DistributedSampler(self.datasets['train'])
62 return wds.WebLoader(self.datasets['train'], batch_size=self.batch_size, num_workers=self.num_workers, shuffle=False, sampler=sampler)
63
64 def val_dataloader(self):
65
66 sampler = DistributedSampler(self.datasets['validation'])
67 return wds.WebLoader(self.datasets['validation'], batch_size=1, num_workers=self.num_workers, shuffle=False, sampler=sampler)
68
69 def test_dataloader(self):
70
71 return wds.WebLoader(self.datasets['test'], batch_size=self.batch_size, num_workers=self.num_workers, shuffle=False)
72
73
74class ObjaverseData(Dataset):

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected