Datasets documentation

Основные классы

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.8.4).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Основные классы

DatasetInfo

класс datasets.DatasetInfo

< >

( description: str = <factory>citation: str = <factory>homepage: str = <factory>license: str = <factory>features: typing.Optional[datasets.features.features.Features] = Nonepost_processed: typing.Optional[datasets.info.PostProcessedInfo] = Nonesupervised_keys: typing.Optional[datasets.info.SupervisedKeysData] = Nonebuilder_name: typing.Optional[str] = Nonedataset_name: typing.Optional[str] = Noneconfig_name: typing.Optional[str] = Noneversion: typing.Union[str, datasets.utils.version.Version, NoneType] = Nonesplits: typing.Optional[datasets.splits.SplitDict] = Nonedownload_checksums: typing.Optional[dict] = Nonedownload_size: typing.Optional[int] = Nonepost_processing_size: typing.Optional[int] = Nonedataset_size: typing.Optional[int] = Nonesize_in_bytes: typing.Optional[int] = None )

Параметры

  • description (str) — Описание набора данных.
  • citation (str) — BibTeX-цитирование набора данных.
  • homepage (str) — URL официальной домашней страницы набора данных.
  • license (str) — Лицензия набора данных. Может содержать название лицензии или абзац с условиями лицензии.
  • features (Features, необязательный) — Особенности, используемые для указания типов столбцов набора данных.
  • post_processed (PostProcessedInfo, необязательный) — Устарело. Информация о ресурсах возможной постобработки набора данных. Например, может содержать информацию об индексе.
  • supervised_keys (SupervisedKeysData, необязательный) — Указывает входную характеристику и метку для обучения с учителем, если это применимо к набору данных (устаревший параметр из TFDS).
  • builder_name (str, необязательный) — Имя подкласса GeneratorBasedBuilder, используемого для создания набора данных. Это также версия имени класса сборщика набора данных в формате snake_case.
  • config_name (str, необязательный) — Имя конфигурации, полученной из BuilderConfig.
  • version (str или Version, необязательный) — Версия набора данных.
  • splits (dict, необязательный) — Соответствие между именем сплита и метаданными.
  • download_checksums (dict, необязательный) — Соответствие между URL для загрузки контрольных сумм набора данных и соответствующими метаданными.
  • download_size (int, необязательный) — Размер файлов, которые необходимо скачать для генерации набора данных, в байтах.
  • post_processing_size (int, необязательный) — Устарело. Размер набора данных в байтах после постобработки, если она выполнялась.
  • dataset_size (int, необязательный) — Суммарный размер в байтах таблиц Arrow для всех разбиений.
  • size_in_bytes (int, необязательный) — Суммарный размер в байтах всех файлов, связанных с набором данных (скачанные файлы + файлы Arrow).
  • **config_kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в BuilderConfig и используемые в DatasetBuilder.

Информация о наборе данных.

DatasetInfo описывает наборы данных, включая их имя, версию и признаки. Список аргументов конструктора и свойств см. ниже.

Не все поля известны на этапе создания и могут быть обновлены позже.

from_directory

< >

( dataset_info_dir: strstorage_options: typing.Optional[dict] = None )

Параметры

  • dataset_info_dir (str) — Каталог, содержащий файл метаданных. Это должен быть корневой каталог конкретной версии набора данных.
  • storage_options (dict, необязательный) — Пары ключ/значение, передаваемые в файловую систему, если она используется.

    Добавлено в 2.9.0

Создайте DatasetInfo из JSON-файла в dataset_info_dir.

Эта функция обновляет все динамически сгенерированные поля (num_examples, hash, time of creation,…) объекта DatasetInfo.

Это перезапишет все предыдущие метаданные.

Пример:

>>> from datasets import DatasetInfo
>>> ds_info = DatasetInfo.from_directory("/path/to/directory/")

write_to_directory

< >

( dataset_info_dirpretty_print = Falsestorage_options: typing.Optional[dict] = None )

Параметры

  • dataset_info_dir (str) — Каталог назначения.
  • pretty_print (bool, по умолчанию False) — Если True, JSON будет выведен с отступами в 4 пробела.
  • storage_options (dict, необязательный) — Пары ключ/значение, передаваемые в файловую систему, если она используется.

    Добавлено в 2.9.0

Запишите DatasetInfo и лицензию (если она есть) в виде файлов JSON в dataset_info_dir.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.info.write_to_directory("/path/to/directory/")

Набор данных

Базовый класс Dataset реализует Dataset, основанный на таблице Apache Arrow.

класс datasets.Dataset

< >

( arrow_table: Tableinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneindices_table: typing.Optional[datasets.table.Table] = Nonefingerprint: typing.Optional[str] = None )

Набор данных, основанный на таблице Arrow.

add_column

< >

( name: strcolumn: typing.Union[list, numpy.ndarray]new_fingerprint: typing.Optional[str] = Nonefeature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure, NoneType] = None )

Параметры

  • name (str) — Имя столбца.
  • column (list или np.array) — Данные столбца, которые нужно добавить.
  • feature (FeatureType или None, по умолчанию None) — Тип данных столбца.

Добавить столбец в Dataset.

Добавлено в 1.7

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> more_text = ds["text"]
>>> ds = ds.add_column(name="text_2", column=more_text)
>>> ds
Dataset({
    features: ['text', 'label', 'text_2'],
    num_rows: 1066
})

add_item

< >

( item: dictnew_fingerprint: typing.Optional[str] = None )

Параметры

  • item (dict) — Данные элемента для добавления.

Добавить элемент в Dataset.

Добавлено в 1.7

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> new_review = {'label': 0, 'text': 'this movie is the absolute worst thing I have ever seen'}
>>> ds = ds.add_item(new_review)
>>> ds[-1]
{'label': 0, 'text': 'this movie is the absolute worst thing I have ever seen'}

from_file

< >

( filename: strinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneindices_filename: typing.Optional[str] = Nonein_memory: bool = False )

Параметры

  • filename (str) — Имя файла набора данных.
  • info (DatasetInfo, необязательный) — Информация о наборе данных, например описание, цитирование и т. д.
  • split (NamedSplit, необязательный) — Имя разбиения набора данных.
  • indices_filename (str, необязательный) — Имена файлов индексов.
  • in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.

Создайте экземпляр Dataset, основанный на таблице Arrow с именем файла filename.

from_buffer

< >

( buffer: Bufferinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneindices_buffer: typing.Optional[pyarrow.lib.Buffer] = None )

Параметры

  • buffer (pyarrow.Buffer) — буфер Arrow.
  • info (DatasetInfo, необязательный) — Информация о наборе данных, например описание, цитирование и т. д.
  • split (NamedSplit, необязательный) — Имя разбиения набора данных.
  • indices_buffer (pyarrow.Buffer, необязательный) — Буфер Arrow с индексами.

Создайте экземпляр Dataset, использующего буфер Arrow.

from_pandas

< >

( df: DataFramefeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Nonepreserve_index: typing.Optional[bool] = None )

Параметры

  • df (pandas.DataFrame) — Dataframe, содержащий набор данных.
  • features (Features, необязательный) — Особенности набора данных.
  • info (DatasetInfo, необязательный) — Информация о наборе данных, например описание, цитирование и т. д.
  • split (NamedSplit, необязательный) — Имя разбиения набора данных.
  • preserve_index (bool, необязательный) — Определяет, следует ли сохранять индекс в виде дополнительного столбца в результирующем Dataset. Значение по умолчанию None сохраняет индекс как столбец, за исключением RangeIndex, который хранится только в метаданных. Используйте preserve_index=True, чтобы принудительно сохранить его в виде столбца.

Преобразуйте pandas.DataFrame в pyarrow.Table, чтобы создать Dataset.

Типы столбцов в результирующей таблице Arrow выводятся из dtypes pandas.Series в DataFrame. В случае Series, не являющихся объектами, NumPy dtype преобразуется в соответствующий ему тип Arrow. В случае object необходимо угадать тип данных, анализируя Python-объекты в этой Series.

Обратите внимание, что Series с типом данных object не всегда содержат достаточно информации для однозначного определения соответствующего типа Arrow. Если тип не удаётся вывести, например, если длина DataFrame равна 0 или Series содержит только объекты None/nan, тип устанавливается в null. Этого поведения можно избежать, явно создав признаки и передав их в эту функцию.

Important: a dataset created with from_pandas() lives in memory and therefore doesn’t have an associated cache directory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. save_to_disk / load_from_disk.

Пример:

>>> ds = Dataset.from_pandas(df)

from_dict

< >

( mapping: dictfeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneon_mixed_types: typing.Optional[typing.Literal['use_json']] = None )

Параметры

  • mapping (Mapping) — Соответствие строк массивам или спискам Python.
  • features (Features, необязательный) — Особенности набора данных.
  • info (DatasetInfo, необязательный) — Информация о наборе данных, например описание, цитирование и т. д.
  • split (NamedSplit, необязательный) — Имя разбиения набора данных.
  • on_mixed_types (Literal["use_json"], необязательный, по умолчанию None) — Если указано «use_json», для полей со смешанными типами используется тип Json(), то есть для неструктурированных полей, содержащих данные без заранее определённой схемы. В этом случае полю со смешанным типом присваивается значение Json().

    Это позволяет загружать списки со смешанными строками/целыми числами/числами с плавающей точкой, например, или словари с произвольными типами значений.

    Добавлено в 4.7.0

Преобразуйте dict в pyarrow.Table, чтобы создать Dataset.

Important: a dataset created with from_dict() lives in memory and therefore doesn’t have an associated cache directory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. save_to_disk / load_from_disk.

Примеры:

Создайте датасет из словаря, содержащего один список на каждый столбец:

>>> ds = Dataset.from_dict({"text": ["hello there !", "general kenobi !"]})

Передайте features, чтобы задать типы столбцов, например, для набора данных изображений:

>>> features = Features({"image": Image()})
>>> ds = Dataset.from_dict({"image": ["path/to/image.png"]}, features=features)

Датасеты основаны на Arrow, который является столбчатым форматом, поэтому ожидается, что каждый пример имеет одинаковый тип и подтипы, а словари — одинаковые ключи и типы значений. При загрузке датасета возникает ошибка, если типы полей не совпадают, а отсутствующие поля в словарях заполняются значением None, чтобы все словари имели одинаковые ключи и типы значений.

Чтобы избежать этого и разрешить смешанные типы без ошибок, вы можете использовать on_mixed_types="use_json" или указать features= с типом Json:

>>> ds = Dataset.from_dict({"a": [0, "foo", {"subfield": "bar"}]})
Traceback (most recent call last):
  ...
  File "pyarrow/error.pxi", line 92, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Could not convert 'foo' with type str: tried to convert to int64

>>> ds = Dataset.from_dict({"a": [0, "foo", {"subfield": "bar"}]}, on_mixed_types="use_json")
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]

>>> features = Features({"a": Json()})
>>> ds = Dataset.from_dict({"a": [0, "foo", {"subfield": "bar"}]}, features=features)
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]

Это также полезно для списков словарей с произвольными ключами и значениями, чтобы избежать заполнения отсутствующих полей значением None:

>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]})
>>> ds.features
{'a': List({'b': Value('int64'), 'c': Value('int64')})}
>>> list(ds["a"])
[[{'b': 0, 'c': None}, {'b': None, 'c': 0}]]  # missing fields are filled with None

>>> features = Features({"a": List(Json())})
>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, features=features)
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK

>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, on_mixed_types="use_json")
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK

Ещё один пример с данными для вызова инструментов:

>>> messages = [
...     {"role": "user", "content": "Turn on the living room lights and play my electronic music playlist."},
...     {"role": "assistant", "tool_calls": [
...         {"type": "function", "function": {
...             "name": "control_light",
...             "arguments": {"room": "living room", "state": "on"}
...         }},
...         {"type": "function", "function": {
...             "name": "play_music",
...             "arguments": {"playlist": "electronic"}  # mixed-type here since keys ["playlist"] and ["room", "state"] are different
...         }}]
...     },
...     {"role": "tool", "name": "control_light", "content": "The lights in the living room are now on."},
...     {"role": "tool", "name": "play_music", "content": "The music is now playing."},
...     {"role": "assistant", "content": "Done!"}
... ]
>>> ds = Dataset.from_dict({"messages": [messages]}, on_mixed_types="use_json")
>>> ds.features
{'messages': List({'role': Value('string'), 'content': Value('string'), 'tool_calls': List(Json()), 'name': Value('string')})}
>>> ds[0]["messages"][1]["tool_calls"][0]["function"]["arguments"]
{"room": "living room", "state": "on"}

from_list

< >

( mapping: listfeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneon_mixed_types: typing.Optional[typing.Literal['use_json']] = None )

Параметры

  • mapping (List[dict]) — список отображений строк в значения строк.
  • features (Features, необязательно) — признаки набора данных.
  • info (DatasetInfo, optional) — Информация о наборе данных, например, описание, цитирование и т. д.
  • split (NamedSplit, optional) — Имя сплита набора данных.
  • on_mixed_types (Literal["use_json"], необязательный, по умолчанию None) — Если указано «use_json», для полей со смешанными типами используется тип Json(), то есть для неструктурированных полей, содержащих данные без заранее определённой схемы. В этом случае полю со смешанным типом присваивается значение Json().

    Это позволяет загружать списки со смешанными строками/целыми числами/числами с плавающей точкой, например, или словари с произвольными типами значений.

    Добавлено в 4.7.0

Преобразуйте список словарей в pyarrow.Table, чтобы создать Dataset`.

Обратите внимание, что ключи первого элемента будут использоваться для определения столбцов набора данных, независимо от того, что передано в features.

Important: a dataset created with from_list() lives in memory and therefore doesn’t have an associated cache directory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. save_to_disk / load_from_disk.

Примеры:

Создайте датасет из списка, содержащего примеры:

>>> ds = Dataset.from_list([{"text": "hello there !"}, {"text": "general kenobi !"}]})

Передайте features, чтобы задать типы столбцов, например, для набора данных изображений:

>>> features = Features({"image": Image()})
>>> ds = Dataset.from_list([{"image": "path/to/image.png"}], features=features)

Датасеты основаны на Arrow, который является столбчатым форматом, поэтому ожидается, что каждый пример имеет одинаковый тип и подтипы, а словари — одинаковые ключи и типы значений. При загрузке датасета возникает ошибка, если типы полей не совпадают, а отсутствующие поля в словарях заполняются значением None, чтобы все словари имели одинаковые ключи и типы значений.

Чтобы избежать этого и разрешить смешанные типы без ошибок, вы можете использовать on_mixed_types="use_json" или указать features= с типом Json:

>>> ds = Dataset.from_list([{"a": 0}, {"a": "foo"}, {"a": {"subfield": "bar"}}])
Traceback (most recent call last):
  ...
  File "pyarrow/error.pxi", line 92, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Could not convert 'foo' with type str: tried to convert to int64

>>> ds = Dataset.from_list([{"a": 0}, {"a": "foo"}, {"a": {"subfield": "bar"}}], on_mixed_types="use_json")
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]

>>> features = Features({"a": Json()})
>>> ds = Dataset.from_list([{"a": 0}, {"a": "foo"}, {"a": {"subfield": "bar"}}], features=features)
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]

Это также полезно для списков словарей с произвольными ключами и значениями, чтобы избежать заполнения отсутствующих полей значением None:

>>> ds = Dataset.from_list([{"a": [{"b": 0}, {"c": 0}]}])
>>> ds.features
{'a': List({'b': Value('int64'), 'c': Value('int64')})}
>>> list(ds["a"])
[[{'b': 0, 'c': None}, {'b': None, 'c': 0}]]  # missing fields are filled with None

>>> features = Features({"a": List(Json())})
>>> ds = Dataset.from_list([{"a": [{"b": 0}, {"c": 0}]}], features=features)
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK

>>> ds = Dataset.from_list([{"a": [{"b": 0}, {"c": 0}]}], on_mixed_types="use_json")
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK

Ещё один пример с данными для вызова инструментов:

>>> messages = [
...     {"role": "user", "content": "Turn on the living room lights and play my electronic music playlist."},
...     {"role": "assistant", "tool_calls": [
...         {"type": "function", "function": {
...             "name": "control_light",
...             "arguments": {"room": "living room", "state": "on"}
...         }},
...         {"type": "function", "function": {
...             "name": "play_music",
...             "arguments": {"playlist": "electronic"}  # mixed-type here since keys ["playlist"] and ["room", "state"] are different
...         }}]
...     },
...     {"role": "tool", "name": "control_light", "content": "The lights in the living room are now on."},
...     {"role": "tool", "name": "play_music", "content": "The music is now playing."},
...     {"role": "assistant", "content": "Done!"}
... ]
>>> ds = Dataset.from_list([{"messages": messages}], on_mixed_types="use_json")
>>> ds.features
{'messages': List({'role': Value('string'), 'content': Value('string'), 'tool_calls': List(Json()), 'name': Value('string')})}
>>> ds[0]["messages"][1]["tool_calls"][0]["function"]["arguments"]
{"room": "living room", "state": "on"}

from_generator

< >

( generator: typing.Callablefeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsegen_kwargs: typing.Optional[dict] = Nonenum_proc: typing.Optional[int] = Nonesplit: NamedSplit = NamedSplit('train')fingerprint: typing.Optional[str] = None**kwargs )

Параметры

  • generator ( —Callable): Функция-генератор, которая yields примеры.
  • features (Features, необязательный) — Особенности набора данных.
  • cache_dir (str, необязательный, по умолчанию "~/.cache/huggingface/datasets") — Каталог для кэширования данных.
  • keep_in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.
  • gen_kwargs(dict, необязательный) — Параметры, передаваемые в вызываемый объект generator. Вы можете определить датасет с шардированием, передав список шардов в gen_kwargs и установив num_proc больше 1.
  • num_proc (int, необязательный, по умолчанию None) — Количество процессов при загрузке и локальном создании набора данных. Это полезно, если набор данных состоит из нескольких файлов. Многопоточность отключена по умолчанию. Если num_proc больше одного, то все значения списков в gen_kwargs должны иметь одинаковую длину. Эти значения будут распределены между вызовами генератора. Количество шардов будет равно минимальному значению между самым коротким списком в gen_kwargs и num_proc.

    Добавлено в 2.7.0

  • split (NamedSplit, по умолчанию Split.TRAIN) — Имя сплита, которое будет присвоено набору данных.

    Добавлено в 2.21.0

  • fingerprint (str, необязательный) — Отпечаток, который будет использоваться для генерации идентификатора набора данных. По умолчанию fingerprint генерируется путём хеширования функции-генератора и всех аргументов, что может быть медленным, если используются крупные объекты, такие как модели ИИ.

    Добавлено в 4.3.0

  • **kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в :GeneratorConfig.

Создание Dataset из генератора.

Загрузите данные из генератора, закэшируйте их на диске в формате Arrow и верните Dataset из данных Arrow на диске, отображённых в память.

Пример:

>>> def gen():
...     yield {"text": "Good", "label": 0}
...     yield {"text": "Bad", "label": 1}
...
>>> ds = Dataset.from_generator(gen)
>>> def gen(shards):
...     for shard in shards:
...         with open(shard) as f:
...             for line in f:
...                 yield {"line": line}
...
>>> shards = [f"data{i}.txt" for i in range(32)]
>>> ds = Dataset.from_generator(gen, gen_kwargs={"shards": shards})

данные

< >

( )

Таблица Apache Arrow, лежащая в основе набора данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.data
MemoryMappedTable
text: string
label: int64
----
text: [["compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .","the soundtrack alone is worth the price of admission .","rodriguez does a splendid job of racial profiling hollywood style--casting excellent latin actors of all ages--a trend long overdue .","beneath the film's obvious determination to shock at any cost lies considerable skill and determination , backed by sheer nerve .","bielinsky is a filmmaker of impressive talent .","so beautifully acted and directed , it's clear that washington most certainly has a new career ahead of him if he so chooses .","a visual spectacle full of stunning images and effects .","a gentle and engrossing character study .","it's enough to watch huppert scheming , with her small , intelligent eyes as steady as any noir villain , and to enjoy the perfectly pitched web of tension that chabrol spins .","an engrossing portrait of uncompromising artists trying to create something original against the backdrop of a corporate music industry that only seems to care about the bottom line .",...,"ultimately , jane learns her place as a girl , softens up and loses some of the intensity that made her an interesting character to begin with .","ah-nuld's action hero days might be over .","it's clear why deuces wild , which was shot two years ago , has been gathering dust on mgm's shelf .","feels like nothing quite so much as a middle-aged moviemaker's attempt to surround himself with beautiful , half-naked women .","when the precise nature of matthew's predicament finally comes into sharp focus , the revelation fails to justify the build-up .","this picture is murder by numbers , and as easy to be bored by as your abc's , despite a few whopping shootouts .","hilarious musical comedy though stymied by accents thick as mud .","if you are into splatter movies , then you will probably have a reasonably good time with the salton sea .","a dull , simple-minded and stereotypical tale of drugs , death and mind-numbing indifference on the inner-city streets .","the feature-length stretch . . . strains the show's concept ."]]
label: [[1,1,1,1,1,1,1,1,1,1,...,0,0,0,0,0,0,0,0,0,0]]

cache_files

< >

( )

Файлы кэша, содержащие таблицу Apache Arrow, лежащую в основе набора данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.cache_files
[{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-validation.arrow'}]

num_columns

< >

( )

Количество столбцов в наборе данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.num_columns
2

num_rows

< >

( )

Количество строк в наборе данных (то же, что и Dataset.len()).

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.num_rows
1066

column_names

< >

( )

Имена столбцов в наборе данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.column_names
['text', 'label']

форма

< >

( )

Форма набора данных (количество столбцов, количество строк).

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.shape
(1066, 2)

уникальный

< >

( column: str ) → list

Параметры

  • column (str) — Имя столбца (список всех имён столбцов — column_names).

Возвращает

list

Список уникальных элементов в указанном столбце.

Возвращает список уникальных элементов в столбце.

Это реализовано в низкоуровневом бэкенде и, как следствие, работает очень быстро.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.unique('label')
[1, 0]

flatten

< >

( new_fingerprint: typing.Optional[str] = Nonemax_depth = 16 ) → Dataset

Параметры

  • new_fingerprint (str, необязательный) — Новый отпечаток набора данных после преобразования. Если None, новый отпечаток вычисляется с помощью хэша предыдущего отпечатка и аргументов преобразования.

Возвращает

Набор данных

Копия набора данных с выровненными столбцами.

Разверните таблицу. Каждый столбец со структурой (struct) разворачивается в один столбец на каждое поле структуры. Остальные столбцы остаются без изменений.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("rajpurkar/squad", split="train")
>>> ds.features
{'id': Value('string'),
 'title': Value('string'),
 'context': Value('string'),
 'question': Value('string'),
 'answers': {'text': List(Value('string')),
 'answer_start': List(Value('int32'))}}
>>> ds = ds.flatten()
>>> ds
Dataset({
    features: ['id', 'title', 'context', 'question', 'answers.text', 'answers.answer_start'],
    num_rows: 87599
})

cast

< >

( features: Featuresbatch_size: typing.Optional[int] = 1000keep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonecache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000num_proc: typing.Optional[int] = None ) → Dataset

Параметры

  • features (Features) — Новые признаки, к которым нужно привести набор данных. Имена полей в признаках должны совпадать с текущими именами столбцов. Тип данных также должен допускать преобразование из одного типа в другой. Для нетривиальных преобразований, например str <-> ClassLabel, следует использовать map() для обновления Dataset.
  • batch_size (int, по умолчанию 1000) — Количество примеров в каждой партии, передаваемой в cast. Если batch_size <= 0 или batch_size == None, то весь датасет передается в cast как одна партия.
  • keep_in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.
  • load_from_cache_file (bool, по умолчанию True, если кэширование включено) — Если можно определить файл кэша, содержащий текущий результат вычислений из function, используйте его вместо повторного вычисления.
  • cache_file_name (str, необязательный, по умолчанию None) — Укажите имя пути для файла кэша. Используется для хранения результатов вычислений вместо автоматически сгенерированного имени файла кэша.
  • writer_batch_size (int, по умолчанию 1000) — Количество строк на одну операцию записи для модуля записи в файл кэша. Это значение представляет собой хороший компромисс между использованием памяти во время обработки и скоростью обработки. Более высокое значение уменьшает количество обращений к данным, а более низкое значение потребляет меньше временной памяти при выполнении map().
  • num_proc (int, необязательный, по умолчанию None) — Количество процессов для многопроцессной обработки. По умолчанию многопроцессная обработка не используется.

Возвращает

Набор данных

Копия набора данных с преобразованными признаками.

Преобразовать набор данных в новый набор признаков.

Пример:

>>> from datasets import load_dataset, ClassLabel, Value
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds.features.copy()
>>> new_features['label'] = ClassLabel(names=['bad', 'good'])
>>> new_features['text'] = Value('large_string')
>>> ds = ds.cast(new_features)
>>> ds.features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}

cast_column

< >

( column: strfeature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure]new_fingerprint: typing.Optional[str] = None )

Параметры

  • column (str) — Имя столбца.
  • feature (FeatureType) — Целевая переменная.
  • new_fingerprint (str, необязательный) — Новый отпечаток набора данных после преобразования. Если None, новый отпечаток вычисляется с помощью хэша предыдущего отпечатка и аргументов преобразования.

Преобразование столбца в признак для декодирования.

Пример:

>>> from datasets import load_dataset, ClassLabel
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> ds = ds.cast_column('label', ClassLabel(names=['bad', 'good']))
>>> ds.features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('string')}

remove_columns

< >

( column_names: typing.Union[str, list[str]]new_fingerprint: typing.Optional[str] = None ) → Dataset

Параметры

  • column_names (Union[str, List[str]]) — Имя столбца (столбцов), который нужно удалить.
  • new_fingerprint (str, необязательный) — Новый отпечаток набора данных после преобразования. Если None, новый отпечаток вычисляется с помощью хэша предыдущего отпечатка и аргументов преобразования.

Возвращает

Набор данных

Копия объекта набора данных без удаляемых столбцов.

Удалите одну или несколько колонок в наборе данных, а также связанные с ними признаки.

Также можно удалить столбец с помощью map() и remove_columns, но данный метод не копирует данные оставшихся столбцов и поэтому работает быстрее.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.remove_columns('label')
Dataset({
    features: ['text'],
    num_rows: 1066
})
>>> ds = ds.remove_columns(column_names=ds.column_names) # Removing all the columns returns an empty dataset with the `num_rows` property set to 0
Dataset({
    features: [],
    num_rows: 0
})

rename_column

< >

( original_column_name: strnew_column_name: strnew_fingerprint: typing.Optional[str] = None ) → Dataset

Параметры

  • original_column_name (str) — Имя переименовываемой колонки.
  • new_column_name (str) — Новое имя столбца.
  • new_fingerprint (str, необязательный) — Новый отпечаток набора данных после преобразования. Если None, новый отпечаток вычисляется с помощью хэша предыдущего отпечатка и аргументов преобразования.

Возвращает

Набор данных

Копия набора данных с переименованной колонкой.

Переименовать столбец в наборе данных и переместить признаки, связанные с исходным столбцом, под новым именем столбца.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.rename_column('label', 'label_new')
Dataset({
    features: ['text', 'label_new'],
    num_rows: 1066
})

rename_columns

< >

( column_mapping: dictnew_fingerprint: typing.Optional[str] = None ) → Dataset

Параметры

  • column_mapping (Dict[str, str]) — Сопоставление столбцов с новыми именами
  • new_fingerprint (str, необязательный) — Новый отпечаток набора данных после преобразования. Если None, новый отпечаток вычисляется с помощью хэша предыдущего отпечатка и аргументов преобразования.

Возвращает

Набор данных

Копия набора данных с переименованными столбцами

Переименуйте несколько столбцов в наборе данных и переместите признаки, связанные с исходными столбцами, под новые имена столбцов.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.rename_columns({'text': 'text_new', 'label': 'label_new'})
Dataset({
    features: ['text_new', 'label_new'],
    num_rows: 1066
})

select_columns

< >

( column_names: typing.Union[str, list[str]]new_fingerprint: typing.Optional[str] = None ) → Dataset

Параметры

  • column_names (Union[str, List[str]]) — Имя столбца (столбцов), который нужно сохранить.
  • new_fingerprint (str, необязательный) — Новый отпечаток набора данных после преобразования. Если None, новый отпечаток вычисляется с помощью хэша предыдущего отпечатка и аргументов преобразования.

Возвращает

Набор данных

Копия объекта набора данных, содержащая только выбранные столбцы.

Выберите одну или несколько колонок в наборе данных и связанные с ними признаки.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.select_columns(['text'])
>>> ds
Dataset({
    features: ['text'],
    num_rows: 1066
})

class_encode_column

< >

( column: strinclude_nulls: bool = False )

Параметры

  • column (str) — Имя столбца, который нужно преобразовать (список всех имён столбцов доступен через column_names)
  • include_nulls (bool, по умолчанию False) — Включать ли значения null в метки классов. Если True, значения null будут закодированы как метка класса "None" .

    Добавлено в 1.14.2

Преобразует указанную колонку в ClassLabel и обновляет таблицу.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("google/boolq", split="validation")
>>> ds.features
{'answer': Value('bool'),
 'passage': Value('string'),
 'question': Value('string')}
>>> ds = ds.class_encode_column('answer')
>>> ds.features
{'answer': ClassLabel(num_classes=2, names=['False', 'True']),
 'passage': Value('string'),
 'question': Value('string')}

__len__

< >

( )

Количество строк в наборе данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.__len__
<bound method Dataset.__len__ of Dataset({
    features: ['text', 'label'],
    num_rows: 1066
})>

__iter__

< >

( )

Переберите примеры.

Если форматирование установлено с помощью Dataset.set_format(), строки будут возвращаться в выбранном формате.

iter

< >

( batch_size: intdrop_last_batch: bool = False )

Параметры

  • batch_size (int) — размер каждой выборки, которую нужно вернуть.
  • drop_last_batch (bool, по умолчанию False) — следует ли отбрасывать последний батч, если его размер меньше batch_size

Перебирайте батчи размера batch_size.

Если форматирование установлено с помощью [~datasets.Dataset.set_format], строки будут возвращены в выбранном формате.

formatted_as

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

Параметры

  • type (str, необязательный) — Тип вывода, выбранный из [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None означает, что getitem возвращает объекты Python (по умолчанию).
  • columns (List[str], необязательный) — Столбцы, которые нужно отформатировать в выводе. None означает, что __getitem__ возвращает все столбцы (по умолчанию).
  • output_all_columns (bool, по умолчанию False) — Сохранять в выводе также неформатированные столбцы (в виде объектов Python).
  • **format_kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в функцию преобразования, например np.array, torch.tensor или tensorflow.ragged.constant.

Используется в операторе with. Задаёт формат возврата __getitem__ (тип и столбцы).

set_format

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

Параметры

  • type (str, необязательный) — Тип вывода, выбранный из [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None означает, что __getitem__ возвращает объекты Python (по умолчанию).
  • columns (List[str], необязательный) — Столбцы, которые нужно отформатировать в выводе. None означает, что __getitem__ возвращает все столбцы (по умолчанию).
  • output_all_columns (bool, по умолчанию False) — Сохранять в выводе также неформатированные столбцы (в виде объектов Python).
  • **format_kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в функцию преобразования, например np.array, torch.tensor или tensorflow.ragged.constant.

Формат возвращаемого значения __getitem__ (тип и столбцы). Форматирование данных выполняется на лету. Формат type (например, “numpy”) используется для форматирования батчей при использовании __getitem__. Также можно использовать пользовательские трансформации для форматирования с помощью set_transform().

Возможно вызвать map() после вызова set_format. Поскольку map может добавлять новые столбцы, список отформатированных столбцов

обновляется. В этом случае, если вы примените map к набору данных для добавления нового столбца, этот столбец будет отформатирован следующим образом:

new formatted columns = (all columns - previously unformatted columns)

Пример:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds.set_format(type='numpy', columns=['text', 'label'])
>>> ds.format
{'type': 'numpy',
'format_kwargs': {},
'columns': ['text', 'label'],
'output_all_columns': False}

set_transform

< >

( transform: typing.Optional[typing.Callable]columns: typing.Optional[list] = Noneoutput_all_columns: bool = False )

Параметры

  • transform (Callable, необязательный) — Пользовательское преобразование форматирования, заменяющее формат, заданный в set_format(). Функция форматирования — это вызываемый объект, который принимает батч (в виде dict) на вход и возвращает батч. Эта функция применяется непосредственно перед возвратом объектов в __getitem__.
  • columns (List[str], необязательный) — Столбцы, которые нужно отформатировать в выводе. Если указано, входная партия преобразования содержит только эти столбцы.
  • output_all_columns (bool, по умолчанию False) — Сохранять в выводе также неформатированные столбцы (в виде объектов Python). Если установлено в True, остальные неформатированные столбцы сохраняются вместе с результатом преобразования.

Используйте этот трансформ для задания формата возврата __getitem__. Трансформ применяется на лету к батчам при вызове __getitem__. Как и в случае с set_format(), его можно сбросить с помощью reset_format().

Пример:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
>>> def encode(batch):
...     return tokenizer(batch['text'], padding=True, truncation=True, return_tensors='pt')
>>> ds.set_transform(encode)
>>> ds[0]
{'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1]),
 'input_ids': tensor([  101, 29353,  2135, 15102,  1996,  9428, 20868,  2890,  8663,  6895,
         20470,  2571,  3663,  2090,  4603,  3017,  3008,  1998,  2037, 24211,
         5637,  1998, 11690,  2336,  1012,   102]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0])}

reset_format

< >

( )

Сбросить формат возврата __getitem__ до объектов Python и всех столбцов.

Аналогично self.set_format()

Пример:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds.set_format(type='numpy', columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'])
>>> ds.format
{'columns': ['input_ids', 'token_type_ids', 'attention_mask', 'label'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'numpy'}
>>> ds.reset_format()
>>> ds.format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}

with_format

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

Параметры

  • type (str, необязательный) — Тип вывода, выбранный из [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None означает, что __getitem__ возвращает объекты Python (по умолчанию).
  • columns (List[str], необязательный) — Столбцы, которые нужно отформатировать в выводе. None означает, что __getitem__ возвращает все столбцы (по умолчанию).
  • output_all_columns (bool, по умолчанию False) — Сохранять в выводе также неформатированные столбцы (в виде объектов Python).
  • **format_kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в функцию преобразования, например np.array, torch.tensor или tensorflow.ragged.constant.

Формат возвращаемого значения __getitem__ (тип и столбцы). Форматирование данных выполняется на лету. Формат type (например, “numpy”) используется для форматирования батчей при использовании __getitem__.

Также можно использовать пользовательские преобразования для форматирования с помощью with_transform().

В отличие от set_format(), with_format возвращает новый объект Dataset.

Пример:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds.format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}
>>> ds = ds.with_format("torch")
>>> ds.format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'torch'}
>>> ds[0]
{'text': 'compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'label': tensor(1),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
        1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
        1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
 'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}

with_transform

< >

( transform: typing.Optional[typing.Callable]columns: typing.Optional[list] = Noneoutput_all_columns: bool = False )

Параметры

  • transform (Callable, optional) — Пользовательское преобразование форматирования, заменяющее формат, определённый в set_format(). Функция форматирования — это вызываемый объект, который принимает батч (в виде dict) на вход и возвращает батч. Эта функция применяется непосредственно перед возвратом объектов в __getitem__.
  • columns (List[str], optional) — Столбцы, которые нужно отформатировать в выводе. Если указано, входная партия данных для преобразования содержит только эти столбцы.
  • output_all_columns (bool, по умолчанию False) — Сохранять в выводе также неформатированные столбцы (в виде объектов Python). Если установлено в True, остальные неформатированные столбцы сохраняются вместе с результатом преобразования.

Используйте этот трансформ для задания формата возврата __getitem__. Трансформ применяется на лету к батчам при вызове __getitem__.

Как и set_format(), это можно сбросить с помощью reset_format().

В отличие от set_transform(), with_transform возвращает новый объект Dataset.

Пример:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> def encode(example):
...     return tokenizer(example["text"], padding=True, truncation=True, return_tensors='pt')
>>> ds = ds.with_transform(encode)
>>> ds[0]
{'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1, 1, 1, 1]),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
         1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
         1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0])}

__getitem__

< >

( key )

Может использоваться для индексации столбцов (по строковым именам) или строк (по целочисленному индексу или итерируемой коллекции индексов или булевых значений).

cleanup_cache_files

< >

( ) → int

Возвращает

int

Количество удалённых файлов.

Удалите все файлы кэша в каталоге кэша датасета, за исключением используемого в данный момент файла кэша, если таковой имеется.

Будьте осторожны при выполнении этой команды: убедитесь, что другие процессы в данный момент не используют другие файлы кэша.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.cleanup_cache_files()
10

map

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falsewith_rank: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000drop_last_batch: bool = Falseremove_columns: typing.Union[str, list[str], NoneType] = Nonekeep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonecache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000features: typing.Optional[datasets.features.features.Features] = Nonedisable_nullable: bool = Falsefn_kwargs: typing.Optional[dict] = Nonenum_proc: typing.Optional[int] = Nonesuffix_template: str = '_{rank:05d}_of_{num_proc:05d}'new_fingerprint: typing.Optional[str] = Nonedesc: typing.Optional[str] = Nonetry_original_type: typing.Optional[bool] = Trueon_mixed_types: typing.Optional[typing.Literal['use_json']] = 'use_json' )

Параметры

  • function (Callable) — Функция с одной из следующих сигнатур:
    • function(example: Dict[str, Any]) -> Dict[str, Any] если batched=False и with_indices=False и with_rank=False
    • function(example: Dict[str, Any], *extra_args) -> Dict[str, Any] если batched=False и with_indices=True и/или with_rank=True (по одному дополнительному аргументу для каждого)
    • function(batch: Dict[str, List]) -> Dict[str, List] если batched=True и with_indices=False и with_rank=False
    • function(batch: Dict[str, List], *extra_args) -> Dict[str, List] если batched=True и with_indices=True и/или with_rank=True (один дополнительный аргумент для каждого)

    Для расширенного использования функция также может возвращать pyarrow.Table. Если функция асинхронная, то map будет выполнять её параллельно. Более того, если ваша функция ничего не возвращает (None), то map выполнит её и вернёт датасет без изменений. Если функция не указана, по умолчанию используется тождественная функция: lambda x: x.

  • with_indices (bool, по умолчанию False) — Передавать индексы примеров в function. Обратите внимание, что в этом случае подпись function должна быть def function(example, idx[, rank]): ....
  • with_rank (bool, по умолчанию False) — Передавать ранг процесса в function. Обратите внимание, что в этом случае подпись function должна быть def function(example[, idx], rank): ....
  • input_columns (Optional[Union[str, List[str]]], по умолчанию None) — Столбцы, передаваемые в function в качестве позиционных аргументов. Если None, в качестве одного аргумента передаётся dict с соответствием всех отформатированных столбцов.
  • batched (bool, по умолчанию False) — Передавать в function пакет примеров.
  • batch_size (int, необязательный, по умолчанию 1000) — Количество примеров в каждой партии, передаваемой в function, если batched=True. Если batch_size <= 0 или batch_size == None, весь набор данных передается в function как одна партия.
  • drop_last_batch (bool, по умолчанию False) — Определяет, следует ли отбрасывать последний батч, если его размер меньше batch_size, вместо его обработки функцией.
  • remove_columns (Optional[Union[str, List[str]]], по умолчанию None) — Удаляет выбранные столбцы во время выполнения отображения. Столбцы удаляются до обновления примеров с помощью вывода function, то есть если function добавляет столбцы с именами из remove_columns, эти столбцы будут сохранены.
  • keep_in_memory (bool, по умолчанию False) — Держать датасет в памяти, а не записывать его в файл кэша.
  • load_from_cache_file (Optional[bool], по умолчанию True, если кэширование включено) — Если можно определить файл кэша, содержащий текущий результат вычислений из function, используйте его вместо повторного вычисления.
  • cache_file_name (str, необязательный, по умолчанию None) — Укажите имя пути для файла кэша. Используется для хранения результатов вычислений вместо автоматически сгенерированного имени файла кэша.
  • writer_batch_size (int, по умолчанию 1000) — Количество строк на одну операцию записи для модуля записи в файл кэша. Это значение представляет собой хороший компромисс между использованием памяти во время обработки и скоростью обработки. Более высокое значение уменьшает количество обращений к данным, а более низкое значение потребляет меньше временной памяти при выполнении map.
  • features (Optional[datasets.Features], по умолчанию None) — Использовать конкретный объект Features для хранения файла кэша вместо автоматически сгенерированного.
  • disable_nullable (bool, по умолчанию False) — Запрещает использование значений null в таблице.
  • fn_kwargs (Dict, необязательный, по умолчанию None) — Параметры с ключами, передаваемые в function.
  • num_proc (int, необязательный, по умолчанию None) — Количество процессов для использования при многопроцессной обработке. Если значение равно None или 0, многопроцессная обработка не используется, и операция выполняется в основном процессе. Если значение больше 1, для параллельной обработки данных используются один или несколько рабочих процессов. Примечание: функция, передаваемая в map(), должна быть сериализуемой (picklable), чтобы многопроцессная обработка работала корректно (то есть предпочтительнее использовать функции, определенные на верхнем уровне модуля, а не внутри другой функции или класса).
    • Если None или 0, многопоточность не используется, и операция выполняется в основном процессе.
    • If greater than 1, one or multiple worker processes are used to process data in parallel. Note: The function passed to map() must be picklable for multiprocessing to work correctly (i.e., prefer functions defined at the top level of a module, not inside another function or class). suffixtemplate (str): If cache_file_name is specified, then this suffix will be added at the end of the base name of each. Defaults to `”{rank:05d}of{num_proc:05d}”. For example, if cache_file_nameis "processed.arrow", then forrank=1andnum_proc=4, the resulting file would be “processed_00001_of_00004.arrow”` for the default suffix.
  • new_fingerprint (str, необязательный, по умолчанию None) — Новый отпечаток набора данных после преобразования. Если None, новый отпечаток вычисляется с помощью хэша предыдущего отпечатка и аргументов преобразования.
  • desc (str, необязательный, по умолчанию None) — Осмысленное описание, отображаемое рядом с индикатором прогресса при отображении примеров.
  • try_original_type (Optional[bool], по умолчанию True) — Пытается сохранить типы исходных столбцов (например, int32 -> int32). Установите False, если вы хотите всегда выводить новые типы.
  • on_mixed_types (Literal["use_json"], необязательный, по умолчанию None) — Если указано «use_json», для полей со смешанными типами используется тип Json(), то есть для неструктурированных полей, содержащих данные без заранее определённой схемы. В этом случае полю со смешанным типом присваивается значение Json().

    Это позволяет загружать списки со смешанными строками/целыми числами/числами с плавающей точкой, например, или словари с произвольными типами значений.

    Добавлено в 4.7.0

Примените функцию ко всем примерам в таблице (по отдельности или партиями) и обновите таблицу. Если ваша функция возвращает столбец, который уже существует, он будет перезаписан.

Вы можете указать, должна ли функция обрабатываться батчами или нет, с помощью параметра batched:

  • If batched is False, then the function takes 1 example in and should return 1 example. An example is a dictionary, e.g. {"text": "Hello there !"}.
  • If batched is True and batch_size is 1, then the function takes a batch of 1 example as input and can return a batch with 1 or more examples. A batch is a dictionary, e.g. a batch of 1 example is {"text": ["Hello there !"]}.
  • Если True и batch_size равно n > 1, функция принимает на вход батч из n примеров и может вернуть батч из n примеров или произвольного количества примеров. Обратите внимание, что в последнем батче может быть меньше n примеров. Батч — это словарь, например, батч из n примеров — это {"text": ["Hello there !"] * n}.

Если функция асинхронная, то map будет выполнять её параллельно, с максимумом в тысячу одновременных вызовов. Рекомендуется использовать asyncio.Semaphore в вашей функции, если вы хотите задать максимальное количество операций, которые могут выполняться одновременно.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> ds[0:3]["text"]
['Review: compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'Review: the soundtrack alone is worth the price of admission .',
 'Review: rodriguez does a splendid job of racial profiling hollywood style--casting excellent latin actors of all ages--a trend long overdue .']

# process a batch of examples
>>> ds = ds.map(lambda example: tokenizer(example["text"]), batched=True)
# set number of processors
>>> ds = ds.map(add_prefix, num_proc=4)

фильтр

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falsewith_rank: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000keep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonecache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000fn_kwargs: typing.Optional[dict] = Nonenum_proc: typing.Optional[int] = Nonesuffix_template: str = '_{rank:05d}_of_{num_proc:05d}'new_fingerprint: typing.Optional[str] = Nonedesc: typing.Optional[str] = None )

Параметры

  • function (Callable) — Вызываемый объект с одной из следующих сигнатур:
    • function(example: Dict[str, Any]) -> bool если batched=False и with_indices=False и with_rank=False
    • function(example: Dict[str, Any], *extra_args) -> bool, если batched=False и with_indices=True и/или with_rank=True (по одному дополнительному аргументу для каждого)
    • function(batch: Dict[str, List]) -> List[bool] если batched=True и with_indices=False и with_rank=False
    • function(batch: Dict[str, List], *extra_args) -> List[bool], если batched=True и with_indices=True и/или with_rank=True (по одному дополнительному аргументу для каждого)

    Если функция асинхронная, то filter выполнит вашу функцию параллельно. Если функция не указана, по умолчанию используется функция, всегда возвращающая True: lambda x: True.

  • with_indices (bool, по умолчанию False) — Передавать индексы примеров в function. Обратите внимание, что в этом случае подпись function должна быть def function(example, idx[, rank]): ....
  • with_rank (bool, по умолчанию False) — Передавать ранг процесса в function. Обратите внимание, что в этом случае подпись function должна быть def function(example[, idx], rank): ....
  • input_columns (str или List[str], необязательный) — Столбцы, которые передаются в function в качестве позиционных аргументов. Если None, в качестве одного аргумента передаётся dict с соответствием всем отформатированным столбцам.
  • batched (bool, по умолчанию False) — Передавать в function пакет примеров.
  • batch_size (int, необязательный, по умолчанию 1000) — Количество примеров в каждой партии, передаваемой в function, если batched = True. Если batched = False, в function передаётся по одному примеру на партию. Если batch_size <= 0 или batch_size == None, весь набор данных передаётся в function как одна партия.
  • keep_in_memory (bool, по умолчанию False) — Держать датасет в памяти, а не записывать его в файл кэша.
  • load_from_cache_file (Optional[bool], по умолчанию True, если кэширование включено) — Если можно определить файл кэша, содержащий текущий результат вычислений из function, используйте его вместо повторного вычисления.
  • cache_file_name (str, необязательный) — Укажите имя пути для файла кэша. Используется для хранения результатов вычислений вместо автоматически сгенерированного имени файла кэша.
  • writer_batch_size (int, по умолчанию 1000) — Количество строк на одну операцию записи для модуля записи в файл кэша. Это значение представляет собой хороший компромисс между использованием памяти во время обработки и скоростью обработки. Более высокое значение уменьшает количество обращений к данным, а более низкое значение потребляет меньше временной памяти при выполнении map.
  • fn_kwargs (dict, необязательный) — Параметры с ключами, передаваемые в function.
  • num_proc (int, необязательный, по умолчанию None) — Количество процессов для использования при многопроцессорной обработке. Если значение равно None или 0, многопроцессорная обработка не используется, и операция выполняется в основном процессе. Если значение больше 1, для параллельной обработки данных используются один или несколько рабочих процессов. Примечание: функция, передаваемая в map(), должна быть сериализуемой (picklable), чтобы многопроцессорная обработка работала корректно (то есть предпочтительнее использовать функции, определенные на верхнем уровне модуля, а не внутри другой функции или класса).
    • Если None или 0, многопоточность не используется, и операция выполняется в основном процессе.
    • Если значение больше 1, для параллельной обработки данных используются один или несколько рабочих процессов. Примечание: функция, передаваемая в map(), должна быть сериализуемой (picklable), чтобы многопроцессность работала корректно (то есть предпочтительнее использовать функции, определённые на верхнем уровне модуля, а не внутри другой функции или класса).
  • suffix_template (str) — Если указано cache_file_name, этот суффикс будет добавлен в конец базового имени каждого файла. Например, если cache_file_name равно "processed.arrow", а rank = 1 и num_proc = 4, то итоговый файл будет "processed_00001_of_00004.arrow" для суффикса по умолчанию (по умолчанию _{rank:05d}_of_{num_proc:05d}).
  • new_fingerprint (str, необязательный) — Новый отпечаток набора данных после преобразования. Если None, новый отпечаток вычисляется с помощью хэша предыдущего отпечатка и аргументов преобразования.
  • desc (str, необязательный, по умолчанию None) — Осмысленное описание, отображаемое рядом с индикатором прогресса во время фильтрации примеров.

Примените функцию фильтрации ко всем элементам таблицы партиями и обновите таблицу так, чтобы набор данных содержал только примеры, соответствующие функции фильтрации.

Если функция асинхронная, то filter будет выполнять её параллельно, с максимумом в тысячу одновременных вызовов (настраивается). Рекомендуется использовать asyncio.Semaphore в вашей функции, если вы хотите задать максимальное количество операций, которые могут выполняться одновременно.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.filter(lambda x: x["label"] == 1)
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 533
})

select

< >

( indices: Iterablekeep_in_memory: bool = Falseindices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000new_fingerprint: typing.Optional[str] = None )

Параметры

  • indices (range, list, iterable, ndarray or Series) — Диапазон, список или одномерный массив целочисленных индексов для индексирования. Если индексы соответствуют непрерывному диапазону, таблица Arrow просто нарезается. Однако передача списка индексов, которые не являются непрерывными, создает отображение индексов, что значительно менее эффективно, но все же быстрее, чем пересоздание таблицы Arrow из запрошенных строк.
  • keep_in_memory (bool, по умолчанию False) — Хранить отображение индексов в памяти, а не записывать его в файл кэша.
  • indices_cache_file_name (str, необязательный, по умолчанию None) — Укажите имя пути для файла кэша. Используется для хранения соответствия индексов вместо автоматически сгенерированного имени файла кэша.
  • writer_batch_size (int, по умолчанию 1000) — Количество строк на одну операцию записи для модуля записи в файл кэша. Это значение представляет собой хороший компромисс между использованием памяти во время обработки и скоростью обработки. Более высокое значение уменьшает количество обращений к данным, а более низкое значение потребляет меньше временной памяти при выполнении map.
  • new_fingerprint (str, необязательный, по умолчанию None) — Новый отпечаток набора данных после преобразования. Если None, новый отпечаток вычисляется с помощью хэша предыдущего отпечатка и аргументов преобразования.

Создайте новый набор данных, выбрав строки в соответствии со списком/массивом индексов.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.select(range(4))
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 4
})

sort

< >

( column_names: typing.Union[str, collections.abc.Sequence[str]]reverse: typing.Union[bool, collections.abc.Sequence[bool]] = Falsenull_placement: str = 'at_end'keep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Noneindices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000new_fingerprint: typing.Optional[str] = None )

Параметры

  • column_names (Union[str, Sequence[str]]) — Имя(я) столбца(ов), по которому(ым) выполняется сортировка.
  • reverse (Union[bool, Sequence[bool]], по умолчанию False) — Если True, сортировка выполняется по убыванию, а не по возрастанию. Если указано одно значение bool, оно применяется к сортировке всех имён столбцов. В противном случае необходимо предоставить список значений bool с той же длиной и порядком, что и column_names.
  • null_placement (str, по умолчанию at_end) — Размещает значения None в начале, если указано at_start или first или в конце, если указано at_end или last

    Добавлено в 1.14.2

  • keep_in_memory (bool, по умолчанию False) — Хранить отсортированные индексы в памяти, а не записывать их в файл кэша.
  • load_from_cache_file (Optional[bool], по умолчанию True, если кэширование включено) — Если можно определить файл кэша, содержащий отсортированные индексы, используйте его вместо повторного вычисления.
  • indices_cache_file_name (str, необязательный, по умолчанию None) — Укажите имя пути для файла кэша. Используется для хранения отсортированных индексов вместо автоматически сгенерированного имени файла кэша.
  • writer_batch_size (int, по умолчанию 1000) — Количество строк на одну операцию записи для модуля записи кэш-файла. Более высокое значение приводит к меньшим кэш-файлам, более низкое — к меньшему потреблению временной памяти.
  • new_fingerprint (str, необязательный, по умолчанию None) — Новый отпечаток набора данных после преобразования. Если None, новый отпечаток вычисляется с помощью хэша предыдущего отпечатка и аргументов преобразования

Создайте новый набор данных, отсортированный по одному или нескольким столбцам.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset('cornell-movie-review-data/rotten_tomatoes', split='validation')
>>> ds['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>> sorted_ds = ds.sort('label')
>>> sorted_ds['label'][:10]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> another_sorted_ds = ds.sort(['label', 'text'], reverse=[True, False])
>>> another_sorted_ds['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

shuffle

< >

( seed: typing.Optional[int] = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonekeep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Noneindices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000new_fingerprint: typing.Optional[str] = None )

Параметры

  • seed (int, необязательный) — Значение seed для инициализации стандартного BitGenerator, если generator=None. Если указано None, то непредсказуемая энтропия будет получена из ОС. Если передано значение типа int или array_like[ints], оно будет передано в SeedSequence для вывода начального состояния BitGenerator.
  • generator (numpy.random.Generator, необязательный) — Генератор случайных чисел Numpy, используемый для вычисления перестановки строк набора данных. Если generator=None (по умолчанию), используется np.random.default_rng (генератор битов по умолчанию (PCG64) в NumPy).
  • keep_in_memory (bool, по умолчанию False) — Хранить перемешанные индексы в памяти, а не записывать их в файл кэша.
  • load_from_cache_file (Optional[bool], по умолчанию True, если кэширование включено) — Если можно определить файл кэша, содержащий перемешанные индексы, используйте его вместо повторного вычисления.
  • indices_cache_file_name (str, необязательный) — Укажите имя пути для файла кэша. Используется для хранения перемешанных индексов вместо автоматически сгенерированного имени файла кэша.
  • writer_batch_size (int, по умолчанию 1000) — Количество строк на одну операцию записи для модуля записи в файл кэша. Это значение представляет собой хороший компромисс между использованием памяти во время обработки и скоростью обработки. Более высокое значение уменьшает количество обращений к данным, а более низкое значение потребляет меньше временной памяти при выполнении map.
  • new_fingerprint (str, необязательный, по умолчанию None) — Новый отпечаток набора данных после преобразования. Если None, новый отпечаток вычисляется с помощью хэша предыдущего отпечатка и аргументов преобразования.

Создайте новый Dataset, в котором строки перемешаны.

В настоящее время перемешивание использует генераторы случайных чисел numpy. Вы можете передать экземпляр NumPy BitGenerator для использования или seed для инициализации генератора случайных чисел по умолчанию в NumPy (PCG64).

Shuffling берёт список индексов [0:len(my_dataset)] и перемешивает его, чтобы создать отображение индексов. Однако как только у вашего Dataset появляется отображение индексов, скорость может снизиться в 10 раз. Это происходит из-за дополнительного шага получения индекса строки для чтения с использованием отображения индексов, и, что самое главное, вы больше не читаете непрерывные блоки данных. Чтобы восстановить скорость, вам нужно будет снова переписать весь набор данных на диск с помощью Dataset.flatten_indices(), что удаляет отображение индексов.

В зависимости от размера набора данных это может занять много времени:

my_dataset[0]  # fast
my_dataset = my_dataset.shuffle(seed=42)
my_dataset[0]  # up to 10x slower
my_dataset = my_dataset.flatten_indices()  # rewrite the shuffled dataset on disk as contiguous chunks of data
my_dataset[0]  # fast again

В этом случае мы рекомендуем перейти на IterableDataset и использовать его быстрый метод приблизительного перемешивания IterableDataset.shuffle().

Он лишь перемешивает порядок фрагментов и добавляет буфер перемешивания к вашему набору данных, что позволяет поддерживать оптимальную скорость работы с ним:

my_iterable_dataset = my_dataset.to_iterable_dataset(num_shards=128)
for example in enumerate(my_iterable_dataset):  # fast
    pass

shuffled_iterable_dataset = my_iterable_dataset.shuffle(seed=42, buffer_size=100)

for example in enumerate(shuffled_iterable_dataset):  # as fast as before
    pass

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

# set a seed
>>> shuffled_ds = ds.shuffle(seed=42)
>>> shuffled_ds['label'][:10]
[1, 0, 1, 1, 0, 0, 0, 0, 0, 0]

пропустить

< >

( n: int )

Параметры

  • n (int) — Количество элементов, которые нужно пропустить.

Создайте новый Dataset, который пропускает первые n элементов.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]
>>> ds = ds.skip(1)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'if you sometimes like to go to the movies to have fun , wasabi is a good place to start .'}]

take

< >

( n: int )

Параметры

  • n (int) — Количество элементов для извлечения.

Создайте новый Dataset только с первыми n элементами.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> small_ds = ds.take(2)
>>> list(small_ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'}]

train_test_split

< >

( test_size: typing.Union[float, int, NoneType] = Nonetrain_size: typing.Union[float, int, NoneType] = Noneshuffle: bool = Truestratify_by_column: typing.Optional[str] = Noneseed: typing.Optional[int] = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonekeep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonetrain_indices_cache_file_name: typing.Optional[str] = Nonetest_indices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000train_new_fingerprint: typing.Optional[str] = Nonetest_new_fingerprint: typing.Optional[str] = None )

Параметры

  • test_size (Union[float, int, None], необязательный) — Размер тестовой выборки Если float, значение должно находиться в диапазоне от 0.0 до 1.0 и указывать долю датасета, попадающую в тестовую выборку. Если int, указывает абсолютное количество тестовых образцов. Если None, значение устанавливается как дополнение до размера обучающей выборки. Если train_size также равно None, оно будет установлено в 0.25.
  • train_size (Union[float, int, None], необязательный) — Размер обучающей выборки Если float, значение должно находиться в диапазоне от 0.0 до 1.0 и указывать долю датасета, включаемую в обучающую выборку. Если int, указывает абсолютное количество обучающих примеров. Если None, значение автоматически устанавливается как дополнение к размеру тестовой выборки.
  • shuffle (bool, необязательный, по умолчанию True) — Следует ли перемешивать данные перед разделением.
  • stratify_by_column (str, необязательный, по умолчанию None) — Имя столбца с метками, используемого для стратифицированного разбиения данных.
  • seed (int, необязательный) — Значение seed для инициализации стандартного BitGenerator, если generator=None. Если указано None, то непредсказуемая энтропия будет получена из ОС. Если передано значение типа int или array_like[ints], оно будет передано в SeedSequence для вывода начального состояния BitGenerator.
  • generator (numpy.random.Generator, необязательный) — Генератор случайных чисел Numpy, используемый для вычисления перестановки строк набора данных. Если generator=None (по умолчанию), используется np.random.default_rng (генератор битов по умолчанию (PCG64) в NumPy).
  • keep_in_memory (bool, по умолчанию False) — Хранить индексы разбиений в памяти, а не записывать их в файл кэша.
  • load_from_cache_file (Optional[bool], по умолчанию True, если кэширование включено) — Если можно определить файл кэша, содержащий индексы разбиений, используйте его вместо повторного вычисления.
  • train_cache_file_name (str, необязательный) — Укажите имя пути для файла кэша. Используется для хранения индексов обучающей выборки вместо автоматически сгенерированного имени файла кэша.
  • test_cache_file_name (str, необязательный) — Укажите имя пути для файла кэша. Используется для хранения индексов тестовой выборки вместо автоматически сгенерированного имени файла кэша.
  • writer_batch_size (int, по умолчанию 1000) — Количество строк на одну операцию записи для модуля записи в файл кэша. Это значение представляет собой хороший компромисс между использованием памяти во время обработки и скоростью обработки. Более высокое значение уменьшает количество обращений к данным, а более низкое значение потребляет меньше временной памяти при выполнении map.
  • train_new_fingerprint (str, необязательный, по умолчанию None) — Новый отпечаток (fingerprint) обучающей выборки после преобразования. Если None, новый отпечаток вычисляется с помощью хэша предыдущего отпечатка и аргументов преобразования
  • test_new_fingerprint (str, необязательный, по умолчанию None) — Новый отпечаток тестового набора данных после преобразования. Если None, новый отпечаток вычисляется с помощью хэша предыдущего отпечатка и аргументов преобразования

Возвращает словарь (datasets.DatasetDict) с двумя случайными подмножествами для обучения и тестирования (train и test — разбиения Dataset). Разбиения создаются из набора данных в соответствии с параметрами test_size, train_size и shuffle.

Этот метод похож на train_test_split из scikit-learn.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.train_test_split(test_size=0.2, shuffle=True)
DatasetDict({
    train: Dataset({
        features: ['text', 'label'],
        num_rows: 852
    })
    test: Dataset({
        features: ['text', 'label'],
        num_rows: 214
    })
})

# set a seed
>>> ds = ds.train_test_split(test_size=0.2, seed=42)

# stratified split
>>> ds = load_dataset("stanfordnlp/imdb",split="train")
Dataset({
    features: ['text', 'label'],
    num_rows: 25000
})
>>> ds = ds.train_test_split(test_size=0.2, stratify_by_column="label")
DatasetDict({
    train: Dataset({
        features: ['text', 'label'],
        num_rows: 20000
    })
    test: Dataset({
        features: ['text', 'label'],
        num_rows: 5000
    })
})

shard

< >

( num_shards: intindex: intcontiguous: bool = Truekeep_in_memory: bool = Falseindices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000 )

Параметры

  • num_shards (int) — Количество шардов, на которые нужно разделить набор данных.
  • index (int) — Какой шунк выбрать и вернуть.
  • contiguous — (bool, по умолчанию True): Определяет, следует ли выбирать непрерывные блоки индексов для шардов.
  • keep_in_memory (bool, по умолчанию False) — Держать датасет в памяти, а не записывать его в файл кэша.
  • indices_cache_file_name (str, необязательный) — Укажите имя пути для файла кэша. Используется для хранения индексов каждого шарда вместо автоматически сгенерированного имени файла кэша.
  • writer_batch_size (int, по умолчанию 1000) — Это касается только отображения индексов. Количество индексов на операцию записи для модуля записи файла кэша. Это значение представляет собой хороший компромисс между использованием памяти во время обработки и скоростью обработки. Более высокое значение уменьшает количество обращений при обработке, а более низкое значение потребляет меньше временной памяти во время выполнения map.

Возвращает index-й фрагмент из набора данных, разделённого на num_shards частей.

Это детерминированное разбиение на части. dataset.shard(n, i) делит набор данных на непрерывные фрагменты, поэтому после обработки их легко снова объединить. Если len(dataset) % n == l, то первые l наборов данных имеют длину (len(dataset) // n) + 1, а остальные — длину (len(dataset) // n). datasets.concatenate_datasets([dset.shard(n, i) for i in range(n)]) возвращает набор данных с тем же порядком элементов, что и в исходном.

Примечание: n должно быть меньше или равно количеству элементов в наборе данных len(dataset).

С другой стороны, dataset.shard(n, i, contiguous=False) содержит все элементы набора данных, для которых индекс по модулю n = i.

Убедитесь, что операция разделения на шарды выполняется до применения любого оператора, использующего случайность (например, shuffle). Лучше всего использовать оператор разделения на шарды на раннем этапе конвейера обработки данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 1066
})
>>> ds = ds.shard(num_shards=2, index=0)
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 533
})

repeat

< >

( num_times: int )

Параметры

  • num_times (int) — Количество повторений набора данных.

Создайте новый Dataset, который повторяет базовый набор данных num_times раз.

Как и в случае с itertools.repeat, повторение один раз просто возвращает полный набор данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds = ds.take(2).repeat(2)
>>> list(ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]

to_tf_dataset

< >

( batch_size: typing.Optional[int] = Nonecolumns: typing.Union[str, list[str], NoneType] = Noneshuffle: bool = Falsecollate_fn: typing.Optional[typing.Callable] = Nonedrop_remainder: bool = Falsecollate_fn_args: typing.Optional[dict[str, typing.Any]] = Nonelabel_cols: typing.Union[str, list[str], NoneType] = Noneprefetch: bool = Truenum_workers: int = 0num_test_batches: int = 20 )

Параметры

  • batch_size (int, необязательный) — Размер батчей, загружаемых из набора данных. По умолчанию None, что означает, что набор данных не будет разбит на батчи, но возвращенный набор данных можно разбить на батчи позже с помощью tf_dataset.batch(batch_size).
  • columns (List[str] или str, необязательный) — Столбец(ы) датасета для загрузки в tf.data.Dataset. Можно использовать имена столбцов, создаваемые collate_fn, которые отсутствуют в исходном датасете.
  • shuffle(bool, по умолчанию False) — Перемешивает порядок элементов датасета при загрузке. Рекомендуется True для обучения, False для валидации/оценки.
  • drop_remainder(bool, по умолчанию False) — Отбрасывает последний неполный батч при загрузке. Гарантирует, что все батчи, возвращаемые набором данных, будут иметь одинаковую длину по измерению батча.
  • collate_fn(Callable, необязательный) — Функция или вызываемый объект (например, DataCollator), который объединяет списки образцов в батч.
  • collate_fn_args (Dict, необязательный) — Необязательный dict с аргументами по именам, которые передаются в collate_fn.
  • label_cols (List[str] или str, по умолчанию None) — Столбец(ы) набора данных, которые загружаются как метки. Обратите внимание, что многие модели вычисляют потерю самостоятельно, а не через Keras, в этом случае передача меток здесь необязательна, при условии что они присутствуют во входных columns.
  • prefetch (bool, по умолчанию True) — Указывает, следует ли запускать загрузчик данных в отдельном потоке и поддерживать небольшой буфер батчей для обучения. Повышает производительность, позволяя загружать данные в фоне, пока модель обучается.
  • num_workers (int, по умолчанию 0) — Количество рабочих процессов для загрузки набора данных.
  • num_test_batches (int, по умолчанию 20) — Количество батчей, используемых для определения сигнатуры вывода набора данных. Чем больше это число, тем точнее будет сигнатура, но тем дольше займёт создание набора данных.

Создайте tf.data.Dataset на основе базового Dataset. Этот tf.data.Dataset будет загружать и формировать батчи из Dataset и подходит для передачи в методы, такие как model.fit() или model.predict(). Датасет будет возвращать dicts как для входных данных, так и для меток, если только dict не содержит единственный ключ, в этом случае вместо него возвращается «сырой» tf.Tensor.

Пример:

>>> ds_train = ds["train"].to_tf_dataset(
...    columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'],
...    shuffle=True,
...    batch_size=16,
...    collate_fn=data_collator,
... )

push_to_hub

< >

( repo_id: strconfig_name: str = 'default'set_default: typing.Optional[bool] = Nonesplit: typing.Optional[str] = Nonedata_dir: typing.Optional[str] = Nonecommit_message: typing.Optional[str] = Nonecommit_description: typing.Optional[str] = Noneprivate: typing.Optional[bool] = Nonetoken: typing.Optional[str] = Nonerevision: typing.Optional[str] = Nonecreate_pr: typing.Optional[bool] = Falsemax_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[int] = Noneembed_external_files: bool = Truenum_proc: typing.Optional[int] = None )

Параметры

  • repo_id (str) — Идентификатор репозитория, в который выполняется загрузка, в следующем формате: <user>/<dataset_name> или <org>/<dataset_name>. Также принимает <dataset_name>, в этом случае используется пространство имён текущего пользователя.

    Также это может быть расположение внутри бакета, например, buckets/<user_or_org>/<bucket_name>/...

  • config_name (str, по умолчанию “default”) — Имя конфигурации (или подмножества) набора данных. По умолчанию “default”.
  • set_default (bool, необязательный) — Указывает, следует ли установить эту конфигурацию в качестве конфигурации по умолчанию. В противном случае конфигурацией по умолчанию является та, что называется «default».
  • split (str, optional) — Имя сплита, которое будет присвоено этому набору данных. По умолчанию self.split.
  • data_dir (str, необязательный) — Имя каталога, который будет содержать загруженные файлы данных. По умолчанию используется config_name , если он отличается от «default», иначе «data».

    Добавлено в 2.17.0

  • commit_message (str, необязательный) — Сообщение для коммита при отправке. По умолчанию — "Upload dataset".
  • commit_description (str, необязательный) — Описание коммита, который будет создан. Кроме того, описание PR, если PR будет создан (create_pr равно True).

    Добавлено в 2.16.0

  • private (bool, optional) — Определяет, следует ли сделать репозиторий приватным. Если None (по умолчанию), репозиторий будет публичным, если только по умолчанию для организации не задан приватный режим. Это значение игнорируется, если репозиторий уже существует.
  • token (str, необязательный) — Необязательный токен аутентификации для Hugging Face Hub. Если токен не передан, по умолчанию будет использован токен, сохранённый локально при входе с помощью hf auth login. Если токен не передан и пользователь не вошёл в систему, будет выброшена ошибка.
  • revision (str, необязательный) — Ветка, в которую будут загружены файлы. По умолчанию — "main" ветка.

    Добавлено в 2.15.0

  • create_pr (bool, необязательный, по умолчанию False) — Создавать ли PR с загруженными файлами или коммитить напрямую.

    Добавлено в 2.15.0

  • max_shard_size (int или str, необязательный, по умолчанию "500MB") — Максимальный размер шардов набора данных, загружаемых на хаб. Если значение указано в виде строки, оно должно состоять из цифр, за которыми следует единица измерения (например, "5MB").
  • num_shards (int, необязательный) — Количество шардов для записи. По умолчанию количество шардов зависит от max_shard_size.

    Добавлено в 2.8.0

  • embed_external_files (bool, по умолчанию True) — Включает ли встраивание байтов файлов в шарды. В частности, перед push для полей типа:
    • Audio и Image: удалите информацию о локальном пути и вставьте содержимое файлов в файлы Parquet.
  • num_proc (int, необязательный, по умолчанию None) — Количество процессов при подготовке и загрузке набора данных. Это полезно, если набор данных состоит из множества образцов или медиафайлов для встраивания. Использует контекст «spawn» для работы с hf_xet, rust-клиентом для быстрой загрузки на HF. Многопроцессорность по умолчанию отключена.

    Добавлено в 4.0.0

Выгружает набор данных на хаб в формате Parquet. Набор данных выгружается с помощью HTTP-запросов, поэтому не требуется установка git или git-lfs.

Полученные файлы Parquet по умолчанию являются самодостаточными. Если ваш набор данных содержит данные Image, Audio или Video, файлы Parquet будут хранить байты ваших изображений или аудиофайлов. Вы можете отключить это, установив embed_external_files в False.

Пример:

>>> dataset.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset.push_to_hub("<organization>/<dataset_id>", num_shards=1024)

Если ваш набор данных содержит несколько разбиений (например, train/validation/test):

>>> train_dataset.push_to_hub("<organization>/<dataset_id>", split="train")
>>> val_dataset.push_to_hub("<organization>/<dataset_id>", split="validation")
>>> # later
>>> dataset = load_dataset("<organization>/<dataset_id>")
>>> train_dataset = dataset["train"]
>>> val_dataset = dataset["validation"]

Если вы хотите добавить новую конфигурацию (или подмножество) к набору данных (например, если набор данных содержит несколько задач/версий/языков):

>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")

save_to_disk

< >

( dataset_path: typing.Union[str, bytes, os.PathLike]max_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[int] = Nonenum_proc: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None )

Параметры

  • dataset_path (path-like) — Путь (например, dataset/train) или удалённый URI (например, s3://my-bucket/dataset/train) каталога набора данных, в котором будет сохранён набор данных.
  • max_shard_size (int or str, необязательный, по умолчанию "500MB") — Максимальный размер фрагментов набора данных, сохраняемых в файловую систему. Если значение указано в виде строки, оно должно состоять из цифр, за которыми следует единица измерения (например, "50MB").
  • num_shards (int, необязательный) — Количество шардов для записи. По умолчанию количество шардов зависит от max_shard_size и num_proc.

    Добавлено в 2.8.0

  • num_proc (int, необязательный) — Количество процессов при загрузке и локальном создании набора данных. По умолчанию многопоточность отключена.

    Добавлено в 2.8.0

  • storage_options (dict, необязательный) — Пары ключ/значение, передаваемые в файловую систему, если она используется.

    Добавлено в 2.8.0

Сохраняет набор данных в каталог набора данных или в файловую систему с использованием любой реализации fsspec.spec.AbstractFileSystem.

Для данных Image, Audio и Video:

Все данные Image(), Audio() и Video() хранятся в файлах arrow. Если вы хотите хранить пути или URL, используйте тип Value(“string”).

Пример:

>>> ds.save_to_disk("path/to/dataset/directory")
>>> ds.save_to_disk("path/to/dataset/directory", max_shard_size="1GB")
>>> ds.save_to_disk("path/to/dataset/directory", num_shards=1024)

load_from_disk

< >

( dataset_path: typing.Union[str, bytes, os.PathLike]keep_in_memory: typing.Optional[bool] = Nonestorage_options: typing.Optional[dict] = None ) → Dataset or DatasetDict

Параметры

  • dataset_path (path-like) — Путь (например, "dataset/train") или удалённый URI (например, "s3//my-bucket/dataset/train") каталога набора данных, из которого будет загружен набор данных.
  • keep_in_memory (bool, по умолчанию None) — Скопировать ли датасет в оперативную память. Если None, датасет не будет скопирован в оперативную память, если только это явно не включено путём установки datasets.config.IN_MEMORY_MAX_SIZE в ненулевое значение. Подробнее см. в разделе улучшение производительности.
  • storage_options (dict, необязательный) — Пары ключ/значение, передаваемые в файловую систему, если она используется.

    Добавлено в 2.8.0

Возвращает

Dataset или DatasetDict

  • Если dataset_path — это путь к каталогу набора данных, то запрашиваемый набор данных.
  • Если dataset_path — это путь к каталогу словаря датасета, возвращается datasets.DatasetDict с каждым сплитом.

Загружает набор данных, ранее сохранённый с помощью save_to_disk, из каталога набора данных или из файловой системы с использованием любой реализации fsspec.spec.AbstractFileSystem.

Пример:

>>> ds = load_from_disk("path/to/dataset/directory")

flatten_indices

< >

( keep_in_memory: bool = Falsecache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000features: typing.Optional[datasets.features.features.Features] = Nonedisable_nullable: bool = Falsenum_proc: typing.Optional[int] = Nonenew_fingerprint: typing.Optional[str] = None )

Параметры

  • keep_in_memory (bool, по умолчанию False) — Держать датасет в памяти, а не записывать его в файл кэша.
  • cache_file_name (str, необязательный, по умолчанию None) — Укажите имя пути для файла кэша. Используется для хранения результатов вычислений вместо автоматически сгенерированного имени файла кэша.
  • writer_batch_size (int, по умолчанию 1000) — Количество строк на одну операцию записи для модуля записи в файл кэша. Это значение представляет собой хороший компромисс между использованием памяти во время обработки и скоростью обработки. Более высокое значение уменьшает количество обращений к данным, а более низкое значение потребляет меньше временной памяти при выполнении map.
  • features (Optional[datasets.Features], по умолчанию None) — Использовать конкретный объект Features для хранения файла кэша вместо автоматически сгенерированного.
  • disable_nullable (bool, по умолчанию False) — Разрешает значения null в таблице.
  • num_proc (int, необязательный параметр, по умолчанию None) — Максимальное количество процессов при генерации кэша. Уже закэшированные фрагменты загружаются последовательно
  • new_fingerprint (str, необязательный, по умолчанию None) — Новый отпечаток набора данных после преобразования. Если None, новый отпечаток вычисляется с помощью хэша предыдущего отпечатка и аргументов преобразования

Создайте и закэшируйте новый Dataset, выровняв отображение индексов.

to_csv

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonenum_proc: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**to_csv_kwargs ) → int

Параметры

  • path_or_buf (PathLike или FileOrBuffer) — путь к файлу (например, file.csv), удалённый URI (например, hf://datasets/username/my_dataset_name/data.csv) или объект BinaryIO, в который набор данных будет сохранён в указанном формате.
  • batch_size (int, необязательный) — Размер батча, который загружается в память и записывается за один раз. По умолчанию datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • num_proc (int, необязательный) — Количество процессов для многопроцессной обработки. По умолчанию многопроцессная обработка не используется. В этом случае batch_size по умолчанию принимает значение datasets.config.DEFAULT_MAX_BATCH_SIZE, но при наличии достаточных вычислительных ресурсов вы можете увеличить его в 5 или 10 раз.
  • storage_options (dict, необязательный) — Пары ключ/значение, передаваемые в файловую систему, если она используется.

    Добавлено в 2.19.0

  • **to_csv_kwargs (дополнительные именованные аргументы) — Параметры для передачи в pandas pandas.DataFrame.to_csv.

    Изменено в 2.10.0

    Теперь, если index не указан, по умолчанию он принимает значение False.

    Если вы хотите записать индекс, передайте index=True и также задайте имя для столбца индекса, передав index_label.

Возвращает

int

Количество записанных символов или байтов.

Экспортирует набор данных в csv

Пример:

>>> ds.to_csv("path/to/dataset/directory")

to_pandas

< >

( batch_size: typing.Optional[int] = Nonebatched: bool = False )

Параметры

  • batch_size (int, необязательный) — Размер (количество строк) батчей, если batched равно True. По умолчанию — datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • batched (bool) — Установите True, чтобы вернуть генератор, выдающий датасет батчами по batch_size строк. По умолчанию False (возвращает весь датасет сразу).

Возвращает набор данных в виде pandas.DataFrame. Также может возвращать генератор для больших наборов данных.

Пример:

>>> ds.to_pandas()

to_dict

< >

( batch_size: typing.Optional[int] = Nonebatched: bool = False )

Параметры

  • batch_size (int, необязательный) — размер (количество строк) батчей, если batched равно True. По умолчанию — datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • batched (bool) — Установите True, чтобы вернуть генератор, выдающий датасет батчами по batch_size строк. По умолчанию False (возвращает весь датасет сразу).

Возвращает набор данных в виде словаря Python. Также может возвращать генератор для больших наборов данных.

Пример:

>>> ds.to_dict()

to_json

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonenum_proc: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**to_json_kwargs ) → int

Параметры

  • path_or_buf (PathLike или FileOrBuffer) — путь к файлу (например, file.json), удалённый URI (например, hf://datasets/username/my_dataset_name/data.json) или объект BinaryIO, в который набор данных будет сохранён в указанном формате.
  • batch_size (int, необязательный) — Размер батча, который загружается в память и записывается за один раз. По умолчанию datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • num_proc (int, необязательный) — Количество процессов для многопроцессной обработки. По умолчанию многопроцессная обработка не используется. В этом случае batch_size по умолчанию принимает значение datasets.config.DEFAULT_MAX_BATCH_SIZE, но при наличии достаточных вычислительных ресурсов его можно увеличить в 5 или 10 раз.
  • storage_options (dict, необязательный) — Пары ключ/значение, передаваемые в файловую систему, если она используется.

    Добавлено в 2.19.0

  • **to_json_kwargs (additional keyword arguments) — Parameters to pass to pandas’s pandas.DataFrame.to_json. Default arguments are lines=True and `orient=“records”.

    Изменено в 2.11.0

    Параметр index по умолчанию принимает значение False, если orient равен "split" или "table".

    Если вы хотите записать индекс, передайте index=True.

Возвращает

int

Количество записанных символов или байтов.

Экспортируйте набор данных в JSON Lines или JSON.

Формат вывода по умолчанию — JSON Lines. Чтобы экспортировать в JSON, передайте аргумент lines=False и нужный orient.

Пример:

>>> ds.to_json("path/to/dataset/directory/filename.jsonl")

to_parquet

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**parquet_writer_kwargs ) → int

Параметры

  • path_or_buf (PathLike или FileOrBuffer) — путь к файлу (например, file.parquet), удалённый URI (например, hf://datasets/username/my_dataset_name/data.parquet) или объект BinaryIO, в который набор данных будет сохранён в указанном формате.
  • batch_size (int, необязательный) — Размер батча, который загружается в память и записывается за один раз. По умолчанию настраивается на группы строк с максимальным размером в байтах без сжатия «100MB», определённым в datasets.config.MAX_ROW_GROUP_SIZE.
  • storage_options (dict, необязательный) — Пары ключ/значение, передаваемые в файловую систему, если она используется.

    Добавлено в 2.19.0

  • **parquet_writer_kwargs (дополнительные именованные аргументы) — Параметры для передачи в pyarrow.parquet.ParquetWriter PyArrow.

Возвращает

int

Количество записанных символов или байтов.

Экспортирует набор данных в parquet

Пример:

>>> ds.to_parquet("path/to/dataset/directory")

to_sql

< >

( name: strcon: typing.Union[str, ForwardRef('sqlalchemy.engine.Connection'), ForwardRef('sqlalchemy.engine.Engine'), ForwardRef('sqlite3.Connection')]batch_size: typing.Optional[int] = Nonenum_proc: typing.Optional[int] = None**sql_writer_kwargs ) → int

Параметры

  • name (str) — Имя таблицы SQL.
  • con (str или sqlite3.Connection или sqlalchemy.engine.Connection или sqlalchemy.engine.Connection) — строка URI или объект соединения SQLite3/SQLAlchemy, используемый для записи в базу данных.
  • batch_size (int, необязательный) — Размер батча, который загружается в память и записывается за один раз. По умолчанию datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • num_proc (int, необязательный) — Количество процессов для многопроцессной обработки. По умолчанию многопроцессная обработка не используется. В этом случае batch_size по умолчанию принимает значение datasets.config.DEFAULT_MAX_BATCH_SIZE, но при наличии достаточных вычислительных ресурсов его можно увеличить в 5 или 10 раз.
  • **sql_writer_kwargs (дополнительные именованные аргументы) — Параметры для передачи в pandas pandas.DataFrame.to_sql.

    Изменено в 2.11.0

    Теперь, если index не указан, по умолчанию он принимает значение False.

    Если вы хотите записать индекс, передайте index=True и также задайте имя для столбца индекса, передав index_label.

Возвращает

int

Количество записанных записей.

Экспортирует набор данных в SQL-базу данных.

Пример:

>>> # con provided as a connection URI string
>>> ds.to_sql("data", "sqlite:///my_own_db.sql")
>>> # con provided as a sqlite3 connection object
>>> import sqlite3
>>> con = sqlite3.connect("my_own_db.sql")
>>> with con:
...     ds.to_sql("data", con)

to_iterable_dataset

< >

( num_shards: typing.Optional[int] = 1 )

Параметры

  • num_shards (int, по умолчанию 1) — Количество шардов, определяемых при создании итерируемого набора данных. Это особенно полезно для больших наборов данных, чтобы обеспечить корректное перемешивание, а также для быстрого параллельного чтения с помощью PyTorch DataLoader или в распределённых средах. Шарды определяются с помощью datasets.Dataset.shard(): этот метод просто разбивает данные на части, не записывая ничего на диск.

Получить datasets.IterableDataset из набора данных в стиле map datasets.Dataset. Это эквивалентно загрузке набора данных в режиме потоковой обработки с помощью datasets.load_dataset(), но значительно быстрее, поскольку данные передаются из локальных файлов.

В отличие от наборов данных map-style, итерируемые наборы данных являются ленивыми и допускают только итерацию (например, с помощью цикла for). Поскольку они читаются последовательно в циклах обучения, итерируемые наборы данных значительно быстрее наборов данных map-style. Все преобразования, применяемые к итерируемым наборам данных, такие как фильтрация или обработка, выполняются на лету при начале итерации по набору данных.

Тем не менее, перемешать итерируемое датасет можно с помощью datasets.IterableDataset.shuffle(). Это быстрое приближённое перемешивание, которое работает лучше всего, если у вас несколько шардов и вы указываете достаточно большой размер буфера.

Чтобы добиться максимальной скорости, убедитесь, что в вашем наборе данных нет отображения индексов. Если оно есть, данные не читаются последовательно, что иногда может приводить к снижению производительности. Вы можете использовать ds = ds.flatten_indices(), чтобы записать ваш набор данных в виде последовательных блоков данных и получить оптимальную скорость перед переходом к итерируемому набору данных.

Пример:

Базовое использование:

>>> ids = ds.to_iterable_dataset()
>>> for example in ids:
...     pass

С ленивой фильтрацией и обработкой:

>>> ids = ds.to_iterable_dataset()
>>> ids = ids.filter(filter_fn).map(process_fn)  # will filter and process on-the-fly when you start iterating over the iterable dataset
>>> for example in ids:
...     pass

С шардированием для эффективного перемешивания:

>>> ids = ds.to_iterable_dataset(num_shards=64)  # the dataset is split into 64 shards to be iterated over
>>> ids = ids.shuffle(buffer_size=10_000)  # will shuffle the shards order and use a shuffle buffer for fast approximate shuffling when you start iterating
>>> for example in ids:
...     pass

С использованием PyTorch DataLoader:

>>> import torch
>>> ids = ds.to_iterable_dataset(num_shards=64)
>>> ids = ids.filter(filter_fn).map(process_fn)
>>> dataloader = torch.utils.data.DataLoader(ids, num_workers=4)  # will assign 64 / 4 = 16 shards to each worker to load, filter and process when you start iterating
>>> for example in ids:
...     pass

С PyTorch DataLoader и перемешиванием:

>>> import torch
>>> ids = ds.to_iterable_dataset(num_shards=64)
>>> ids = ids.shuffle(buffer_size=10_000)  # will shuffle the shards order and use a shuffle buffer when you start iterating
>>> dataloader = torch.utils.data.DataLoader(ids, num_workers=4)  # will assign 64 / 4 = 16 shards from the shuffled list of shards to each worker when you start iterating
>>> for example in ids:
...     pass

В распределённой конфигурации, такой как PyTorch DDP с PyTorch DataLoader и перемешиванием

>>> from datasets.distributed import split_dataset_by_node
>>> ids = ds.to_iterable_dataset(num_shards=512)
>>> ids = ids.shuffle(buffer_size=10_000, seed=42)  # will shuffle the shards order and use a shuffle buffer when you start iterating
>>> ids = split_dataset_by_node(ds, world_size=8, rank=0)  # will keep only 512 / 8 = 64 shards from the shuffled lists of shards when you start iterating
>>> dataloader = torch.utils.data.DataLoader(ids, num_workers=4)  # will assign 64 / 4 = 16 shards from this node's list of shards to each worker when you start iterating
>>> for example in ids:
...     pass

С перемешиванием и несколькими эпохами:

>>> ids = ds.to_iterable_dataset(num_shards=64)
>>> ids = ids.shuffle(buffer_size=10_000, seed=42)  # will shuffle the shards order and use a shuffle buffer when you start iterating
>>> for epoch in range(n_epochs):
...     ids.set_epoch(epoch)  # will use effective_seed = seed + epoch to shuffle the shards and for the shuffle buffer when you start iterating
...     for example in ids:
...         pass
Feel free to also use `IterableDataset.set_epoch()` when using a PyTorch DataLoader or in distributed setups.

add_faiss_index

< >

( column: strindex_name: typing.Optional[str] = Nonedevice: typing.Optional[int] = Nonestring_factory: typing.Optional[str] = Nonemetric_type: typing.Optional[int] = Nonecustom_index: typing.Optional[ForwardRef('faiss.Index')] = Nonebatch_size: int = 1000train_size: typing.Optional[int] = Nonefaiss_verbose: bool = Falsedtype = <class 'numpy.float32'> )

Параметры

  • column (str) — Столбец векторов, которые нужно добавить в индекс.
  • index_name (str, необязательный) — index_name/идентификатор индекса. Это index_name, который используется для вызова get_nearest_examples() или search(). По умолчанию соответствует column.
  • device (Union[int, List[int]], необязательный) — Если передано положительное целое число, это индекс используемого GPU. Если передано отрицательное целое число, используются все GPU. Если передан список положительных целых чисел, выполняется только на указанных GPU. По умолчанию используется CPU.
  • string_factory (str, optional) — Передаётся в фабрику индексов Faiss для создания индекса. Класс индекса по умолчанию — IndexFlat.
  • metric_type (int, необязательный) — Тип метрики. Например: faiss.METRIC_INNER_PRODUCT или faiss.METRIC_L2.
  • custom_index (faiss.Index, необязательный) — Пользовательский индекс Faiss, который вы уже создали и настроили под свои задачи.
  • batch_size (int) — Размер батча, используемого при добавлении векторов в FaissIndex. Значение по умолчанию — 1000.

    Добавлено в 2.4.0

  • train_size (int, необязательный) — Если для индекса требуется шаг обучения, указывает, сколько векторов будет использовано для обучения индекса.
  • faiss_verbose (bool, по умолчанию False) — Включает подробный вывод для индекса Faiss.
  • dtype (data-type) — Тип данных (dtype) индексируемых массивов numpy. По умолчанию np.float32.

Добавьте плотный индекс с помощью Faiss для быстрого поиска. По умолчанию индекс строится по векторам указанной колонки. Вы можете указать device, если хотите выполнять работу на GPU (device должен быть индексом GPU). Подробнее о Faiss можно узнать здесь:

Пример:

>>> ds = datasets.load_dataset('community-datasets/crime_and_punish', split='train')
>>> ds_with_embeddings = ds.map(lambda example: {'embeddings': embed(example['line']}))
>>> ds_with_embeddings.add_faiss_index(column='embeddings')
>>> # query
>>> scores, retrieved_examples = ds_with_embeddings.get_nearest_examples('embeddings', embed('my new query'), k=10)
>>> # save index
>>> ds_with_embeddings.save_faiss_index('embeddings', 'my_index.faiss')

>>> ds = datasets.load_dataset('community-datasets/crime_and_punish', split='train')
>>> # load index
>>> ds.load_faiss_index('embeddings', 'my_index.faiss')
>>> # query
>>> scores, retrieved_examples = ds.get_nearest_examples('embeddings', embed('my new query'), k=10)

add_faiss_index_from_external_arrays

< >

( external_arrays: arrayindex_name: strdevice: typing.Optional[int] = Nonestring_factory: typing.Optional[str] = Nonemetric_type: typing.Optional[int] = Nonecustom_index: typing.Optional[ForwardRef('faiss.Index')] = Nonebatch_size: int = 1000train_size: typing.Optional[int] = Nonefaiss_verbose: bool = Falsedtype = <class 'numpy.float32'> )

Параметры

  • external_arrays (np.array) — Если вы хотите использовать внешние по отношению к библиотеке массивы для индекса, установите external_arrays. Вместо массивов в указанном column для создания индекса Faiss будут использоваться external_arrays.
  • index_name (str) — index_name/идентификатор индекса. Это index_name, который используется для вызова get_nearest_examples() или search().
  • device (необязательный Union[int, List[int]], optional) — Если передано положительное целое число, это индекс используемого GPU. Если передано отрицательное целое число, используются все GPU. Если передан список положительных целых чисел, выполняется только на указанных GPU. По умолчанию используется CPU.
  • string_factory (str, optional) — Передаётся в фабрику индексов Faiss для создания индекса. Класс индекса по умолчанию — IndexFlat.
  • metric_type (int, необязательный) — Тип метрики. Например: faiss.faiss.METRIC_INNER_PRODUCT или faiss.METRIC_L2.
  • custom_index (faiss.Index, необязательный) — Пользовательский индекс Faiss, который вы уже создали и настроили под свои задачи.
  • batch_size (int, необязательный) — Размер батча, используемого при добавлении векторов в FaissIndex. Значение по умолчанию — 1000.

    Добавлено в 2.4.0

  • train_size (int, необязательный) — Если для индекса требуется шаг обучения, указывает, сколько векторов будет использовано для обучения индекса.
  • faiss_verbose (bool, по умолчанию False) — Включает подробный вывод индекса Faiss.
  • dtype (numpy.dtype) — Тип данных (dtype) индексируемых массивов numpy. По умолчанию — np.float32.

Добавьте плотный индекс с помощью Faiss для быстрого поиска. Индекс создаётся на основе векторов из external_arrays. Вы можете указать device, если хотите выполнять работу на GPU (device должен быть индексом GPU). Подробнее о Faiss можно узнать здесь:

save_faiss_index

< >

( index_name: strfile: typing.Union[str, pathlib.PurePath]storage_options: typing.Optional[dict] = None )

Параметры

  • index_name (str) — Имя/идентификатор индекса. Это имя индекса, используемое для вызова .get_nearest или .search.
  • file (str) — Путь к сериализованному индексу faiss на диске или удалённый URI (например, "s3://my-bucket/index.faiss").
  • storage_options (dict, необязательный) — Пары ключ/значение, передаваемые в файловую систему, если она используется.

    Добавлено в 2.11.0

Сохранить FaissIndex на диск.

load_faiss_index

< >

( index_name: strfile: typing.Union[str, pathlib.PurePath]device: typing.Union[int, list[int], NoneType] = Nonestorage_options: typing.Optional[dict] = None )

Параметры

  • index_name (str) — Имя/идентификатор индекса. Это имя индекса, используемое для вызова .get_nearest или .search.
  • file (str) — Путь к сериализованному индексу faiss на диске или удалённый URI (например, "s3://my-bucket/index.faiss").
  • device (необязательный параметр типа Union[int, List[int]]) — если передано положительное целое число, это индекс используемого GPU. Если передано отрицательное целое число, используются все GPU. Если передан список положительных целых чисел, выполняется только на указанных GPU. По умолчанию используется CPU.
  • storage_options (dict, необязательный) — Пары ключ/значение, передаваемые в файловую систему, если она используется.

    Добавлено в 2.11.0

Загрузите FaissIndex с диска.

Если вам требуется дополнительная настройка, вы можете получить доступ к объекту индекса faiss, выполнив .get_index(index_name).faiss_index, чтобы адаптировать его под свои задачи.

add_elasticsearch_index

< >

( column: strindex_name: typing.Optional[str] = Nonehost: typing.Optional[str] = Noneport: typing.Optional[int] = Nonees_client: typing.Optional[ForwardRef('elasticsearch.Elasticsearch')] = Nonees_index_name: typing.Optional[str] = Nonees_index_config: typing.Optional[dict] = None )

Параметры

  • column (str) — Столбец документов, который нужно добавить в индекс.
  • index_name (str, необязательный) — index_name/идентификатор индекса. Это имя индекса, которое используется для вызова get_nearest_examples() или search(). По умолчанию соответствует column.
  • host (str, необязательный, по умолчанию localhost) — Хост, на котором запущен ElasticSearch.
  • port (str, необязательный, по умолчанию 9200) — Порт, на котором запущен ElasticSearch.
  • es_client (elasticsearch.Elasticsearch, необязательный) — Клиент elasticsearch, используемый для создания индекса, если host и port равны None.
  • es_index_name (str, необязательный) — Имя индекса elasticsearch, используемое для создания индекса.
  • es_index_config (dict, необязательный) — Конфигурация индекса elasticsearch. Конфигурация по умолчанию:

Добавьте текстовый индекс с помощью ElasticSearch для быстрого поиска. Это выполняется на месте.

Пример:

>>> es_client = elasticsearch.Elasticsearch()
>>> ds = datasets.load_dataset('community-datasets/crime_and_punish', split='train')
>>> ds.add_elasticsearch_index(column='line', es_client=es_client, es_index_name="my_es_index")
>>> scores, retrieved_examples = ds.get_nearest_examples('line', 'my new query', k=10)

load_elasticsearch_index

< >

( index_name: stres_index_name: strhost: typing.Optional[str] = Noneport: typing.Optional[int] = Nonees_client: typing.Optional[ForwardRef('Elasticsearch')] = Nonees_index_config: typing.Optional[dict] = None )

Параметры

  • index_name (str) — index_name/идентификатор индекса. Это имя индекса, которое используется для вызова get_nearest или search.
  • es_index_name (str) — Имя индекса elasticsearch для загрузки.
  • host (str, необязательный, по умолчанию localhost) — Хост, на котором запущен ElasticSearch.
  • port (str, необязательный, по умолчанию 9200) — Порт, на котором запущен ElasticSearch.
  • es_client (elasticsearch.Elasticsearch, необязательный) — Клиент elasticsearch, используемый для создания индекса, если host и port равны None.
  • es_index_config (dict, необязательный) — Конфигурация индекса elasticsearch. Конфигурация по умолчанию:

Загрузите существующий текстовый индекс с помощью ElasticSearch для быстрого поиска.

list_indexes

< >

( )

Перечислите colindex_nameumns/идентификаторы всех подключенных индексов.

get_index

< >

( index_name: str )

Параметры

  • index_name (str) — Имя индекса.

Перечислите index_name/идентификаторы всех подключенных индексов.

drop_index

< >

( index_name: str )

Параметры

  • index_name (str) — index_name/идентификатор индекса.

Удалите индекс с указанной колонкой.

поиск

< >

( index_name: strquery: typing.Union[str, <built-in function array>]k: int = 10**kwargs ) → (scores, indices)

Параметры

  • index_name (str) — Имя/идентификатор индекса.
  • query (Union[str, np.ndarray]) — Запрос в виде строки, если index_name — текстовый индекс, или в виде массива numpy, если index_name — векторный индекс.
  • k (int) — Количество примеров для извлечения.

Возвращает

(scores, indices)

Кортеж (scores, indices), где:

  • scores (List[List[float]): оценки релевантности, полученные из FAISS (по умолчанию IndexFlatL2) или ElasticSearch для найденных примеров
  • indices (List[List[int]]): индексы извлечённых примеров

Найдите индексы ближайших примеров в наборе данных к запросу.

search_batch

< >

( index_name: strqueries: typing.Union[list[str], <built-in function array>]k: int = 10**kwargs ) → (total_scores, total_indices)

Параметры

  • index_name (str) — index_name/идентификатор индекса.
  • queries (Union[List[str], np.ndarray]) — Запросы в виде списка строк, если index_name — текстовый индекс, или в виде массива numpy, если index_name — векторный индекс.
  • k (int) — Количество примеров, извлекаемых на каждый запрос.

Возвращает

(total_scores, total_indices)

Кортеж (total_scores, total_indices), где:

  • total_scores (List[List[float]): оценки релевантности, полученные из FAISS (по умолчанию IndexFlatL2) или ElasticSearch для каждого запроса
  • total_indices (List[List[int]]): индексы найденных примеров для каждого запроса

Найдите индексы ближайших примеров в наборе данных к запросу.

get_nearest_examples

< >

( index_name: strquery: typing.Union[str, <built-in function array>]k: int = 10**kwargs ) → (scores, examples)

Параметры

  • index_name (str) — Имя/идентификатор индекса.
  • query (Union[str, np.ndarray]) — Запрос в виде строки, если index_name — текстовый индекс, или в виде массива numpy, если index_name — векторный индекс.
  • k (int) — Количество примеров для извлечения.

Возвращает

(scores, examples)

Кортеж (scores, examples), где:

  • scores (List[float]): оценки релевантности, полученные из FAISS (по умолчанию IndexFlatL2) или ElasticSearch для найденных примеров
  • examples (dict): полученные примеры

Найдите в наборе данных примеры, наиболее близкие к запросу.

get_nearest_examples_batch

< >

( index_name: strqueries: typing.Union[list[str], <built-in function array>]k: int = 10**kwargs ) → (total_scores, total_examples)

Параметры

  • index_name (str) — index_name/идентификатор индекса.
  • queries (Union[List[str], np.ndarray]) — Запросы в виде списка строк, если index_name — текстовый индекс, или в виде массива numpy, если index_name — векторный индекс.
  • k (int) — Количество примеров, извлекаемых на каждый запрос.

Возвращает

(total_scores, total_examples)

Кортеж (total_scores, total_examples), где:

  • total_scores (List[List[float]): оценки релевантности, полученные из FAISS (по умолчанию IndexFlatL2) или ElasticSearch для каждого запроса
  • total_examples (List[dict]): полученные примеры для каждого запроса

Найдите в наборе данных примеры, наиболее близкие к запросу.

информация

< >

( )

Объект DatasetInfo, содержащий все метаданные набора данных.

split

< >

( )

Объект NamedSplit, соответствующий именованной части набора данных.

builder_name

< >

( )

цитирование

< >

( )

config_name

< >

( )

dataset_size

< >

( )

Описание

< >

( )

download_checksums

< >

( )

download_size

< >

( )

возможности

< >

( )

главная страница

< >

( )

лицензия

< >

( )

size_in_bytes

< >

( )

supervised_keys

< >

( )

версия

< >

( )

from_csv

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsenum_proc: typing.Optional[int] = None**kwargs )

Параметры

  • path_or_paths (path-like или список path-like) — Путь (или пути) к файлу (файлам) CSV.
  • split (NamedSplit, необязательный) — Имя разбиения, которое будет присвоено набору данных.
  • features (Features, необязательный) — Особенности набора данных.
  • cache_dir (str, необязательный, по умолчанию "~/.cache/huggingface/datasets") — Каталог для кэширования данных.
  • keep_in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.
  • num_proc (int, необязательный, по умолчанию None) — Количество процессов при загрузке и локальном создании набора данных. Это полезно, если набор данных состоит из нескольких файлов. Многопоточность отключена по умолчанию.

    Добавлено в 2.8.0

  • **kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в pandas.read_csv.

Создание набора данных из файла(ов) CSV.

Читает файлы CSV, кэширует данные в формате Arrow на диске и возвращает Dataset из данных Arrow, отображённых в память, на диске.

Пример:

>>> ds = Dataset.from_csv('path/to/dataset.csv')

from_json

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsefield: typing.Optional[str] = Nonenum_proc: typing.Optional[int] = None**kwargs )

Параметры

  • path_or_paths (path-like или список path-like) — Путь (или пути) к файлу (файлам) в формате JSON или JSON Lines.
  • split (NamedSplit, необязательный) — Имя разбиения, которое будет присвоено набору данных.
  • features (Features, необязательный) — Особенности набора данных.
  • cache_dir (str, необязательный, по умолчанию "~/.cache/huggingface/datasets") — Каталог для кэширования данных.
  • keep_in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.
  • field (str, необязательный) — Имя поля в JSON-файле, содержащем набор данных.
  • num_proc (int, необязательный по умолчанию None) — Количество процессов при загрузке и локальном создании набора данных. Это полезно, если набор данных состоит из нескольких файлов. Многопоточность отключена по умолчанию.

    Добавлено в 2.8.0

  • **kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в JsonConfig.

Создание набора данных из файла или файлов в формате JSON или JSON Lines.

Прочитайте файлы JSON, закэшируйте данные в формате Arrow на диске и верните Dataset из данных Arrow, отображённых в память, на диске.

Пример:

>>> ds = Dataset.from_json('path/to/dataset.json')

from_parquet

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsecolumns: typing.Optional[list[str]] = Nonenum_proc: typing.Optional[int] = Nonefilters: typing.Union[pyarrow._compute.Expression, list[tuple], list[list[tuple]], NoneType] = Nonefragment_scan_options: typing.Optional[pyarrow._dataset_parquet.ParquetFragmentScanOptions] = Noneon_bad_files: typing.Literal['error', 'warn', 'skip'] = 'error'**kwargs )

Параметры

  • path_or_paths (path-like или список path-like) — Путь (или пути) к файлу (файлам) Parquet.
  • split (NamedSplit, необязательный) — Имя сплита, которое будет присвоено набору данных.
  • features (Features, необязательный) — Особенности набора данных.
  • cache_dir (str, необязательный, по умолчанию "~/.cache/huggingface/datasets") — Каталог для кэширования данных.
  • keep_in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.
  • columns (List[str], необязательный) — Если не None, из файла будут прочитаны только эти столбцы. Имя столбца может быть префиксом вложенного поля, например, ‘a’ выберет ‘a.b’, ‘a.c’ и ‘a.d.e’.
  • num_proc (int, необязательный, по умолчанию None) — Количество процессов при загрузке и локальном создании набора данных. Это полезно, если набор данных состоит из нескольких файлов. Многопоточность отключена по умолчанию.

    Добавлено в 2.8.0

  • filters (Union[pyarrow.dataset.Expression, list[tuple], list[list[tuple]]], необязательный) — Возвращает только строки, соответствующие фильтру. Если возможно, предикат будет передан вниз, чтобы использовать информацию о партициях или внутренние метаданные, найденные в источнике данных, например, статистику Parquet. В противном случае фильтрует загруженные RecordBatches перед их возвратом.
  • fragment_scan_options (pyarrow.dataset.ParquetFragmentScanOptions, необязательный) — Параметры сканирования, специфичные для фрагментов Parquet. Особенно полезно для настройки буферизации и кэширования.

    Добавлено в 4.2.0

  • on_bad_files (Literal["error", "warn", "skip"], необязательный, по умолчанию — «error») — Указывает, что делать при обнаружении повреждённого файла (файла, который невозможно прочитать). Допустимые значения:
    • ‘error’, при обнаружении повреждённого файла вызывать исключение.
    • ‘warn’, выводить предупреждение при обнаружении повреждённого файла и пропускать его.
    • ‘skip’, пропускать повреждённые файлы без вывода ошибок или предупреждений при их обнаружении.

    Добавлено в 4.2.0

  • **kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в ParquetConfig.

Создание набора данных из файла(ов) Parquet.

Читает файлы Parquet, кэширует данные в формате Arrow на диске и возвращает Dataset из данных Arrow, отображённых в память, на диске.

Пример:

>>> ds = Dataset.from_parquet('path/to/dataset.parquet')

Загрузка подмножества столбцов:

>>> ds = Dataset.from_parquet('path/to/dataset.parquet', columns=["col_0", "col_1"])

Эффективно фильтруйте данные, при необходимости пропуская целые файлы или группы строк:

>>> filters = [("col_0", "==", 0)]
>>> ds = Dataset.from_parquet(parquet_files_list, filters=filters)

from_text

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsenum_proc: typing.Optional[int] = Nonekeep_linebreaks: bool = Falsesample_by: typing.Literal['line', 'paragraph', 'document'] = 'line'**kwargs )

Параметры

  • path_or_paths (path-like или список path-like) — Путь (или пути) к текстовому файлу (файлам).
  • split (NamedSplit, необязательный) — Имя сплита, которое будет присвоено набору данных.
  • features (Features, необязательный) — Особенности набора данных.
  • cache_dir (str, необязательный, по умолчанию "~/.cache/huggingface/datasets") — Каталог для кэширования данных.
  • keep_in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.
  • num_proc (int, необязательный, по умолчанию None) — Количество процессов при загрузке и локальном создании набора данных. Это полезно, если набор данных состоит из нескольких файлов. Многопоточность отключена по умолчанию.

    Добавлено в 2.8.0

  • keep_linebreaks — (bool, по умолчанию False): Сохранять ли переносы строк.
  • sample_by (Literal["line", "paragraph", "document"], по умолчанию “line”) — Определяет, загружать ли данные построчно, по абзацам или по документам. По умолчанию одна строка в наборе данных соответствует одной строке текста.
  • **kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в TextConfig.

Создание набора данных из текстового файла или файлов.

Прочитайте текстовые файлы, закэшируйте данные в формате Arrow на диске и верните Dataset из данных Arrow, отображенных в память, на диске.

Пример:

>>> ds = Dataset.from_text('path/to/dataset.txt')

from_sql

< >

( sql: typing.Union[str, ForwardRef('sqlalchemy.sql.Selectable')]con: typing.Union[str, ForwardRef('sqlalchemy.engine.Connection'), ForwardRef('sqlalchemy.engine.Engine'), ForwardRef('sqlite3.Connection')]features: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )

Параметры

  • sql (str или sqlalchemy.sql.Selectable) — SQL-запрос для выполнения или имя таблицы.
  • con (str или sqlite3.Connection или sqlalchemy.engine.Connection или sqlalchemy.engine.Connection) — Строка URI, используемая для создания подключения к базе данных, или объект подключения SQLite3/SQLAlchemy.
  • features (Features, необязательный) — Особенности набора данных.
  • cache_dir (str, необязательный, по умолчанию "~/.cache/huggingface/datasets") — Каталог для кэширования данных.
  • keep_in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.
  • **kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в SqlConfig.

Создание набора данных из SQL-запроса или таблицы базы данных.

Запросите базу данных SQL, закэшируйте данные в формате Arrow на диске и верните Dataset из данных Arrow на диске, отображённых в память.

Пример:

>>> # Fetch a database table
>>> ds = Dataset.from_sql("test_data", "postgres:///db_name")
>>> # Execute a SQL query on the table
>>> ds = Dataset.from_sql("SELECT sentence FROM test_data", "postgres:///db_name")
>>> # Use a Selectable object to specify the query
>>> from sqlalchemy import select, text
>>> stmt = select([text("sentence")]).select_from(text("test_data"))
>>> ds = Dataset.from_sql(stmt, "postgres:///db_name")

Возвращаемый набор данных может быть закэширован только в том случае, если con указан как строка URI.

align_labels_with_mapping

< >

( label2id: dictlabel_column: str )

Параметры

  • label2id (dict) — Сопоставление имен меток с идентификаторами, с которым нужно привести датасет в соответствие.
  • label_column (str) — Имя столбца с метками, по которому выполняется выравнивание.

Выровняйте сопоставление идентификаторов и названий меток набора данных с входным сопоставлением label2id. Это полезно, если вы хотите убедиться, что предсказанные моделью метки согласованы с набором данных. Выравнивание выполняется с использованием названий меток в нижнем регистре.

Пример:

>>> # dataset with mapping {'entailment': 0, 'neutral': 1, 'contradiction': 2}
>>> ds = load_dataset("nyu-mll/glue", "mnli", split="train")
>>> # mapping to align with
>>> label2id = {'CONTRADICTION': 0, 'NEUTRAL': 1, 'ENTAILMENT': 2}
>>> ds_aligned = ds.align_labels_with_mapping(label2id, "label")

datasets.concatenate_datasets

< >

( dsets: listinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneaxis: int = 0 )

Параметры

  • dsets (List[datasets.Dataset] или List[datasets.IterableDataset]) — Список Datasets для конкатенации.
  • info (DatasetInfo, необязательный) — Информация о наборе данных, например описание, цитирование и т. д.
  • split (NamedSplit, необязательный) — Имя разбиения набора данных.
  • axis ({0, 1}, по умолчанию 0) — ось, по которой выполняется конкатенация, где 0 означает по строкам (вертикально), а 1 означает по столбцам (горизонтально).

    Добавлено в 1.6.0

Соедините несколько наборов данных (источников) в один набор данных.

Используйте axis=0 для вертикального объединения (по умолчанию) или axis=1 для горизонтального объединения.

Примечание для итерируемых наборов данных:

  • if axis=0, the resulting dataset’s num_shards is the sum of each dataset’s num_shards.
  • if axis=1, результирующий набор данных содержит один (1) шард, чтобы не допустить рассинхронизации данных.
  • if the datasets were split with datasets.distributed.split_dataset_by_node(), they must all be split the same way, and the resulting dataset keeps that split.

Пример:

>>> ds3 = concatenate_datasets([ds1, ds2])

datasets.interleave_datasets

< >

( datasets: listprobabilities: typing.Optional[list[float]] = Noneseed: typing.Optional[int] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Nonestopping_strategy: typing.Literal['first_exhausted', 'all_exhausted', 'all_exhausted_without_replacement'] = 'first_exhausted' ) → Dataset or IterableDataset

Параметры

  • datasets (List[Dataset] или List[IterableDataset]) — Список наборов данных для переплетения.
  • probabilities (List[float], необязательный, по умолчанию None) — Если указано, новый набор данных формируется путём выборки примеров из одного источника за раз в соответствии с этими вероятностями.
  • seed (int, необязательный, по умолчанию None) — Случайное зерно, используемое для выбора источника для каждого примера.
  • info (DatasetInfo, необязательный) — Информация о наборе данных, например, описание, цитирование и т. д.

    Добавлено в 2.4.0

  • split (NamedSplit, необязательный) — Имя сплита набора данных.

    Добавлено в 2.4.0

  • stopping_strategy (str, по умолчанию first_exhausted) — Сейчас предлагается три стратегии: first_exhausted, all_exhausted и all_exhausted_without_replacement. По умолчанию first_exhausted является стратегией недообучения (undersampling), то есть формирование набора данных останавливается, как только один из наборов исчерпывает свои примеры. Если стратегия — all_exhausted, мы используем стратегию переобучения (oversampling), то есть формирование набора данных останавливается, как только каждый пример из каждого набора был добавлен хотя бы один раз. Если стратегия — all_exhausted_without_replacement мы гарантируем, что каждый пример в каждом наборе извлекается только один раз. Обратите внимание, что если стратегия — all_exhausted, размер чередующегося набора данных может стать огромным:
    • без вероятностей, в результирующем наборе данных будет max_length_datasets*nb_dataset образцов.
    • при заданных вероятностях итоговый набор данных будет содержать больше примеров, если у некоторых наборов данных вероятность выборки действительно низкая.

Возвращает

Dataset или IterableDataset

Тип возвращаемого значения зависит от параметра datasets. Dataset, если на вход передан список Dataset, IterableDataset, если на вход передан список IterableDataset.

Переплетите несколько наборов данных (источников) в один набор данных. Новый набор данных формируется путём чередования источников для получения примеров.

Эту функцию можно использовать со списком объектов Dataset или со списком объектов IterableDataset.

  • Если probabilities равно None (по умолчанию), новый набор данных формируется путём циклического перебора каждого источника для получения примеров.
  • Если probabilities не равно None, новый набор данных формируется путём получения примеров из случайного источника по одному согласно заданным вероятностям.

Результирующий датасет завершается, когда один из исходных датасетов исчерпывает примеры, за исключением случая, когда oversampling равно True, в котором случае результирующий датасет завершается, когда все датасеты исчерпали примеры хотя бы один раз.

Примечание для итерируемых наборов данных:

  • Значение num_shards результирующего набора данных равно минимальному значению num_shards среди всех исходных наборов, что обеспечивает хорошую параллельность. Если в некоторых наборах данных очень мало шардов, вы можете использовать IterableDataset.reshard().
  • В распределённой конфигурации или в рабочих процессах PyTorch DataLoader стратегия остановки применяется для каждого процесса. Поэтому стратегия “first_exhausted” для итерируемого набора данных с шардированием может сгенерировать меньше примеров в общей сложности (до 1 отсутствующего примера на поднабор данных на рабочий процесс).

Пример:

Для обычных наборов данных (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], probabilities=[0.7, 0.2, 0.1], seed=42, stopping_strategy="all_exhausted")
>>> dataset["a"]
[10, 0, 11, 1, 2, 20, 12, 10, 0, 1, 2, 21, 0, 11, 1, 2, 0, 1, 12, 2, 10, 0, 22]
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42)
>>> dataset["a"]
[10, 0, 11, 1, 2]
>>> dataset = interleave_datasets([d1, d2, d3])
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22]
>>> dataset = interleave_datasets([d1, d2, d3], stopping_strategy="all_exhausted")
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22]
>>> d1 = Dataset.from_dict({"a": [0, 1, 2]})
>>> d2 = Dataset.from_dict({"a": [10, 11, 12, 13]})
>>> d3 = Dataset.from_dict({"a": [20, 21, 22, 23, 24]})
>>> dataset = interleave_datasets([d1, d2, d3])
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22]
>>> dataset = interleave_datasets([d1, d2, d3], stopping_strategy="all_exhausted")
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22, 0, 13, 23, 1, 10, 24]
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42)
>>> dataset["a"]
[10, 0, 11, 1, 2]
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42, stopping_strategy="all_exhausted")
>>> dataset["a"]
[10, 0, 11, 1, 2, 20, 12, 13, ..., 0, 1, 2, 0, 24]
For datasets in streaming mode (iterable):

>>> from datasets import interleave_datasets
>>> d1 = load_dataset('allenai/c4', 'es', split='train', streaming=True)
>>> d2 = load_dataset('allenai/c4', 'fr', split='train', streaming=True)
>>> dataset = interleave_datasets([d1, d2])
>>> iterator = iter(dataset)
>>> next(iterator)
{'text': 'Comprar Zapatillas para niña en chancla con goma por...'}
>>> next(iterator)
{'text': 'Le sacre de philippe ier, 23 mai 1059 - Compte Rendu...'

datasets.distributed.split_dataset_by_node

< >

( dataset: ~DatasetTyperank: intworld_size: intstrategy: typing.Literal['auto', 'shards', 'examples'] = 'auto' ) → Dataset or IterableDataset

Параметры

  • dataset (Dataset или IterableDataset) — Набор данных, который нужно разделить по узлам.
  • rank (int) — Ранг текущего узла.
  • world_size (int) — Общее количество узлов.
  • strategy (str, по умолчанию "auto") — Способ разбиения итерируемого набора данных. Должно быть одним из "auto", "shards" или "examples". Наборы данных в стиле Map поддерживают только "auto".

Возвращает

Dataset или IterableDataset

Набор данных, который будет использоваться на узле с рангом rank.

Разделите набор данных для узла с рангом rank в пуле узлов размером world_size.

Для наборов данных в стиле карты:

Каждому узлу назначается фрагмент данных, например, узлу с рангом 0 выделяется первый фрагмент набора данных. Для максимизации пропускной способности загрузки данных фрагменты, по возможности, формируются из непрерывных данных на диске.

Для итерируемых наборов данных:

Стратегия разбиения strategy может принимать значения "auto", "shards" или "examples":

  • "shards": шарды равномерно распределяются по узлам
  • "examples": каждый узел хранит 1 пример из world_size, пропуская остальные примеры
  • "auto" (по умолчанию): использует "shards", если количество шардов в наборе данных является делителем world_size (то есть если dataset.num_shards % world_size == 0), что является наиболее оптимизированным вариантом. В противном случае использует "examples".

Если вы перемешиваете итерируемый набор данных в распределённой конфигурации, убедитесь, что вы задали фиксированное значение seed в IterableDataset.shuffle(), чтобы на каждом узле использовался один и тот же перемешанный список шардов, и узел знал, какие шарды ему следует пропустить.

datasets.enable_caching

< >

( )

При применении трансформаций к набору данных результаты сохраняются в кэш-файлах. Механизм кэширования позволяет повторно загрузить существующий кэш-файл, если он уже был вычислен.

Повторная загрузка набора данных возможна, поскольку файлы кэша именуются на основе отпечатка (fingerprint) набора данных, который обновляется после каждого преобразования.

Если отключено, библиотека больше не будет перезагружать файлы кэшированных наборов данных при применении преобразований к наборам данных. Более точно, если кэширование отключено:

  • файлы кэша всегда пересоздаются
  • файлы кэша записываются во временный каталог, который удаляется при закрытии сессии
  • файлы кэша получают имена на основе случайного хэша, а не отпечатка данных
  • используйте save_to_disk(), чтобы сохранить преобразованный набор данных, иначе он будет удалён при закрытии сессии
  • Кэширование не влияет на load_dataset(). Если вы хотите создать набор данных заново, используйте параметр download_mode в load_dataset().

datasets.disable_caching

< >

( )

При применении трансформаций к набору данных результаты сохраняются в кэш-файлах. Механизм кэширования позволяет повторно загрузить существующий кэш-файл, если он уже был вычислен.

Повторная загрузка набора данных возможна, поскольку файлы кэша именуются на основе отпечатка (fingerprint) набора данных, который обновляется после каждого преобразования.

Если отключено, библиотека больше не будет перезагружать файлы кэшированных наборов данных при применении преобразований к наборам данных. Более точно, если кэширование отключено:

  • файлы кэша всегда пересоздаются
  • файлы кэша записываются во временный каталог, который удаляется при закрытии сессии
  • файлы кэша получают имена на основе случайного хэша, а не отпечатка данных
  • используйте save_to_disk(), чтобы сохранить преобразованный набор данных, иначе он будет удалён при закрытии сессии
  • Кэширование не влияет на load_dataset(). Если вы хотите создать набор данных заново, используйте параметр download_mode в load_dataset().

datasets.is_caching_enabled

< >

( )

При применении трансформаций к набору данных результаты сохраняются в кэш-файлах. Механизм кэширования позволяет повторно загрузить существующий кэш-файл, если он уже был вычислен.

Повторная загрузка набора данных возможна, поскольку файлы кэша именуются на основе отпечатка (fingerprint) набора данных, который обновляется после каждого преобразования.

Если отключено, библиотека больше не будет перезагружать файлы кэшированных наборов данных при применении преобразований к наборам данных. Более точно, если кэширование отключено:

  • файлы кэша всегда пересоздаются
  • файлы кэша записываются во временный каталог, который удаляется при закрытии сессии
  • файлы кэша получают имена на основе случайного хэша, а не отпечатка данных
  • используйте save_to_disk(), чтобы сохранить преобразованный набор данных, иначе он будет удалён при закрытии сессии
  • Кэширование не влияет на load_dataset(). Если вы хотите создать набор данных заново, используйте параметр download_mode в load_dataset().

класс datasets.Column

< >

( source: typing.Union[ForwardRef('Dataset'), ForwardRef('Column')]column_name: str )

Итерируемый объект для конкретного столбца Dataset.

Пример:

Итеративно обрабатывайте тексты в столбце «text» набора данных:

for text in dataset["text"]:
    ...

Он также работает с вложенными столбцами:

for source in dataset["metadata"]["source"]:
    ...

DatasetDict

Словарь, в котором ключами являются имена разбиений (например, ‘train’, ‘test’), а значениями — объекты Dataset. Также он содержит методы преобразования набора данных, такие как map или filter, для обработки всех разбиений сразу.

класс datasets.DatasetDict

< >

( )

Словарь (dict со str: datasets.Dataset) с методами трансформации датасетов (map, filter и т. д.)

данные

< >

( )

Таблицы Apache Arrow, лежащие в основе каждого разбиения.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.data

cache_files

< >

( )

Файлы кэша, содержащие таблицы Apache Arrow, лежащие в основе каждого разбиения.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.cache_files
{'test': [{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-test.arrow'}],
 'train': [{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-train.arrow'}],
 'validation': [{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-validation.arrow'}]}

num_columns

< >

( )

Количество столбцов в каждом разбиении набора данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.num_columns
{'test': 2, 'train': 2, 'validation': 2}

num_rows

< >

( )

Количество строк в каждом разделе набора данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.num_rows
{'test': 1066, 'train': 8530, 'validation': 1066}

column_names

< >

( )

Имена столбцов в каждом разбиении набора данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.column_names
{'test': ['text', 'label'],
 'train': ['text', 'label'],
 'validation': ['text', 'label']}

форма

< >

( )

Форма каждого разбиения набора данных (количество строк, количество столбцов).

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.shape
{'test': (1066, 2), 'train': (8530, 2), 'validation': (1066, 2)}

уникальный

< >

( column: str ) → Dict[str, list]

Параметры

  • column (str) — имя столбца (список всех имён столбцов — column_names)

Возвращает

Dict[str, list]

Словарь уникальных элементов в указанном столбце.

Возвращает список уникальных элементов в столбце для каждого сплита.

Это реализовано в низкоуровневом бэкенде и, как следствие, работает очень быстро.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.unique("label")
{'test': [1, 0], 'train': [1, 0], 'validation': [1, 0]}

cleanup_cache_files

< >

( )

Удалите все файлы кэша в каталоге кэша датасета, за исключением файла кэша, который в данный момент используется, если таковой имеется. Будьте осторожны при выполнении этой команды: убедитесь, что другие процессы в данный момент не используют другие файлы кэша.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.cleanup_cache_files()
{'test': 0, 'train': 0, 'validation': 0}

map

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falsewith_rank: bool = Falsewith_split: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000drop_last_batch: bool = Falseremove_columns: typing.Union[str, list[str], NoneType] = Nonekeep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonecache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = Nonewriter_batch_size: typing.Optional[int] = 1000features: typing.Optional[datasets.features.features.Features] = Nonedisable_nullable: bool = Falsefn_kwargs: typing.Optional[dict] = Nonenum_proc: typing.Optional[int] = Nonedesc: typing.Optional[str] = Nonetry_original_type: typing.Optional[bool] = Trueon_mixed_types: typing.Optional[typing.Literal['use_json']] = None )

Параметры

  • function (callable) — с одним из следующих сигнатур:
    • function(example: Dict[str, Any]) -> Dict[str, Any] если batched=False и with_indices=False
    • function(example: Dict[str, Any], indices: int) -> Dict[str, Any] если batched=False и with_indices=True
    • function(batch: Dict[str, list]) -> Dict[str, list] если batched=True и with_indices=False
    • function(batch: Dict[str, list], indices: list[int]) -> Dict[str, list], если batched=True и with_indices=True

    Для расширенного использования функция также может возвращать pyarrow.Table. Если функция асинхронная, то map будет выполнять её параллельно. Более того, если ваша функция ничего не возвращает (None), то map выполнит её и вернёт датасет без изменений. Если функция не указана, по умолчанию используется тождественная функция: lambda x: x.

  • with_indices (bool, по умолчанию False) — Передавать индексы примеров в function. Обратите внимание, что в этом случае сигнатура function должна быть def function(example, idx): ....
  • with_rank (bool, по умолчанию False) — Передавать ранг процесса в function. Обратите внимание, что в этом случае подпись function должна быть def function(example[, idx], rank): ....
  • with_split (bool, по умолчанию False) — Передавать split процесса в function. Обратите внимание, что в этом случае подпись function должна быть def function(example[, idx], split): ....
  • input_columns ([Union[str, list[str]]], необязательный, по умолчанию None) — Столбцы, которые передаются в function в качестве позиционных аргументов. Если None, в качестве одного аргумента передаётся словарь, отображающий все отформатированные столбцы.
  • batched (bool, по умолчанию False) — Передавать в function пакет примеров.
  • batch_size (int, необязательный, по умолчанию 1000) — Количество примеров в каждой партии, передаваемых в function, если batched=True. Если batch_size <= 0 или batch_size == None, весь набор данных передается в function как одна партия.
  • drop_last_batch (bool, по умолчанию False) — Определяет, следует ли отбрасывать последний батч, если его размер меньше batch_size, вместо его обработки функцией.
  • remove_columns ([Union[str, list[str]]], необязательный, по умолчанию None) — Удаляет выбранные столбцы во время выполнения отображения. Столбцы удаляются до обновления примеров с помощью вывода function, то есть если function добавляет столбцы с именами из remove_columns, эти столбцы будут сохранены.
  • keep_in_memory (bool, по умолчанию False) — Держать датасет в памяти, а не записывать его в файл кэша.
  • load_from_cache_file (Optional[bool], по умолчанию True, если кэширование включено) — Если можно определить файл кэша, содержащий текущий результат вычислений из function, используйте его вместо повторного вычисления.
  • cache_file_names ([Dict[str, str]], необязательный, по умолчанию None) — Укажите имя пути для файла кэша. Используется для хранения результатов вычислений вместо автоматически сгенерированного имени файла кэша. Необходимо указать по одному cache_file_name для каждого набора данных в словаре наборов данных.
  • writer_batch_size (int, по умолчанию 1000) — Количество строк на одну операцию записи для модуля записи в файл кэша. Это значение представляет собой хороший компромисс между использованием памяти во время обработки и скоростью обработки. Более высокое значение уменьшает количество обращений к данным, а более низкое значение потребляет меньше временной памяти при выполнении map.
  • features ([datasets.Features], необязательный, по умолчанию None) — Использовать конкретный Features для хранения файла кэша вместо автоматически сгенерированного.
  • disable_nullable (bool, по умолчанию False) — Запрещает использование значений null в таблице.
  • fn_kwargs (Dict, необязательный, по умолчанию None) — Параметры с ключами, передаваемые в function
  • num_proc (int, необязательный, по умолчанию None) — Количество процессов для использования при многопроцессорной обработке. Если значение равно None или 0, многопроцессорная обработка не используется, и операция выполняется в основном процессе. Если значение больше 1, для параллельной обработки данных используются один или несколько рабочих процессов. Примечание: функция, передаваемая в map(), должна быть сериализуемой (picklable), чтобы многопроцессорная обработка работала корректно (то есть предпочтительнее использовать функции, определенные на верхнем уровне модуля, а не внутри другой функции или класса).
    • Если None или 0, многопоточность не используется, и операция выполняется в основном процессе.
    • Если значение больше 1, для параллельной обработки данных используются один или несколько рабочих процессов. Примечание: функция, передаваемая в map(), должна быть сериализуемой (picklable), чтобы многопроцессность работала корректно (то есть предпочтительнее использовать функции, определённые на верхнем уровне модуля, а не внутри другой функции или класса).
  • desc (str, необязательный, по умолчанию None) — Осмысленное описание, отображаемое рядом с индикатором прогресса при отображении примеров.
  • try_original_type (Optional[bool], по умолчанию True) — Пытается сохранить типы исходных столбцов (например, int32 -> int32). Установите False, если вы хотите всегда выводить новые типы.
  • on_mixed_types (Literal["use_json"], необязательный, по умолчанию None) — Если указано «use_json», для полей со смешанными типами используется тип Json(), то есть для неструктурированных полей, содержащих данные без заранее определённой схемы. В этом случае полю со смешанным типом присваивается значение Json().

    Это позволяет загружать списки со смешанными строками/целыми числами/числами с плавающей точкой, например, или словари с произвольными типами значений.

    Добавлено в 4.7.0

Примените функцию ко всем примерам в таблице (по отдельности или партиями) и обновите таблицу. Если ваша функция возвращает столбец, который уже существует, он будет перезаписан. Преобразование применяется ко всем наборам данных в словаре наборов данных.

Вы можете указать, должна ли функция обрабатываться батчами или нет, с помощью параметра batched:

  • If batched is False, then the function takes 1 example in and should return 1 example. An example is a dictionary, e.g. {"text": "Hello there !"}.
  • If batched is True and batch_size is 1, then the function takes a batch of 1 example as input and can return a batch with 1 or more examples. A batch is a dictionary, e.g. a batch of 1 example is {"text": ["Hello there !"]}.
  • Если True и batch_size равно n > 1, функция принимает на вход батч из n примеров и может вернуть батч из n примеров или произвольного количества примеров. Обратите внимание, что в последнем батче может быть меньше n примеров. Батч — это словарь, например, батч из n примеров — это {"text": ["Hello there !"] * n}.

Если функция асинхронная, то map будет выполнять её параллельно, с максимумом в тысячу одновременных вызовов. Рекомендуется использовать asyncio.Semaphore в вашей функции, если вы хотите задать максимальное количество операций, которые могут выполняться одновременно.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> ds["train"][0:3]["text"]
['Review: the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .',
 'Review: the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .',
 'Review: effective but too-tepid biopic']

# process a batch of examples
>>> ds = ds.map(lambda example: tokenizer(example["text"]), batched=True)
# set number of processors
>>> ds = ds.map(add_prefix, num_proc=4)

фильтр

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falsewith_rank: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000keep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonecache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = Nonewriter_batch_size: typing.Optional[int] = 1000fn_kwargs: typing.Optional[dict] = Nonenum_proc: typing.Optional[int] = Nonedesc: typing.Optional[str] = None )

Параметры

  • function (Callable) — Вызываемый объект с одной из следующих сигнатур:
    • function(example: Dict[str, Any]) -> bool если batched=False и with_indices=False и with_rank=False
    • function(example: Dict[str, Any], *extra_args) -> bool, если batched=False и with_indices=True и/или with_rank=True (по одному дополнительному аргументу для каждого)
    • function(batch: Dict[str, list]) -> list[bool] если batched=True и with_indices=False и with_rank=False
    • function(batch: Dict[str, list], *extra_args) -> list[bool], если batched=True и with_indices=True и/или with_rank=True (по одному дополнительному аргументу для каждого)

    Если функция не указана, по умолчанию используется функция, всегда возвращающая True: lambda x: True.

  • with_indices (bool, по умолчанию False) — Передавать индексы примеров в function. Обратите внимание, что в этом случае подпись function должна быть def function(example, idx[, rank]): ....
  • with_rank (bool, по умолчанию False) — Передавать ранг процесса в function. Обратите внимание, что в этом случае подпись function должна быть def function(example[, idx], rank): ....
  • input_columns ([Union[str, list[str]]], необязательный, по умолчанию None) — Столбцы, которые передаются в function в качестве позиционных аргументов. Если None, в качестве одного аргумента передаётся словарь, отображающий все отформатированные столбцы.
  • batched (bool, по умолчанию False) — Передавать в function пакет примеров.
  • batch_size (int, необязательный, по умолчанию 1000) — Количество примеров в каждой партии, передаваемой в function, если batched=True. Если batch_size <= 0 или batch_size == None, весь набор данных передается в function как одна партия.
  • keep_in_memory (bool, по умолчанию False) — Держать датасет в памяти, а не записывать его в файл кэша.
  • load_from_cache_file (Optional[bool], по умолчанию True, если кэширование включено) — Если можно определить файл кэша, содержащий текущий результат вычислений из function, используйте его вместо повторного вычисления.
  • cache_file_names ([Dict[str, str]], необязательный, по умолчанию None) — Укажите имя пути для файла кэша. Используется для хранения результатов вычислений вместо автоматически сгенерированного имени файла кэша. Необходимо указать по одному cache_file_name для каждого набора данных в словаре наборов данных.
  • writer_batch_size (int, по умолчанию 1000) — Количество строк на одну операцию записи для модуля записи в файл кэша. Это значение представляет собой хороший компромисс между использованием памяти во время обработки и скоростью обработки. Более высокое значение уменьшает количество обращений к данным, а более низкое значение потребляет меньше временной памяти при выполнении map.
  • fn_kwargs (Dict, необязательный, по умолчанию None) — Параметры с ключами, передаваемые в function
  • num_proc (int, необязательный, по умолчанию None) — Количество процессов для использования при многопроцессорной обработке. Если значение равно None или 0, многопроцессорная обработка не используется, и операция выполняется в основном процессе. Если значение больше 1, для параллельной обработки данных используются один или несколько рабочих процессов. Примечание: функция, передаваемая в map(), должна быть сериализуемой (picklable), чтобы многопроцессорная обработка работала корректно (то есть предпочтительнее использовать функции, определенные на верхнем уровне модуля, а не внутри другой функции или класса).
    • Если None или 0, многопоточность не используется, и операция выполняется в основном процессе.
    • Если значение больше 1, для параллельной обработки данных используются один или несколько рабочих процессов. Примечание: функция, передаваемая в map(), должна быть сериализуемой (picklable), чтобы многопроцессность работала корректно (то есть предпочтительнее использовать функции, определённые на верхнем уровне модуля, а не внутри другой функции или класса).
  • desc (str, необязательный, по умолчанию None) — Осмысленное описание, отображаемое рядом с индикатором прогресса во время фильтрации примеров.

Примените функцию фильтра ко всем элементам таблицы партиями и обновите таблицу так, чтобы набор данных содержал только примеры, соответствующие функции фильтра. Преобразование применяется ко всем наборам данных в словаре наборов данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.filter(lambda x: x["label"] == 1)
DatasetDict({
    train: Dataset({
        features: ['text', 'label'],
        num_rows: 4265
    })
    validation: Dataset({
        features: ['text', 'label'],
        num_rows: 533
    })
    test: Dataset({
        features: ['text', 'label'],
        num_rows: 533
    })
})

sort

< >

( column_names: typing.Union[str, collections.abc.Sequence[str]]reverse: typing.Union[bool, collections.abc.Sequence[bool]] = Falsenull_placement: str = 'at_end'keep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Noneindices_cache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = Nonewriter_batch_size: typing.Optional[int] = 1000 )

Параметры

  • column_names (Union[str, Sequence[str]]) — Имя(я) столбца(ов), по которому(ым) выполняется сортировка.
  • reverse (Union[bool, Sequence[bool]], по умолчанию False) — Если True, сортировка выполняется по убыванию, а не по возрастанию. Если указано одно значение bool, оно применяется к сортировке всех имён столбцов. В противном случае необходимо предоставить список значений bool с той же длиной и порядком, что и column_names.
  • null_placement (str, по умолчанию at_end) — Размещает значения None в начале, если указано at_start или first, или в конце, если указано at_end или last
  • keep_in_memory (bool, по умолчанию False) — Хранить отсортированные индексы в памяти, а не записывать их в файл кэша.
  • load_from_cache_file (Optional[bool], по умолчанию True, если кэширование включено) — Если можно определить файл кэша, содержащий отсортированные индексы, используйте его вместо повторного вычисления.
  • indices_cache_file_names ([Dict[str, str]], необязательный, по умолчанию None) — Укажите имя пути для файла кэша. Используется для хранения соответствия индексов вместо автоматически сгенерированного имени файла кэша. Необходимо указать одно cache_file_name для каждого набора данных в словаре наборов данных.
  • writer_batch_size (int, по умолчанию 1000) — Количество строк на одну операцию записи для модуля записи кэш-файла. Более высокое значение приводит к меньшим кэш-файлам, более низкое — к меньшему потреблению временной памяти.

Создайте новый набор данных, отсортированный по одному или нескольким столбцам.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset('cornell-movie-review-data/rotten_tomatoes')
>>> ds['train']['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>> sorted_ds = ds.sort('label')
>>> sorted_ds['train']['label'][:10]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> another_sorted_ds = ds.sort(['label', 'text'], reverse=[True, False])
>>> another_sorted_ds['train']['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

shuffle

< >

( seeds: typing.Union[int, dict[str, typing.Optional[int]], NoneType] = Noneseed: typing.Optional[int] = Nonegenerators: typing.Optional[dict[str, numpy.random._generator.Generator]] = Nonekeep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Noneindices_cache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = Nonewriter_batch_size: typing.Optional[int] = 1000 )

Параметры

  • seeds (Dict[str, int] или int, необязательный) — Значение seed для инициализации стандартного BitGenerator, если generator=None. Если указано None, то непредсказуемая энтропия будет получена из ОС. Если передано значение типа int или array_like[ints], оно будет передано в SeedSequence для вывода начального состояния BitGenerator. В словаре датасета можно указать по одному seed для каждого датасета.
  • seed (int, необязательный) — Значение seed для инициализации стандартного BitGenerator, если generator=None. Псевдоним для seeds (выбрасывается ValueError, если заданы оба параметра).
  • generators (Dict[str, *optional*, np.random.Generator]) — Генератор случайных чисел Numpy, используемый для вычисления перестановки строк набора данных. Если generator=None (по умолчанию), используется np.random.default_rng (генератор битов по умолчанию (PCG64) в NumPy). Необходимо указать один generator для каждого набора данных в словаре наборов данных.
  • keep_in_memory (bool, по умолчанию False) — Держать датасет в памяти, а не записывать его в файл кэша.
  • load_from_cache_file (Optional[bool], по умолчанию True, если кэширование включено) — Если можно определить файл кэша, содержащий текущий результат вычислений из function, используйте его вместо повторного вычисления.
  • indices_cache_file_names (Dict[str, str], необязательный) — Укажите имя пути для файла кэша. Используется для хранения соответствий индексов вместо автоматически сгенерированного имени файла кэша. Необходимо указать одно cache_file_name для каждого набора данных в словаре наборов данных.
  • writer_batch_size (int, по умолчанию 1000) — Количество строк на одну операцию записи для модуля записи в файл кэша. Это значение представляет собой хороший компромисс между использованием памяти во время обработки и скоростью обработки. Более высокое значение уменьшает количество обращений к данным, а более низкое значение потребляет меньше временной памяти при выполнении map.

Создайте новый Dataset, в котором строки перемешаны.

Преобразование применяется ко всем наборам данных в словаре наборов данных.

В настоящее время перемешивание использует генераторы случайных чисел numpy. Вы можете передать экземпляр NumPy BitGenerator для использования или seed для инициализации генератора случайных чисел по умолчанию в NumPy (PCG64).

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds["train"]["label"][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

# set a seed
>>> shuffled_ds = ds.shuffle(seed=42)
>>> shuffled_ds["train"]["label"][:10]
[0, 1, 0, 1, 0, 0, 0, 0, 0, 0]

set_format

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

Параметры

  • type (str, необязательный) — Тип вывода, выбранный из [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None означает, что __getitem__ возвращает объекты Python (по умолчанию).
  • columns (list[str], необязательный) — Столбцы, которые нужно отформатировать в выводе. None означает, что __getitem__ возвращает все столбцы (по умолчанию).
  • output_all_columns (bool, по умолчанию False) — Сохранять в выводе также неформатированные столбцы (в виде объектов Python),
  • **format_kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в функцию преобразования, например np.array, torch.tensor или tensorflow.ragged.constant.

Формат возвращаемого значения __getitem__ (тип и столбцы). Формат задаётся для каждого набора данных в словаре наборов данных.

Возможно вызвать map после вызова set_format. Поскольку map может добавлять новые столбцы, список отформатированных столбцов обновляется. В этом случае, если вы применяете map к набору данных для добавления нового столбца, этот столбец будет отформатирован:

new formatted columns = (all columns - previously unformatted columns)

Пример:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x["text"], truncation=True, padding=True), batched=True)
>>> ds.set_format(type="numpy", columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'])
>>> ds["train"].format
{'columns': ['input_ids', 'token_type_ids', 'attention_mask', 'label'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'numpy'}

reset_format

< >

( )

Сбросить формат возврата __getitem__ до объектов Python и всех столбцов. Преобразование применяется ко всем наборам данных в словаре наборов данных.

Аналогично self.set_format()

Пример:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x["text"], truncation=True, padding=True), batched=True)
>>> ds.set_format(type="numpy", columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'])
>>> ds["train"].format
{'columns': ['input_ids', 'token_type_ids', 'attention_mask', 'label'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'numpy'}
>>> ds.reset_format()
>>> ds["train"].format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}

formatted_as

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

Параметры

  • type (str, необязательный) — Тип вывода, выбранный из [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None означает, что __getitem__ возвращает объекты Python (по умолчанию).
  • columns (list[str], необязательный) — Столбцы, которые нужно отформатировать в выводе. None означает, что __getitem__ возвращает все столбцы (по умолчанию).
  • output_all_columns (bool, по умолчанию False) — Сохранять в выводе также неформатированные столбцы (в виде объектов Python).
  • **format_kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в функцию преобразования, например np.array, torch.tensor или tensorflow.ragged.constant.

Используется в операторе with. Задаёт формат возврата __getitem__ (тип и столбцы). Преобразование применяется ко всем наборам данных в словаре наборов данных.

with_format

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

Параметры

  • type (str, необязательный) — Тип вывода, выбранный из [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None означает, что __getitem__ возвращает объекты Python (по умолчанию).
  • columns (list[str], необязательный) — Столбцы, которые нужно отформатировать в выводе. None означает, что __getitem__ возвращает все столбцы (по умолчанию).
  • output_all_columns (bool, по умолчанию False) — Сохранять в выводе также неформатированные столбцы (в виде объектов Python).
  • **format_kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в функцию преобразования, например np.array, torch.tensor или tensorflow.ragged.constant.

Формат возвращаемого значения __getitem__ (тип и столбцы). Форматирование данных выполняется на лету. Формат type (например, “numpy”) используется для форматирования батчей при использовании __getitem__. Формат устанавливается для каждого набора данных в словаре наборов данных.

Также можно использовать пользовательские преобразования для форматирования с помощью with_transform().

В отличие от set_format(), with_format возвращает новый объект DatasetDict с новыми объектами Dataset.

Пример:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds["train"].format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}
>>> ds = ds.with_format("torch")
>>> ds["train"].format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'torch'}
>>> ds["train"][0]
{'text': 'compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'label': tensor(1),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
        1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
        1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
 'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}

with_transform

< >

( transform: typing.Optional[typing.Callable]columns: typing.Optional[list] = Noneoutput_all_columns: bool = False )

Параметры

  • transform (Callable, необязательный) — Пользовательское преобразование форматирования, заменяющее формат, заданный в set_format(). Функция форматирования — это вызываемый объект, который принимает батч (в виде словаря) на вход и возвращает батч. Эта функция применяется непосредственно перед возвратом объектов в __getitem__.
  • columns (list[str], необязательный) — Столбцы, которые нужно отформатировать в выводе. Если указано, входная партия данных для преобразования содержит только эти столбцы.
  • output_all_columns (bool, по умолчанию False) — Сохранять в выводе также неформатированные столбцы (как объекты Python). Если установлено в True, остальные неформатированные столбцы сохраняются вместе с результатом преобразования.

Используйте этот трансформ для установки формата возврата __getitem__. Трансформ применяется на лету к батчам при вызове __getitem__. Трансформ устанавливается для каждого датасета в словаре датасетов

Как и set_format(), это можно сбросить с помощью reset_format().

В отличие от set_transform(), with_transform возвращает новый объект DatasetDict с новыми объектами Dataset.

Пример:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> def encode(example):
...     return tokenizer(example['text'], truncation=True, padding=True, return_tensors="pt")
>>> ds = ds.with_transform(encode)
>>> ds["train"][0]
{'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1, 1, 1, 1, 1, 1, 1, 1]),
 'input_ids': tensor([  101,  1103,  2067,  1110, 17348,  1106,  1129,  1103,  6880,  1432,
        112,   188,  1207,   107, 14255,  1389,   107,  1105,  1115,  1119,
        112,   188,  1280,  1106,  1294,   170, 24194,  1256,  3407,  1190,
        170, 11791,  5253,   188,  1732,  7200, 10947, 12606,  2895,   117,
        179,  7766,   118,   172, 15554,  1181,  3498,  6961,  3263,  1137,
        188,  1566,  7912, 14516,  6997,   119,   102]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0])}

flatten

< >

( max_depth = 16 )

Разверните таблицу Apache Arrow для каждого сплита (вложенные признаки также разворачиваются). Каждый столбец со структурированным типом (struct) разворачивается в один столбец на каждое поле структуры. Остальные столбцы остаются без изменений.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("rajpurkar/squad")
>>> ds["train"].features
{'id': Value('string'),
 'title': Value('string'),
 'context': Value('string'),
 'question': Value('string'),
 'answers.text': List(Value('string')),
 'answers.answer_start': List(Value('int32'))}
>>> ds.flatten()
DatasetDict({
    train: Dataset({
        features: ['id', 'title', 'context', 'question', 'answers.text', 'answers.answer_start'],
        num_rows: 87599
    })
    validation: Dataset({
        features: ['id', 'title', 'context', 'question', 'answers.text', 'answers.answer_start'],
        num_rows: 10570
    })
})

cast

< >

( features: Features )

Параметры

  • features (Features) — Новые признаки, к которым нужно привести набор данных. Имена и порядок полей в features должны совпадать с текущими именами столбцов. Тип данных также должен допускать преобразование из одного типа в другой. Для нетривиальных преобразований, например string <-> ClassLabel, следует использовать map() для обновления набора данных.

Приведите набор данных к новому набору признаков. Преобразование применяется ко всем наборам данных в словаре наборов данных.

Пример:

>>> from datasets import load_dataset, ClassLabel, Value
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds["train"].features.copy()
>>> new_features['label'] = ClassLabel(names=['bad', 'good'])
>>> new_features['text'] = Value('large_string')
>>> ds = ds.cast(new_features)
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}

cast_column

< >

( column: strfeature )

Параметры

  • column (str) — Имя столбца.
  • feature (Feature) — Целевая переменная.

Преобразование столбца в признак для декодирования.

Пример:

>>> from datasets import load_dataset, ClassLabel
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> ds = ds.cast_column('label', ClassLabel(names=['bad', 'good']))
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('string')}

remove_columns

< >

( column_names: typing.Union[str, list[str]] ) → DatasetDict

Параметры

  • column_names (Union[str, list[str]]) — Имя столбца (столбцов), который нужно удалить.

Возвращает

DatasetDict

Копия объекта набора данных без удаляемых столбцов.

Удалите одну или несколько колонок из каждого сплита набора данных, а также связанные с ними признаки.

Преобразование применяется ко всем частям словаря набора данных.

Также можно удалить столбец с помощью map() и remove_columns, но данный метод не копирует данные оставшихся столбцов и поэтому работает быстрее.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds = ds.remove_columns("label")
DatasetDict({
    train: Dataset({
        features: ['text'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text'],
        num_rows: 1066
    })
})

rename_column

< >

( original_column_name: strnew_column_name: str )

Параметры

  • original_column_name (str) — Имя переименовываемой колонки.
  • new_column_name (str) — Новое имя столбца.

Переименование столбца в наборе данных и перемещение признаков, связанных с исходным столбцом, под новое имя столбца. Преобразование применяется ко всем наборам данных в словаре наборов данных.

Также можно переименовать столбец с помощью map() и remove_columns, но данный метод:

  • отвечает за перемещение исходных признаков под новое имя столбца.
  • не копирует данные в новый набор данных и поэтому работает значительно быстрее.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds = ds.rename_column("label", "label_new")
DatasetDict({
    train: Dataset({
        features: ['text', 'label_new'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text', 'label_new'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text', 'label_new'],
        num_rows: 1066
    })
})

rename_columns

< >

( column_mapping: dict ) → DatasetDict

Параметры

  • column_mapping (Dict[str, str]) — Сопоставление столбцов с их новыми именами.

Возвращает

DatasetDict

Копия набора данных с переименованными столбцами.

Переименовать несколько столбцов в наборе данных и переместить признаки, связанные с исходными столбцами, под новые имена столбцов. Преобразование применяется ко всем наборам данных в словаре наборов данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.rename_columns({'text': 'text_new', 'label': 'label_new'})
DatasetDict({
    train: Dataset({
        features: ['text_new', 'label_new'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text_new', 'label_new'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text_new', 'label_new'],
        num_rows: 1066
    })
})

select_columns

< >

( column_names: typing.Union[str, list[str]] )

Параметры

  • column_names (Union[str, list[str]]) — Имя столбца (столбцов), который нужно сохранить.

Выберите одну или несколько колонок из каждого сплита в наборе данных, а также связанные с ними признаки.

Преобразование применяется ко всем разделам словаря набора данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.select_columns("text")
DatasetDict({
    train: Dataset({
        features: ['text'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text'],
        num_rows: 1066
    })
})

class_encode_column

< >

( column: strinclude_nulls: bool = False )

Параметры

  • column (str) — Имя столбца, который нужно преобразовать.
  • include_nulls (bool, по умолчанию False) — Включать ли значения null в метки классов. Если True, значения null будут закодированы как метка класса "None" .

    Добавлено в 1.14.2

Преобразует указанную колонку в ClassLabel и обновляет таблицы.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("google/boolq")
>>> ds["train"].features
{'answer': Value('bool'),
 'passage': Value('string'),
 'question': Value('string')}
>>> ds = ds.class_encode_column("answer")
>>> ds["train"].features
{'answer': ClassLabel(num_classes=2, names=['False', 'True']),
 'passage': Value('string'),
 'question': Value('string')}

push_to_hub

< >

( repo_id: strconfig_name: str = 'default'set_default: typing.Optional[bool] = Nonedata_dir: typing.Optional[str] = Nonecommit_message: typing.Optional[str] = Nonecommit_description: typing.Optional[str] = Noneprivate: typing.Optional[bool] = Nonetoken: typing.Optional[str] = Nonerevision: typing.Optional[str] = Nonecreate_pr: typing.Optional[bool] = Falsemax_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[dict[str, int]] = Noneembed_external_files: bool = Truenum_proc: typing.Optional[int] = None )

Параметры

  • repo_id (str) — Идентификатор репозитория, в который выполняется загрузка, в следующем формате: <user>/<dataset_name> или <org>/<dataset_name>. Также принимает <dataset_name>, в этом случае используется пространство имён текущего пользователя.

    Также это может быть расположение внутри бакета, например, buckets/<user_or_org>/<bucket_name>/...

  • config_name (str) — Имя конфигурации набора данных. По умолчанию — “default”.
  • set_default (bool, необязательный) — Указывает, следует ли установить эту конфигурацию в качестве конфигурации по умолчанию. В противном случае конфигурацией по умолчанию является та, что называется «default».
  • data_dir (str, необязательный) — Имя каталога, который будет содержать загруженные файлы данных. По умолчанию используется config_name , если он отличается от «default», иначе «data».

    Добавлено в 2.17.0

  • commit_message (str, необязательный) — Сообщение для коммита при отправке. По умолчанию — "Upload dataset".
  • commit_description (str, необязательный) — Описание коммита, который будет создан. Кроме того, описание PR, если PR будет создан (create_pr равно True).

    Добавлено в 2.16.0

  • private (bool, optional) — Определяет, следует ли сделать репозиторий приватным. Если None (по умолчанию), репозиторий будет публичным, если только по умолчанию для организации не задан приватный режим. Это значение игнорируется, если репозиторий уже существует.
  • token (str, необязательный) — Необязательный токен аутентификации для Hugging Face Hub. Если токен не передан, по умолчанию будет использован токен, сохранённый локально при входе с помощью hf auth login. Если токен не передан и пользователь не вошёл в систему, будет выброшена ошибка.
  • revision (str, необязательный) — Ветка, в которую будут загружены файлы. По умолчанию — "main" ветка.

    Добавлено в 2.15.0

  • create_pr (bool, необязательный, по умолчанию False) — Создавать ли PR с загруженными файлами или коммитить напрямую.

    Добавлено в 2.15.0

  • max_shard_size (int или str, необязательный, по умолчанию "500MB") — Максимальный размер шардов набора данных, загружаемых на хаб. Если значение указано в виде строки, оно должно состоять из цифр, за которыми следует единица измерения (например, "500MB" или "1GB").
  • num_shards (Dict[str, int], необязательный) — Количество шардов для записи. По умолчанию количество шардов зависит от max_shard_size. Используйте словарь, чтобы задать разное значение num_shards для каждого сплита.

    Добавлено в 2.8.0

  • embed_external_files (bool, по умолчанию True) — Включает ли встраивание байтов файлов в шарды. В частности, перед push для полей типа:
    • Audio и Image удаляют информацию о локальных путях и встраивают содержимое файлов в файлы Parquet.
  • num_proc (int, необязательный, по умолчанию None) — Количество процессов при подготовке и загрузке набора данных. Это полезно, если набор данных состоит из множества образцов или медиафайлов для встраивания. Использует контекст «spawn» для работы с hf_xet, rust-клиентом для быстрой загрузки на HF. Многопроцессорность по умолчанию отключена.

    Добавлено в 4.0.0

Выгружает DatasetDict на хаб в формате Parquet. Выгрузка DatasetDict выполняется с помощью HTTP-запросов и не требует установки git или git-lfs.

Каждый раздел набора данных будет загружен независимо. Загруженный набор данных сохранит исходные имена разделов.

Полученные файлы Parquet по умолчанию являются самодостаточными: если ваш набор данных содержит данные Image или Audio, файлы Parquet будут хранить байты ваших изображений или аудиофайлов. Вы можете отключить это, установив embed_external_files в False.

Пример:

>>> dataset_dict.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", num_shards={"train": 1024, "test": 8})

Если вы хотите добавить новую конфигурацию (или подмножество) к набору данных (например, если набор данных содержит несколько задач/версий/языков):

>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")

save_to_disk

< >

( dataset_dict_path: typing.Union[str, bytes, os.PathLike]max_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[dict[str, int]] = Nonenum_proc: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None )

Параметры

  • dataset_dict_path (path-like) — Путь (например, dataset/train) или удалённый URI (например, s3://my-bucket/dataset/train) каталога словаря датасета, в который будет сохранён словарь датасета.
  • max_shard_size (int or str, необязательный, по умолчанию "500MB") — Максимальный размер фрагментов набора данных, сохраняемых в файловую систему. Если значение указано в виде строки, оно должно состоять из цифр, за которыми следует единица измерения (например, "50MB").
  • num_shards (Dict[str, int], необязательный) — Количество шардов для записи. По умолчанию количество шардов зависит от max_shard_size и num_proc. Необходимо указать количество шардов для каждого набора данных в словаре наборов данных. Используйте словарь, чтобы задать разное значение num_shards для каждого сплита.

    Добавлено в 2.8.0

  • num_proc (int, необязательный, по умолчанию None) — Количество процессов при загрузке и локальной генерации набора данных. По умолчанию многопоточность отключена.

    Добавлено в 2.8.0

  • storage_options (dict, необязательный) — Пары ключ/значение, передаваемые в файловую систему, если она используется.

    Добавлено в 2.8.0

Сохраняет словарь датасета в файловую систему с помощью fsspec.spec.AbstractFileSystem.

Для данных Image, Audio и Video:

Все данные Image(), Audio() и Video() хранятся в файлах arrow. Если вы хотите хранить пути или URL, используйте тип Value(“string”).

Пример:

>>> dataset_dict.save_to_disk("path/to/dataset/directory")
>>> dataset_dict.save_to_disk("path/to/dataset/directory", max_shard_size="1GB")
>>> dataset_dict.save_to_disk("path/to/dataset/directory", num_shards={"train": 1024, "test": 8})

load_from_disk

< >

( dataset_dict_path: typing.Union[str, bytes, os.PathLike]keep_in_memory: typing.Optional[bool] = Nonestorage_options: typing.Optional[dict] = None )

Параметры

  • dataset_dict_path (path-like) — Путь (например, "dataset/train") или удалённый URI (например, "s3//my-bucket/dataset/train") каталога словаря датасета, из которого будет загружен словарь датасета.
  • keep_in_memory (bool, по умолчанию None) — Скопировать ли датасет в оперативную память. Если None, датасет не будет скопирован в оперативную память, если только это явно не включено путём установки datasets.config.IN_MEMORY_MAX_SIZE в ненулевое значение. Подробнее см. в разделе улучшение производительности.
  • storage_options (dict, необязательный) — Пары ключ/значение, передаваемые в файловую систему, если она используется.

    Добавлено в 2.8.0

Загрузите набор данных, ранее сохранённый с помощью save_to_disk из файловой системы с использованием fsspec.spec.AbstractFileSystem.

Пример:

>>> ds = load_from_disk('path/to/dataset/directory')

from_csv

< >

( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )

Параметры

  • path_or_paths (dict из path-like) — Путь (или пути) к файлу (файлам) CSV.
  • features (Features, необязательный) — Особенности набора данных.
  • cache_dir (str, необязательный, по умолчанию "~/.cache/huggingface/datasets") — Каталог для кэширования данных.
  • keep_in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.
  • **kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в pandas.read_csv.

Создание DatasetDict из файла(ов) CSV.

Пример:

>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_csv({'train': 'path/to/dataset.csv'})

from_json

< >

( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )

Параметры

  • path_or_paths (path-like или список path-like) — Путь (или пути) к файлу (файлам) JSON Lines.
  • features (Features, необязательный) — Особенности набора данных.
  • cache_dir (str, необязательный, по умолчанию "~/.cache/huggingface/datasets") — Каталог для кэширования данных.
  • keep_in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.
  • **kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в JsonConfig.

Создание DatasetDict из файла(ов) JSON Lines.

Пример:

>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_json({'train': 'path/to/dataset.json'})

from_parquet

< >

( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsecolumns: typing.Optional[list[str]] = None**kwargs )

Параметры

  • path_or_paths (dict из path-like) — Путь (или пути) к файлу (файлам) CSV.
  • features (Features, необязательный) — Особенности набора данных.
  • cache_dir (str, необязательный, по умолчанию "~/.cache/huggingface/datasets") — Каталог для кэширования данных.
  • keep_in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.
  • columns (list[str], необязательный) — Если не None, из файла будут прочитаны только эти столбцы. Имя столбца может быть префиксом вложенного поля, например, ‘a’ выберет ‘a.b’, ‘a.c’ и ‘a.d.e’.
  • **kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в ParquetConfig.

Создание DatasetDict из файла(ов) Parquet.

Пример:

>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_parquet({'train': 'path/to/dataset/parquet'})

from_text

< >

( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )

Параметры

  • path_or_paths (dict из path-like) — Путь (или пути) к текстовому файлу (или файлам).
  • features (Features, необязательный) — Особенности набора данных.
  • cache_dir (str, необязательный, по умолчанию "~/.cache/huggingface/datasets") — Каталог для кэширования данных.
  • keep_in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.
  • **kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в TextConfig.

Создание DatasetDict из текстового файла или файлов.

Пример:

>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_text({'train': 'path/to/dataset.txt'})

IterableDataset

Базовый класс IterableDataset реализует итерируемый Dataset, основанный на генераторах Python.

класс datasets.IterableDataset

< >

( ex_iterable: _BaseExamplesIterableinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneformatting: typing.Optional[datasets.iterable_dataset.FormattingConfig] = Nonedistributed: typing.Optional[datasets.iterable_dataset.DistributedConfig] = Nonetoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

Набор данных, основанный на итерируемом объекте.

from_file

< >

( filename: str )

Параметры

  • filename (str) — Имя файла набора данных.

Создайте экземпляр IterableDataset из таблицы Arrow по имени файла.

from_pandas

< >

( df: DataFramefeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Nonepreserve_index: typing.Optional[bool] = Nonenum_shards: typing.Optional[int] = 1 )

Параметры

  • df (pandas.DataFrame) — Dataframe, содержащий набор данных.
  • features (Features, необязательный) — Особенности набора данных.
  • info (DatasetInfo, необязательный) — Информация о наборе данных, например описание, цитирование и т. д.
  • split (NamedSplit, необязательный) — Имя разбиения набора данных.
  • preserve_index (bool, необязательный) — Определяет, следует ли сохранять индекс в виде дополнительного столбца в результирующем Dataset. Значение по умолчанию None сохраняет индекс как столбец, за исключением RangeIndex, который хранится только в метаданных. Используйте preserve_index=True, чтобы принудительно сохранить его в виде столбца.
  • num_shards (int, по умолчанию 1) — Количество шардов, определяемых при создании итерируемого набора данных. Это особенно полезно для больших наборов данных, чтобы обеспечить корректное перемешивание, а также для быстрого параллельного чтения с помощью PyTorch DataLoader или в распределённых средах.

Преобразуйте pandas.DataFrame в pyarrow.Table, чтобы создать IterableDataset.

Типы столбцов в результирующей таблице Arrow выводятся из dtypes pandas.Series в DataFrame. В случае Series, не являющихся объектами, NumPy dtype преобразуется в соответствующий ему тип Arrow. В случае object необходимо угадать тип данных, анализируя Python-объекты в этой Series.

Обратите внимание, что Series с типом данных object не всегда содержат достаточно информации для однозначного определения соответствующего типа Arrow. Если тип не удаётся вывести, например, если длина DataFrame равна 0 или Series содержит только объекты None/nan, тип устанавливается в null. Этого поведения можно избежать, явно создав признаки и передав их в эту функцию.

Important: a dataset created with from_pandas() lives in memory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it on disk and reload using e.g. to_parquet / from_parquet.

Пример:

>>> ds = IterableDataset.from_pandas(df)

from_dict

< >

( mapping: dictfeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Nonenum_shards: typing.Optional[int] = 1 )

Параметры

  • mapping (Mapping) — Соответствие строк массивам или спискам Python.
  • features (Features, необязательный) — Особенности набора данных.
  • info (DatasetInfo, необязательный) — Информация о наборе данных, например описание, цитирование и т. д.
  • split (NamedSplit, необязательный) — Имя разбиения набора данных.
  • num_shards (int, по умолчанию 1) — Количество шардов, определяемых при создании итерируемого набора данных. Это особенно полезно для больших наборов данных, чтобы обеспечить корректное перемешивание, а также для быстрого параллельного чтения с помощью PyTorch DataLoader или в распределённых средах.

Преобразуйте dict в pyarrow.Table, чтобы создать IterableDataset.

Important: a dataset created with from_dict() lives in memory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. to_parquet / from_parquet.

from_list

< >

( mapping: listfeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Nonenum_shards: typing.Optional[int] = 1 )

Параметры

  • mapping (List[dict]) — список отображений строк в значения строк.
  • features (Features, необязательно) — признаки набора данных.
  • info (DatasetInfo, optional) — Информация о наборе данных, например, описание, цитирование и т. д.
  • split (NamedSplit, optional) — Имя сплита набора данных.
  • num_shards (int, по умолчанию 1) — Количество шардов, определяемых при создании итерируемого набора данных. Это особенно полезно для больших наборов данных, чтобы обеспечить корректное перемешивание, а также для быстрого параллельного чтения с помощью PyTorch DataLoader или в распределённых средах.

Преобразуйте список словарей в pyarrow.Table, чтобы создать IterableDataset`.

Обратите внимание, что ключи первого элемента будут использоваться для определения столбцов набора данных, независимо от того, что передано в features.

Important: a dataset created with from_list() lives in memory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. from_parquet / to_parquet.

from_generator

< >

( generator: typing.Callablefeatures: typing.Optional[datasets.features.features.Features] = Nonegen_kwargs: typing.Optional[dict] = Nonesplit: NamedSplit = NamedSplit('train') )

Параметры

  • generator (Callable) — Функция-генератор, которая yields примеры.
  • features (Features, необязательный) — Особенности набора данных.
  • gen_kwargs(dict, необязательный) — Параметры, передаваемые в вызываемый объект generator. Вы можете определить итерируемый датасет с шардированием, передав список шардов в gen_kwargs. Это позволяет улучшить перемешивание данных при итерации по датасету с несколькими рабочими процессами.
  • split (NamedSplit, по умолчанию Split.TRAIN) — Имя сплита, которое будет присвоено набору данных.

    Добавлено в 2.21.0

Создание набора данных Iterable из генератора.

Пример:

>>> def gen():
...     yield {"text": "Good", "label": 0}
...     yield {"text": "Bad", "label": 1}
...
>>> ds = IterableDataset.from_generator(gen)
>>> def gen(shards):
...     for shard in shards:
...         with open(shard) as f:
...             for line in f:
...                 yield {"line": line}
...
>>> shards = [f"data{i}.txt" for i in range(32)]
>>> ds = IterableDataset.from_generator(gen, gen_kwargs={"shards": shards})
>>> ds = ds.shuffle(seed=42, buffer_size=10_000)  # shuffles the shards order + uses a shuffle buffer
>>> from torch.utils.data import DataLoader
>>> dataloader = DataLoader(ds.with_format("torch"), num_workers=4)  # give each worker a subset of 32/4=8 shards

remove_columns

< >

( column_names: typing.Union[str, list[str]] ) → IterableDataset

Параметры

  • column_names (Union[str, List[str]]) — Имя столбца (столбцов), который нужно удалить.

Возвращает

IterableDataset

Копия объекта набора данных без удаляемых столбцов.

Удаляет одну или несколько колонок в наборе данных, а также связанные с ними признаки. Удаление выполняется на лету для примеров при итерации по набору данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .', 'label': 1}
>>> ds = ds.remove_columns("label")
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

select_columns

< >

( column_names: typing.Union[str, list[str]] ) → IterableDataset

Параметры

  • column_names (Union[str, List[str]]) — Имя столбца (столбцов) для выбора.

Возвращает

IterableDataset

Копия объекта набора данных с выбранными столбцами.

Выберите одну или несколько колонок в наборе данных и связанные с ними признаки. Выбор выполняется на лету для примеров при итерации по набору данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .', 'label': 1}
>>> ds = ds.select_columns("text")
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

cast_column

< >

( column: strfeature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure] ) → IterableDataset

Параметры

  • column (str) — Имя столбца.
  • feature (Feature) — Целевая переменная.

Возвращает

IterableDataset

Преобразование столбца в признак для декодирования.

Пример:

>>> from datasets import load_dataset, Audio
>>> ds = load_dataset("PolyAI/minds14", name="en-US", split="train", streaming=True)
>>> ds.features
{'audio': Audio(sampling_rate=8000, mono=True, decode=True, id=None),
 'english_transcription': Value('string'),
 'intent_class': ClassLabel(num_classes=14, names=['abroad', 'address', 'app_error', 'atm_limit', 'balance', 'business_loan',  'card_issues', 'cash_deposit', 'direct_debit', 'freeze', 'high_value_payment', 'joint_account', 'latest_transactions', 'pay_bill']),
 'lang_id': ClassLabel(num_classes=14, names=['cs-CZ', 'de-DE', 'en-AU', 'en-GB', 'en-US', 'es-ES', 'fr-FR', 'it-IT', 'ko-KR',  'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'zh-CN']),
 'path': Value('string'),
 'transcription': Value('string')}
>>> ds = ds.cast_column("audio", Audio(sampling_rate=16000))
>>> ds.features
{'audio': Audio(sampling_rate=16000, mono=True, decode=True, id=None),
 'english_transcription': Value('string'),
 'intent_class': ClassLabel(num_classes=14, names=['abroad', 'address', 'app_error', 'atm_limit', 'balance', 'business_loan',  'card_issues', 'cash_deposit', 'direct_debit', 'freeze', 'high_value_payment', 'joint_account', 'latest_transactions', 'pay_bill']),
 'lang_id': ClassLabel(num_classes=14, names=['cs-CZ', 'de-DE', 'en-AU', 'en-GB', 'en-US', 'es-ES', 'fr-FR', 'it-IT', 'ko-KR',  'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'zh-CN']),
 'path': Value('string'),
 'transcription': Value('string')}

cast

< >

( features: Features ) → IterableDataset

Параметры

  • features (Features) — Новые признаки, к которым нужно привести набор данных. Имена полей в признаках должны совпадать с текущими именами столбцов. Тип данных также должен допускать преобразование из одного типа в другой. Для нетривиальных преобразований, например string <-> ClassLabel, следует использовать map() для обновления Dataset.

Возвращает

IterableDataset

Копия набора данных с преобразованными признаками.

Преобразовать набор данных в новый набор признаков.

Пример:

>>> from datasets import load_dataset, ClassLabel, Value
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> ds.features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds.features.copy()
>>> new_features["label"] = ClassLabel(names=["bad", "good"])
>>> new_features["text"] = Value("large_string")
>>> ds = ds.cast(new_features)
>>> ds.features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}

decode

< >

( enable: bool = Truenum_threads: typing.Optional[int] = None ) → IterableDataset

Параметры

  • enable (bool, по умолчанию True) — Включает или отключает декодирование функций.
  • num_threads (int, необязательный, по умолчанию None) — Включает многопоточность для декодирования признаков. Обратите внимание, что load_dataset() по умолчанию уже использует несколько потоков при потоковой загрузке набора данных с HF, если в нём есть декодируемые признаки. По умолчанию num_threads устанавливается в 32, если хотя бы один признак требует декодирования, и в 0 в противном случае.

Возвращает

IterableDataset

Копия набора данных с преобразованными признаками.

Включить или отключить декодирование признаков датасета для аудио, изображений и видео.

Если включено (по умолчанию), типы медиа декодируются:

  • audio -> словарь с ключами “array”, “sampling_rate” и “path”
  • image -> PIL.Image
  • video -> torchcodec.decoders.VideoDecoder

Многопоточность можно включить с помощью num_threads: в этом случае каждый медиафайл читается и декодируется в отдельном рабочем потоке, что позволяет накладывать сетевые запросы для последовательных примеров друг на друга. Это особенно полезно для ускорения потоковой передачи удалённых данных, и load_dataset() включает многопоточность по умолчанию при потоковой передаче удалённого набора данных с декодируемыми признаками (см. HF_DATASETS_DECODE_NUM_THREADS). Наборы данных, читаемые с локального диска, передаются потоком с num_threads=0, поскольку для локальных данных на быстрых дисках многопоточность может работать медленнее, чем декодирование в основном потоке. Так как примеры декодируются заранее, каждый активный поток может удерживать один пример в памяти: уменьшите num_threads, чтобы снизить потребление памяти.

Отключение декодирования полезно, если вы хотите работать с путями или байтами медиафайлов, не декодируя их содержимое. Чтобы отключить декодирование, можно использовать .decode(False), что эквивалентно вызову .cast() или .cast_column() со всеми типами Audio, Image и Video, установленными в decode=False.

Примеры:

Отключить декодирование:

>>> from datasets import load_dataset
>>> ds = load_dataset("sshh12/planet-textures", split="train", streaming=True)
>>> next(iter(ds))
{'image': <PIL.PngImagePlugin.PngImageFile image mode=RGB size=2048x1024>,
'text': 'A distant celestial object with an icy crust, displaying a light blue shade, covered with round pits and rugged terrains.'}
>>> ds = ds.decode(False)
>>> ds.features
{'image': Image(mode=None, decode=False, id=None),
'text': Value('string')}
>>> next(iter(ds))
{
  'image': {
    'path': 'hf://datasets/sshh12/planet-textures@69dc4cef7a5c4b2cfe387727ec8ea73d4bff7302/train/textures/0000.png',
    'bytes': None
  },
  'text': 'A distant celestial object with an icy crust, displaying a light blue shade, covered with round pits and rugged terrains.'
}

Ускорьте потоковую передачу с помощью многопоточности:

>>> import os
>>> from datasets import load_dataset
>>> from tqdm import tqdm
>>> ds = load_dataset("sshh12/planet-textures", split="train", streaming=True)
>>> # already threaded by default with 32 threads, but more threads can help going even faster
>>> ds = ds.decode(num_threads=64)
>>> for _ in tqdm(ds):  # 2 times faster !
...     ...

__iter__

< >

( )

iter

< >

( batch_size: intdrop_last_batch: bool = False )

Параметры

  • batch_size (int) — размер каждой выборки, которую нужно вернуть.
  • drop_last_batch (bool, по умолчанию False) — следует ли отбрасывать последний батч, если его размер меньше batch_size

Перебирайте батчи размера batch_size.

map

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000drop_last_batch: bool = Falseremove_columns: typing.Union[str, list[str], NoneType] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonefn_kwargs: typing.Optional[dict] = None )

Параметры

  • function (Callable, необязательный, по умолчанию None) — Функция, применяемая на лету к примерам при итерации по набору данных. Она должна иметь одну из следующих сигнатур:
    • function(example: Dict[str, Any]) -> Dict[str, Any] если batched=False и with_indices=False
    • function(example: Dict[str, Any], idx: int) -> Dict[str, Any] если batched=False и with_indices=True
    • function(batch: Dict[str, List]) -> Dict[str, List], если batched=True и with_indices=False
    • function(batch: Dict[str, List], indices: List[int]) -> Dict[str, List], если batched=True и with_indices=True

    Для расширенного использования функция также может возвращать pyarrow.Table. Если функция асинхронная, то map будет выполнять её параллельно. Более того, если ваша функция ничего не возвращает (None), то map выполнит её и вернёт датасет без изменений. Если функция не указана, по умолчанию используется тождественная функция: lambda x: x.

  • with_indices (bool, по умолчанию False) — Передавать индексы примеров в function. Обратите внимание, что в этом случае сигнатура function должна быть def function(example, idx[, rank]): ....
  • input_columns (Optional[Union[str, List[str]]], по умолчанию None) — Столбцы, передаваемые в function в качестве позиционных аргументов. Если None, в качестве одного аргумента передаётся словарь, отображающий все отформатированные столбцы.
  • batched (bool, по умолчанию False) — Передавать в function пакет примеров.
  • batch_size (int, необязательный, по умолчанию 1000) — Количество примеров в каждой партии, передаваемой в function, если batched=True. Если batch_size <= 0 или batch_size == None, весь набор данных передается в function как одна партия.
  • drop_last_batch (bool, по умолчанию False) — Определяет, следует ли отбрасывать последний батч, если его размер меньше batch_size, вместо его обработки функцией.
  • remove_columns ([List[str]], необязательный, по умолчанию None) — Удаляет выбранные столбцы во время выполнения отображения. Столбцы удаляются до обновления примеров с помощью вывода function, то есть если function добавляет столбцы с именами из remove_columns, эти столбцы будут сохранены.
  • features ([Features], необязательный, по умолчанию None) — Типы признаков результирующего набора данных.
  • fn_kwargs (Dict, необязательный, по умолчанию None) — Параметры с ключами, передаваемые в function.

Применяет функцию ко всем примерам в итерируемом наборе данных (по отдельности или партиями) и обновляет их. Если функция возвращает столбец, который уже существует, он будет перезаписан. Функция применяется на лету к примерам при итерации по набору данных.

Вы можете указать, должна ли функция обрабатываться батчами или нет, с помощью параметра batched:

  • If batched is False, then the function takes 1 example in and should return 1 example. An example is a dictionary, e.g. {"text": "Hello there !"}.
  • If batched is True and batch_size is 1, then the function takes a batch of 1 example as input and can return a batch with 1 or more examples. A batch is a dictionary, e.g. a batch of 1 example is {“text”: [“Hello there !”]}.
  • Если True и batch_size равно n > 1, функция принимает на вход батч из n примеров и может вернуть батч из n примеров или произвольного количества примеров. Обратите внимание, что последний батч может содержать меньше n примеров. Батч — это словарь, например, батч из n примеров — это {"text": ["Hello there !"] * n}.

Если функция асинхронная, то map будет выполнять её параллельно, с максимумом в тысячу одновременных вызовов. Рекомендуется использовать asyncio.Semaphore в вашей функции, если вы хотите установить максимальное количество операций, которые могут выполняться одновременно.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'Review: the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'Review: the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'Review: effective but too-tepid biopic'}]

rename_column

< >

( original_column_name: strnew_column_name: str ) → IterableDataset

Параметры

  • original_column_name (str) — Имя переименовываемой колонки.
  • new_column_name (str) — Новое имя столбца.

Возвращает

IterableDataset

Копия набора данных с переименованной колонкой.

Переименовать столбец в наборе данных и переместить признаки, связанные с исходным столбцом, под новым именем столбца.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> next(iter(ds))
{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}
>>> ds = ds.rename_column("text", "movie_review")
>>> next(iter(ds))
{'label': 1,
 'movie_review': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

фильтр

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000fn_kwargs: typing.Optional[dict] = None )

Параметры

  • function (Callable) — Вызываемый объект с одной из следующих сигнатур:
    • function(example: Dict[str, Any]) -> bool, если with_indices=False, batched=False
    • function(example: Dict[str, Any], indices: int) -> bool если with_indices=True, batched=False
    • function(example: Dict[str, List]) -> List[bool] если with_indices=False, batched=True
    • function(example: Dict[str, List], indices: List[int]) -> List[bool] если with_indices=True, batched=True

    Если функция асинхронная, то filter выполнит вашу функцию параллельно. Если функция не указана, по умолчанию используется функция, всегда возвращающая True: lambda x: True.

  • with_indices (bool, по умолчанию False) — Передавать индексы примеров в function. Обратите внимание, что в этом случае сигнатура function должна быть def function(example, idx): ....
  • input_columns (str или List[str], необязательный) — Столбцы, которые передаются в function в качестве позиционных аргументов. Если None, в качестве одного аргумента передаётся словарь, отображающий все отформатированные столбцы.
  • batched (bool, по умолчанию False) — Передавать в function пакет примеров.
  • batch_size (int, необязательный, по умолчанию 1000) — Количество примеров в каждой партии, передаваемых в function, если batched=True.
  • fn_kwargs (Dict, необязательный, по умолчанию None) — Параметры с ключами, передаваемые в function.

Примените функцию фильтрации ко всем элементам, чтобы в наборе данных оставались только примеры, удовлетворяющие условию фильтрации. Фильтрация выполняется на лету при итерации по набору данных.

Если функция асинхронная, то filter будет выполнять её параллельно, с максимумом в тысячу одновременных вызовов (настраивается). Рекомендуется использовать asyncio.Semaphore в вашей функции, если вы хотите задать максимальное количество операций, которые могут выполняться одновременно.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> ds = ds.filter(lambda x: x["label"] == 0)
>>> list(ds.take(3))
[{'label': 0, 'movie_review': 'simplistic , silly and tedious .'},
 {'label': 0,
 'movie_review': "it's so laddish and juvenile , only teenage boys could possibly find it funny ."},
 {'label': 0,
 'movie_review': 'exploitative and largely devoid of the depth or sophistication that would make watching such a graphic treatment of the crimes bearable .'}]

shuffle

< >

( seed = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonebuffer_size: int = 1000max_buffer_input_shards: int = 10 )

Параметры

  • seed (int, необязательный, по умолчанию None) — Случайное зерно, которое будет использоваться для перемешивания набора данных. Оно применяется для выборки из буфера перемешивания, а также для перемешивания фрагментов данных.
  • generator (numpy.random.Generator, необязательный) — Генератор случайных чисел Numpy, используемый для вычисления перестановки строк набора данных. Если generator=None (по умолчанию), используется np.random.default_rng (генератор битов по умолчанию (PCG64) в NumPy).
  • buffer_size (int, по умолчанию 1000) — Размер буфера.
  • max_buffer_input_shards (int, по умолчанию 10) — Максимальное количество шардов, используемых для заполнения буфера за один раз.

Случайным образом перемешивает элементы этого набора данных.

Этот набор данных заполняет буфер элементами в количестве buffer_size, а затем случайным образом выбирает элементы из этого буфера, заменяя выбранные элементы новыми. Для идеального перемешивания размер буфера должен быть больше или равен общему размеру набора данных.

Например, если ваш набор данных содержит 10 000 элементов, но buffer_size установлен в 1000, то shuffle изначально выбирает случайный элемент только из первых 1000 элементов в буфере. После того как элемент выбран, его место в буфере занимает следующий (т. е. 1001-й) элемент, поддерживая буфер из 1000 элементов.

Если датасет состоит из нескольких шардов, буфер заполняется с использованием не более max_buffer_input_shards шардов за раз, при этом также перемешивается порядок шардов. Это значительно повышает качество перемешивания. Входящие шарды чередуются внутри каждого узла и воркера, сохраняя количество шардов, доступных для параллельной загрузки данных.

Однако, если порядок был зафиксирован с помощью skip() или take(), то порядок шардов сохраняется без изменений, и для заполнения буфера используется только один шард за раз.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> list(ds.take(3))
[{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .',
 'label': 1},
 {'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .',
 'label': 1},
 {'text': 'effective but too-tepid biopic', 'label': 1}]
>>> shuffled_ds = ds.shuffle(seed=42)
>>> list(shuffled_ds.take(3))
[{'text': "a sports movie with action that's exciting on the field and a story you care about off it .",
 'label': 1},
 {'text': 'at its best , the good girl is a refreshingly adult take on adultery . . .',
 'label': 1},
 {'text': "sam jones became a very lucky filmmaker the day wilco got dropped from their record label , proving that one man's ruin may be another's fortune .",
 'label': 1}]
>>> resharded_ds = ds.reshard()  # useful to shard Parquet datasets by row group instead of by file, improving shuffling quality on dataset with one or few files.
>>> shuffled_resharded_ds = resharded_ds.shuffle(seed=42)
>>> list(shuffled_resharded_ds.take(3))
[{'text': 'this mistaken-identity picture is so film-culture referential that the final product is a ghost .',
 'label': 0},
 {'text': 'woody allen used to ridicule movies like hollywood ending . now he makes them .',
 'label': 0},
 {'text': "not only is undercover brother as funny , if not more so , than both austin powers films , but it's also one of the smarter , savvier spoofs to come along in some time .",
 'label': 1}]

пакет

< >

( batch_size: typing.Optional[int] = Noneby_column: typing.Union[str, list[str], NoneType] = Nonedrop_last_batch: bool = False )

Параметры

  • batch_size (int, optional) — Количество образцов в каждой партии.
  • by_column (Union[str, list[str], необязательный параметр — Столбец, используемый для группировки примеров в батчи. Соседние примеры с одинаковым значением в этом столбце объединяются в один батч. Также может быть списком столбцов, если требуется группировка по нескольким столбцам. При группировке по столбцу параметр batch_size используется только для контроля размера батчей, которые объединяются или нарезаются во время накопления.

    Добавлено в 4.9.0

  • drop_last_batch (bool, по умолчанию False) — Определяет, следует ли отбрасывать последний неполный батч.

Группируйте образцы из набора данных в батчи.

Пример:

>>> ds = load_dataset("some_dataset", streaming=True)
>>> batched_ds = ds.batch(batch_size=32)

пропустить

< >

( n: int )

Параметры

  • n (int) — Количество элементов, которые нужно пропустить.

Создайте новый IterableDataset, который пропускает первые n элементов.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]
>>> ds = ds.skip(1)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'if you sometimes like to go to the movies to have fun , wasabi is a good place to start .'}]

take

< >

( n: int )

Параметры

  • n (int) — Количество элементов для извлечения.

Создайте новый IterableDataset только с первыми n элементами.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> small_ds = ds.take(2)
>>> list(small_ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'}]

shard

< >

( num_shards: intindex: intcontiguous: bool = True )

Параметры

  • num_shards (int) — Количество шардов, на которые нужно разделить набор данных.
  • index (int) — Какой шунк выбрать и вернуть.
  • contiguous — (bool, по умолчанию True): Определяет, следует ли выбирать непрерывные блоки индексов для шардов.

Возвращает index-й фрагмент из набора данных, разделённого на num_shards частей.

Разбиение выполняется детерминированно. dataset.shard(n, i) делит набор данных на непрерывные фрагменты, поэтому после обработки их легко снова объединить. Если dataset.num_shards % n == l, то первые l набора данных содержат по (dataset.num_shards // n) + 1 фрагменту, а остальные — по (dataset.num_shards // n) фрагменту. datasets.concatenate_datasets([dset.shard(n, i) for i in range(n)]) возвращает набор данных с тем же порядком элементов, что и в исходном. В частности, dataset.shard(dataset.num_shards, i) возвращает набор данных с одним фрагментом.

Примечание: n должно быть меньше или равно количеству шардов в наборе данных dataset.num_shards.

С другой стороны, dataset.shard(n, i, contiguous=False) содержит все шарды набора данных, у которых индекс по модулю n = i.

Убедитесь, что операция разделения на шарды выполняется до применения любого оператора, использующего случайность (например, shuffle). Лучше всего использовать оператор разделения на шарды на раннем этапе конвейера обработки данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("fancyzhx/amazon_polarity", split="train", streaming=True)
>>> ds
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 4
})
>>> ds.shard(num_shards=2, index=0)
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 2
})

reshard

< >

( )

При возможности перераспределите набор данных, то есть разделите текущие шарды на большее количество шардов. Это увеличивает число шардов, и в результате num_shards >= previous_num_shards. Равенство возможно, если ни один шард не может быть разделён дальше.

Механизм ресхардирования зависит от формата файла набора данных:

  • Parquet: разбивка на шарды по группам строк, а не по файлам
  • Vortex: шард на диапазон последовательных чанков (каждый примерно по 64 МБ данных файла), а не на каждый файл
  • Другое: пока не реализовано (вклад приветствуется!)

Убедитесь, что операция reshard/shard выполнена перед использованием любого оператора, вносящего случайность (например, shuffle). Лучше всего использовать оператор sharding на раннем этапе конвейера обработки данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("fancyzhx/amazon_polarity", split="train", streaming=True)
>>> ds
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 4
})
>>> ds.reshard()
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 3600
})

repeat

< >

( num_times: typing.Optional[int] )

Параметры

  • num_times (int) or (None) — Количество повторений набора данных. Если None, набор данных будет повторяться бесконечно.

Создайте новый IterableDataset, который повторяет базовый набор данных num_times раз.

Пустой вход приводит к завершению даже в том случае, если num_times равно None.

Примечание. Эффект вызова shuffle после repeat сильно зависит от размера буфера. При buffer_size 1 дублирующиеся данные никогда не встречаются в одной итерации, даже после перемешивания: ds.repeat(n).shuffle(seed=42, buffer_size=1) эквивалентно ds.shuffle(seed=42, buffer_size=1).repeat(n), и перемешивает только порядок шардов внутри каждой итерации. При размере буфера >= (число образцов в наборе данных * num_times) мы получаем полное перемешивание повторенных данных, то есть можем наблюдать дубликаты в одной итерации.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds = ds.take(2).repeat(2)
>>> list(ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]

to_csv

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**to_csv_kwargs ) → int

Параметры

  • path_or_buf (PathLike или FileOrBuffer) — путь к файлу (например, file.csv), удалённый URI (например, hf://datasets/username/my_dataset_name/data.csv) или объект BinaryIO, в который набор данных будет сохранён в указанном формате.
  • batch_size (int, необязательный) — Размер батча, который загружается в память и записывается за один раз. По умолчанию datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • storage_options (dict, необязательный) — Пары ключ/значение, передаваемые в файловую систему, если таковая имеется.
  • **to_csv_kwargs (дополнительные именованные аргументы) — Параметры для передачи в pandas.DataFrame.to_csv из pandas. Параметр index по умолчанию равен False, если не указан. Если вы хотите записать индекс, передайте index=True и также задайте имя для столбца индекса, передав index_label.

Возвращает

int

Количество записанных символов или байтов.

Экспортирует набор данных в csv.

Этот метод итерирует по набору данных и полностью загружает его в память перед записью.

Пример:

>>> ds.to_csv("path/to/dataset/directory")

to_pandas

< >

( batch_size: typing.Optional[int] = Nonebatched: bool = False )

Параметры

  • batch_size (int, необязательный) — Размер (количество строк) батчей, если batched равно True. По умолчанию — datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • batched (bool) — Установите True, чтобы вернуть генератор, выдающий датасет батчами по batch_size строк. По умолчанию False (возвращает весь датасет сразу).

Возвращает набор данных в виде pandas.DataFrame. Также может возвращать генератор для больших наборов данных.

Пример:

>>> ds.to_pandas()

to_dict

< >

( batch_size: typing.Optional[int] = Nonebatched: bool = False )

Параметры

  • batch_size (int, необязательный) — размер (количество строк) батчей, если batched равно True. По умолчанию — datasets.config.DEFAULT_MAX_BATCH_SIZE.

Возвращает набор данных в виде словаря Python. Также может возвращать генератор для больших наборов данных.

Пример:

>>> ds.to_dict()

to_json

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**to_json_kwargs ) → int

Параметры

  • path_or_buf (PathLike или FileOrBuffer) — путь к файлу (например, file.json), удалённый URI (например, hf://datasets/username/my_dataset_name/data.json) или объект BinaryIO, в который набор данных будет сохранён в указанном формате.
  • batch_size (int, необязательный) — Размер батча, который загружается в память и записывается за один раз. По умолчанию datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • storage_options (dict, необязательный) — Пары ключ/значение, передаваемые в файловую систему, если таковая имеется.
  • **to_json_kwargs (additional keyword arguments) — Parameters to pass to pandas’s pandas.DataFrame.to_json. Default arguments are lines=True and orient="records". The parameter indexdefaults toFalseiforientis“split”or“table”. If you would like to write the index, pass index=True`.

Возвращает

int

Количество записанных символов или байтов.

Экспортируйте набор данных в JSON Lines или JSON.

Этот метод итерирует по набору данных и полностью загружает его в память перед записью.

Формат вывода по умолчанию — JSON Lines. Чтобы экспортировать в JSON, передайте аргумент lines=False и нужный orient.

Пример:

>>> ds.to_json("path/to/dataset/directory/filename.jsonl")
>>> num_shards = dataset.num_shards
>>> for index in range(num_shards):
...     shard = dataset.shard(index, num_shards)
...     shard.to_json(f"path/of/my/dataset/data-{index:05d}.jsonl")

to_parquet

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**parquet_writer_kwargs ) → int

Параметры

  • path_or_buf (PathLike или FileOrBuffer) — путь к файлу (например, file.parquet), удалённый URI (например, hf://datasets/username/my_dataset_name/data.parquet) или объект BinaryIO, в который набор данных будет сохранён в указанном формате.
  • batch_size (int, необязательный) — Размер батча, который загружается в память и записывается за один раз. По умолчанию datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • storage_options (dict, необязательный) — Пары ключ/значение, передаваемые в файловую систему, если она используется.

    Добавлено в 2.19.0

  • **parquet_writer_kwargs (дополнительные именованные аргументы) — Параметры для передачи в pyarrow.parquet.ParquetWriter PyArrow.

Возвращает

int

Количество записанных символов или байтов.

Экспортирует набор данных в parquet

Пример:

>>> ds.to_parquet("path/to/dataset/directory")
>>> num_shards = dataset.num_shards
>>> for index in range(num_shards):
...     shard = dataset.shard(index, num_shards)
...     shard.to_parquet(f"path/of/my/dataset/data-{index:05d}.parquet")

to_sql

< >

( name: strcon: typing.Union[str, ForwardRef('sqlalchemy.engine.Connection'), ForwardRef('sqlalchemy.engine.Engine'), ForwardRef('sqlite3.Connection')]batch_size: typing.Optional[int] = None**sql_writer_kwargs ) → int

Параметры

  • name (str) — Имя таблицы SQL.
  • con (str или sqlite3.Connection или sqlalchemy.engine.Connection или sqlalchemy.engine.Connection) — строка URI или объект соединения SQLite3/SQLAlchemy, используемый для записи в базу данных.
  • batch_size (int, необязательный) — Размер батча, который загружается в память и записывается за один раз. По умолчанию datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • **sql_writer_kwargs (дополнительные именованные аргументы) — Параметры для передачи в pandas.DataFrame.to_sql из pandas. Параметр index по умолчанию равен False, если не указан. Если вы хотите записать индекс, передайте index=True и также задайте имя для столбца индекса, передав index_label.

Возвращает

int

Количество записанных записей.

Экспортирует набор данных в SQL-базу данных.

Пример:

>>> # con provided as a connection URI string
>>> ds.to_sql("data", "sqlite:///my_own_db.sql")
>>> # con provided as a sqlite3 connection object
>>> import sqlite3
>>> con = sqlite3.connect("my_own_db.sql")
>>> with con:
...     ds.to_sql("data", con)

push_to_hub

< >

( repo_id: strconfig_name: str = 'default'set_default: typing.Optional[bool] = Nonesplit: typing.Optional[str] = Nonedata_dir: typing.Optional[str] = Nonecommit_message: typing.Optional[str] = Nonecommit_description: typing.Optional[str] = Noneprivate: typing.Optional[bool] = Nonetoken: typing.Optional[str] = Nonerevision: typing.Optional[str] = Nonecreate_pr: typing.Optional[bool] = Falsemax_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[int] = Noneembed_external_files: bool = Truenum_proc: typing.Optional[int] = None )

Параметры

  • repo_id (str) — Идентификатор репозитория, в который выполняется загрузка, в следующем формате: <user>/<dataset_name> или <org>/<dataset_name>. Также принимает <dataset_name>, в этом случае используется пространство имён текущего пользователя.

    Также это может быть расположение внутри бакета, например, buckets/<user_or_org>/<bucket_name>/...

  • config_name (str, по умолчанию “default”) — Имя конфигурации (или подмножества) набора данных. По умолчанию “default”.
  • set_default (bool, необязательный) — Указывает, следует ли установить эту конфигурацию в качестве конфигурации по умолчанию. В противном случае конфигурацией по умолчанию является та, что называется «default».
  • split (str, optional) — Имя сплита, которое будет присвоено этому набору данных. По умолчанию self.split.
  • data_dir (str, необязательный) — Имя каталога, который будет содержать загруженные файлы данных. По умолчанию равно config_name, если оно отличается от “default”, иначе “data”.
  • commit_message (str, необязательный) — Сообщение для коммита при отправке. По умолчанию — "Upload dataset".
  • commit_description (str, необязательный) — Описание создаваемого коммита. Также описание PR, если PR будет создан (create_pr равно True).
  • private (bool, optional) — Определяет, следует ли сделать репозиторий приватным. Если None (по умолчанию), репозиторий будет публичным, если только по умолчанию для организации не задан приватный режим. Это значение игнорируется, если репозиторий уже существует.
  • token (str, необязательный) — Необязательный токен аутентификации для Hugging Face Hub. Если токен не передан, по умолчанию будет использован токен, сохранённый локально при входе с помощью hf auth login. Если токен не передан и пользователь не вошёл в систему, будет выброшена ошибка.
  • revision (str, необязательный) — Ветка, в которую будут загружены файлы. По умолчанию используется ветка "main".
  • create_pr (bool, необязательный, по умолчанию False) — Создавать ли PR с загруженными файлами или коммитить изменения напрямую.
  • max_shard_size (int или str, необязательный) — Необязательный максимальный размер фрагментов набора данных, загружаемых в хаб. Если указано в виде строки, должно состоять из цифр, за которыми следует единица измерения (например, "5MB"). Если не указано, количество фрагментов по умолчанию равно .num_shards этого набора данных.
  • num_shards (int, необязательный) — Количество шардов для записи. Если указано max_shard_size, а num_shards не задано, количество шардов оценивается на основе max_shard_size. Может быть больше, чем .num_shards данного набора данных: в этом случае каждый входной шард распределяется по нескольким выходным шардам путем записи примеров в них по кругу (round-robin).
  • embed_external_files (bool, по умолчанию True) — Включает ли встраивание байтов файлов в шарды. В частности, перед push для полей типа:
    • Audio и Image: удалите информацию о локальном пути и вставьте содержимое файлов в файлы Parquet.
  • num_proc (int, необязательный, по умолчанию None) — Количество процессов при подготовке и загрузке набора данных. Это полезно, если набор данных состоит из множества образцов и преобразований. I использует контекст “spawn” для работы с hf_xet, rust-клиентом для быстрой загрузки на HF. Многопроцессорность по умолчанию отключена.

Выгружает набор данных на хаб в формате Parquet. Набор данных выгружается с помощью HTTP-запросов, поэтому не требуется установка git или git-lfs.

Полученные файлы Parquet по умолчанию являются самодостаточными. Если ваш набор данных содержит данные Image, Audio или Video, файлы Parquet будут хранить байты ваших изображений или аудиофайлов. Вы можете отключить это, установив embed_external_files в False.

Пример:

>>> dataset.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset.push_to_hub("<organization>/<dataset_id>", num_shards=1024)

Если ваш набор данных содержит несколько разбиений (например, train/validation/test):

>>> train_dataset.push_to_hub("<organization>/<dataset_id>", split="train")
>>> val_dataset.push_to_hub("<organization>/<dataset_id>", split="validation")
>>> # later
>>> dataset = load_dataset("<organization>/<dataset_id>")
>>> train_dataset = dataset["train"]
>>> val_dataset = dataset["validation"]

Если вы хотите добавить новую конфигурацию (или подмножество) к набору данных (например, если набор данных содержит несколько задач/версий/языков):

>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")

load_state_dict

< >

( state_dict: dict )

Загрузите state_dict набора данных. Итерация возобновится с примера, следующего за тем, на котором было сохранено состояние.

Возобновление запускает процесс ровно с того места, где был сохранён контрольный пункт, за исключением двух случаев:

  1. примеры из буферов перемешивания теряются при возобновлении, а буферы заполняются новыми данными
  2. Сочетания .with_format(arrow) и пакетного .map() могут приводить к пропуску одной партии.

Пример:

>>> from datasets import Dataset, concatenate_datasets
>>> ds = Dataset.from_dict({"a": range(6)}).to_iterable_dataset(num_shards=3)
>>> for idx, example in enumerate(ds):
...     print(example)
...     if idx == 2:
...         state_dict = ds.state_dict()
...         print("checkpoint")
...         break
>>> ds.load_state_dict(state_dict)
>>> print(f"restart from checkpoint")
>>> for example in ds:
...     print(example)

который возвращает:

{'a': 0}
{'a': 1}
{'a': 2}
checkpoint
restart from checkpoint
{'a': 3}
{'a': 4}
{'a': 5}
>>> from torchdata.stateful_dataloader import StatefulDataLoader
>>> ds = load_dataset("deepmind/code_contests", streaming=True, split="train")
>>> dataloader = StatefulDataLoader(ds, batch_size=32, num_workers=4)
>>> # checkpoint
>>> state_dict = dataloader.state_dict()  # uses ds.state_dict() under the hood
>>> # resume from checkpoint
>>> dataloader.load_state_dict(state_dict)  # uses ds.load_state_dict() under the hood

state_dict

< >

( ) → dict

Возвращает

dict

Получить текущий state_dict набора данных. Он соответствует состоянию на момент последнего сгенерированного примера.

Возобновление запускает процесс ровно с того места, где был сохранён контрольный пункт, за исключением двух случаев:

  1. примеры из буферов перемешивания теряются при возобновлении, а буферы заполняются новыми данными
  2. Сочетания .with_format(arrow) и пакетного .map() могут приводить к пропуску одной партии.

Пример:

>>> from datasets import Dataset, concatenate_datasets
>>> ds = Dataset.from_dict({"a": range(6)}).to_iterable_dataset(num_shards=3)
>>> for idx, example in enumerate(ds):
...     print(example)
...     if idx == 2:
...         state_dict = ds.state_dict()
...         print("checkpoint")
...         break
>>> ds.load_state_dict(state_dict)
>>> print(f"restart from checkpoint")
>>> for example in ds:
...     print(example)

который возвращает:

{'a': 0}
{'a': 1}
{'a': 2}
checkpoint
restart from checkpoint
{'a': 3}
{'a': 4}
{'a': 5}
>>> from torchdata.stateful_dataloader import StatefulDataLoader
>>> ds = load_dataset("deepmind/code_contests", streaming=True, split="train")
>>> dataloader = StatefulDataLoader(ds, batch_size=32, num_workers=4)
>>> # checkpoint
>>> state_dict = dataloader.state_dict()  # uses ds.state_dict() under the hood
>>> # resume from checkpoint
>>> dataloader.load_state_dict(state_dict)  # uses ds.load_state_dict() under the hood

информация

< >

( )

Объект DatasetInfo, содержащий все метаданные набора данных.

split

< >

( )

Объект NamedSplit, соответствующий именованной части набора данных.

builder_name

< >

( )

цитирование

< >

( )

config_name

< >

( )

dataset_size

< >

( )

Описание

< >

( )

download_checksums

< >

( )

download_size

< >

( )

возможности

< >

( )

главная страница

< >

( )

лицензия

< >

( )

size_in_bytes

< >

( )

supervised_keys

< >

( )

версия

< >

( )

from_csv

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonekeep_in_memory: bool = False**kwargs )

Параметры

  • path_or_paths (path-like или список path-like) — Путь (или пути) к файлу (файлам) CSV.
  • split (NamedSplit, необязательный) — Имя разбиения, которое будет присвоено набору данных.
  • features (Features, необязательный) — Особенности набора данных.
  • keep_in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.
  • **kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в pandas.read_csv.

Создание IterableDataset из файла(ов) CSV.

Пример:

>>> ds = IterableDataset.from_csv('path/to/dataset.csv')

from_json

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonekeep_in_memory: bool = Falsefield: typing.Optional[str] = None**kwargs )

Параметры

  • path_or_paths (path-like или список path-like) — Путь (или пути) к файлу (файлам) в формате JSON или JSON Lines.
  • split (NamedSplit, необязательный) — Имя разбиения, которое будет присвоено набору данных.
  • features (Features, необязательный) — Особенности набора данных.
  • keep_in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.
  • field (str, необязательный) — Имя поля в JSON-файле, содержащем набор данных.
  • **kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в JsonConfig.

Создайте IterableDataset из файла или файлов в формате JSON или JSON Lines.

Пример:

>>> ds = IterableDataset.from_json('path/to/dataset.json')

from_parquet

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonekeep_in_memory: bool = Falsecolumns: typing.Optional[list[str]] = Nonefilters: typing.Union[pyarrow._compute.Expression, list[tuple], list[list[tuple]], NoneType] = Nonefragment_scan_options: typing.Optional[pyarrow._dataset_parquet.ParquetFragmentScanOptions] = Noneon_bad_files: typing.Literal['error', 'warn', 'skip'] = 'error'**kwargs )

Параметры

  • path_or_paths (path-like или список path-like) — Путь (или пути) к файлу (файлам) Parquet.
  • split (NamedSplit, необязательный) — Имя сплита, которое будет присвоено набору данных.
  • features (Features, необязательный) — Особенности набора данных.
  • keep_in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.
  • columns (List[str], необязательный) — Если не None, из файла будут прочитаны только эти столбцы. Имя столбца может быть префиксом вложенного поля, например, ‘a’ выберет ‘a.b’, ‘a.c’ и ‘a.d.e’.
  • filters (Union[pyarrow.dataset.Expression, list[tuple], list[list[tuple]]], необязательный) — Возвращает только строки, соответствующие фильтру. Если возможно, предикат будет передан вниз, чтобы использовать информацию о партициях или внутренние метаданные, найденные в источнике данных, например, статистику Parquet. В противном случае фильтрует загруженные RecordBatches перед их возвратом.
  • fragment_scan_options (pyarrow.dataset.ParquetFragmentScanOptions, необязательный) — Параметры сканирования, специфичные для фрагментов Parquet. Особенно полезно для настройки буферизации и кэширования.

    Добавлено в 4.2.0

  • on_bad_files (Literal["error", "warn", "skip"], необязательный, по умолчанию — «error») — Указывает, что делать при обнаружении повреждённого файла (файла, который невозможно прочитать). Допустимые значения:
    • ‘error’, при обнаружении повреждённого файла вызывать исключение.
    • ‘warn’, выводить предупреждение при обнаружении повреждённого файла и пропускать его.
    • ‘skip’, пропускать повреждённые файлы без вывода ошибок или предупреждений при их обнаружении.

    Добавлено в 4.2.0

  • **kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в ParquetConfig.

Создание IterableDataset из файла(ов) Parquet.

Пример:

>>> ds = IterableDataset.from_parquet('path/to/dataset.parquet')

Загрузка подмножества столбцов:

>>> ds = IterableDataset.from_parquet('path/to/dataset.parquet', columns=["col_0", "col_1"])

Эффективно фильтруйте данные, при необходимости пропуская целые файлы или группы строк:

>>> filters = [("col_0", "==", 0)]
>>> ds = IterableDataset.from_parquet(parquet_files_list, filters=filters)

from_text

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonekeep_in_memory: bool = Falsekeep_linebreaks: bool = Falsesample_by: typing.Literal['line', 'paragraph', 'document'] = 'line'**kwargs )

Параметры

  • path_or_paths (path-like или список path-like) — Путь (или пути) к текстовому файлу (файлам).
  • split (NamedSplit, необязательный) — Имя сплита, которое будет присвоено набору данных.
  • features (Features, необязательный) — Особенности набора данных.
  • keep_in_memory (bool, по умолчанию False) — Скопировать ли данные в оперативную память.
  • keep_linebreaks — (bool, по умолчанию False): Сохранять ли переносы строк.
  • sample_by (Literal["line", "paragraph", "document"], по умолчанию “line”) — Определяет, загружать ли данные построчно, по абзацам или по документам. По умолчанию одна строка в наборе данных соответствует одной строке текста.
  • **kwargs (дополнительные именованные аргументы) — Именованные аргументы, передаваемые в TextConfig.

Создайте IterableDataset из текстового файла или файлов.

Пример:

>>> ds = IterableDataset.from_text('path/to/dataset.txt')

класс datasets.IterableColumn

< >

( source: typing.Union[ForwardRef('IterableDataset'), ForwardRef('IterableColumn')]column_name: str )

Итерируемый объект для конкретного столбца IterableDataset.

Пример:

Итеративно обрабатывайте тексты в столбце «text» набора данных:

for text in dataset["text"]:
    ...

Он также работает с вложенными столбцами:

for source in dataset["metadata"]["source"]:
    ...

IterableDatasetDict

Словарь, в котором ключами являются имена разбиений (например, ‘train’, ‘test’), а значениями — объекты IterableDataset.

класс datasets.IterableDatasetDict

< >

( )

map

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falsewith_split: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: int = 1000drop_last_batch: bool = Falseremove_columns: typing.Union[str, list[str], NoneType] = Nonefn_kwargs: typing.Optional[dict] = None )

Параметры

  • function (Callable, необязательный, по умолчанию None) — Функция, применяемая на лету к примерам при итерации по набору данных. Она должна иметь одну из следующих сигнатур:
    • function(example: Dict[str, Any]) -> Dict[str, Any] если batched=False и with_indices=False
    • function(example: Dict[str, Any], idx: int) -> Dict[str, Any] если batched=False и with_indices=True
    • function(batch: Dict[str, list]) -> Dict[str, list] если batched=True и with_indices=False
    • function(batch: Dict[str, list], indices: list[int]) -> Dict[str, list], если batched=True и with_indices=True

    Для расширенного использования функция также может возвращать pyarrow.Table. Если функция асинхронная, то map будет выполнять её параллельно. Более того, если ваша функция ничего не возвращает (None), то map выполнит её и вернёт датасет без изменений. Если функция не указана, по умолчанию используется тождественная функция: lambda x: x.

  • with_indices (bool, по умолчанию False) — Передавать индексы примеров в function. Обратите внимание, что в этом случае сигнатура function должна быть def function(example, idx[, rank]): ....
  • input_columns ([Union[str, list[str]]], необязательный, по умолчанию None) — Столбцы, которые передаются в function в качестве позиционных аргументов. Если None, в качестве одного аргумента передаётся словарь, отображающий все отформатированные столбцы.
  • batched (bool, по умолчанию False) — Передавать в function пакет примеров.
  • batch_size (int, необязательный, по умолчанию 1000) — Количество примеров в каждой партии, передаваемых в function, если batched=True.
  • drop_last_batch (bool, по умолчанию False) — определяет, следует ли отбрасывать последний батч, если его размер меньше batch_size, вместо его обработки функцией.
  • remove_columns ([list[str]], необязательный, по умолчанию None) — Удаляет выбранные столбцы во время выполнения отображения. Столбцы удаляются до обновления примеров с помощью вывода function, то есть если function добавляет столбцы с именами из remove_columns, эти столбцы будут сохранены.
  • fn_kwargs (Dict, необязательный, по умолчанию None) — Параметры с ключами, передаваемые в function

Применяет функцию ко всем примерам в итерируемом наборе данных (по отдельности или партиями) и обновляет их. Если функция возвращает столбец, который уже существует, он будет перезаписан. Функция применяется «на лету» к примерам при итерации по набору данных. Преобразование применяется ко всем наборам данных в словаре наборов данных.

Вы можете указать, должна ли функция обрабатываться батчами или нет, с помощью параметра batched:

  • If batched is False, then the function takes 1 example in and should return 1 example. An example is a dictionary, e.g. {"text": "Hello there !"}.
  • If batched is True and batch_size is 1, then the function takes a batch of 1 example as input and can return a batch with 1 or more examples. A batch is a dictionary, e.g. a batch of 1 example is {"text": ["Hello there !"]}.
  • Если True и batch_size равно n > 1, функция принимает на вход батч из n примеров и может вернуть батч из n примеров или произвольного количества примеров. Обратите внимание, что последний батч может содержать меньше n примеров. Батч — это словарь, например, батч из n примеров — это {"text": ["Hello there !"] * n}.

Если функция асинхронная, то map будет выполнять её параллельно, с максимумом в тысячу одновременных вызовов. Рекомендуется использовать asyncio.Semaphore в вашей функции, если вы хотите задать максимальное количество операций, которые могут выполняться одновременно.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> next(iter(ds["train"]))
{'label': 1,
 'text': 'Review: the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

фильтр

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000fn_kwargs: typing.Optional[dict] = None )

Параметры

  • function (Callable) — Вызываемый объект с одной из следующих сигнатур:
    • function(example: Dict[str, Any]) -> bool, если with_indices=False, batched=False
    • function(example: Dict[str, Any], indices: int) -> bool если with_indices=True, batched=False
    • function(example: Dict[str, list]) -> list[bool] если with_indices=False, batched=True
    • function(example: Dict[str, list], indices: list[int]) -> list[bool] если with_indices=True, batched=True

    Если функция не указана, по умолчанию используется функция, всегда возвращающая True: lambda x: True.

  • with_indices (bool, по умолчанию False) — Передавать индексы примеров в function. Обратите внимание, что в этом случае сигнатура function должна быть def function(example, idx): ....
  • input_columns (str or list[str], необязательный) — Столбцы, которые передаются в function в качестве позиционных аргументов. Если None, в качестве одного аргумента передаётся словарь, отображающий все отформатированные столбцы.
  • batched (bool, по умолчанию False) — Передавать в function пакет примеров
  • batch_size (int, необязательный, по умолчанию 1000) — Количество примеров в каждой партии, передаваемых в function, если batched=True.
  • fn_kwargs (Dict, необязательный, по умолчанию None) — Параметры с ключами, передаваемые в function

Примените функцию фильтрации ко всем элементам, чтобы в наборе данных оставались только примеры, удовлетворяющие условию фильтрации. Фильтрация выполняется на лету при итерации по набору данных. Фильтрация применяется ко всем наборам данных в словаре наборов данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.filter(lambda x: x["label"] == 0)
>>> list(ds["train"].take(3))
[{'label': 0, 'text': 'Review: simplistic , silly and tedious .'},
 {'label': 0,
 'text': "Review: it's so laddish and juvenile , only teenage boys could possibly find it funny ."},
 {'label': 0,
 'text': 'Review: exploitative and largely devoid of the depth or sophistication that would make watching such a graphic treatment of the crimes bearable .'}]

shuffle

< >

( seed = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonebuffer_size: int = 1000max_buffer_input_shards: int = 10 )

Параметры

  • seed (int, необязательный, по умолчанию None) — Случайное зерно, которое будет использоваться для перемешивания набора данных. Оно применяется для выборки из буфера перемешивания, а также для перемешивания фрагментов данных.
  • generator (numpy.random.Generator, необязательный) — Генератор случайных чисел Numpy, используемый для вычисления перестановки строк набора данных. Если generator=None (по умолчанию), используется np.random.default_rng (генератор битов по умолчанию (PCG64) в NumPy).
  • buffer_size (int, по умолчанию 1000) — Размер буфера.
  • max_buffer_input_shards (int, по умолчанию 10) — Максимальное количество шардов, используемых для заполнения буфера за один раз.

Случайным образом перемешивает элементы этого набора данных. Перемешивание применяется ко всем наборам данных в словаре наборов данных.

Этот набор данных заполняет буфер элементами в количестве buffer_size, а затем случайным образом выбирает элементы из этого буфера, заменяя выбранные элементы новыми. Для идеального перемешивания размер буфера должен быть больше или равен общему размеру набора данных.

Например, если ваш набор данных содержит 10 000 элементов, но buffer_size установлен в 1000, то shuffle изначально выбирает случайный элемент только из первых 1000 элементов в буфере. После того как элемент выбран, его место в буфере занимает следующий (т. е. 1001-й) элемент, поддерживая буфер из 1000 элементов.

Если датасет состоит из нескольких шардов, он также выполняет shuffle для порядка шардов. Однако, если порядок был зафиксирован с помощью skip() или take(), порядок шардов остаётся неизменным.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> list(ds["train"].take(3))
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]
>>> ds = ds.shuffle(seed=42)
>>> list(ds["train"].take(3))
[{'label': 1,
 'text': "a sports movie with action that's exciting on the field and a story you care about off it ."},
 {'label': 1,
 'text': 'at its best , the good girl is a refreshingly adult take on adultery . . .'},
 {'label': 1,
 'text': "sam jones became a very lucky filmmaker the day wilco got dropped from their record label , proving that one man's ruin may be another's fortune ."}]

with_format

< >

( type: typing.Optional[str] = None )

Параметры

  • type (str, необязательный) — Тип вывода, выбранный из [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None означает, что возвращаются объекты Python (по умолчанию).

Возвращает набор данных в указанном формате.

Пример:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation", streaming=True)
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds = ds.with_format("torch")
>>> next(iter(ds))
{'text': 'compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'label': tensor(1),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
        1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
        1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
 'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}

cast

< >

( features: Features ) → IterableDatasetDict

Параметры

  • features (Features) — Новые признаки, к которым нужно привести набор данных. Имена полей в признаках должны совпадать с текущими именами столбцов. Тип данных также должен допускать преобразование из одного типа в другой. Для нетривиальных преобразований, например string <-> ClassLabel, следует использовать map для обновления Dataset.

Возвращает

IterableDatasetDict

Копия набора данных с преобразованными признаками.

Приведите набор данных к новому набору признаков. Приведение типов применяется ко всем наборам данных в словаре наборов данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds["train"].features.copy()
>>> new_features['label'] = ClassLabel(names=['bad', 'good'])
>>> new_features['text'] = Value('large_string')
>>> ds = ds.cast(new_features)
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}

cast_column

< >

( column: strfeature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure] )

Параметры

  • column (str) — Имя столбца.
  • feature (Feature) — Целевая переменная.

Приведение столбца к типу feature для декодирования. Приведение типов применяется ко всем наборам данных в словаре наборов данных.

Пример:

>>> from datasets import load_dataset, ClassLabel
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> ds = ds.cast_column('label', ClassLabel(names=['bad', 'good']))
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('string')}

remove_columns

< >

( column_names: typing.Union[str, list[str]] ) → IterableDatasetDict

Параметры

  • column_names (Union[str, list[str]]) — Имя столбца (столбцов), который нужно удалить.

Возвращает

IterableDatasetDict

Копия объекта набора данных без удаляемых столбцов.

Удаляет одну или несколько колонок в наборе данных, а также связанные с ними признаки. Удаление выполняется на лету для примеров при итерации по набору данных. Удаление применяется ко всем наборам данных в словаре наборов данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.remove_columns("label")
>>> next(iter(ds["train"]))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

rename_column

< >

( original_column_name: strnew_column_name: str ) → IterableDatasetDict

Параметры

  • original_column_name (str) — Имя переименовываемой колонки.
  • new_column_name (str) — Новое имя столбца.

Возвращает

IterableDatasetDict

Копия набора данных с переименованной колонкой.

Переименование столбца в наборе данных и перемещение признаков, связанных с исходным столбцом, под новое имя столбца. Переименование применяется ко всем наборам данных в словаре наборов данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.rename_column("text", "movie_review")
>>> next(iter(ds["train"]))
{'label': 1,
 'movie_review': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

rename_columns

< >

( column_mapping: dict ) → IterableDatasetDict

Параметры

  • column_mapping (Dict[str, str]) — Сопоставление столбцов с их новыми именами.

Возвращает

IterableDatasetDict

Копия набора данных с переименованными столбцами

Переименовать несколько столбцов в наборе данных и переместить признаки, связанные с исходными столбцами, под новые имена столбцов. Переименование применяется ко всем наборам данных в словаре наборов данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.rename_columns({"text": "movie_review", "label": "rating"})
>>> next(iter(ds["train"]))
{'movie_review': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .',
 'rating': 1}

select_columns

< >

( column_names: typing.Union[str, list[str]] ) → IterableDatasetDict

Параметры

  • column_names (Union[str, list[str]]) — Имя столбца (столбцов), который нужно сохранить.

Возвращает

IterableDatasetDict

Копия объекта набора данных, содержащая только выбранные столбцы.

Выберите одну или несколько колонок в наборе данных, а также связанные с ними признаки. Выбор выполняется на лету для примеров при итерации по набору данных. Выбор применяется ко всем наборам данных в словаре наборов данных.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.select("text")
>>> next(iter(ds["train"]))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

push_to_hub

< >

( repo_id: strconfig_name: str = 'default'set_default: typing.Optional[bool] = Nonedata_dir: typing.Optional[str] = Nonecommit_message: typing.Optional[str] = Nonecommit_description: typing.Optional[str] = Noneprivate: typing.Optional[bool] = Nonetoken: typing.Optional[str] = Nonerevision: typing.Optional[str] = Nonecreate_pr: typing.Optional[bool] = Falsemax_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[dict[str, int]] = Noneembed_external_files: bool = Truenum_proc: typing.Optional[int] = None )

Параметры

  • repo_id (str) — Идентификатор репозитория, в который выполняется загрузка, в следующем формате: <user>/<dataset_name> или <org>/<dataset_name>. Также принимает <dataset_name>, в этом случае используется пространство имён текущего пользователя.

    Также это может быть расположение внутри бакета, например, buckets/<user_or_org>/<bucket_name>/...

  • config_name (str) — Имя конфигурации набора данных. По умолчанию — “default”.
  • set_default (bool, необязательный) — Указывает, следует ли установить эту конфигурацию в качестве конфигурации по умолчанию. В противном случае конфигурацией по умолчанию является та, что называется «default».
  • data_dir (str, необязательный) — Имя каталога, который будет содержать загруженные файлы данных. По умолчанию используется config_name , если он отличается от «default», иначе «data».

    Добавлено в 2.17.0

  • commit_message (str, необязательный) — Сообщение для коммита при отправке. По умолчанию — "Upload dataset".
  • commit_description (str, необязательный) — Описание коммита, который будет создан. Кроме того, описание PR, если PR будет создан (create_pr равно True).

    Добавлено в 2.16.0

  • private (bool, optional) — Определяет, следует ли сделать репозиторий приватным. Если None (по умолчанию), репозиторий будет публичным, если только по умолчанию для организации не задан приватный режим. Это значение игнорируется, если репозиторий уже существует.
  • token (str, необязательный) — Необязательный токен аутентификации для Hugging Face Hub. Если токен не передан, по умолчанию будет использован токен, сохранённый локально при входе с помощью hf auth login. Если токен не передан и пользователь не вошёл в систему, будет выброшена ошибка.
  • revision (str, необязательный) — Ветка, в которую будут загружены файлы. По умолчанию используется ветка "main".
  • create_pr (bool, необязательный, по умолчанию False) — Создавать ли PR с загруженными файлами или коммитить изменения напрямую.
  • max_shard_size (int или str, необязательный) — Необязательный максимальный размер шардов набора данных, загружаемых в хаб. Если указано в виде строки, должно состоять из цифр, за которыми следует единица измерения (например, "500MB" или "1GB"). Если не указано, каждый сплит сохраняет исходное количество шардов набора данных.
  • num_shards (Dict[str, int], необязательный) — Количество шардов для записи. Используйте словарь, чтобы задать разное значение num_shards для каждого сплита. Если указано max_shard_size, а для сплита не задано num_shards, то количество шардов для этого сплита оценивается на основе max_shard_size.
  • embed_external_files (bool, по умолчанию True) — Включает ли встраивание байтов файлов в шарды. В частности, перед push для полей типа:
    • Audio и Image удаляют информацию о локальных путях и встраивают содержимое файлов в файлы Parquet.
  • num_proc (int, необязательный, по умолчанию None) — Количество процессов при подготовке и загрузке набора данных. Это полезно, если набор данных состоит из множества образцов или медиафайлов для встраивания. Использует контекст «spawn» для работы с hf_xet, rust-клиентом для быстрой загрузки на HF. Многопроцессорность по умолчанию отключена.

    Добавлено в 4.0.0

Выгружает IterableDatasetDict на хаб в формате Parquet. Выгрузка IterableDatasetDict выполняется с помощью HTTP-запросов и не требует установки git или git-lfs.

Каждый раздел набора данных будет загружен независимо. Загруженный набор данных сохранит исходные имена разделов.

Полученные файлы Parquet по умолчанию являются самодостаточными: если ваш набор данных содержит данные Image или Audio, файлы Parquet будут хранить байты ваших изображений или аудиофайлов. Вы можете отключить это, установив embed_external_files в False.

Пример:

>>> dataset_dict.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", num_shards={"train": 1024, "test": 8})

Если вы хотите добавить новую конфигурацию (или подмножество) к набору данных (например, если набор данных содержит несколько задач/версий/языков):

>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")

Возможности

класс datasets.Features

< >

( *args**kwargs )

Специальный словарь, определяющий внутреннюю структуру набора данных.

Создаётся с использованием словаря типа dict[str, FieldType], где ключи — это желаемые имена столбцов, а значения — типы соответствующих столбцов.

FieldType может принимать одно из следующих значений:

  • Функция Value указывает значение одного типа данных, например int64 или string.
  • Функция ClassLabel определяет заранее заданный набор классов, для которых можно назначить метки, и которые будут храниться в наборе данных в виде целых чисел.
  • Python dict определяет составную характеристику, содержащую отображение подполей на подхарактеристики. Возможно иметь вложенные поля произвольным образом.
  • List или LargeList задаёт составную характеристику, содержащую последовательность подхарактеристик, все одного и того же типа.
  • Функция Array2D, Array3D, Array4D или Array5D для многомерных массивов.
  • Функция Audio для хранения абсолютного пути к аудиофайлу или словаря с относительным путём к аудиофайлу (ключ “path”) и его содержимым в байтах (ключ “bytes”). Эта функция загружает аудио лениво с помощью декодера.
  • Функция Image для хранения абсолютного пути к файлу изображения, объекта np.ndarray, объекта PIL.Image.Image или словаря с относительным путём к файлу изображения (ключ “path”) и его содержимым в байтах (ключ “bytes”). Эта функция извлекает данные изображения.
  • Функция Video для хранения абсолютного пути к файлу видео, объекта torchcodec.decoders.VideoDecoder или словаря с относительным путём к файлу видео (ключ “path”) и его содержимым в байтах (ключ “bytes”). Эта функция загружает видео лениво с помощью декодера.
  • Pdf — функция для хранения абсолютного пути к файлу PDF, объекта pdfplumber.pdf.PDF или словаря с относительным путём к файлу PDF (ключ “path”) и его содержимым в байтах (ключ “bytes”). Эта функция загружает PDF лениво с помощью PDF-ридера.
  • Nifti — функция для хранения абсолютного пути к файлу нейровизуализации в формате NIfTI, объекта nibabel.Nifti1Image или словаря с относительным путём к файлу NIfTI (ключ “path”) и его содержимым в виде байтов (ключ “bytes”). Эта функция загружает файл NIfTI лениво с помощью nibabel.
  • Функция Translation или TranslationVariableLanguages, специфичная для машинного перевода.
  • Функция Json для хранения неструктурированных данных, например, содержащих смешанные/произвольные типы. Под капотом

Копировать

< >

( )

Создайте глубокую копию Features.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> copy_of_features = ds.features.copy()
>>> copy_of_features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}

decode_batch

< >

( batch: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

Параметры

  • batch (dict[str, list[Any]]) — Данные батча датасета.
  • token_per_repo_id (dict, необязательный) — Для доступа к аудио- или изображений-файлам из частных репозиториев на Hub и их декодирования можно передать словарь repo_id (str) -> token (bool или str)

Декодирование батча с кастомным декодированием признаков.

decode_column

< >

( column: listcolumn_name: strtoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

Параметры

  • column (list[Any]) — Данные столбца набора данных.
  • column_name (str) — Имя столбца датасета.

Декодирование столбца с пользовательским декодированием признаков.

decode_example

< >

( example: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

Параметры

  • example (dict[str, Any]) — Данные строки набора данных.
  • token_per_repo_id (dict, необязательный) — Для доступа к аудио- или изображений из частных репозиториев на Hub и их декодирования можно передать словарь repo_id (str) -> token (bool or str).

Пример декодирования с пользовательским декодированием признаков.

encode_batch

< >

( batch )

Параметры

  • batch (dict[str, list[Any]]) — Данные в батче Dataset.

Кодирует пакет в формат Arrow.

encode_column

< >

( columncolumn_name: str )

Параметры

  • column (list[Any]) — Данные в столбце Dataset.
  • column_name (str) — Имя столбца датасета.

Кодирование столбца в формат Arrow.

encode_example

< >

( example )

Параметры

  • example (dict[str, Any]) — Данные в строке Dataset.

Кодирует пример в формат Arrow.

flatten

< >

( max_depth = 16 ) → Features

Возвращает

Возможности

Сплющенные признаки.

Выравнивание признаков. Каждая столбец-словарь удаляется и заменяется всеми содержащимися в нём подполями. Новые поля получают имена, образованные конкатенацией имени исходного столбца и имени подполя в формате <original>.<subfield>.

Если столбец содержит вложенные словари, то имена всех подполей нижнего уровня также конкатенируются для формирования новых столбцов: <original>.<subfield>.<subsubfield> и т. д.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("rajpurkar/squad", split="train")
>>> ds.features.flatten()
{'answers.answer_start': List(Value('int32'), id=None),
 'answers.text': List(Value('string'), id=None),
 'context': Value('string'),
 'id': Value('string'),
 'question': Value('string'),
 'title': Value('string')}

from_arrow_schema

< >

( pa_schema: Schema )

Параметры

  • pa_schema (pyarrow.Schema) — Схема Arrow.

Создание Features из схемы Arrow. Также проверяются метаданные схемы на наличие признаков Hugging Face Datasets. Поля, не допускающие null, не поддерживаются и устанавливаются как допускающие null.

Также pa.dictionary не поддерживается, вместо него используется его базовый тип. Поэтому datasets преобразует объекты DictionaryArray в их фактические значения.

from_dict

< >

( dic ) → Features

Параметры

  • dic (dict[str, Any]) — словарь Python.

Возвращает

Возможности

Создание [Features] из словаря.

Восстановите вложенный объект признака из десериализованного словаря. Мы используем ключ _type для определения имени dataclass признака FieldType.

Это позволяет использовать удобный синтаксис конструктора для определения признаков из десериализованных JSON-словарей. Эта функция используется, в частности, при десериализации [DatasetInfo], который был сохранён в JSON-объект. Она выступает аналогом [Features.from_arrow_schema] и обрабатывает рекурсивную поэлементную инициализацию, но не требует никакого отображения в pyarrow и обратно, за исключением того, что использует отображение примитивных типов данных pyarrow, которое [Value] выполняет автоматически.

Пример:

>>> Features.from_dict({'_type': {'dtype': 'string', 'id': None, '_type': 'Value'}})
{'_type': Value('string')}

reorder_fields_as

< >

( other: Features )

Параметры

  • other ([Features]) — Другие [Features] для выравнивания.

Измените порядок полей Features, чтобы он соответствовал порядку полей в других [Features].

Порядок полей важен, поскольку он влияет на базовые данные arrow. Изменение порядка полей позволяет привести базовый тип данных arrow в соответствие.

Пример:

>>> from datasets import Features, List, Value
>>> # let's say we have two features with a different order of nested fields (for a and b for example)
>>> f1 = Features({"root": {"a": Value("string"), "b": Value("string")}})
>>> f2 = Features({"root": {"b": Value("string"), "a": Value("string")}})
>>> assert f1.type != f2.type
>>> # re-ordering keeps the base structure (here List is defined at the root level), but makes the fields order match
>>> f1.reorder_fields_as(f2)
{'root': List({'b': Value('string'), 'a': Value('string')})}
>>> assert f1.reorder_fields_as(f2).type == f2.type

Скаляр

класс datasets.Value

< >

( dtype: strid: typing.Optional[str] = None )

Параметры

  • dtype (str) — Название типа данных.

Скалярное значение признака определённого типа данных.

Возможные типы Value следующие:

  • null
  • bool
  • int8
  • int16
  • int32
  • int64
  • uint8
  • uint16
  • uint32
  • uint64
  • float16
  • float32 (псевдоним float)
  • float64 (псевдоним double)
  • time32[(s|ms)]
  • time64[(us|ns)]
  • timestamp[(s|ms|us|ns)]
  • timestamp[(s|ms|us|ns), tz=(tzstring)]
  • date32
  • date64
  • duration[(s|ms|us|ns)]
  • decimal128(precision, scale)
  • decimal256(precision, scale)
  • binary
  • large_binary
  • binary_view
  • string
  • large_string
  • string_view

Пример:

>>> from datasets import Features
>>> features = Features({'stars': Value('int32')})
>>> features
{'stars': Value('int32')}

класс datasets.ClassLabel

< >

( num_classes: dataclasses.InitVar[typing.Optional[int]] = Nonenames: list = Nonenames_file: dataclasses.InitVar[typing.Optional[str]] = Noneid: typing.Optional[str] = None )

Параметры

  • num_classes (int, необязательный) — Количество классов. Все метки должны быть < num_classes.
  • names (list из str, необязательный) — Строковые имена для целочисленных классов. Порядок, в котором указаны имена, сохраняется.
  • names_file (str, необязательный) — Путь к файлу с названиями целочисленных классов, по одному на строку.

Тип признака для целочисленных меток классов.

Существует 3 способа определить ClassLabel, которые соответствуют 3 аргументам:

  • num_classes: Создаёт метки от 0 до (num_classes-1).
  • names: список строк с метками.
  • names_file: файл, содержащий список меток.

Под капотом метки хранятся в виде целых чисел. Вы можете использовать -1 для представления неизвестных/отсутствующих меток.

Пример:

>>> from datasets import Features, ClassLabel
>>> features = Features({'label': ClassLabel(num_classes=3, names=['bad', 'ok', 'good'])})
>>> features
{'label': ClassLabel(names=['bad', 'ok', 'good'])}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.IntegerArray] ) → pa.Int64Array

Параметры

  • storage (Union[pa.StringArray, pa.IntegerArray]) — Массив PyArrow для приведения.

Возвращает

pa.Int64Array

Массив в типе хранения arrow ClassLabel.

Преобразование Arrow-массива в тип хранения ClassLabel для arrow. Типы Arrow, которые можно преобразовать в тип хранения pyarrow ClassLabel:

  • pa.string()
  • pa.int()

int2str

< >

( values: typing.Union[int, collections.abc.Iterable] )

Преобразование integer => строка имени класса string.

Что касается неизвестных/отсутствующих меток: передача отрицательных целых чисел вызывает ValueError.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds.features["label"].int2str(0)
'neg'

str2int

< >

( values: typing.Union[str, collections.abc.Iterable] )

Имя класса преобразования string => integer.

Пример:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds.features["label"].str2int('neg')
0

Композитный

класс datasets.LargeList

< >

( feature: typing.Anyid: typing.Optional[str] = None )

Параметры

  • feature (FeatureType) — Тип данных дочернего признака каждого элемента в большом списке.

Тип признака для данных в виде большого списка, состоящего из данных дочернего типа признака.

Она основана на pyarrow.LargeListType, который похож на pyarrow.ListType, но использует 64-битные, а не 32-битные смещения.

класс datasets.List

< >

( feature: typing.Anylength: int = -1id: typing.Optional[str] = None )

Параметры

  • feature (FeatureType) — Тип данных дочернего признака каждого элемента в большом списке.
  • length (необязательный int, по умолчанию -1) — Длина списка, если она фиксирована. По умолчанию -1, что означает произвольную длину.

Тип признака для данных в виде большого списка, состоящего из данных дочернего типа признака.

Она основана на pyarrow.ListType, который использует 32-битные смещения или фиксированную длину.

класс datasets.Sequence

< >

( feature = Nonelength = -1**kwargs )

Параметры

  • feature (FeatureType) — Тип данных дочернего признака каждого элемента в большом списке.
  • length (необязательный int, по умолчанию -1) — Длина списка, если она фиксирована. По умолчанию -1, что означает произвольную длину.

Sequence — это утилита, которая автоматически преобразует внутреннюю словарную характеристику в словарь списков. Такое поведение реализовано для обеспечения совместимости с библиотекой TensorFlow Datasets, но в некоторых случаях может быть нежелательным. Если вы не хотите такого поведения, используйте List или LargeList вместо Sequence.

Перевод

класс datasets.Translation

< >

( languages: listid: typing.Optional[str] = None )

Параметры

  • languages (dict) — Словарь для каждого примера, сопоставляющий строковые коды языков со строковыми переводами.

Feature для переводов с фиксированными языками для каждого примера. Здесь для совместимости с tfds.

Пример:

>>> # At construction time:
>>> datasets.features.Translation(languages=['en', 'fr', 'de'])
>>> # During data generation:
>>> yield {
...         'en': 'the cat',
...         'fr': 'le chat',
...         'de': 'die katze'
... }

flatten

< >

( )

Разверните функцию Translation в словарь.

класс datasets.TranslationVariableLanguages

< >

( languages: typing.Optional[list] = Nonenum_languages: typing.Optional[int] = Noneid: typing.Optional[str] = None ) →

  • language or translation (variable-length 1D tf.Tensor of tf.string)

Параметры

  • languages (dict) — Словарь для каждого примера, сопоставляющий строковые коды языков с одной или несколькими строковыми переводами. Набор присутствующих языков может различаться от примера к примеру.

Возвращает

  • language или translation (одномерный tf.Tensor переменной длины из tf.string)

Коды языков, отсортированные по возрастанию, или переводы в обычном тексте, отсортированные для соответствия кодам языков.

Feature для переводов с переменными языками для каждого примера. Здесь для совместимости с tfds.

Пример:

>>> # At construction time:
>>> datasets.features.TranslationVariableLanguages(languages=['en', 'fr', 'de'])
>>> # During data generation:
>>> yield {
...         'en': 'the cat',
...         'fr': ['le chat', 'la chatte,']
...         'de': 'die katze'
... }
>>> # Tensor returned :
>>> {
...         'language': ['en', 'de', 'fr', 'fr'],
...         'translation': ['the cat', 'die katze', 'la chatte', 'le chat'],
... }

flatten

< >

( )

Разверните функцию TranslationVariableLanguages в словарь.

Массивы

класс datasets.Array2D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

Параметры

  • shape (tuple) — Размер каждого измерения.
  • dtype (str) — Название типа данных.

Создайте двумерный массив.

Пример:

>>> from datasets import Features
>>> features = Features({'x': Array2D(shape=(1, 3), dtype='int32')})

класс datasets.Array3D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

Параметры

  • shape (tuple) — Размер каждого измерения.
  • dtype (str) — Название типа данных.

Создайте трёхмерный массив.

Пример:

>>> from datasets import Features
>>> features = Features({'x': Array3D(shape=(1, 2, 3), dtype='int32')})

класс datasets.Array4D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

Параметры

  • shape (tuple) — Размер каждого измерения.
  • dtype (str) — Название типа данных.

Создайте четырёхмерный массив.

Пример:

>>> from datasets import Features
>>> features = Features({'x': Array4D(shape=(1, 2, 2, 3), dtype='int32')})

класс datasets.Array5D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

Параметры

  • shape (tuple) — Размер каждого измерения.
  • dtype (str) — Название типа данных.

Создайте пятимерный массив.

Пример:

>>> from datasets import Features
>>> features = Features({'x': Array5D(shape=(1, 2, 2, 3, 3), dtype='int32')})

Аудио

класс datasets.Audio

< >

( sampling_rate: typing.Optional[int] = Nonedecode: bool = Truenum_channels: typing.Optional[int] = Nonestream_index: typing.Optional[int] = Noneid: typing.Optional[str] = None )

Параметры

  • sampling_rate (int, необязательный) — Целевая частота дискретизации. Если None, используется исходная частота дискретизации.
  • num_channels (int, необязательный) — Требуемое количество каналов в сэмплах. По умолчанию используется количество каналов источника. При декодировании аудио возвращаются сэмплы с формой (num_channels, num_samples) В настоящее время поддерживается None (количество каналов источника, по умолчанию), 1 (моно) или 2 (стерео) каналов. Аргумент num_channels передаётся в torchcodec.decoders.AudioDecoder.

    Добавлено в 4.4.0

  • decode (bool, по умолчанию True) — Определяет, нужно ли декодировать аудиоданные. Если False, возвращает исходный словарь в формате {"path": audio_path, "bytes": audio_bytes}.
  • stream_index (int, необязательный) — Индекс потока, который следует использовать из файла. Если None, по умолчанию используется «наилучший» индекс.

Аудио Feature для извлечения аудиоданных из аудиофайла.

Вход: Функция Audio принимает на вход:

  • Строка str: абсолютный путь к аудиофайлу (т. е. допускается случайный доступ).

  • pathlib.Path: путь к аудиофайлу (т. е. допускается случайный доступ).

  • Словарь dict с ключами:

    • path: строка с относительным путём к аудиофайлу внутри архива.
    • bytes: Байтовое содержимое аудиофайла.

    Это полезно для файлов parquet или webdataset, в которые встроены аудиофайлы.

  • Словарь dict с ключами:

    • array: Массив, содержащий аудиовыборку
    • sampling_rate: целое число, соответствующее частоте дискретизации аудиозаписи.
  • Объект декодера аудио torchcodec: torchcodec.decoders.AudioDecoder.

Вывод: данные аудиопризнаков выводятся в виде объектов torchcodec.decoders.AudioDecoder с дополнительными ключами:

  • array: Массив, содержащий аудиовыборку
  • sampling_rate: целое число, соответствующее частоте дискретизации аудиозаписи.

Пример:

>>> from datasets import load_dataset, Audio
>>> ds = load_dataset("PolyAI/minds14", name="en-US", split="train")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=44100, num_channels=2))
>>> ds[0]["audio"]
<datasets.features._torchcodec.AudioDecoder object at 0x11642b6a0>
>>> audio = ds[0]["audio"]
>>> audio.get_samples_played_in_range(0, 10)
AudioSamples:
    data (shape): torch.Size([2, 110592])
    pts_seconds: 0.0
    duration_seconds: 2.507755102040816
    sample_rate: 44100

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) → pa.StructArray

Параметры

  • storage (Union[pa.StringArray, pa.StructArray]) — Массив PyArrow для приведения.

Возвращает

pa.StructArray

Массив в типе хранения Audio arrow, а именно pa.struct({"bytes": pa.binary(), "path": pa.string()})

Преобразование массива Arrow в тип хранения Audio для arrow. Типы Arrow, которые можно преобразовать в тип хранения Audio для pyarrow:

  • pa.string() — должен содержать данные «path»
  • pa.binary() — должен содержать байты аудио
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) — порядок не важен

decode_example

< >

( value: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

Параметры

  • value (dict) — Словарь с ключами:
    • path: строка с относительным путём к аудиофайлу.
    • bytes: Байты аудиофайла.
  • token_per_repo_id (dict, необязательный) — Для доступа к аудиофайлам из частных репозиториев на Hub и их декодирования можно передать словарь repo_id (str) -> token (bool или str)

Декодирование примера аудиофайла в аудиоданные.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Параметры

  • storage (pa.StructArray) — массив PyArrow для встраивания.
  • token_per_repo_id (dict, optional) — Словарь repo_id -> token для получения байтов файлов.
  • local_files (bool, по умолчанию True) — Включать ли данные локальных файлов в массив

    Добавлено в 4.8.5

  • remote_files (bool, по умолчанию True) — Включать ли данные удалённых файлов в массив. Например, файлы с путями, начинающимися с hf:// или https://

    Добавлено в 4.8.5

Возвращает

pa.StructArray

Массив в типе хранения Audio arrow, а именно pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Встраивайте аудиофайлы в массив Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('AudioDecoder')] ) → dict

Параметры

  • value (str, bytes,bytearray,dict, AudioDecoder) — Данные, передаваемые на вход функции обработки аудио.

Возвращает

dict

Кодирует пример в формат Arrow.

flatten

< >

( )

Если состояние декодируемое, вызовите ошибку, иначе разложите признаки в словарь.

Изображение

класс datasets.Image

< >

( mode: typing.Optional[str] = Nonedecode: bool = Trueid: typing.Optional[str] = None )

Параметры

  • mode (str, необязательный) — Режим, в который следует преобразовать изображение. Если None, используется исходный режим изображения.
  • decode (bool, по умолчанию True) — Определяет, нужно ли декодировать данные изображения. Если False, возвращает исходный словарь в формате {"path": image_path, "bytes": image_bytes}.

Изображение Feature для чтения данных изображения из файла изображения.

Вход: Функция Image принимает на вход:

  • Строка str: Абсолютный путь к файлу изображения (т. е. допускается случайный доступ).

  • pathlib.Path: путь к файлу изображения (т.е. допускается случайный доступ).

  • Словарь dict с ключами:

    • path: строка с относительным путём к файлу изображения в архиве.
    • bytes: Байты файла изображения.

    Это полезно для файлов parquet или webdataset, в которые встроены файлы изображений.

  • Массив np.ndarray: массив NumPy, представляющий изображение.

  • Объект изображения PIL: PIL.Image.Image.

Вывод: данные признаков изображения выводятся в виде объектов PIL.Image.Image.

Примеры:

>>> from datasets import load_dataset, Image
>>> ds = load_dataset("AI-Lab-Makerere/beans", split="train")
>>> ds.features["image"]
Image(decode=True, id=None)
>>> ds[0]["image"]
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=500x500 at 0x15E52E7F0>
>>> ds = ds.cast_column('image', Image(decode=False))
{'bytes': None,
 'path': '/root/.cache/huggingface/datasets/downloads/extracted/b0a21163f78769a2cf11f58dfc767fb458fc7cea5c05dccc0144a2c0f0bc1292/train/healthy/healthy_train.85.jpg'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.ListArray] ) → pa.StructArray

Параметры

  • storage (Union[pa.StringArray, pa.StructArray, pa.ListArray]) — массив PyArrow для приведения.

Возвращает

pa.StructArray

Массив в типе хранения Image arrow, то есть pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Преобразование массива Arrow в тип хранения Image для arrow. Типы Arrow, которые можно преобразовать в тип хранения Image для pyarrow:

  • pa.string() — должен содержать данные «path»
  • pa.large_string() — должно содержать данные «path» (будет приведено к строке, если возможно)
  • pa.binary() — должен содержать байты изображения
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) — порядок не важен
  • pa.list(*) — должен содержать данные массива изображений

decode_example

< >

( value: dicttoken_per_repo_id = None )

Параметры

  • value (str или dict) — строка с абсолютным путём к файлу изображения или словарь с ключами:
    • path: строка с абсолютным или относительным путём к файлу изображения.
    • bytes: Байты файла изображения.
  • token_per_repo_id (dict, необязательный) — Для доступа к файлам изображений из частных репозиториев на Hub и их декодирования можно передать словарь repo_id (str) -> token (bool или str).

Декодирование примера файла изображения в данные изображения.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Параметры

  • storage (pa.StructArray) — массив PyArrow для встраивания.
  • token_per_repo_id (dict, optional) — Словарь repo_id -> token для получения байтов файлов.
  • local_files (bool, по умолчанию True) — Включать ли данные локальных файлов в массив

    Добавлено в 4.8.5

  • remote_files (bool, по умолчанию True) — Включать ли данные удалённых файлов в массив. Например, файлы с путями, начинающимися с hf:// или https://

    Добавлено в 4.8.5

Возвращает

pa.StructArray

Массив в типе хранения Image arrow, то есть pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Встраивайте файлы изображений в массив Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, numpy.ndarray, ForwardRef('PIL.Image.Image')] )

Параметры

  • value (str, np.ndarray, PIL.Image.Image или dict) — Данные, передаваемые на вход функции Image feature.

Кодирует пример в формат Arrow.

flatten

< >

( )

Если объект находится в декодируемом состоянии, верните саму характеристику, иначе разложите её в словарь.

Видео

класс datasets.Video

< >

( decode: bool = Truestream_index: typing.Optional[int] = Nonedimension_order: typing.Literal['NCHW', 'NHWC'] = 'NCHW'num_ffmpeg_threads: int = 1device: typing.Union[str, ForwardRef('torch.device'), NoneType] = 'cpu'seek_mode: typing.Literal['exact', 'approximate'] = 'exact'id: typing.Optional[str] = None )

Параметры

  • decode (bool, по умолчанию True) — Определяет, нужно ли декодировать данные видео. Если False, возвращает базовый словарь в формате {"path": video_path, "bytes": video_bytes}.
  • stream_index (int, необязательный) — Индекс потока, который следует использовать из файла. Если None, по умолчанию используется «наилучший» индекс.
  • dimension_order (str, по умолчанию NCHW) — Порядок размерностей декодированных кадров, где N — размер батча, C — количество каналов, H — высота, а W — ширина кадров.
  • num_ffmpeg_threads (int, по умолчанию 1) — Количество потоков, используемых для декодирования видео. (Рекомендуется оставить значение равным 1)
  • device (str или torch.device, по умолчанию cpu) — Устройство, используемое для декодирования видео.
  • seek_mode (str, по умолчанию exact) — Определяет, будет ли доступ к кадрам «точным» или «приблизительным». Точный режим гарантирует, что запрос кадра i всегда вернёт кадр i, но для этого требуется начальное сканирование файла. Приблизительный режим работает быстрее, так как не сканирует файл, но менее точен, поскольку использует метаданные файла для вычисления вероятного положения кадра i. Подробнее — здесь

Видео Feature для чтения видеоданных из видеофайла.

Вход: Функция Video принимает на вход:

  • Строка str: абсолютный путь к файлу видео (т. е. допускается случайный доступ).

  • pathlib.Path: путь к файлу видео (т.е. допускается случайный доступ).

  • Словарь dict с ключами:

    • path: строка с относительным путём к файлу видео в репозитории датасета.
    • bytes: Байты видеофайла.

    Это полезно для файлов parquet или webdataset, в которые встроены файлы видео.

  • Объект декодера видео torchcodec: torchcodec.decoders.VideoDecoder.

Вывод: функция Video features возвращает данные в виде объектов torchcodec.decoders.VideoDecoder.

Примеры:

>>> from datasets import Dataset, Video
>>> ds = Dataset.from_dict({"video":["path/to/Screen Recording.mov"]}).cast_column("video", Video())
>>> ds.features["video"]
Video(decode=True, id=None)
>>> ds[0]["video"]
<torchcodec.decoders._video_decoder.VideoDecoder object at 0x14a61e080>
>>> video = ds[0]["video"]
>>> video.get_frames_in_range(0, 10)
FrameBatch:
data (shape): torch.Size([10, 3, 50, 66])
pts_seconds: tensor([0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333,
        0.4333], dtype=torch.float64)
duration_seconds: tensor([0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167,
        0.0167], dtype=torch.float64)
>>> ds.cast_column('video', Video(decode=False))[0]["video]
{'bytes': None,
 'path': 'path/to/Screen Recording.mov'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.ListArray] ) → pa.StructArray

Параметры

  • storage (Union[pa.StringArray, pa.StructArray, pa.ListArray]) — массив PyArrow для приведения.

Возвращает

pa.StructArray

Массив в формате хранения Video arrow, а именно pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Преобразование массива Arrow в тип хранения Video arrow. Типы Arrow, которые можно преобразовать в тип хранения Video pyarrow:

  • pa.string() — должен содержать данные «path»
  • pa.binary() — должен содержать байты видео
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) — порядок не важен
  • pa.list(*) — должен содержать данные массива видео

decode_example

< >

( value: typing.Union[str, datasets.features.video.Example]token_per_repo_id: typing.Optional[dict[str, typing.Union[bool, str]]] = None )

Параметры

  • value (str или dict) — строка с абсолютным путём к файлу видео или словарь с ключами:
    • path: строка с абсолютным или относительным путём к файлу видео.
    • bytes: Байты файла видео.
  • token_per_repo_id (dict, необязательный) — Для доступа к файлам видео из частных репозиториев на Hub и их декодирования можно передать словарь repo_id (str) -> token (bool или str).

Декодирование примера видеофайла в видеоданные.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Параметры

  • storage (pa.StructArray) — массив PyArrow для встраивания.
  • token_per_repo_id (dict, optional) — Словарь repo_id -> token для получения байтов файлов.
  • local_files (bool, по умолчанию True) — Включать ли данные локальных файлов в массив

    Добавлено в 4.8.5

  • remote_files (bool, по умолчанию True) — Включать ли данные удалённых файлов в массив. Например, файлы с путями, начинающимися с hf:// или https://

    Добавлено в 4.8.5

Возвращает

pa.StructArray

Массив в формате хранения Video arrow, а именно pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Встраивайте файлы изображений в массив Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, datasets.features.video.Example, numpy.ndarray, ForwardRef('VideoDecoder')] )

Параметры

  • value (str, np.ndarray, bytes, bytearray, VideoDecoder или dict) — Данные, передаваемые на вход функции Video.

Кодирует пример в формат Arrow.

flatten

< >

( )

Если объект находится в декодируемом состоянии, верните саму характеристику, иначе разложите её в словарь.

Mesh

класс datasets.Mesh

< >

( decode: bool = Trueid: typing.Optional[str] = None )

Параметры

  • decode (bool, по умолчанию True) — Определяет, следует ли декодировать данные меша. Если False, возвращает базовый словарь в формате {"path": mesh_path, "bytes": mesh_bytes}. Декодирование меша использует trimesh и поддерживает файлы .glb, .ply и .stl.

Mesh Feature для чтения данных 3D-сетки из файла.

Вход: функция Mesh принимает на вход:

  • Строка str: Абсолютный путь к файлу меша (то есть допускается случайный доступ).

  • pathlib.Path: путь к файлу меша (то есть допускается случайный доступ).

  • Словарь dict с ключами:

    • path: строка с относительным путём к файлу меша внутри архива.
    • bytes: Байты файла меша.

    Это полезно для файлов parquet или webdataset, в которые встроены файлы сеток.

  • Объект trimesh.Trimesh или trimesh.Scene: 3D-сетка или сцена.

Вывод: Функция Mesh выводит данные в виде объектов trimesh.Trimesh или trimesh.Scene.

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) → pa.StructArray

Параметры

  • storage (Union[pa.StringArray, pa.StructArray]) — Массив PyArrow для приведения.

Возвращает

pa.StructArray

Массив в типе хранения Mesh arrow, а именно pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Преобразование массива Arrow в тип хранения Mesh arrow. Типы Arrow, которые можно преобразовать в тип хранения Mesh pyarrow:

  • pa.string() — должен содержать данные «path»
  • pa.large_string() — должно содержать данные «path» (будет приведено к строке, если возможно)
  • pa.binary() — должен содержать байты меша
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) — порядок не важен

decode_example

< >

( value: dicttoken_per_repo_id = None )

Параметры

  • value (dict) — Словарь с ключами:
    • path: строка с абсолютным или относительным путём к файлу сетки.
    • bytes: байты файла меша.
  • token_per_repo_id (dict, необязательный) — Для доступа к файлам mesh из частных репозиториев на Hub и их декодирования можно передать словарь repo_id (str) -> token (bool или str).

Пример декодирования файла сетки.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Параметры

  • storage (pa.StructArray) — массив PyArrow для встраивания.
  • token_per_repo_id (dict, optional) — Словарь repo_id -> token для получения байтов файлов.
  • local_files (bool, по умолчанию True) — Включать ли данные локальных файлов в массив.
  • remote_files (bool, по умолчанию True) — Включать ли данные удалённых файлов в массив.

Возвращает

pa.StructArray

Массив в типе хранения Mesh arrow, а именно pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Встраивайте файлы мешей в массив Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('trimesh.Trimesh'), ForwardRef('trimesh.Scene')] )

Параметры

  • value (str, bytes, dict, trimesh.Trimesh или trimesh.Scene) — Данные, передаваемые на вход функции Mesh.

Кодирует пример в формат Arrow.

flatten

< >

( )

Если объект находится в декодируемом состоянии, верните саму характеристику, иначе разложите её в словарь.

Json

класс datasets.Json

< >

( decode: bool = Trueid: typing.Optional[str] = None )

Тип функции для объектов JSON.

Под капотом объекты хранятся в виде строк, закодированных в формате JSON.

Пример:

>>> from datasets import Features, Json
>>> features = Features({'json': Json()})
>>> features
{'json': Json()}
>>> from datasets import Dataset, Features, Json, List
>>> features = Features({"a": List(Json())})
>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, features=features)
>>> # OR
>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, on_mixed_types="use_json")
>>> ds.features
{'a': List(Json())}
>>> ds[0]
{'a': [{'b': 0}, {'c': 0}]}
>>> def f(x):
...     for y in x["a"]:
...         y["d"] = "foo"
...     return x
>>> ds = ds.map(f)
>>> ds.features
>>> ds[0]
{'a': [{'b': 0, 'd': 'foo'}, {'c': 0, 'd': 'foo'}]}

cast_storage

< >

( storage: Array ) → pa.JsonArray

Параметры

  • storage (Union[pa.StringArray, pa.IntegerArray]) — Массив PyArrow для приведения.

Возвращает

pa.JsonArray

Массив в типе хранения arrow Json.

Преобразовать массив Arrow в тип хранения Arrow Json.

Pdf

класс datasets.Pdf

< >

( decode: bool = Trueid: typing.Optional[str] = None )

Параметры

  • decode (bool, по умолчанию True) — Следует ли декодировать данные PDF. Если False, возвращает базовый словарь в формате {"path": pdf_path, "bytes": pdf_bytes}.

Экспериментально. Функция Feature для чтения PDF-документов из PDF-файла.

Вход: Функция Pdf принимает на вход:

  • Строка str: абсолютный путь к файлу PDF (т. е. допускается случайный доступ).

  • pathlib.Path: путь к файлу PDF (то есть допускается случайный доступ).

  • Словарь dict с ключами:

    • path: строка с относительным путём к файлу PDF в репозитории датасета.
    • bytes: Байты файла PDF. Это полезно для архивных файлов с последовательным доступом.
  • Объект pdfplumber.pdf.PDF: объект PDF из pdfplumber.

Примеры:

>>> from datasets import Dataset, Pdf
>>> ds = Dataset.from_dict({"pdf": ["path/to/pdf/file.pdf"]}).cast_column("pdf", Pdf())
>>> ds.features["pdf"]
Pdf(decode=True, id=None)
>>> ds[0]["pdf"]
<pdfplumber.pdf.PDF object at 0x7f8a1c2d8f40>
>>> ds = ds.cast_column("pdf", Pdf(decode=False))
>>> ds[0]["pdf"]
{'bytes': None,
'path': 'path/to/pdf/file.pdf'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.ListArray] ) → pa.StructArray

Параметры

  • storage (Union[pa.StringArray, pa.StructArray, pa.ListArray]) — массив PyArrow для приведения.

Возвращает

pa.StructArray

Массив в типе хранения Pdf arrow, а именно pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Преобразование массива Arrow в тип хранения Pdf arrow. Типы Arrow, которые можно преобразовать в тип хранения Pdf pyarrow:

  • pa.string() — должен содержать данные «path»
  • pa.binary() — должен содержать байты изображения
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) — порядок не важен
  • pa.list(*) — должен содержать данные массива PDF

decode_example

< >

( value: dicttoken_per_repo_id = None )

Параметры

  • value (str или dict) — строка с абсолютным путём к файлу PDF или словарь с ключами:
    • path: строка с абсолютным или относительным путём к файлу PDF.
    • bytes: Байты файла PDF.
  • token_per_repo_id (dict, необязательный) — Для доступа к файлам pdf из частных репозиториев на Hub и их декодирования можно передать словарь repo_id (str) -> token (bool или str).

Декодирование примера файла pdf в данные pdf.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Параметры

  • storage (pa.StructArray) — массив PyArrow для встраивания.
  • token_per_repo_id (dict, optional) — Словарь repo_id -> token для получения байтов файлов.
  • local_files (bool, по умолчанию True) — Включать ли данные локальных файлов в массив

    Добавлено в 4.8.5

  • remote_files (bool, по умолчанию True) — Включать ли данные удалённых файлов в массив. Например, файлы с путями, начинающимися с hf:// или https://

    Добавлено в 4.8.5

Возвращает

pa.StructArray

Массив в типе хранения PDF arrow, а именно pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Встраивание файлов PDF в массив Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('pdfplumber.pdf.PDF')] )

Параметры

  • value (str, bytes, pdfplumber.pdf.PDF или dict) — Данные, передаваемые на вход функции Pdf.

Кодирует пример в формат Arrow.

flatten

< >

( )

Если объект находится в декодируемом состоянии, верните саму характеристику, иначе разложите её в словарь.

Nifti

класс datasets.Nifti

< >

( decode: bool = Trueid: typing.Optional[str] = None )

Параметры

  • decode (bool, по умолчанию True) — Определяет, нужно ли декодировать данные NIfTI. Если False, возвращается строка с байтами. decode=False не поддерживается при декодировании примеров.

Экспериментально. Nifti Feature для чтения файлов нейровизуализации в формате NIfTI.

Вход: Функция Nifti принимает на вход:

  • Строка str: Абсолютный путь к файлу NIfTI (то есть допускается случайный доступ).

  • pathlib.Path: путь к файлу NIfTI (то есть допускается случайный доступ).

  • Словарь dict с ключами:

    • path: строка с относительным путём к файлу NIfTI в репозитории набора данных.
    • bytes: Байты файла NIfTI. Это полезно для архивных файлов с последовательным доступом.
  • Объект изображения nibabel (например, nibabel.nifti1.Nifti1Image).

Примеры:

>>> from datasets import Dataset, Nifti
>>> ds = Dataset.from_dict({"nifti": ["path/to/file.nii.gz"]}).cast_column("nifti", Nifti())
>>> ds.features["nifti"]
Nifti(decode=True, id=None)
>>> ds[0]["nifti"]
<nibabel.nifti1.Nifti1Image object at 0x7f8a1c2d8f40>
>>> ds = ds.cast_column("nifti", Nifti(decode=False))
>>> ds[0]["nifti"]
{'bytes': None,
'path': 'path/to/file.nii.gz'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.BinaryArray] ) → pa.StructArray

Параметры

  • storage (Union[pa.StringArray, pa.StructArray, pa.BinaryArray]) — массив PyArrow для приведения.

Возвращает

pa.StructArray

Массив в типе хранения Nifti arrow, а именно pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Преобразование массива Arrow в тип хранения Nifti arrow. Типы Arrow, которые можно преобразовать в тип хранения Nifti pyarrow:

  • pa.string() — должен содержать данные «path»
  • pa.binary() — должен содержать байты NIfTI
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) — порядок не важен

decode_example

< >

( value: dicttoken_per_repo_id = None )

Параметры

  • value (str или dict) — строка с абсолютным путём к файлу NIfTI или словарь с ключами:
    • path: строка с абсолютным или относительным путём к файлу NIfTI.
    • bytes: Байты файла NIfTI.
  • token_per_repo_id (dict, необязательный) — Для доступа к файлам NIfTI в частных репозиториях на Hub и их декодирования можно передать словарь repo_id (str) -> token (bool или str).

Декодирование примера файла NIfTI в объект изображения nibabel.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Параметры

  • storage (pa.StructArray) — массив PyArrow для встраивания.
  • token_per_repo_id (dict, optional) — Словарь repo_id -> token для получения байтов файлов.
  • local_files (bool, по умолчанию True) — Включать ли данные локальных файлов в массив

    Добавлено в 4.8.5

  • remote_files (bool, по умолчанию True) — Включать ли данные удалённых файлов в массив. Например, файлы с путями, начинающимися с hf:// или https://

    Добавлено в 4.8.5

Возвращает

pa.StructArray

Массив в типе хранения NifTI arrow, а именно pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Встраивание файлов NifTI в массив Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('nib.Nifti1Image')] )

Параметры

  • value (str, bytes, nibabel.Nifti1Image или dict) — Данные, передаваемые на вход в Nifti feature.

Кодирует пример в формат Arrow.

flatten

< >

( )

Если объект находится в декодируемом состоянии, верните саму характеристику, иначе разложите её в словарь.

BioSequence

класс datasets.BioSequence

< >

( format: str = 'fasta'decode: bool = Trueid: typing.Optional[str] = None )

Параметры

  • format (str, по умолчанию "fasta") — Название формата последовательности, как его понимает Bio.SeqIO. Частые значения — "fasta", "fastq" и "genbank".
  • decode (bool, по умолчанию True) — Определяет, следует ли декодировать данные последовательности. Если False, возвращает базовый словарь в формате {"path": path, "bytes": bytes}.

Экспериментально. BioSequence Feature для чтения записей биологических последовательностей из файла последовательностей.

Файл последовательности содержит одну или несколько записей о остатках с их идентификаторами и аннотациями. FASTA, FASTQ и GenBank имеют одинаковую структуру на этом уровне и различаются только используемым парсером, поэтому format выбирает парсер, а не тип.

Вход: Функция BioSequence принимает на вход:

  • Строка str: Абсолютный путь к файлу последовательности (т.е. допускается случайный доступ).

  • pathlib.Path: путь к файлу последовательности (т.е. допускается случайный доступ).

  • Словарь dict с ключами:

    • path: строка с относительным путём к файлу последовательности в репозитории набора данных.
    • bytes: Байты файла последовательности. Это полезно для архивных файлов с последовательным доступом.
  • Объект Bio.SeqRecord.SeqRecord: запись последовательности biopython.

Примеры:

>>> from datasets import Dataset, BioSequence
>>> ds = Dataset.from_dict({"seq": ["path/to/sequences.fasta"]}).cast_column("seq", BioSequence())
>>> ds.features["seq"]
BioSequence(format='fasta', decode=True)
>>> ds[0]["seq"]
SeqRecord(seq=Seq('ACGT'), id='seq1', name='seq1', description='seq1', dbxrefs=[])
>>> ds = ds.cast_column("seq", BioSequence(decode=False))
>>> ds[0]["seq"]
{'bytes': None,
'path': 'path/to/sequences.fasta'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) → pa.StructArray

Параметры

  • storage (Union[pa.StringArray, pa.StructArray]) — Массив PyArrow для приведения.

Возвращает

pa.StructArray

Массив в типе хранения arrow BioSequence, а именно pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Преобразование массива Arrow в тип хранения BioSequence arrow. Типы Arrow, которые можно преобразовать в тип хранения BioSequence pyarrow:

  • pa.string() — должен содержать данные «path»
  • pa.binary() — должен содержать байты файла
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) — порядок не важен

decode_example

< >

( value: dicttoken_per_repo_id = None )

Параметры

  • value (str или dict) — строка с абсолютным путём к файлу или словарь с ключами:
    • path: строка с абсолютным или относительным путём к файлу.
    • bytes: байты файла.
  • token_per_repo_id (dict, необязательный) — Для доступа к файлам из частных репозиториев на Hub и их декодирования можно передать словарь repo_id (str) -> token (bool или str).

Декодировать файл с примером последовательности в запись biopython.

Файл может содержать множество записей; этот метод возвращает первую, поскольку одна строка соответствует одной записи. Используйте встроенные загрузчики последовательностей, чтобы развернуть файл с несколькими записями в одну строку на каждую запись.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Параметры

  • storage (pa.StructArray) — массив PyArrow для встраивания.
  • token_per_repo_id (dict, optional) — Словарь repo_id -> token для получения байтов файлов.
  • local_files (bool, по умолчанию True) — Включать ли данные локальных файлов в массив.
  • remote_files (bool, по умолчанию True) — Включать ли данные удалённых файлов в массив.

Возвращает

pa.StructArray

Массив в типе хранения arrow BioSequence.

Встраивайте файлы последовательностей в массив Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('SeqRecord')] )

Параметры

  • value (str, bytes, Bio.SeqRecord.SeqRecord или dict) — Данные, передаваемые на вход функции BioSequence.

Кодирует пример в формат Arrow.

flatten

< >

( )

Если объект находится в декодируемом состоянии, верните саму характеристику, иначе разложите её в словарь.

BioStructure

класс datasets.BioStructure

< >

( format: str = 'pdb'decode: bool = Trueid: typing.Optional[str] = None )

Параметры

  • format (str, по умолчанию "pdb") — Формат структуры, "pdb" или "mmcif".
  • decode (bool, по умолчанию True) — Определяет, следует ли декодировать данные структуры. Если False, возвращает базовый словарь в формате {"path": path, "bytes": bytes}.

Экспериментально. BioStructure Feature для чтения макромолекулярных структур из файла структуры.

Файл структуры содержит трёхмерные координаты атомов молекулы, сгруппированные в цепи и остатки. Форматы PDB и mmCIF описывают одни и те же объекты и различаются только используемым парсером, поэтому format выбирает парсер, а не тип.

Вход: функция BioStructure принимает на вход:

  • Строка str: абсолютный путь к файлу структуры (то есть допускается случайный доступ).

  • pathlib.Path: путь к файлу структуры (т.е. допускается случайный доступ).

  • Словарь dict с ключами:

    • path: строка с относительным путём к файлу структуры в репозитории набора данных.
    • bytes: Байты файла структуры. Это полезно для архивных файлов с последовательным доступом.
  • Структура Bio.PDB.Structure.Structure: структура biopython.

Примеры:

>>> from datasets import Dataset, BioStructure
>>> ds = Dataset.from_dict({"st": ["path/to/1abc.pdb"]}).cast_column("st", BioStructure())
>>> ds.features["st"]
BioStructure(format='pdb', decode=True)
>>> ds[0]["st"]
<Structure id=1abc>
>>> ds = ds.cast_column("st", BioStructure(decode=False))
>>> ds[0]["st"]
{'bytes': None,
'path': 'path/to/1abc.pdb'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) → pa.StructArray

Параметры

  • storage (Union[pa.StringArray, pa.StructArray]) — Массив PyArrow для приведения.

Возвращает

pa.StructArray

Массив в типе хранения arrow BioStructure, а именно pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Преобразование массива Arrow в тип хранения arrow для BioStructure. Типы Arrow, которые можно преобразовать в тип хранения pyarrow для BioStructure:

  • pa.string() — должен содержать данные «path»
  • pa.binary() — должен содержать байты файла
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) — порядок не важен

decode_example

< >

( value: dicttoken_per_repo_id = None )

Параметры

  • value (str или dict) — строка с абсолютным путём к файлу или словарь с ключами:
    • path: строка с абсолютным или относительным путём к файлу.
    • bytes: байты файла.
  • token_per_repo_id (dict, необязательный) — Для доступа к файлам из частных репозиториев на Hub и их декодирования можно передать словарь repo_id (str) -> token (bool или str).

Декодировать файл структуры примера в структуру biopython.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Параметры

  • storage (pa.StructArray) — массив PyArrow для встраивания.
  • token_per_repo_id (dict, optional) — Словарь repo_id -> token для получения байтов файлов.
  • local_files (bool, по умолчанию True) — Включать ли данные локальных файлов в массив.
  • remote_files (bool, по умолчанию True) — Включать ли данные удалённых файлов в массив.

Возвращает

pa.StructArray

Массив в типе хранения arrow BioStructure.

Встраивайте файлы структуры в массив Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('Structure')] )

Параметры

  • value (str, bytes, Bio.PDB.Structure.Structure или dict) — Данные, передаваемые на вход в функцию BioStructure.

Кодирует пример в формат Arrow.

flatten

< >

( )

Если объект находится в декодируемом состоянии, верните саму характеристику, иначе разложите её в словарь.

Файловые системы

datasets.filesystems.is_remote_filesystem

< >

( fs: AbstractFileSystem )

Параметры

  • fs (fsspec.spec.AbstractFileSystem) — Абстрактный суперкласс для файловых систем в стиле Python, например fsspec.filesystem('file') или s3fs.S3FileSystem.

Проверяет, является ли fs удалённой файловой системой.

Отпечаток

класс datasets.fingerprint.Hasher

< >

( )

Хэшировщик, принимающий объекты Python в качестве входных данных.

Update on GitHub