MCPcopy Create free account
hub / github.com/NVIDIA/DALI / TestIterator

Class TestIterator

dali/test/python/test_external_source_impl.py:113–150  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

111
112
113class TestIterator:
114 def __init__(self, n, batch_size, dims=[2], as_tensor=False):
115 self.batch_size = batch_size
116 self.dims = dims
117 self.n = n
118 self.as_tensor = as_tensor
119 self.i = 0
120
121 def __len__(self):
122 return self.n
123
124 def __iter__(self):
125 # return a copy, so that the iteration number doesn't collide
126 return TestIterator(self.n, self.batch_size, self.dims, self.as_tensor)
127
128 def __next__(self):
129 random_seed(12345 * self.i + 4321)
130
131 def generate(dim):
132 if self.as_tensor:
133 shape = random_int(1, 10, [dim]).tolist()
134 return random_array([self.batch_size] + shape)
135 else:
136 return [
137 random_array(random_int(1, 10, [dim]).tolist()) for _ in range(self.batch_size)
138 ]
139
140 if self.i < self.n:
141 self.i += 1
142 if isinstance(self.dims, (list, tuple)):
143 return [generate(d) for d in self.dims]
144 else:
145 return generate(self.dims)
146 else:
147 self.i = 0
148 raise StopIteration
149
150 next = __next__
151
152
153class SampleIterator:

Callers 7

__iter__Method · 0.70
_test_iter_setupFunction · 0.70
test_external_sourceFunction · 0.70

Calls

no outgoing calls

Tested by 7

__iter__Method · 0.56
_test_iter_setupFunction · 0.56
test_external_sourceFunction · 0.56