Datasets documentation

Principais classes

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Principais classes

DatasetInfo

classe 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 )

Parâmetros

  • description (str) — Uma descrição do conjunto de dados.
  • citation (str) — Uma citação BibTeX do conjunto de dados.
  • homepage (str) — Uma URL para a página inicial oficial do conjunto de dados.
  • license (str) — A licença do conjunto de dados. Pode ser o nome da licença ou um parágrafo contendo os termos da licença.
  • features (Features, opcional) — Os recursos usados para especificar os tipos de coluna do conjunto de dados.
  • post_processed (PostProcessedInfo, opcional) — Descontinuado. Informações sobre os recursos de um possível pós-processamento de um conjunto de dados. Por exemplo, pode conter as informações de um índice.
  • supervised_keys (SupervisedKeysData, opcional) — Especifica o recurso de entrada e o rótulo para aprendizado supervisionado, se aplicável ao conjunto de dados (legado do TFDS).
  • builder_name (str, opcional) — O nome da subclasse de GeneratorBasedBuilder usada para criar o conjunto de dados. Também é a versão snake_case do nome da classe do construtor do conjunto de dados.
  • config_name (str, opcional) — O nome da configuração derivada de BuilderConfig.
  • version (str ou Version, opcional) — A versão do conjunto de dados.
  • splits (dict, opcional) — O mapeamento entre o nome da divisão e os metadados.
  • download_checksums (dict, opcional) — O mapeamento entre a URL para baixar os checksums do conjunto de dados e os metadados correspondentes.
  • download_size (int, opcional) — O tamanho dos arquivos a serem baixados para gerar o conjunto de dados, em bytes.
  • post_processing_size (int, opcional) — Descontinuado. Tamanho do conjunto de dados em bytes após o pós-processamento, se houver.
  • dataset_size (int, opcional) — O tamanho combinado em bytes das tabelas Arrow para todas as divisões.
  • size_in_bytes (int, opcional) — O tamanho combinado em bytes de todos os arquivos associados ao conjunto de dados (arquivos baixados + arquivos Arrow).
  • **config_kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave a serem passados para o BuilderConfig e usados no DatasetBuilder.

Informações sobre um conjunto de dados.

DatasetInfo documenta conjuntos de dados, incluindo seu nome, versão e recursos. Consulte os argumentos do construtor e as propriedades para obter a lista completa.

Nem todos os campos são conhecidos na construção e podem ser atualizados posteriormente.

from_directory

< >

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

Parâmetros

  • dataset_info_dir (str) — O diretório que contém o arquivo de metadados. Este deve ser o diretório raiz de uma versão específica do conjunto de dados.
  • storage_options (dict, opcional) — Pares de chave/valor a serem passados para o backend do sistema de arquivos, se houver.

    Adicionado na 2.9.0

Crie DatasetInfo a partir do arquivo JSON em dataset_info_dir.

Esta função atualiza todos os campos gerados dinamicamente (num_examples, hash, hora de criação,…) do DatasetInfo.

Isso sobrescreverá todos os metadados anteriores.

Exemplo:

>>> 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 )

Parâmetros

  • dataset_info_dir (str) — Diretório de destino.
  • pretty_print (bool, padrão False) — Se True, o JSON será formatado com nível de indentação 4.
  • storage_options (dict, opcional) — Pares de chave/valor a serem passados para o backend do sistema de arquivos, se houver.

    Adicionado na 2.9.0

Escreva DatasetInfo e a licença (se presente) como arquivos JSON em dataset_info_dir.

Exemplo:

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

Conjunto de dados

A classe base Dataset implementa um Dataset baseado em uma tabela do Apache Arrow.

classe 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 )

Um Dataset baseado em uma tabela 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 )

Parâmetros

  • name (str) — Nome da coluna.
  • column (list ou np.array) — Dados da coluna a serem adicionados.
  • feature (FeatureType ou None, padrão None) — Tipo de dado da coluna.

Adicionar coluna ao Dataset.

Adicionado na 1.7

Exemplo:

>>> 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 )

Parâmetros

  • item (dict) — Item data to be added.

Adicionar item ao Dataset.

Adicionado na 1.7

Exemplo:

>>> 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 )

Parâmetros

  • filename (str) — Nome do arquivo do conjunto de dados.
  • info (DatasetInfo, opcional) — Informações do dataset, como descrição, citação, etc.
  • split (NamedSplit, opcional) — Nome da divisão do conjunto de dados.
  • indices_filename (str, opcional) — Nomes dos arquivos de índices.
  • in_memory (bool, padrão False) — Se deve copiar os dados em memória.

Instanciar um Dataset baseado em uma tabela Arrow no arquivo filename.

from_buffer

< >

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

Parâmetros

  • buffer (pyarrow.Buffer) — Buffer do Arrow.
  • info (DatasetInfo, opcional) — Informações do dataset, como descrição, citação, etc.
  • split (NamedSplit, opcional) — Nome da divisão do conjunto de dados.
  • indices_buffer (pyarrow.Buffer, opcional) — Buffer Arrow de índices.

Instanciar um Dataset baseado em um buffer 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 )

Parâmetros

  • df (pandas.DataFrame) — Dataframe que contém o conjunto de dados.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • info (DatasetInfo, opcional) — Informações do dataset, como descrição, citação, etc.
  • split (NamedSplit, opcional) — Nome da divisão do conjunto de dados.
  • preserve_index (bool, opcional) — Se deve armazenar o índice como uma coluna adicional no Dataset resultante. O valor padrão de None armazena o índice como uma coluna, exceto para RangeIndex, que é armazenado apenas como metadados. Use preserve_index=True para forçar que ele seja armazenado como uma coluna.

Converta pandas.DataFrame para pyarrow.Table para criar um Dataset.

Os tipos de coluna na Tabela Arrow resultante são inferidos a partir dos dtypes das pandas.Series no DataFrame. No caso de Series não-object, o dtype do NumPy é traduzido para seu equivalente no Arrow. No caso de object, precisamos inferir o tipo de dados examinando os objetos Python presentes nesta Series.

Observe que Series do dtype object não carregam informações suficientes para sempre levar a um tipo Arrow significativo. No caso em que não podemos inferir um tipo, por exemplo, porque o DataFrame tem comprimento 0 ou a Series contém apenas objetos None/nan, o tipo é definido como null. Esse comportamento pode ser evitado construindo features explícitas e passando-as para esta função.

Importante: um dataset criado com from_pandas() fica na memória e, portanto, não possui um diretório de cache associado. Isso pode mudar no futuro, mas, por enquanto, se você quiser reduzir o uso de memória, deve gravá-lo novamente em disco e recarregá-lo usando, por exemplo, save_to_disk / load_from_disk.

Exemplo:

>>> 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 )

Parâmetros

  • mapping (Mapping) — Mapeamento de strings para Arrays ou listas Python.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • info (DatasetInfo, opcional) — Informações do dataset, como descrição, citação, etc.
  • split (NamedSplit, opcional) — Nome da divisão do conjunto de dados.
  • on_mixed_types (Literal["use_json"], opcional, padrão é None) — Se "use_json", usa o tipo Json() para campos de tipos mistos, ou seja, campos não estruturados que contêm dados sem um esquema predefinido. Nesse caso, um campo com tipo misto é definido como Json().

    Isso permite carregar listas com uma mistura de strings/inteiros/floats, por exemplo, ou dicionários com tipos de valores arbitrários.

    Adicionado na 4.7.0

Converta um dict para uma pyarrow.Table para criar um Dataset.

Importante: um dataset criado com from_dict() fica na memória e, portanto, não possui um diretório de cache associado. Isso pode mudar no futuro, mas, por enquanto, se você quiser reduzir o uso de memória, deve gravá-lo novamente em disco e recarregá-lo usando, por exemplo, save_to_disk / load_from_disk.

Exemplos:

Obtenha um Dataset a partir de um dicionário contendo uma lista por coluna:

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

Pass features para definir os tipos de coluna, por exemplo, para um conjunto de dados de imagens:

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

Os datasets são baseados no Arrow, que é um formato colunar, e, portanto, esperam que cada exemplo tenha o mesmo tipo e subtipos, e que os dicionários tenham as mesmas chaves e tipos de valores. Ao carregar um dataset, ocorre um erro quando os campos têm tipos incompatíveis, e os campos ausentes nos dicionários são preenchidos com None para que todos os dicionários tenham as mesmas chaves e tipos de valores.

Para evitar isso e permitir tipos mistos sem erros, você pode usar on_mixed_types="use_json" ou especificar features= com um tipo 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"}]

Isso também é útil para listas de dicionários com chaves e valores arbitrários, para evitar preencher campos ausentes com 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

Outro exemplo com dados de chamada de ferramentas:

>>> 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 )

Parâmetros

  • mapping (List[dict]) — Uma lista de mapeamentos de strings para valores de linha.
  • features (Features, opcional) — Recursos do dataset.
  • info (DatasetInfo, opcional) — Informações do dataset, como descrição, citação, etc.
  • split (NamedSplit, opcional) — Nome da divisão do conjunto de dados.
  • on_mixed_types (Literal["use_json"], opcional, padrão é None) — Se "use_json", usa o tipo Json() para campos de tipos mistos, ou seja, campos não estruturados que contêm dados sem um esquema predefinido. Nesse caso, um campo com tipo misto é definido como Json().

    Isso permite carregar listas com uma mistura de strings/inteiros/floats, por exemplo, ou dicionários com tipos de valores arbitrários.

    Adicionado na 4.7.0

Converta uma lista de dicts para uma pyarrow.Table para criar um Dataset`.

Observe que as chaves da primeira entrada serão usadas para determinar as colunas do conjunto de dados, independentemente do que for passado para features.

Importante: um dataset criado com from_list() fica na memória e, portanto, não possui um diretório de cache associado. Isso pode mudar no futuro, mas, por enquanto, se você quiser reduzir o uso de memória, deve gravá-lo novamente em disco e recarregá-lo usando, por exemplo, save_to_disk / load_from_disk.

Exemplos:

Obtenha um Dataset de uma lista contendo os exemplos:

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

Pass features para definir os tipos de coluna, por exemplo, para um conjunto de dados de imagens:

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

Os datasets são baseados no Arrow, que é um formato colunar, e, portanto, esperam que cada exemplo tenha o mesmo tipo e subtipos, e que os dicionários tenham as mesmas chaves e tipos de valores. Ao carregar um dataset, ocorre um erro quando os campos têm tipos incompatíveis, e os campos ausentes nos dicionários são preenchidos com None para que todos os dicionários tenham as mesmas chaves e tipos de valores.

Para evitar isso e permitir tipos mistos sem erros, você pode usar on_mixed_types="use_json" ou especificar features= com um tipo 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"}]

Isso também é útil para listas de dicionários com chaves e valores arbitrários, para evitar preencher campos ausentes com 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

Outro exemplo com dados de chamada de ferramentas:

>>> 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 )

Parâmetros

  • generator ( —Callable): Uma função geradora que yields exemplos.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • cache_dir (str, opcional, padrão "~/.cache/huggingface/datasets") — Diretório para armazenar os dados em cache.
  • keep_in_memory (bool, padrão False) — Se deve copiar os dados para a memória.
  • gen_kwargs(dict, opcional) — Argumentos de palavra-chave a serem passados para o chamável generator. Você pode definir um conjunto de dados particionado passando a lista de partições em gen_kwargs e definindo num_proc maior que 1.
  • num_proc (int, opcional, padrão é None) — Número de processos ao baixar e gerar o dataset localmente. Isso é útil se o dataset for composto por vários arquivos. O multiprocessing é desativado por padrão. Se num_proc for maior que um, todos os valores de lista em gen_kwargs devem ter o mesmo comprimento. Esses valores serão divididos entre as chamadas ao gerador. O número de shards será o mínimo entre a lista mais curta em gen_kwargs e num_proc.

    Adicionado na 2.7.0

  • split (NamedSplit, padrão é Split.TRAIN) — Nome da divisão a ser atribuído ao dataset.

    Adicionado na 2.21.0

  • fingerprint (str, opcional) — Fingerprint que será usado para gerar o ID do dataset. Por padrão fingerprint é gerado por meio de hash da função geradora e de todos os argumentos, o que pode ser lento se usar objetos grandes, como modelos de IA.

    Adicionado na 4.3.0

  • **kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave a serem passados para :GeneratorConfig.

Crie um Dataset a partir de um gerador.

Carregue os dados do gerador, cacheie os dados em formato Arrow no disco e retorne o Dataset dos dados Arrow mapeados na memória no disco.

Exemplo:

>>> 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})

dados

< >

( )

A tabela Apache Arrow que sustenta o conjunto de dados.

Exemplo:

>>> 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

< >

( )

Os arquivos de cache contendo a tabela Apache Arrow que sustenta o conjunto de dados.

Exemplo:

>>> 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

< >

( )

Número de colunas no conjunto de dados.

Exemplo:

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

num_rows

< >

( )

Número de linhas no conjunto de dados (igual a Dataset.len()).

Exemplo:

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

column_names

< >

( )

Nomes das colunas no conjunto de dados.

Exemplo:

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

forma

< >

( )

Formato do conjunto de dados (número de colunas, número de linhas).

Exemplo:

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

único

< >

( column: str ) → list

Parâmetros

  • column (str) — Nome da coluna (liste todos os nomes de colunas com column_names).

Retorna

list

Lista de elementos únicos na coluna fornecida.

Retorna uma lista dos elementos únicos em uma coluna.

Isso é implementado no backend de baixo nível e, portanto, é muito rápido.

Exemplo:

>>> 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

Parâmetros

  • new_fingerprint (str, opcional) — A nova impressão digital do conjunto de dados após a transformação. Se None, a nova impressão digital é calculada usando um hash da impressão digital anterior e dos argumentos da transformação.

Uma cópia do conjunto de dados com colunas achatadas.

Achatar a tabela. Cada coluna com tipo struct é achatada em uma coluna por campo do struct. As outras colunas permanecem inalteradas.

Exemplo:

>>> 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

Parâmetros

  • features (Features) — Novos recursos para os quais o dataset deve ser convertido. O nome dos campos nos recursos deve corresponder aos nomes atuais das colunas. O tipo dos dados também deve ser convertível de um tipo para o outro. Para conversões não triviais, por exemplo, str <-> ClassLabel, você deve usar map() para atualizar o Dataset.
  • batch_size (int, padrão 1000) — Número de exemplos por lote fornecidos ao cast. Se batch_size <= 0 ou batch_size == None, forneça o conjunto de dados completo como um único lote ao cast.
  • keep_in_memory (bool, padrão False) — Se deve copiar os dados para a memória.
  • load_from_cache_file (bool, padrão True se o cache estiver habilitado) — Se um arquivo de cache que armazena o cálculo atual de function puder ser identificado, use-o em vez de recalcular.
  • cache_file_name (str, opcional, padrão None) — Forneça o nome de um caminho para o arquivo de cache. Ele é usado para armazenar os resultados do cálculo em vez do nome do arquivo de cache gerado automaticamente.
  • writer_batch_size (int, padrão 1000) — Número de linhas por operação de escrita para o escritor do arquivo de cache. Este valor é um bom equilíbrio entre o uso de memória durante o processamento e a velocidade de processamento. Um valor maior faz com que o processamento realize menos consultas, enquanto um valor menor consome menos memória temporária durante a execução de map().
  • num_proc (int, opcional, padrão None) — Número de processos para multiprocessamento. Por padrão, não utiliza multiprocessamento.

Uma cópia do conjunto de dados com recursos convertidos.

Convert o conjunto de dados para um novo conjunto de recursos.

Exemplo:

>>> 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 )

Parâmetros

  • column (str) — Nome da coluna.
  • feature (FeatureType) — Recurso alvo.
  • new_fingerprint (str, opcional) — A nova impressão digital do conjunto de dados após a transformação. Se None, a nova impressão digital é calculada usando um hash da impressão digital anterior e dos argumentos da transformação.

Convert a coluna para recurso para decodificação.

Exemplo:

>>> 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

Parâmetros

  • column_names (Union[str, List[str]]) — Nome da(s) coluna(s) a ser(em) removida(s).
  • new_fingerprint (str, opcional) — A nova impressão digital do conjunto de dados após a transformação. Se None, a nova impressão digital é calculada usando um hash da impressão digital anterior e dos argumentos da transformação.

Uma cópia do objeto de dataset sem as colunas a serem removidas.

Remove uma ou várias colunas do conjunto de dados e os recursos associados a elas.

Você também pode remover uma coluna usando map() com remove_columns, mas o método presente não copia os dados das colunas restantes e, portanto, é mais rápido.

Exemplo:

>>> 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

Parâmetros

  • original_column_name (str) — Nome da coluna a ser renomeada.
  • new_column_name (str) — Novo nome para a coluna.
  • new_fingerprint (str, opcional) — A nova impressão digital do conjunto de dados após a transformação. Se None, a nova impressão digital é calculada usando um hash da impressão digital anterior e dos argumentos da transformação.

Uma cópia do conjunto de dados com uma coluna renomeada.

Renomeie uma coluna no dataset e mova os recursos associados à coluna original para o novo nome da coluna.

Exemplo:

>>> 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

Parâmetros

  • column_mapping (Dict[str, str]) — Um mapeamento de colunas para renomear para seus novos nomes
  • new_fingerprint (str, opcional) — A nova impressão digital do conjunto de dados após a transformação. Se None, a nova impressão digital é calculada usando um hash da impressão digital anterior e dos argumentos da transformação.

Uma cópia do conjunto de dados com colunas renomeadas

Renomeie várias colunas no conjunto de dados e mova os recursos associados às colunas originais para os novos nomes de coluna.

Exemplo:

>>> 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

Parâmetros

  • column_names (Union[str, List[str]]) — Nome da(s) coluna(s) a ser(em) mantida(s).
  • new_fingerprint (str, opcional) — A nova impressão digital do conjunto de dados após a transformação. Se None, a nova impressão digital é calculada usando um hash da impressão digital anterior e dos argumentos da transformação.

Uma cópia do objeto de conjunto de dados que consiste apenas nas colunas selecionadas.

Selecione uma ou várias colunas no conjunto de dados e os recursos associados a elas.

Exemplo:

>>> 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 )

Parâmetros

  • column (str) — O nome da coluna para converter (liste todos os nomes de colunas com column_names)
  • include_nulls (bool, padrão é False) — Se deve incluir valores nulos nos rótulos de classe. Se True, os valores nulos serão codificados como o rótulo de classe "None" .

    Adicionado na 1.14.2

Converte a coluna indicada em ClassLabel e atualiza a tabela.

Exemplo:

>>> 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__

< >

( )

Número de linhas no conjunto de dados.

Exemplo:

>>> 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__

< >

( )

Itere pelos exemplos.

Se um formato for definido com Dataset.set_format(), as linhas serão retornadas no formato selecionado.

iter

< >

( batch_size: intdrop_last_batch: bool = False )

Parâmetros

  • batch_size (int) — tamanho de cada lote a ser gerado.
  • drop_last_batch (bool, padrão False) — Se um último lote menor que o batch_size deve ser descartado

Itere pelos lotes de tamanho batch_size.

Se um formato for definido com [~datasets.Dataset.set_format], as linhas serão retornadas no formato selecionado.

formatted_as

< >

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

Parâmetros

  • type (str, opcional) — O tipo de saída selecionado em [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None significa que getitem retorna objetos Python (padrão).
  • columns (List[str], opcional) — Colunas a serem formatadas na saída. None significa que __getitem__ retorna todas as colunas (padrão).
  • output_all_columns (bool, padrão False) — Mantém também as colunas não formatadas na saída (como objetos python).
  • **format_kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave passados para a função de conversão, como np.array, torch.tensor ou tensorflow.ragged.constant.

Para ser usado em uma declaração with. Define o formato de retorno de __getitem__ (tipo e colunas).

set_format

< >

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

Parâmetros

  • type (str, opcional) — O tipo de saída selecionado em [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None significa que __getitem__ retorna objetos python (padrão).
  • columns (List[str], opcional) — Colunas a serem formatadas na saída. None significa que __getitem__ retorna todas as colunas (padrão).
  • output_all_columns (bool, padrão False) — Mantém também as colunas não formatadas na saída (como objetos python).
  • **format_kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave passados para a função de conversão, como np.array, torch.tensor ou tensorflow.ragged.constant.

Defina o formato de retorno de __getitem__ (tipo e colunas). O formatação dos dados é aplicada em tempo real. O formato type (por exemplo, “numpy”) é usado para formatar lotes ao usar __getitem__. Também é possível usar transformações personalizadas para formatação usando set_transform().

É possível chamar map() depois de chamar set_format. Como map pode adicionar novas colunas, a lista de colunas formatadas

é atualizado. Nesse caso, se você aplicar map em um conjunto de dados para adicionar uma nova coluna, essa coluna será formatada da seguinte forma:

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

Exemplo:

>>> 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 )

Parâmetros

  • transform (Callable, opcional) — Transformação de formatação definida pelo usuário, substitui o formato definido por set_format(). Uma função de formatação é um chamável que recebe um lote (como um dict) como entrada e retorna um lote. Esta função é aplicada imediatamente antes de retornar os objetos em __getitem__.
  • columns (List[str], opcional) — Colunas a serem formatadas na saída. Se especificado, o lote de entrada da transformação contém apenas essas colunas.
  • output_all_columns (bool, padrão False) — Mantém também as colunas não formatadas na saída (como objetos python). Se definido como True, as outras colunas não formatadas são mantidas junto com a saída do transform.

Defina o formato de retorno de __getitem__ usando esta transformação. A transformação é aplicada em tempo real nos lotes quando __getitem__ é chamado. Assim como set_format(), isso pode ser redefinido usando reset_format().

Exemplo:

>>> 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

< >

( )

Redefina o formato de retorno de __getitem__ para objetos Python e todas as colunas.

Igual a self.set_format()

Exemplo:

>>> 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 )

Parâmetros

  • type (str, opcional) — O tipo de saída selecionado em [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None significa que __getitem__ retorna objetos python (padrão).
  • columns (List[str], opcional) — Colunas a serem formatadas na saída. None significa que __getitem__ retorna todas as colunas (padrão).
  • output_all_columns (bool, padrão False) — Mantém também as colunas não formatadas na saída (como objetos python).
  • **format_kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave passados para a função de conversão, como np.array, torch.tensor ou tensorflow.ragged.constant.

Defina o formato de retorno de __getitem__ (tipo e colunas). O formatação dos dados é aplicada em tempo real. O formato type (por exemplo, “numpy”) é usado para formatar lotes ao usar __getitem__.

Também é possível usar transforms personalizados para formatação usando with_transform().

Ao contrário de set_format(), with_format retorna um novo objeto Dataset.

Exemplo:

>>> 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 )

Parâmetros

  • transform (Callable, optional) — User-defined formatting transform, replaces the format defined by set_format(). A formatting function is a callable that takes a batch (as a dict) as input and returns a batch. This function is applied right before returning the objects in __getitem__.
  • columns (List[str], optional) — Colunas a serem formatadas na saída. Se especificado, o lote de entrada da transformação contém apenas essas colunas.
  • output_all_columns (bool, padrão False) — Mantém também as colunas não formatadas na saída (como objetos Python). Se definido como True, as outras colunas não formatadas são mantidas junto com a saída da transformação.

Defina o formato de retorno de __getitem__ usando esta transformação. A transformação é aplicada em tempo real nos lotes quando __getitem__ é chamado.

Assim como set_format(), isso pode ser redefinido usando reset_format().

Ao contrário de set_transform(), with_transform retorna um novo objeto Dataset.

Exemplo:

>>> 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 )

Pode ser usado para indexar colunas (por nomes de string) ou linhas (por índice inteiro ou iterável de índices ou bools).

cleanup_cache_files

< >

( ) → int

Retorna

int

Número de arquivos removidos.

Limpe todos os arquivos de cache no diretório de cache do dataset, exceto o arquivo de cache atualmente em uso, se houver um.

Tenha cuidado ao executar este comando para garantir que nenhum outro processo esteja usando outros arquivos de cache no momento.

Exemplo:

>>> 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' )

Parâmetros

  • function (Callable) — Função com uma das seguintes assinaturas:
    • function(example: Dict[str, Any]) -> Dict[str, Any] se batched=False e with_indices=False e with_rank=False
    • function(example: Dict[str, Any], *extra_args) -> Dict[str, Any] se batched=False e with_indices=True e/ou with_rank=True (um argumento extra para cada)
    • function(batch: Dict[str, List]) -> Dict[str, List] se batched=True e with_indices=False e with_rank=False
    • function(batch: Dict[str, List], *extra_args) -> Dict[str, List] se batched=True e with_indices=True e/ou with_rank=True (um argumento extra para cada)

    Para uso avançado, a função também pode retornar uma pyarrow.Table. Se a função for assíncrona, o map executará sua função em paralelo. Além disso, se sua função não retornar nada (None), o map executará sua função e retornará o dataset inalterado. Se nenhuma função for fornecida, usa-se a função identidade por padrão: lambda x: x.

  • with_indices (bool, padrão False) — Fornece índices de exemplo para function. Observe que, nesse caso, a assinatura de function deve ser def function(example, idx[, rank]): ....
  • with_rank (bool, padrão False) — Fornece o rank do processo para function. Observe que, nesse caso, a assinatura de function deve ser def function(example[, idx], rank): ....
  • input_columns (Optional[Union[str, List[str]]], padrão None) — As colunas a serem passadas para function como argumentos posicionais. Se None, um dict mapeando para todas as colunas formatadas é passado como um único argumento.
  • batched (bool, padrão False) — Fornece um lote de exemplos para function.
  • batch_size (int, opcional, padrão 1000) — Número de exemplos por lote fornecidos a function se batched=True. Se batch_size <= 0 ou batch_size == None, forneça o conjunto de dados completo como um único lote para function.
  • drop_last_batch (bool, padrão False) — Se um último lote menor que o batch_size deve ser descartado em vez de ser processado pela função.
  • remove_columns (Optional[Union[str, List[str]]], padrão None) — Remove uma seleção de colunas durante o mapeamento. As colunas serão removidas antes de atualizar os exemplos com a saída de function, ou seja, se function estiver adicionando colunas com nomes em remove_columns, essas colunas serão mantidas.
  • keep_in_memory (bool, padrão False) — Mantém o conjunto de dados em memória em vez de gravá-lo em um arquivo de cache.
  • load_from_cache_file (Optional[bool], padrão True se o cache estiver habilitado) — Se um arquivo de cache que armazena o cálculo atual de function puder ser identificado, use-o em vez de recalcular.
  • cache_file_name (str, opcional, padrão None) — Forneça o nome de um caminho para o arquivo de cache. Ele é usado para armazenar os resultados do cálculo em vez do nome do arquivo de cache gerado automaticamente.
  • writer_batch_size (int, padrão 1000) — Número de linhas por operação de escrita para o escritor do arquivo de cache. Este valor é um bom equilíbrio entre o uso de memória durante o processamento e a velocidade de processamento. Um valor maior faz com que o processamento realize menos consultas, enquanto um valor menor consome menos memória temporária durante a execução de map.
  • features (Optional[datasets.Features], padrão None) — Use um Features específico para armazenar o arquivo de cache em vez do gerado automaticamente.
  • disable_nullable (bool, padrão False) — Não permite valores nulos na tabela.
  • fn_kwargs (Dict, opcional, padrão None) — Argumentos de palavra-chave a serem passados para function.
  • num_proc (int, opcional, padrão é None) — O número de processos a serem usados para multiprocessamento.
    • Se None ou 0, nenhum multiprocessing é usado e a operação é executada no processo principal.
    • 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, opcional, padrão None) — A nova impressão digital do conjunto de dados após a transformação. Se None, a nova impressão digital é calculada usando um hash da impressão digital anterior e dos argumentos da transformação.
  • desc (str, opcional, padrão None) — Descrição significativa para ser exibida junto com a barra de progresso durante o mapeamento de exemplos.
  • try_original_type (Optional[bool], padrão True) — Tenta manter os tipos das colunas originais (ex.: int32 -> int32). Defina como False se quiser sempre inferir novos tipos.
  • on_mixed_types (Literal["use_json"], opcional, padrão é None) — Se "use_json", usa o tipo Json() para campos de tipos mistos, ou seja, campos não estruturados que contêm dados sem um esquema predefinido. Nesse caso, um campo com tipo misto é definido como Json().

    Isso permite carregar listas com uma mistura de strings/inteiros/floats, por exemplo, ou dicionários com tipos de valores arbitrários.

    Adicionado na 4.7.0

Aplica uma função a todos os exemplos da tabela (individualmente ou em lotes) e atualiza a tabela. Se sua função retornar uma coluna que já existe, ela será sobrescrita.

Você pode especificar se a função deve ser processada em lote ou não com o parâmetro batched:

  • Se False, a função recebe 1 exemplo e deve retornar 1 exemplo. Um exemplo é um dicionário, por exemplo, {"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 !"]}.
  • Se True e batch_size é n > 1, a função recebe um lote de n exemplos como entrada e pode retornar um lote com n exemplos, ou com um número arbitrário de exemplos. Observe que o último lote pode ter menos de n exemplos. Um lote é um dicionário, por exemplo, um lote de n exemplos é {"text": ["Hello there !"] * n}.

Se a função for assíncrona, map executará sua função em paralelo, com até mil chamadas simultâneas. Recomenda-se usar um asyncio.Semaphore na sua função se você quiser definir um número máximo de operações que podem ser executadas ao mesmo tempo.

Exemplo:

>>> 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)

filtro

< >

( 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 )

Parâmetros

  • function (Callable) — Função chamável com uma das seguintes assinaturas:
    • function(example: Dict[str, Any]) -> bool se batched=False e with_indices=False e with_rank=False
    • function(example: Dict[str, Any], *extra_args) -> bool se batched=False e with_indices=True e/ou with_rank=True (um argumento extra para cada)
    • function(batch: Dict[str, List]) -> List[bool] se batched=True e with_indices=False e with_rank=False
    • function(batch: Dict[str, List], *extra_args) -> List[bool] se batched=True e with_indices=True e/ou with_rank=True (um argumento extra para cada)

    Se a função for assíncrona, filter executará sua função em paralelo. Se nenhuma função for fornecida, o padrão é uma função que sempre retorna True: lambda x: True.

  • with_indices (bool, padrão False) — Fornece índices de exemplo para function. Observe que, nesse caso, a assinatura de function deve ser def function(example, idx[, rank]): ....
  • with_rank (bool, padrão False) — Fornece o rank do processo para function. Observe que, nesse caso, a assinatura de function deve ser def function(example[, idx], rank): ....
  • input_columns (str ou List[str], opcional) — As colunas a serem passadas para function como argumentos posicionais. Se None, um dict mapeando para todas as colunas formatadas é passado como um único argumento.
  • batched (bool, padrão False) — Fornece um lote de exemplos para function.
  • batch_size (int, opcional, padrão 1000) — Número de exemplos por lote fornecidos à function se batched = True. Se batched = False, um exemplo por lote é passado para a function. Se batch_size <= 0 ou batch_size == None, forneça o conjunto de dados completo como um único lote para a function.
  • keep_in_memory (bool, padrão False) — Mantém o conjunto de dados em memória em vez de gravá-lo em um arquivo de cache.
  • load_from_cache_file (Optional[bool], padrão True se o cache estiver habilitado) — Se um arquivo de cache que armazena o cálculo atual de function puder ser identificado, use-o em vez de recalcular.
  • cache_file_name (str, opcional) — Forneça o nome de um caminho para o arquivo de cache. Ele é usado para armazenar os resultados do cálculo em vez do nome do arquivo de cache gerado automaticamente.
  • writer_batch_size (int, padrão 1000) — Número de linhas por operação de escrita para o escritor do arquivo de cache. Este valor é um bom equilíbrio entre o uso de memória durante o processamento e a velocidade de processamento. Um valor maior faz com que o processamento realize menos consultas, enquanto um valor menor consome menos memória temporária durante a execução de map.
  • fn_kwargs (dict, opcional) — Argumentos de palavra-chave a serem passados para function.
  • num_proc (int, opcional, padrão é None) — O número de processos a serem usados para multiprocessamento. Se for None ou 0, nenhum multiprocessamento é usado e a operação é executada no processo principal. Se for maior que 1, um ou vários processos de trabalho são usados para processar dados em paralelo. Observação: a função passada para map() deve ser serializável (picklable) para que o multiprocessamento funcione corretamente (ou seja, prefira funções definidas no nível superior de um módulo, não dentro de outra função ou classe).
    • Se None ou 0, nenhum multiprocessing é usado e a operação é executada no processo principal.
    • Se for maior que 1, um ou vários processos de worker são usados para processar dados em paralelo. Observação: a função passada para map() deve ser picklable para que a multiprocessamento funcione corretamente (ou seja, prefira funções definidas no nível superior de um módulo, não dentro de outra função ou classe).
  • suffix_template (str) — Se cache_file_name for especificado, esse sufixo será adicionado ao final do nome base de cada arquivo. Por exemplo, se cache_file_name for "processed.arrow", então para rank = 1 e num_proc = 4, o arquivo resultante seria "processed_00001_of_00004.arrow" para o sufixo padrão (padrão _{rank:05d}_of_{num_proc:05d}).
  • new_fingerprint (str, opcional) — A nova impressão digital do conjunto de dados após a transformação. Se None, a nova impressão digital é calculada usando um hash da impressão digital anterior e dos argumentos da transformação.
  • desc (str, opcional, padrão None) — Descrição significativa para ser exibida junto com a barra de progresso durante o filtramento de exemplos.

Aplicar uma função de filtro a todos os elementos da tabela em lotes e atualizar a tabela para que o conjunto de dados inclua apenas exemplos de acordo com a função de filtro.

Se a função for assíncrona, o filter executará sua função em paralelo, com até mil chamadas simultâneas (configurável). É recomendável usar um asyncio.Semaphore na sua função se você quiser definir um número máximo de operações que podem ser executadas ao mesmo tempo.

Exemplo:

>>> 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
})

selecionar

< >

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

Parâmetros

  • indices (range, list, iterable, ndarray ou Series) — Intervalo, lista ou array unidimensional de índices inteiros para indexação. Se os índices corresponderem a um intervalo contíguo, a tabela Arrow é simplesmente fatiada. No entanto, passar uma lista de índices que não são contíguos cria um mapeamento de índices, o que é muito menos eficiente, mas ainda assim mais rápido do que recriar uma tabela Arrow feita das linhas solicitadas.
  • keep_in_memory (bool, padrão False) — Mantém o mapeamento de índices na memória em vez de gravá-lo em um arquivo de cache.
  • indices_cache_file_name (str, opcional, padrão None) — Forneça o nome de um caminho para o arquivo de cache. Ele é usado para armazenar o mapeamento de índices em vez do nome do arquivo de cache gerado automaticamente.
  • writer_batch_size (int, padrão 1000) — Número de linhas por operação de escrita para o escritor do arquivo de cache. Este valor é um bom equilíbrio entre o uso de memória durante o processamento e a velocidade de processamento. Um valor maior faz com que o processamento realize menos consultas, enquanto um valor menor consome menos memória temporária durante a execução de map.
  • new_fingerprint (str, opcional, padrão None) — A nova impressão digital do conjunto de dados após a transformação. Se None, a nova impressão digital é calculada usando um hash da impressão digital anterior e dos argumentos da transformação.

Crie um novo dataset com as linhas selecionadas seguindo a lista/matriz de índices.

Exemplo:

>>> 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 )

Parâmetros

  • column_names (Union[str, Sequence[str]]) — Nome(s) da(s) coluna(s) para ordenação.
  • reverse (Union[bool, Sequence[bool]], padrão False) — Se True, ordena em ordem decrescente em vez de crescente. Se um único bool for fornecido, o valor é aplicado à ordenação de todos os nomes de colunas. Caso contrário, uma lista de bools com o mesmo comprimento e ordem que column_names deve ser fornecida.
  • null_placement (str, padrão é at_end) — Coloca None valores no início se at_start ou first ou no final se at_end ou last

    Adicionado na 1.14.2

  • keep_in_memory (bool, padrão False) — Mantém os índices ordenados na memória em vez de gravá-los em um arquivo de cache.
  • load_from_cache_file (Optional[bool], padrão True se o cache estiver habilitado) — Se um arquivo de cache que armazena os índices ordenados puder ser identificado, use-o em vez de recalculá-los.
  • indices_cache_file_name (str, opcional, padrão None) — Forneça o nome de um caminho para o arquivo de cache. Ele é usado para armazenar os índices ordenados em vez do nome do arquivo de cache gerado automaticamente.
  • writer_batch_size (int, padrão 1000) — Número de linhas por operação de gravação para o escritor do arquivo de cache. Um valor maior resulta em arquivos de cache menores, enquanto um valor menor consome menos memória temporária.
  • new_fingerprint (str, opcional, padrão None) — A nova impressão digital do conjunto de dados após a transformação. Se None, a nova impressão digital é calculada usando um hash da impressão digital anterior e dos argumentos da transformação

Crie um novo conjunto de dados ordenado de acordo com uma única coluna ou múltiplas colunas.

Exemplo:

>>> 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 )

Parâmetros

  • seed (int, opcional) — Uma semente para inicializar o BitGenerator padrão se generator=None. Se None, uma entropia fresca e imprevisível será obtida do SO. Se um int ou array_like[ints] for passado, ele será passado para SeedSequence para derivar o estado inicial do BitGenerator.
  • generator (numpy.random.Generator, opcional) — Generator aleatório do Numpy a ser usado para calcular a permutação das linhas do dataset. Se generator=None (padrão), usa np.random.default_rng (o BitGenerator padrão (PCG64) do NumPy).
  • keep_in_memory (bool, padrão False) — Mantém os índices embaralhados na memória em vez de gravá-los em um arquivo de cache.
  • load_from_cache_file (Optional[bool], padrão True se o cache estiver habilitado) — Se um arquivo de cache que armazena os índices embaralhados puder ser identificado, use-o em vez de recalculá-los.
  • indices_cache_file_name (str, opcional) — Forneça o nome de um caminho para o arquivo de cache. Ele é usado para armazenar os índices embaralhados em vez do nome do arquivo de cache gerado automaticamente.
  • writer_batch_size (int, padrão 1000) — Número de linhas por operação de escrita para o escritor do arquivo de cache. Este valor é um bom equilíbrio entre o uso de memória durante o processamento e a velocidade de processamento. Um valor maior faz com que o processamento realize menos consultas, enquanto um valor menor consome menos memória temporária durante a execução de map.
  • new_fingerprint (str, opcional, padrão None) — A nova impressão digital do conjunto de dados após a transformação. Se None, a nova impressão digital é calculada usando um hash da impressão digital anterior e dos argumentos da transformação.

Crie um novo Dataset em que as linhas são embaralhadas.

Atualmente, o embaralhamento usa geradores aleatórios do numpy. Você pode fornecer um BitGenerator do NumPy para usar, ou uma seed para iniciar o gerador aleatório padrão do NumPy (PCG64).

Shuffling pega a lista de índices [0:len(my_dataset)] e embaralha-a para criar um mapeamento de índices. No entanto, assim que seu Dataset possui um mapeamento de índices, a velocidade pode ficar 10x mais lenta. Isso ocorre porque há uma etapa extra para obter o índice da linha a ser lido usando o mapeamento de índices e, mais importante, você não está mais lendo blocos contíguos de dados. Para restaurar a velocidade, você precisaria reescrever o conjunto de dados inteiro no seu disco novamente usando Dataset.flatten_indices(), que remove o mapeamento de índices.

Isso pode levar bastante tempo, dependendo do tamanho do seu conjunto de dados:

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

Nesse caso, recomendamos alternar para um IterableDataset e aproveitar seu método rápido de embaralhamento aproximado IterableDataset.shuffle().

Ele apenas embaralha a ordem dos shards e adiciona um buffer de embaralhamento ao seu dataset, mantendo a velocidade do seu dataset otimizada:

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

Exemplo:

>>> 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]

pular

< >

( n: int )

Parâmetros

  • n (int) — Número de elementos a serem ignorados.

Crie um novo Dataset que ignora os primeiros n elementos.

Exemplo:

>>> 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 )

Parâmetros

  • n (int) — Número de elementos a serem obtidos.

Crie um novo Dataset com apenas os primeiros n elementos.

Exemplo:

>>> 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 )

Parâmetros

  • test_size (Union[float, int, None], opcional) — Tamanho da divisão de teste Se float, deve estar entre 0.0 e 1.0 e representar a proporção do conjunto de dados a incluir na divisão de teste. Se int, representa o número absoluto de amostras de teste. Se None, o valor é definido como o complemento do tamanho do treino. Se train_size também for None, será definido como 0.25.
  • train_size (Union[float, int, None], opcional) — Tamanho da divisão de treino Se float, deve estar entre 0.0 e 1.0 e representar a proporção do conjunto de dados a incluir na divisão de treino. Se int, representa o número absoluto de amostras de treino. Se None, o valor é definido automaticamente como o complemento do tamanho do teste.
  • shuffle (bool, opcional, padrão True) — Se os dados devem ser embaralhados antes da divisão.
  • stratify_by_column (str, opcional, padrão None) — O nome da coluna de rótulos a ser usada para realizar a divisão estratificada dos dados.
  • seed (int, opcional) — Uma semente para inicializar o BitGenerator padrão se generator=None. Se None, uma entropia fresca e imprevisível será obtida do SO. Se um int ou array_like[ints] for passado, ele será passado para SeedSequence para derivar o estado inicial do BitGenerator.
  • generator (numpy.random.Generator, opcional) — Generator aleatório do Numpy a ser usado para calcular a permutação das linhas do dataset. Se generator=None (padrão), usa np.random.default_rng (o BitGenerator padrão (PCG64) do NumPy).
  • keep_in_memory (bool, padrão False) — Mantém os índices das divisões em memória em vez de gravá-los em um arquivo de cache.
  • load_from_cache_file (Optional[bool], padrão True se o cache estiver habilitado) — Se um arquivo de cache que armazena os índices das divisões puder ser identificado, use-o em vez de recalculá-los.
  • train_cache_file_name (str, opcional) — Forneça o nome de um caminho para o arquivo de cache. Ele é usado para armazenar os índices do split de treino em vez do nome do arquivo de cache gerado automaticamente.
  • test_cache_file_name (str, opcional) — Forneça o nome de um caminho para o arquivo de cache. Ele é usado para armazenar os índices do conjunto de teste em vez do nome do arquivo de cache gerado automaticamente.
  • writer_batch_size (int, padrão 1000) — Número de linhas por operação de escrita para o escritor do arquivo de cache. Este valor é um bom equilíbrio entre o uso de memória durante o processamento e a velocidade de processamento. Um valor maior faz com que o processamento realize menos consultas, enquanto um valor menor consome menos memória temporária durante a execução de map.
  • train_new_fingerprint (str, opcional, padrão None) — A nova impressão digital do conjunto de treinamento após a transformação. Se None, a nova impressão digital é calculada usando um hash da impressão digital anterior e dos argumentos da transformação
  • test_new_fingerprint (str, opcional, padrão None) — O novo fingerprint do conjunto de testes após a transformação. Se None, o novo fingerprint é calculado usando um hash do fingerprint anterior e dos argumentos da transformação

Retorna um dicionário (datasets.DatasetDict) com dois subconjuntos aleatórios de treino e teste (train e test Dataset splits). Os splits são criados a partir do dataset de acordo com test_size, train_size e shuffle.

Este método é semelhante ao train_test_split do scikit-learn.

Exemplo:

>>> 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 )

Parâmetros

  • num_shards (int) — Quantos shards dividir o dataset em.
  • index (int) — Qual shard selecionar e retornar.
  • contiguous — (bool, padrão True): Se deve selecionar blocos contíguos de índices para os shards.
  • keep_in_memory (bool, padrão False) — Mantém o conjunto de dados em memória em vez de gravá-lo em um arquivo de cache.
  • indices_cache_file_name (str, opcional) — Forneça o nome de um caminho para o arquivo de cache. Ele é usado para armazenar os índices de cada shard em vez do nome do arquivo de cache gerado automaticamente.
  • writer_batch_size (int, padrão 1000) — Isso diz respeito apenas ao mapeamento de índices. Número de índices por operação de escrita para o escritor do arquivo de cache. Esse valor é um bom equilíbrio entre o uso de memória durante o processamento e a velocidade de processamento. Um valor maior faz com que o processamento realize menos consultas, enquanto um valor menor consome menos memória temporária durante a execução de map.

Retorna o shard de índice index do conjunto de dados dividido em num_shards partes.

Isso faz o particionamento de forma determinística. dataset.shard(n, i) divide o conjunto de dados em blocos contíguos, para que possa ser facilmente concatenado novamente após o processamento. Se len(dataset) % n == l, então os primeiros l conjuntos de dados têm comprimento (len(dataset) // n) + 1, e os conjuntos de dados restantes têm comprimento (len(dataset) // n). datasets.concatenate_datasets([dset.shard(n, i) for i in range(n)]) retorna um conjunto de dados com a mesma ordem que o original.

Observação: n deve ser menor ou igual ao número de elementos no conjunto de dados len(dataset).

Por outro lado, dataset.shard(n, i, contiguous=False) contém todos os elementos do conjunto de dados cujo índice mod n = i.

Certifique-se de fazer o sharding antes de usar qualquer operador de randomização (como shuffle). É melhor usar o operador de sharding no início do pipeline do dataset.

Exemplo:

>>> 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 )

Parâmetros

  • num_times (int) — Número de vezes para repetir o conjunto de dados.

Crie um novo Dataset que repete o dataset subjacente num_times vezes.

Assim como itertools.repeat, repetir uma única vez retorna o conjunto de dados completo.

Exemplo:

>>> 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 )

Parâmetros

  • batch_size (int, opcional) — Tamanho dos lotes a serem carregados do conjunto de dados. O padrão é None, o que implica que o conjunto de dados não será loteado, mas o conjunto de dados retornado pode ser loteado posteriormente com tf_dataset.batch(batch_size).
  • columns (List[str] ou str, opcional) — Coluna(s) do dataset a carregar no tf.data.Dataset. Podem ser usados nomes de colunas criados pelo collate_fn que não existem no dataset original.
  • shuffle(bool, padrão False) — Embaralha a ordem do conjunto de dados ao carregar. Recomendado True para treinamento, False para validação/avaliação.
  • drop_remainder(bool, padrão é False) — Descarta o último lote incompleto ao carregar. Garante que todos os lotes gerados pelo conjunto de dados tenham o mesmo comprimento na dimensão do lote.
  • collate_fn(Callable, opcional) — Uma função ou objeto chamável (como um DataCollator) que irá agrupar listas de amostras em um lote.
  • collate_fn_args (Dict, opcional) — Um dict opcional de argumentos de palavra-chave a serem passados para o collate_fn.
  • label_cols (List[str] ou str, padrão None) — Coluna(s) do dataset a carregar como rótulos. Observe que muitos modelos calculam a perda internamente em vez de deixar o Keras fazê-lo, caso em que passar os rótulos aqui é opcional, desde que estejam nas columns de entrada.
  • prefetch (bool, padrão True) — Se o dataloader deve ser executado em uma thread separada e manter um pequeno buffer de lotes para o treinamento. Melhora o desempenho ao permitir que os dados sejam carregados em segundo plano enquanto o modelo está em treinamento.
  • num_workers (int, padrão 0) — Número de workers a serem usados para carregar o dataset.
  • num_test_batches (int, padrão 20) — Número de lotes a serem usados para inferir a assinatura de saída do conjunto de dados. Quanto maior esse número, mais precisa será a assinatura, mas mais tempo levará para criar o conjunto de dados.

Crie um tf.data.Dataset a partir do Dataset subjacente. Este tf.data.Dataset carregará e agrupará lotes do Dataset e é adequado para ser passado a métodos como model.fit() ou model.predict(). O dataset produzirá dicts tanto para entradas quanto para rótulos, a menos que o dict contenha apenas uma única chave, caso em que um tf.Tensor bruto será produzido em vez disso.

Exemplo:

>>> 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 )

Parâmetros

  • repo_id (str) — O ID do repositório para o qual será feito o push, no seguinte formato: <user>/<dataset_name> ou <org>/<dataset_name>. Também aceita <dataset_name>, que usará o namespace do usuário conectado por padrão.

    Também pode ser um local dentro de um bucket, por exemplo, buckets/<user_or_org>/<bucket_name>/...

  • config_name (str, padrão “default”) — O nome da configuração (ou subconjunto) de um conjunto de dados. O padrão é “default”.
  • set_default (bool, opcional) — Se deve definir esta configuração como a padrão. Caso contrário, a configuração padrão é a chamada “default”.
  • split (str, opcional) — O nome da divisão que será atribuído a esse conjunto de dados. O padrão é self.split.
  • data_dir (str, opcional) — Nome do diretório que conterá os arquivos de dados enviados. O valor padrão é o config_name se for diferente de “default”, caso contrário “data”.

    Adicionado na 2.17.0

  • commit_message (str, opcional) — Mensagem a ser commitada durante o push. O padrão será "Upload dataset".
  • commit_description (str, opcional) — Descrição do commit que será criado. Além disso, descrição do PR, se um PR for criado (create_pr é True).

    Adicionado na 2.16.0

  • private (bool, opcional) — Se deve tornar o repositório privado. Se None (padrão), o repositório será público, a menos que o padrão da organização seja privado. Este valor é ignorado se o repositório já existir.
  • token (str, opcional) — Um token de autenticação opcional para o Hugging Face Hub. Se nenhum token for passado, será usado por padrão o token salvo localmente ao fazer login com hf auth login. Será gerado um erro se nenhum token for passado e o usuário não estiver conectado.
  • revision (str, opcional) — Branch para onde os arquivos enviados serão enviados. O padrão é a branch "main" .

    Adicionado na 2.15.0

  • create_pr (bool, opcional, padrão é False) — Se deve criar um PR com os arquivos enviados ou fazer o commit diretamente.

    Adicionado na 2.15.0

  • max_shard_size (int ou str, opcional, padrão "500MB") — O tamanho máximo dos shards do dataset a serem enviados para o hub. Se expresso como string, deve ser composto por dígitos seguidos de uma unidade (como "5MB").
  • num_shards (int, opcional) — Número de shards a serem gravados. Por padrão, o número de shards depende de max_shard_size.

    Adicionado na 2.8.0

  • embed_external_files (bool, padrão é True) — Se incorporar os bytes dos arquivos nos shards. Especificamente, isso fará o seguinte antes do push para os campos do tipo:
    • Áudio e Imagem: remova as informações de caminho local e incorpore o conteúdo dos arquivos nos arquivos Parquet.
  • num_proc (int, opcional, padrão é None) — Número de processos ao preparar e enviar o dataset. Isso é útil se o dataset for composto por muitas amostras ou arquivos de mídia para incorporar. Usa o contexto “spawn” para funcionar com hf_xet, o cliente rust para uploads rápidos para o HF. O multiprocessing é desabilitado por padrão.

    Adicionado na 4.0.0

Envia o dataset para o hub como um dataset Parquet. O dataset é enviado usando requisições HTTP e não é necessário ter nem git nem git-lfs instalados.

Os arquivos Parquet resultantes são autossuficientes por padrão. Se o seu conjunto de dados contiver dados de Image, Audio ou Video, os arquivos Parquet armazenarão os bytes das suas imagens ou arquivos de áudio. Você pode desativar isso definindo embed_external_files como False.

Exemplo:

>>> 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)

Se o seu conjunto de dados tiver várias divisões (por exemplo, treino/validação/teste):

>>> 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"]

Se você deseja adicionar uma nova configuração (ou subconjunto) a um conjunto de dados (por exemplo, se o conjunto de dados tiver várias tarefas/versões/idiomas):

>>> 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 )

Parâmetros

  • dataset_path (path-like) — Caminho (por exemplo, dataset/train) ou URI remota (por exemplo, s3://my-bucket/dataset/train) do diretório do conjunto de dados onde o conjunto de dados será salvo.
  • max_shard_size (int ou str, opcional, padrão "500MB") — O tamanho máximo dos shards do dataset a serem salvos no sistema de arquivos. Se expresso como string, deve ser composto por dígitos seguidos de uma unidade (como "50MB").
  • num_shards (int, opcional) — Número de shards a serem gravados. Por padrão, o número de shards depende de max_shard_size e num_proc.

    Adicionado na 2.8.0

  • num_proc (int, opcional) — Número de processos ao baixar e gerar o dataset localmente. O multiprocessing é desabilitado por padrão.

    Adicionado na 2.8.0

  • storage_options (dict, opcional) — Pares de chave/valor a serem passados para o backend do sistema de arquivos, se houver.

    Adicionado na 2.8.0

Salva um conjunto de dados em um diretório de conjunto de dados ou em um sistema de arquivos usando qualquer implementação de fsspec.spec.AbstractFileSystem.

Para dados de Image, Audio e Video:

Todos os dados de Image(), Audio() e Video() são armazenados nos arquivos arrow. Se você deseja armazenar caminhos ou urls, use o tipo Value(“string”).

Exemplo:

>>> 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

Parâmetros

  • dataset_path (path-like) — Caminho (por exemplo, "dataset/train") ou URI remoto (por exemplo, "s3//my-bucket/dataset/train") do diretório do dataset de onde o dataset será carregado.
  • keep_in_memory (bool, padrão None) — Se deve copiar o dataset para a memória. Se None, o dataset não será copiado para a memória, a menos que seja explicitamente habilitado ao definir datasets.config.IN_MEMORY_MAX_SIZE para um valor diferente de zero. Veja mais detalhes na seção melhorar o desempenho.
  • storage_options (dict, opcional) — Pares de chave/valor a serem passados para o backend do sistema de arquivos, se houver.

    Adicionado na 2.8.0

Retorna

Dataset ou DatasetDict

  • Se dataset_path for um caminho de um diretório de dataset, o dataset solicitado.
  • Se dataset_path for um caminho para um diretório de dicionário de datasets, um datasets.DatasetDict com cada split.

Carrega um conjunto de dados que foi salvo anteriormente usando save_to_disk a partir de um diretório de conjunto de dados, ou de um sistema de arquivos usando qualquer implementação de fsspec.spec.AbstractFileSystem.

Exemplo:

>>> 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 )

Parâmetros

  • keep_in_memory (bool, padrão False) — Mantém o conjunto de dados em memória em vez de gravá-lo em um arquivo de cache.
  • cache_file_name (str, opcional, padrão None) — Forneça o nome de um caminho para o arquivo de cache. Ele é usado para armazenar os resultados do cálculo em vez do nome do arquivo de cache gerado automaticamente.
  • writer_batch_size (int, padrão 1000) — Número de linhas por operação de escrita para o escritor do arquivo de cache. Este valor é um bom equilíbrio entre o uso de memória durante o processamento e a velocidade de processamento. Um valor maior faz com que o processamento realize menos consultas, enquanto um valor menor consome menos memória temporária durante a execução de map.
  • features (Optional[datasets.Features], padrão None) — Use um Features específico para armazenar o arquivo de cache em vez do gerado automaticamente.
  • disable_nullable (bool, padrão False) — Permite valores nulos na tabela.
  • num_proc (int, opcional, padrão None) — Número máximo de processos ao gerar o cache. Os shards já em cache são carregados sequencialmente
  • new_fingerprint (str, opcional, padrão None) — A nova impressão digital do conjunto de dados após a transformação. Se None, a nova impressão digital é calculada usando um hash da impressão digital anterior e dos argumentos da transformação

Crie e cacheie um novo Dataset aplanando o mapeamento de índices.

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

Parâmetros

  • path_or_buf (PathLike ou FileOrBuffer) — Um caminho para um arquivo (por exemplo, file.csv), um URI remoto (por exemplo, hf://datasets/username/my_dataset_name/data.csv), ou um BinaryIO, onde o conjunto de dados será salvo no formato especificado.
  • batch_size (int, opcional) — Tamanho do lote a ser carregado na memória e gravado de uma vez. Padrão: datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • num_proc (int, opcional) — Número de processos para multiprocessamento. Por padrão, não usa multiprocessamento. batch_size nesse caso é definido como datasets.config.DEFAULT_MAX_BATCH_SIZE, mas sinta-se à vontade para aumentá-lo para 5x ou 10x do valor padrão, se você tiver poder de computação suficiente.
  • storage_options (dict, opcional) — Pares de chave/valor a serem passados para o backend do sistema de arquivos, se houver.

    Adicionado na 2.19.0

  • **to_csv_kwargs (argumentos de palavra-chave adicionais) — Parâmetros para passar ao pandas.DataFrame.to_csv.

    Alterado em 2.10.0

    Agora, index tem o valor padrão False se não for especificado.

    Se você deseja gravar o índice, passe index=True e também defina um nome para a coluna de índice passando index_label.

Retorna

int

O número de caracteres ou bytes gravados.

Exporta o conjunto de dados para csv

Exemplo:

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

to_pandas

< >

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

Parâmetros

  • batch_size (int, opcional) — O tamanho (número de linhas) dos lotes se batched for True. Padrão: datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • batched (bool) — Defina como True para retornar um gerador que fornece o dataset em lotes de batch_size linhas. O padrão é False (retorna todo o dataset de uma vez).

Retorna o conjunto de dados como um pandas.DataFrame. Também pode retornar um gerador para conjuntos de dados grandes.

Exemplo:

>>> ds.to_pandas()

to_dict

< >

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

Parâmetros

  • batch_size (int, opcional) — O tamanho (número de linhas) dos lotes se batched for True. Padrão: datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • batched (bool) — Defina como True para retornar um gerador que fornece o dataset em lotes de batch_size linhas. O padrão é False (retorna todo o dataset de uma vez).

Retorna o conjunto de dados como um dicionário Python. Também pode retornar um gerador para conjuntos de dados grandes.

Exemplo:

>>> 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

Parâmetros

  • path_or_buf (PathLike ou FileOrBuffer) — Um caminho para um arquivo (por exemplo, file.json), um URI remoto (por exemplo, hf://datasets/username/my_dataset_name/data.json), ou um BinaryIO, onde o conjunto de dados será salvo no formato especificado.
  • batch_size (int, opcional) — Tamanho do lote a ser carregado na memória e gravado de uma vez. Padrão: datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • num_proc (int, opcional) — Número de processos para multiprocessamento. Por padrão, não usa multiprocessamento. batch_size nesse caso é definido como datasets.config.DEFAULT_MAX_BATCH_SIZE, mas sinta-se à vontade para aumentá-lo para 5x ou 10x do valor padrão, se você tiver poder de computação suficiente.
  • storage_options (dict, opcional) — Pares de chave/valor a serem passados para o backend do sistema de arquivos, se houver.

    Adicionado na 2.19.0

  • **to_json_kwargs (argumentos de palavra-chave adicionais) — Parâmetros para passar ao pandas.DataFrame.to_json. Os argumentos padrão são lines=True e `orient=“records”.

    Alterado em 2.11.0

    O parâmetro index tem o valor padrão False se orient for "split" ou "table".

    Se você deseja gravar o índice, passe index=True.

Retorna

int

O número de caracteres ou bytes gravados.

Exporte o conjunto de dados para JSON Lines ou JSON.

O formato de saída padrão é JSON Lines. Para exportar para JSON, passe o argumento lines=False e o orient desejado.

Exemplo:

>>> 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

Parâmetros

  • path_or_buf (PathLike ou FileOrBuffer) — Um caminho para um arquivo (por exemplo, file.parquet), um URI remoto (por exemplo, hf://datasets/username/my_dataset_name/data.parquet), ou um BinaryIO, onde o conjunto de dados será salvo no formato especificado.
  • batch_size (int, opcional) — Tamanho do lote a ser carregado na memória e escrito de uma vez. Por padrão, visa grupos de linhas com tamanho máximo descomprimido de “100MB”, definido por datasets.config.MAX_ROW_GROUP_SIZE.
  • storage_options (dict, opcional) — Pares de chave/valor a serem passados para o backend do sistema de arquivos, se houver.

    Adicionado na 2.19.0

  • **parquet_writer_kwargs (argumentos de palavra-chave adicionais) — Parâmetros para passar ao pyarrow.parquet.ParquetWriter do PyArrow.

Retorna

int

O número de caracteres ou bytes gravados.

Exporta o conjunto de dados para parquet

Exemplo:

>>> 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

Parâmetros

  • name (str) — Nome da tabela SQL.
  • con (str ou sqlite3.Connection ou sqlalchemy.engine.Connection ou sqlalchemy.engine.Connection) — Uma string URI ou um objeto de conexão SQLite3/SQLAlchemy usado para gravar em um banco de dados.
  • batch_size (int, opcional) — Tamanho do lote a ser carregado na memória e gravado de uma vez. Padrão: datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • num_proc (int, opcional) — Número de processos para multiprocessamento. Por padrão, não usa multiprocessamento. batch_size nesse caso é definido como datasets.config.DEFAULT_MAX_BATCH_SIZE, mas sinta-se à vontade para aumentá-lo para 5x ou 10x do valor padrão, se você tiver poder de computação suficiente.
  • **sql_writer_kwargs (argumentos de palavra-chave adicionais) — Parâmetros para passar ao pandas.DataFrame.to_sql.

    Alterado em 2.11.0

    Agora, index tem o valor padrão False se não for especificado.

    Se você deseja gravar o índice, passe index=True e também defina um nome para a coluna de índice passando index_label.

Retorna

int

O número de registros gravados.

Exporta o conjunto de dados para um banco de dados SQL.

Exemplo:

>>> # 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 )

Parâmetros

  • num_shards (int, padrão 1) — Número de shards a definir ao instanciar o dataset iterável. Isso é especialmente útil para datasets grandes, permitindo embaralhar corretamente, e também para habilitar o carregamento paralelo rápido usando um PyTorch DataLoader ou em configurações distribuídas, por exemplo. Os shards são definidos usando datasets.Dataset.shard(): eles simplesmente fatiam os dados sem gravar nada em disco.

Obtenha um datasets.IterableDataset a partir de um datasets.Dataset de estilo mapa. Isso é equivalente a carregar um conjunto de dados em modo de streaming com datasets.load_dataset(), mas muito mais rápido, pois os dados são transmitidos a partir de arquivos locais.

Ao contrário dos datasets no estilo mapa, os datasets iteráveis são preguiçosos e podem apenas ser iterados (por exemplo, usando um laço for). Como são lidos sequencialmente nos loops de treinamento, os datasets iteráveis são muito mais rápidos do que os datasets no estilo mapa. Todas as transformações aplicadas a datasets iteráveis, como filtragem ou processamento, são feitas em tempo real quando você começa a iterar sobre o dataset.

Ainda assim, é possível embaralhar um dataset iterável usando datasets.IterableDataset.shuffle(). Este é um embaralhamento aproximado rápido que funciona melhor se você tiver vários shards e especificar um tamanho de buffer grande o suficiente.

Para obter o melhor desempenho de velocidade, certifique-se de que seu conjunto de dados não tenha um mapeamento de índices. Se esse for o caso, os dados não são lidos de forma contígua, o que pode ser lento às vezes. Você pode usar ds = ds.flatten_indices() para gravar seu conjunto de dados em blocos contíguos de dados e ter a velocidade ideal antes de alternar para um conjunto de dados iterável.

Exemplo:

Uso básico:

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

Com filtragem e processamento preguiçosos:

>>> 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

Com sharding para permitir shuffling eficiente:

>>> 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

Com um DataLoader do PyTorch:

>>> 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

Com um DataLoader do PyTorch e embaralhamento:

>>> 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

Em uma configuração distribuída como PyTorch DDP com um PyTorch DataLoader e embaralhamento

>>> 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

Com embaralhamento e múltiplas épocas:

>>> 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'> )

Parâmetros

  • column (str) — A coluna dos vetores a serem adicionados ao índice.
  • index_name (str, opcional) — O index_name/identificador do índice. Este é o index_name usado para chamar get_nearest_examples() ou search(). Por padrão, corresponde a column.
  • device (Union[int, List[int]], opcional) — Se for um inteiro positivo, este é o índice da GPU a ser usada. Se for um inteiro negativo, usa todas as GPUs. Se uma lista de inteiros positivos for passada, executa apenas nessas GPUs. Por padrão, usa a CPU.
  • string_factory (str, opcional) — Isso é passado para a fábrica de índices do Faiss para criar o índice. A classe de índice padrão é IndexFlat.
  • metric_type (int, opcional) — Tipo de métrica. Ex: faiss.METRIC_INNER_PRODUCT ou faiss.METRIC_L2.
  • custom_index (faiss.Index, opcional) — Índice Faiss personalizado que você já instanciou e configurou para suas necessidades.
  • batch_size (int) — Tamanho do lote a ser usado ao adicionar vetores ao FaissIndex. O valor padrão é 1000.

    Adicionado na 2.4.0

  • train_size (int, opcional) — Se o índice precisar de uma etapa de treinamento, especifica quantos vetores serão usados para treinar o índice.
  • faiss_verbose (bool, padrão False) — Ativa a verbosidade do índice Faiss.
  • dtype (data-type) — O dtype dos arrays numpy que são indexados. O padrão é np.float32.

Adicione um índice denso usando Faiss para recuperação rápida. Por padrão, o índice é feito sobre os vetores da coluna especificada. Você pode especificar device se quiser executá-lo na GPU (device deve ser o índice da GPU). Você pode encontrar mais informações sobre o Faiss aqui:

Exemplo:

>>> 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'> )

Parâmetros

  • external_arrays (np.array) — Se você deseja usar arrays externos à lib para o índice, pode definir external_arrays. Ele usará external_arrays para criar o índice Faiss em vez dos arrays na column fornecida.
  • index_name (str) — O index_name/identificador do índice. Este é o index_name usado para chamar get_nearest_examples() ou search().
  • device (Opcional Union[int, List[int]], optional) — Se for um inteiro positivo, este é o índice da GPU a ser usada. Se for um inteiro negativo, usa todas as GPUs. Se uma lista de inteiros positivos for passada, executa apenas nessas GPUs. Por padrão, usa a CPU.
  • string_factory (str, opcional) — Isso é passado para a fábrica de índices do Faiss para criar o índice. A classe de índice padrão é IndexFlat.
  • metric_type (int, opcional) — Tipo de métrica. Ex: faiss.faiss.METRIC_INNER_PRODUCT ou faiss.METRIC_L2.
  • custom_index (faiss.Index, opcional) — Índice Faiss personalizado que você já instanciou e configurou para suas necessidades.
  • batch_size (int, opcional) — Tamanho do lote a ser usado ao adicionar vetores ao FaissIndex. O valor padrão é 1000.

    Adicionado na 2.4.0

  • train_size (int, opcional) — Se o índice precisar de uma etapa de treinamento, especifica quantos vetores serão usados para treinar o índice.
  • faiss_verbose (bool, padrão False) — Ativa a verbosidade do índice Faiss.
  • dtype (numpy.dtype) — O dtype dos arrays numpy que são indexados. O padrão é np.float32.

Adicione um índice denso usando Faiss para recuperação rápida. O índice é criado usando os vetores de external_arrays. Você pode especificar device se quiser executá-lo na GPU (device deve ser o índice da GPU). Você pode encontrar mais informações sobre o Faiss aqui:

save_faiss_index

< >

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

Parâmetros

  • index_name (str) — O index_name/identificador do índice. Este é o index_name usado para chamar .get_nearest ou .search.
  • file (str) — O caminho para o índice faiss serializado no disco ou URI remoto (por exemplo, "s3://my-bucket/index.faiss").
  • storage_options (dict, opcional) — Pares de chave/valor a serem passados para o backend do sistema de arquivos, se houver.

    Adicionado na 2.11.0

Salve um FaissIndex em disco.

load_faiss_index

< >

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

Parâmetros

  • index_name (str) — O index_name/identificador do índice. Este é o index_name usado para chamar .get_nearest ou .search.
  • file (str) — O caminho para o índice faiss serializado no disco ou URI remoto (por exemplo, "s3://my-bucket/index.faiss").
  • device (Opcional Union[int, List[int]]) — Se for um inteiro positivo, este é o índice da GPU a ser usada. Se for um inteiro negativo, usa todas as GPUs. Se uma lista de inteiros positivos for passada, executa apenas nessas GPUs. Por padrão, usa a CPU.
  • storage_options (dict, opcional) — Pares de chave/valor a serem passados para o backend do sistema de arquivos, se houver.

    Adicionado na 2.11.0

Carregue um FaissIndex do disco.

Se você quiser fazer configurações adicionais, pode ter acesso ao objeto de índice faiss executando .get_index(index_name).faiss_index para adaptá-lo às suas necessidades.

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 )

Parâmetros

  • column (str) — A coluna dos documentos a serem adicionados ao índice.
  • index_name (str, opcional) — O index_name/identificador do índice. Este é o nome do índice usado para chamar get_nearest_examples() ou search(). Por padrão, corresponde a column.
  • host (str, opcional, padrão localhost) — Host onde o ElasticSearch está em execução.
  • port (str, opcional, padrão 9200) — Porta em que o ElasticSearch está em execução.
  • es_client (elasticsearch.Elasticsearch, opcional) — O cliente elasticsearch usado para criar o índice se host e port forem None.
  • es_index_name (str, opcional) — O nome do índice do elasticsearch usado para criar o índice.
  • es_index_config (dict, opcional) — A configuração do índice do elasticsearch. A configuração padrão é:

Adicione um índice de texto usando ElasticSearch para recuperação rápida. Isso é feito in-place.

Exemplo:

>>> 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 )

Parâmetros

  • index_name (str) — O index_name/identificador do índice. Este é o nome do índice usado para chamar get_nearest ou search.
  • es_index_name (str) — O nome do índice do elasticsearch a ser carregado.
  • host (str, opcional, padrão localhost) — Host onde o ElasticSearch está em execução.
  • port (str, opcional, padrão 9200) — Porta em que o ElasticSearch está em execução.
  • es_client (elasticsearch.Elasticsearch, opcional) — O cliente elasticsearch usado para criar o índice se host e port forem None.
  • es_index_config (dict, opcional) — A configuração do índice do elasticsearch. A configuração padrão é:

Carregue um índice de texto existente usando ElasticSearch para recuperação rápida.

list_indexes

< >

( )

Liste os colindex_nameumns/identificadores de todos os índices anexados.

get_index

< >

( index_name: str )

Parâmetros

  • index_name (str) — Nome do índice.

Liste o index_name/identificadores de todos os índices anexados.

drop_index

< >

( index_name: str )

Parâmetros

  • index_name (str) — O index_name/identificador do índice.

Remova o índice com a coluna especificada.

pesquisar

< >

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

Parâmetros

  • index_name (str) — O nome/identificador do índice.
  • query (Union[str, np.ndarray]) — A query como string se index_name for um índice de texto ou como um array numpy se index_name for um índice de vetor.
  • k (int) — O número de exemplos a serem recuperados.

Retorna

(scores, indices)

Uma tupla de (scores, indices) onde:

  • scores (List[List[float]): as pontuações de recuperação dos exemplos recuperados, obtidas do FAISS (IndexFlatL2 por padrão) ou do ElasticSearch
  • indices (List[List[int]]): os índices dos exemplos recuperados

Encontre os índices dos exemplos mais próximos no conjunto de dados em relação à consulta.

search_batch

< >

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

Parâmetros

  • index_name (str) — O index_name/identificador do índice.
  • queries (Union[List[str], np.ndarray]) — As queries como uma lista de strings se index_name for um índice de texto ou como um array numpy se index_name for um índice de vetor.
  • k (int) — O número de exemplos a serem recuperados por consulta.

Retorna

(total_scores, total_indices)

Uma tupla de (total_scores, total_indices) onde:

  • total_scores (List[List[float]): as pontuações de recuperação dos exemplos recuperados por consulta, obtidas do FAISS (IndexFlatL2 por padrão) ou do ElasticSearch
  • total_indices (List[List[int]]): os índices dos exemplos recuperados por consulta

Encontre os índices dos exemplos mais próximos no conjunto de dados em relação à consulta.

get_nearest_examples

< >

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

Parâmetros

  • index_name (str) — O index_name/identificador do índice.
  • query (Union[str, np.ndarray]) — A query como string se index_name for um índice de texto ou como um array numpy se index_name for um índice de vetor.
  • k (int) — O número de exemplos a serem recuperados.

Retorna

(scores, examples)

Uma tupla de (scores, examples) onde:

  • scores (List[float]): as pontuações de recuperação dos exemplos recuperados, obtidas do FAISS (IndexFlatL2 por padrão) ou do ElasticSearch
  • exemplos (dict): os exemplos recuperados

Encontre os exemplos mais próximos no conjunto de dados em relação à consulta.

get_nearest_examples_batch

< >

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

Parâmetros

  • index_name (str) — O index_name/identificador do índice.
  • queries (Union[List[str], np.ndarray]) — As queries como uma lista de strings se index_name for um índice de texto ou como um array numpy se index_name for um índice de vetor.
  • k (int) — O número de exemplos a serem recuperados por consulta.

Retorna

(total_scores, total_examples)

Uma tupla de (total_scores, total_examples) onde:

  • total_scores (List[List[float]): as pontuações de recuperação dos exemplos recuperados por consulta, obtidas do FAISS (IndexFlatL2 por padrão) ou do ElasticSearch
  • total_examples (List[dict]): os exemplos recuperados por consulta

Encontre os exemplos mais próximos no conjunto de dados em relação à consulta.

info

< >

( )

Objeto DatasetInfo contendo todos os metadados do conjunto de dados.

split

< >

( )

objeto NamedSplit correspondente a uma divisão nomeada do conjunto de dados.

builder_name

< >

( )

citação

< >

( )

config_name

< >

( )

dataset_size

< >

( )

descrição

< >

( )

download_checksums

< >

( )

download_size

< >

( )

recursos

< >

( )

página inicial

< >

( )

licença

< >

( )

size_in_bytes

< >

( )

supervised_keys

< >

( )

versão

< >

( )

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 )

Parâmetros

  • path_or_paths (path-like ou lista de path-like) — Caminho(s) do(s) arquivo(s) CSV.
  • split (NamedSplit, opcional) — Nome da divisão a ser atribuído ao conjunto de dados.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • cache_dir (str, opcional, padrão "~/.cache/huggingface/datasets") — Diretório para armazenar os dados em cache.
  • keep_in_memory (bool, padrão False) — Se deve copiar os dados para a memória.
  • num_proc (int, opcional, padrão é None) — Número de processos ao baixar e gerar o dataset localmente. Isso é útil se o dataset for composto por vários arquivos. O multiprocessing é desativado por padrão.

    Adicionado na 2.8.0

  • **kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave a serem passados para pandas.read_csv.

Crie um Dataset a partir de arquivo(s) CSV.

Leia os arquivos CSV, cacheie os dados em formato Arrow no disco e retorne o Dataset a partir dos dados Arrow mapeados na memória no disco.

Exemplo:

>>> 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 )

Parâmetros

  • path_or_paths (path-like ou lista de path-like) — Caminho(s) do(s) arquivo(s) JSON ou JSON Lines.
  • split (NamedSplit, opcional) — Nome da divisão a ser atribuído ao conjunto de dados.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • cache_dir (str, opcional, padrão "~/.cache/huggingface/datasets") — Diretório para armazenar os dados em cache.
  • keep_in_memory (bool, padrão False) — Se deve copiar os dados para a memória.
  • field (str, opcional) — Nome do campo do arquivo JSON onde o conjunto de dados está contido.
  • num_proc (int, opcional padrão é None) — Número de processos ao baixar e gerar o dataset localmente. Isso é útil se o dataset for composto por vários arquivos. O multiprocessing é desabilitado por padrão.

    Adicionado na 2.8.0

  • **kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave a serem passados para JsonConfig.

Crie um Dataset a partir de arquivo(s) JSON ou JSON Lines.

Leia os arquivos JSON, cacheie os dados em formato Arrow no disco e retorne o Dataset a partir dos dados Arrow mapeados na memória no disco.

Exemplo:

>>> 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 )

Parâmetros

  • path_or_paths (path-like ou lista de path-like) — Caminho(s) do(s) arquivo(s) Parquet.
  • split (NamedSplit, opcional) — Nome da divisão a ser atribuído ao conjunto de dados.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • cache_dir (str, opcional, padrão "~/.cache/huggingface/datasets") — Diretório para armazenar os dados em cache.
  • keep_in_memory (bool, padrão False) — Se deve copiar os dados para a memória.
  • columns (List[str], opcional) — Se não for None, apenas essas colunas serão lidas do arquivo. O nome de uma coluna pode ser um prefixo de um campo aninhado, por exemplo, ‘a’ selecionará ‘a.b’, ‘a.c’ e ‘a.d.e’.
  • num_proc (int, opcional, padrão é None) — Número de processos ao baixar e gerar o dataset localmente. Isso é útil se o dataset for composto por vários arquivos. O multiprocessing é desativado por padrão.

    Adicionado na 2.8.0

  • filters (Union[pyarrow.dataset.Expression, list[tuple], list[list[tuple]]], opcional) — Retorna apenas as linhas que correspondem ao filtro. Se possível, o predicado será empurrado para baixo para explorar as informações de particionamento ou os metadados internos encontrados na fonte de dados, por exemplo, estatísticas do Parquet. Caso contrário, filtra os RecordBatches carregados antes de retorná-los.
  • fragment_scan_options (pyarrow.dataset.ParquetFragmentScanOptions, opcional) — Opções específicas de varredura para fragmentos Parquet. Isso é especialmente útil para configurar bufferização e cache.

    Adicionado na 4.2.0

  • on_bad_files (Literal["error", "warn", "skip"], opcional, padrão é “error”) — Especifica o que fazer ao encontrar um arquivo inválido (um arquivo que não pode ser lido). Os valores permitidos são :
    • ‘error’, lança uma Exception quando um arquivo inválido é encontrado.
    • ‘warn’, emite um aviso quando um arquivo inválido é encontrado e ignora esse arquivo.
    • ‘skip’, ignora arquivos inválidos sem gerar exceções ou avisos quando são encontrados.

    Adicionado na 4.2.0

  • **kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave a serem passados para ParquetConfig.

Crie um Dataset a partir de arquivo(s) Parquet.

Leia os arquivos Parquet, cacheie os dados em formato Arrow no disco e retorne o Dataset a partir dos dados Arrow mapeados na memória no disco.

Exemplo:

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

Carregue um subconjunto de colunas:

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

Filtre dados de forma eficiente, possivelmente pulando arquivos inteiros ou grupos de linhas:

>>> 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 )

Parâmetros

  • path_or_paths (path-like ou lista de path-like) — Caminho(s) do(s) arquivo(s) de texto.
  • split (NamedSplit, opcional) — Nome da divisão a ser atribuído ao conjunto de dados.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • cache_dir (str, opcional, padrão "~/.cache/huggingface/datasets") — Diretório para armazenar os dados em cache.
  • keep_in_memory (bool, padrão False) — Se deve copiar os dados para a memória.
  • num_proc (int, opcional, padrão é None) — Número de processos ao baixar e gerar o dataset localmente. Isso é útil se o dataset for composto por vários arquivos. O multiprocessing é desativado por padrão.

    Adicionado na 2.8.0

  • keep_linebreaks — (bool, padrão False): Se deve manter as quebras de linha.
  • sample_by (Literal["line", "paragraph", "document"], padrão “line”) — Se os dados devem ser carregados por linha, parágrafo ou documento. Por padrão, uma linha no dataset = uma linha.
  • **kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave a serem passados para TextConfig.

Crie um Dataset a partir de arquivo(s) de texto.

Leia os arquivos de texto, cacheie os dados em formato Arrow no disco e retorne o Dataset a partir dos dados Arrow mapeados na memória no disco.

Exemplo:

>>> 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 )

Parâmetros

  • sql (str ou sqlalchemy.sql.Selectable) — Consulta SQL a ser executada ou nome de uma tabela.
  • con (str ou sqlite3.Connection ou sqlalchemy.engine.Connection ou sqlalchemy.engine.Connection) — Uma string URI usada para instanciar uma conexão de banco de dados ou um objeto de conexão SQLite3/SQLAlchemy.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • cache_dir (str, opcional, padrão "~/.cache/huggingface/datasets") — Diretório para armazenar os dados em cache.
  • keep_in_memory (bool, padrão False) — Se deve copiar os dados para a memória.
  • **kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave a serem passados para SqlConfig.

Crie um Dataset a partir de uma consulta SQL ou de uma tabela de banco de dados.

Consulte o banco de dados SQL, cacheie os dados em formato Arrow no disco e retorne o Dataset a partir dos dados Arrow mapeados na memória no disco.

Exemplo:

>>> # 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")

O conjunto de dados retornado só pode ser armazenado em cache se con for especificado como uma string URI.

align_labels_with_mapping

< >

( label2id: dictlabel_column: str )

Parâmetros

  • label2id (dict) — O mapeamento de nomes de rótulos para IDs com o qual alinhar o conjunto de dados.
  • label_column (str) — O nome da coluna de rótulos para alinhar.

Alinhe o mapeamento de ID e nome de rótulos do conjunto de dados para corresponder a um mapeamento de entrada label2id. Isso é útil quando você deseja garantir que os rótulos previstos por um modelo estejam alinhados com o conjunto de dados. O alinhamento é feito usando os nomes de rótulos em minúsculas.

Exemplo:

>>> # 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 )

Parâmetros

  • dsets (List[datasets.Dataset] ou List[datasets.IterableDataset]) — Lista de Datasets para concatenar.
  • info (DatasetInfo, opcional) — Informações do dataset, como descrição, citação, etc.
  • split (NamedSplit, opcional) — Nome da divisão do conjunto de dados.
  • axis ({0, 1}, padrão é 0) — Eixo para concatenação, onde 0 significa sobre as linhas (verticalmente) e 1 significa sobre as colunas (horizontalmente).

    Adicionado na 1.6.0

Concatene vários conjuntos de dados (fontes) em um único conjunto de dados.

Use axis=0 para concatenar verticalmente (padrão) ou axis=1 para concatenar horizontalmente.

Observação para conjuntos de dados iteráveis:

  • se axis=0, o num_shards do dataset resultante é a soma dos num_shards de cada dataset.
  • se axis=1, o dataset resultante tem um (1) shard para não desalinhar os dados.
  • se os conjuntos de dados foram divididos com datasets.distributed.split_dataset_by_node(), todos eles devem ser divididos da mesma forma, e o conjunto de dados resultante mantém essa divisão.

Exemplo:

>>> 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

Parâmetros

  • datasets (List[Dataset] ou List[IterableDataset]) — Lista de datasets para intercalar.
  • probabilities (List[float], opcional, padrão None) — Se especificado, o novo conjunto de dados é construído amostrando exemplos de uma fonte por vez de acordo com essas probabilidades.
  • seed (int, opcional, padrão None) — A semente aleatória usada para escolher uma fonte para cada exemplo.
  • info (DatasetInfo, opcional) — Informações do dataset, como descrição, citação, etc.

    Adicionado na 2.4.0

  • split (NamedSplit, opcional) — Nome do split do dataset.

    Adicionado na 2.4.0

  • stopping_strategy (str, padrão é first_exhausted) — Três estratégias são propostas no momento, first_exhausted, all_exhausted e all_exhausted_without_replacement. Por padrão, first_exhausted é uma estratégia de subamostragem, ou seja, a construção do conjunto de dados é interrompida assim que um dos conjuntos de dados ficar sem amostras. Se a estratégia for all_exhausted, usamos uma estratégia de sobreamostragem, ou seja, a construção do conjunto de dados é interrompida assim que todas as amostras de todos os conjuntos de dados tiverem sido adicionadas pelo menos uma vez. Quando a estratégia é all_exhausted_without_replacement garantimos que cada amostra em cada conjunto de dados seja amostrada apenas uma vez. Observe que, se a estratégia for all_exhausted, o tamanho do conjunto de dados intercalado pode ficar enorme:
    • sem probabilidades, o conjunto de dados resultante terá max_length_datasets*nb_dataset amostras.
    • com as probabilidades dadas, o conjunto de dados resultante terá mais amostras se alguns conjuntos de dados tiverem uma probabilidade muito baixa de serem visitados.

O tipo de retorno depende do parâmetro datasets. Dataset se a entrada for uma lista de Dataset, IterableDataset se a entrada for uma lista de IterableDataset.

Intercale vários conjuntos de dados (fontes) em um único conjunto de dados. O novo conjunto de dados é construído alternando entre as fontes para obter os exemplos.

Você pode usar esta função em uma lista de objetos Dataset ou em uma lista de objetos IterableDataset.

  • Se probabilities for None (padrão), o novo conjunto de dados é construído alternando entre cada fonte para obter os exemplos.
  • Se probabilities não for None, o novo conjunto de dados é construído obtendo exemplos de uma fonte aleatória de cada vez, de acordo com as probabilidades fornecidas.

O dataset resultante termina quando um dos datasets de origem esgota seus exemplos, exceto quando oversampling é True, caso em que o dataset resultante termina quando todos os datasets tiverem esgotado seus exemplos pelo menos uma vez.

Observação para conjuntos de dados iteráveis:

  • O num_shards do dataset resultante é o mínimo dos num_shards de cada dataset para garantir um bom paralelismo. Se alguns dos seus datasets tiverem um número muito baixo de shards, você pode usar IterableDataset.reshard().
  • Em uma configuração distribuída ou nos workers do PyTorch DataLoader, a estratégia de parada é aplicada por processo. Portanto, a estratégia “first_exhausted” em um dataset iterável particionado pode gerar menos amostras no total (até 1 amostra faltante por subdataset por worker).

Exemplo:

Para conjuntos de dados regulares (estilo mapa):

>>> 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

Parâmetros

  • dataset (Dataset ou IterableDataset) — O conjunto de dados a ser dividido por nó.
  • rank (int) — Rank do nó atual.
  • world_size (int) — Número total de nós.
  • strategy (str, padrão "auto") — Como dividir um dataset iterável. Deve ser um de "auto", "shards" ou "examples". Datasets do tipo map suportam apenas "auto".

O conjunto de dados a ser usado no nó com a classificação rank.

Divida um conjunto de dados para o nó no rank rank em um pool de nós de tamanho world_size.

Para conjuntos de dados no estilo mapa:

Cada nó recebe um bloco de dados, por exemplo, o rank 0 recebe o primeiro bloco do conjunto de dados. Para maximizar a taxa de transferência do carregamento de dados, os blocos são compostos por dados contíguos no disco, sempre que possível.

Para conjuntos de dados iteráveis:

A strategy de divisão pode ser "auto", "shards" ou "examples":

  • "shards": os shards são distribuídos igualmente entre os nós
  • "examples": cada nó mantém 1 exemplo de world_size, pulando os outros exemplos
  • "auto" (padrão): usa "shards" se o conjunto de dados tiver um número de shards que é um fator de world_size (ou seja, se dataset.num_shards % world_size == 0), o que é o mais otimizado. Caso contrário, usa "examples".

Se você embaralhar seu conjunto de dados iterável em uma configuração distribuída, certifique-se de definir uma seed fixa em IterableDataset.shuffle() para que a mesma lista embaralhada de shards seja usada em todos os nós, a fim de saber quais shards o nó deve ignorar.

datasets.enable_caching

< >

( )

Ao aplicar transforms em um dataset, os dados são armazenados em arquivos de cache. O mecanismo de cache permite recarregar um arquivo de cache existente caso ele já tenha sido calculado.

Recarregar um conjunto de dados é possível, pois os arquivos de cache são nomeados usando a impressão digital do conjunto de dados, que é atualizada após cada transformação.

Se desativado, a biblioteca não recarregará mais os arquivos de datasets em cache ao aplicar transformações nos datasets. Mais precisamente, se o cache for desativado:

  • os arquivos de cache são sempre recriados
  • os arquivos de cache são gravados em um diretório temporário que é excluído quando a sessão é encerrada
  • os arquivos de cache são nomeados usando um hash aleatório em vez da impressão digital do conjunto de dados
  • Use save_to_disk() para salvar um dataset transformado, caso contrário ele será excluído quando a sessão for encerrada
  • O cache não afeta load_dataset(). Se você deseja regenerar um dataset do zero, deve usar o parâmetro download_mode em load_dataset().

datasets.disable_caching

< >

( )

Ao aplicar transforms em um dataset, os dados são armazenados em arquivos de cache. O mecanismo de cache permite recarregar um arquivo de cache existente caso ele já tenha sido calculado.

Recarregar um conjunto de dados é possível, pois os arquivos de cache são nomeados usando a impressão digital do conjunto de dados, que é atualizada após cada transformação.

Se desativado, a biblioteca não recarregará mais os arquivos de datasets em cache ao aplicar transformações nos datasets. Mais precisamente, se o cache for desativado:

  • os arquivos de cache são sempre recriados
  • os arquivos de cache são gravados em um diretório temporário que é excluído quando a sessão é encerrada
  • os arquivos de cache são nomeados usando um hash aleatório em vez da impressão digital do conjunto de dados
  • Use save_to_disk() para salvar um dataset transformado, caso contrário ele será excluído quando a sessão for encerrada
  • O cache não afeta load_dataset(). Se você deseja regenerar um dataset do zero, deve usar o parâmetro download_mode em load_dataset().

datasets.is_caching_enabled

< >

( )

Ao aplicar transforms em um dataset, os dados são armazenados em arquivos de cache. O mecanismo de cache permite recarregar um arquivo de cache existente caso ele já tenha sido calculado.

Recarregar um conjunto de dados é possível, pois os arquivos de cache são nomeados usando a impressão digital do conjunto de dados, que é atualizada após cada transformação.

Se desativado, a biblioteca não recarregará mais os arquivos de datasets em cache ao aplicar transformações nos datasets. Mais precisamente, se o cache for desativado:

  • os arquivos de cache são sempre recriados
  • os arquivos de cache são gravados em um diretório temporário que é excluído quando a sessão é encerrada
  • os arquivos de cache são nomeados usando um hash aleatório em vez da impressão digital do conjunto de dados
  • use save_to_disk()] para salvar um dataset transformado, caso contrário ele será excluído quando a sessão for encerrada
  • O cache não afeta load_dataset(). Se você deseja regenerar um dataset do zero, deve usar o parâmetro download_mode em load_dataset().

classe datasets.Column

< >

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

Um iterável para uma coluna específica de um Dataset.

Exemplo:

Itere sobre os textos da coluna “text” de um dataset:

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

Ele também funciona com colunas aninhadas:

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

DatasetDict

Dicionário com os nomes das divisões como chaves (por exemplo, ‘train’, ‘test’) e objetos Dataset como valores. Ele também possui métodos de transformação de dataset, como map ou filter, para processar todas as divisões de uma vez.

classe datasets.DatasetDict

< >

( )

Um dicionário (dict de str: datasets.Dataset) com os métodos de transformação de datasets (map, filter, etc.)

dados

< >

( )

As tabelas Apache Arrow que sustentam cada divisão.

Exemplo:

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

cache_files

< >

( )

Os arquivos de cache contendo a tabela Apache Arrow que sustenta cada divisão.

Exemplo:

>>> 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

< >

( )

Número de colunas em cada divisão do conjunto de dados.

Exemplo:

>>> 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

< >

( )

Número de linhas em cada divisão do conjunto de dados.

Exemplo:

>>> 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

< >

( )

Nomes das colunas em cada divisão do conjunto de dados.

Exemplo:

>>> 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']}

forma

< >

( )

Formato de cada divisão do conjunto de dados (número de linhas, número de colunas).

Exemplo:

>>> 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)}

único

< >

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

Parâmetros

  • column (str) — nome da coluna (liste todos os nomes de colunas com column_names)

Retorna

Dict[str, list]

Dicionário de elementos únicos na coluna fornecida.

Retorna uma lista dos elementos únicos em uma coluna para cada divisão.

Isso é implementado no backend de baixo nível e, portanto, é muito rápido.

Exemplo:

>>> 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

< >

( )

Limpe todos os arquivos de cache no diretório de cache do dataset, exceto o arquivo de cache atualmente em uso, se houver. Tenha cuidado ao executar este comando para garantir que nenhum outro processo esteja usando outros arquivos de cache.

Exemplo:

>>> 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 )

Parâmetros

  • function (callable) — com uma das seguintes assinaturas:
    • function(example: Dict[str, Any]) -> Dict[str, Any] se batched=False e with_indices=False
    • function(example: Dict[str, Any], indices: int) -> Dict[str, Any] se batched=False e with_indices=True
    • function(batch: Dict[str, list]) -> Dict[str, list] se batched=True e with_indices=False
    • function(batch: Dict[str, list], indices: list[int]) -> Dict[str, list] se batched=True e with_indices=True

    Para uso avançado, a função também pode retornar uma pyarrow.Table. Se a função for assíncrona, o map executará sua função em paralelo. Além disso, se sua função não retornar nada (None), o map executará sua função e retornará o dataset inalterado. Se nenhuma função for fornecida, usa-se a função identidade por padrão: lambda x: x.

  • with_indices (bool, padrão False) — Fornece índices de exemplo para function. Observe que, nesse caso, a assinatura de function deve ser def function(example, idx): ....
  • with_rank (bool, padrão False) — Fornece o rank do processo para function. Observe que, nesse caso, a assinatura de function deve ser def function(example[, idx], rank): ....
  • with_split (bool, padrão False) — Fornece o split do processo para function. Observe que, nesse caso, a assinatura de function deve ser def function(example[, idx], split): ....
  • input_columns ([Union[str, list[str]]], opcional, padrão None) — As colunas a serem passadas para function como argumentos posicionais. Se None, um dicionário mapeando para todas as colunas formatadas é passado como um único argumento.
  • batched (bool, padrão False) — Fornece um lote de exemplos para function.
  • batch_size (int, opcional, padrão 1000) — Número de exemplos por lote fornecidos a function se batched=True, se batch_size <= 0 ou batch_size == None, forneça o conjunto de dados completo como um único lote para function.
  • drop_last_batch (bool, padrão False) — Se um último lote menor que o batch_size deve ser descartado em vez de ser processado pela função.
  • remove_columns ([Union[str, list[str]]], opcional, padrão None) — Remove uma seleção de colunas durante o mapeamento. As colunas serão removidas antes de atualizar os exemplos com a saída de function, ou seja, se function estiver adicionando colunas com nomes em remove_columns, essas colunas serão mantidas.
  • keep_in_memory (bool, padrão False) — Mantém o conjunto de dados em memória em vez de gravá-lo em um arquivo de cache.
  • load_from_cache_file (Optional[bool], padrão True se o cache estiver habilitado) — Se um arquivo de cache que armazena o cálculo atual de function puder ser identificado, use-o em vez de recalcular.
  • cache_file_names ([Dict[str, str]], opcional, padrão None) — Forneça o nome de um caminho para o arquivo de cache. Ele é usado para armazenar os resultados do cálculo em vez do nome do arquivo de cache gerado automaticamente. Você deve fornecer um cache_file_name por conjunto de dados no dicionário de conjuntos de dados.
  • writer_batch_size (int, padrão 1000) — Número de linhas por operação de escrita para o escritor do arquivo de cache. Este valor é um bom equilíbrio entre o uso de memória durante o processamento e a velocidade de processamento. Um valor maior faz com que o processamento realize menos consultas, enquanto um valor menor consome menos memória temporária durante a execução de map.
  • features ([datasets.Features], opcional, padrão None) — Use um Features específico para armazenar o arquivo de cache em vez do gerado automaticamente.
  • disable_nullable (bool, padrão False) — Não permite valores nulos na tabela.
  • fn_kwargs (Dict, opcional, padrão None) — Argumentos de palavra-chave a serem passados para function
  • num_proc (int, opcional, padrão é None) — O número de processos a serem usados para multiprocessamento. Se for None ou 0, nenhum multiprocessamento é usado e a operação é executada no processo principal. Se for maior que 1, um ou vários processos de trabalho são usados para processar dados em paralelo. Observação: a função passada para map() deve ser serializável (picklable) para que o multiprocessamento funcione corretamente (ou seja, prefira funções definidas no nível superior de um módulo, não dentro de outra função ou classe).
    • Se None ou 0, nenhum multiprocessing é usado e a operação é executada no processo principal.
    • Se for maior que 1, um ou vários processos de worker são usados para processar dados em paralelo. Observação: a função passada para map() deve ser picklable para que a multiprocessamento funcione corretamente (ou seja, prefira funções definidas no nível superior de um módulo, não dentro de outra função ou classe).
  • desc (str, opcional, padrão None) — Descrição significativa para ser exibida junto com a barra de progresso durante o mapeamento de exemplos.
  • try_original_type (Optional[bool], padrão True) — Tenta manter os tipos das colunas originais (ex.: int32 -> int32). Defina como False se quiser sempre inferir novos tipos.
  • on_mixed_types (Literal["use_json"], opcional, padrão é None) — Se "use_json", usa o tipo Json() para campos de tipos mistos, ou seja, campos não estruturados que contêm dados sem um esquema predefinido. Nesse caso, um campo com tipo misto é definido como Json().

    Isso permite carregar listas com uma mistura de strings/inteiros/floats, por exemplo, ou dicionários com tipos de valores arbitrários.

    Adicionado na 4.7.0

Aplica uma função a todos os exemplos da tabela (individualmente ou em lotes) e atualiza a tabela. Se a sua função retornar uma coluna que já existe, ela a sobrescreve. A transformação é aplicada a todos os conjuntos de dados do dicionário de conjuntos de dados.

Você pode especificar se a função deve ser processada em lote ou não com o parâmetro batched:

  • Se False, a função recebe 1 exemplo e deve retornar 1 exemplo. Um exemplo é um dicionário, por exemplo, {"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 !"]}.
  • Se True e batch_size é n > 1, a função recebe um lote de n exemplos como entrada e pode retornar um lote com n exemplos, ou com um número arbitrário de exemplos. Observe que o último lote pode ter menos de n exemplos. Um lote é um dicionário, por exemplo, um lote de n exemplos é {"text": ["Hello there !"] * n}.

Se a função for assíncrona, map executará sua função em paralelo, com até mil chamadas simultâneas. Recomenda-se usar um asyncio.Semaphore na sua função se você quiser definir um número máximo de operações que podem ser executadas ao mesmo tempo.

Exemplo:

>>> 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)

filtro

< >

( 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 )

Parâmetros

  • function (Callable) — Callable com uma das seguintes assinaturas:
    • function(example: Dict[str, Any]) -> bool se batched=False e with_indices=False e with_rank=False
    • function(example: Dict[str, Any], *extra_args) -> bool se batched=False e with_indices=True e/ou with_rank=True (um argumento extra para cada)
    • function(batch: Dict[str, list]) -> list[bool] se batched=True e with_indices=False e with_rank=False
    • function(batch: Dict[str, list], *extra_args) -> list[bool] se batched=True e with_indices=True e/ou with_rank=True (um argumento extra para cada)

    Se nenhuma função for fornecida, o padrão é uma função que sempre retorna True: lambda x: True.

  • with_indices (bool, padrão False) — Fornece índices de exemplo para function. Observe que, nesse caso, a assinatura de function deve ser def function(example, idx[, rank]): ....
  • with_rank (bool, padrão False) — Fornece o rank do processo para function. Observe que, nesse caso, a assinatura de function deve ser def function(example[, idx], rank): ....
  • input_columns ([Union[str, list[str]]], opcional, padrão None) — As colunas a serem passadas para function como argumentos posicionais. Se None, um dicionário mapeando para todas as colunas formatadas é passado como um único argumento.
  • batched (bool, padrão False) — Fornece um lote de exemplos para function.
  • batch_size (int, opcional, padrão 1000) — Número de exemplos por lote fornecidos a function se batched=True batch_size <= 0 ou batch_size == None, então forneça o conjunto de dados completo como um único lote para function.
  • keep_in_memory (bool, padrão False) — Mantém o conjunto de dados em memória em vez de gravá-lo em um arquivo de cache.
  • load_from_cache_file (Optional[bool], padrão True se o cache estiver habilitado) — Se um arquivo de cache que armazena o cálculo atual de function puder ser identificado, use-o em vez de recalcular.
  • cache_file_names ([Dict[str, str]], opcional, padrão None) — Forneça o nome de um caminho para o arquivo de cache. Ele é usado para armazenar os resultados do cálculo em vez do nome do arquivo de cache gerado automaticamente. Você deve fornecer um cache_file_name por conjunto de dados no dicionário de conjuntos de dados.
  • writer_batch_size (int, padrão 1000) — Número de linhas por operação de escrita para o escritor do arquivo de cache. Este valor é um bom equilíbrio entre o uso de memória durante o processamento e a velocidade de processamento. Um valor maior faz com que o processamento realize menos consultas, enquanto um valor menor consome menos memória temporária durante a execução de map.
  • fn_kwargs (Dict, opcional, padrão None) — Argumentos de palavra-chave a serem passados para function
  • num_proc (int, opcional, padrão é None) — O número de processos a serem usados para multiprocessamento. Se for None ou 0, nenhum multiprocessamento é usado e a operação é executada no processo principal. Se for maior que 1, um ou vários processos de trabalho são usados para processar dados em paralelo. Observação: a função passada para map() deve ser serializável (picklable) para que o multiprocessamento funcione corretamente (ou seja, prefira funções definidas no nível superior de um módulo, não dentro de outra função ou classe).
    • Se None ou 0, nenhum multiprocessing é usado e a operação é executada no processo principal.
    • Se for maior que 1, um ou vários processos de worker são usados para processar dados em paralelo. Observação: a função passada para map() deve ser picklable para que a multiprocessamento funcione corretamente (ou seja, prefira funções definidas no nível superior de um módulo, não dentro de outra função ou classe).
  • desc (str, opcional, padrão None) — Descrição significativa para ser exibida junto com a barra de progresso durante o filtramento de exemplos.

Aplica uma função de filtro a todos os elementos da tabela em lotes e atualiza a tabela para que o conjunto de dados inclua apenas exemplos de acordo com a função de filtro. A transformação é aplicada a todos os conjuntos de dados do dicionário de conjuntos de dados.

Exemplo:

>>> 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 )

Parâmetros

  • column_names (Union[str, Sequence[str]]) — Nome(s) da(s) coluna(s) para ordenação.
  • reverse (Union[bool, Sequence[bool]], padrão False) — Se True, ordena em ordem decrescente em vez de crescente. Se um único bool for fornecido, o valor é aplicado à ordenação de todos os nomes de colunas. Caso contrário, uma lista de bools com o mesmo comprimento e ordem que column_names deve ser fornecida.
  • null_placement (str, padrão at_end) — Coloca valores None no início se at_start ou first ou no final se at_end ou last
  • keep_in_memory (bool, padrão False) — Mantém os índices ordenados na memória em vez de gravá-los em um arquivo de cache.
  • load_from_cache_file (Optional[bool], padrão True se o cache estiver habilitado) — Se um arquivo de cache que armazena os índices ordenados puder ser identificado, use-o em vez de recalculá-los.
  • indices_cache_file_names ([Dict[str, str]], opcional, padrão None) — Forneça o nome de um caminho para o arquivo de cache. Ele é usado para armazenar o mapeamento de índices em vez do nome do arquivo de cache gerado automaticamente. Você deve fornecer um cache_file_name por conjunto de dados no dicionário de conjuntos de dados.
  • writer_batch_size (int, padrão 1000) — Número de linhas por operação de gravação para o escritor do arquivo de cache. Um valor maior resulta em arquivos de cache menores, enquanto um valor menor consome menos memória temporária.

Crie um novo conjunto de dados ordenado de acordo com uma única coluna ou múltiplas colunas.

Exemplo:

>>> 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 )

Parâmetros

  • seeds (Dict[str, int] ou int, opcional) — Uma semente para inicializar o BitGenerator padrão se generator=None. Se None, uma entropia fresca e imprevisível será obtida do SO. Se um int ou array_like[ints] for passado, ele será passado para SeedSequence para derivar o estado inicial do BitGenerator. Você pode fornecer um seed por conjunto de dados no dicionário do conjunto de dados.
  • seed (int, opcional) — Uma semente para inicializar o BitGenerator padrão se generator=None. Alias para seeds (um ValueError é lançado se ambos forem fornecidos).
  • generators (Dict[str, *optional*, np.random.Generator]) — Generator aleatório do Numpy a ser usado para calcular a permutação das linhas do dataset. Se generator=None (padrão), usa np.random.default_rng (o BitGenerator padrão (PCG64) do NumPy). Você deve fornecer um generator por dataset no dicionário de datasets.
  • keep_in_memory (bool, padrão False) — Mantém o conjunto de dados em memória em vez de gravá-lo em um arquivo de cache.
  • load_from_cache_file (Optional[bool], padrão True se o cache estiver habilitado) — Se um arquivo de cache que armazena o cálculo atual de function puder ser identificado, use-o em vez de recalcular.
  • indices_cache_file_names (Dict[str, str], opcional) — Forneça o nome de um caminho para o arquivo de cache. Ele é usado para armazenar os mapeamentos de índices em vez do nome do arquivo de cache gerado automaticamente. Você deve fornecer um cache_file_name por conjunto de dados no dicionário de conjuntos de dados.
  • writer_batch_size (int, padrão 1000) — Número de linhas por operação de escrita para o escritor do arquivo de cache. Este valor é um bom equilíbrio entre o uso de memória durante o processamento e a velocidade de processamento. Um valor maior faz com que o processamento realize menos consultas, enquanto um valor menor consome menos memória temporária durante a execução de map.

Crie um novo Dataset em que as linhas são embaralhadas.

A transformação é aplicada a todos os conjuntos de dados do dicionário de conjuntos de dados.

Atualmente, o embaralhamento usa geradores aleatórios do numpy. Você pode fornecer um BitGenerator do NumPy para usar, ou uma seed para iniciar o gerador aleatório padrão do NumPy (PCG64).

Exemplo:

>>> 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 )

Parâmetros

  • type (str, opcional) — O tipo de saída selecionado em [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None significa que __getitem__ retorna objetos python (padrão).
  • columns (list[str], opcional) — Colunas a serem formatadas na saída. None significa que __getitem__ retorna todas as colunas (padrão).
  • output_all_columns (bool, padrão False) — Mantém também as colunas não formatadas na saída (como objetos python),
  • **format_kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave passados para a função de conversão, como np.array, torch.tensor ou tensorflow.ragged.constant.

Defina o formato de retorno de __getitem__ (tipo e colunas). O formato é definido para cada conjunto de dados no dicionário de conjuntos de dados.

É possível chamar map depois de chamar set_format. Como map pode adicionar novas colunas, a lista de colunas formatadas é atualizada. Nesse caso, se você aplicar map em um dataset para adicionar uma nova coluna, essa coluna será formatada:

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

Exemplo:

>>> 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

< >

( )

Redefina o formato de retorno de __getitem__ para objetos Python e todas as colunas. A transformação é aplicada a todos os conjuntos de dados do dicionário de conjuntos de dados.

Igual a self.set_format()

Exemplo:

>>> 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 )

Parâmetros

  • type (str, opcional) — O tipo de saída selecionado em [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None significa que __getitem__ retorna objetos python (padrão).
  • columns (list[str], opcional) — Colunas a serem formatadas na saída. None significa que __getitem__ retorna todas as colunas (padrão).
  • output_all_columns (bool, padrão False) — Mantém também as colunas não formatadas na saída (como objetos python).
  • **format_kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave passados para a função de conversão, como np.array, torch.tensor ou tensorflow.ragged.constant.

Para ser usado em uma declaração with. Define o formato de retorno de __getitem__ (tipo e colunas). A transformação é aplicada a todos os conjuntos de dados do dicionário de conjuntos de dados.

with_format

< >

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

Parâmetros

  • type (str, opcional) — O tipo de saída selecionado em [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None significa que __getitem__ retorna objetos python (padrão).
  • columns (list[str], opcional) — Colunas a serem formatadas na saída. None significa que __getitem__ retorna todas as colunas (padrão).
  • output_all_columns (bool, padrão False) — Mantém também as colunas não formatadas na saída (como objetos python).
  • **format_kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave passados para a função de conversão, como np.array, torch.tensor ou tensorflow.ragged.constant.

Defina o formato de retorno de __getitem__ (tipo e colunas). O formatação dos dados é aplicada em tempo real. O formato type (por exemplo, “numpy”) é usado para formatar lotes ao usar __getitem__. O formato é definido para cada conjunto de dados no dicionário de conjuntos de dados.

Também é possível usar transforms personalizados para formatação usando with_transform().

Ao contrário de set_format(), with_format retorna um novo objeto DatasetDict com novos objetos Dataset.

Exemplo:

>>> 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 )

Parâmetros

  • transform (Callable, opcional) — Transformação de formatação definida pelo usuário, substitui o formato definido por set_format(). Uma função de formatação é um objeto chamável que recebe um lote (como um dict) como entrada e retorna um lote. Esta função é aplicada imediatamente antes de retornar os objetos em __getitem__.
  • columns (list[str], opcional) — Colunas a serem formatadas na saída. Se especificado, o lote de entrada da transformação contém apenas essas colunas.
  • output_all_columns (bool, padrão False) — Mantém também as colunas não formatadas na saída (como objetos Python). Se definido como True, as outras colunas não formatadas são mantidas junto com a saída da transformação.

Defina o formato de retorno de __getitem__ usando esta transformação. A transformação é aplicada em tempo real nos lotes quando __getitem__ é chamado. A transformação é definida para cada conjunto de dados no dicionário de conjuntos de dados

Assim como set_format(), isso pode ser redefinido usando reset_format().

Ao contrário de set_transform(), with_transform retorna um novo objeto DatasetDict com novos objetos Dataset.

Exemplo:

>>> 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 )

Aplique o achatamento (flatten) na Tabela Apache Arrow de cada split (recursos aninhados são achatados). Cada coluna com tipo struct é achatada em uma coluna por campo do struct. As demais colunas permanecem inalteradas.

Exemplo:

>>> 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 )

Parâmetros

  • features (Features) — Novos recursos para os quais o conjunto de dados será convertido. O nome e a ordem dos campos nos recursos devem corresponder aos nomes atuais das colunas. O tipo dos dados também deve ser convertível de um tipo para o outro. Para conversões não triviais, por exemplo, string <-> ClassLabel, você deve usar map() para atualizar o conjunto de dados.

Casteie o conjunto de dados para um novo conjunto de recursos. A transformação é aplicada a todos os conjuntos de dados do dicionário de conjuntos de dados.

Exemplo:

>>> 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 )

Parâmetros

  • column (str) — Nome da coluna.
  • feature (Feature) — Recurso alvo.

Convert a coluna para recurso para decodificação.

Exemplo:

>>> 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

Parâmetros

  • column_names (Union[str, list[str]]) — Nome da(s) coluna(s) a ser(em) removida(s).

Retorna

DatasetDict

Uma cópia do objeto de dataset sem as colunas a serem removidas.

Remove uma ou várias colunas de cada split no dataset e os recursos associados às colunas.

A transformação é aplicada a todas as divisões do dicionário do conjunto de dados.

Você também pode remover uma coluna usando map() com remove_columns, mas o método presente não copia os dados das colunas restantes e, portanto, é mais rápido.

Exemplo:

>>> 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 )

Parâmetros

  • original_column_name (str) — Nome da coluna a ser renomeada.
  • new_column_name (str) — Novo nome para a coluna.

Renomeia uma coluna no dataset e move os recursos associados à coluna original para o novo nome da coluna. A transformação é aplicada a todos os datasets do dicionário de datasets.

Você também pode renomear uma coluna usando map() com remove_columns, mas o método presente:

  • cuida de mover os recursos originais para o novo nome de coluna.
  • não copia os dados para um novo dataset e, portanto, é muito mais rápido.

Exemplo:

>>> 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

Parâmetros

  • column_mapping (Dict[str, str]) — Um mapeamento de colunas para renomear para seus novos nomes.

Retorna

DatasetDict

Uma cópia do conjunto de dados com as colunas renomeadas.

Renomeie várias colunas no conjunto de dados e mova os recursos associados às colunas originais para os novos nomes de coluna. A transformação é aplicada a todos os conjuntos de dados do dicionário de conjuntos de dados.

Exemplo:

>>> 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]] )

Parâmetros

  • column_names (Union[str, list[str]]) — Nome da(s) coluna(s) a ser(em) mantida(s).

Selecione uma ou várias colunas de cada divisão no conjunto de dados e os recursos associados às colunas.

A transformação é aplicada a todas as divisões do dicionário do conjunto de dados.

Exemplo:

>>> 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 )

Parâmetros

  • column (str) — O nome da coluna para converter.
  • include_nulls (bool, padrão é False) — Se deve incluir valores nulos nos rótulos de classe. Se True, os valores nulos serão codificados como o rótulo de classe "None" .

    Adicionado na 1.14.2

Converte a coluna indicada em ClassLabel e atualiza as tabelas.

Exemplo:

>>> 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 )

Parâmetros

  • repo_id (str) — O ID do repositório para o qual será feito o push, no seguinte formato: <user>/<dataset_name> ou <org>/<dataset_name>. Também aceita <dataset_name>, que usará o namespace do usuário conectado por padrão.

    Também pode ser um local dentro de um bucket, por exemplo, buckets/<user_or_org>/<bucket_name>/...

  • config_name (str) — Nome da configuração de um conjunto de dados. O padrão é “default”.
  • set_default (bool, opcional) — Se deve definir esta configuração como a padrão. Caso contrário, a configuração padrão é a chamada “default”.
  • data_dir (str, opcional) — Nome do diretório que conterá os arquivos de dados enviados. O valor padrão é o config_name se for diferente de “default”, caso contrário “data”.

    Adicionado na 2.17.0

  • commit_message (str, opcional) — Mensagem a ser commitada durante o push. O padrão será "Upload dataset".
  • commit_description (str, opcional) — Descrição do commit que será criado. Além disso, descrição do PR, se um PR for criado (create_pr é True).

    Adicionado na 2.16.0

  • private (bool, opcional) — Se deve tornar o repositório privado. Se None (padrão), o repositório será público, a menos que o padrão da organização seja privado. Este valor é ignorado se o repositório já existir.
  • token (str, opcional) — Um token de autenticação opcional para o Hugging Face Hub. Se nenhum token for passado, será usado por padrão o token salvo localmente ao fazer login com hf auth login. Será gerado um erro se nenhum token for passado e o usuário não estiver conectado.
  • revision (str, opcional) — Branch para onde os arquivos enviados serão enviados. O padrão é a branch "main" .

    Adicionado na 2.15.0

  • create_pr (bool, opcional, padrão é False) — Se deve criar um PR com os arquivos enviados ou fazer o commit diretamente.

    Adicionado na 2.15.0

  • max_shard_size (int ou str, opcional, padrão "500MB") — O tamanho máximo dos shards do dataset a serem enviados para o hub. Se expresso como string, deve ser composto por dígitos seguidos de uma unidade (como "500MB" ou "1GB").
  • num_shards (Dict[str, int], opcional) — Número de shards a serem gravados. Por padrão, o número de shards depende de max_shard_size. Use um dicionário para definir um num_shards diferente para cada split.

    Adicionado na 2.8.0

  • embed_external_files (bool, padrão é True) — Se incorporar os bytes dos arquivos nos shards. Especificamente, isso fará o seguinte antes do push para os campos do tipo:
    • Audio e Image removem as informações de caminho local e incorporam o conteúdo dos arquivos nos arquivos Parquet.
  • num_proc (int, opcional, padrão é None) — Número de processos ao preparar e enviar o dataset. Isso é útil se o dataset for composto por muitas amostras ou arquivos de mídia para incorporar. Usa o contexto “spawn” para funcionar com hf_xet, o cliente rust para uploads rápidos para o HF. O multiprocessing é desabilitado por padrão.

    Adicionado na 4.0.0

Envia o DatasetDict para o hub como um dataset Parquet. O DatasetDict é enviado usando requisições HTTP e não requer a instalação de git ou git-lfs.

Cada divisão do conjunto de dados será enviada de forma independente. O conjunto de dados enviado manterá os nomes originais das divisões.

Os arquivos Parquet resultantes são autossuficientes por padrão: se o seu conjunto de dados contiver dados de Image ou Audio, os arquivos Parquet armazenarão os bytes das suas imagens ou arquivos de áudio. Você pode desativar isso definindo embed_external_files como False.

Exemplo:

>>> 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})

Se você deseja adicionar uma nova configuração (ou subconjunto) a um conjunto de dados (por exemplo, se o conjunto de dados tiver várias tarefas/versões/idiomas):

>>> 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 )

Parâmetros

  • dataset_dict_path (path-like) — Caminho (por exemplo, dataset/train) ou URI remota (por exemplo, s3://my-bucket/dataset/train) do diretório do dataset dict onde o dataset dict será salvo.
  • max_shard_size (int ou str, opcional, padrão "500MB") — O tamanho máximo dos shards do dataset a serem salvos no sistema de arquivos. Se expresso como string, deve ser composto por dígitos seguidos de uma unidade (como "50MB").
  • num_shards (Dict[str, int], opcional) — Número de shards a serem gravados. Por padrão, o número de shards depende de max_shard_size e num_proc. Você precisa fornecer o número de shards para cada dataset no dicionário de datasets. Use um dicionário para definir um num_shards diferente para cada split.

    Adicionado na 2.8.0

  • num_proc (int, opcional, padrão None) — Número de processos ao baixar e gerar o dataset localmente. O multiprocessing é desabilitado por padrão.

    Adicionado na 2.8.0

  • storage_options (dict, opcional) — Pares de chave/valor a serem passados para o backend do sistema de arquivos, se houver.

    Adicionado na 2.8.0

Salva um dicionário de dataset em um sistema de arquivos usando fsspec.spec.AbstractFileSystem.

Para dados de Image, Audio e Video:

Todos os dados de Image(), Audio() e Video() são armazenados nos arquivos arrow. Se você deseja armazenar caminhos ou urls, use o tipo Value(“string”).

Exemplo:

>>> 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 )

Parâmetros

  • dataset_dict_path (path-like) — Caminho (por exemplo, "dataset/train") ou URI remoto (por exemplo, "s3//my-bucket/dataset/train") do diretório do dataset dict de onde o dataset dict será carregado.
  • keep_in_memory (bool, padrão None) — Se deve copiar o dataset para a memória. Se None, o dataset não será copiado para a memória, a menos que seja explicitamente habilitado ao definir datasets.config.IN_MEMORY_MAX_SIZE para um valor diferente de zero. Veja mais detalhes na seção melhorar o desempenho.
  • storage_options (dict, opcional) — Pares de chave/valor a serem passados para o backend do sistema de arquivos, se houver.

    Adicionado na 2.8.0

Carregue um conjunto de dados que foi salvo anteriormente usando save_to_disk de um sistema de arquivos usando fsspec.spec.AbstractFileSystem.

Exemplo:

>>> 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 )

Parâmetros

  • path_or_paths (dict de path-like) — Caminho(s) do(s) arquivo(s) CSV.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • cache_dir (str, opcional, padrão "~/.cache/huggingface/datasets") — Diretório para armazenar os dados em cache.
  • keep_in_memory (bool, padrão False) — Se deve copiar os dados para a memória.
  • **kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave a serem passados para pandas.read_csv.

Crie um DatasetDict a partir de arquivo(s) CSV.

Exemplo:

>>> 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 )

Parâmetros

  • path_or_paths (path-like ou lista de path-like) — Caminho(s) do(s) arquivo(s) JSON Lines.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • cache_dir (str, opcional, padrão "~/.cache/huggingface/datasets") — Diretório para armazenar os dados em cache.
  • keep_in_memory (bool, padrão False) — Se deve copiar os dados para a memória.
  • **kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave a serem passados para JsonConfig.

Crie um DatasetDict a partir de arquivo(s) JSON Lines.

Exemplo:

>>> 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 )

Parâmetros

  • path_or_paths (dict de path-like) — Caminho(s) do(s) arquivo(s) CSV.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • cache_dir (str, opcional, padrão "~/.cache/huggingface/datasets") — Diretório para armazenar os dados em cache.
  • keep_in_memory (bool, padrão False) — Se deve copiar os dados para a memória.
  • columns (list[str], opcional) — Se não for None, apenas essas colunas serão lidas do arquivo. O nome de uma coluna pode ser um prefixo de um campo aninhado, por exemplo, ‘a’ selecionará ‘a.b’, ‘a.c’ e ‘a.d.e’.
  • **kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave a serem passados para ParquetConfig.

Crie um DatasetDict a partir de arquivo(s) Parquet.

Exemplo:

>>> 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 )

Parâmetros

  • path_or_paths (dict de path-like) — Caminho(s) do(s) arquivo(s) de texto.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • cache_dir (str, opcional, padrão "~/.cache/huggingface/datasets") — Diretório para armazenar os dados em cache.
  • keep_in_memory (bool, padrão False) — Se deve copiar os dados para a memória.
  • **kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave a serem passados para TextConfig.

Crie um DatasetDict a partir de arquivo(s) de texto.

Exemplo:

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

IterableDataset

A classe base IterableDataset implementa um Dataset iterável baseado em geradores python.

classe 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 )

Um Dataset baseado em um iterável.

from_file

< >

( filename: str )

Parâmetros

  • filename (str) — Nome do arquivo do conjunto de dados.

Instanciar um IterableDataset a partir de uma tabela Arrow no arquivo filename.

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 )

Parâmetros

  • df (pandas.DataFrame) — Dataframe que contém o conjunto de dados.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • info (DatasetInfo, opcional) — Informações do dataset, como descrição, citação, etc.
  • split (NamedSplit, opcional) — Nome da divisão do conjunto de dados.
  • preserve_index (bool, opcional) — Se deve armazenar o índice como uma coluna adicional no Dataset resultante. O valor padrão de None armazena o índice como uma coluna, exceto para RangeIndex, que é armazenado apenas como metadados. Use preserve_index=True para forçar que ele seja armazenado como uma coluna.
  • num_shards (int, padrão 1) — Número de shards a definir ao instanciar o dataset iterável. Isso é especialmente útil para datasets grandes, permitindo embaralhar corretamente, e também para habilitar o carregamento paralelo rápido usando um PyTorch DataLoader ou em configurações distribuídas, por exemplo.

Converta um pandas.DataFrame para uma pyarrow.Table para criar um IterableDataset.

Os tipos de coluna na Tabela Arrow resultante são inferidos a partir dos dtypes das pandas.Series no DataFrame. No caso de Series não-object, o dtype do NumPy é traduzido para seu equivalente no Arrow. No caso de object, precisamos inferir o tipo de dados examinando os objetos Python presentes nesta Series.

Observe que Series do dtype object não carregam informações suficientes para sempre levar a um tipo Arrow significativo. No caso em que não podemos inferir um tipo, por exemplo, porque o DataFrame tem comprimento 0 ou a Series contém apenas objetos None/nan, o tipo é definido como null. Esse comportamento pode ser evitado construindo features explícitas e passando-as para esta função.

Importante: um dataset criado com from_pandas() fica na memória. Isso pode mudar no futuro, mas, por enquanto, se você quiser reduzir o uso de memória, deve gravá-lo em disco e recarregá-lo usando, por exemplo, to_parquet / from_parquet.

Exemplo:

>>> 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 )

Parâmetros

  • mapping (Mapping) — Mapeamento de strings para Arrays ou listas Python.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • info (DatasetInfo, opcional) — Informações do dataset, como descrição, citação, etc.
  • split (NamedSplit, opcional) — Nome da divisão do conjunto de dados.
  • num_shards (int, padrão 1) — Número de shards a definir ao instanciar o dataset iterável. Isso é especialmente útil para datasets grandes, permitindo embaralhar corretamente, e também para habilitar o carregamento paralelo rápido usando um PyTorch DataLoader ou em configurações distribuídas, por exemplo.

Converta dict para uma pyarrow.Table para criar um IterableDataset.

Importante: um dataset criado com from_dict() fica na memória. Isso pode mudar no futuro, mas, por enquanto, se você quiser reduzir o uso de memória, deve gravá-lo novamente em disco e recarregá-lo usando, por exemplo, 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 )

Parâmetros

  • mapping (List[dict]) — Uma lista de mapeamentos de strings para valores de linha.
  • features (Features, opcional) — Recursos do dataset.
  • info (DatasetInfo, opcional) — Informações do dataset, como descrição, citação, etc.
  • split (NamedSplit, opcional) — Nome da divisão do conjunto de dados.
  • num_shards (int, padrão 1) — Número de shards a definir ao instanciar o dataset iterável. Isso é especialmente útil para datasets grandes, permitindo embaralhar corretamente, e também para habilitar o carregamento paralelo rápido usando um PyTorch DataLoader ou em configurações distribuídas, por exemplo.

Converta uma lista de dicts para uma pyarrow.Table para criar um IterableDataset`.

Observe que as chaves da primeira entrada serão usadas para determinar as colunas do conjunto de dados, independentemente do que for passado para features.

Importante: um dataset criado com from_list() fica na memória. Isso pode mudar no futuro, mas, por enquanto, se você quiser reduzir o uso de memória, deve gravá-lo novamente em disco e recarregá-lo usando, por exemplo, from_parquet / to_parquet.

from_generator

< >

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

Parâmetros

  • generator (Callable) — Uma função geradora que yields exemplos.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • gen_kwargs(dict, opcional) — Argumentos de palavra-chave a serem passados para o chamável generator. Você pode definir um conjunto de dados iterável fragmentado passando a lista de fragmentos em gen_kwargs. Isso pode ser usado para melhorar o embaralhamento e ao iterar sobre o conjunto de dados com múltiplos workers.
  • split (NamedSplit, padrão é Split.TRAIN) — Nome da divisão a ser atribuído ao dataset.

    Adicionado na 2.21.0

Crie um Dataset Iterável a partir de um gerador.

Exemplo:

>>> 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

Parâmetros

  • column_names (Union[str, List[str]]) — Nome da(s) coluna(s) a ser(em) removida(s).

Retorna

IterableDataset

Uma cópia do objeto de dataset sem as colunas a serem removidas.

Remove uma ou várias colunas do dataset e os recursos associados a elas. A remoção é feita em tempo real nos exemplos ao iterar sobre o dataset.

Exemplo:

>>> 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

Parâmetros

  • column_names (Union[str, List[str]]) — Nome da(s) coluna(s) a ser(em) selecionada(s).

Retorna

IterableDataset

Uma cópia do objeto de conjunto de dados com as colunas selecionadas.

Selecione uma ou várias colunas no conjunto de dados e os recursos associados a elas. A seleção é feita em tempo real nos exemplos ao iterar sobre o conjunto de dados.

Exemplo:

>>> 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

Parâmetros

  • column (str) — Nome da coluna.
  • feature (Feature) — Recurso alvo.

Retorna

IterableDataset

Convert a coluna para recurso para decodificação.

Exemplo:

>>> 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

Parâmetros

  • features (Features) — Novos recursos para os quais o dataset deve ser convertido. O nome dos campos nos recursos deve corresponder aos nomes atuais das colunas. O tipo dos dados também deve ser convertível de um tipo para o outro. Para conversões não triviais, por exemplo, string <-> ClassLabel, você deve usar map() para atualizar o Dataset.

Retorna

IterableDataset

Uma cópia do conjunto de dados com recursos convertidos.

Convert o conjunto de dados para um novo conjunto de recursos.

Exemplo:

>>> 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

Parâmetros

  • enable (bool, padrão True) — Ativa ou desativa a decodificação de recursos.
  • num_threads (int, opcional, padrão None) — Ativa a multithreading para a decodificação de features. Observe que load_dataset() já usa algumas threads por padrão ao transmitir um dataset no HF com features decodificáveis. Por padrão, num_threads é definido como 32 se pelo menos uma feature exigir decodificação, e 0 caso contrário.

Retorna

IterableDataset

Uma cópia do conjunto de dados com recursos convertidos.

Ative ou desative a decodificação dos recursos do conjunto de dados para áudio, imagem e vídeo.

Quando habilitado (padrão), os tipos de mídia são decodificados:

  • audio -> dict de “array” e “sampling_rate” e “path”
  • imagem -> PIL.Image
  • video -> torchcodec.decoders.VideoDecoder

O multithreading pode ser habilitado com num_threads: cada arquivo de mídia é então lido e decodificado em uma thread de worker, de modo que as viagens de rede de exemplos consecutivos se sobrepõem. Isso é especialmente útil para acelerar o streaming de dados remotos, e load_dataset() já o habilita por padrão ao fazer streaming de um dataset remoto que possui recursos decodificáveis (veja HF_DATASETS_DECODE_NUM_THREADS). Datasets lidos do disco local são transmitidos com num_threads=0, pois o multithreading pode ser mais lento do que a decodificação na thread principal para dados locais em discos rápidos. Como os exemplos são decodificados com antecedência, cada thread em execução pode manter um exemplo na memória: reduza num_threads para usar menos memória.

Desabilitar a decodificação é útil se você deseja iterar sobre os caminhos ou bytes dos arquivos de mídia sem realmente decodificar seu conteúdo. Para desabilitar a decodificação, você pode usar .decode(False), que é equivalente a chamar .cast() ou .cast_column() com todos os tipos Audio, Image e Video definidos como decode=False.

Exemplos:

Desativar a decodificação:

>>> 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.'
}

Acelere o streaming com multithreading:

>>> 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 )

Parâmetros

  • batch_size (int) — tamanho de cada lote a ser gerado.
  • drop_last_batch (bool, padrão False) — Se um último lote menor que o batch_size deve ser descartado

Itere pelos lotes de tamanho 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 )

Parâmetros

  • function (Callable, opcional, padrão é None) — Função aplicada em tempo real nos exemplos ao iterar pelo dataset. Ela deve ter uma das seguintes assinaturas:
    • function(example: Dict[str, Any]) -> Dict[str, Any] se batched=False e with_indices=False
    • function(example: Dict[str, Any], idx: int) -> Dict[str, Any] se batched=False e with_indices=True
    • function(batch: Dict[str, List]) -> Dict[str, List] se batched=True e with_indices=False
    • function(batch: Dict[str, List], indices: List[int]) -> Dict[str, List] se batched=True e with_indices=True

    Para uso avançado, a função também pode retornar uma pyarrow.Table. Se a função for assíncrona, o map executará sua função em paralelo. Além disso, se sua função não retornar nada (None), o map executará sua função e retornará o dataset inalterado. Se nenhuma função for fornecida, usa-se a função identidade por padrão: lambda x: x.

  • with_indices (bool, padrão False) — Fornece índices de exemplo para function. Observe que, nesse caso, a assinatura de function deve ser def function(example, idx[, rank]): ....
  • input_columns (Optional[Union[str, List[str]]], padrão None) — As colunas a serem passadas para function como argumentos posicionais. Se None, um dicionário mapeando para todas as colunas formatadas é passado como um único argumento.
  • batched (bool, padrão False) — Fornece um lote de exemplos para function.
  • batch_size (int, opcional, padrão 1000) — Número de exemplos por lote fornecidos para function se batched=True. Se batch_size <= 0 ou batch_size == None, forneça o conjunto de dados completo como um único lote para function.
  • drop_last_batch (bool, padrão False) — Se um último lote menor que o batch_size deve ser descartado em vez de ser processado pela função.
  • remove_columns ([List[str]], opcional, padrão None) — Remove uma seleção de colunas durante o mapeamento. As colunas serão removidas antes de atualizar os exemplos com a saída de function, ou seja, se function estiver adicionando colunas com nomes em remove_columns, essas colunas serão mantidas.
  • features ([Features], opcional, padrão None) — Tipos de recursos do dataset resultante.
  • fn_kwargs (Dict, opcional, padrão None) — Argumentos de palavra-chave a serem passados para function.

Aplica uma função a todos os exemplos no dataset iterável (individualmente ou em lotes) e os atualiza. Se sua função retornar uma coluna que já existe, ela a sobrescreve. A função é aplicada em tempo real nos exemplos ao iterar sobre o dataset.

Você pode especificar se a função deve ser processada em lote ou não com o parâmetro batched:

  • Se False, a função recebe 1 exemplo e deve retornar 1 exemplo. Um exemplo é um dicionário, por exemplo, {"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 !”]}.
  • If batched is True and batch_size is n > 1, then the function takes a batch of n examples as input and can return a batch with n examples, or with an arbitrary number of examples. Note that the last batch may have less than n examples. A batch is a dictionary, e.g. a batch of n examples is {"text": ["Hello there !"] * n}.

Se a função for assíncrona, map executará sua função em paralelo, com até mil chamadas simultâneas. É recomendável usar um asyncio.Semaphore na sua função se você quiser definir um número máximo de operações que podem ser executadas ao mesmo tempo.

Exemplo:

>>> 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

Parâmetros

  • original_column_name (str) — Nome da coluna a ser renomeada.
  • new_column_name (str) — Novo nome para a coluna.

Retorna

IterableDataset

Uma cópia do conjunto de dados com uma coluna renomeada.

Renomeie uma coluna no dataset e mova os recursos associados à coluna original para o novo nome da coluna.

Exemplo:

>>> 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 .'}

filtro

< >

( 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 )

Parâmetros

  • function (Callable) — Função chamável com uma das seguintes assinaturas:
    • function(example: Dict[str, Any]) -> bool se with_indices=False, batched=False
    • function(example: Dict[str, Any], indices: int) -> bool se with_indices=True, batched=False
    • function(example: Dict[str, List]) -> List[bool] se with_indices=False, batched=True
    • function(example: Dict[str, List], indices: List[int]) -> List[bool] se with_indices=True, batched=True

    Se a função for assíncrona, filter executará sua função em paralelo. Se nenhuma função for fornecida, o padrão é uma função que sempre retorna True: lambda x: True.

  • with_indices (bool, padrão False) — Fornece índices de exemplo para function. Observe que, nesse caso, a assinatura de function deve ser def function(example, idx): ....
  • input_columns (str ou List[str], opcional) — As colunas a serem passadas para function como argumentos posicionais. Se None, um dict mapeando para todas as colunas formatadas é passado como um único argumento.
  • batched (bool, padrão False) — Fornece um lote de exemplos para function.
  • batch_size (int, opcional, padrão 1000) — Número de exemplos por lote fornecidos à function se batched=True.
  • fn_kwargs (Dict, opcional, padrão None) — Argumentos de palavra-chave a serem passados para function.

Aplicar uma função de filtro a todos os elementos para que o conjunto de dados inclua apenas exemplos de acordo com a função de filtro. O filtro é aplicado em tempo real durante a iteração sobre o conjunto de dados.

Se a função for assíncrona, filter executará sua função em paralelo, com até mil chamadas simultâneas (configurável). Recomenda-se usar um asyncio.Semaphore na sua função se você quiser definir um número máximo de operações que podem ser executadas ao mesmo tempo.

Exemplo:

>>> 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 )

Parâmetros

  • seed (int, opcional, padrão None) — Semente aleatória que será usada para embaralhar o conjunto de dados. É usada para amostrar do buffer de embaralhamento e também para embaralhar os shards de dados.
  • generator (numpy.random.Generator, opcional) — Generator aleatório do Numpy a ser usado para calcular a permutação das linhas do dataset. Se generator=None (padrão), usa np.random.default_rng (o BitGenerator padrão (PCG64) do NumPy).
  • buffer_size (int, padrão 1000) — Tamanho do buffer.
  • max_buffer_input_shards (int, padrão 10) — Número máximo de shards a serem usados para alimentar o buffer de uma vez.

Embaralha aleatoriamente os elementos deste conjunto de dados.

Este conjunto de dados preenche um buffer com buffer_size elementos e, em seguida, amostra aleatoriamente elementos deste buffer, substituindo os elementos selecionados por novos elementos. Para uma embaralhamento perfeito, é necessário um tamanho de buffer maior ou igual ao tamanho total do conjunto de dados.

Por exemplo, se o seu conjunto de dados contém 10.000 elementos, mas buffer_size está definido como 1000, então shuffle inicialmente selecionará um elemento aleatório apenas dos primeiros 1000 elementos no buffer. Assim que um elemento é selecionado, seu espaço no buffer é substituído pelo próximo (ou seja, o 1.001º) elemento, mantendo o buffer de 1000 elementos.

Se o conjunto de dados é composto por vários shards, ele preenche o buffer usando até max_buffer_input_shards shards por vez e também embaralha a ordem dos shards. Isso melhora significativamente a qualidade do embaralhamento. Os shards de entrada são intercalados dentro de cada nó e worker, preservando o número de shards disponíveis para carregamento paralelo de dados.

No entanto, se a ordem tiver sido fixada usando skip() ou take(), a ordem dos shards permanece inalterada e apenas um shard por vez é usado para preencher o buffer.

Exemplo:

>>> 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}]

lote

< >

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

Parâmetros

  • batch_size (int, opcional) — O número de amostras em cada lote.
  • by_column (Union[str, list[str], opcional) — A coluna usada para agrupar os exemplos em lotes. Exemplos sucessivos com o mesmo valor para essa coluna são agrupados no mesmo lote. Também pode ser uma lista de colunas, se você quiser agrupar por múltiplas colunas. Ao agrupar por coluna, o batch_size é usado apenas para controlar o tamanho dos lotes a serem agrupados ou fatiados durante a acumulação.

    Adicionado na 4.9.0

  • drop_last_batch (bool, padrão False) — Se deve descartar o último lote incompleto.

Agrupe as amostras do conjunto de dados em lotes.

Exemplo:

Tamanho de lote fixo:

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

Lotes de amostras sucessivas com valor idêntico para “my_column”:

>>> ds = load_dataset("some_dataset", streaming=True, split="train")
>>> batched_ds = ds.batch(by_column="my_column")

pular

< >

( n: int )

Parâmetros

  • n (int) — Número de elementos a serem ignorados.

Crie um novo IterableDataset que ignora os primeiros n elementos.

Exemplo:

>>> 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 )

Parâmetros

  • n (int) — Número de elementos a serem obtidos.

Crie um novo IterableDataset com apenas os primeiros n elementos.

Exemplo:

>>> 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 )

Parâmetros

  • num_shards (int) — Quantos shards dividir o dataset em.
  • index (int) — Qual shard selecionar e retornar.
  • contiguous — (bool, padrão True): Se deve selecionar blocos contíguos de índices para os shards.

Retorna o shard de índice index do conjunto de dados dividido em num_shards partes.

Isso faz o particionamento de forma determinística. dataset.shard(n, i) divide o conjunto de dados em blocos contíguos, para que ele possa ser facilmente concatenado novamente após o processamento. Se dataset.num_shards % n == l, então os primeiros l conjuntos de dados têm cada um (dataset.num_shards // n) + 1 shards, e os conjuntos de dados restantes têm (dataset.num_shards // n) shards. datasets.concatenate_datasets([dset.shard(n, i) for i in range(n)]) retorna um conjunto de dados com a mesma ordem que o original. Em particular, dataset.shard(dataset.num_shards, i) retorna um conjunto de dados com 1 shard.

Nota: n deve ser menor ou igual ao número de shards no dataset dataset.num_shards.

Por outro lado, dataset.shard(n, i, contiguous=False) contém todos os shards do dataset cujo índice mod n = i.

Certifique-se de fazer o sharding antes de usar qualquer operador de randomização (como shuffle). É melhor usar o operador de sharding no início do pipeline do dataset.

Exemplo:

>>> 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

< >

( )

Reorganize o conjunto de dados, se possível, ou seja, divida os shards atuais em mais shards. Isso aumenta o número de shards e o conjunto de dados resultante terá num_shards >= previous_num_shards. A igualdade pode ocorrer se nenhum shard puder ser dividido ainda mais.

O mecanismo de resharding depende do formato do arquivo do conjunto de dados:

  • Parquet: dividir em shards por grupo de linhas em vez de por arquivo
  • Vortex: shard por intervalo de chunks consecutivos (cada um com cerca de 64MB de dados do arquivo) em vez de por arquivo
  • Outros: ainda não implementado (contribuições são bem-vindas!)

Certifique-se de redividir/dividir antes de usar qualquer operador de randomização (como shuffle). É melhor usar o operador de divisão no início do pipeline do conjunto de dados.

Exemplo:

>>> 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] )

Parâmetros

  • num_times (int) ou (None) — Número de vezes para repetir o conjunto de dados. Se None, o conjunto de dados será repetido indefinidamente.

Crie um novo IterableDataset que repete o dataset subjacente num_times vezes.

Uma entrada vazia encerra o processo mesmo quando num_times é None.

Obs. O efeito de chamar shuffle após repeat depende significativamente do tamanho do buffer. Com buffer_size 1, dados duplicados nunca são vistos na mesma iteração, mesmo após a embaralhamento: ds.repeat(n).shuffle(seed=42, buffer_size=1) é equivalente a ds.shuffle(seed=42, buffer_size=1).repeat(n), e apenas embaralha a ordem dos shards dentro de cada iteração. Com tamanho de buffer >= (número de amostras no conjunto de dados * num_times), obtemos embaralhamento completo dos dados repetidos, ou seja, podemos observar duplicatas na mesma iteração.

Exemplo:

>>> 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

Parâmetros

  • path_or_buf (PathLike ou FileOrBuffer) — Um caminho para um arquivo (por exemplo, file.csv), um URI remoto (por exemplo, hf://datasets/username/my_dataset_name/data.csv), ou um BinaryIO, onde o conjunto de dados será salvo no formato especificado.
  • batch_size (int, opcional) — Tamanho do lote a ser carregado na memória e gravado de uma vez. Padrão: datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • storage_options (dict, opcional) — Pares de chave/valor a serem passados para o backend do sistema de arquivos, se houver.
  • **to_csv_kwargs (argumentos de palavra-chave adicionais) — Parâmetros para passar ao pandas.DataFrame.to_csv do pandas. O parâmetro index tem o valor padrão False se não for especificado. Se você deseja gravar o índice, passe index=True e também defina um nome para a coluna de índice passando index_label.

Retorna

int

O número de caracteres ou bytes gravados.

Exporta o conjunto de dados para csv.

Isso itera sobre o conjunto de dados e o carrega completamente na memória antes de gravá-lo.

Exemplo:

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

to_pandas

< >

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

Parâmetros

  • batch_size (int, opcional) — O tamanho (número de linhas) dos lotes se batched for True. Padrão: datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • batched (bool) — Defina como True para retornar um gerador que fornece o dataset em lotes de batch_size linhas. O padrão é False (retorna todo o dataset de uma vez).

Retorna o conjunto de dados como um pandas.DataFrame. Também pode retornar um gerador para conjuntos de dados grandes.

Exemplo:

>>> ds.to_pandas()

to_dict

< >

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

Parâmetros

  • batch_size (int, opcional) — O tamanho (número de linhas) dos lotes se batched for True. Padrão: datasets.config.DEFAULT_MAX_BATCH_SIZE.

Retorna o conjunto de dados como um dicionário Python. Também pode retornar um gerador para conjuntos de dados grandes.

Exemplo:

>>> 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

Parâmetros

  • path_or_buf (PathLike ou FileOrBuffer) — Um caminho para um arquivo (por exemplo, file.json), um URI remoto (por exemplo, hf://datasets/username/my_dataset_name/data.json), ou um BinaryIO, onde o conjunto de dados será salvo no formato especificado.
  • batch_size (int, opcional) — Tamanho do lote a ser carregado na memória e gravado de uma vez. Padrão: datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • storage_options (dict, opcional) — Pares de chave/valor a serem passados para o backend do sistema de arquivos, se houver.
  • **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`.

Retorna

int

O número de caracteres ou bytes gravados.

Exporte o conjunto de dados para JSON Lines ou JSON.

Isso itera sobre o conjunto de dados e o carrega completamente na memória antes de gravá-lo.

O formato de saída padrão é JSON Lines. Para exportar para JSON, passe o argumento lines=False e o orient desejado.

Exemplo:

>>> 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

Parâmetros

  • path_or_buf (PathLike ou FileOrBuffer) — Um caminho para um arquivo (por exemplo, file.parquet), um URI remoto (por exemplo, hf://datasets/username/my_dataset_name/data.parquet), ou um BinaryIO, onde o conjunto de dados será salvo no formato especificado.
  • batch_size (int, opcional) — Tamanho do lote a ser carregado na memória e gravado de uma vez. Padrão: datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • storage_options (dict, opcional) — Pares de chave/valor a serem passados para o backend do sistema de arquivos, se houver.

    Adicionado na 2.19.0

  • **parquet_writer_kwargs (argumentos de palavra-chave adicionais) — Parâmetros para passar ao pyarrow.parquet.ParquetWriter do PyArrow.

Retorna

int

O número de caracteres ou bytes gravados.

Exporta o conjunto de dados para parquet

Exemplo:

>>> 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

Parâmetros

  • name (str) — Nome da tabela SQL.
  • con (str ou sqlite3.Connection ou sqlalchemy.engine.Connection ou sqlalchemy.engine.Connection) — Uma string URI ou um objeto de conexão SQLite3/SQLAlchemy usado para gravar em um banco de dados.
  • batch_size (int, opcional) — Tamanho do lote a ser carregado na memória e gravado de uma vez. Padrão: datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • **sql_writer_kwargs (argumentos de palavra-chave adicionais) — Parâmetros para passar ao pandas.DataFrame.to_sql do pandas. O parâmetro index tem o valor padrão False se não for especificado. Se você deseja gravar o índice, passe index=True e também defina um nome para a coluna de índice passando index_label.

Retorna

int

O número de registros gravados.

Exporta o conjunto de dados para um banco de dados SQL.

Exemplo:

>>> # 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 )

Parâmetros

  • repo_id (str) — O ID do repositório para o qual será feito o push, no seguinte formato: <user>/<dataset_name> ou <org>/<dataset_name>. Também aceita <dataset_name>, que usará o namespace do usuário conectado por padrão.

    Também pode ser um local dentro de um bucket, por exemplo, buckets/<user_or_org>/<bucket_name>/...

  • config_name (str, padrão “default”) — O nome da configuração (ou subconjunto) de um conjunto de dados. O padrão é “default”.
  • set_default (bool, opcional) — Se deve definir esta configuração como a padrão. Caso contrário, a configuração padrão é a chamada “default”.
  • split (str, opcional) — O nome da divisão que será atribuído a esse conjunto de dados. O padrão é self.split.
  • data_dir (str, opcional) — Nome do diretório que conterá os arquivos de dados enviados. O padrão é config_name se for diferente de “default”, caso contrário, “data”.
  • commit_message (str, opcional) — Mensagem a ser commitada durante o push. O padrão será "Upload dataset".
  • commit_description (str, opcional) — Descrição do commit que será criado. Além disso, descrição do PR, caso um PR seja criado (create_pr é True).
  • private (bool, opcional) — Se deve tornar o repositório privado. Se None (padrão), o repositório será público, a menos que o padrão da organização seja privado. Este valor é ignorado se o repositório já existir.
  • token (str, opcional) — Um token de autenticação opcional para o Hugging Face Hub. Se nenhum token for passado, será usado por padrão o token salvo localmente ao fazer login com hf auth login. Será gerado um erro se nenhum token for passado e o usuário não estiver conectado.
  • revision (str, opcional) — Branch para a qual os arquivos enviados serão enviados. O padrão é a branch "main".
  • create_pr (bool, opcional, padrão False) — Se deve criar um PR com os arquivos enviados ou fazer o commit diretamente.
  • max_shard_size (int ou str, opcional) — Tamanho máximo opcional dos shards do dataset a serem enviados para o hub. Se expresso como string, deve ser composto por dígitos seguidos por uma unidade (como "5MB"). Se não for fornecido, o número de shards padrão será o .num_shards deste dataset.
  • num_shards (int, opcional) — Número de shards a serem gravados. Se max_shard_size for fornecido e num_shards não for, o número de shards é estimado a partir de max_shard_size. Pode ser maior que .num_shards deste dataset: nesse caso, cada shard de entrada é distribuído em vários shards de saída, gravando seus exemplos neles de forma round-robin.
  • embed_external_files (bool, padrão é True) — Se incorporar os bytes dos arquivos nos shards. Especificamente, isso fará o seguinte antes do push para os campos do tipo:
    • Áudio e Imagem: remova as informações de caminho local e incorpore o conteúdo dos arquivos nos arquivos Parquet.
  • num_proc (int, opcional, padrão None) — Número de processos ao preparar e enviar o dataset. Isso é útil se o dataset for composto por muitas amostras e transformações. Usa o contexto “spawn” para funcionar com hf_xet, o cliente rust para uploads rápidos para o HF. O multiprocessing é desabilitado por padrão.

Envia o dataset para o hub como um dataset Parquet. O dataset é enviado usando requisições HTTP e não é necessário ter nem git nem git-lfs instalados.

Os arquivos Parquet resultantes são autossuficientes por padrão. Se o seu conjunto de dados contiver dados de Image, Audio ou Video, os arquivos Parquet armazenarão os bytes das suas imagens ou arquivos de áudio. Você pode desativar isso definindo embed_external_files como False.

Exemplo:

>>> 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)

Se o seu conjunto de dados tiver várias divisões (por exemplo, treino/validação/teste):

>>> 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"]

Se você deseja adicionar uma nova configuração (ou subconjunto) a um conjunto de dados (por exemplo, se o conjunto de dados tiver várias tarefas/versões/idiomas):

>>> 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 )

Carregue o state_dict do conjunto de dados. A iteração será retomada a partir do próximo exemplo do momento em que o estado foi salvo.

Retomar retorna exatamente de onde o checkpoint foi salvo, exceto em dois casos:

  1. exemplos dos buffers de embaralhamento são perdidos ao retomar e os buffers são reabastecidos com novos dados
  2. combinações de .with_format(arrow) e .map() em lote podem pular um lote.

Exemplo:

>>> 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)

que retorna:

{'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

Retorna

dict

Obtenha o state_dict atual do dataset. Ele corresponde ao estado no exemplo mais recente que ele gerou.

Retomar retorna exatamente de onde o checkpoint foi salvo, exceto em dois casos:

  1. exemplos dos buffers de embaralhamento são perdidos ao retomar e os buffers são reabastecidos com novos dados
  2. combinações de .with_format(arrow) e .map() em lote podem pular um lote.

Exemplo:

>>> 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)

que retorna:

{'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

info

< >

( )

Objeto DatasetInfo contendo todos os metadados do conjunto de dados.

split

< >

( )

objeto NamedSplit correspondente a uma divisão nomeada do conjunto de dados.

builder_name

< >

( )

citação

< >

( )

config_name

< >

( )

dataset_size

< >

( )

descrição

< >

( )

download_checksums

< >

( )

download_size

< >

( )

recursos

< >

( )

página inicial

< >

( )

licença

< >

( )

size_in_bytes

< >

( )

supervised_keys

< >

( )

versão

< >

( )

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 )

Parâmetros

  • path_or_paths (path-like ou lista de path-like) — Caminho(s) do(s) arquivo(s) CSV.
  • split (NamedSplit, opcional) — Nome da divisão a ser atribuído ao conjunto de dados.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • keep_in_memory (bool, padrão False) — Se deve copiar os dados para a memória.
  • **kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave a serem passados para pandas.read_csv.

Crie um IterableDataset a partir de arquivo(s) CSV.

Exemplo:

>>> 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 )

Parâmetros

  • path_or_paths (path-like ou lista de path-like) — Caminho(s) do(s) arquivo(s) JSON ou JSON Lines.
  • split (NamedSplit, opcional) — Nome da divisão a ser atribuído ao conjunto de dados.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • keep_in_memory (bool, padrão False) — Se deve copiar os dados para a memória.
  • field (str, opcional) — Nome do campo do arquivo JSON onde o conjunto de dados está contido.
  • **kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave a serem passados para JsonConfig.

Crie um IterableDataset a partir de arquivo(s) JSON ou JSON Lines.

Exemplo:

>>> 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 )

Parâmetros

  • path_or_paths (path-like ou lista de path-like) — Caminho(s) do(s) arquivo(s) Parquet.
  • split (NamedSplit, opcional) — Nome da divisão a ser atribuído ao conjunto de dados.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • keep_in_memory (bool, padrão False) — Se deve copiar os dados para a memória.
  • columns (List[str], opcional) — Se não for None, apenas essas colunas serão lidas do arquivo. O nome de uma coluna pode ser um prefixo de um campo aninhado, por exemplo, ‘a’ selecionará ‘a.b’, ‘a.c’ e ‘a.d.e’.
  • filters (Union[pyarrow.dataset.Expression, list[tuple], list[list[tuple]]], opcional) — Retorna apenas as linhas que correspondem ao filtro. Se possível, o predicado será empurrado para baixo para explorar as informações de particionamento ou os metadados internos encontrados na fonte de dados, por exemplo, estatísticas do Parquet. Caso contrário, filtra os RecordBatches carregados antes de retorná-los.
  • fragment_scan_options (pyarrow.dataset.ParquetFragmentScanOptions, opcional) — Opções específicas de varredura para fragmentos Parquet. Isso é especialmente útil para configurar bufferização e cache.

    Adicionado na 4.2.0

  • on_bad_files (Literal["error", "warn", "skip"], opcional, padrão é “error”) — Especifica o que fazer ao encontrar um arquivo inválido (um arquivo que não pode ser lido). Os valores permitidos são :
    • ‘error’, lança uma Exception quando um arquivo inválido é encontrado.
    • ‘warn’, emite um aviso quando um arquivo inválido é encontrado e ignora esse arquivo.
    • ‘skip’, ignora arquivos inválidos sem gerar exceções ou avisos quando são encontrados.

    Adicionado na 4.2.0

  • **kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave a serem passados para ParquetConfig.

Crie um IterableDataset a partir de arquivo(s) Parquet.

Exemplo:

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

Carregue um subconjunto de colunas:

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

Filtre dados de forma eficiente, possivelmente pulando arquivos inteiros ou grupos de linhas:

>>> 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 )

Parâmetros

  • path_or_paths (path-like ou lista de path-like) — Caminho(s) do(s) arquivo(s) de texto.
  • split (NamedSplit, opcional) — Nome da divisão a ser atribuído ao conjunto de dados.
  • features (Features, opcional) — Recursos do conjunto de dados.
  • keep_in_memory (bool, padrão False) — Se deve copiar os dados para a memória.
  • keep_linebreaks — (bool, padrão False): Se deve manter as quebras de linha.
  • sample_by (Literal["line", "paragraph", "document"], padrão “line”) — Se os dados devem ser carregados por linha, parágrafo ou documento. Por padrão, uma linha no dataset = uma linha.
  • **kwargs (argumentos de palavra-chave adicionais) — Argumentos de palavra-chave a serem passados para TextConfig.

Crie um IterableDataset a partir de arquivo(s) de texto.

Exemplo:

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

classe datasets.IterableColumn

< >

( source: typing.Union[ForwardRef('IterableDataset'), ForwardRef('IterableColumn')]column_name: str )

Um iterável para uma coluna específica de um IterableDataset.

Exemplo:

Itere sobre os textos da coluna “text” de um dataset:

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

Ele também funciona com colunas aninhadas:

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

IterableDatasetDict

Dicionário com os nomes das divisões como chaves (por exemplo, ‘train’, ‘test’) e objetos IterableDataset como valores.

classe 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 )

Parâmetros

  • function (Callable, opcional, padrão é None) — Função aplicada em tempo real nos exemplos ao iterar pelo dataset. Ela deve ter uma das seguintes assinaturas:
    • function(example: Dict[str, Any]) -> Dict[str, Any] se batched=False e with_indices=False
    • function(example: Dict[str, Any], idx: int) -> Dict[str, Any] se batched=False e with_indices=True
    • function(batch: Dict[str, list]) -> Dict[str, list] se batched=True e with_indices=False
    • function(batch: Dict[str, list], indices: list[int]) -> Dict[str, list] se batched=True e with_indices=True

    Para uso avançado, a função também pode retornar uma pyarrow.Table. Se a função for assíncrona, o map executará sua função em paralelo. Além disso, se sua função não retornar nada (None), o map executará sua função e retornará o dataset inalterado. Se nenhuma função for fornecida, usa-se a função identidade por padrão: lambda x: x.

  • with_indices (bool, padrão False) — Fornece índices de exemplo para function. Observe que, nesse caso, a assinatura de function deve ser def function(example, idx[, rank]): ....
  • input_columns ([Union[str, list[str]]], opcional, padrão None) — As colunas a serem passadas para function como argumentos posicionais. Se None, um dicionário mapeando para todas as colunas formatadas é passado como um único argumento.
  • batched (bool, padrão False) — Fornece um lote de exemplos para function.
  • batch_size (int, opcional, padrão 1000) — Número de exemplos por lote fornecidos à function se batched=True.
  • drop_last_batch (bool, padrão False) — Se um último lote menor que o batch_size deve ser descartado em vez de ser processado pela função.
  • remove_columns ([list[str]], opcional, padrão None) — Remove uma seleção de colunas durante o mapeamento. As colunas serão removidas antes de atualizar os exemplos com a saída de function, ou seja, se function estiver adicionando colunas com nomes em remove_columns, essas colunas serão mantidas.
  • fn_kwargs (Dict, opcional, padrão None) — Argumentos de palavra-chave a serem passados para function

Aplica uma função a todos os exemplos no dataset iterável (individualmente ou em lotes) e os atualiza. Se sua função retornar uma coluna que já existe, ela a sobrescreve. A função é aplicada em tempo real nos exemplos ao iterar sobre o dataset. A transformação é aplicada a todos os datasets do dicionário de datasets.

Você pode especificar se a função deve ser processada em lote ou não com o parâmetro batched:

  • Se False, a função recebe 1 exemplo e deve retornar 1 exemplo. Um exemplo é um dicionário, por exemplo, {"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 !"]}.
  • If batched is True and batch_size is n > 1, then the function takes a batch of n examples as input and can return a batch with n examples, or with an arbitrary number of examples. Note that the last batch may have less than n examples. A batch is a dictionary, e.g. a batch of n examples is {"text": ["Hello there !"] * n}.

Se a função for assíncrona, map executará sua função em paralelo, com até mil chamadas simultâneas. Recomenda-se usar um asyncio.Semaphore na sua função se você quiser definir um número máximo de operações que podem ser executadas ao mesmo tempo.

Exemplo:

>>> 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 .'}

filtro

< >

( 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 )

Parâmetros

  • function (Callable) — Função com uma das seguintes assinaturas:
    • function(example: Dict[str, Any]) -> bool se with_indices=False, batched=False
    • function(example: Dict[str, Any], indices: int) -> bool se with_indices=True, batched=False
    • function(example: Dict[str, list]) -> list[bool] se with_indices=False, batched=True
    • function(example: Dict[str, list], indices: list[int]) -> list[bool] se with_indices=True, batched=True

    Se nenhuma função for fornecida, o padrão é uma função que sempre retorna True: lambda x: True.

  • with_indices (bool, padrão False) — Fornece índices de exemplo para function. Observe que, nesse caso, a assinatura de function deve ser def function(example, idx): ....
  • input_columns (str ou list[str], opcional) — As colunas a serem passadas para function como argumentos posicionais. Se None, um dict mapeando para todas as colunas formatadas é passado como um único argumento.
  • batched (bool, padrão False) — Fornece um lote de exemplos para function
  • batch_size (int, opcional, padrão 1000) — Número de exemplos por lote fornecidos à function se batched=True.
  • fn_kwargs (Dict, opcional, padrão None) — Argumentos de palavra-chave a serem passados para function

Aplica uma função de filtro a todos os elementos para que o conjunto de dados inclua apenas exemplos de acordo com a função de filtro. O filtro é aplicado em tempo real ao iterar pelo conjunto de dados. O filtro é aplicado a todos os conjuntos de dados do dicionário de conjuntos de dados.

Exemplo:

>>> 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 )

Parâmetros

  • seed (int, opcional, padrão None) — Semente aleatória que será usada para embaralhar o conjunto de dados. É usada para amostrar do buffer de embaralhamento e também para embaralhar os shards de dados.
  • generator (numpy.random.Generator, opcional) — Generator aleatório do Numpy a ser usado para calcular a permutação das linhas do dataset. Se generator=None (padrão), usa np.random.default_rng (o BitGenerator padrão (PCG64) do NumPy).
  • buffer_size (int, padrão 1000) — Tamanho do buffer.
  • max_buffer_input_shards (int, padrão 10) — Número máximo de shards a serem usados para alimentar o buffer de uma vez.

Embaralha aleatoriamente os elementos deste conjunto de dados. O embaralhamento é aplicado a todos os conjuntos de dados do dicionário de conjuntos de dados.

Este conjunto de dados preenche um buffer com buffer_size elementos e, em seguida, amostra aleatoriamente elementos deste buffer, substituindo os elementos selecionados por novos elementos. Para uma embaralhamento perfeito, é necessário um tamanho de buffer maior ou igual ao tamanho total do conjunto de dados.

Por exemplo, se o seu conjunto de dados contém 10.000 elementos, mas buffer_size está definido como 1000, então shuffle inicialmente selecionará um elemento aleatório apenas dos primeiros 1000 elementos no buffer. Assim que um elemento é selecionado, seu espaço no buffer é substituído pelo próximo (ou seja, o 1.001º) elemento, mantendo o buffer de 1000 elementos.

Se o conjunto de dados é composto por vários shards, ele também faz shuffle na ordem dos shards. No entanto, se a ordem foi fixada usando skip() ou take(), a ordem dos shards é mantida inalterada.

Exemplo:

>>> 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 )

Parâmetros

  • type (str, opcional) — O tipo de saída selecionado em [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None significa que retorna objetos python (padrão).

Retorne um conjunto de dados com o formato especificado.

Exemplo:

>>> 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

Parâmetros

  • features (Features) — Novos recursos para os quais o dataset deve ser convertido. O nome dos campos nos recursos deve corresponder aos nomes atuais das colunas. O tipo dos dados também deve ser convertível de um tipo para o outro. Para conversões não triviais, por exemplo, string <-> ClassLabel, você deve usar map para atualizar o Dataset.

Uma cópia do conjunto de dados com recursos convertidos.

Casteie o conjunto de dados para um novo conjunto de recursos. O cast de tipo é aplicado a todos os conjuntos de dados do dicionário de conjuntos de dados.

Exemplo:

>>> 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] )

Parâmetros

  • column (str) — Nome da coluna.
  • feature (Feature) — Recurso alvo.

Casta a coluna para recurso para decodificação. A conversão de tipo é aplicada a todos os conjuntos de dados do dicionário de conjuntos de dados.

Exemplo:

>>> 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

Parâmetros

  • column_names (Union[str, list[str]]) — Nome da(s) coluna(s) a ser(em) removida(s).

Uma cópia do objeto de dataset sem as colunas a serem removidas.

Remove uma ou várias colunas do dataset e os recursos associados a elas. A remoção é feita em tempo real nos exemplos ao iterar sobre o dataset. A remoção é aplicada a todos os datasets do dicionário de datasets.

Exemplo:

>>> 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

Parâmetros

  • original_column_name (str) — Nome da coluna a ser renomeada.
  • new_column_name (str) — Novo nome para a coluna.

Uma cópia do conjunto de dados com uma coluna renomeada.

Renomeia uma coluna no dataset e move os recursos associados à coluna original para o novo nome da coluna. A renomeação é aplicada a todos os datasets do dicionário de datasets.

Exemplo:

>>> 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

Parâmetros

  • column_mapping (Dict[str, str]) — Um mapeamento de colunas para renomear para seus novos nomes.

Uma cópia do conjunto de dados com colunas renomeadas

Renomeie várias colunas no conjunto de dados e mova os recursos associados às colunas originais para os novos nomes de coluna. A renomeação é aplicada a todos os conjuntos de dados do dicionário de conjuntos de dados.

Exemplo:

>>> 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

Parâmetros

  • column_names (Union[str, list[str]]) — Nome da(s) coluna(s) a ser(em) mantida(s).

Uma cópia do objeto de dataset com apenas as colunas selecionadas.

Selecione uma ou várias colunas do conjunto de dados e os recursos associados a elas. A seleção é feita em tempo de execução nos exemplos ao iterar sobre o conjunto de dados. A seleção é aplicada a todos os conjuntos de dados do dicionário de conjuntos de dados.

Exemplo:

>>> 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 )

Parâmetros

  • repo_id (str) — O ID do repositório para o qual será feito o push, no seguinte formato: <user>/<dataset_name> ou <org>/<dataset_name>. Também aceita <dataset_name>, que usará o namespace do usuário conectado por padrão.

    Também pode ser um local dentro de um bucket, por exemplo, buckets/<user_or_org>/<bucket_name>/...

  • config_name (str) — Nome da configuração de um conjunto de dados. O padrão é “default”.
  • set_default (bool, opcional) — Se deve definir esta configuração como a padrão. Caso contrário, a configuração padrão é a chamada “default”.
  • data_dir (str, opcional) — Nome do diretório que conterá os arquivos de dados enviados. O valor padrão é o config_name se for diferente de “default”, caso contrário “data”.

    Adicionado na 2.17.0

  • commit_message (str, opcional) — Mensagem a ser commitada durante o push. O padrão será "Upload dataset".
  • commit_description (str, opcional) — Descrição do commit que será criado. Além disso, descrição do PR, se um PR for criado (create_pr é True).

    Adicionado na 2.16.0

  • private (bool, opcional) — Se deve tornar o repositório privado. Se None (padrão), o repositório será público, a menos que o padrão da organização seja privado. Este valor é ignorado se o repositório já existir.
  • token (str, opcional) — Um token de autenticação opcional para o Hugging Face Hub. Se nenhum token for passado, será usado por padrão o token salvo localmente ao fazer login com hf auth login. Será gerado um erro se nenhum token for passado e o usuário não estiver conectado.
  • revision (str, opcional) — Branch para a qual os arquivos enviados serão enviados. O padrão é a branch "main".
  • create_pr (bool, opcional, padrão False) — Se deve criar um PR com os arquivos enviados ou fazer o commit diretamente.
  • max_shard_size (int ou str, opcional) — Tamanho máximo opcional dos shards do dataset a serem enviados para o hub. Se expresso como string, deve ser composto por dígitos seguidos por uma unidade (como "500MB" ou "1GB"). Se não for fornecido, cada split mantém a contagem de shards nativa do dataset.
  • num_shards (Dict[str, int], opcional) — Número de shards a serem gravados. Use um dicionário para definir um num_shards diferente para cada split. Se max_shard_size for fornecido e o num_shards de um split não for, o número de shards para esse split é estimado a partir de max_shard_size.
  • embed_external_files (bool, padrão é True) — Se incorporar os bytes dos arquivos nos shards. Especificamente, isso fará o seguinte antes do push para os campos do tipo:
    • Audio e Image removem as informações de caminho local e incorporam o conteúdo dos arquivos nos arquivos Parquet.
  • num_proc (int, opcional, padrão é None) — Número de processos ao preparar e enviar o dataset. Isso é útil se o dataset for composto por muitas amostras ou arquivos de mídia para incorporar. Usa o contexto “spawn” para funcionar com hf_xet, o cliente rust para uploads rápidos para o HF. O multiprocessing é desabilitado por padrão.

    Adicionado na 4.0.0

Envia o IterableDatasetDict para o hub como um dataset Parquet. O IterableDatasetDict é enviado usando requisições HTTP e não requer a instalação de git ou git-lfs.

Cada divisão do conjunto de dados será enviada de forma independente. O conjunto de dados enviado manterá os nomes originais das divisões.

Os arquivos Parquet resultantes são autossuficientes por padrão: se o seu conjunto de dados contiver dados de Image ou Audio, os arquivos Parquet armazenarão os bytes das suas imagens ou arquivos de áudio. Você pode desativar isso definindo embed_external_files como False.

Exemplo:

>>> 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})

Se você deseja adicionar uma nova configuração (ou subconjunto) a um conjunto de dados (por exemplo, se o conjunto de dados tiver várias tarefas/versões/idiomas):

>>> 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")

Recursos

classe datasets.Features

< >

( *args**kwargs )

Um dicionário especial que define a estrutura interna de um conjunto de dados.

Instanciada com um dicionário do tipo dict[str, FieldType], onde as chaves são os nomes das colunas desejados e os valores são o tipo de cada coluna.

FieldType pode ser um dos seguintes:

  • O recurso Value especifica um valor de um único tipo de dados, por exemplo, int64 ou string.
  • A feature ClassLabel especifica um conjunto predefinido de classes que podem ter rótulos associados e que serão armazenados como inteiros no dataset.
  • Um dict do Python especifica um recurso composto que contém um mapeamento de subcampos para subrecursos. É possível ter campos aninhados de campos aninhados de maneira arbitrária.
  • List ou LargeList especifica um recurso composto contendo uma sequência de sub-recurso, todos do mesmo tipo de recurso.
  • Array2D, Array3D, Array4D ou Array5D para recursos de arrays multidimensionais.
  • Audio recurso para armazenar o caminho absoluto para um arquivo de áudio ou um dicionário com o caminho relativo para um arquivo de áudio (chave “path”) e seu conteúdo em bytes (chave “bytes”). Este recurso carrega o áudio de forma preguiçosa com um decodificador.
  • Image recurso para armazenar o caminho absoluto para um arquivo de imagem, um objeto np.ndarray, um objeto PIL.Image.Image ou um dicionário com o caminho relativo para um arquivo de imagem (chave “path”) e seu conteúdo em bytes (chave “bytes”). Este recurso extrai os dados da imagem.
  • Video para armazenar o caminho absoluto para um arquivo de vídeo, um objeto torchcodec.decoders.VideoDecoder ou um dicionário com o caminho relativo para um arquivo de vídeo (chave “path”) e seu conteúdo em bytes (chave “bytes”). Este recurso carrega o vídeo de forma preguiçosa (lazy) com um decodificador.
  • Pdf recurso para armazenar o caminho absoluto para um arquivo PDF, um objeto pdfplumber.pdf.PDF ou um dicionário com o caminho relativo para um arquivo PDF (chave “path”) e seu conteúdo em bytes (chave “bytes”). Este recurso carrega o PDF de forma preguiçosa com um leitor de PDF.
  • Nifti recurso para armazenar o caminho absoluto para um arquivo de neuroimagem NIfTI, um objeto nibabel.Nifti1Image ou um dicionário com o caminho relativo para um arquivo NIfTI (chave “path”) e seu conteúdo em bytes (chave “bytes”). Este recurso carrega o arquivo NIfTI de forma preguiçosa (lazy) com nibabel.
  • Translation ou TranslationVariableLanguages, recurso específico de Tradução Automática.
  • Json recurso para armazenar dados não estruturados, por exemplo, contendo tipos mistos/arbitrários. Por baixo dos panos

copiar

< >

( )

Faça uma cópia profunda de Features.

Exemplo:

>>> 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 )

Parâmetros

  • batch (dict[str, list[Any]]) — Dados do lote do dataset.
  • token_per_repo_id (dict, opcional) — Para acessar e decodificar arquivos de áudio ou imagem de repositórios privados no Hub, você pode passar um dicionário repo_id (str) -> token (bool ou str)

Decodificar lote com decodificação de recursos personalizada.

decode_column

< >

( column: listcolumn_name: strtoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

Parâmetros

  • column (list[Any]) — Dados da coluna do dataset.
  • column_name (str) — Nome da coluna do dataset.

Decodifique a coluna com decodificação de recurso personalizada.

decode_example

< >

( example: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

Parâmetros

  • example (dict[str, Any]) — Dados da linha do dataset.
  • token_per_repo_id (dict, opcional) — Para acessar e decodificar arquivos de áudio ou imagem de repositórios privados no Hub, você pode passar um dicionário repo_id (str) -> token (bool or str).

Exemplo de decodificação com decodificação de recursos personalizada.

encode_batch

< >

( batch )

Parâmetros

  • batch (dict[str, list[Any]]) — Dados em um lote de Dataset.

Codifica o lote em um formato para Arrow.

encode_column

< >

( columncolumn_name: str )

Parâmetros

  • column (list[Any]) — Dados em uma coluna de Dataset.
  • column_name (str) — Nome da coluna do dataset.

Codifica a coluna em um formato para Arrow.

encode_example

< >

( example )

Parâmetros

  • example (dict[str, Any]) — Dados em uma linha de Dataset.

Codifique o exemplo em um formato para Arrow.

flatten

< >

( max_depth = 16 ) → Features

Retorna

Recursos

Os recursos achatados.

Achate os recursos. Cada coluna de dicionário é removida e substituída por todos os subcampos que ela contém. Os novos campos são nomeados concatenando o nome da coluna original e o nome do subcampo da seguinte forma: <original>.<subfield>.

Se uma coluna contém dicionários aninhados, então os nomes de todos os subcampos de níveis inferiores também são concatenados para formar novas colunas: <original>.<subfield>.<subsubfield>, etc.

Exemplo:

>>> 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 )

Parâmetros

  • pa_schema (pyarrow.Schema) — Esquema Arrow.

Constrói Features a partir do esquema Arrow. Também verifica os metadados do esquema para os recursos do Hugging Face Datasets. Campos não anuláveis não são suportados e são definidos como anuláveis.

Além disso, pa.dictionary não é suportado e ele usa seu tipo subjacente no lugar. Portanto, os datasets convertem objetos DictionaryArray para seus valores reais.

from_dict

< >

( dic ) → Features

Parâmetros

  • dic (dict[str, Any]) — Dicionário Python.

Retorna

Recursos

Construir [Features] a partir de um dict.

Regenera o objeto de recurso aninhado a partir de um dicionário desserializado. Usamos a chave _type para inferir o nome da dataclass do recurso FieldType.

Isso permite uma sintaxe de construtor conveniente para definir recursos a partir de dicionários JSON desserializados. Esta função é usada, em particular, ao desserializar um [DatasetInfo] que foi exportado para um objeto JSON. Isso atua como um análogo de [Features.from_arrow_schema] e lida com a instanciação recursiva campo a campo, mas não requer nenhum mapeamento para/pyarrow, exceto pelo fato de aproveitar o mapeamento dos dtypes primitivos do pyarrow que o [Value] executa automaticamente.

Exemplo:

>>> Features.from_dict({'_type': {'dtype': 'string', 'id': None, '_type': 'Value'}})
{'_type': Value('string')}

reorder_fields_as

< >

( other: Features )

Parâmetros

  • other ([Features]) — Os outros [Features] com os quais alinhar.

Reordene os campos de Features para corresponder à ordem dos campos de outros [Features].

A ordem dos campos é importante, pois afeta os dados subjacentes do arrow. Reordenar os campos permite que o tipo de dados subjacente do arrow corresponda.

Exemplo:

>>> 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

Escalar

classe datasets.Value

< >

( dtype: strid: typing.Optional[str] = None )

Parâmetros

  • dtype (str) — Nome do tipo de dados.

Valor de recurso escalar de um determinado tipo de dados.

Os possíveis dtypes de Value são os seguintes:

  • null
  • bool
  • int8
  • int16
  • int32
  • int64
  • uint8
  • uint16
  • uint32
  • uint64
  • float16
  • float32 (alias float)
  • float64 (alias 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

Exemplo:

>>> from datasets import Features
>>> features = Features({'stars': Value('int32')})
>>> features
{'stars': Value('int32')}

classe datasets.ClassLabel

< >

( num_classes: dataclasses.InitVar[typing.Optional[int]] = Nonenames: list = Nonenames_file: dataclasses.InitVar[typing.Optional[str]] = Noneid: typing.Optional[str] = None )

Parâmetros

  • num_classes (int, opcional) — Número de classes. Todos os rótulos devem ser < num_classes.
  • names (list de str, opcional) — Nomes de string para as classes inteiras. A ordem em que os nomes são fornecidos é mantida.
  • names_file (str, opcional) — Caminho para um arquivo com os nomes das classes inteiras, um por linha.

Tipo de recurso para rótulos de classe inteira.

Existem 3 maneiras de definir um ClassLabel, que correspondem aos 3 argumentos:

  • num_classes: Cria rótulos de 0 a (num_classes-1).
  • names: Lista de strings de rótulos.
  • names_file: Arquivo contendo a lista de rótulos.

Por baixo dos panos, os rótulos são armazenados como inteiros. Você pode usar -1 para representar rótulos desconhecidos/ausentes.

Exemplo:

>>> 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

Parâmetros

  • storage (Union[pa.StringArray, pa.IntegerArray]) — Array do PyArrow para converter.

Retorna

pa.Int64Array

Array no tipo de armazenamento arrow ClassLabel.

Converte um array Arrow para o tipo de armazenamento arrow ClassLabel. Os tipos Arrow que podem ser convertidos para o tipo de armazenamento pyarrow ClassLabel são:

  • pa.string()
  • pa.int()

int2str

< >

( values: typing.Union[int, collections.abc.Iterable] )

Conversão integer => nome da classe string.

Em relação a rótulos desconhecidos/ausentes: passar inteiros negativos levanta ValueError.

Exemplo:

>>> 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] )

Nome da classe de conversão string => integer.

Exemplo:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds.features["label"].str2int('neg')
0

Composto

classe datasets.LargeList

< >

( feature: typing.Anyid: typing.Optional[str] = None )

Parâmetros

  • feature (FeatureType) — Tipo de dados da feature filha de cada item dentro da lista grande.

Tipo de recurso para dados de listas grandes compostos pelo tipo de dados de recurso filho.

Ele é baseado em pyarrow.LargeListType, que é como pyarrow.ListType, mas com offsets de 64 bits em vez de 32 bits.

classe datasets.List

< >

( feature: typing.Anylength: int = -1id: typing.Optional[str] = None )

Parâmetros

  • feature (FeatureType) — Tipo de dados da feature filha de cada item dentro da lista grande.
  • length (opcional int, padrão -1) — Comprimento da lista, caso seja fixo. O padrão é -1, o que significa um comprimento arbitrário.

Tipo de recurso para dados de listas grandes compostos pelo tipo de dados de recurso filho.

É baseado em pyarrow.ListType, que usa offsets de 32 bits ou um comprimento fixo.

classe datasets.Sequence

< >

( feature = Nonelength = -1**kwargs )

Parâmetros

  • feature (FeatureType) — Tipo de dados da feature filha de cada item dentro da lista grande.
  • length (opcional int, padrão -1) — Comprimento da lista, caso seja fixo. O padrão é -1, o que significa um comprimento arbitrário.

Uma Sequence é uma utilidade que converte automaticamente um recurso de dicionário interno em um dicionário de listas. Esse comportamento é implementado para ter uma camada de compatibilidade com a biblioteca TensorFlow Datasets, mas pode não ser desejado em alguns casos. Se você não quiser esse comportamento, pode usar uma List ou uma LargeList em vez da Sequence.

Tradução

classe datasets.Translation

< >

( languages: listid: typing.Optional[str] = None )

Parâmetros

  • languages (dict) — Um dicionário para cada exemplo que mapeia códigos de idioma em strings para traduções em strings.

Feature para traduções com idiomas fixos por exemplo. Aqui, para compatibilidade com tfds.

Exemplo:

>>> # At construction time:
>>> datasets.features.Translation(languages=['en', 'fr', 'de'])
>>> # During data generation:
>>> yield {
...         'en': 'the cat',
...         'fr': 'le chat',
...         'de': 'die katze'
... }

flatten

< >

( )

Aplique a funcionalidade Flatten the Translation em um dicionário.

classe 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)

Parâmetros

  • languages (dict) — Um dicionário para cada exemplo que mapeia códigos de idioma em string para uma ou mais traduções em string. Os idiomas presentes podem variar de um exemplo para outro.

Retorna

  • language ou translation (tf.Tensor unidimensional de comprimento variável de tf.string)

Códigos de idioma ordenados em ordem ascendente ou traduções em texto simples, ordenados para alinhar com os códigos de idioma.

Feature para traduções com idiomas variáveis por exemplo. Aqui, para compatibilidade com tfds.

Exemplo:

>>> # 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

< >

( )

Aplique a função Flatten na feature TranslationVariableLanguages para convertê-la em um dicionário.

Arrays

classe datasets.Array2D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

Parâmetros

  • shape (tuple) — Tamanho de cada dimensão.
  • dtype (str) — Nome do tipo de dados.

Crie um array bidimensional.

Exemplo:

>>> from datasets import Features
>>> features = Features({'x': Array2D(shape=(1, 3), dtype='int32')})

classe datasets.Array3D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

Parâmetros

  • shape (tuple) — Tamanho de cada dimensão.
  • dtype (str) — Nome do tipo de dados.

Crie um array tridimensional.

Exemplo:

>>> from datasets import Features
>>> features = Features({'x': Array3D(shape=(1, 2, 3), dtype='int32')})

classe datasets.Array4D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

Parâmetros

  • shape (tuple) — Tamanho de cada dimensão.
  • dtype (str) — Nome do tipo de dados.

Crie um array de quatro dimensões.

Exemplo:

>>> from datasets import Features
>>> features = Features({'x': Array4D(shape=(1, 2, 2, 3), dtype='int32')})

classe datasets.Array5D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

Parâmetros

  • shape (tuple) — Tamanho de cada dimensão.
  • dtype (str) — Nome do tipo de dados.

Crie um array de cinco dimensões.

Exemplo:

>>> from datasets import Features
>>> features = Features({'x': Array5D(shape=(1, 2, 2, 3, 3), dtype='int32')})

Áudio

classe datasets.Audio

< >

( sampling_rate: typing.Optional[int] = Nonedecode: bool = Truenum_channels: typing.Optional[int] = Nonestream_index: typing.Optional[int] = Noneid: typing.Optional[str] = None )

Parâmetros

  • sampling_rate (int, opcional) — Taxa de amostragem alvo. Se None, a taxa de amostragem nativa é usada.
  • num_channels (int, opcional) — O número desejado de canais das amostras. Por padrão, é usado o número de canais da fonte. A decodificação de áudio retornará amostras com a forma (num_channels, num_samples) Atualmente None (número de canais da fonte, padrão), 1 (mono) ou 2 (estéreo) canais são suportados. O num_channels argumento é passado para torchcodec.decoders.AudioDecoder.

    Adicionado na 4.4.0

  • decode (bool, padrão True) — Se deve decodificar os dados de áudio. Se False, retorna o dicionário subjacente no formato {"path": audio_path, "bytes": audio_bytes}.
  • stream_index (int, opcional) — O índice de streaming a ser usado do arquivo. Se None, o padrão é o índice “melhor”.

Audio Feature para extrair dados de áudio de um arquivo de áudio.

Input: O recurso de áudio aceita como entrada:

  • Uma str: caminho absoluto para o arquivo de áudio (ou seja, o acesso aleatório é permitido).

  • Um pathlib.Path: caminho para o arquivo de áudio (ou seja, o acesso aleatório é permitido).

  • Um dict com as chaves:

    • path: String com o caminho relativo do arquivo de áudio em relação ao arquivo de arquivo.
    • bytes: Bytes content of the audio file.

    Isso é útil para arquivos parquet ou webdataset que incorporam arquivos de áudio.

  • Um dict com as chaves:

    • array: Matriz contendo a amostra de áudio
    • sampling_rate: Inteiro correspondente à taxa de amostragem da amostra de áudio.
  • Um objeto de decodificador de áudio do torchcodec: torchcodec.decoders.AudioDecoder.

Saída: Os recursos de áudio saem como objetos torchcodec.decoders.AudioDecoder, com chaves adicionais:

  • array: Matriz contendo a amostra de áudio
  • sampling_rate: Inteiro correspondente à taxa de amostragem da amostra de áudio.

Exemplo:

>>> 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

Parâmetros

  • storage (Union[pa.StringArray, pa.StructArray]) — Array do PyArrow para converter.

Retorna

pa.StructArray

Array no tipo de armazenamento de áudio arrow, ou seja, pa.struct({"bytes": pa.binary(), "path": pa.string()})

Converte um array Arrow para o tipo de armazenamento de áudio arrow. Os tipos Arrow que podem ser convertidos para o tipo de armazenamento de áudio pyarrow são:

  • pa.string() - deve conter os dados de “path”
  • pa.binary() - deve conter os bytes de áudio
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - a ordem não importa

decode_example

< >

( value: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

Parâmetros

  • value (dict) — Um dicionário com as chaves:
    • path: String com o caminho relativo do arquivo de áudio.
    • bytes: Bytes do arquivo de áudio.
  • token_per_repo_id (dict, opcional) — Para acessar e decodificar arquivos de áudio de repositórios privados no Hub, você pode passar um dicionário repo_id (str) -> token (bool ou str)

Decodifique o arquivo de áudio de exemplo em dados de áudio.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Parâmetros

  • storage (pa.StructArray) — Array PyArrow para incorporar.
  • token_per_repo_id (dict, opcional) — Dicionário repo_id -> token para buscar os bytes dos arquivos.
  • local_files (bool, padrão é True) — Se incorporar dados de arquivos locais no array

    Adicionado na 4.8.5

  • remote_files (bool, padrão é True) — Se incorporar dados de arquivos remotos no array. Por exemplo, arquivos com caminhos que começam com hf:// ou https://

    Adicionado na 4.8.5

Retorna

pa.StructArray

Array no tipo de armazenamento de áudio arrow, ou seja, pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Incorpore arquivos de áudio no array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('AudioDecoder')] ) → dict

Parâmetros

  • value (str, bytes,bytearray,dict, AudioDecoder) — Dados passados como entrada para o recurso de áudio.

Retorna

dict

Codifique o exemplo em um formato para Arrow.

flatten

< >

( )

Se estiver no estado decodificável, lance um erro; caso contrário, achate o recurso em um dicionário.

Imagem

classe datasets.Image

< >

( mode: typing.Optional[str] = Nonedecode: bool = Trueid: typing.Optional[str] = None )

Parâmetros

  • mode (str, opcional) — O modo para o qual a imagem deve ser convertida. Se None, o modo nativo da imagem é utilizado.
  • decode (bool, padrão True) — Se deve decodificar os dados da imagem. Se False, retorna o dicionário subjacente no formato {"path": image_path, "bytes": image_bytes}.

Imagem Feature para ler dados de imagem de um arquivo de imagem.

Input: O recurso de imagem aceita como entrada:

  • Uma str: caminho absoluto para o arquivo de imagem (ou seja, o acesso aleatório é permitido).

  • Um pathlib.Path: caminho para o arquivo de imagem (ou seja, o acesso aleatório é permitido).

  • Um dict com as chaves:

    • path: String com o caminho relativo do arquivo de imagem em relação ao arquivo de arquivo.
    • bytes: Bytes do arquivo de imagem.

    Isso é útil para arquivos parquet ou webdataset que incorporam arquivos de imagem.

  • Um np.ndarray: um array NumPy representando uma imagem.

  • Um objeto de imagem PIL: PIL.Image.Image.

Saída: Os recursos de imagem saem como objetos PIL.Image.Image.

Exemplos:

>>> 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

Parâmetros

  • storage (Union[pa.StringArray, pa.StructArray, pa.ListArray]) — Array do PyArrow para converter.

Retorna

pa.StructArray

Array no tipo de armazenamento Image arrow, ou seja, pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Converte um array Arrow para o tipo de armazenamento de imagem Arrow. Os tipos Arrow que podem ser convertidos para o tipo de armazenamento de imagem pyarrow são:

  • pa.string() - deve conter os dados de “path”
  • pa.large_string() - deve conter os dados de “path” (será convertido para string, se possível)
  • pa.binary() - deve conter os bytes da imagem
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - a ordem não importa
  • pa.list(*) - deve conter os dados do array de imagens

decode_example

< >

( value: dicttoken_per_repo_id = None )

Parâmetros

  • value (str ou dict) — Uma string com o caminho absoluto do arquivo de imagem, ou um dicionário com as chaves:
    • path: String com o caminho absoluto ou relativo do arquivo de imagem.
    • bytes: Os bytes do arquivo de imagem.
  • token_per_repo_id (dict, opcional) — Para acessar e decodificar arquivos de imagem de repositórios privados no Hub, você pode passar um dicionário repo_id (str) -> token (bool ou str).

Decodifique o arquivo de imagem de exemplo em dados de imagem.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Parâmetros

  • storage (pa.StructArray) — Array PyArrow para incorporar.
  • token_per_repo_id (dict, opcional) — Dicionário repo_id -> token para buscar os bytes dos arquivos.
  • local_files (bool, padrão é True) — Se incorporar dados de arquivos locais no array

    Adicionado na 4.8.5

  • remote_files (bool, padrão é True) — Se incorporar dados de arquivos remotos no array. Por exemplo, arquivos com caminhos que começam com hf:// ou https://

    Adicionado na 4.8.5

Retorna

pa.StructArray

Array no tipo de armazenamento Image arrow, ou seja, pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Incorpore arquivos de imagem no array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, numpy.ndarray, ForwardRef('PIL.Image.Image')] )

Parâmetros

  • value (str, np.ndarray, PIL.Image.Image ou dict) — Dados passados como entrada para o recurso Image.

Codifique o exemplo em um formato para Arrow.

flatten

< >

( )

Se estiver no estado decodificável, retorne o próprio recurso; caso contrário, achate o recurso em um dicionário.

Vídeo

classe 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 )

Parâmetros

  • decode (bool, padrão True) — Se deve decodificar os dados do vídeo. Se False, retorna o dicionário subjacente no formato {"path": video_path, "bytes": video_bytes}.
  • stream_index (int, opcional) — O índice de streaming a ser usado do arquivo. Se None, o padrão é o índice “melhor”.
  • dimension_order (str, padrão NCHW) — A ordem das dimensões dos quadros decodificados. onde N é o tamanho do lote, C é o número de canais, H é a altura e W é a largura dos quadros.
  • num_ffmpeg_threads (int, padrão 1) — O número de threads a serem usadas para decodificar o vídeo. (Recomenda-se manter esse valor em 1)
  • device (str ou torch.device, padrão cpu) — O dispositivo a ser usado para decodificar o vídeo.
  • seek_mode (str, padrão exact) — Determina se o acesso aos frames será “exact” (exato) ou “approximate” (aproximado). O modo exato garante que a solicitação do frame i retornará sempre o frame i, mas isso requer uma varredura inicial do arquivo. O modo aproximado é mais rápido, pois evita a varredura do arquivo, mas é menos preciso, pois usa os metadados do arquivo para calcular onde o frame i provavelmente está. Leia mais aqui

Video Feature para ler dados de vídeo de um arquivo de vídeo.

Input: O recurso de vídeo aceita como entrada:

  • Uma str: caminho absoluto para o arquivo de vídeo (ou seja, o acesso aleatório é permitido).

  • Um pathlib.Path: caminho para o arquivo de vídeo (ou seja, o acesso aleatório é permitido).

  • Um dict com as chaves:

    • path: String com o caminho relativo do arquivo de vídeo em um repositório de dataset.
    • bytes: Bytes do arquivo de vídeo.

    Isso é útil para arquivos parquet ou webdataset que incorporam arquivos de vídeo.

  • Um objeto de decodificador de vídeo do torchcodec: torchcodec.decoders.VideoDecoder.

Saída: A saída de Vídeo apresenta os dados como objetos torchcodec.decoders.VideoDecoder.

Exemplos:

>>> 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

Parâmetros

  • storage (Union[pa.StringArray, pa.StructArray, pa.ListArray]) — Array do PyArrow para converter.

Retorna

pa.StructArray

Array no tipo de armazenamento de vídeo arrow, ou seja, pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Converte um array Arrow para o tipo de armazenamento de vídeo do Arrow. Os tipos Arrow que podem ser convertidos para o tipo de armazenamento de vídeo do pyarrow são:

  • pa.string() - deve conter os dados de “path”
  • pa.binary() - deve conter os bytes do vídeo
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - a ordem não importa
  • pa.list(*) - deve conter os dados do array de vídeo

decode_example

< >

( value: typing.Union[str, datasets.features.video.Example]token_per_repo_id: typing.Optional[dict[str, typing.Union[bool, str]]] = None )

Parâmetros

  • value (str ou dict) — Uma string com o caminho absoluto do arquivo de vídeo, ou um dicionário com as chaves:
    • path: String com o caminho absoluto ou relativo do arquivo de vídeo.
    • bytes: Os bytes do arquivo de vídeo.
  • token_per_repo_id (dict, opcional) — Para acessar e decodificar arquivos de vídeo de repositórios privados no Hub, você pode passar um dicionário repo_id (str) -> token (bool ou str).

Decodifique o arquivo de vídeo de exemplo em dados de vídeo.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Parâmetros

  • storage (pa.StructArray) — Array PyArrow para incorporar.
  • token_per_repo_id (dict, opcional) — Dicionário repo_id -> token para buscar os bytes dos arquivos.
  • local_files (bool, padrão é True) — Se incorporar dados de arquivos locais no array

    Adicionado na 4.8.5

  • remote_files (bool, padrão é True) — Se incorporar dados de arquivos remotos no array. Por exemplo, arquivos com caminhos que começam com hf:// ou https://

    Adicionado na 4.8.5

Retorna

pa.StructArray

Array no tipo de armazenamento de vídeo arrow, ou seja, pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Incorpore arquivos de imagem no array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, datasets.features.video.Example, numpy.ndarray, ForwardRef('VideoDecoder')] )

Parâmetros

  • value (str, np.ndarray, bytes, bytearray, VideoDecoder ou dict) — Dados passados como entrada para o recurso de vídeo.

Codifique o exemplo em um formato para Arrow.

flatten

< >

( )

Se estiver no estado decodificável, retorne o próprio recurso; caso contrário, achate o recurso em um dicionário.

Mesh

classe datasets.Mesh

< >

( decode: bool = Trueid: typing.Optional[str] = None )

Parâmetros

  • decode (bool, padrão True) — Se deve decodificar os dados da malha. Se False, retorna o dicionário subjacente no formato {"path": mesh_path, "bytes": mesh_bytes}. A decodificação da malha usa trimesh e suporta arquivos .glb, .gltf, .ply e .stl.

Mesh Feature para ler dados de malha 3D de um arquivo.

Input: O recurso Mesh aceita como entrada:

  • Uma str: caminho absoluto para o arquivo de malha (ou seja, o acesso aleatório é permitido).

  • Um pathlib.Path: caminho para o arquivo de malha (ou seja, o acesso aleatório é permitido).

  • Um dict com as chaves:

    • path: String com o caminho relativo do arquivo de malha em relação ao arquivo de arquivo.
    • bytes: Bytes do arquivo de malha.

    Isso é útil para arquivos parquet ou webdataset que incorporam arquivos de malha.

  • Um trimesh.Trimesh ou trimesh.Scene: objeto de malha 3D ou cena.

Saída: O recurso Mesh gera dados como objetos trimesh.Trimesh ou trimesh.Scene.

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) → pa.StructArray

Parâmetros

  • storage (Union[pa.StringArray, pa.StructArray]) — Array do PyArrow para converter.

Retorna

pa.StructArray

Array no tipo de armazenamento Mesh arrow, ou seja, pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Converte um array Arrow para o tipo de armazenamento arrow do Mesh. Os tipos Arrow que podem ser convertidos para o tipo de armazenamento pyarrow do Mesh são:

  • pa.string() - deve conter os dados de “path”
  • pa.large_string() - deve conter os dados de “path” (será convertido para string, se possível)
  • pa.binary() - deve conter os bytes da malha
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - a ordem não importa

decode_example

< >

( value: dicttoken_per_repo_id = None )

Parâmetros

  • value (dict) — Um dicionário com as chaves:
    • path: String com o caminho absoluto ou relativo do arquivo de malha.
    • bytes: Os bytes do arquivo de malha.
  • token_per_repo_id (dict, opcional) — Para acessar e decodificar arquivos mesh de repositórios privados no Hub, você pode passar um dicionário repo_id (str) -> token (bool ou str).

Decodificar arquivo de malha de exemplo.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Parâmetros

  • storage (pa.StructArray) — Array PyArrow para incorporar.
  • token_per_repo_id (dict, opcional) — Dicionário repo_id -> token para buscar os bytes dos arquivos.
  • local_files (bool, padrão True) — Se os dados de arquivos locais devem ser incorporados no array.
  • remote_files (bool, padrão True) — Se os dados de arquivos remotos devem ser incorporados no array.

Retorna

pa.StructArray

Array no tipo de armazenamento Mesh arrow, ou seja, pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Incorpore arquivos de malha no array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('trimesh.Trimesh'), ForwardRef('trimesh.Scene')] )

Parâmetros

  • value (str, bytes, dict, trimesh.Trimesh ou trimesh.Scene) — Dados passados como entrada para o recurso Mesh.

Codifique o exemplo em um formato para Arrow.

flatten

< >

( )

Se estiver no estado decodificável, retorne o próprio recurso; caso contrário, achate o recurso em um dicionário.

Json

classe datasets.Json

< >

( decode: bool = Trueid: typing.Optional[str] = None )

Tipo de recurso para objetos JSON.

Por baixo dos panos, os objetos são armazenados como strings codificadas em JSON.

Exemplo:

>>> 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

Parâmetros

  • storage (Union[pa.StringArray, pa.IntegerArray]) — Array do PyArrow para converter.

Retorna

pa.JsonArray

Array no tipo de armazenamento arrow Json.

Converte um array Arrow para o tipo de armazenamento Arrow Json.

Pdf

classe datasets.Pdf

< >

( decode: bool = Trueid: typing.Optional[str] = None )

Parâmetros

  • decode (bool, padrão True) — Se deve decodificar os dados do pdf. Se False, retorna o dicionário subjacente no formato {"path": pdf_path, "bytes": pdf_bytes}.

Experimental. O recurso Feature de Pdf para ler documentos em pdf a partir de um arquivo pdf.

Input: O recurso Pdf aceita como entrada:

  • Uma str: caminho absoluto para o arquivo pdf (ou seja, o acesso aleatório é permitido).

  • Um pathlib.Path: caminho para o arquivo pdf (ou seja, o acesso aleatório é permitido).

  • Um dict com as chaves:

    • path: String com o caminho relativo do arquivo pdf em um repositório de dataset.
    • bytes: Bytes do arquivo pdf. Isso é útil para arquivos arquivados com acesso sequencial.
  • Um pdfplumber.pdf.PDF: objeto pdf do pdfplumber.

Exemplos:

>>> 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

Parâmetros

  • storage (Union[pa.StringArray, pa.StructArray, pa.ListArray]) — Array do PyArrow para converter.

Retorna

pa.StructArray

Array no tipo de armazenamento Pdf arrow, ou seja, pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Converte um array Arrow para o tipo de armazenamento Arrow do Pdf. Os tipos Arrow que podem ser convertidos para o tipo de armazenamento pyarrow do Pdf são:

  • pa.string() - deve conter os dados de “path”
  • pa.binary() - deve conter os bytes da imagem
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - a ordem não importa
  • pa.list(*) - deve conter os dados do array pdf

decode_example

< >

( value: dicttoken_per_repo_id = None )

Parâmetros

  • value (str ou dict) — Uma string com o caminho absoluto do arquivo PDF, ou um dicionário com as chaves:
    • path: String com o caminho absoluto ou relativo do arquivo pdf.
    • bytes: Os bytes do arquivo PDF.
  • token_per_repo_id (dict, opcional) — Para acessar e decodificar arquivos pdf de repositórios privados no Hub, você pode passar um dicionário repo_id (str) -> token (bool ou str).

Decodifique o arquivo de exemplo em PDF para dados de PDF.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Parâmetros

  • storage (pa.StructArray) — Array PyArrow para incorporar.
  • token_per_repo_id (dict, opcional) — Dicionário repo_id -> token para buscar os bytes dos arquivos.
  • local_files (bool, padrão é True) — Se incorporar dados de arquivos locais no array

    Adicionado na 4.8.5

  • remote_files (bool, padrão é True) — Se incorporar dados de arquivos remotos no array. Por exemplo, arquivos com caminhos que começam com hf:// ou https://

    Adicionado na 4.8.5

Retorna

pa.StructArray

Array no tipo de armazenamento PDF arrow, ou seja, pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Incorpore arquivos PDF no array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('pdfplumber.pdf.PDF')] )

Parâmetros

  • value (str, bytes, pdfplumber.pdf.PDF ou dict) — Dados passados como entrada para o recurso Pdf.

Codifique o exemplo em um formato para Arrow.

flatten

< >

( )

Se estiver no estado decodificável, retorne o próprio recurso; caso contrário, achate o recurso em um dicionário.

Nifti

classe datasets.Nifti

< >

( decode: bool = Trueid: typing.Optional[str] = None )

Parâmetros

  • decode (bool, padrão True) — Se deve decodificar os dados NIfTI. Se False, uma string com os bytes é retornada. decode=False não é suportado ao decodificar exemplos.

Experimental. Feature Nifti para ler arquivos de neuroimagem NIfTI.

Input: O recurso Nifti aceita como entrada:

  • Uma str: Caminho absoluto para o arquivo NIfTI (ou seja, o acesso aleatório é permitido).

  • Um pathlib.Path: caminho para o arquivo NIfTI (ou seja, o acesso aleatório é permitido).

  • Um dict com as chaves:

    • path: String com o caminho relativo do arquivo NIfTI em um repositório de dataset.
    • bytes: Bytes do arquivo NIfTI. Isso é útil para arquivos arquivados com acesso sequencial.
  • Um objeto de imagem nibabel (por exemplo, nibabel.nifti1.Nifti1Image).

Exemplos:

>>> 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

Parâmetros

  • storage (Union[pa.StringArray, pa.StructArray, pa.BinaryArray]) — Array do PyArrow para converter.

Retorna

pa.StructArray

Array no tipo de armazenamento Nifti arrow, ou seja, pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Converte um array Arrow para o tipo de armazenamento arrow Nifti. Os tipos Arrow que podem ser convertidos para o tipo de armazenamento pyarrow Nifti são:

  • pa.string() - deve conter os dados de “path”
  • pa.binary() - deve conter os bytes do NIfTI
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - a ordem não importa

decode_example

< >

( value: dicttoken_per_repo_id = None )

Parâmetros

  • value (str ou dict) — Uma string com o caminho absoluto do arquivo NIfTI, ou um dicionário com as chaves:
    • path: String com o caminho absoluto ou relativo do arquivo NIfTI.
    • bytes: Os bytes do arquivo NIfTI.
  • token_per_repo_id (dict, opcional) — Para acessar e decodificar arquivos NIfTI de repositórios privados no Hub, você pode passar um dicionário repo_id (str) -> token (bool ou str).

Decodifique o arquivo NIfTI de exemplo em um objeto de imagem do nibabel.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Parâmetros

  • storage (pa.StructArray) — Array PyArrow para incorporar.
  • token_per_repo_id (dict, opcional) — Dicionário repo_id -> token para buscar os bytes dos arquivos.
  • local_files (bool, padrão é True) — Se incorporar dados de arquivos locais no array

    Adicionado na 4.8.5

  • remote_files (bool, padrão é True) — Se incorporar dados de arquivos remotos no array. Por exemplo, arquivos com caminhos que começam com hf:// ou https://

    Adicionado na 4.8.5

Retorna

pa.StructArray

Array no tipo de armazenamento arrow do NifTI, ou seja, pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Incorpore arquivos NifTI no array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('nib.Nifti1Image')] )

Parâmetros

  • value (str, bytes, nibabel.Nifti1Image ou dict) — Dados passados como entrada para o recurso Nifti.

Codifique o exemplo em um formato para Arrow.

flatten

< >

( )

Se estiver no estado decodificável, retorne o próprio recurso; caso contrário, achate o recurso em um dicionário.

BioSequence

classe datasets.BioSequence

< >

( format: str = 'fasta'decode: bool = Trueid: typing.Optional[str] = None )

Parâmetros

  • format (str, padrão "fasta") — Nome do formato da sequência, conforme interpretado por Bio.SeqIO. Valores comuns são "fasta", "fastq" e "genbank".
  • decode (bool, padrão True) — Se deve decodificar os dados da sequência. Se False, retorna o dicionário subjacente no formato {"path": path, "bytes": bytes}.

Experimental. Feature de BioSequence para ler registros de sequências biológicas de um arquivo de sequência.

Um arquivo de sequência contém um ou mais registros de resíduos com seus identificadores e anotações. FASTA, FASTQ e GenBank têm a mesma forma nesse nível, diferindo apenas no parser utilizado, portanto format seleciona o parser em vez do tipo.

Input: O recurso BioSequence aceita como entrada:

  • Uma str: caminho absoluto para o arquivo de sequência (ou seja, o acesso aleatório é permitido).

  • Um pathlib.Path: caminho para o arquivo de sequência (ou seja, o acesso aleatório é permitido).

  • Um dict com as chaves:

    • path: String com o caminho relativo do arquivo de sequência em um repositório de dataset.
    • bytes: Bytes do arquivo de sequência. Isso é útil para arquivos arquivados com acesso sequencial.
  • Um Bio.SeqRecord.SeqRecord: registro de sequência do biopython.

Exemplos:

>>> 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

Parâmetros

  • storage (Union[pa.StringArray, pa.StructArray]) — Array do PyArrow para converter.

Retorna

pa.StructArray

Array no tipo de armazenamento arrow BioSequence, ou seja, pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Converte um array Arrow para o tipo de armazenamento arrow BioSequence. Os tipos Arrow que podem ser convertidos para o tipo de armazenamento pyarrow BioSequence são:

  • pa.string() - deve conter os dados de “path”
  • pa.binary() - deve conter os bytes do arquivo
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - a ordem não importa

decode_example

< >

( value: dicttoken_per_repo_id = None )

Parâmetros

  • value (str ou dict) — Uma string com o caminho absoluto do arquivo, ou um dicionário com as chaves:
    • path: String com o caminho do arquivo absoluto ou relativo.
    • bytes: Os bytes do arquivo.
  • token_per_repo_id (dict, opcional) — Para acessar e decodificar arquivos de repositórios privados no Hub, você pode passar um dicionário repo_id (str) -> token (bool ou str).

Decodifique o arquivo de sequência de exemplo em um registro do biopython.

Um arquivo pode conter muitos registros; isso retorna o primeiro, pois uma linha é um registro. Use os carregadores de sequência empacotados para expandir um arquivo com múltiplos registros em uma linha por registro.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Parâmetros

  • storage (pa.StructArray) — Array PyArrow para incorporar.
  • token_per_repo_id (dict, opcional) — Dicionário repo_id -> token para buscar os bytes dos arquivos.
  • local_files (bool, padrão True) — Se os dados de arquivos locais devem ser incorporados no array.
  • remote_files (bool, padrão True) — Se os dados de arquivos remotos devem ser incorporados no array.

Retorna

pa.StructArray

Array no tipo de armazenamento arrow BioSequence.

Incorpore os arquivos de sequência no array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('SeqRecord')] )

Parâmetros

  • value (str, bytes, Bio.SeqRecord.SeqRecord ou dict) — Dados passados como entrada para o recurso BioSequence.

Codifique o exemplo em um formato para Arrow.

flatten

< >

( )

Se estiver no estado decodificável, retorne o próprio recurso; caso contrário, achate o recurso em um dicionário.

BioStructure

classe datasets.BioStructure

< >

( format: str = 'pdb'decode: bool = Trueid: typing.Optional[str] = None )

Parâmetros

  • format (str, padrão "pdb") — Formato da estrutura, seja "pdb" ou "mmcif".
  • decode (bool, padrão True) — Se deve decodificar os dados da estrutura. Se False, retorna o dicionário subjacente no formato {"path": path, "bytes": bytes}.

Experimental. O recurso Feature do BioStructure para ler estruturas de macromoléculas de um arquivo de estrutura.

Um arquivo de estrutura contém as coordenadas tridimensionais dos átomos de uma molécula, agrupados em cadeias e resíduos. PDB e mmCIF descrevem os mesmos objetos e diferem apenas no parser utilizado, portanto format seleciona o parser em vez do tipo.

Input: O recurso BioStructure aceita como entrada:

  • Uma str: caminho absoluto para o arquivo de estrutura (ou seja, o acesso aleatório é permitido).

  • Um pathlib.Path: caminho para o arquivo de estrutura (ou seja, o acesso aleatório é permitido).

  • Um dict com as chaves:

    • path: String com o caminho relativo do arquivo de estrutura em um repositório de dataset.
    • bytes: Bytes do arquivo de estrutura. Isso é útil para arquivos arquivados com acesso sequencial.
  • Uma Bio.PDB.Structure.Structure: estrutura do biopython.

Exemplos:

>>> 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

Parâmetros

  • storage (Union[pa.StringArray, pa.StructArray]) — Array do PyArrow para converter.

Retorna

pa.StructArray

Array no tipo de armazenamento arrow BioStructure, ou seja, pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Converte um array Arrow para o tipo de armazenamento arrow do BioStructure. Os tipos Arrow que podem ser convertidos para o tipo de armazenamento pyarrow do BioStructure são:

  • pa.string() - deve conter os dados de “path”
  • pa.binary() - deve conter os bytes do arquivo
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - a ordem não importa

decode_example

< >

( value: dicttoken_per_repo_id = None )

Parâmetros

  • value (str ou dict) — Uma string com o caminho absoluto do arquivo, ou um dicionário com as chaves:
    • path: String com o caminho do arquivo absoluto ou relativo.
    • bytes: Os bytes do arquivo.
  • token_per_repo_id (dict, opcional) — Para acessar e decodificar arquivos de repositórios privados no Hub, você pode passar um dicionário repo_id (str) -> token (bool ou str).

Decodifique o arquivo de exemplo de estrutura em uma estrutura biopython.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

Parâmetros

  • storage (pa.StructArray) — Array PyArrow para incorporar.
  • token_per_repo_id (dict, opcional) — Dicionário repo_id -> token para buscar os bytes dos arquivos.
  • local_files (bool, padrão True) — Se os dados de arquivos locais devem ser incorporados no array.
  • remote_files (bool, padrão True) — Se os dados de arquivos remotos devem ser incorporados no array.

Retorna

pa.StructArray

Array no tipo de armazenamento arrow do BioStructure.

Incorpore os arquivos de estrutura no array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('Structure')] )

Parâmetros

  • value (str, bytes, Bio.PDB.Structure.Structure ou dict) — Dados passados como entrada para o recurso BioStructure.

Codifique o exemplo em um formato para Arrow.

flatten

< >

( )

Se estiver no estado decodificável, retorne o próprio recurso; caso contrário, achate o recurso em um dicionário.

Sistemas de arquivos

datasets.filesystems.is_remote_filesystem

< >

( fs: AbstractFileSystem )

Parâmetros

  • fs (fsspec.spec.AbstractFileSystem) — Uma superclasse abstrata para sistemas de arquivos pythonic, por exemplo, fsspec.filesystem('file') ou s3fs.S3FileSystem.

Verifica se fs é um sistema de arquivos remoto.

Impressão digital

classe datasets.fingerprint.Hasher

< >

( )

Hasher que aceita objetos Python como entradas.

Update on GitHub