MCPcopy Create free account
hub / github.com/TencentARC/InstantMesh / DataModuleFromConfig

Class DataModuleFromConfig

src/data/objaverse_zero123plus.py:15–57  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13
14
15class DataModuleFromConfig(pl.LightningDataModule):
16 def __init__(
17 self,
18 batch_size=8,
19 num_workers=4,
20 train=None,
21 validation=None,
22 test=None,
23 **kwargs,
24 ):
25 super().__init__()
26
27 self.batch_size = batch_size
28 self.num_workers = num_workers
29
30 self.dataset_configs = dict()
31 if train is not None:
32 self.dataset_configs['train'] = train
33 if validation is not None:
34 self.dataset_configs['validation'] = validation
35 if test is not None:
36 self.dataset_configs['test'] = test
37
38 def setup(self, stage):
39
40 if stage in ['fit']:
41 self.datasets = dict((k, instantiate_from_config(self.dataset_configs[k])) for k in self.dataset_configs)
42 else:
43 raise NotImplementedError
44
45 def train_dataloader(self):
46
47 sampler = DistributedSampler(self.datasets['train'])
48 return wds.WebLoader(self.datasets['train'], batch_size=self.batch_size, num_workers=self.num_workers, shuffle=False, sampler=sampler)
49
50 def val_dataloader(self):
51
52 sampler = DistributedSampler(self.datasets['validation'])
53 return wds.WebLoader(self.datasets['validation'], batch_size=4, num_workers=self.num_workers, shuffle=False, sampler=sampler)
54
55 def test_dataloader(self):
56
57 return wds.WebLoader(self.datasets['test'], batch_size=self.batch_size, num_workers=self.num_workers, shuffle=False)
58
59
60class ObjaverseData(Dataset):

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected