See `Dataset.zip()` for details.
(self, datasets)
| 2909 | """A `Dataset` that zips its inputs together.""" |
| 2910 | |
| 2911 | def __init__(self, datasets): |
| 2912 | """See `Dataset.zip()` for details.""" |
| 2913 | for ds in nest.flatten(datasets): |
| 2914 | if not isinstance(ds, DatasetV2): |
| 2915 | if isinstance(ds, list): |
| 2916 | message = ("The argument to `Dataset.zip()` must be a nested " |
| 2917 | "structure of `Dataset` objects. Nested structures do not " |
| 2918 | "support Python lists; please use a tuple instead.") |
| 2919 | else: |
| 2920 | message = ("The argument to `Dataset.zip()` must be a nested " |
| 2921 | "structure of `Dataset` objects.") |
| 2922 | raise TypeError(message) |
| 2923 | self._datasets = datasets |
| 2924 | self._structure = nest.pack_sequence_as( |
| 2925 | self._datasets, |
| 2926 | [ds.element_spec for ds in nest.flatten(self._datasets)]) |
| 2927 | variant_tensor = gen_dataset_ops.zip_dataset( |
| 2928 | [ds._variant_tensor for ds in nest.flatten(self._datasets)], |
| 2929 | **self._flat_structure) |
| 2930 | super(ZipDataset, self).__init__(variant_tensor) |
| 2931 | |
| 2932 | def _inputs(self): |
| 2933 | return nest.flatten(self._datasets) |