/usr/local/lib/python3.6/site-packages/datasets/__pycache__
Edit: /usr/local/lib/python3.6/site-packages/datasets/__pycache__/combine.cpython-36.pyc (5508B)
3
<%Eg @ s d dl mZmZmZ ddlmZmZmZ ddlm Z ddl
mZmZm
Z
ddlmZ ddlmZ ejeZedd d
Zdee eee ee ee ee edd
dZdee ee ee edddZdS ) )ListOptionalTypeVar )Dataset_concatenate_map_style_datasets_interleave_map_style_datasets)DatasetInfo)IterableDataset_concatenate_iterable_datasets_interleave_iterable_datasets)
NamedSplit)loggingDatasetTyper r
N)datasets
probabilitiesseedinfosplitreturnc
C s ddl m} ddlm} | s$tdt| d |}t| d |}||A s^tdt| d xV| dd D ]F} |rt| | s|rlt| | rltdt| d d t| d
qlW |rt| ||||dS t| ||||dS dS )u
Interleave several datasets (sources) into a single dataset.
The new dataset is constructed by alternating between the sources to get the examples.
You can use this function on a list of :class:`Dataset` objects, or on a list of :class:`IterableDataset` objects.
If ``probabilities`` is ``None`` (default) the new dataset is constructed by cycling between each source to get the examples.
If ``probabilities`` is not ``None``, the new dataset is constructed by getting examples from a random source at a time according to the provided probabilities.
The resulting dataset ends when one of the source datasets runs out of examples.
Args:
datasets (:obj:`List[Dataset]` or :obj:`List[IterableDataset]`): list of datasets to interleave
probabilities (:obj:`List[float]`, optional, default None): If specified, the new dataset is constructued by sampling
examples from one source at a time according to these probabilities.
seed (:obj:`int`, optional, default None): The random seed used to choose a source for each example.
Returns:
:class:`Dataset` or :class:`IterableDataset`: Return type depends on the input `datasets`
parameter. `Dataset` if the input is a list of `Dataset`, `IterableDataset` if the input is a list of
`IterableDataset`.
Example::
For regular datasets (map-style):
>>> from datasets import Dataset, interleave_datasets
>>> d1 = Dataset.from_dict({"a": [0, 1, 2]})
>>> d2 = Dataset.from_dict({"a": [10, 11, 12]})
>>> d3 = Dataset.from_dict({"a": [20, 21, 22]})
>>> dataset = interleave_datasets([d1, d2, d3])
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22]
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42)
>>> dataset["a"]
[10, 0, 11, 1, 2, 20, 12]
For datasets in streaming mode (iterable):
>>> from datasets import load_dataset, interleave_datasets
>>> d1 = load_dataset("oscar", "unshuffled_deduplicated_en", split="train", streaming=True)
>>> d2 = load_dataset("oscar", "unshuffled_deduplicated_fr", split="train", streaming=True)
>>> dataset = interleave_datasets([d1, d2])
>>> iterator = iter(dataset)
>>> next(iterator)
{'text': 'Mtendere Village was inspired by the vision...
>>> next(iterator)
{'text': "Média de débat d'idées, de culture...
r )r )r
z/Unable to interleave an empty list of datasets.r z`Expected a list of Dataset objects or a list of IterableDataset objects, but first element is a NzUnable to interleave a z with a zJ. Expected a list of Dataset objects or a list of IterableDataset objects.)r r )
arrow_datasetr iterable_datasetr
ValueError
isinstancetyper r )
r r r r r r r
iterable map_styledataset r :/usr/local/lib/python3.6/site-packages/datasets/combine.pyinterleave_datasets s 8 $r )dsetsr r axisc C s | st dt| d t}t| d t}||A sFt dt| d xV| dd D ]F}|rht|t sx|rTt|t rTt dt| d dt| dqTW |rt| |||d S t| |||d S dS )
a
Converts a list of :class:`Dataset` with the same schema into a single :class:`Dataset`.
Args:
dsets (:obj:`List[datasets.Dataset]`): List of Datasets to concatenate.
info (:class:`DatasetInfo`, optional): Dataset information, like description, citation, etc.
split (:class:`NamedSplit`, optional): Name of the dataset split.
axis (``{0, 1}``, default ``0``, meaning over rows):
Axis to concatenate over, where ``0`` means over rows (vertically) and ``1`` means over columns
(horizontally).
*New in version 1.6.0*
Example:
```py
>>> ds3 = concatenate_datasets([ds1, ds2])
```
z0Unable to concatenate an empty list of datasets.r z`Expected a list of Dataset objects or a list of IterableDataset objects, but first element is a r NzUnable to concatenate a z with a zJ. Expected a list of Dataset objects or a list of IterableDataset objects.)r r r" )r r r
r r r r )r! r r r" r r r r r r concatenate_datasets^ s $r# )NNNN)NNr )typingr r r r r r r r r r r
r r splitsr
utilsr
get_logger__name__loggerr floatintr r# r r r r
s
$J