(self)
| 668 | ) |
| 669 | |
| 670 | def __next__(self): |
| 671 | random_seed(12345 * self.i + 4321) |
| 672 | |
| 673 | def generate(dim): |
| 674 | shape = random_int(1, 10, [dim]).tolist() |
| 675 | if self.as_tensor: |
| 676 | return random_array([self.batch_size] + shape) |
| 677 | else: |
| 678 | return [random_array(shape) for _ in range(self.batch_size)] |
| 679 | |
| 680 | if self.i < self.n: |
| 681 | self.i += 1 |
| 682 | if isinstance(self.dims, (list, tuple)): |
| 683 | data = [generate(d) for d in self.dims] |
| 684 | else: |
| 685 | data = generate(self.dims) |
| 686 | |
| 687 | # it needs to keep data alive |
| 688 | self.data.append(data) |
| 689 | |
| 690 | def add_one(x): |
| 691 | if isinstance(x, list): |
| 692 | for elm in x: |
| 693 | elm = add_one(elm) |
| 694 | else: |
| 695 | x += 1 |
| 696 | return x |
| 697 | |
| 698 | if len(self.data) > self.num_keep_samples: |
| 699 | tmp = self.data.pop(0) |
| 700 | # change popped data to make sure it is corrupted |
| 701 | tmp = add_one(tmp) |
| 702 | return data |
| 703 | else: |
| 704 | self.i = 0 |
| 705 | raise StopIteration |
| 706 | |
| 707 | next = __next__ |
| 708 |
nothing calls this directly
no test coverage detected