Datasets documentation

Kelas utama

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Kelas utama

DatasetInfo

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

Parameter

  • description (str) β€” Deskripsi dari dataset.
  • citation (str) β€” Kutipan BibTeX dari dataset.
  • homepage (str) β€” URL ke halaman utama resmi untuk dataset.
  • license (str) β€” Lisensi dataset. Bisa berupa nama lisensi atau paragraf yang berisi ketentuan lisensi.
  • features (Features, opsional) β€” Fitur yang digunakan untuk menentukan tipe kolom dataset.
  • post_processed (PostProcessedInfo, opsional) β€” Tidak didukung lagi. Informasi mengenai sumber daya untuk kemungkinan pascapemrosesan dataset. Misalnya, dapat berisi informasi tentang indeks.
  • supervised_keys (SupervisedKeysData, opsional) β€” Menentukan fitur input dan label untuk pembelajaran terawasi jika berlaku untuk dataset (legacy dari TFDS).
  • builder_name (str, opsional) β€” Nama dari subclass GeneratorBasedBuilder yang digunakan untuk membuat dataset. Ini juga merupakan versi snake_case dari nama kelas pembangun dataset.
  • config_name (str, opsional) β€” Nama konfigurasi yang diturunkan dari BuilderConfig.
  • version (str atau Version, opsional) β€” Versi dari dataset.
  • splits (dict, opsional) β€” Pemetaan antara nama split dan metadata.
  • download_checksums (dict, opsional) β€” Pemetaan antara URL untuk mengunduh checksum dataset dan metadata yang bersesuaian.
  • download_size (int, opsional) β€” Ukuran file yang akan diunduh untuk menghasilkan dataset, dalam byte.
  • post_processing_size (int, opsional) β€” Tidak didukung lagi. Ukuran dataset dalam byte setelah pascapemrosesan, jika ada.
  • dataset_size (int, opsional) β€” Ukuran gabungan dalam byte dari tabel Arrow untuk semua split.
  • size_in_bytes (int, opsional) β€” Ukuran gabungan dalam byte dari semua file yang terkait dengan dataset (file yang diunduh + file Arrow).
  • **config_kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang akan diteruskan ke BuilderConfig dan digunakan dalam DatasetBuilder.

Informasi tentang dataset.

DatasetInfo mendokumentasikan dataset, termasuk nama, versi, dan fiturnya. Lihat argumen konstruktor dan properti untuk daftar lengkap.

Tidak semua field diketahui saat konstruksi dan dapat diperbarui kemudian.

from_directory

< >

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

Parameter

  • dataset_info_dir (str) β€” Direktori yang berisi file metadata. Ini harus menjadi direktori root dari versi dataset tertentu.
  • storage_options (dict, opsional) β€” Pasangan kunci/nilai yang akan diteruskan ke backend sistem file, jika ada.

    Ditambahkan di 2.9.0

Buat DatasetInfo dari file JSON di dataset_info_dir.

Fungsi ini memperbarui semua field yang dihasilkan secara dinamis (num_examples, hash, waktu pembuatan,…) dari DatasetInfo.

Hal ini akan menimpa semua metadata sebelumnya.

Contoh:

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

Parameter

  • dataset_info_dir (str) β€” Direktori tujuan.
  • pretty_print (bool, defaultnya False) β€” Jika True, JSON akan dicetak dengan rapi (pretty-printed) dengan tingkat indentasi 4.
  • storage_options (dict, opsional) β€” Pasangan kunci/nilai yang akan diteruskan ke backend sistem file, jika ada.

    Ditambahkan di 2.9.0

Tulis DatasetInfo dan lisensi (jika ada) sebagai file JSON ke dataset_info_dir.

Contoh:

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

Dataset

Kelas dasar Dataset mengimplementasikan Dataset yang didukung oleh tabel Apache Arrow.

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

Dataset yang didukung oleh tabel 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 )

Parameter

  • name (str) β€” Nama kolom.
  • column (list atau np.array) β€” Data kolom yang akan ditambahkan.
  • feature (FeatureType atau None, default None) β€” Tipe data kolom.

Tambahkan kolom ke Dataset.

Ditambahkan di 1.7

Contoh:

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

Parameter

  • item (dict) β€” Data yang akan ditambahkan.

Tambahkan item ke Dataset.

Ditambahkan di 1.7

Contoh:

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

Parameter

  • filename (str) β€” Nama file dari dataset.
  • info (DatasetInfo, opsional) β€” Informasi dataset, seperti deskripsi, sitasi, dll.
  • split (NamedSplit, opsional) β€” Nama dari split dataset.
  • indices_filename (str, opsional) β€” Nama file dari indeks.
  • in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.

Instansiasi Dataset yang didukung oleh tabel Arrow di filename.

from_buffer

< >

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

Parameter

  • buffer (pyarrow.Buffer) β€” Buffer Arrow.
  • info (DatasetInfo, opsional) β€” Informasi dataset, seperti deskripsi, sitasi, dll.
  • split (NamedSplit, opsional) β€” Nama dari split dataset.
  • indices_buffer (pyarrow.Buffer, opsional) β€” Buffer Arrow untuk indeks.

Instansiasi Dataset yang didukung oleh 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 )

Parameter

  • df (pandas.DataFrame) β€” Dataframe yang berisi dataset.
  • features (Features, opsional) β€” Fitur dataset.
  • info (DatasetInfo, opsional) β€” Informasi dataset, seperti deskripsi, sitasi, dll.
  • split (NamedSplit, opsional) β€” Nama dari split dataset.
  • preserve_index (bool, opsional) β€” Apakah indeks akan disimpan sebagai kolom tambahan dalam Dataset yang dihasilkan. Nilai default None akan menyimpan indeks sebagai kolom, kecuali untuk RangeIndex yang hanya disimpan sebagai metadata. Gunakan preserve_index=True untuk memaksa indeks disimpan sebagai kolom.

Konversi pandas.DataFrame menjadi pyarrow.Table untuk membuat Dataset.

Tipe kolom dalam Tabel Arrow yang dihasilkan disimpulkan dari dtype dari pandas.Series dalam DataFrame. Untuk Series non-object, dtype NumPy diterjemahkan ke padanan Arrow-nya. Untuk object, kita perlu menebak tipe data dengan melihat objek Python dalam Series ini.

Perhatikan bahwa Series dengan dtype object tidak membawa informasi yang cukup untuk selalu menghasilkan tipe Arrow yang bermakna. Dalam kasus di mana tipe tidak dapat disimpulkan, misalnya karena DataFrame memiliki panjang 0 atau Series hanya berisi objek None/nan, tipe akan diatur ke null. Perilaku ini dapat dihindari dengan membuat fitur secara eksplisit dan meneruskannya ke fungsi ini.

Penting: dataset yang dibuat dengan from_pandas() berada di memori dan oleh karena itu tidak memiliki direktori cache yang terkait. Hal ini mungkin berubah di masa depan, tetapi sementara itu, jika Anda ingin mengurangi penggunaan memori, Anda sebaiknya menuliskannya kembali ke disk dan memuatnya ulang menggunakan, misalnya, save_to_disk / load_from_disk.

Contoh:

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

Parameter

  • mapping (Mapping) β€” Pemetaan string ke Array atau daftar Python.
  • features (Features, opsional) β€” Fitur dataset.
  • info (DatasetInfo, opsional) β€” Informasi dataset, seperti deskripsi, sitasi, dll.
  • split (NamedSplit, opsional) β€” Nama dari split dataset.
  • on_mixed_types (Literal["use_json"], opsional, defaultnya None) β€” Jika "use_json", gunakan tipe Json() untuk field bertipe campuran, yaitu field tidak terstruktur yang berisi data tanpa skema yang didefinisikan sebelumnya. Dalam kasus ini, field dengan tipe campuran diatur ke Json().

    Hal ini memungkinkan pemuatan daftar dengan campuran string/integer/float, misalnya, atau kamus dengan tipe nilai yang arbitrer.

    Ditambahkan dalam 4.7.0

Konversi dict menjadi pyarrow.Table untuk membuat Dataset.

Penting: dataset yang dibuat dengan from_dict() berada di memori dan oleh karena itu tidak memiliki direktori cache yang terkait. Hal ini mungkin berubah di masa depan, tetapi sementara itu, jika Anda ingin mengurangi penggunaan memori, Anda sebaiknya menuliskannya kembali ke disk dan memuatnya ulang menggunakan, misalnya, save_to_disk / load_from_disk.

Contoh:

Dapatkan Dataset dari kamus yang berisi satu daftar per kolom:

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

Lewatkan fitur untuk mengatur tipe kolom, misalnya untuk dataset gambar:

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

Datasets didasarkan pada Arrow, yaitu format kolom, sehingga setiap contoh diharapkan memiliki tipe dan sub-tipe yang sama, serta kamus harus memiliki kunci dan tipe nilai yang sama. Memuat dataset akan menghasilkan error jika field memiliki tipe yang tidak cocok, dan mengisi field yang hilang dalam kamus dengan None sehingga semua kamus memiliki kunci dan tipe nilai yang sama.

Untuk menghindari hal ini dan memungkinkan tipe campuran tanpa error, Anda dapat menggunakan on_mixed_types="use_json" atau menentukan features= dengan tipe 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"}]

Hal ini juga berguna untuk daftar kamus dengan kunci dan nilai yang sembarang, untuk menghindari pengisian bidang yang hilang dengan 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

Contoh lain dengan data pemanggilan alat:

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

Parameter

  • mapping (List[dict]) β€” Daftar pemetaan string ke nilai baris.
  • features (Features, opsional) β€” Fitur dataset.
  • info (DatasetInfo, opsional) β€” Informasi dataset, seperti deskripsi, sitasi, dll.
  • split (NamedSplit, opsional) β€” Nama split dataset.
  • on_mixed_types (Literal["use_json"], opsional, defaultnya None) β€” Jika "use_json", gunakan tipe Json() untuk field bertipe campuran, yaitu field tidak terstruktur yang berisi data tanpa skema yang didefinisikan sebelumnya. Dalam kasus ini, field dengan tipe campuran diatur ke Json().

    Hal ini memungkinkan pemuatan daftar dengan campuran string/integer/float, misalnya, atau kamus dengan tipe nilai yang arbitrer.

    Ditambahkan dalam 4.7.0

Konversi daftar dict menjadi pyarrow.Table untuk membuat Dataset`

Perhatikan bahwa kunci dari entri pertama akan digunakan untuk menentukan kolom dataset, terlepas dari apa yang diteruskan ke features.

Penting: dataset yang dibuat dengan from_list() berada di memori dan oleh karena itu tidak memiliki direktori cache yang terkait. Hal ini mungkin berubah di masa depan, tetapi sementara itu, jika Anda ingin mengurangi penggunaan memori, Anda sebaiknya menuliskannya kembali ke disk dan memuatnya ulang menggunakan, misalnya, save_to_disk / load_from_disk.

Contoh:

Dapatkan Dataset dari daftar yang berisi contoh:

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

Lewatkan fitur untuk mengatur tipe kolom, misalnya untuk dataset gambar:

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

Datasets didasarkan pada Arrow, yaitu format kolom, sehingga setiap contoh diharapkan memiliki tipe dan sub-tipe yang sama, serta kamus harus memiliki kunci dan tipe nilai yang sama. Memuat dataset akan menghasilkan error jika field memiliki tipe yang tidak cocok, dan mengisi field yang hilang dalam kamus dengan None sehingga semua kamus memiliki kunci dan tipe nilai yang sama.

Untuk menghindari hal ini dan memungkinkan tipe campuran tanpa error, Anda dapat menggunakan on_mixed_types="use_json" atau menentukan features= dengan tipe 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"}]

Hal ini juga berguna untuk daftar kamus dengan kunci dan nilai yang sembarang, untuk menghindari pengisian bidang yang hilang dengan 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

Contoh lain dengan data pemanggilan alat:

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

Parameter

  • generator ( β€”Callable): Fungsi generator yang yields contoh.
  • features (Features, opsional) β€” Fitur dataset.
  • cache_dir (str, opsional, default "~/.cache/huggingface/datasets") β€” Direktori untuk meng-cache data.
  • keep_in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.
  • gen_kwargs(dict, opsional) β€” Argumen kata kunci yang akan diteruskan ke callable generator. Anda dapat mendefinisikan dataset yang dipartisi dengan meneruskan daftar shard di gen_kwargs dan mengatur num_proc lebih besar dari 1.
  • num_proc (int, opsional, defaultnya None) β€” Jumlah proses saat mengunduh dan menghasilkan dataset secara lokal. Ini berguna jika dataset terdiri dari beberapa file. Multiprocessing dinonaktifkan secara default. Jika num_proc lebih besar dari satu, maka semua nilai list di gen_kwargs harus memiliki panjang yang sama. Nilai-nilai ini akan dibagi di antara panggilan ke generator. Jumlah shard akan menjadi nilai minimum dari list terpendek di gen_kwargs dan num_proc.

    Ditambahkan di 2.7.0

  • split (NamedSplit, default ke Split.TRAIN) β€” Nama split yang akan ditugaskan ke dataset.

    Ditambahkan dalam 2.21.0

  • fingerprint (str, opsional) β€” Fingerprint yang akan digunakan untuk menghasilkan ID dataset. Secara default fingerprint dihasilkan dengan melakukan hashing pada fungsi generator dan semua argumen, yang dapat menjadi lambat jika menggunakan objek besar seperti model AI.

    Ditambahkan dalam 4.3.0

  • **kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang akan diteruskan ke :GeneratorConfig.

Buat Dataset dari generator.

Muat data dari generator, simpan data dalam format Arrow di disk, dan kembalikan Dataset dari data Arrow yang dipetakan ke memori di disk.

Contoh:

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

data

< >

( )

Tabel Apache Arrow yang mendasari dataset.

Contoh:

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

< >

( )

Berkas cache yang berisi tabel Apache Arrow yang mendasari dataset.

Contoh:

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

< >

( )

Jumlah kolom dalam dataset.

Contoh:

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

num_rows

< >

( )

Jumlah baris dalam dataset (sama dengan Dataset.len()).

Contoh:

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

column_names

< >

( )

Nama kolom dalam dataset.

Contoh:

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

bentuk

< >

( )

Bentuk dataset (jumlah kolom, jumlah baris).

Contoh:

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

unik

< >

( column: str ) β†’ list

Parameter

  • column (str) β€” Nama kolom (daftar semua nama kolom dengan column_names).

Mengembalikan

list

Daftar elemen unik di kolom yang diberikan.

Kembalikan daftar elemen unik dalam kolom.

Hal ini diimplementasikan di backend tingkat rendah dan karenanya, sangat cepat.

Contoh:

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

Parameter

  • new_fingerprint (str, opsional) β€” Fingerprint baru dari dataset setelah transformasi. Jika None, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya dan argumen transformasi.

Mengembalikan

Dataset

Salinan dataset dengan kolom yang diratakan.

Ratakan tabel. Setiap kolom dengan tipe struct diratakan menjadi satu kolom per field struct. Kolom lainnya tidak diubah.

Contoh:

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

Parameter

  • features (Features) β€” Fitur baru untuk mengubah tipe dataset. Nama field dalam fitur harus cocok dengan nama kolom saat ini. Tipe data juga harus dapat dikonversi dari satu tipe ke tipe lainnya. Untuk konversi yang tidak sederhana, misalnya str <-> ClassLabel, gunakan map() untuk memperbarui Dataset.
  • batch_size (int, defaultnya 1000) β€” Jumlah contoh per batch yang diberikan ke cast. Jika batch_size <= 0 atau batch_size == None, maka berikan seluruh dataset sebagai satu batch ke cast.
  • keep_in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.
  • load_from_cache_file (bool, defaultnya True jika caching diaktifkan) β€” Jika file cache yang menyimpan komputasi saat ini dari function dapat diidentifikasi, gunakan file tersebut alih-alih menghitung ulang.
  • cache_file_name (str, opsional, defaultnya None) β€” Berikan nama path untuk file cache. Ini digunakan untuk menyimpan hasil komputasi alih-alih nama file cache yang dihasilkan secara otomatis.
  • writer_batch_size (int, defaultnya 1000) β€” Jumlah baris per operasi penulisan untuk penulis file cache. Nilai ini merupakan kompromi yang baik antara penggunaan memori selama pemrosesan dan kecepatan pemrosesan. Nilai yang lebih tinggi membuat pemrosesan melakukan lebih sedikit pencarian, sedangkan nilai yang lebih rendah mengonsumsi memori sementara yang lebih sedikit saat menjalankan map().
  • num_proc (int, opsional, defaultnya None) β€” Jumlah proses untuk multiprocessing. Secara default, multiprocessing tidak digunakan.

Mengembalikan

Dataset

Salinan dataset dengan fitur yang telah di-cast.

Cast dataset ke set fitur baru.

Contoh:

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

Parameter

  • column (str) β€” Nama kolom.
  • feature (FeatureType) β€” Fitur target.
  • new_fingerprint (str, opsional) β€” Fingerprint baru dari dataset setelah transformasi. Jika None, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya dan argumen transformasi.

Cast kolom ke fitur untuk decoding.

Contoh:

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

Parameter

  • column_names (Union[str, List[str]]) β€” Nama kolom yang akan dihapus.
  • new_fingerprint (str, opsional) β€” Fingerprint baru dari dataset setelah transformasi. Jika None, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya dan argumen transformasi.

Mengembalikan

Dataset

Salinan objek dataset tanpa kolom yang akan dihapus.

Hapus satu atau beberapa kolom dalam dataset beserta fitur yang terkait dengannya.

Anda juga dapat menghapus kolom menggunakan map() dengan remove_columns, tetapi metode yang ada tidak menyalin data dari kolom yang tersisa sehingga lebih cepat.

Contoh:

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

Parameter

  • original_column_name (str) β€” Nama kolom yang akan diganti namanya.
  • new_column_name (str) β€” Nama baru untuk kolom.
  • new_fingerprint (str, opsional) β€” Fingerprint baru dari dataset setelah transformasi. Jika None, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya dan argumen transformasi.

Mengembalikan

Dataset

Salinan dataset dengan kolom yang namanya diubah.

Ganti nama kolom dalam dataset, dan pindahkan fitur yang terkait dengan kolom asli ke bawah nama kolom baru.

Contoh:

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

Parameter

  • column_mapping (Dict[str, str]) β€” Pemetaan kolom untuk diubah namanya menjadi nama baru
  • new_fingerprint (str, opsional) β€” Fingerprint baru dari dataset setelah transformasi. Jika None, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya dan argumen transformasi.

Mengembalikan

Dataset

Salinan dataset dengan kolom yang namanya diubah

Ganti nama beberapa kolom dalam dataset, dan pindahkan fitur yang terkait dengan kolom asli ke bawah nama kolom baru.

Contoh:

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

Parameter

  • column_names (Union[str, List[str]]) β€” Nama kolom yang akan dipertahankan.
  • new_fingerprint (str, opsional) β€” Fingerprint baru dari dataset setelah transformasi. Jika None, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya, dan argumen transformasi.

Mengembalikan

Dataset

Salinan objek dataset yang hanya terdiri dari kolom-kolom yang dipilih.

Pilih satu atau beberapa kolom dalam dataset dan fitur yang terkait dengannya.

Contoh:

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

Parameter

  • column (str) β€” Nama kolom yang akan di-cast (daftar semua nama kolom dengan column_names)
  • include_nulls (bool, defaultnya False) β€” Apakah nilai null akan disertakan dalam label kelas. Jika True, nilai null akan dikodekan sebagai label kelas "None" .

    Ditambahkan dalam 1.14.2

Mencast kolom yang diberikan sebagai ClassLabel dan memperbarui tabel.

Contoh:

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

< >

( )

Jumlah baris dalam dataset.

Contoh:

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

< >

( )

Iterasi melalui contoh-contoh.

Jika format diatur dengan Dataset.set_format(), baris akan dikembalikan dengan format yang dipilih.

iter

< >

( batch_size: intdrop_last_batch: bool = False )

Parameter

  • batch_size (int) β€” ukuran setiap batch yang dihasilkan.
  • drop_last_batch (bool, default False) β€” Apakah batch terakhir yang lebih kecil dari batch_size harus dibuang

Iterasi melalui batch berukuran batch_size.

Jika format diatur dengan [~datasets.Dataset.set_format], baris akan dikembalikan dengan format yang dipilih.

formatted_as

< >

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

Parameter

  • type (str, opsional) β€” Jenis output yang dipilih dari [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None berarti `getitemβ€œ mengembalikan objek python (default).
  • columns (List[str], opsional) β€” Kolom yang akan diformat dalam output. None berarti __getitem__ mengembalikan semua kolom (default).
  • output_all_columns (bool, defaultnya False) β€” Juga simpan kolom yang tidak diformat dalam output (sebagai objek python).
  • **format_kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang diteruskan ke fungsi konversi seperti np.array, torch.tensor atau tensorflow.ragged.constant.

Digunakan dalam pernyataan with. Atur format pengembalian __getitem__ (tipe dan kolom).

set_format

< >

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

Parameter

  • type (str, opsional) β€” Jenis output yang dipilih dari [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None berarti __getitem__ mengembalikan objek python (default).
  • columns (List[str], opsional) β€” Kolom yang akan diformat dalam output. None berarti __getitem__ mengembalikan semua kolom (default).
  • output_all_columns (bool, defaultnya False) β€” Juga simpan kolom yang tidak diformat dalam output (sebagai objek python).
  • **format_kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang diteruskan ke fungsi konversi seperti np.array, torch.tensor atau tensorflow.ragged.constant.

Set format pengembalian __getitem__ (tipe dan kolom). Pemformatan data diterapkan secara langsung (on-the-fly). Format type (misalnya β€œnumpy”) digunakan untuk memformat batch saat menggunakan __getitem__. Anda juga dapat menggunakan transform kustom untuk pemformatan dengan set_transform().

Memang memungkinkan untuk memanggil map() setelah memanggil set_format. Karena map dapat menambahkan kolom baru, maka daftar kolom yang diformat

akan diperbarui. Dalam kasus ini, jika Anda menerapkan map pada dataset untuk menambahkan kolom baru, maka kolom ini akan diformat sebagai:

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

Contoh:

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

Parameter

  • transform (Callable, opsional) β€” Transform format yang didefinisikan pengguna, menggantikan format yang didefinisikan oleh set_format(). Fungsi format adalah callable yang menerima batch (sebagai dict) sebagai input dan mengembalikan batch. Fungsi ini diterapkan tepat sebelum mengembalikan objek di __getitem__.
  • columns (List[str], opsional) β€” Kolom yang akan diformat dalam output. Jika ditentukan, maka batch input dari transform hanya berisi kolom-kolom tersebut.
  • output_all_columns (bool, defaultnya False) β€” Simpan juga kolom yang tidak diformat dalam output (sebagai objek python). Jika diset ke True, maka kolom-kolom lain yang tidak diformat akan disimpan bersama output dari transform.

Set format pengembalian __getitem__ menggunakan transform ini. Transform diterapkan secara on-the-fly pada batch ketika __getitem__ dipanggil. Sama seperti set_format(), ini dapat direset menggunakan reset_format().

Contoh:

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

< >

( )

Reset format pengembalian __getitem__ ke objek python dan semua kolom.

Sama seperti self.set_format()

Contoh:

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

Parameter

  • type (str, opsional) β€” Jenis output yang dipilih dari [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None berarti __getitem__ mengembalikan objek python (default).
  • columns (List[str], opsional) β€” Kolom yang akan diformat dalam output. None berarti __getitem__ mengembalikan semua kolom (default).
  • output_all_columns (bool, defaultnya False) β€” Juga simpan kolom yang tidak diformat dalam output (sebagai objek python).
  • **format_kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang diteruskan ke fungsi konversi seperti np.array, torch.tensor atau tensorflow.ragged.constant.

Set format pengembalian __getitem__ (tipe dan kolom). Pemformatan data diterapkan secara langsung (on-the-fly). Format type (misalnya β€œnumpy”) digunakan untuk memformat batch saat menggunakan __getitem__.

Anda juga dapat menggunakan transform kustom untuk format menggunakan with_transform().

Berbeda dengan set_format(), with_format mengembalikan objek Dataset baru.

Contoh:

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

Parameter

  • transform (Callable, optional) β€” Transform format yang didefinisikan pengguna, menggantikan format yang didefinisikan oleh set_format(). Fungsi format adalah callable yang menerima batch (sebagai dict) sebagai input dan mengembalikan batch. Fungsi ini diterapkan tepat sebelum mengembalikan objek di __getitem__.
  • columns (List[str], optional) β€” Kolom yang akan diformat dalam output. Jika ditentukan, maka batch input dari transform hanya berisi kolom-kolom tersebut.
  • output_all_columns (bool, defaultnya False) β€” Simpan juga kolom yang tidak diformat dalam output (sebagai objek python). Jika diset ke True, maka kolom-kolom lain yang tidak diformat akan disimpan bersama output dari transform.

Set format return __getitem__ menggunakan transform ini. Transform diterapkan secara on-the-fly pada batch saat __getitem__ dipanggil.

Seperti set_format(), ini dapat direset menggunakan reset_format().

Berbeda dengan set_transform(), with_transform mengembalikan objek Dataset baru.

Contoh:

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

Dapat digunakan untuk mengindeks kolom (dengan nama string) atau baris (dengan indeks integer atau iterable dari indeks atau bool).

cleanup_cache_files

< >

( ) β†’ int

Mengembalikan

int

Jumlah file yang dihapus.

Bersihkan semua file cache di direktori cache dataset, kecuali file cache yang sedang digunakan jika ada.

Hati-hati saat menjalankan perintah ini agar tidak ada proses lain yang sedang menggunakan file cache lainnya.

Contoh:

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

Parameter

  • function (Callable) β€” Fungsi dengan salah satu dari signature berikut:
    • function(example: Dict[str, Any]) -> Dict[str, Any] jika batched=False dan with_indices=False dan with_rank=False
    • function(example: Dict[str, Any], *extra_args) -> Dict[str, Any] jika batched=False dan with_indices=True dan/atau with_rank=True (satu argumen tambahan untuk masing-masing)
    • function(batch: Dict[str, List]) -> Dict[str, List] jika batched=True dan with_indices=False dan with_rank=False
    • function(batch: Dict[str, List], *extra_args) -> Dict[str, List] jika batched=True dan with_indices=True dan/atau with_rank=True (satu argumen tambahan untuk masing-masing)

    Untuk penggunaan lanjutan, fungsi juga dapat mengembalikan pyarrow.Table. Jika fungsi bersifat asinkron, maka map akan menjalankan fungsi Anda secara paralel. Selain itu, jika fungsi Anda tidak mengembalikan apa pun (None), maka map akan menjalankan fungsi Anda dan mengembalikan dataset tanpa perubahan. Jika tidak ada fungsi yang diberikan, gunakan fungsi identitas sebagai default: lambda x: x.

  • with_indices (bool, defaultnya False) β€” Berikan indeks contoh ke function. Perhatikan bahwa dalam kasus ini, signature dari function harus berupa def function(example, idx[, rank]): ....
  • with_rank (bool, defaultnya False) β€” Berikan rank proses ke function. Perhatikan bahwa dalam kasus ini, signature dari function harus berupa def function(example[, idx], rank): ....
  • input_columns (Optional[Union[str, List[str]]], defaultnya None) β€” Kolom yang akan diteruskan ke function sebagai argumen posisional. Jika None, sebuah dict yang memetakan ke semua kolom terformat akan diteruskan sebagai satu argumen.
  • batched (bool, defaultnya False) β€” Berikan batch contoh ke function.
  • batch_size (int, opsional, defaultnya 1000) β€” Jumlah contoh per batch yang diberikan ke function jika batched=True. Jika batch_size <= 0 atau batch_size == None, berikan seluruh dataset sebagai satu batch ke function.
  • drop_last_batch (bool, defaultnya False) β€” Apakah batch terakhir yang lebih kecil dari batch_size harus dibuang alih-alih diproses oleh fungsi.
  • remove_columns (Optional[Union[str, List[str]]], defaultnya None) β€” Hapus pilihan kolom saat melakukan pemetaan. Kolom akan dihapus sebelum memperbarui contoh dengan output dari function, yaitu jika function menambahkan kolom dengan nama yang ada di remove_columns, kolom-kolom ini akan tetap dipertahankan.
  • keep_in_memory (bool, defaultnya False) β€” Simpan dataset di memori alih-alih menuliskannya ke file cache.
  • load_from_cache_file (Optional[bool], defaultnya True jika caching diaktifkan) β€” Jika file cache yang menyimpan komputasi saat ini dari function dapat diidentifikasi, gunakan file tersebut alih-alih menghitung ulang.
  • cache_file_name (str, opsional, defaultnya None) β€” Berikan nama path untuk file cache. Ini digunakan untuk menyimpan hasil komputasi alih-alih nama file cache yang dihasilkan secara otomatis.
  • writer_batch_size (int, defaultnya 1000) β€” Jumlah baris per operasi penulisan untuk penulis file cache. Nilai ini merupakan kompromi yang baik antara penggunaan memori selama pemrosesan dan kecepatan pemrosesan. Nilai yang lebih tinggi membuat pemrosesan melakukan lebih sedikit pencarian, sedangkan nilai yang lebih rendah mengonsumsi memori sementara yang lebih sedikit saat menjalankan map.
  • features (Optional[datasets.Features], defaultnya None) β€” Gunakan Features tertentu untuk menyimpan file cache alih-alih yang dihasilkan secara otomatis.
  • disable_nullable (bool, defaultnya False) β€” Larang nilai null dalam tabel.
  • fn_kwargs (Dict, opsional, default None) β€” Argumen kata kunci yang akan diteruskan ke function.
  • num_proc (int, opsional, defaultnya None) β€” Jumlah proses yang digunakan untuk multiprocessing. Jika None atau 0, multiprocessing tidak digunakan dan operasi dijalankan di proses utama. Jika lebih dari 1, satu atau beberapa proses worker digunakan untuk memproses data secara paralel. Catatan: Fungsi yang diteruskan ke map() harus dapat di-pickle agar multiprocessing berfungsi dengan benar (yaitu, lebih baik gunakan fungsi yang didefinisikan di tingkat atas modul, bukan di dalam fungsi atau kelas lain).
    • Jika None atau 0, multiprocessing tidak digunakan dan operasi dijalankan di proses utama.
    • 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, opsional, defaultnya None) β€” Fingerprint baru dari dataset setelah transformasi. Jika None, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya dan argumen transformasi.
  • desc (str, opsional, defaultnya None) β€” Deskripsi bermakna yang akan ditampilkan berdampingan dengan progress bar saat memetakan contoh.
  • try_original_type (Optional[bool], defaultnya True) β€” Coba pertahankan tipe dari kolom asli (mis. int32 -> int32). Atur ke False jika Anda ingin selalu menyimpulkan tipe baru.
  • on_mixed_types (Literal["use_json"], opsional, defaultnya None) β€” Jika "use_json", gunakan tipe Json() untuk field bertipe campuran, yaitu field tidak terstruktur yang berisi data tanpa skema yang didefinisikan sebelumnya. Dalam kasus ini, field dengan tipe campuran diatur ke Json().

    Hal ini memungkinkan pemuatan daftar dengan campuran string/integer/float, misalnya, atau kamus dengan tipe nilai yang arbitrer.

    Ditambahkan dalam 4.7.0

Terapkan fungsi ke semua contoh dalam tabel (secara individual atau dalam batch) dan perbarui tabel. Jika fungsi Anda mengembalikan kolom yang sudah ada, maka kolom tersebut akan ditimpa.

Anda dapat menentukan apakah fungsi harus di-batch atau tidak dengan parameter batched:

  • Jika False, maka fungsi tersebut menerima 1 contoh dan harus mengembalikan 1 contoh. Sebuah contoh adalah sebuah kamus, misalnya {"text": "Hello there !"}.
  • Jika True dan batch_size adalah 1, maka fungsi mengambil batch berisi 1 contoh sebagai input dan dapat mengembalikan batch berisi 1 atau lebih contoh. Sebuah batch adalah kamus, misalnya batch berisi 1 contoh adalah {"text": ["Hello there !"]}.
  • Jika True dan batch_size adalah n > 1, maka fungsi tersebut mengambil batch berisi n contoh sebagai input dan dapat mengembalikan batch berisi n contoh, atau dengan jumlah contoh yang sembarang. Perhatikan bahwa batch terakhir mungkin memiliki kurang dari n contoh. Sebuah batch adalah kamus, misalnya batch berisi n contoh adalah {"text": ["Hello there !"] * n}.

Jika fungsi bersifat asinkron, maka map akan menjalankan fungsi Anda secara paralel, dengan hingga seribu panggilan simultan. Disarankan untuk menggunakan asyncio.Semaphore di dalam fungsi Anda jika Anda ingin menetapkan jumlah maksimum operasi yang dapat berjalan pada saat yang sama.

Contoh:

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

filter

< >

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

Parameter

  • function (Callable) β€” Callable dengan salah satu dari signature berikut:
    • function(example: Dict[str, Any]) -> bool jika batched=False dan with_indices=False dan with_rank=False
    • function(example: Dict[str, Any], *extra_args) -> bool jika batched=False dan with_indices=True dan/atau with_rank=True (satu argumen tambahan untuk masing-masing)
    • function(batch: Dict[str, List]) -> List[bool] jika batched=True dan with_indices=False dan with_rank=False
    • function(batch: Dict[str, List], *extra_args) -> List[bool] jika batched=True dan with_indices=True dan/atau with_rank=True (satu argumen tambahan untuk masing-masing)

    Jika fungsi bersifat asinkron, maka filter akan menjalankan fungsi Anda secara paralel. Jika tidak ada fungsi yang diberikan, secara default menggunakan fungsi yang selalu True: lambda x: True.

  • with_indices (bool, defaultnya False) β€” Berikan indeks contoh ke function. Perhatikan bahwa dalam kasus ini, signature dari function harus berupa def function(example, idx[, rank]): ....
  • with_rank (bool, defaultnya False) β€” Berikan rank proses ke function. Perhatikan bahwa dalam kasus ini, signature dari function harus berupa def function(example[, idx], rank): ....
  • input_columns (str atau List[str], opsional) β€” Kolom yang akan diteruskan ke function sebagai argumen posisional. Jika None, sebuah dict yang memetakan ke semua kolom terformat akan diteruskan sebagai satu argumen.
  • batched (bool, defaultnya False) β€” Berikan batch contoh ke function.
  • batch_size (int, opsional, defaultnya 1000) β€” Jumlah contoh per batch yang diberikan ke function jika batched = True. Jika batched = False, satu contoh per batch diteruskan ke function. Jika batch_size <= 0 atau batch_size == None, berikan seluruh dataset sebagai satu batch ke function.
  • keep_in_memory (bool, defaultnya False) β€” Simpan dataset di memori alih-alih menuliskannya ke file cache.
  • load_from_cache_file (Optional[bool], defaultnya True jika caching diaktifkan) β€” Jika file cache yang menyimpan komputasi saat ini dari function dapat diidentifikasi, gunakan file tersebut alih-alih menghitung ulang.
  • cache_file_name (str, opsional) β€” Berikan nama path untuk file cache. Ini digunakan untuk menyimpan hasil komputasi alih-alih nama file cache yang dihasilkan secara otomatis.
  • writer_batch_size (int, defaultnya 1000) β€” Jumlah baris per operasi penulisan untuk penulis file cache. Nilai ini merupakan kompromi yang baik antara penggunaan memori selama pemrosesan dan kecepatan pemrosesan. Nilai yang lebih tinggi membuat pemrosesan melakukan lebih sedikit pencarian, sedangkan nilai yang lebih rendah mengonsumsi memori sementara yang lebih sedikit saat menjalankan map.
  • fn_kwargs (dict, opsional) β€” Argumen kata kunci yang akan diteruskan ke function.
  • num_proc (int, opsional, defaultnya None) β€” Jumlah proses yang digunakan untuk multiprocessing. Jika None atau 0, multiprocessing tidak digunakan dan operasi dijalankan di proses utama. Jika lebih dari 1, satu atau beberapa proses worker digunakan untuk memproses data secara paralel. Catatan: Fungsi yang diteruskan ke map() harus dapat di-pickle agar multiprocessing berfungsi dengan benar (yaitu, lebih baik gunakan fungsi yang didefinisikan di tingkat atas modul, bukan di dalam fungsi atau kelas lain).
    • Jika None atau 0, multiprocessing tidak digunakan dan operasi dijalankan di proses utama.
    • Jika lebih besar dari 1, satu atau beberapa proses worker digunakan untuk memproses data secara paralel. Catatan: Fungsi yang diteruskan ke map() harus dapat di-pickle agar multiprocessing dapat bekerja dengan benar (yaitu, lebih disukai fungsi yang didefinisikan di tingkat atas modul, bukan di dalam fungsi atau kelas lain).
  • suffix_template (str) β€” Jika cache_file_name ditentukan, maka sufiks ini akan ditambahkan di akhir nama dasar dari masing-masing file. Sebagai contoh, jika cache_file_name adalah "processed.arrow", maka untuk rank = 1 dan num_proc = 4, file yang dihasilkan akan menjadi "processed_00001_of_00004.arrow" untuk sufiks default (default _{rank:05d}_of_{num_proc:05d}).
  • new_fingerprint (str, opsional) β€” Fingerprint baru dari dataset setelah transformasi. Jika None, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya dan argumen transformasi.
  • desc (str, opsional, defaultnya None) β€” Deskripsi bermakna yang akan ditampilkan berdampingan dengan bilah kemajuan saat memfilter contoh.

Terapkan fungsi filter pada semua elemen dalam tabel secara batch dan perbarui tabel sehingga dataset hanya mencakup contoh sesuai dengan fungsi filter.

Jika fungsi bersifat asinkron, maka filter akan menjalankan fungsi Anda secara paralel, dengan hingga seribu panggilan simultan (dapat dikonfigurasi). Disarankan untuk menggunakan asyncio.Semaphore di fungsi Anda jika Anda ingin menetapkan jumlah maksimum operasi yang dapat berjalan pada saat yang sama.

Contoh:

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

pilih

< >

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

Parameter

  • indices (range, list, iterable, ndarray atau Series) β€” Rentang, daftar, atau array 1D berisi indeks integer untuk pengindeksan. Jika indeks tersebut membentuk rentang yang berurutan, tabel Arrow cukup dipotong (sliced). Namun, jika Anda meneruskan daftar indeks yang tidak berurutan, pemetaan indeks akan dibuat, yang jauh kurang efisien, tetapi tetap lebih cepat daripada membuat ulang tabel Arrow yang terdiri dari baris yang diminta.
  • keep_in_memory (bool, defaultnya False) β€” Simpan pemetaan indeks di memori alih-alih menuliskannya ke file cache.
  • indices_cache_file_name (str, opsional, defaultnya None) β€” Berikan nama path untuk file cache. Ini digunakan untuk menyimpan pemetaan indeks alih-alih nama file cache yang dihasilkan secara otomatis.
  • writer_batch_size (int, defaultnya 1000) β€” Jumlah baris per operasi penulisan untuk penulis file cache. Nilai ini merupakan kompromi yang baik antara penggunaan memori selama pemrosesan dan kecepatan pemrosesan. Nilai yang lebih tinggi membuat pemrosesan melakukan lebih sedikit pencarian, sedangkan nilai yang lebih rendah mengonsumsi memori sementara yang lebih sedikit saat menjalankan map.
  • new_fingerprint (str, opsional, defaultnya None) β€” Fingerprint baru dari dataset setelah transformasi. Jika None, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya dan argumen transformasi.

Buat dataset baru dengan baris yang dipilih mengikuti daftar/array indeks.

Contoh:

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

Parameter

  • column_names (Union[str, Sequence[str]]) β€” Nama kolom untuk diurutkan.
  • reverse (Union[bool, Sequence[bool]], defaultnya False) β€” Jika True, urutkan berdasarkan urutan menurun, bukan menaik. Jika satu bool diberikan, nilainya diterapkan pada pengurutan semua nama kolom. Selain itu, daftar bool dengan panjang dan urutan yang sama seperti column_names harus diberikan.
  • null_placement (str, defaultnya at_end) β€” Letakkan None nilai at_start atau first atau di akhir jika at_end atau last

    Ditambahkan dalam 1.14.2

  • keep_in_memory (bool, defaultnya False) β€” Simpan indeks yang telah diurutkan di memori alih-alih menuliskannya ke file cache.
  • load_from_cache_file (Optional[bool], defaultnya True jika caching diaktifkan) β€” Jika file cache yang menyimpan indeks terurut dapat diidentifikasi, gunakan file tersebut alih-alih menghitung ulang.
  • indices_cache_file_name (str, opsional, defaultnya None) β€” Berikan nama path untuk file cache. Ini digunakan untuk menyimpan indeks yang telah diurutkan alih-alih nama file cache yang dihasilkan secara otomatis.
  • writer_batch_size (int, defaultnya 1000) β€” Jumlah baris per operasi penulisan untuk penulis file cache. Nilai yang lebih tinggi menghasilkan file cache yang lebih kecil, sedangkan nilai yang lebih rendah menggunakan memori sementara yang lebih sedikit.
  • new_fingerprint (str, opsional, defaultnya None) β€” Fingerprint baru dari dataset setelah transformasi. Jika None, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya, dan argumen transformasi

Buat dataset baru yang diurutkan berdasarkan satu atau beberapa kolom.

Contoh:

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

Parameter

  • seed (int, opsional) β€” Seed untuk menginisialisasi BitGenerator default jika generator=None. Jika None, maka entropi baru yang tidak dapat diprediksi akan diambil dari OS. Jika int atau array_like[ints] diberikan, maka nilai tersebut akan diteruskan ke SeedSequence untuk menurunkan state BitGenerator awal.
  • generator (numpy.random.Generator, opsional) β€” Generator acak Numpy yang digunakan untuk menghitung permutasi baris dataset. Jika generator=None (default), menggunakan np.random.default_rng (BitGenerator default (PCG64) dari NumPy).
  • keep_in_memory (bool, default False) β€” Simpan indeks yang diacak di memori alih-alih menuliskannya ke file cache.
  • load_from_cache_file (Optional[bool], defaultnya True jika caching diaktifkan) β€” Jika file cache yang menyimpan indeks acak dapat diidentifikasi, gunakan file tersebut alih-alih menghitung ulang.
  • indices_cache_file_name (str, opsional) β€” Berikan nama path untuk file cache. Ini digunakan untuk menyimpan indeks yang diacak alih-alih nama file cache yang dihasilkan secara otomatis.
  • writer_batch_size (int, defaultnya 1000) β€” Jumlah baris per operasi penulisan untuk penulis file cache. Nilai ini merupakan kompromi yang baik antara penggunaan memori selama pemrosesan dan kecepatan pemrosesan. Nilai yang lebih tinggi membuat pemrosesan melakukan lebih sedikit pencarian, sedangkan nilai yang lebih rendah mengonsumsi memori sementara yang lebih sedikit saat menjalankan map.
  • new_fingerprint (str, opsional, defaultnya None) β€” Fingerprint baru dari dataset setelah transformasi. Jika None, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya dan argumen transformasi.

Buat Dataset baru di mana barisnya diacak.

Saat ini, pengacakan menggunakan generator acak numpy. Anda dapat menyediakan NumPy BitGenerator untuk digunakan, atau seed untuk menginisiasi generator acak default NumPy (PCG64).

Shuffling mengambil daftar indeks [0:len(my_dataset)] dan mengacaknya untuk membuat pemetaan indeks. Namun, begitu Dataset Anda memiliki pemetaan indeks, kecepatannya bisa menjadi 10 kali lebih lambat. Hal ini terjadi karena ada langkah tambahan untuk mendapatkan indeks baris yang akan dibaca menggunakan pemetaan indeks, dan yang paling penting, Anda tidak lagi membaca potongan data yang berurutan. Untuk memulihkan kecepatan, Anda perlu menulis ulang seluruh dataset ke disk Anda lagi menggunakan Dataset.flatten_indices(), yang menghapus pemetaan indeks.

Namun, ini mungkin membutuhkan waktu yang lama tergantung pada ukuran dataset Anda:

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

Dalam kasus ini, kami merekomendasikan untuk beralih ke IterableDataset dan memanfaatkan metode pengacakan aproksimasi cepatnya IterableDataset.shuffle().

Fungsinya hanya mengacak urutan shard dan menambahkan buffer pengacakan ke dataset Anda, yang menjaga kecepatan dataset Anda tetap optimal:

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

Contoh:

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

lewati

< >

( n: int )

Parameter

  • n (int) β€” Jumlah elemen yang dilewati.

Buat Dataset baru yang melewati n elemen pertama.

Contoh:

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

ambil

< >

( n: int )

Parameter

  • n (int) β€” Jumlah elemen yang diambil.

Buat Dataset baru dengan hanya elemen pertama n.

Contoh:

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

Parameter

  • test_size (Union[float, int, None], opsional) β€” Ukuran bagian uji Jika float, nilainya harus berada di antara 0.0 dan 1.0 dan mewakili proporsi dataset yang akan dimasukkan ke dalam bagian uji. Jika int, mewakili jumlah absolut sampel uji. Jika None, nilainya diatur menjadi komplemen dari ukuran train. Jika train_size juga None, nilainya akan diatur ke 0.25.
  • train_size (Union[float, int, None], opsional) β€” Ukuran split train Jika float, nilainya harus berada di antara 0.0 dan 1.0 dan mewakili proporsi dataset yang akan dimasukkan ke dalam split train. Jika int, mewakili jumlah absolut sampel train. Jika None, nilainya diatur secara otomatis menjadi komplemen dari ukuran test.
  • shuffle (bool, opsional, default True) β€” Apakah data akan diacak sebelum dipecah.
  • stratify_by_column (str, opsional, defaultnya None) β€” Nama kolom label yang akan digunakan untuk melakukan pemisahan data secara stratifikasi.
  • seed (int, opsional) β€” Seed untuk menginisialisasi BitGenerator default jika generator=None. Jika None, maka entropi baru yang tidak dapat diprediksi akan diambil dari OS. Jika int atau array_like[ints] diberikan, maka nilai tersebut akan diteruskan ke SeedSequence untuk menurunkan state BitGenerator awal.
  • generator (numpy.random.Generator, opsional) β€” Generator acak Numpy yang digunakan untuk menghitung permutasi baris dataset. Jika generator=None (default), menggunakan np.random.default_rng (BitGenerator default (PCG64) dari NumPy).
  • keep_in_memory (bool, defaultnya False) β€” Simpan indeks split di memori alih-alih menuliskannya ke file cache.
  • load_from_cache_file (Optional[bool], defaultnya True jika caching diaktifkan) β€” Jika file cache yang menyimpan indeks split dapat diidentifikasi, gunakan file tersebut alih-alih menghitung ulang.
  • train_cache_file_name (str, opsional) β€” Berikan nama path untuk file cache. Ini digunakan untuk menyimpan indeks split train alih-alih nama file cache yang dihasilkan secara otomatis.
  • test_cache_file_name (str, opsional) β€” Berikan nama path untuk file cache. Ini digunakan untuk menyimpan indeks split pengujian alih-alih nama file cache yang dihasilkan secara otomatis.
  • writer_batch_size (int, defaultnya 1000) β€” Jumlah baris per operasi penulisan untuk penulis file cache. Nilai ini merupakan kompromi yang baik antara penggunaan memori selama pemrosesan dan kecepatan pemrosesan. Nilai yang lebih tinggi membuat pemrosesan melakukan lebih sedikit pencarian, sedangkan nilai yang lebih rendah mengonsumsi memori sementara yang lebih sedikit saat menjalankan map.
  • train_new_fingerprint (str, opsional, defaultnya None) β€” Fingerprint baru dari set train setelah transform. Jika None, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya, dan argumen transform
  • test_new_fingerprint (str, opsional, default None) β€” Fingerprint baru dari set pengujian setelah transformasi. Jika None, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya, dan argumen transformasi

Kembalikan sebuah kamus (datasets.DatasetDict) dengan dua subset acak untuk latih dan uji (train dan test Dataset splits). Splits dibuat dari dataset sesuai dengan test_size, train_size dan shuffle.

Metode ini mirip dengan train_test_split dari scikit-learn.

Contoh:

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

Parameter

  • num_shards (int) β€” Berapa banyak shard untuk membagi dataset.
  • index (int) β€” Shard mana yang akan dipilih dan dikembalikan.
  • contiguous β€” (bool, defaultnya True): Apakah akan memilih blok indeks yang berurutan untuk shard.
  • keep_in_memory (bool, defaultnya False) β€” Simpan dataset di memori alih-alih menuliskannya ke file cache.
  • indices_cache_file_name (str, opsional) β€” Berikan nama path untuk file cache. Ini digunakan untuk menyimpan indeks dari setiap shard alih-alih nama file cache yang dihasilkan secara otomatis.
  • writer_batch_size (int, defaultnya 1000) β€” Ini hanya berkaitan dengan pemetaan indeks. Jumlah indeks per operasi penulisan untuk penulis file cache. Nilai ini merupakan kompromi yang baik antara penggunaan memori selama pemrosesan dan kecepatan pemrosesan. Nilai yang lebih tinggi membuat pemrosesan melakukan lebih sedikit pencarian, sedangkan nilai yang lebih rendah mengonsumsi memori sementara yang lebih sedikit saat menjalankan map.

Kembalikan shard ke-index dari dataset yang dipecah menjadi num_shards bagian.

Ini melakukan pengacakan secara deterministik. dataset.shard(n, i) membagi dataset menjadi potongan-potongan yang berurutan, sehingga dapat dengan mudah digabungkan kembali setelah diproses. Jika len(dataset) % n == l, maka l dataset pertama masing-masing memiliki panjang (len(dataset) // n) + 1, dan dataset sisanya memiliki panjang (len(dataset) // n). datasets.concatenate_datasets([dset.shard(n, i) for i in range(n)]) mengembalikan dataset dengan urutan yang sama seperti aslinya.

Catatan: n harus kurang dari atau sama dengan jumlah elemen dalam dataset len(dataset).

Di sisi lain, dataset.shard(n, i, contiguous=False) berisi semua elemen dataset yang indeksnya mod n = i.

Pastikan untuk melakukan sharding sebelum menggunakan operator acak (seperti shuffle). Sebaiknya operator sharding digunakan di awal pipeline dataset.

Contoh:

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

Parameter

  • num_times (int) β€” Jumlah pengulangan dataset.

Buat Dataset baru yang mengulang dataset dasar sebanyak num_times kali.

Seperti itertools.repeat, mengulang satu kali hanya mengembalikan dataset penuh.

Contoh:

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

Parameter

  • batch_size (int, opsional) β€” Ukuran batch yang akan dimuat dari dataset. Nilainya secara default adalah None, yang berarti dataset tidak akan di-batch, tetapi dataset yang dikembalikan dapat di-batch kemudian dengan tf_dataset.batch(batch_size).
  • columns (List[str] atau str, opsional) β€” Kolom dataset yang akan dimuat ke dalam tf.data.Dataset. Nama kolom yang dibuat oleh collate_fn dan tidak ada di dataset asli dapat digunakan.
  • shuffle(bool, defaultnya False) β€” Acak urutan dataset saat dimuat. Disarankan True untuk pelatihan, False untuk validasi/evaluasi.
  • drop_remainder(bool, defaultnya False) β€” Buang batch terakhir yang tidak lengkap saat memuat. Memastikan bahwa semua batch yang dihasilkan oleh dataset akan memiliki panjang yang sama pada dimensi batch.
  • collate_fn(Callable, opsional) β€” Fungsi atau objek callable (seperti DataCollator) yang akan menggabungkan daftar sampel menjadi satu batch.
  • collate_fn_args (Dict, opsional) β€” dict opsional berisi argumen kata kunci yang akan diteruskan ke collate_fn.
  • label_cols (List[str] atau str, default None) β€” Kolom dataset yang dimuat sebagai label. Perhatikan bahwa banyak model menghitung loss secara internal alih-alih membiarkan Keras melakukannya, sehingga melewatkan label di sini bersifat opsional, selama label tersebut ada di columns input.
  • prefetch (bool, defaultnya True) β€” Apakah menjalankan dataloader di thread terpisah dan mempertahankan buffer kecil berisi batch untuk pelatihan. Meningkatkan kinerja dengan memungkinkan data dimuat di latar belakang saat model sedang dilatih.
  • num_workers (int, defaultnya 0) β€” Jumlah worker yang digunakan untuk memuat dataset.
  • num_test_batches (int, defaultnya 20) β€” Jumlah batch yang digunakan untuk menyimpulkan tanda tangan (signature) output dari dataset. Semakin tinggi angka ini, semakin akurat tanda tangannya, tetapi semakin lama waktu yang dibutuhkan untuk membuat dataset.

Buat tf.data.Dataset dari Dataset yang mendasarinya. tf.data.Dataset ini akan memuat dan mengolasi batch dari Dataset, dan cocok untuk diteruskan ke metode seperti model.fit() atau model.predict(). Dataset akan menghasilkan dicts untuk input dan label, kecuali jika dict hanya berisi satu kunci, di mana tf.Tensor mentah akan dihasilkan sebagai gantinya.

Contoh:

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

Parameter

  • repo_id (str) β€” ID repositori yang akan di-push, dalam format berikut: <user>/<dataset_name> atau <org>/<dataset_name>. Juga menerima <dataset_name>, yang secara default akan menggunakan namespace dari pengguna yang sedang login.

    Itu juga bisa menjadi lokasi di dalam bucket, misalnya buckets/<user_or_org>/<bucket_name>/...

  • config_name (str, defaultnya β€œdefault”) β€” Nama konfigurasi (atau subset) dari dataset. Defaultnya β€œdefault”.
  • set_default (bool, opsional) β€” Apakah akan menetapkan konfigurasi ini sebagai konfigurasi default. Jika tidak, konfigurasi default adalah yang bernama β€œdefault”.
  • split (str, opsional) β€” Nama split yang akan diberikan ke dataset tersebut. Bawaan adalah self.split.
  • data_dir (str, opsional) β€” Nama direktori yang akan berisi file data yang diunggah. Nilainya secara default mengikuti config_name jika berbeda dari β€œdefault”, selain itu β€œdata”.

    Ditambahkan dalam 2.17.0

  • commit_message (str, opsional) β€” Pesan untuk commit saat push. Akan default ke "Upload dataset".
  • commit_description (str, opsional) β€” Deskripsi dari commit yang akan dibuat. Selain itu, deskripsi dari PR jika PR dibuat (create_pr adalah True).

    Ditambahkan dalam 2.16.0

  • private (bool, opsional) β€” Apakah membuat repo menjadi privat. Jika None (default), repo akan menjadi publik kecuali default organisasi adalah privat. Nilai ini diabaikan jika repo sudah ada.
  • token (str, opsional) β€” Token autentikasi opsional untuk Hugging Face Hub. Jika tidak ada token yang diteruskan, akan menggunakan token yang disimpan secara lokal saat login dengan hf auth login. Akan memicu error jika tidak ada token yang diteruskan dan pengguna tidak dalam keadaan login.
  • revision (str, opsional) β€” Branch untuk mendorong file yang diunggah. Secara default menggunakan branch "main" .

    Ditambahkan dalam 2.15.0

  • create_pr (bool, opsional, defaultnya False) β€” Apakah akan membuat PR dengan file yang diunggah atau langsung melakukan commit.

    Ditambahkan dalam 2.15.0

  • max_shard_size (int atau str, opsional, default "500MB") β€” Ukuran maksimum shard dataset yang akan diunggah ke hub. Jika dinyatakan sebagai string, harus berupa angka diikuti oleh satuan (seperti "5MB").
  • num_shards (int, opsional) β€” Jumlah shard yang akan ditulis. Secara default, jumlah shard bergantung pada max_shard_size.

    Ditambahkan di 2.8.0

  • embed_external_files (bool, defaultnya True) β€” Apakah akan menyematkan byte file ke dalam shard. Secara khusus, ini akan melakukan hal berikut sebelum push untuk field bertipe:
    • Audio dan Image: hapus informasi jalur lokal dan tanamkan konten file ke dalam file Parquet.
  • num_proc (int, opsional, defaultnya None) β€” Jumlah proses saat menyiapkan dan mengunggah dataset. Ini berguna jika dataset terdiri dari banyak sampel atau file media yang akan disematkan. I menggunakan konteks β€œspawn” untuk bekerja dengan hf_xet, klien rust untuk pengunggahan cepat ke HF. Multiprocessing dinonaktifkan secara default.

    Ditambahkan dalam 4.0.0

Mendorong dataset ke hub sebagai dataset Parquet. Dataset didorong menggunakan permintaan HTTP dan tidak memerlukan instalasi git atau git-lfs.

File Parquet yang dihasilkan bersifat mandiri secara bawaan. Jika dataset Anda berisi data Image, Audio atau Video, file Parquet akan menyimpan byte dari file gambar atau audio Anda. Anda dapat menonaktifkan ini dengan mengatur embed_external_files ke False.

Contoh:

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

Jika dataset Anda memiliki beberapa split (misalnya train/validation/test):

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

Jika Anda ingin menambahkan konfigurasi baru (atau subset) ke dataset (misalnya jika dataset memiliki beberapa tugas/versi/bahasa):

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

Parameter

  • dataset_path (path-like) β€” Path (mis. dataset/train) atau URI jarak jauh (mis. s3://my-bucket/dataset/train) dari direktori dataset tempat dataset akan disimpan.
  • max_shard_size (int atau str, opsional, default "500MB") β€” Ukuran maksimum shard dataset yang akan disimpan ke filesystem. Jika dinyatakan sebagai string, harus berupa angka diikuti satuan (seperti "50MB").
  • num_shards (int, opsional) β€” Jumlah shard yang akan ditulis. Secara default, jumlah shard bergantung pada max_shard_size dan num_proc.

    Ditambahkan di 2.8.0

  • num_proc (int, opsional) β€” Jumlah proses saat mengunduh dan menghasilkan dataset secara lokal. Multiprocessing dinonaktifkan secara default.

    Ditambahkan di 2.8.0

  • storage_options (dict, opsional) β€” Pasangan kunci/nilai yang akan diteruskan ke backend sistem file, jika ada.

    Ditambahkan di 2.8.0

Menyimpan dataset ke direktori dataset, atau ke sistem file menggunakan implementasi apa pun dari fsspec.spec.AbstractFileSystem.

Untuk data Image, Audio dan Video:

Semua data Image(), Audio() dan Video() disimpan dalam file arrow. Jika Anda ingin menyimpan path atau url, silakan gunakan tipe Value(β€œstring”).

Contoh:

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

Parameter

  • dataset_path (path-like) β€” Path (mis. "dataset/train") atau URI jarak jauh (mis. "s3//my-bucket/dataset/train") dari direktori dataset tempat dataset akan dimuat.
  • keep_in_memory (bool, defaultnya None) β€” Apakah dataset akan disalin ke memori. Jika None, dataset tidak akan disalin ke memori kecuali secara eksplisit diaktifkan dengan mengatur datasets.config.IN_MEMORY_MAX_SIZE ke nilai bukan nol. Lihat detail lebih lanjut di bagian meningkatkan kinerja.
  • storage_options (dict, opsional) β€” Pasangan kunci/nilai yang akan diteruskan ke backend sistem file, jika ada.

    Ditambahkan di 2.8.0

Mengembalikan

Dataset atau DatasetDict

  • Jika dataset_path adalah path dari direktori dataset, dataset yang diminta.
  • Jika dataset_path adalah path dari direktori dataset dict, sebuah datasets.DatasetDict dengan setiap split.

Memuat dataset yang sebelumnya disimpan menggunakan save_to_disk dari direktori dataset, atau dari sistem file menggunakan implementasi apa pun dari fsspec.spec.AbstractFileSystem.

Contoh:

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

Parameter

  • keep_in_memory (bool, defaultnya False) β€” Simpan dataset di memori alih-alih menuliskannya ke file cache.
  • cache_file_name (str, opsional, default None) β€” Berikan nama path untuk file cache. Ini digunakan untuk menyimpan hasil komputasi alih-alih nama file cache yang dihasilkan secara otomatis.
  • writer_batch_size (int, defaultnya 1000) β€” Jumlah baris per operasi penulisan untuk penulis file cache. Nilai ini merupakan kompromi yang baik antara penggunaan memori selama pemrosesan dan kecepatan pemrosesan. Nilai yang lebih tinggi membuat pemrosesan melakukan lebih sedikit pencarian, sedangkan nilai yang lebih rendah mengonsumsi memori sementara yang lebih sedikit saat menjalankan map.
  • features (Optional[datasets.Features], defaultnya None) β€” Gunakan Features tertentu untuk menyimpan file cache alih-alih yang dihasilkan secara otomatis.
  • disable_nullable (bool, defaultnya False) β€” Izinkan nilai null dalam tabel.
  • num_proc (int, opsional, default None) β€” Jumlah maksimum proses saat menghasilkan cache. Shard yang sudah di-cache dimuat secara berurutan
  • new_fingerprint (str, opsional, defaultnya None) β€” Fingerprint baru dari dataset setelah transformasi. Jika None, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya, dan argumen transformasi

Buat dan simpan Dataset baru dengan meratakan pemetaan indeks.

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

Parameter

  • path_or_buf (PathLike atau FileOrBuffer) β€” Bisa berupa path ke file (mis. file.csv), URI remote (mis. hf://datasets/username/my_dataset_name/data.csv), atau BinaryIO, tempat dataset akan disimpan dalam format yang ditentukan.
  • batch_size (int, opsional) β€” Ukuran batch yang dimuat ke memori dan ditulis sekaligus. Nilai defaultnya adalah datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • num_proc (int, opsional) β€” Jumlah proses untuk multiprocessing. Secara default, multiprocessing tidak digunakan. batch_size dalam hal ini secara default menjadi datasets.config.DEFAULT_MAX_BATCH_SIZE tetapi silakan ubah menjadi 5x atau 10x dari nilai default jika Anda memiliki daya komputasi yang memadai.
  • storage_options (dict, opsional) β€” Pasangan kunci/nilai yang akan diteruskan ke backend sistem file, jika ada.

    Ditambahkan dalam 2.19.0

  • **to_csv_kwargs (argumen kata kunci tambahan) β€” Parameter untuk diteruskan ke pandas.DataFrame.to_csv.

    Berubah di 2.10.0

    Sekarang, index secara default menjadi False jika tidak ditentukan.

    Jika Anda ingin menulis indeks, berikan index=True dan juga atur nama untuk kolom indeks dengan memberikan index_label.

Mengembalikan

int

Jumlah karakter atau byte yang ditulis.

Mengekspor dataset ke csv

Contoh:

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

to_pandas

< >

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

Parameter

  • batch_size (int, opsional) β€” Ukuran (jumlah baris) dari batch jika batched adalah True. Nilai defaultnya adalah datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • batched (bool) β€” Atur ke True untuk mengembalikan generator yang menghasilkan dataset dalam bentuk batch berisi batch_size baris. Defaultnya False (mengembalikan seluruh dataset sekaligus).

Mengembalikan dataset sebagai pandas.DataFrame. Dapat juga mengembalikan generator untuk dataset besar.

Contoh:

>>> ds.to_pandas()

to_dict

< >

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

Parameter

  • batch_size (int, opsional) β€” Ukuran (jumlah baris) dari batch jika batched adalah True. Nilai defaultnya adalah datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • batched (bool) β€” Atur ke True untuk mengembalikan generator yang menghasilkan dataset dalam bentuk batch berisi batch_size baris. Defaultnya False (mengembalikan seluruh dataset sekaligus).

Mengembalikan dataset sebagai dict Python. Dapat juga mengembalikan generator untuk dataset besar.

Contoh:

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

Parameter

  • path_or_buf (PathLike atau FileOrBuffer) β€” Bisa berupa path ke file (mis. file.json), URI remote (mis. hf://datasets/username/my_dataset_name/data.json), atau BinaryIO, tempat dataset akan disimpan dalam format yang ditentukan.
  • batch_size (int, opsional) β€” Ukuran batch yang dimuat ke memori dan ditulis sekaligus. Nilai defaultnya adalah datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • num_proc (int, opsional) β€” Jumlah proses untuk multiprocessing. Secara default, tidak menggunakan multiprocessing. batch_size dalam hal ini secara default menjadi datasets.config.DEFAULT_MAX_BATCH_SIZE tetapi silakan ubah menjadi 5x atau 10x dari nilai default jika Anda memiliki daya komputasi yang memadai.
  • storage_options (dict, opsional) β€” Pasangan kunci/nilai yang akan diteruskan ke backend sistem file, jika ada.

    Ditambahkan dalam 2.19.0

  • **to_json_kwargs (argumen kata kunci tambahan) β€” Parameter untuk diteruskan ke pandas.DataFrame.to_json. Argumen default adalah lines=True dan `orient=β€œrecords”.

    Berubah di 2.11.0

    Parameter index secara default menjadi False jika orient adalah "split" atau "table".

    Jika Anda ingin menulis indeks, berikan index=True.

Mengembalikan

int

Jumlah karakter atau byte yang ditulis.

Ekspor dataset ke JSON Lines atau JSON.

Format output default adalah JSON Lines. Untuk mengekspor ke JSON, berikan argumen lines=False dan orient yang diinginkan.

Contoh:

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

Parameter

  • path_or_buf (PathLike atau FileOrBuffer) β€” Bisa berupa path ke file (mis. file.parquet), URI remote (mis. hf://datasets/username/my_dataset_name/data.parquet), atau BinaryIO, tempat dataset akan disimpan dalam format yang ditentukan.
  • batch_size (int, opsional) β€” Ukuran batch yang dimuat ke memori dan ditulis sekaligus. Secara default, tujuannya adalah grup baris dengan ukuran byte tidak terkompresi maksimum β€œ100MB”, yang didefinisikan oleh datasets.config.MAX_ROW_GROUP_SIZE.
  • storage_options (dict, opsional) β€” Pasangan kunci/nilai yang akan diteruskan ke backend sistem file, jika ada.

    Ditambahkan dalam 2.19.0

  • **parquet_writer_kwargs (argumen kata kunci tambahan) β€” Parameter untuk diteruskan ke pyarrow.parquet.ParquetWriter dari PyArrow.

Mengembalikan

int

Jumlah karakter atau byte yang ditulis.

Mengekspor dataset ke parquet

Contoh:

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

Parameter

  • name (str) β€” Nama tabel SQL.
  • con (str atau sqlite3.Connection atau sqlalchemy.engine.Connection atau sqlalchemy.engine.Connection) β€” String URI atau objek koneksi SQLite3/SQLAlchemy yang digunakan untuk menulis ke database.
  • batch_size (int, opsional) β€” Ukuran batch yang dimuat ke memori dan ditulis sekaligus. Nilai defaultnya adalah datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • num_proc (int, opsional) β€” Jumlah proses untuk multiprocessing. Secara default, tidak menggunakan multiprocessing. batch_size dalam hal ini secara default menjadi datasets.config.DEFAULT_MAX_BATCH_SIZE tetapi silakan ubah menjadi 5x atau 10x dari nilai default jika Anda memiliki daya komputasi yang memadai.
  • **sql_writer_kwargs (argumen kata kunci tambahan) β€” Parameter untuk diteruskan ke pandas.DataFrame.to_sql.

    Berubah di 2.11.0

    Sekarang, index secara default menjadi False jika tidak ditentukan.

    Jika Anda ingin menulis indeks, berikan index=True dan juga atur nama untuk kolom indeks dengan memberikan index_label.

Mengembalikan

int

Jumlah rekaman yang ditulis.

Mengekspor dataset ke basis data SQL.

Contoh:

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

Parameter

  • num_shards (int, default to 1) β€” Jumlah shard yang akan didefinisikan saat menginstansiasi dataset iterable. Hal ini sangat berguna untuk dataset besar agar shuffle dapat dilakukan dengan benar, dan juga untuk memungkinkan pemuatan paralel yang cepat menggunakan PyTorch DataLoader atau dalam setup terdistribusi, misalnya. Shard didefinisikan menggunakan datasets.Dataset.shard(): proses ini hanya memotong data tanpa menulis apa pun ke disk.

Dapatkan datasets.IterableDataset dari datasets.Dataset bergaya peta. Ini setara dengan memuat dataset dalam mode streaming dengan datasets.load_dataset(), tetapi jauh lebih cepat karena data dialirkan dari file lokal.

Berbeda dengan dataset bergaya peta, dataset iterable bersifat malas (lazy) dan hanya dapat diiterasi (misalnya menggunakan perulangan for). Karena dibaca secara berurutan dalam perulangan pelatihan, dataset iterable jauh lebih cepat daripada dataset bergaya peta. Semua transformasi yang diterapkan pada dataset iterable, seperti penyaringan atau pemrosesan, dilakukan secara langsung (on-the-fly) saat Anda mulai mengiterasi dataset.

Meskipun demikian, masih dimungkinkan untuk mengacak dataset iterable menggunakan datasets.IterableDataset.shuffle(). Ini adalah pengacakan aproksimasi yang cepat dan bekerja paling baik jika Anda memiliki beberapa shard dan jika Anda menentukan ukuran buffer yang cukup besar.

Untuk mendapatkan performa kecepatan terbaik, pastikan dataset Anda tidak memiliki pemetaan indeks. Jika memang demikian, data tidak dibaca secara berurutan, yang terkadang dapat memperlambat proses. Anda dapat menggunakan ds = ds.flatten_indices() untuk menulis dataset Anda dalam potongan data yang berurutan dan memiliki kecepatan optimal sebelum beralih ke dataset iterable.

Contoh:

Penggunaan dasar:

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

Dengan penyaringan dan pemrosesan yang malas:

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

Dengan sharding untuk memungkinkan pengacakan (shuffling) yang efisien:

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

Dengan PyTorch DataLoader:

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

Dengan PyTorch DataLoader dan pengacakan:

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

Dalam setup terdistribusi seperti PyTorch DDP dengan PyTorch DataLoader dan pengacakan

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

Dengan pengacakan dan beberapa epoch:

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

Parameter

  • column (str) β€” Kolom dari vektor yang akan ditambahkan ke indeks.
  • index_name (str, opsional) β€” index_name/pengenal dari indeks. Ini adalah index_name yang digunakan untuk memanggil get_nearest_examples() atau search(). Secara default, ini sesuai dengan column.
  • device (Union[int, List[int]], opsional) β€” Jika bilangan bulat positif, ini adalah indeks GPU yang akan digunakan. Jika bilangan bulat negatif, gunakan semua GPU. Jika daftar bilangan bulat positif diberikan, jalankan hanya pada GPU tersebut. Secara default, menggunakan CPU.
  • string_factory (str, opsional) β€” Ini diteruskan ke index factory dari Faiss untuk membuat index. Kelas index default adalah IndexFlat.
  • metric_type (int, opsional) β€” Jenis metrik. Contoh: faiss.METRIC_INNER_PRODUCT atau faiss.METRIC_L2.
  • custom_index (faiss.Index, opsional) β€” Indeks Faiss kustom yang sudah Anda instansiasi dan konfigurasikan sesuai kebutuhan Anda.
  • batch_size (int) β€” Ukuran batch yang digunakan saat menambahkan vektor ke FaissIndex. Nilai defaultnya adalah 1000.

    Ditambahkan di 2.4.0

  • train_size (int, opsional) β€” Jika indeks memerlukan langkah pelatihan, menentukan berapa banyak vektor yang akan digunakan untuk melatih indeks.
  • faiss_verbose (bool, defaultnya False) β€” Aktifkan tingkat detail (verbosity) dari indeks Faiss.
  • dtype (data-type) β€” dtype dari array numpy yang diindeks. Default adalah np.float32.

Tambahkan indeks padat menggunakan Faiss untuk pengambilan data yang cepat. Secara default, indeks dibuat berdasarkan vektor dari kolom yang ditentukan. Anda dapat menentukan device jika ingin menjalankannya di GPU (device harus berupa indeks GPU). Anda dapat menemukan informasi lebih lanjut tentang Faiss di sini:

Contoh:

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

Parameter

  • external_arrays (np.array) β€” Jika Anda ingin menggunakan array dari luar lib untuk index, Anda dapat mengatur external_arrays. Ini akan menggunakan external_arrays untuk membuat index Faiss alih-alih array di column yang diberikan.
  • index_name (str) β€” index_name/pengenal dari indeks. Ini adalah index_name yang digunakan untuk memanggil get_nearest_examples() atau search().
  • device (Opsional Union[int, List[int]], optional) β€” Jika bilangan bulat positif, ini adalah indeks GPU yang akan digunakan. Jika bilangan bulat negatif, gunakan semua GPU. Jika daftar bilangan bulat positif diberikan, jalankan hanya pada GPU tersebut. Secara default, menggunakan CPU.
  • string_factory (str, opsional) β€” Ini diteruskan ke index factory dari Faiss untuk membuat index. Kelas index default adalah IndexFlat.
  • metric_type (int, opsional) β€” Jenis metrik. Contoh: faiss.faiss.METRIC_INNER_PRODUCT atau faiss.METRIC_L2.
  • custom_index (faiss.Index, opsional) β€” Indeks Faiss kustom yang sudah Anda instansiasi dan konfigurasikan sesuai kebutuhan Anda.
  • batch_size (int, opsional) β€” Ukuran batch yang digunakan saat menambahkan vektor ke FaissIndex. Nilai default adalah 1000.

    Ditambahkan di 2.4.0

  • train_size (int, opsional) β€” Jika indeks memerlukan langkah pelatihan, menentukan berapa banyak vektor yang akan digunakan untuk melatih indeks.
  • faiss_verbose (bool, defaultnya False) β€” Aktifkan tingkat detail (verbosity) dari indeks Faiss.
  • dtype (numpy.dtype) β€” dtype dari array numpy yang diindeks. Default adalah np.float32.

Tambahkan indeks padat menggunakan Faiss untuk pengambilan data yang cepat. Indeks dibuat menggunakan vektor dari external_arrays. Anda dapat menentukan device jika ingin menjalankannya di GPU (device harus berupa indeks GPU). Anda dapat menemukan informasi lebih lanjut tentang Faiss di sini:

save_faiss_index

< >

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

Parameter

  • index_name (str) β€” index_name/identifier dari index. Ini adalah index_name yang digunakan untuk memanggil .get_nearest atau .search.
  • file (str) β€” Path ke indeks faiss yang diserialisasi di disk atau URI jarak jauh (mis. "s3://my-bucket/index.faiss").
  • storage_options (dict, opsional) β€” Pasangan kunci/nilai yang akan diteruskan ke backend sistem file, jika ada.

    Ditambahkan dalam 2.11.0

Simpan FaissIndex di disk.

load_faiss_index

< >

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

Parameter

  • index_name (str) β€” index_name/identifier dari index. Ini adalah index_name yang digunakan untuk memanggil .get_nearest atau .search.
  • file (str) β€” Path ke indeks faiss yang diserialisasi di disk atau URI jarak jauh (mis. "s3://my-bucket/index.faiss").
  • device (Opsional Union[int, List[int]]) β€” Jika bilangan bulat positif, ini adalah indeks GPU yang akan digunakan. Jika bilangan bulat negatif, gunakan semua GPU. Jika daftar bilangan bulat positif diberikan, jalankan hanya pada GPU tersebut. Secara default, menggunakan CPU.
  • storage_options (dict, opsional) β€” Pasangan kunci/nilai yang akan diteruskan ke backend sistem file, jika ada.

    Ditambahkan dalam 2.11.0

Muat FaissIndex dari disk.

Jika Anda ingin melakukan konfigurasi tambahan, Anda dapat mengakses objek indeks faiss dengan melakukan .get_index(index_name).faiss_index agar sesuai dengan kebutuhan Anda.

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 )

Parameter

  • column (str) β€” Kolom dari dokumen yang akan ditambahkan ke indeks.
  • index_name (str, opsional) β€” index_name/pengenal dari indeks. Ini adalah nama indeks yang digunakan untuk memanggil get_nearest_examples() atau search(). Secara default, ini sesuai dengan column.
  • host (str, opsional, default localhost) β€” Host tempat ElasticSearch berjalan.
  • port (str, opsional, default 9200) β€” Port tempat ElasticSearch berjalan.
  • es_client (elasticsearch.Elasticsearch, opsional) β€” Klien elasticsearch yang digunakan untuk membuat indeks jika host dan port adalah None.
  • es_index_name (str, opsional) β€” Nama indeks elasticsearch yang digunakan untuk membuat indeks.
  • es_index_config (dict, opsional) β€” Konfigurasi dari indeks elasticsearch. Konfigurasi default adalah:

Tambahkan indeks teks menggunakan ElasticSearch untuk pengambilan data yang cepat. Hal ini dilakukan secara in-place.

Contoh:

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

Parameter

  • index_name (str) β€” index_name/pengenal dari indeks. Ini adalah nama indeks yang digunakan untuk memanggil get_nearest atau search.
  • es_index_name (str) β€” Nama indeks elasticsearch yang akan dimuat.
  • host (str, opsional, default localhost) β€” Host tempat ElasticSearch berjalan.
  • port (str, opsional, default 9200) β€” Port tempat ElasticSearch berjalan.
  • es_client (elasticsearch.Elasticsearch, opsional) β€” Klien elasticsearch yang digunakan untuk membuat indeks jika host dan port adalah None.
  • es_index_config (dict, opsional) β€” Konfigurasi dari indeks elasticsearch. Konfigurasi default adalah:

Muat indeks teks yang sudah ada menggunakan ElasticSearch untuk pengambilan data yang cepat.

list_indexes

< >

( )

Daftarkan colindex_nameumns/identitas dari semua indeks yang terlampir.

get_index

< >

( index_name: str )

Parameter

  • index_name (str) β€” Nama indeks.

Daftarkan index_name/identitas dari semua indeks yang terlampir.

drop_index

< >

( index_name: str )

Parameter

  • index_name (str) β€” index_name/pengenal dari indeks.

Hapus indeks dengan kolom yang ditentukan.

cari

< >

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

Parameter

  • index_name (str) β€” Nama/identitas dari indeks.
  • query (Union[str, np.ndarray]) β€” Query sebagai string jika index_name adalah indeks teks, atau sebagai array numpy jika index_name adalah indeks vektor.
  • k (int) β€” Jumlah contoh yang akan diambil.

Mengembalikan

(scores, indices)

Tuple dari (scores, indices) di mana:

  • scores (List[List[float]): skor pengambilan dari FAISS (IndexFlatL2 secara default) atau ElasticSearch untuk contoh yang diambil
  • indices (List[List[int]]): indeks dari contoh yang diambil

Temukan indeks contoh terdekat dalam dataset terhadap kueri.

search_batch

< >

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

Parameter

  • index_name (str) β€” index_name/pengenal dari indeks.
  • queries (Union[List[str], np.ndarray]) β€” Queries sebagai daftar string jika index_name adalah indeks teks, atau sebagai array numpy jika index_name adalah indeks vektor.
  • k (int) β€” Jumlah contoh yang akan diambil per kueri.

Mengembalikan

(total_scores, total_indices)

Tuple dari (total_scores, total_indices) di mana:

  • total_scores (List[List[float]): skor pengambilan dari FAISS (IndexFlatL2 secara default) atau ElasticSearch untuk setiap contoh yang diambil per kueri
  • total_indices (List[List[int]]): indeks dari contoh yang diambil per kueri

Temukan indeks contoh terdekat dalam dataset terhadap kueri.

get_nearest_examples

< >

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

Parameter

  • index_name (str) β€” index_name/identifier dari indeks.
  • query (Union[str, np.ndarray]) β€” Query sebagai string jika index_name adalah indeks teks, atau sebagai array numpy jika index_name adalah indeks vektor.
  • k (int) β€” Jumlah contoh yang akan diambil.

Mengembalikan

(scores, examples)

Tuple dari (scores, examples) di mana:

  • scores (List[float]): skor pengambilan dari FAISS (IndexFlatL2 secara default) atau ElasticSearch untuk contoh yang diambil
  • contoh (dict): contoh yang diambil

Temukan contoh terdekat dalam dataset terhadap query.

get_nearest_examples_batch

< >

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

Parameter

  • index_name (str) β€” index_name/pengenal dari indeks.
  • queries (Union[List[str], np.ndarray]) β€” Queries sebagai daftar string jika index_name adalah indeks teks, atau sebagai array numpy jika index_name adalah indeks vektor.
  • k (int) β€” Jumlah contoh yang akan diambil per kueri.

Mengembalikan

(total_scores, total_examples)

Tuple dari (total_scores, total_examples) di mana:

  • total_scores (List[List[float]): skor pengambilan dari FAISS (IndexFlatL2 secara default) atau ElasticSearch untuk setiap contoh yang diambil per kueri
  • total_examples (List[dict]): contoh yang diambil per kueri

Temukan contoh terdekat dalam dataset terhadap query.

info

< >

( )

objek DatasetInfo yang berisi semua metadata dalam dataset.

split

< >

( )

objek NamedSplit yang sesuai dengan split dataset bernama.

builder_name

< >

( )

sitasi

< >

( )

config_name

< >

( )

dataset_size

< >

( )

deskripsi

< >

( )

download_checksums

< >

( )

download_size

< >

( )

fitur

< >

( )

beranda

< >

( )

lisensi

< >

( )

size_in_bytes

< >

( )

supervised_keys

< >

( )

versi

< >

( )

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 )

Parameter

  • path_or_paths (path-like atau daftar path-like) β€” Path file CSV.
  • split (NamedSplit, opsional) β€” Nama pemisahan yang akan ditugaskan ke dataset.
  • features (Features, opsional) β€” Fitur dataset.
  • cache_dir (str, opsional, default "~/.cache/huggingface/datasets") β€” Direktori untuk meng-cache data.
  • keep_in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.
  • num_proc (int, opsional, defaultnya None) β€” Jumlah proses saat mengunduh dan menghasilkan dataset secara lokal. Ini berguna jika dataset terdiri dari beberapa file. Multiprocessing dinonaktifkan secara default.

    Ditambahkan di 2.8.0

  • **kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang akan diteruskan ke pandas.read_csv.

Buat Dataset dari file CSV.

Baca file CSV, simpan data dalam format Arrow di disk, dan kembalikan Dataset dari data Arrow yang dipetakan ke memori di disk.

Contoh:

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

Parameter

  • path_or_paths (path-like atau daftar path-like) β€” Path file JSON atau JSON Lines.
  • split (NamedSplit, opsional) β€” Nama pemisahan yang akan ditugaskan ke dataset.
  • features (Features, opsional) β€” Fitur dataset.
  • cache_dir (str, opsional, default "~/.cache/huggingface/datasets") β€” Direktori untuk meng-cache data.
  • keep_in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.
  • field (str, opsional) β€” Nama field dari file JSON tempat dataset berada.
  • num_proc (int, opsional defaultnya None) β€” Jumlah proses saat mengunduh dan menghasilkan dataset secara lokal. Ini berguna jika dataset terdiri dari beberapa file. Multiprocessing dinonaktifkan secara default.

    Ditambahkan di 2.8.0

  • **kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang akan diteruskan ke JsonConfig.

Buat Dataset dari file JSON atau JSON Lines.

Baca file JSON, simpan data dalam format Arrow di disk, dan kembalikan Dataset dari data Arrow yang dipetakan ke memori di disk.

Contoh:

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

Parameter

  • path_or_paths (path-like atau daftar path-like) β€” Path file Parquet.
  • split (NamedSplit, opsional) β€” Nama split yang akan ditugaskan ke dataset.
  • features (Features, opsional) β€” Fitur dataset.
  • cache_dir (str, opsional, default "~/.cache/huggingface/datasets") β€” Direktori untuk meng-cache data.
  • keep_in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.
  • columns (List[str], opsional) β€” Jika bukan None, hanya kolom-kolom ini yang akan dibaca dari file. Nama kolom dapat berupa prefiks dari field bersarang, misalnya β€˜a’ akan memilih β€˜a.b’, β€˜a.c’, dan β€˜a.d.e’.
  • num_proc (int, opsional, defaultnya None) β€” Jumlah proses saat mengunduh dan menghasilkan dataset secara lokal. Ini berguna jika dataset terdiri dari beberapa file. Multiprocessing dinonaktifkan secara default.

    Ditambahkan di 2.8.0

  • filters (Union[pyarrow.dataset.Expression, list[tuple], list[list[tuple]]], opsional) β€” Kembalikan hanya baris yang cocok dengan filter. Jika memungkinkan, predikat akan didorong ke bawah untuk memanfaatkan informasi partisi atau metadata internal yang ditemukan di sumber data, misalnya statistik Parquet. Jika tidak, filterkan RecordBatches yang dimuat sebelum menghasilkannya.
  • fragment_scan_options (pyarrow.dataset.ParquetFragmentScanOptions, opsional) β€” Opsi spesifik pemindaian untuk fragmen Parquet. Ini sangat berguna untuk mengonfigurasi buffering dan caching.

    Ditambahkan dalam 4.2.0

  • on_bad_files (Literal["error", "warn", "skip"], opsional, defaultnya β€œerror”) β€” Tentukan tindakan yang akan dilakukan saat menemukan file yang rusak (file yang tidak dapat dibaca). Nilai yang diizinkan adalah :
    • β€˜error’, lempar Exception ketika file yang rusak ditemui.
    • β€˜warn’, mengeluarkan peringatan ketika file yang rusak ditemukan dan melewati file tersebut.
    • β€˜skip’, lewati file yang rusak tanpa memicu atau memperingatkan saat ditemukan.

    Ditambahkan dalam 4.2.0

  • **kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang akan diteruskan ke ParquetConfig.

Buat Dataset dari file Parquet.

Baca file Parquet, simpan data dalam format Arrow di disk sebagai cache, dan kembalikan Dataset dari data Arrow yang dipetakan ke memori di disk.

Contoh:

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

Muat subset kolom:

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

Saring data secara efisien, dengan kemungkinan melewati seluruh file atau grup baris:

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

Parameter

  • path_or_paths (path-like atau daftar path-like) β€” Path file teks.
  • split (NamedSplit, opsional) β€” Nama split yang akan ditugaskan ke dataset.
  • features (Features, opsional) β€” Fitur dataset.
  • cache_dir (str, opsional, default "~/.cache/huggingface/datasets") β€” Direktori untuk meng-cache data.
  • keep_in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.
  • num_proc (int, opsional, defaultnya None) β€” Jumlah proses saat mengunduh dan menghasilkan dataset secara lokal. Ini berguna jika dataset terdiri dari beberapa file. Multiprocessing dinonaktifkan secara default.

    Ditambahkan di 2.8.0

  • keep_linebreaks β€” (bool, defaultnya False): Apakah akan mempertahankan baris baru.
  • sample_by (Literal["line", "paragraph", "document"], default β€œline”) β€” Apakah memuat data per baris, paragraf, atau dokumen. Secara default, satu baris dalam dataset = satu baris.
  • **kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang akan diteruskan ke TextConfig.

Buat Dataset dari file teks.

Baca file teks, simpan data dalam format Arrow di disk, dan kembalikan Dataset dari data Arrow yang dipetakan ke memori di disk.

Contoh:

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

Parameter

  • sql (str atau sqlalchemy.sql.Selectable) β€” Kueri SQL yang akan dieksekusi atau nama tabel.
  • con (str atau sqlite3.Connection atau sqlalchemy.engine.Connection atau sqlalchemy.engine.Connection) β€” String URI yang digunakan untuk membuat instans koneksi database atau objek koneksi SQLite3/SQLAlchemy.
  • features (Features, opsional) β€” Fitur dataset.
  • cache_dir (str, opsional, default "~/.cache/huggingface/datasets") β€” Direktori untuk meng-cache data.
  • keep_in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.
  • **kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang akan diteruskan ke SqlConfig.

Buat Dataset dari kueri SQL atau tabel database.

Kueri basis data SQL, simpan data dalam format Arrow di disk, dan kembalikan Dataset dari data Arrow yang dipetakan ke memori di disk.

Contoh:

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

Dataset yang dikembalikan hanya dapat di-cache jika con ditentukan sebagai string URI.

align_labels_with_mapping

< >

( label2id: dictlabel_column: str )

Parameter

  • label2id (dict) β€” Pemetaan nama label ke ID untuk menyelaraskan dataset.
  • label_column (str) β€” Nama kolom label yang akan diselaraskan.

Selaraskan pemetaan ID label dan nama label dataset agar sesuai dengan pemetaan label2id input. Ini berguna ketika Anda ingin memastikan bahwa label prediksi model selaras dengan dataset. Penyelarasan dilakukan menggunakan nama label huruf kecil.

Contoh:

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

Parameter

  • dsets (List[datasets.Dataset] atau List[datasets.IterableDataset]) β€” Daftar Dataset untuk digabungkan.
  • info (DatasetInfo, opsional) β€” Informasi dataset, seperti deskripsi, sitasi, dll.
  • split (NamedSplit, opsional) β€” Nama dari split dataset.
  • axis ({0, 1}, default ke 0) β€” Sumbu untuk penggabungan, di mana 0 berarti pada baris (vertikal) dan 1 berarti pada kolom (horizontal).

    Ditambahkan di 1.6.0

Gabungkan beberapa dataset (sumber) menjadi satu dataset.

Gunakan axis=0 untuk menggabungkan secara vertikal (default), atau axis=1 untuk menggabungkan secara horizontal.

Catatan untuk dataset iterable:

  • Jika axis=0, num_shards dari dataset yang dihasilkan adalah jumlah dari num_shards masing-masing dataset.
  • jika axis=1, dataset yang dihasilkan memiliki satu (1) shard agar data tidak menjadi tidak selaras.
  • jika dataset dipecah dengan datasets.distributed.split_dataset_by_node(), semuanya harus dipecah dengan cara yang sama, dan dataset yang dihasilkan mempertahankan pembagian tersebut.

Contoh:

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

Parameter

  • datasets (List[Dataset] atau List[IterableDataset]) β€” Daftar dataset untuk diinterleaving.
  • probabilities (List[float], opsional, default None) β€” Jika ditentukan, dataset baru dibangun dengan mengambil contoh dari satu sumber pada satu waktu sesuai probabilitas ini.
  • seed (int, opsional, defaultnya None) β€” Biji acak yang digunakan untuk memilih sumber untuk setiap contoh.
  • info (DatasetInfo, opsional) β€” Informasi dataset, seperti deskripsi, sitasi, dll.

    Ditambahkan di 2.4.0

  • split (NamedSplit, opsional) β€” Nama dari split dataset.

    Ditambahkan di 2.4.0

  • stopping_strategy (str, defaultnya first_exhausted) β€” Saat ini, tiga strategi yang diusulkan adalah first_exhausted, all_exhausted dan all_exhausted_without_replacement. Secara default, first_exhausted adalah strategi undersampling, yaitu konstruksi dataset dihentikan begitu satu dataset kehabisan sampel. Jika strateginya adalah all_exhausted, kami menggunakan strategi oversampling, yaitu konstruksi dataset dihentikan begitu setiap sampel dari setiap dataset telah ditambahkan setidaknya sekali. Ketika strateginya adalah all_exhausted_without_replacement kami memastikan bahwa setiap sampel di setiap dataset hanya diambil sekali. Perlu dicatat bahwa jika strateginya adalah all_exhausted, ukuran dataset yang diinterleaved bisa menjadi sangat besar:
    • tanpa probabilitas, dataset yang dihasilkan akan memiliki max_length_datasets*nb_dataset sampel.
    • dengan probabilitas yang diberikan, dataset yang dihasilkan akan memiliki lebih banyak sampel jika beberapa dataset memiliki probabilitas kunjungan yang sangat rendah.

Mengembalikan

Dataset atau IterableDataset

Tipe pengembalian bergantung pada parameter datasets. Dataset jika inputnya adalah daftar Dataset, IterableDataset jika inputnya adalah daftar IterableDataset.

Interleaving beberapa dataset (sumber) menjadi satu dataset. Dataset baru dibangun dengan cara bergantian mengambil contoh dari setiap sumber.

Anda dapat menggunakan fungsi ini pada daftar objek Dataset, atau pada daftar objek IterableDataset.

  • Jika probabilities adalah None (default), dataset baru dibangun dengan bergantian mengambil contoh dari setiap sumber.
  • Jika probabilities bukan None, dataset baru dibangun dengan mengambil contoh dari sumber acak satu per satu sesuai dengan probabilitas yang diberikan.

Dataset yang dihasilkan berakhir ketika salah satu dataset sumber kehabisan contoh, kecuali jika oversampling adalah True, di mana dataset yang dihasilkan berakhir ketika semua dataset telah kehabisan contoh setidaknya satu kali.

Catatan untuk dataset iterable:

  • num_shards dari dataset yang dihasilkan adalah nilai minimum dari num_shards masing-masing dataset untuk memastikan paralelisme yang baik. Jika beberapa dataset Anda memiliki jumlah shard yang sangat rendah, Anda dapat menggunakan IterableDataset.reshard().
  • Dalam setup terdistribusi atau di worker PyTorch DataLoader, strategi penghentian diterapkan per proses. Oleh karena itu, strategi β€œfirst_exhausted” pada dataset iterable yang di-shard dapat menghasilkan total sampel yang lebih sedikit (hingga 1 sampel hilang per subdataset per worker).

Contoh:

Untuk dataset reguler (gaya peta):

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

Parameter

  • dataset (Dataset atau IterableDataset) β€” Dataset yang akan dipecah per node.
  • rank (int) β€” Rank dari node saat ini.
  • world_size (int) β€” Jumlah total node.
  • strategy (str, defaultnya "auto") β€” Cara membagi dataset iterable. Harus salah satu dari "auto", "shards", atau "examples". Dataset map-style hanya mendukung "auto".

Mengembalikan

Dataset atau IterableDataset

Dataset yang akan digunakan pada node di rank rank.

Bagikan dataset untuk node pada peringkat rank dalam kumpulan node berukuran world_size.

Untuk dataset bergaya peta:

Setiap node diberi alokasi sepotong data, misalnya rank 0 diberi sepotong pertama dari dataset. Untuk memaksimalkan throughput pemuatan data, sepotong-sepotong tersebut dibuat dari data yang berurutan di disk jika memungkinkan.

Untuk dataset yang dapat diiterasi:

Strategi strategy pemecahan dapat berupa "auto", "shards", atau "examples":

  • "shards": shards didistribusikan secara merata di antara node
  • "examples": setiap node menyimpan 1 contoh dari world_size, melewati contoh lainnya
  • "auto" (default): menggunakan "shards" jika dataset memiliki jumlah shard yang merupakan faktor dari world_size (yaitu jika dataset.num_shards % world_size == 0), yang merupakan opsi paling teroptimasi. Jika tidak, menggunakan "examples".

Jika Anda mengacak dataset iterable dalam setup terdistribusi, pastikan untuk mengatur seed yang tetap di IterableDataset.shuffle() sehingga daftar shard yang diacak yang sama digunakan di setiap node untuk mengetahui shard mana yang harus dilewati oleh node tersebut.

datasets.enable_caching

< >

( )

Saat menerapkan transform pada dataset, data disimpan dalam file cache. Mekanisme cache memungkinkan pemuatan ulang file cache yang sudah ada jika file tersebut sudah dihitung sebelumnya.

Memuat ulang dataset dimungkinkan karena file cache diberi nama menggunakan sidik jari dataset, yang diperbarui setelah setiap transformasi.

Jika dinonaktifkan, pustaka tidak akan lagi memuat ulang file dataset yang di-cache saat menerapkan transformasi ke dataset. Lebih tepatnya, jika caching dinonaktifkan:

  • file cache selalu dibuat ulang
  • file cache ditulis ke direktori sementara yang dihapus saat sesi ditutup
  • file cache diberi nama menggunakan hash acak alih-alih sidik jari dataset
  • gunakan save_to_disk() untuk menyimpan dataset yang telah ditransformasi atau dataset tersebut akan dihapus saat sesi ditutup
  • caching tidak memengaruhi load_dataset(). Jika Anda ingin membuat ulang dataset dari awal, gunakan parameter download_mode di load_dataset().

datasets.disable_caching

< >

( )

Saat menerapkan transform pada dataset, data disimpan dalam file cache. Mekanisme cache memungkinkan pemuatan ulang file cache yang sudah ada jika file tersebut sudah dihitung sebelumnya.

Memuat ulang dataset dimungkinkan karena file cache diberi nama menggunakan sidik jari dataset, yang diperbarui setelah setiap transformasi.

Jika dinonaktifkan, pustaka tidak akan lagi memuat ulang file dataset yang di-cache saat menerapkan transformasi ke dataset. Lebih tepatnya, jika caching dinonaktifkan:

  • file cache selalu dibuat ulang
  • file cache ditulis ke direktori sementara yang dihapus saat sesi ditutup
  • file cache diberi nama menggunakan hash acak alih-alih sidik jari dataset
  • gunakan save_to_disk() untuk menyimpan dataset yang telah ditransformasi atau dataset tersebut akan dihapus saat sesi ditutup
  • caching tidak memengaruhi load_dataset(). Jika Anda ingin membuat ulang dataset dari awal, gunakan parameter download_mode di load_dataset().

datasets.is_caching_enabled

< >

( )

Saat menerapkan transform pada dataset, data disimpan dalam file cache. Mekanisme cache memungkinkan pemuatan ulang file cache yang sudah ada jika file tersebut sudah dihitung sebelumnya.

Memuat ulang dataset dimungkinkan karena file cache diberi nama menggunakan sidik jari dataset, yang diperbarui setelah setiap transformasi.

Jika dinonaktifkan, pustaka tidak akan lagi memuat ulang file dataset yang di-cache saat menerapkan transformasi ke dataset. Lebih tepatnya, jika caching dinonaktifkan:

  • file cache selalu dibuat ulang
  • file cache ditulis ke direktori sementara yang dihapus saat sesi ditutup
  • file cache diberi nama menggunakan hash acak alih-alih sidik jari dataset
  • gunakan save_to_disk()] untuk menyimpan dataset yang telah ditransformasi atau dataset tersebut akan dihapus saat sesi ditutup
  • caching tidak memengaruhi load_dataset(). Jika Anda ingin membuat ulang dataset dari awal, gunakan parameter download_mode di load_dataset().

kelas datasets.Column

< >

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

Iterable untuk kolom tertentu dari Dataset.

Contoh:

Iterasi pada teks di kolom β€œtext” dari dataset:

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

Ini juga berfungsi dengan kolom bersarang:

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

DatasetDict

Kamus dengan nama split sebagai kunci (misalnya β€˜train’, β€˜test’), dan objek Dataset sebagai nilai. Ia juga memiliki metode transformasi dataset seperti map atau filter, untuk memproses semua split sekaligus.

kelas datasets.DatasetDict

< >

( )

Kamus (dict of str: datasets.Dataset) dengan metode transformasi dataset (map, filter, dll.)

data

< >

( )

Tabel Apache Arrow yang mendasari setiap split.

Contoh:

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

cache_files

< >

( )

File cache yang berisi tabel Apache Arrow yang mendukung setiap split.

Contoh:

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

< >

( )

Jumlah kolom di setiap split dari dataset.

Contoh:

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

< >

( )

Jumlah baris di setiap split dari dataset.

Contoh:

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

< >

( )

Nama kolom di setiap split dari dataset.

Contoh:

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

bentuk

< >

( )

Bentuk setiap split dari dataset (jumlah baris, jumlah kolom).

Contoh:

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

unik

< >

( column: str ) β†’ Dict[str, list]

Parameter

  • column (str) β€” nama kolom (daftar semua nama kolom dengan column_names)

Mengembalikan

Dict[str, list]

Kamus elemen unik di kolom yang diberikan.

Kembalikan daftar elemen unik dalam kolom untuk setiap split.

Hal ini diimplementasikan di backend tingkat rendah dan karenanya, sangat cepat.

Contoh:

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

< >

( )

Bersihkan semua file cache di direktori cache dataset, kecuali file cache yang sedang digunakan jika ada. Berhati-hatilah saat menjalankan perintah ini agar tidak ada proses lain yang sedang menggunakan file cache lainnya.

Contoh:

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

Parameter

  • function (callable) β€” dengan salah satu dari signature berikut:
    • function(example: Dict[str, Any]) -> Dict[str, Any] jika batched=False dan with_indices=False
    • function(example: Dict[str, Any], indices: int) -> Dict[str, Any] jika batched=False dan with_indices=True
    • function(batch: Dict[str, list]) -> Dict[str, list] jika batched=True dan with_indices=False
    • function(batch: Dict[str, list], indices: list[int]) -> Dict[str, list] jika batched=True dan with_indices=True

    Untuk penggunaan lanjutan, fungsi juga dapat mengembalikan pyarrow.Table. Jika fungsi bersifat asinkron, maka map akan menjalankan fungsi Anda secara paralel. Selain itu, jika fungsi Anda tidak mengembalikan apa pun (None), maka map akan menjalankan fungsi Anda dan mengembalikan dataset tanpa perubahan. Jika tidak ada fungsi yang diberikan, gunakan fungsi identitas sebagai default: lambda x: x.

  • with_indices (bool, defaultnya False) β€” Berikan indeks contoh ke function. Perhatikan bahwa dalam kasus ini, tanda tangan function harus berupa def function(example, idx): ....
  • with_rank (bool, defaultnya False) β€” Berikan rank proses ke function. Perhatikan bahwa dalam kasus ini, signature dari function harus berupa def function(example[, idx], rank): ....
  • with_split (bool, defaultnya False) β€” Sediakan process split untuk function. Perhatikan bahwa dalam kasus ini, signature dari function harus berupa def function(example[, idx], split): ....
  • input_columns ([Union[str, list[str]]], opsional, defaultnya None) β€” Kolom yang akan diteruskan ke function sebagai argumen posisional. Jika None, dict pemetaan ke semua kolom yang diformat akan diteruskan sebagai satu argumen.
  • batched (bool, defaultnya False) β€” Berikan batch contoh ke function.
  • batch_size (int, opsional, defaultnya 1000) β€” Jumlah contoh per batch yang diberikan ke function jika batched=True, batch_size <= 0 atau batch_size == None maka berikan seluruh dataset sebagai satu batch ke function.
  • drop_last_batch (bool, defaultnya False) β€” Apakah batch terakhir yang lebih kecil dari batch_size harus dibuang alih-alih diproses oleh fungsi.
  • remove_columns ([Union[str, list[str]]], opsional, defaultnya None) β€” Hapus pilihan kolom saat melakukan pemetaan. Kolom akan dihapus sebelum memperbarui contoh dengan output dari function, yaitu jika function menambahkan kolom dengan nama yang ada di remove_columns, kolom-kolom ini akan tetap dipertahankan.
  • keep_in_memory (bool, defaultnya False) β€” Simpan dataset di memori alih-alih menuliskannya ke file cache.
  • load_from_cache_file (Optional[bool], defaultnya True jika caching diaktifkan) β€” Jika file cache yang menyimpan komputasi saat ini dari function dapat diidentifikasi, gunakan file tersebut alih-alih menghitung ulang.
  • cache_file_names ([Dict[str, str]], opsional, defaultnya None) β€” Berikan nama path untuk file cache. Ini digunakan untuk menyimpan hasil komputasi alih-alih nama file cache yang dihasilkan secara otomatis. Anda harus menyediakan satu cache_file_name per dataset dalam kamus dataset.
  • writer_batch_size (int, default 1000) β€” Jumlah baris per operasi penulisan untuk penulis file cache. Nilai ini merupakan kompromi yang baik antara penggunaan memori selama pemrosesan dan kecepatan pemrosesan. Nilai yang lebih tinggi membuat pemrosesan melakukan lebih sedikit pencarian, sedangkan nilai yang lebih rendah mengonsumsi memori sementara yang lebih sedikit saat menjalankan map.
  • features ([datasets.Features], opsional, default None) β€” Gunakan Features tertentu untuk menyimpan file cache alih-alih yang dihasilkan secara otomatis.
  • disable_nullable (bool, defaultnya False) β€” Larang nilai null dalam tabel.
  • fn_kwargs (Dict, opsional, defaultnya None) β€” Argumen kata kunci yang akan diteruskan ke function
  • num_proc (int, opsional, defaultnya None) β€” Jumlah proses yang digunakan untuk multiprocessing. Jika None atau 0, multiprocessing tidak digunakan dan operasi dijalankan di proses utama. Jika lebih dari 1, satu atau beberapa proses worker digunakan untuk memproses data secara paralel. Catatan: Fungsi yang diteruskan ke map() harus dapat di-pickle agar multiprocessing berfungsi dengan benar (yaitu, lebih baik gunakan fungsi yang didefinisikan di tingkat atas modul, bukan di dalam fungsi atau kelas lain).
    • Jika None atau 0, multiprocessing tidak digunakan dan operasi dijalankan di proses utama.
    • Jika lebih besar dari 1, satu atau beberapa proses worker digunakan untuk memproses data secara paralel. Catatan: Fungsi yang diteruskan ke map() harus dapat di-pickle agar multiprocessing dapat bekerja dengan benar (yaitu, lebih disukai fungsi yang didefinisikan di tingkat atas modul, bukan di dalam fungsi atau kelas lain).
  • desc (str, opsional, defaultnya None) β€” Deskripsi bermakna yang akan ditampilkan berdampingan dengan progress bar saat memetakan contoh.
  • try_original_type (Optional[bool], defaultnya True) β€” Coba pertahankan tipe dari kolom asli (mis. int32 -> int32). Atur ke False jika Anda ingin selalu menyimpulkan tipe baru.
  • on_mixed_types (Literal["use_json"], opsional, defaultnya None) β€” Jika "use_json", gunakan tipe Json() untuk field bertipe campuran, yaitu field tidak terstruktur yang berisi data tanpa skema yang didefinisikan sebelumnya. Dalam kasus ini, field dengan tipe campuran diatur ke Json().

    Hal ini memungkinkan pemuatan daftar dengan campuran string/integer/float, misalnya, atau kamus dengan tipe nilai yang arbitrer.

    Ditambahkan dalam 4.7.0

Terapkan fungsi ke semua contoh dalam tabel (secara individual atau dalam batch) dan perbarui tabel. Jika fungsi Anda mengembalikan kolom yang sudah ada, maka kolom tersebut akan ditimpa. Transformasi diterapkan ke semua dataset dalam kamus dataset.

Anda dapat menentukan apakah fungsi harus di-batch atau tidak dengan parameter batched:

  • Jika False, maka fungsi tersebut menerima 1 contoh dan harus mengembalikan 1 contoh. Sebuah contoh adalah sebuah kamus, misalnya {"text": "Hello there !"}.
  • Jika True dan batch_size adalah 1, maka fungsi mengambil batch berisi 1 contoh sebagai input dan dapat mengembalikan batch berisi 1 atau lebih contoh. Sebuah batch adalah kamus, misalnya batch berisi 1 contoh adalah {"text": ["Hello there !"]}.
  • Jika True dan batch_size adalah n > 1, maka fungsi tersebut mengambil batch berisi n contoh sebagai input dan dapat mengembalikan batch berisi n contoh, atau dengan jumlah contoh yang sembarang. Perhatikan bahwa batch terakhir mungkin memiliki kurang dari n contoh. Sebuah batch adalah kamus, misalnya batch berisi n contoh adalah {"text": ["Hello there !"] * n}.

Jika fungsi bersifat asinkron, maka map akan menjalankan fungsi Anda secara paralel, dengan hingga seribu panggilan simultan. Disarankan untuk menggunakan asyncio.Semaphore di dalam fungsi Anda jika Anda ingin menetapkan jumlah maksimum operasi yang dapat berjalan pada saat yang sama.

Contoh:

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

filter

< >

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

Parameter

  • function (Callable) β€” Callable dengan salah satu dari signature berikut:
    • function(example: Dict[str, Any]) -> bool jika batched=False dan with_indices=False dan with_rank=False
    • function(example: Dict[str, Any], *extra_args) -> bool jika batched=False dan with_indices=True dan/atau with_rank=True (satu argumen tambahan untuk masing-masing)
    • function(batch: Dict[str, list]) -> list[bool] jika batched=True dan with_indices=False dan with_rank=False
    • function(batch: Dict[str, list], *extra_args) -> list[bool] jika batched=True dan with_indices=True dan/atau with_rank=True (satu argumen tambahan untuk masing-masing)

    Jika tidak ada fungsi yang diberikan, secara default menggunakan fungsi yang selalu True: lambda x: True.

  • with_indices (bool, defaultnya False) β€” Berikan indeks contoh ke function. Perhatikan bahwa dalam kasus ini, signature dari function harus berupa def function(example, idx[, rank]): ....
  • with_rank (bool, defaultnya False) β€” Berikan rank proses ke function. Perhatikan bahwa dalam kasus ini, signature dari function harus berupa def function(example[, idx], rank): ....
  • input_columns ([Union[str, list[str]]], opsional, defaultnya None) β€” Kolom yang akan diteruskan ke function sebagai argumen posisional. Jika None, dict pemetaan ke semua kolom yang diformat akan diteruskan sebagai satu argumen.
  • batched (bool, defaultnya False) β€” Berikan batch contoh ke function.
  • batch_size (int, opsional, defaultnya 1000) β€” Jumlah contoh per batch yang diberikan ke function jika batched=True batch_size <= 0 atau batch_size == None maka berikan seluruh dataset sebagai satu batch ke function.
  • keep_in_memory (bool, defaultnya False) β€” Simpan dataset di memori alih-alih menuliskannya ke file cache.
  • load_from_cache_file (Optional[bool], defaultnya True jika caching diaktifkan) β€” Jika file cache yang menyimpan komputasi saat ini dari function dapat diidentifikasi, gunakan file tersebut alih-alih menghitung ulang.
  • cache_file_names ([Dict[str, str]], opsional, defaultnya None) β€” Berikan nama path untuk file cache. Ini digunakan untuk menyimpan hasil komputasi alih-alih nama file cache yang dihasilkan secara otomatis. Anda harus menyediakan satu cache_file_name per dataset dalam kamus dataset.
  • writer_batch_size (int, defaultnya 1000) β€” Jumlah baris per operasi penulisan untuk penulis file cache. Nilai ini merupakan kompromi yang baik antara penggunaan memori selama pemrosesan dan kecepatan pemrosesan. Nilai yang lebih tinggi membuat pemrosesan melakukan lebih sedikit pencarian, sedangkan nilai yang lebih rendah mengonsumsi memori sementara yang lebih sedikit saat menjalankan map.
  • fn_kwargs (Dict, opsional, defaultnya None) β€” Argumen kata kunci yang akan diteruskan ke function
  • num_proc (int, opsional, defaultnya None) β€” Jumlah proses yang digunakan untuk multiprocessing. Jika None atau 0, multiprocessing tidak digunakan dan operasi dijalankan di proses utama. Jika lebih dari 1, satu atau beberapa proses worker digunakan untuk memproses data secara paralel. Catatan: Fungsi yang diteruskan ke map() harus dapat di-pickle agar multiprocessing berfungsi dengan benar (yaitu, lebih baik gunakan fungsi yang didefinisikan di tingkat atas modul, bukan di dalam fungsi atau kelas lain).
    • Jika None atau 0, multiprocessing tidak digunakan dan operasi dijalankan di proses utama.
    • Jika lebih besar dari 1, satu atau beberapa proses worker digunakan untuk memproses data secara paralel. Catatan: Fungsi yang diteruskan ke map() harus dapat di-pickle agar multiprocessing dapat bekerja dengan benar (yaitu, lebih disukai fungsi yang didefinisikan di tingkat atas modul, bukan di dalam fungsi atau kelas lain).
  • desc (str, opsional, defaultnya None) β€” Deskripsi bermakna yang akan ditampilkan berdampingan dengan bilah kemajuan saat memfilter contoh.

Terapkan fungsi filter pada semua elemen dalam tabel secara batch dan perbarui tabel sehingga dataset hanya mencakup contoh sesuai dengan fungsi filter. Transformasi diterapkan pada semua dataset dalam kamus dataset.

Contoh:

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

Parameter

  • column_names (Union[str, Sequence[str]]) β€” Nama kolom untuk diurutkan.
  • reverse (Union[bool, Sequence[bool]], defaultnya False) β€” Jika True, urutkan berdasarkan urutan menurun, bukan menaik. Jika satu bool diberikan, nilainya diterapkan pada pengurutan semua nama kolom. Selain itu, daftar bool dengan panjang dan urutan yang sama seperti column_names harus diberikan.
  • null_placement (str, defaultnya at_end) β€” Letakkan nilai None di awal jika at_start atau first atau di akhir jika at_end atau last
  • keep_in_memory (bool, defaultnya False) β€” Simpan indeks yang telah diurutkan di memori alih-alih menuliskannya ke file cache.
  • load_from_cache_file (Optional[bool], defaultnya True jika caching diaktifkan) β€” Jika file cache yang menyimpan indeks terurut dapat diidentifikasi, gunakan file tersebut alih-alih menghitung ulang.
  • indices_cache_file_names ([Dict[str, str]], opsional, defaultnya None) β€” Berikan nama path untuk file cache. Ini digunakan untuk menyimpan pemetaan indeks alih-alih nama file cache yang dihasilkan secara otomatis. Anda harus menyediakan satu cache_file_name per dataset dalam kamus dataset.
  • writer_batch_size (int, defaultnya 1000) β€” Jumlah baris per operasi penulisan untuk penulis file cache. Nilai yang lebih tinggi menghasilkan file cache yang lebih kecil, sedangkan nilai yang lebih rendah menggunakan memori sementara yang lebih sedikit.

Buat dataset baru yang diurutkan berdasarkan satu atau beberapa kolom.

Contoh:

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

Parameter

  • seeds (Dict[str, int] atau int, opsional) β€” Seed untuk menginisialisasi BitGenerator default jika generator=None. Jika None, maka entropi baru yang tidak dapat diprediksi akan diambil dari OS. Jika int atau array_like[ints] diberikan, maka nilai tersebut akan diteruskan ke SeedSequence untuk menurunkan state BitGenerator awal. Anda dapat menyediakan satu seed per dataset dalam kamus dataset.
  • seed (int, opsional) β€” Seed untuk menginisialisasi BitGenerator default jika generator=None. Alias untuk seeds (sebuah ValueError akan dilempar jika keduanya disediakan).
  • generators (Dict[str, *optional*, np.random.Generator]) β€” Numpy random Generator yang digunakan untuk menghitung permutasi baris dataset. Jika generator=None (default), menggunakan np.random.default_rng (BitGenerator default (PCG64) dari NumPy). Anda harus menyediakan satu generator untuk setiap dataset dalam kamus dataset.
  • keep_in_memory (bool, defaultnya False) β€” Simpan dataset di memori alih-alih menuliskannya ke file cache.
  • load_from_cache_file (Optional[bool], defaultnya True jika caching diaktifkan) β€” Jika file cache yang menyimpan komputasi saat ini dari function dapat diidentifikasi, gunakan file tersebut alih-alih menghitung ulang.
  • indices_cache_file_names (Dict[str, str], opsional) β€” Berikan nama path untuk file cache. Ini digunakan untuk menyimpan pemetaan indeks alih-alih nama file cache yang dihasilkan secara otomatis. Anda harus menyediakan satu cache_file_name per dataset dalam kamus dataset.
  • writer_batch_size (int, defaultnya 1000) β€” Jumlah baris per operasi penulisan untuk penulis file cache. Nilai ini merupakan kompromi yang baik antara penggunaan memori selama pemrosesan dan kecepatan pemrosesan. Nilai yang lebih tinggi membuat pemrosesan melakukan lebih sedikit pencarian, sedangkan nilai yang lebih rendah mengonsumsi memori sementara yang lebih sedikit saat menjalankan map.

Buat Dataset baru di mana barisnya diacak.

Transformasi diterapkan ke semua dataset dalam kamus dataset.

Saat ini, pengacakan menggunakan generator acak numpy. Anda dapat menyediakan NumPy BitGenerator untuk digunakan, atau seed untuk menginisiasi generator acak default NumPy (PCG64).

Contoh:

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

Parameter

  • type (str, opsional) β€” Jenis output yang dipilih dari [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None berarti __getitem__ mengembalikan objek python (default).
  • columns (list[str], opsional) β€” Kolom yang akan diformat dalam output. None berarti __getitem__ mengembalikan semua kolom (default).
  • output_all_columns (bool, defaultnya False) β€” Juga simpan kolom yang tidak diformat dalam output (sebagai objek python),
  • **format_kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang diteruskan ke fungsi konversi seperti np.array, torch.tensor atau tensorflow.ragged.constant.

Set format pengembalian __getitem__ (tipe dan kolom). Format ini diset untuk setiap dataset dalam kamus dataset.

Memanggil map setelah memanggil set_format dimungkinkan. Karena map dapat menambahkan kolom baru, daftar kolom yang diformat akan diperbarui. Dalam kasus ini, jika Anda menerapkan map pada dataset untuk menambahkan kolom baru, kolom tersebut akan diformat:

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

Contoh:

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

< >

( )

Reset format pengembalian __getitem__ ke objek python dan semua kolom. Transformasi diterapkan ke semua dataset dalam kamus dataset.

Sama seperti self.set_format()

Contoh:

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

Parameter

  • type (str, opsional) β€” Jenis output yang dipilih dari [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None berarti __getitem__ mengembalikan objek python (default).
  • columns (list[str], opsional) β€” Kolom yang akan diformat dalam output. None berarti __getitem__ mengembalikan semua kolom (default).
  • output_all_columns (bool, defaultnya False) β€” Simpan juga kolom yang tidak diformat dalam output (sebagai objek python).
  • **format_kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang diteruskan ke fungsi konversi seperti np.array, torch.tensor atau tensorflow.ragged.constant.

Digunakan dalam pernyataan with. Atur format pengembalian __getitem__ (tipe dan kolom). Transformasi diterapkan ke semua dataset dalam kamus dataset.

with_format

< >

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

Parameter

  • type (str, opsional) β€” Jenis output yang dipilih dari [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None berarti __getitem__ mengembalikan objek python (default).
  • columns (list[str], opsional) β€” Kolom yang akan diformat dalam output. None berarti __getitem__ mengembalikan semua kolom (default).
  • output_all_columns (bool, defaultnya False) β€” Juga simpan kolom yang tidak diformat dalam output (sebagai objek python).
  • **format_kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang diteruskan ke fungsi konversi seperti np.array, torch.tensor atau tensorflow.ragged.constant.

Set format pengembalian __getitem__ (tipe dan kolom). Pemformatan data diterapkan secara langsung (on-the-fly). Format type (misalnya β€œnumpy”) digunakan untuk memformat batch saat menggunakan __getitem__. Format ini diset untuk setiap dataset dalam kamus dataset.

Anda juga dapat menggunakan transform kustom untuk format menggunakan with_transform().

Berbeda dengan set_format(), with_format mengembalikan objek DatasetDict baru dengan objek Dataset baru.

Contoh:

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

Parameter

  • transform (Callable, opsional) β€” Transform format yang didefinisikan pengguna, menggantikan format yang didefinisikan oleh set_format(). Fungsi format adalah callable yang menerima batch (sebagai dict) sebagai input dan mengembalikan batch. Fungsi ini diterapkan tepat sebelum mengembalikan objek di __getitem__.
  • columns (list[str], opsional) β€” Kolom yang akan diformat dalam output. Jika ditentukan, maka batch input dari transform hanya berisi kolom-kolom tersebut.
  • output_all_columns (bool, defaultnya False) β€” Simpan juga kolom yang tidak diformat dalam output (sebagai objek python). Jika diset ke True, maka kolom-kolom lain yang tidak diformat akan disimpan bersama output dari transform.

Set format pengembalian __getitem__ menggunakan transform ini. Transform diterapkan secara on-the-fly pada batch saat __getitem__ dipanggil. Transform diset untuk setiap dataset dalam kamus dataset

Seperti set_format(), ini dapat direset menggunakan reset_format().

Berbeda dengan set_transform(), with_transform mengembalikan objek DatasetDict baru dengan objek Dataset baru.

Contoh:

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

Ratakan Tabel Apache Arrow dari setiap split (fitur bersarang diratakan). Setiap kolom dengan tipe struct diratakan menjadi satu kolom per field struct. Kolom lainnya tidak diubah.

Contoh:

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

Parameter

  • features (Features) β€” Fitur baru untuk mengubah tipe dataset. Nama dan urutan field dalam features harus sesuai dengan nama kolom saat ini. Tipe data juga harus dapat dikonversi dari satu tipe ke tipe lainnya. Untuk konversi yang tidak sederhana, misalnya string <-> ClassLabel, gunakan map() untuk memperbarui dataset.

Cast dataset ke set fitur baru. Transformasi diterapkan ke semua dataset dalam kamus dataset.

Contoh:

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

Parameter

  • column (str) β€” Nama kolom.
  • feature (Feature) β€” Fitur target.

Cast kolom ke fitur untuk decoding.

Contoh:

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

Parameter

  • column_names (Union[str, list[str]]) β€” Nama kolom yang akan dihapus.

Mengembalikan

DatasetDict

Salinan objek dataset tanpa kolom yang akan dihapus.

Hapus satu atau beberapa kolom dari setiap split dalam dataset dan fitur yang terkait dengan kolom tersebut.

Transformasi diterapkan ke semua split dari kamus dataset.

Anda juga dapat menghapus kolom menggunakan map() dengan remove_columns, tetapi metode yang ada tidak menyalin data dari kolom yang tersisa sehingga lebih cepat.

Contoh:

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

Parameter

  • original_column_name (str) β€” Nama kolom yang akan diganti namanya.
  • new_column_name (str) β€” Nama baru untuk kolom.

Ganti nama kolom dalam dataset dan pindahkan fitur yang terkait dengan kolom asli ke bawah nama kolom baru. Transformasi diterapkan ke semua dataset dalam kamus dataset.

Anda juga dapat mengubah nama kolom menggunakan map() dengan remove_columns tetapi metode yang ada:

  • menangani pemindahan fitur asli di bawah nama kolom baru.
  • tidak menyalin data ke dataset baru sehingga jauh lebih cepat.

Contoh:

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

Parameter

  • column_mapping (Dict[str, str]) β€” Pemetaan kolom untuk diubah namanya menjadi nama baru.

Mengembalikan

DatasetDict

Salinan dataset dengan kolom yang namanya diubah.

Ganti nama beberapa kolom dalam dataset, dan pindahkan fitur yang terkait dengan kolom asli ke bawah nama kolom baru. Transformasi diterapkan ke semua dataset dalam kamus dataset.

Contoh:

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

Parameter

  • column_names (Union[str, list[str]]) β€” Nama kolom yang akan dipertahankan.

Pilih satu atau beberapa kolom dari setiap split dalam dataset dan fitur yang terkait dengan kolom tersebut.

Transformasi diterapkan ke semua split dari kamus dataset.

Contoh:

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

Parameter

  • column (str) β€” Nama kolom yang akan di-cast.
  • include_nulls (bool, defaultnya False) β€” Apakah nilai null akan disertakan dalam label kelas. Jika True, nilai null akan dikodekan sebagai label kelas "None" .

    Ditambahkan dalam 1.14.2

Mencast kolom yang diberikan sebagai ClassLabel dan memperbarui tabel.

Contoh:

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

Parameter

  • repo_id (str) β€” ID repositori yang akan di-push, dalam format berikut: <user>/<dataset_name> atau <org>/<dataset_name>. Juga menerima <dataset_name>, yang secara default akan menggunakan namespace dari pengguna yang sedang login.

    Itu juga bisa menjadi lokasi di dalam bucket, misalnya buckets/<user_or_org>/<bucket_name>/...

  • config_name (str) β€” Nama konfigurasi dari dataset. Defaultnya adalah β€œdefault”.
  • set_default (bool, opsional) β€” Apakah akan menetapkan konfigurasi ini sebagai konfigurasi default. Jika tidak, konfigurasi default adalah yang bernama β€œdefault”.
  • data_dir (str, opsional) β€” Nama direktori yang akan berisi file data yang diunggah. Nilainya secara default mengikuti config_name jika berbeda dari β€œdefault”, selain itu β€œdata”.

    Ditambahkan dalam 2.17.0

  • commit_message (str, opsional) β€” Pesan untuk commit saat push. Akan default ke "Upload dataset".
  • commit_description (str, opsional) β€” Deskripsi dari commit yang akan dibuat. Selain itu, deskripsi dari PR jika PR dibuat (create_pr adalah True).

    Ditambahkan dalam 2.16.0

  • private (bool, opsional) β€” Apakah membuat repo menjadi privat. Jika None (default), repo akan menjadi publik kecuali default organisasi adalah privat. Nilai ini diabaikan jika repo sudah ada.
  • token (str, opsional) β€” Token autentikasi opsional untuk Hugging Face Hub. Jika tidak ada token yang diteruskan, akan menggunakan token yang disimpan secara lokal saat login dengan hf auth login. Akan memicu error jika tidak ada token yang diteruskan dan pengguna tidak dalam keadaan login.
  • revision (str, opsional) β€” Branch untuk mendorong file yang diunggah. Secara default menggunakan branch "main" .

    Ditambahkan dalam 2.15.0

  • create_pr (bool, opsional, defaultnya False) β€” Apakah akan membuat PR dengan file yang diunggah atau langsung melakukan commit.

    Ditambahkan dalam 2.15.0

  • max_shard_size (int atau str, opsional, default "500MB") β€” Ukuran maksimum shard dataset yang akan diunggah ke hub. Jika dinyatakan sebagai string, harus berupa angka diikuti satuan (seperti "500MB" atau "1GB").
  • num_shards (Dict[str, int], opsional) β€” Jumlah shard yang akan ditulis. Secara default, jumlah shard bergantung pada max_shard_size. Gunakan dictionary untuk mendefinisikan num_shards yang berbeda untuk setiap split.

    Ditambahkan di 2.8.0

  • embed_external_files (bool, defaultnya True) β€” Apakah akan menyematkan byte file ke dalam shard. Secara khusus, ini akan melakukan hal berikut sebelum push untuk field bertipe:
    • Audio dan Image menghapus informasi jalur lokal dan menyematkan konten file ke dalam file Parquet.
  • num_proc (int, opsional, defaultnya None) β€” Jumlah proses saat menyiapkan dan mengunggah dataset. Ini berguna jika dataset terdiri dari banyak sampel atau file media yang akan disematkan. I menggunakan konteks β€œspawn” untuk bekerja dengan hf_xet, klien rust untuk pengunggahan cepat ke HF. Multiprocessing dinonaktifkan secara default.

    Ditambahkan dalam 4.0.0

Mendorong DatasetDict ke hub sebagai dataset Parquet. DatasetDict didorong menggunakan permintaan HTTP dan tidak memerlukan instalasi git maupun git-lfs.

Setiap split dataset akan didorong secara independen. Dataset yang didorong akan mempertahankan nama split aslinya.

File Parquet yang dihasilkan bersifat mandiri secara bawaan: jika dataset Anda berisi data Image atau Audio, file Parquet akan menyimpan byte dari file gambar atau audio Anda. Anda dapat menonaktifkan ini dengan mengatur embed_external_files ke False.

Contoh:

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

Jika Anda ingin menambahkan konfigurasi baru (atau subset) ke dataset (misalnya jika dataset memiliki beberapa tugas/versi/bahasa):

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

Parameter

  • dataset_dict_path (path-like) β€” Path (mis. dataset/train) atau URI jarak jauh (mis. s3://my-bucket/dataset/train) dari direktori dataset dict tempat dataset dict akan disimpan.
  • max_shard_size (int atau str, opsional, default "500MB") β€” Ukuran maksimum shard dataset yang akan disimpan ke filesystem. Jika dinyatakan sebagai string, harus berupa angka diikuti satuan (seperti "50MB").
  • num_shards (Dict[str, int], opsional) β€” Jumlah shard yang akan ditulis. Secara default, jumlah shard bergantung pada max_shard_size dan num_proc. Anda perlu menyediakan jumlah shard untuk setiap dataset dalam kamus dataset. Gunakan kamus untuk mendefinisikan num_shards yang berbeda untuk setiap split.

    Ditambahkan di 2.8.0

  • num_proc (int, opsional, default None) β€” Jumlah proses saat mengunduh dan menghasilkan dataset secara lokal. Multiprocessing dinonaktifkan secara default.

    Ditambahkan di 2.8.0

  • storage_options (dict, opsional) β€” Pasangan kunci/nilai yang akan diteruskan ke backend sistem file, jika ada.

    Ditambahkan di 2.8.0

Menyimpan dataset dict ke sistem file menggunakan fsspec.spec.AbstractFileSystem.

Untuk data Image, Audio dan Video:

Semua data Image(), Audio() dan Video() disimpan dalam file arrow. Jika Anda ingin menyimpan path atau url, silakan gunakan tipe Value(β€œstring”).

Contoh:

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

Parameter

  • dataset_dict_path (path-like) β€” Path (mis. "dataset/train") atau URI jarak jauh (mis. "s3//my-bucket/dataset/train") dari direktori dataset dict tempat dataset dict akan dimuat.
  • keep_in_memory (bool, defaultnya None) β€” Apakah dataset akan disalin ke memori. Jika None, dataset tidak akan disalin ke memori kecuali secara eksplisit diaktifkan dengan mengatur datasets.config.IN_MEMORY_MAX_SIZE ke nilai bukan nol. Lihat detail lebih lanjut di bagian meningkatkan kinerja.
  • storage_options (dict, opsional) β€” Pasangan kunci/nilai yang akan diteruskan ke backend sistem file, jika ada.

    Ditambahkan di 2.8.0

Muat dataset yang sebelumnya disimpan menggunakan save_to_disk dari sistem file menggunakan fsspec.spec.AbstractFileSystem.

Contoh:

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

Parameter

  • path_or_paths (dict of path-like) β€” Path dari file CSV.
  • features (Features, opsional) β€” Fitur dataset.
  • cache_dir (str, opsional, default "~/.cache/huggingface/datasets") β€” Direktori untuk meng-cache data.
  • keep_in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.
  • **kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang akan diteruskan ke pandas.read_csv.

Buat DatasetDict dari file CSV.

Contoh:

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

Parameter

  • path_or_paths (path-like atau daftar path-like) β€” Path file JSON Lines.
  • features (Features, opsional) β€” Fitur dataset.
  • cache_dir (str, opsional, default "~/.cache/huggingface/datasets") β€” Direktori untuk meng-cache data.
  • keep_in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.
  • **kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang akan diteruskan ke JsonConfig.

Buat DatasetDict dari file JSON Lines.

Contoh:

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

Parameter

  • path_or_paths (dict of path-like) β€” Path dari file CSV.
  • features (Features, opsional) β€” Fitur dataset.
  • cache_dir (str, opsional, default "~/.cache/huggingface/datasets") β€” Direktori untuk meng-cache data.
  • keep_in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.
  • columns (list[str], opsional) β€” Jika bukan None, hanya kolom-kolom ini yang akan dibaca dari file. Nama kolom dapat berupa prefiks dari field bersarang, misalnya β€˜a’ akan memilih β€˜a.b’, β€˜a.c’, dan β€˜a.d.e’.
  • **kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang akan diteruskan ke ParquetConfig.

Buat DatasetDict dari file Parquet.

Contoh:

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

Parameter

  • path_or_paths (dict of path-like) β€” Path dari file teks.
  • features (Features, opsional) β€” Fitur dataset.
  • cache_dir (str, opsional, default "~/.cache/huggingface/datasets") β€” Direktori untuk meng-cache data.
  • keep_in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.
  • **kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang akan diteruskan ke TextConfig.

Buat DatasetDict dari file teks.

Contoh:

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

IterableDataset

Kelas dasar IterableDataset mengimplementasikan Dataset yang dapat diiterasi dan didukung oleh generator python.

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

Dataset yang didukung oleh iterable.

from_file

< >

( filename: str )

Parameter

  • filename (str) β€” Nama file dari dataset.

Instansiasi IterableDataset dari tabel Arrow di 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 )

Parameter

  • df (pandas.DataFrame) β€” Dataframe yang berisi dataset.
  • features (Features, opsional) β€” Fitur dataset.
  • info (DatasetInfo, opsional) β€” Informasi dataset, seperti deskripsi, sitasi, dll.
  • split (NamedSplit, opsional) β€” Nama dari split dataset.
  • preserve_index (bool, opsional) β€” Apakah indeks akan disimpan sebagai kolom tambahan dalam Dataset yang dihasilkan. Nilai default None akan menyimpan indeks sebagai kolom, kecuali untuk RangeIndex yang hanya disimpan sebagai metadata. Gunakan preserve_index=True untuk memaksa indeks disimpan sebagai kolom.
  • num_shards (int, default 1) β€” Jumlah shard yang didefinisikan saat menginstansiasi dataset iterable. Ini sangat berguna untuk dataset besar agar shuffle dapat dilakukan dengan benar, dan juga untuk memungkinkan pemuatan paralel yang cepat menggunakan PyTorch DataLoader atau dalam setup terdistribusi, misalnya.

Konversi pandas.DataFrame menjadi pyarrow.Table untuk membuat IterableDataset.

Tipe kolom dalam Tabel Arrow yang dihasilkan disimpulkan dari dtype dari pandas.Series dalam DataFrame. Untuk Series non-object, dtype NumPy diterjemahkan ke padanan Arrow-nya. Untuk object, kita perlu menebak tipe data dengan melihat objek Python dalam Series ini.

Perhatikan bahwa Series dengan dtype object tidak membawa informasi yang cukup untuk selalu menghasilkan tipe Arrow yang bermakna. Dalam kasus di mana tipe tidak dapat disimpulkan, misalnya karena DataFrame memiliki panjang 0 atau Series hanya berisi objek None/nan, tipe akan diatur ke null. Perilaku ini dapat dihindari dengan membuat fitur secara eksplisit dan meneruskannya ke fungsi ini.

Penting: dataset yang dibuat dengan from_pandas() disimpan di memori. Hal ini mungkin berubah di masa depan, tetapi sementara itu, jika Anda ingin mengurangi penggunaan memori, Anda sebaiknya menuliskannya ke disk dan memuat ulang menggunakan, misalnya, to_parquet / from_parquet.

Contoh:

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

Parameter

  • mapping (Mapping) β€” Pemetaan string ke Array atau daftar Python.
  • features (Features, opsional) β€” Fitur dataset.
  • info (DatasetInfo, opsional) β€” Informasi dataset, seperti deskripsi, sitasi, dll.
  • split (NamedSplit, opsional) β€” Nama dari split dataset.
  • num_shards (int, default 1) β€” Jumlah shard yang didefinisikan saat menginstansiasi dataset iterable. Ini sangat berguna untuk dataset besar agar shuffle dapat dilakukan dengan benar, dan juga untuk memungkinkan pemuatan paralel yang cepat menggunakan PyTorch DataLoader atau dalam setup terdistribusi, misalnya.

Konversi dict menjadi pyarrow.Table untuk membuat IterableDataset.

Penting: dataset yang dibuat dengan from_dict() disimpan di memori. Hal ini mungkin berubah di masa depan, tetapi sementara itu, jika Anda ingin mengurangi penggunaan memori, Anda sebaiknya menuliskannya kembali ke disk dan memuat ulang menggunakan, misalnya, 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 )

Parameter

  • mapping (List[dict]) β€” Daftar pemetaan string ke nilai baris.
  • features (Features, opsional) β€” Fitur dataset.
  • info (DatasetInfo, opsional) β€” Informasi dataset, seperti deskripsi, sitasi, dll.
  • split (NamedSplit, opsional) β€” Nama split dataset.
  • num_shards (int, default 1) β€” Jumlah shard yang didefinisikan saat menginstansiasi dataset iterable. Ini sangat berguna untuk dataset besar agar shuffle dapat dilakukan dengan benar, dan juga untuk memungkinkan pemuatan paralel yang cepat menggunakan PyTorch DataLoader atau dalam setup terdistribusi, misalnya.

Konversi daftar dict menjadi pyarrow.Table untuk membuat IterableDataset.

Perhatikan bahwa kunci dari entri pertama akan digunakan untuk menentukan kolom dataset, terlepas dari apa yang diteruskan ke features.

Penting: dataset yang dibuat dengan from_list() disimpan di memori. Hal ini mungkin berubah di masa depan, tetapi sementara itu, jika Anda ingin mengurangi penggunaan memori, Anda sebaiknya menuliskannya kembali ke disk dan memuat ulang menggunakan misalnya from_parquet / to_parquet.

from_generator

< >

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

Parameter

  • generator (Callable) β€” Fungsi generator yang yields contoh.
  • features (Features, opsional) β€” Fitur dataset.
  • gen_kwargs(dict, opsional) β€” Argumen kata kunci yang akan diteruskan ke callable generator. Anda dapat mendefinisikan dataset iterable yang terbagi (sharded) dengan meneruskan daftar shard di gen_kwargs. Hal ini dapat digunakan untuk meningkatkan shuffling dan saat mengiterasi dataset dengan beberapa worker.
  • split (NamedSplit, default ke Split.TRAIN) β€” Nama split yang akan ditugaskan ke dataset.

    Ditambahkan dalam 2.21.0

Buat Iterable Dataset dari generator.

Contoh:

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

Parameter

  • column_names (Union[str, List[str]]) β€” Nama kolom yang akan dihapus.

Mengembalikan

IterableDataset

Salinan objek dataset tanpa kolom yang akan dihapus.

Hapus satu atau beberapa kolom dalam dataset beserta fitur yang terkait dengannya. Penghapusan dilakukan secara langsung pada contoh saat iterasi dataset.

Contoh:

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

Parameter

  • column_names (Union[str, List[str]]) β€” Nama kolom yang akan dipilih.

Mengembalikan

IterableDataset

Salinan objek dataset dengan kolom yang dipilih.

Pilih satu atau beberapa kolom dalam dataset beserta fitur yang terkait dengannya. Pemilihan dilakukan secara langsung pada contoh-contoh saat iterasi dataset.

Contoh:

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

Parameter

  • column (str) β€” Nama kolom.
  • feature (Feature) β€” Fitur target.

Mengembalikan

IterableDataset

Cast kolom ke fitur untuk decoding.

Contoh:

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

Parameter

  • features (Features) β€” Fitur baru untuk mengubah tipe dataset. Nama field dalam fitur harus cocok dengan nama kolom saat ini. Tipe data juga harus dapat dikonversi dari satu tipe ke tipe lainnya. Untuk konversi yang tidak sederhana, misalnya string <-> ClassLabel, gunakan map() untuk memperbarui Dataset.

Mengembalikan

IterableDataset

Salinan dataset dengan fitur yang telah di-cast.

Cast dataset ke set fitur baru.

Contoh:

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

Parameter

  • enable (bool, defaultnya True) β€” Mengaktifkan atau menonaktifkan fitur decoding.
  • num_threads (int, opsional, defaultnya None) β€” Aktifkan multithreading untuk decoding fitur. Perhatikan bahwa load_dataset() sudah menggunakan beberapa thread secara default saat streaming dataset di HF dengan fitur yang dapat didekode. Secara default, num_threads diatur ke 32 jika setidaknya satu fitur memerlukan decoding, dan 0 jika tidak.

Mengembalikan

IterableDataset

Salinan dataset dengan fitur yang telah di-cast.

Aktifkan atau nonaktifkan decoding fitur dataset untuk audio, gambar, dan video.

Saat diaktifkan (default), tipe media akan didekodekan:

  • audio -> dict berisi β€œarray” dan β€œsampling_rate” dan β€œpath”
  • image -> PIL.Image
  • video -> torchcodec.decoders.VideoDecoder

Multithreading dapat diaktifkan dengan num_threads: setiap file media kemudian dibaca dan didekodekan dalam worker thread, sehingga round trip jaringan dari contoh yang berurutan dapat tumpang tindih. Hal ini sangat berguna untuk mempercepat streaming data jarak jauh, dan load_dataset() sudah mengaktifkannya secara default saat streaming dataset jarak jauh yang memiliki fitur yang dapat didekodekan (lihat HF_DATASETS_DECODE_NUM_THREADS). Dataset yang dibaca dari disk lokal di-stream dengan num_threads=0, karena multithreading bisa lebih lambat daripada dekoding di thread utama untuk data lokal pada disk yang cepat. Karena contoh didekodekan di muka, setiap thread yang sedang berjalan dapat menyimpan satu contoh di memori: turunkan num_threads untuk menggunakan memori lebih sedikit.

Menonaktifkan decoding berguna jika Anda ingin mengiterasi path atau byte dari file media tanpa benar-benar mendekode kontennya. Untuk menonaktifkan decoding, Anda dapat menggunakan .decode(False), yang setara dengan memanggil .cast() atau .cast_column() dengan semua tipe Audio, Image, dan Video diatur ke decode=False.

Contoh:

Nonaktifkan decoding:

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

Percepat streaming dengan 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 )

Parameter

  • batch_size (int) β€” ukuran setiap batch yang dihasilkan.
  • drop_last_batch (bool, default False) β€” Apakah batch terakhir yang lebih kecil dari batch_size harus dibuang

Iterasi melalui batch berukuran 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 )

Parameter

  • function (Callable, opsional, defaultnya None) β€” Fungsi yang diterapkan secara langsung pada contoh saat Anda mengiterasi dataset. Fungsi ini harus memiliki salah satu dari signature berikut:
    • function(example: Dict[str, Any]) -> Dict[str, Any] jika batched=False dan with_indices=False
    • function(example: Dict[str, Any], idx: int) -> Dict[str, Any] jika batched=False dan with_indices=True
    • function(batch: Dict[str, List]) -> Dict[str, List] jika batched=True dan with_indices=False
    • function(batch: Dict[str, List], indices: List[int]) -> Dict[str, List] jika batched=True dan with_indices=True

    Untuk penggunaan lanjutan, fungsi juga dapat mengembalikan pyarrow.Table. Jika fungsi bersifat asinkron, maka map akan menjalankan fungsi Anda secara paralel. Selain itu, jika fungsi Anda tidak mengembalikan apa pun (None), maka map akan menjalankan fungsi Anda dan mengembalikan dataset tanpa perubahan. Jika tidak ada fungsi yang diberikan, gunakan fungsi identitas sebagai default: lambda x: x.

  • with_indices (bool, defaultnya False) β€” Berikan indeks contoh ke function. Perhatikan bahwa dalam kasus ini, tanda tangan function harus berupa def function(example, idx[, rank]): ....
  • input_columns (Optional[Union[str, List[str]]], defaultnya None) β€” Kolom yang akan diteruskan ke function sebagai argumen posisional. Jika None, dict pemetaan ke semua kolom yang diformat akan diteruskan sebagai satu argumen.
  • batched (bool, defaultnya False) β€” Berikan batch contoh ke function.
  • batch_size (int, opsional, defaultnya 1000) β€” Jumlah contoh per batch yang diberikan ke function jika batched=True. batch_size <= 0 atau batch_size == None maka seluruh dataset diberikan sebagai satu batch ke function.
  • drop_last_batch (bool, defaultnya False) β€” Apakah batch terakhir yang lebih kecil dari batch_size harus dibuang alih-alih diproses oleh fungsi.
  • remove_columns ([List[str]], opsional, default None) β€” Hapus pilihan kolom saat melakukan pemetaan. Kolom akan dihapus sebelum memperbarui contoh dengan output dari function, yaitu jika function menambahkan kolom dengan nama yang ada di remove_columns, kolom-kolom ini akan tetap dipertahankan.
  • features ([Features], opsional, default None) β€” Tipe fitur dari dataset yang dihasilkan.
  • fn_kwargs (Dict, opsional, default None) β€” Argumen kata kunci yang akan diteruskan ke function.

Terapkan fungsi ke semua contoh dalam dataset iterable (secara individual atau dalam batch) dan perbarui mereka. Jika fungsi Anda mengembalikan kolom yang sudah ada, maka kolom tersebut akan ditimpa. Fungsi diterapkan secara langsung (on-the-fly) pada contoh saat iterasi dataset.

Anda dapat menentukan apakah fungsi harus di-batch atau tidak dengan parameter batched:

  • Jika False, maka fungsi tersebut menerima 1 contoh dan harus mengembalikan 1 contoh. Sebuah contoh adalah sebuah kamus, misalnya {"text": "Hello there !"}.
  • Jika True dan batch_size adalah 1, maka fungsi mengambil batch berisi 1 contoh sebagai input dan dapat mengembalikan batch berisi 1 atau lebih contoh. Sebuah batch adalah kamus, misalnya batch berisi 1 contoh adalah {β€œtext”: [β€œHello there !”]}.
  • Jika True dan batch_size adalah n > 1, maka fungsi tersebut mengambil batch berisi n contoh sebagai input dan dapat mengembalikan batch berisi n contoh, atau dengan jumlah contoh yang sembarang. Perhatikan bahwa batch terakhir mungkin memiliki kurang dari n contoh. Sebuah batch adalah kamus, misalnya batch berisi n contoh adalah {"text": ["Hello there !"] * n}.

Jika fungsi bersifat asinkron, maka map akan menjalankan fungsi Anda secara paralel, dengan hingga seribu panggilan simultan. Disarankan untuk menggunakan asyncio.Semaphore di dalam fungsi Anda jika Anda ingin menetapkan jumlah maksimum operasi yang dapat berjalan pada saat yang sama.

Contoh:

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

Parameter

  • original_column_name (str) β€” Nama kolom yang akan diganti namanya.
  • new_column_name (str) β€” Nama baru untuk kolom.

Mengembalikan

IterableDataset

Salinan dataset dengan kolom yang namanya diubah.

Ganti nama kolom dalam dataset, dan pindahkan fitur yang terkait dengan kolom asli ke bawah nama kolom baru.

Contoh:

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

filter

< >

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

Parameter

  • function (Callable) β€” Callable dengan salah satu dari signature berikut:
    • function(example: Dict[str, Any]) -> bool jika with_indices=False, batched=False
    • function(example: Dict[str, Any], indices: int) -> bool jika with_indices=True, batched=False
    • function(example: Dict[str, List]) -> List[bool] jika with_indices=False, batched=True
    • function(example: Dict[str, List], indices: List[int]) -> List[bool] jika with_indices=True, batched=True

    Jika fungsi bersifat asinkron, maka filter akan menjalankan fungsi Anda secara paralel. Jika tidak ada fungsi yang diberikan, defaultnya adalah fungsi yang selalu True: lambda x: True.

  • with_indices (bool, defaultnya False) β€” Berikan indeks contoh ke function. Perhatikan bahwa dalam kasus ini, tanda tangan function harus berupa def function(example, idx): ....
  • input_columns (str atau List[str], opsional) β€” Kolom yang akan diteruskan ke function sebagai argumen posisional. Jika None, dict yang memetakan ke semua kolom terformat akan diteruskan sebagai satu argumen.
  • batched (bool, defaultnya False) β€” Berikan batch contoh ke function.
  • batch_size (int, opsional, default 1000) β€” Jumlah contoh per batch yang diberikan ke function jika batched=True.
  • fn_kwargs (Dict, opsional, default None) β€” Argumen kata kunci yang akan diteruskan ke function.

Terapkan fungsi filter ke semua elemen sehingga dataset hanya mencakup contoh sesuai dengan fungsi filter. Penyaringan dilakukan secara langsung saat iterasi pada dataset.

Jika fungsi bersifat asinkron, maka filter akan menjalankan fungsi Anda secara paralel, dengan hingga seribu panggilan simultan (dapat dikonfigurasi). Disarankan untuk menggunakan asyncio.Semaphore di fungsi Anda jika Anda ingin mengatur jumlah maksimum operasi yang dapat berjalan pada saat yang sama.

Contoh:

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

Parameter

  • seed (int, opsional, default None) β€” Seed acak yang akan digunakan untuk mengacak dataset. Ini digunakan untuk mengambil sampel dari buffer pengacakan dan juga untuk mengacak shard data.
  • generator (numpy.random.Generator, opsional) β€” Generator acak Numpy yang digunakan untuk menghitung permutasi baris dataset. Jika generator=None (default), menggunakan np.random.default_rng (BitGenerator default (PCG64) dari NumPy).
  • buffer_size (int, defaultnya 1000) β€” Ukuran buffer.
  • max_buffer_input_shards (int, defaultnya 10) β€” Jumlah maksimum shard yang digunakan untuk mengisi buffer sekaligus.

Mengacak elemen dataset ini secara acak.

Dataset ini mengisi buffer dengan buffer_size elemen, kemudian mengambil sampel elemen secara acak dari buffer ini, menggantikan elemen yang dipilih dengan elemen baru. Untuk pengacakan sempurna, ukuran buffer harus lebih besar atau sama dengan ukuran penuh dataset.

Sebagai contoh, jika dataset Anda berisi 10.000 elemen tetapi buffer_size diatur ke 1000, maka shuffle awalnya akan memilih elemen acak hanya dari 1000 elemen pertama di dalam buffer. Setelah sebuah elemen dipilih, ruang elemennya di dalam buffer digantikan oleh elemen berikutnya (yaitu elemen ke-1.001), sehingga buffer tetap berisi 1000 elemen.

Jika dataset terdiri dari beberapa shard, buffer diisi menggunakan hingga max_buffer_input_shards shard pada satu waktu dan juga mengacak urutan shard. Hal ini sangat meningkatkan kualitas pengacakan. Shard input diinterleaved di dalam setiap node dan worker, dengan mempertahankan jumlah shard yang tersedia untuk pemuatan data paralel.

Namun, jika urutan telah diperbaiki dengan menggunakan skip() atau take(), maka urutan shard tetap tidak berubah dan hanya satu shard pada satu waktu yang digunakan untuk mengisi buffer.

Contoh:

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

batch

< >

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

Parameter

  • batch_size (int, opsional) β€” Jumlah sampel dalam setiap batch.
  • by_column (Union[str, list[str], opsional β€” Kolom yang digunakan untuk mengelompokkan contoh ke dalam batch. Contoh berurutan dengan nilai yang sama untuk kolom tersebut akan dikelompokkan ke dalam batch yang sama. Ini juga bisa berupa daftar kolom jika Anda ingin membuat batch berdasarkan beberapa kolom. Jika membuat batch berdasarkan kolom, batch_size hanya digunakan untuk mengontrol ukuran batch yang akan dikelompokkan atau dipotong selama akumulasi.

    Ditambahkan dalam 4.9.0

  • drop_last_batch (bool, defaultnya False) β€” Apakah akan membuang batch terakhir yang tidak lengkap.

Kelompokkan sampel dari dataset menjadi batch.

Contoh:

Ukuran batch tetap:

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

Batch dari sampel berurutan dengan nilai identik untuk β€œmy_column”:

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

lewati

< >

( n: int )

Parameter

  • n (int) β€” Jumlah elemen yang dilewati.

Buat IterableDataset baru yang melewati n elemen pertama.

Contoh:

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

ambil

< >

( n: int )

Parameter

  • n (int) β€” Jumlah elemen yang diambil.

Buat IterableDataset baru dengan hanya n elemen pertama.

Contoh:

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

Parameter

  • num_shards (int) β€” Berapa banyak shard untuk membagi dataset.
  • index (int) β€” Shard mana yang akan dipilih dan dikembalikan.
  • contiguous β€” (bool, defaultnya True): Apakah akan memilih blok indeks yang berurutan untuk shard.

Kembalikan shard ke-index dari dataset yang dipecah menjadi num_shards bagian.

Ini memecah secara deterministik. dataset.shard(n, i) membagi dataset menjadi potongan-potongan yang berurutan, sehingga dapat dengan mudah digabungkan kembali setelah diproses. Jika dataset.num_shards % n == l, maka l dataset pertama masing-masing memiliki (dataset.num_shards // n) + 1 shard, dan dataset sisanya memiliki (dataset.num_shards // n) shard. datasets.concatenate_datasets([dset.shard(n, i) for i in range(n)]) mengembalikan dataset dengan urutan yang sama seperti aslinya. Secara khusus, dataset.shard(dataset.num_shards, i) mengembalikan dataset dengan 1 shard.

Catatan: n harus kurang dari atau sama dengan jumlah shard dalam dataset dataset.num_shards.

Di sisi lain, dataset.shard(n, i, contiguous=False) berisi semua shard dari dataset yang indeksnya mod n = i.

Pastikan untuk melakukan sharding sebelum menggunakan operator acak (seperti shuffle). Sebaiknya operator sharding digunakan di awal pipeline dataset.

Contoh:

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

< >

( )

Reshard dataset jika memungkinkan, yaitu dengan memecah shard saat ini lebih lanjut menjadi shard yang lebih banyak. Hal ini meningkatkan jumlah shard dan dataset yang dihasilkan memiliki num_shards >= previous_num_shards. Kesamaan dapat terjadi jika tidak ada shard yang dapat dipecah lebih lanjut.

Mekanisme resharding bergantung pada format file dataset:

  • Parquet: shard per grup baris, bukan per file
  • Vortex: shard per rentang chunk berurutan (masing-masing sekitar 64MB data file) alih-alih per file
  • Lainnya: belum diimplementasikan (kontribusi disambut baik!)

Pastikan untuk melakukan reshard/shard sebelum menggunakan operator acak (seperti shuffle). Sebaiknya operator shard digunakan di awal pipeline dataset.

Contoh:

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

Parameter

  • num_times (int) atau (None) β€” Jumlah pengulangan dataset. Jika None, dataset akan diulang tanpa batas.

Buat IterableDataset baru yang mengulang dataset dasar sebanyak num_times kali.

Input kosong mengakhiri proses bahkan ketika num_times adalah None.

Catatan: Efek pemanggilan shuffle setelah repeat sangat bergantung pada ukuran buffer. Dengan buffer_size 1, data duplikat tidak pernah terlihat dalam iterasi yang sama, bahkan setelah pengacakan: ds.repeat(n).shuffle(seed=42, buffer_size=1) ekuivalen dengan ds.shuffle(seed=42, buffer_size=1).repeat(n), dan hanya mengacak urutan shard di dalam setiap iterasi. Dengan ukuran buffer >= (jumlah sampel dalam dataset * num_times), kita mendapatkan pengacakan penuh dari data yang diulang, yaitu kita dapat mengamati duplikat dalam iterasi yang sama.

Contoh:

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

Parameter

  • path_or_buf (PathLike atau FileOrBuffer) β€” Bisa berupa path ke file (mis. file.csv), URI remote (mis. hf://datasets/username/my_dataset_name/data.csv), atau BinaryIO, tempat dataset akan disimpan dalam format yang ditentukan.
  • batch_size (int, opsional) β€” Ukuran batch yang dimuat ke memori dan ditulis sekaligus. Nilai defaultnya adalah datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • storage_options (dict, opsional) β€” Pasangan kunci/nilai yang akan diteruskan ke backend sistem file, jika ada.
  • **to_csv_kwargs (argumen kata kunci tambahan) β€” Parameter untuk diteruskan ke pandas.DataFrame.to_csv dari pandas. Parameter index secara default bernilai False jika tidak ditentukan. Jika Anda ingin menulis indeks, teruskan index=True dan juga atur nama untuk kolom indeks dengan meneruskan index_label.

Mengembalikan

int

Jumlah karakter atau byte yang ditulis.

Mengekspor dataset ke csv.

Ini mengiterasi dataset dan memuatnya sepenuhnya ke memori sebelum menuliskannya.

Contoh:

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

to_pandas

< >

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

Parameter

  • batch_size (int, opsional) β€” Ukuran (jumlah baris) dari batch jika batched adalah True. Nilai defaultnya adalah datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • batched (bool) β€” Atur ke True untuk mengembalikan generator yang menghasilkan dataset dalam bentuk batch berisi batch_size baris. Defaultnya False (mengembalikan seluruh dataset sekaligus).

Mengembalikan dataset sebagai pandas.DataFrame. Dapat juga mengembalikan generator untuk dataset besar.

Contoh:

>>> ds.to_pandas()

to_dict

< >

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

Parameter

  • batch_size (int, opsional) β€” Ukuran (jumlah baris) dari batch jika batched adalah True. Nilai defaultnya adalah datasets.config.DEFAULT_MAX_BATCH_SIZE.

Mengembalikan dataset sebagai dict Python. Dapat juga mengembalikan generator untuk dataset besar.

Contoh:

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

Parameter

  • path_or_buf (PathLike atau FileOrBuffer) β€” Bisa berupa path ke file (mis. file.json), URI remote (mis. hf://datasets/username/my_dataset_name/data.json), atau BinaryIO, tempat dataset akan disimpan dalam format yang ditentukan.
  • batch_size (int, opsional) β€” Ukuran batch yang dimuat ke memori dan ditulis sekaligus. Nilai defaultnya adalah datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • storage_options (dict, opsional) β€” Pasangan kunci/nilai yang akan diteruskan ke backend sistem file, jika ada.
  • **to_json_kwargs (argumen kata kunci tambahan) β€” Parameter untuk diteruskan ke pandas.DataFrame.to_json dari pandas. Argumen default adalah lines=True dan orient="records". The parameter indexdefaults toFalseiforientisβ€œsplit”orβ€œtable”. If you would like to write the index, pass index=True`.

Mengembalikan

int

Jumlah karakter atau byte yang ditulis.

Ekspor dataset ke JSON Lines atau JSON.

Ini mengiterasi dataset dan memuatnya sepenuhnya ke memori sebelum menuliskannya.

Format output default adalah JSON Lines. Untuk mengekspor ke JSON, berikan argumen lines=False dan orient yang diinginkan.

Contoh:

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

Parameter

  • path_or_buf (PathLike atau FileOrBuffer) β€” Bisa berupa path ke file (mis. file.parquet), URI remote (mis. hf://datasets/username/my_dataset_name/data.parquet), atau BinaryIO, tempat dataset akan disimpan dalam format yang ditentukan.
  • batch_size (int, opsional) β€” Ukuran batch yang dimuat ke memori dan ditulis sekaligus. Nilai defaultnya adalah datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • storage_options (dict, opsional) β€” Pasangan kunci/nilai yang akan diteruskan ke backend sistem file, jika ada.

    Ditambahkan dalam 2.19.0

  • **parquet_writer_kwargs (argumen kata kunci tambahan) β€” Parameter untuk diteruskan ke pyarrow.parquet.ParquetWriter dari PyArrow.

Mengembalikan

int

Jumlah karakter atau byte yang ditulis.

Mengekspor dataset ke parquet

Contoh:

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

Parameter

  • name (str) β€” Nama tabel SQL.
  • con (str atau sqlite3.Connection atau sqlalchemy.engine.Connection atau sqlalchemy.engine.Connection) β€” String URI atau objek koneksi SQLite3/SQLAlchemy yang digunakan untuk menulis ke database.
  • batch_size (int, opsional) β€” Ukuran batch yang dimuat ke memori dan ditulis sekaligus. Nilai defaultnya adalah datasets.config.DEFAULT_MAX_BATCH_SIZE.
  • **sql_writer_kwargs (argumen kata kunci tambahan) β€” Parameter untuk diteruskan ke pandas.DataFrame.to_sql dari pandas. Parameter index secara default bernilai False jika tidak ditentukan. Jika Anda ingin menulis indeks, teruskan index=True dan juga atur nama untuk kolom indeks dengan meneruskan index_label.

Mengembalikan

int

Jumlah rekaman yang ditulis.

Mengekspor dataset ke basis data SQL.

Contoh:

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

Parameter

  • repo_id (str) β€” ID repositori yang akan di-push, dalam format berikut: <user>/<dataset_name> atau <org>/<dataset_name>. Juga menerima <dataset_name>, yang secara default akan menggunakan namespace dari pengguna yang sedang login.

    Itu juga bisa menjadi lokasi di dalam bucket, misalnya buckets/<user_or_org>/<bucket_name>/...

  • config_name (str, defaultnya β€œdefault”) β€” Nama konfigurasi (atau subset) dari dataset. Defaultnya β€œdefault”.
  • set_default (bool, opsional) β€” Apakah akan menetapkan konfigurasi ini sebagai konfigurasi default. Jika tidak, konfigurasi default adalah yang bernama β€œdefault”.
  • split (str, opsional) β€” Nama split yang akan diberikan ke dataset tersebut. Bawaan adalah self.split.
  • data_dir (str, opsional) β€” Nama direktori yang akan berisi file data yang diunggah. Nilainya secara default sama dengan config_name jika berbeda dari β€œdefault”, jika tidak maka β€œdata”.
  • commit_message (str, opsional) β€” Pesan untuk commit saat push. Akan default ke "Upload dataset".
  • commit_description (str, opsional) β€” Deskripsi dari commit yang akan dibuat. Selain itu, deskripsi dari PR jika PR dibuat (create_pr adalah True).
  • private (bool, opsional) β€” Apakah membuat repo menjadi privat. Jika None (default), repo akan menjadi publik kecuali default organisasi adalah privat. Nilai ini diabaikan jika repo sudah ada.
  • token (str, opsional) β€” Token autentikasi opsional untuk Hugging Face Hub. Jika tidak ada token yang diteruskan, akan menggunakan token yang disimpan secara lokal saat login dengan hf auth login. Akan memicu error jika tidak ada token yang diteruskan dan pengguna tidak dalam keadaan login.
  • revision (str, opsional) β€” Cabang untuk mendorong file yang diunggah. Bawaan adalah cabang "main".
  • create_pr (bool, opsional, default False) β€” Apakah akan membuat PR dengan file yang diunggah atau langsung melakukan commit.
  • max_shard_size (int atau str, opsional) β€” Ukuran maksimum opsional untuk shard dataset yang akan diunggah ke hub. Jika dinyatakan sebagai string, harus berupa angka diikuti oleh satuan (seperti "5MB"). Jika tidak disediakan, jumlah shard secara default mengikuti .num_shards dataset ini.
  • num_shards (int, opsional) β€” Jumlah shard yang akan ditulis. Jika max_shard_size diberikan dan num_shards tidak, maka jumlah shard diperkirakan dari max_shard_size. Nilai ini bisa lebih besar dari .num_shards dataset ini: setiap shard input kemudian disebar ke beberapa shard output dengan menulis contoh-contohnya secara bergiliran (round-robin).
  • embed_external_files (bool, defaultnya True) β€” Apakah akan menyematkan byte file ke dalam shard. Secara khusus, ini akan melakukan hal berikut sebelum push untuk field bertipe:
    • Audio dan Image: hapus informasi jalur lokal dan tanamkan konten file ke dalam file Parquet.
  • num_proc (int, opsional, defaultnya None) β€” Jumlah proses saat menyiapkan dan mengunggah dataset. Ini berguna jika dataset terdiri dari banyak sampel dan transformasi. I menggunakan konteks β€œspawn” untuk bekerja dengan hf_xet, klien rust untuk unggahan cepat ke HF. Multiprocessing dinonaktifkan secara default.

Mendorong dataset ke hub sebagai dataset Parquet. Dataset didorong menggunakan permintaan HTTP dan tidak memerlukan instalasi git atau git-lfs.

File Parquet yang dihasilkan bersifat mandiri secara bawaan. Jika dataset Anda berisi data Image, Audio atau Video, file Parquet akan menyimpan byte dari file gambar atau audio Anda. Anda dapat menonaktifkan ini dengan mengatur embed_external_files ke False.

Contoh:

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

Jika dataset Anda memiliki beberapa split (misalnya train/validation/test):

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

Jika Anda ingin menambahkan konfigurasi baru (atau subset) ke dataset (misalnya jika dataset memiliki beberapa tugas/versi/bahasa):

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

Muat state_dict dari dataset. Iterasi akan dimulai ulang dari contoh berikutnya dari saat state disimpan.

Melanjutkan proses akan kembali tepat ke titik di mana checkpoint disimpan, kecuali dalam dua kasus berikut:

  1. contoh dari buffer shuffle hilang saat melanjutkan dan buffer diisi ulang dengan data baru
  2. kombinasi .with_format(arrow) dan .map() yang di-batch dapat melewatkan satu batch.

Contoh:

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

yang mengembalikan:

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

Mengembalikan

dict

Dapatkan state_dict saat ini dari dataset. Ini sesuai dengan state pada contoh terakhir yang dihasilkan.

Melanjutkan proses akan kembali tepat ke titik di mana checkpoint disimpan, kecuali dalam dua kasus berikut:

  1. contoh dari buffer shuffle hilang saat melanjutkan dan buffer diisi ulang dengan data baru
  2. kombinasi .with_format(arrow) dan .map() yang di-batch dapat melewatkan satu batch.

Contoh:

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

yang mengembalikan:

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

< >

( )

objek DatasetInfo yang berisi semua metadata dalam dataset.

split

< >

( )

objek NamedSplit yang sesuai dengan split dataset bernama.

builder_name

< >

( )

sitasi

< >

( )

config_name

< >

( )

dataset_size

< >

( )

deskripsi

< >

( )

download_checksums

< >

( )

download_size

< >

( )

fitur

< >

( )

beranda

< >

( )

lisensi

< >

( )

size_in_bytes

< >

( )

supervised_keys

< >

( )

versi

< >

( )

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 )

Parameter

  • path_or_paths (path-like atau daftar path-like) β€” Path file CSV.
  • split (NamedSplit, opsional) β€” Nama pemisahan yang akan ditugaskan ke dataset.
  • features (Features, opsional) β€” Fitur dataset.
  • keep_in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.
  • **kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang akan diteruskan ke pandas.read_csv.

Buat IterableDataset dari file CSV.

Contoh:

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

Parameter

  • path_or_paths (path-like atau daftar path-like) β€” Path file JSON atau JSON Lines.
  • split (NamedSplit, opsional) β€” Nama pemisahan yang akan ditugaskan ke dataset.
  • features (Features, opsional) β€” Fitur dataset.
  • keep_in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.
  • field (str, opsional) β€” Nama field dari file JSON tempat dataset berada.
  • **kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang akan diteruskan ke JsonConfig.

Buat IterableDataset dari file JSON atau JSON Lines.

Contoh:

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

Parameter

  • path_or_paths (path-like atau daftar path-like) β€” Path file Parquet.
  • split (NamedSplit, opsional) β€” Nama split yang akan ditugaskan ke dataset.
  • features (Features, opsional) β€” Fitur dataset.
  • keep_in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.
  • columns (List[str], opsional) β€” Jika bukan None, hanya kolom-kolom ini yang akan dibaca dari file. Nama kolom dapat berupa prefiks dari field bersarang, misalnya β€˜a’ akan memilih β€˜a.b’, β€˜a.c’, dan β€˜a.d.e’.
  • filters (Union[pyarrow.dataset.Expression, list[tuple], list[list[tuple]]], opsional) β€” Kembalikan hanya baris yang cocok dengan filter. Jika memungkinkan, predikat akan didorong ke bawah untuk memanfaatkan informasi partisi atau metadata internal yang ditemukan di sumber data, misalnya statistik Parquet. Jika tidak, filterkan RecordBatches yang dimuat sebelum menghasilkannya.
  • fragment_scan_options (pyarrow.dataset.ParquetFragmentScanOptions, opsional) β€” Opsi spesifik pemindaian untuk fragmen Parquet. Ini sangat berguna untuk mengonfigurasi buffering dan caching.

    Ditambahkan dalam 4.2.0

  • on_bad_files (Literal["error", "warn", "skip"], opsional, defaultnya β€œerror”) β€” Tentukan tindakan yang akan dilakukan saat menemukan file yang rusak (file yang tidak dapat dibaca). Nilai yang diizinkan adalah :
    • β€˜error’, lempar Exception ketika file yang rusak ditemui.
    • β€˜warn’, mengeluarkan peringatan ketika file yang rusak ditemukan dan melewati file tersebut.
    • β€˜skip’, lewati file yang rusak tanpa memicu atau memperingatkan saat ditemukan.

    Ditambahkan dalam 4.2.0

  • **kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang akan diteruskan ke ParquetConfig.

Buat IterableDataset dari file Parquet.

Contoh:

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

Muat subset kolom:

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

Saring data secara efisien, dengan kemungkinan melewati seluruh file atau grup baris:

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

Parameter

  • path_or_paths (path-like atau daftar path-like) β€” Path file teks.
  • split (NamedSplit, opsional) β€” Nama split yang akan ditugaskan ke dataset.
  • features (Features, opsional) β€” Fitur dataset.
  • keep_in_memory (bool, defaultnya False) β€” Apakah menyalin data ke dalam memori.
  • keep_linebreaks β€” (bool, defaultnya False): Apakah akan mempertahankan baris baru.
  • sample_by (Literal["line", "paragraph", "document"], default β€œline”) β€” Apakah memuat data per baris, paragraf, atau dokumen. Secara default, satu baris dalam dataset = satu baris.
  • **kwargs (argumen kata kunci tambahan) β€” Argumen kata kunci yang akan diteruskan ke TextConfig.

Buat IterableDataset dari file teks.

Contoh:

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

kelas datasets.IterableColumn

< >

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

Iterable untuk kolom tertentu dari IterableDataset.

Contoh:

Iterasi pada teks di kolom β€œtext” dari dataset:

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

Ini juga berfungsi dengan kolom bersarang:

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

IterableDatasetDict

Dictionary dengan nama split sebagai kunci (misalnya β€˜train’, β€˜test’), dan objek IterableDataset sebagai nilai.

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

Parameter

  • function (Callable, opsional, defaultnya None) β€” Fungsi yang diterapkan secara langsung pada contoh saat Anda mengiterasi dataset. Fungsi ini harus memiliki salah satu dari signature berikut:
    • function(example: Dict[str, Any]) -> Dict[str, Any] jika batched=False dan with_indices=False
    • function(example: Dict[str, Any], idx: int) -> Dict[str, Any] jika batched=False dan with_indices=True
    • function(batch: Dict[str, list]) -> Dict[str, list] jika batched=True dan with_indices=False
    • function(batch: Dict[str, list], indices: list[int]) -> Dict[str, list] jika batched=True dan with_indices=True

    Untuk penggunaan lanjutan, fungsi juga dapat mengembalikan pyarrow.Table. Jika fungsi bersifat asinkron, maka map akan menjalankan fungsi Anda secara paralel. Selain itu, jika fungsi Anda tidak mengembalikan apa pun (None), maka map akan menjalankan fungsi Anda dan mengembalikan dataset tanpa perubahan. Jika tidak ada fungsi yang diberikan, gunakan fungsi identitas sebagai default: lambda x: x.

  • with_indices (bool, defaultnya False) β€” Berikan indeks contoh ke function. Perhatikan bahwa dalam kasus ini, tanda tangan function harus berupa def function(example, idx[, rank]): ....
  • input_columns ([Union[str, list[str]]], opsional, defaultnya None) β€” Kolom yang akan diteruskan ke function sebagai argumen posisional. Jika None, dict pemetaan ke semua kolom yang diformat akan diteruskan sebagai satu argumen.
  • batched (bool, defaultnya False) β€” Berikan batch contoh ke function.
  • batch_size (int, opsional, defaultnya 1000) β€” Jumlah contoh per batch yang diberikan ke function jika batched=True.
  • drop_last_batch (bool, defaultnya False) β€” Apakah batch terakhir yang lebih kecil dari batch_size harus dibuang alih-alih diproses oleh fungsi.
  • remove_columns ([list[str]], opsional, default None) β€” Hapus pilihan kolom saat melakukan pemetaan. Kolom akan dihapus sebelum memperbarui contoh dengan output dari function, yaitu jika function menambahkan kolom dengan nama yang ada di remove_columns, kolom-kolom ini akan tetap dipertahankan.
  • fn_kwargs (Dict, opsional, defaultnya None) β€” Argumen kata kunci yang akan diteruskan ke function

Terapkan fungsi ke semua contoh dalam dataset iterable (secara individual atau dalam batch) dan perbarui mereka. Jika fungsi Anda mengembalikan kolom yang sudah ada, maka kolom tersebut akan ditimpa. Fungsi diterapkan secara langsung (on-the-fly) pada contoh saat iterasi dataset. Transformasi diterapkan ke semua dataset dalam kamus dataset.

Anda dapat menentukan apakah fungsi harus di-batch atau tidak dengan parameter batched:

  • Jika False, maka fungsi tersebut menerima 1 contoh dan harus mengembalikan 1 contoh. Sebuah contoh adalah sebuah kamus, misalnya {"text": "Hello there !"}.
  • Jika True dan batch_size adalah 1, maka fungsi mengambil batch berisi 1 contoh sebagai input dan dapat mengembalikan batch berisi 1 atau lebih contoh. Sebuah batch adalah kamus, misalnya batch berisi 1 contoh adalah {"text": ["Hello there !"]}.
  • Jika True dan batch_size adalah n > 1, maka fungsi tersebut mengambil batch berisi n contoh sebagai input dan dapat mengembalikan batch berisi n contoh, atau dengan jumlah contoh yang sembarang. Perhatikan bahwa batch terakhir mungkin memiliki kurang dari n contoh. Sebuah batch adalah kamus, misalnya batch berisi n contoh adalah {"text": ["Hello there !"] * n}.

Jika fungsi bersifat asinkron, maka map akan menjalankan fungsi Anda secara paralel, dengan hingga seribu panggilan simultan. Disarankan untuk menggunakan asyncio.Semaphore di dalam fungsi Anda jika Anda ingin menetapkan jumlah maksimum operasi yang dapat berjalan pada saat yang sama.

Contoh:

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

filter

< >

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

Parameter

  • function (Callable) β€” Callable dengan salah satu dari signature berikut:
    • function(example: Dict[str, Any]) -> bool jika with_indices=False, batched=False
    • function(example: Dict[str, Any], indices: int) -> bool jika with_indices=True, batched=False
    • function(example: Dict[str, list]) -> list[bool] jika with_indices=False, batched=True
    • function(example: Dict[str, list], indices: list[int]) -> list[bool] jika with_indices=True, batched=True

    Jika tidak ada fungsi yang diberikan, secara default menggunakan fungsi yang selalu True: lambda x: True.

  • with_indices (bool, defaultnya False) β€” Berikan indeks contoh ke function. Perhatikan bahwa dalam kasus ini, tanda tangan function harus berupa def function(example, idx): ....
  • input_columns (str atau list[str], opsional) β€” Kolom yang akan diteruskan ke function sebagai argumen posisional. Jika None, dict yang memetakan ke semua kolom terformat akan diteruskan sebagai satu argumen.
  • batched (bool, defaultnya False) β€” Berikan batch contoh ke function
  • batch_size (int, opsional, defaultnya 1000) β€” Jumlah contoh per batch yang diberikan ke function jika batched=True.
  • fn_kwargs (Dict, opsional, defaultnya None) β€” Argumen kata kunci yang akan diteruskan ke function

Terapkan fungsi filter ke semua elemen sehingga dataset hanya mencakup contoh sesuai dengan fungsi filter. Penyaringan dilakukan secara langsung saat iterasi pada dataset. Penyaringan diterapkan ke semua dataset dalam kamus dataset.

Contoh:

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

Parameter

  • seed (int, opsional, default None) β€” Seed acak yang akan digunakan untuk mengacak dataset. Ini digunakan untuk mengambil sampel dari buffer pengacakan dan juga untuk mengacak shard data.
  • generator (numpy.random.Generator, opsional) β€” Generator acak Numpy yang digunakan untuk menghitung permutasi baris dataset. Jika generator=None (default), menggunakan np.random.default_rng (BitGenerator default (PCG64) dari NumPy).
  • buffer_size (int, defaultnya 1000) β€” Ukuran buffer.
  • max_buffer_input_shards (int, defaultnya 10) β€” Jumlah maksimum shard yang digunakan untuk mengisi buffer sekaligus.

Mengacak elemen dataset ini secara acak. Pengacakan diterapkan ke semua dataset dalam kamus dataset.

Dataset ini mengisi buffer dengan buffer_size elemen, kemudian mengambil sampel elemen secara acak dari buffer ini, menggantikan elemen yang dipilih dengan elemen baru. Untuk pengacakan sempurna, ukuran buffer harus lebih besar atau sama dengan ukuran penuh dataset.

Sebagai contoh, jika dataset Anda berisi 10.000 elemen tetapi buffer_size diatur ke 1000, maka shuffle awalnya akan memilih elemen acak hanya dari 1000 elemen pertama di dalam buffer. Setelah sebuah elemen dipilih, ruang elemennya di dalam buffer digantikan oleh elemen berikutnya (yaitu elemen ke-1.001), sehingga buffer tetap berisi 1000 elemen.

Jika dataset terdiri dari beberapa shard, ia juga melakukan shuffle pada urutan shard tersebut. Namun, jika urutan telah ditetapkan dengan menggunakan skip() atau take(), maka urutan shard tetap tidak berubah.

Contoh:

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

Parameter

  • type (str, opsional) β€” Jenis output yang dipilih dari [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']. None berarti mengembalikan objek python (default).

Kembalikan dataset dengan format yang ditentukan.

Contoh:

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

Parameter

  • features (Features) β€” Fitur baru untuk mengubah tipe dataset. Nama field dalam fitur harus cocok dengan nama kolom saat ini. Tipe data juga harus dapat dikonversi dari satu tipe ke tipe lainnya. Untuk konversi yang tidak sederhana, misalnya string <-> ClassLabel, gunakan map untuk memperbarui Dataset.

Mengembalikan

IterableDatasetDict

Salinan dataset dengan fitur yang telah di-cast.

Cast dataset ke set fitur baru. Penerapan type casting dilakukan pada semua dataset dalam dictionary dataset.

Contoh:

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

Parameter

  • column (str) β€” Nama kolom.
  • feature (Feature) β€” Fitur target.

Cast kolom menjadi fitur untuk decoding. Penerapan type casting dilakukan pada semua dataset dalam dataset dictionary.

Contoh:

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

Parameter

  • column_names (Union[str, list[str]]) β€” Nama kolom yang akan dihapus.

Mengembalikan

IterableDatasetDict

Salinan objek dataset tanpa kolom yang akan dihapus.

Hapus satu atau beberapa kolom dalam dataset beserta fitur yang terkait dengannya. Penghapusan dilakukan secara langsung pada contoh saat iterasi dataset. Penghapusan diterapkan ke semua dataset dalam kamus dataset.

Contoh:

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

Parameter

  • original_column_name (str) β€” Nama kolom yang akan diganti namanya.
  • new_column_name (str) β€” Nama baru untuk kolom.

Mengembalikan

IterableDatasetDict

Salinan dataset dengan kolom yang namanya diubah.

Ganti nama kolom dalam dataset, dan pindahkan fitur yang terkait dengan kolom asli ke bawah nama kolom baru. Penamaan ulang ini diterapkan ke semua dataset dalam kamus dataset.

Contoh:

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

Parameter

  • column_mapping (Dict[str, str]) β€” Pemetaan kolom untuk diubah namanya menjadi nama baru.

Mengembalikan

IterableDatasetDict

Salinan dataset dengan kolom yang namanya diubah

Ganti nama beberapa kolom dalam dataset, dan pindahkan fitur yang terkait dengan kolom asli ke bawah nama kolom baru. Penamaan ulang ini diterapkan ke semua dataset dalam kamus dataset.

Contoh:

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

Parameter

  • column_names (Union[str, list[str]]) β€” Nama kolom yang akan dipertahankan.

Mengembalikan

IterableDatasetDict

Salinan objek dataset dengan hanya kolom yang dipilih.

Pilih satu atau beberapa kolom dalam dataset beserta fitur yang terkait dengannya. Pemilihan dilakukan secara langsung pada contoh saat iterasi dataset. Pemilihan diterapkan ke semua dataset dalam kamus dataset.

Contoh:

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

Parameter

  • repo_id (str) β€” ID repositori yang akan di-push, dalam format berikut: <user>/<dataset_name> atau <org>/<dataset_name>. Juga menerima <dataset_name>, yang secara default akan menggunakan namespace dari pengguna yang sedang login.

    Itu juga bisa menjadi lokasi di dalam bucket, misalnya buckets/<user_or_org>/<bucket_name>/...

  • config_name (str) β€” Nama konfigurasi dari dataset. Defaultnya adalah β€œdefault”.
  • set_default (bool, opsional) β€” Apakah akan menetapkan konfigurasi ini sebagai konfigurasi default. Jika tidak, konfigurasi default adalah yang bernama β€œdefault”.
  • data_dir (str, opsional) β€” Nama direktori yang akan berisi file data yang diunggah. Nilainya secara default mengikuti config_name jika berbeda dari β€œdefault”, selain itu β€œdata”.

    Ditambahkan dalam 2.17.0

  • commit_message (str, opsional) β€” Pesan untuk commit saat push. Akan default ke "Upload dataset".
  • commit_description (str, opsional) β€” Deskripsi dari commit yang akan dibuat. Selain itu, deskripsi dari PR jika PR dibuat (create_pr adalah True).

    Ditambahkan dalam 2.16.0

  • private (bool, opsional) β€” Apakah membuat repo menjadi privat. Jika None (default), repo akan menjadi publik kecuali default organisasi adalah privat. Nilai ini diabaikan jika repo sudah ada.
  • token (str, opsional) β€” Token autentikasi opsional untuk Hugging Face Hub. Jika tidak ada token yang diteruskan, akan menggunakan token yang disimpan secara lokal saat login dengan hf auth login. Akan memicu error jika tidak ada token yang diteruskan dan pengguna tidak dalam keadaan login.
  • revision (str, opsional) β€” Cabang untuk mendorong file yang diunggah. Bawaan adalah cabang "main".
  • create_pr (bool, opsional, default False) β€” Apakah akan membuat PR dengan file yang diunggah atau langsung melakukan commit.
  • max_shard_size (int atau str, opsional) β€” Ukuran maksimum opsional untuk shard dataset yang akan diunggah ke hub. Jika dinyatakan sebagai string, harus berupa angka diikuti oleh satuan (seperti "500MB" atau "1GB"). Jika tidak disediakan, setiap split mempertahankan jumlah shard asli dari dataset.
  • num_shards (Dict[str, int], opsional) β€” Jumlah shard yang akan ditulis. Gunakan dictionary untuk mendefinisikan num_shards yang berbeda untuk setiap split. Jika max_shard_size diberikan dan num_shards untuk suatu split tidak diberikan, maka jumlah shard untuk split tersebut diperkirakan dari max_shard_size.
  • embed_external_files (bool, defaultnya True) β€” Apakah akan menyematkan byte file ke dalam shard. Secara khusus, ini akan melakukan hal berikut sebelum push untuk field bertipe:
    • Audio dan Image menghapus informasi jalur lokal dan menyematkan konten file ke dalam file Parquet.
  • num_proc (int, opsional, defaultnya None) β€” Jumlah proses saat menyiapkan dan mengunggah dataset. Ini berguna jika dataset terdiri dari banyak sampel atau file media yang akan disematkan. I menggunakan konteks β€œspawn” untuk bekerja dengan hf_xet, klien rust untuk pengunggahan cepat ke HF. Multiprocessing dinonaktifkan secara default.

    Ditambahkan dalam 4.0.0

Mendorong IterableDatasetDict ke hub sebagai dataset Parquet. IterableDatasetDict didorong menggunakan permintaan HTTP dan tidak memerlukan instalasi git atau git-lfs.

Setiap split dataset akan didorong secara independen. Dataset yang didorong akan mempertahankan nama split aslinya.

File Parquet yang dihasilkan bersifat mandiri secara bawaan: jika dataset Anda berisi data Image atau Audio, file Parquet akan menyimpan byte dari file gambar atau audio Anda. Anda dapat menonaktifkan ini dengan mengatur embed_external_files ke False.

Contoh:

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

Jika Anda ingin menambahkan konfigurasi baru (atau subset) ke dataset (misalnya jika dataset memiliki beberapa tugas/versi/bahasa):

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

Fitur

kelas datasets.Features

< >

( *args**kwargs )

Kamus khusus yang mendefinisikan struktur internal dari dataset.

Diinstansiasi dengan kamus bertipe dict[str, FieldType], di mana kunci adalah nama kolom yang diinginkan, dan nilai adalah tipe kolom tersebut.

FieldType dapat berupa salah satu dari berikut ini:

  • Fitur Value menentukan nilai satu tipe data, misalnya int64 atau string.
  • Fitur ClassLabel menentukan seperangkat kelas yang telah didefinisikan sebelumnya, yang dapat memiliki label yang terkait dengannya, dan akan disimpan sebagai bilangan bulat dalam dataset.
  • Python dict menentukan fitur komposit yang berisi pemetaan sub-field ke sub-fitur. Anda dapat memiliki field bersarang di dalam field bersarang dengan cara yang bebas.
  • List atau LargeList menentukan fitur komposit yang berisi urutan sub-fitur, semuanya dengan tipe fitur yang sama.
  • Fitur Array2D, Array3D, Array4D atau Array5D untuk array multidimensi.
  • Fitur Audio untuk menyimpan path absolut ke file audio atau dictionary dengan path relatif ke file audio (kunci β€œpath”) dan konten byte-nya (kunci β€œbytes”). Fitur ini memuat audio secara lazy dengan decoder.
  • Fitur Image untuk menyimpan path absolut ke file gambar, objek np.ndarray, objek PIL.Image.Image atau dictionary dengan path relatif ke file gambar (kunci β€œpath”) dan konten bytes-nya (kunci β€œbytes”). Fitur ini mengekstrak data gambar.
  • Fitur Video untuk menyimpan path absolut ke file video, objek torchcodec.decoders.VideoDecoder atau dictionary dengan path relatif ke file video (kunci β€œpath”) dan konten bytes-nya (kunci β€œbytes”). Fitur ini memuat video secara lazy dengan decoder.
  • Fitur Pdf untuk menyimpan path absolut ke file PDF, objek pdfplumber.pdf.PDF atau dictionary dengan path relatif ke file PDF (kunci β€œpath”) dan konten bytes-nya (kunci β€œbytes”). Fitur ini memuat PDF secara lazy dengan PDF reader.
  • Fitur Nifti untuk menyimpan path absolut ke file neuroimaging NIfTI, objek nibabel.Nifti1Image atau dictionary dengan path relatif ke file NIfTI (kunci β€œpath”) dan konten bytes-nya (kunci β€œbytes”). Fitur ini memuat file NIfTI secara lazy dengan nibabel.
  • Fitur Translation atau TranslationVariableLanguages yang spesifik untuk Machine Translation.
  • Fitur Json untuk menyimpan data tidak terstruktur, misalnya yang berisi tipe campuran/sembarang. Di balik layar

salin

< >

( )

Buat salinan dalam (deep copy) dari Features.

Contoh:

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

Parameter

  • batch (dict[str, list[Any]]) β€” Data batch dataset.
  • token_per_repo_id (dict, opsional) β€” Untuk mengakses dan mendekode file audio atau gambar dari repositori privat di Hub, Anda dapat meneruskan kamus repo_id (str) -> token (bool atau str)

Decode batch dengan decoding fitur kustom.

decode_column

< >

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

Parameter

  • column (list[Any]) β€” Data kolom dataset.
  • column_name (str) β€” Nama kolom dataset.

Decode kolom dengan decoding fitur kustom.

decode_example

< >

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

Parameter

  • example (dict[str, Any]) β€” Data baris dataset.
  • token_per_repo_id (dict, opsional) β€” Untuk mengakses dan mendekode file audio atau gambar dari repositori privat di Hub, Anda dapat meneruskan kamus repo_id (str) -> token (bool or str).

Contoh decode dengan decoding fitur kustom.

encode_batch

< >

( batch )

Parameter

  • batch (dict[str, list[Any]]) β€” Data dalam batch Dataset.

Encode batch ke dalam format untuk Arrow.

encode_column

< >

( columncolumn_name: str )

Parameter

  • column (list[Any]) β€” Data dalam kolom Dataset.
  • column_name (str) β€” Nama kolom dataset.

Enkode kolom ke dalam format untuk Arrow.

encode_example

< >

( example )

Parameter

  • example (dict[str, Any]) β€” Data dalam baris Dataset.

Enkodekan contoh ke dalam format untuk Arrow.

flatten

< >

( max_depth = 16 ) β†’ Features

Mengembalikan

Fitur

Fitur yang telah diratakan.

Ratakan fitur. Setiap kolom dictionary dihapus dan diganti dengan semua subfield yang dikandungnya. Field baru diberi nama dengan menggabungkan nama kolom asli dan nama subfield seperti ini: <original>.<subfield>.

Jika sebuah kolom berisi kamus bersarang, maka semua nama subfield tingkat bawah juga digabungkan untuk membentuk kolom baru: <original>.<subfield>.<subsubfield>, dan seterusnya.

Contoh:

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

Parameter

  • pa_schema (pyarrow.Schema) β€” Skema Arrow.

Konstruksi Features dari Skema Arrow. Hal ini juga memeriksa metadata skema untuk fitur Hugging Face Datasets. Field yang tidak nullable tidak didukung dan diatur menjadi nullable.

Selain itu, pa.dictionary tidak didukung dan menggunakan tipe dasarnya sebagai gantinya. Oleh karena itu, datasets mengonversi objek DictionaryArray menjadi nilai sebenarnya.

from_dict

< >

( dic ) β†’ Features

Parameter

  • dic (dict[str, Any]) β€” Kamus Python.

Mengembalikan

Fitur

Konstruksi [Features] dari dict.

Regenerasi objek fitur bersarang dari dict yang dideserialisasi. Kami menggunakan kunci _type untuk menyimpulkan nama dataclass dari fitur FieldType.

Fungsi ini memungkinkan sintaks konstruktor yang nyaman untuk mendefinisikan fitur dari kamus JSON yang telah dideserialisasi. Fungsi ini digunakan khususnya saat mendeserialisasi [DatasetInfo] yang telah dituangkan ke objek JSON. Ini berfungsi sebagai padanan dari [Features.from_arrow_schema] dan menangani instansiasi rekursif per bidang, tetapi tidak memerlukan pemetaan ke/dari pyarrow, kecuali karena memanfaatkan pemetaan dtype primitif pyarrow yang secara otomatis dilakukan oleh [Value].

Contoh:

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

reorder_fields_as

< >

( other: Features )

Parameter

  • other ([Fitur]) β€” Fitur [Fitur] lain yang harus diselaraskan.

Urutkan ulang field Features agar sesuai dengan urutan field dari [Features] lainnya.

Urutan field penting karena memengaruhi data arrow yang mendasarinya. Mengubah urutan field memungkinkan tipe data arrow yang mendasarinya menjadi cocok.

Contoh:

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

Skalar

kelas datasets.Value

< >

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

Parameter

  • dtype (str) β€” Nama dari tipe data.

Nilai fitur skalar dari tipe data tertentu.

dtype yang mungkin untuk Value adalah sebagai berikut:

  • 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

Contoh:

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

kelas datasets.ClassLabel

< >

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

Parameter

  • num_classes (int, opsional) β€” Jumlah kelas. Semua label harus < num_classes.
  • names (list dari str, opsional) β€” Nama string untuk kelas bilangan bulat. Urutan pemberian nama dipertahankan.
  • names_file (str, opsional) β€” Path ke file berisi nama untuk kelas integer, satu per baris.

Jenis fitur untuk label kelas bilangan bulat.

Ada 3 cara untuk mendefinisikan ClassLabel, yang sesuai dengan 3 argumen:

  • num_classes: Buat label dari 0 hingga (num_classes-1).
  • names: Daftar string label.
  • names_file: File yang berisi daftar label.

Di balik layar, label disimpan sebagai bilangan bulat. Anda dapat menggunakan -1 untuk merepresentasikan label yang tidak diketahui/hilang.

Contoh:

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

Parameter

  • storage (Union[pa.StringArray, pa.IntegerArray]) β€” Array PyArrow untuk di-cast.

Mengembalikan

pa.Int64Array

Array dalam tipe penyimpanan arrow ClassLabel.

Cast array Arrow ke tipe penyimpanan arrow ClassLabel. Tipe Arrow yang dapat dikonversi ke tipe penyimpanan pyarrow ClassLabel adalah:

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

int2str

< >

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

Konversi integer => string nama kelas.

Mengenai label yang tidak diketahui/hilang: meneruskan bilangan bulat negatif akan memicu ValueError.

Contoh:

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

Nama kelas konversi string => integer.

Contoh:

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

Komposit

kelas datasets.LargeList

< >

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

Parameter

  • feature (FeatureType) β€” Tipe data fitur anak dari setiap item di dalam daftar besar.

Jenis fitur untuk data daftar besar yang terdiri dari jenis data fitur anak.

Dukungan ini berasal dari pyarrow.LargeListType, yang mirip dengan pyarrow.ListType tetapi menggunakan offset 64-bit alih-alih 32-bit.

kelas datasets.List

< >

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

Parameter

  • feature (FeatureType) β€” Tipe data fitur anak dari setiap item di dalam daftar besar.
  • length (opsional int, default -1) β€” Panjang daftar jika tetap. Default -1 yang berarti panjang arbitrer.

Jenis fitur untuk data daftar besar yang terdiri dari jenis data fitur anak.

Didukung oleh pyarrow.ListType, yang menggunakan offset 32-bit atau panjang tetap.

kelas datasets.Sequence

< >

( feature = Nonelength = -1**kwargs )

Parameter

  • feature (FeatureType) β€” Tipe data fitur anak dari setiap item di dalam daftar besar.
  • length (opsional int, default -1) β€” Panjang daftar jika tetap. Default -1 yang berarti panjang arbitrer.

Sequence adalah utilitas yang secara otomatis mengonversi fitur dictionary internal menjadi dictionary dari list. Perilaku ini diimplementasikan untuk memiliki lapisan kompatibilitas dengan pustaka TensorFlow Datasets, tetapi mungkin tidak diinginkan dalam beberapa kasus. Jika Anda tidak menginginkan perilaku ini, Anda dapat menggunakan List atau LargeList sebagai pengganti Sequence.

Terjemahan

kelas datasets.Translation

< >

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

Parameter

  • languages (dict) β€” Kamus untuk setiap contoh yang memetakan kode bahasa string ke terjemahan string.

Feature untuk terjemahan dengan bahasa tetap per contoh. Di sini untuk kompatibilitas dengan tfds.

Contoh:

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

flatten

< >

( )

Ratakan fitur Translation menjadi kamus.

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

Parameter

  • languages (dict) β€” Kamus untuk setiap contoh yang memetakan kode bahasa string ke satu atau beberapa terjemahan string. Bahasa yang ada dapat bervariasi dari satu contoh ke contoh lainnya.

Mengembalikan

  • language atau translation (tf.Tensor 1D tf.string dengan panjang variabel)

Kode bahasa yang diurutkan secara menaik atau terjemahan teks polos, diurutkan agar selaras dengan kode bahasa.

Feature untuk terjemahan dengan bahasa yang bervariasi per contoh. Di sini untuk kompatibilitas dengan tfds.

Contoh:

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

< >

( )

Ratakan fitur TranslationVariableLanguages menjadi kamus.

Array

kelas datasets.Array2D

< >

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

Parameter

  • shape (tuple) β€” Ukuran setiap dimensi.
  • dtype (str) β€” Nama dari tipe data.

Buat array dua dimensi.

Contoh:

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

kelas datasets.Array3D

< >

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

Parameter

  • shape (tuple) β€” Ukuran setiap dimensi.
  • dtype (str) β€” Nama dari tipe data.

Buat array tiga dimensi.

Contoh:

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

kelas datasets.Array4D

< >

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

Parameter

  • shape (tuple) β€” Ukuran setiap dimensi.
  • dtype (str) β€” Nama dari tipe data.

Buat array berdimensi empat.

Contoh:

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

kelas datasets.Array5D

< >

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

Parameter

  • shape (tuple) β€” Ukuran setiap dimensi.
  • dtype (str) β€” Nama dari tipe data.

Buat array lima dimensi.

Contoh:

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

Audio

kelas datasets.Audio

< >

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

Parameter

  • sampling_rate (int, opsional) β€” Laju sampling target. Jika None, laju sampling asli digunakan.
  • num_channels (int, opsional) β€” Jumlah channel yang diinginkan untuk sampel. Secara default, jumlah channel dari sumber digunakan. Dekoding audio akan mengembalikan sampel dengan bentuk (num_channels, num_samples) Saat ini None (jumlah channel dari sumber, default), 1 (mono) atau 2 (stereo) channel yang didukung. Argumen num_channels diteruskan ke torchcodec.decoders.AudioDecoder.

    Ditambahkan dalam 4.4.0

  • decode (bool, defaultnya True) β€” Apakah akan mendekode data audio. Jika False, mengembalikan kamus dasar dalam format {"path": audio_path, "bytes": audio_bytes}.
  • stream_index (int, opsional) β€” Indeks streaming yang akan digunakan dari file. Jika None, secara default menggunakan indeks β€œterbaik”.

Audio Feature untuk mengekstrak data audio dari file audio.

Input: Fitur Audio menerima input berupa:

  • A str: Absolute path to the audio file (i.e. random access is allowed).

  • pathlib.Path: jalur ke file audio (yaitu akses acak diizinkan).

  • dict dengan kunci:

    • path: String berisi path relatif file audio ke file arsip.
    • bytes: Konten byte dari file audio.

    Hal ini berguna untuk file parquet atau webdataset yang menyematkan file audio.

  • dict dengan kunci:

    • array: Array yang berisi sampel audio
    • sampling_rate: Integer yang sesuai dengan laju sampling dari sampel audio.
  • Sebuah torchcodec.decoders.AudioDecoder: objek decoder audio torchcodec.

Output: Fitur Audio mengoutputkan data sebagai objek torchcodec.decoders.AudioDecoder, dengan kunci tambahan:

  • array: Array yang berisi sampel audio
  • sampling_rate: Integer yang sesuai dengan laju sampling dari sampel audio.

Contoh:

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

Parameter

  • storage (Union[pa.StringArray, pa.StructArray]) β€” Array PyArrow untuk di-cast.

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan arrow Audio, yaitu pa.struct({"bytes": pa.binary(), "path": pa.string()})

Cast array Arrow ke tipe penyimpanan arrow Audio. Tipe Arrow yang dapat dikonversi ke tipe penyimpanan pyarrow Audio adalah:

  • pa.string() - harus berisi data β€œpath”
  • pa.binary() - harus berisi byte audio
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - urutan tidak penting

decode_example

< >

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

Parameter

  • value (dict) β€” Kamus dengan kunci:
    • path: String dengan path file audio relatif.
    • bytes: Byte dari file audio.
  • token_per_repo_id (dict, opsional) β€” Untuk mengakses dan mendekode file audio dari repositori privat di Hub, Anda dapat meneruskan kamus repo_id (str) -> token (bool atau str)

Decode file audio contoh menjadi data audio.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) β†’ pa.StructArray

Parameter

  • storage (pa.StructArray) β€” Array PyArrow untuk disematkan.
  • token_per_repo_id (dict, opsional) β€” Kamus repo_id -> token untuk mengambil byte file.
  • local_files (bool, defaultnya True) β€” Apakah akan menyematkan data file lokal ke dalam array

    Ditambahkan dalam 4.8.5

  • remote_files (bool, defaultnya True) β€” Apakah data file remote akan disematkan ke dalam array. Misalnya file dengan path yang diawali dengan hf:// atau https://

    Ditambahkan dalam 4.8.5

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan arrow Audio, yaitu pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Embed file audio ke dalam array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('AudioDecoder')] ) β†’ dict

Parameter

  • value (str, bytes,bytearray,dict, AudioDecoder) β€” Data yang diteruskan sebagai input ke fitur Audio.

Mengembalikan

dict

Enkodekan contoh ke dalam format untuk Arrow.

flatten

< >

( )

Jika berada dalam keadaan dapat didekodekan, lempar error, selain itu ratakan fitur menjadi kamus.

Gambar

kelas datasets.Image

< >

( mode: typing.Optional[str] = Nonedecode: bool = Trueid: typing.Optional[str] = None )

Parameter

  • mode (str, opsional) β€” Mode untuk mengkonversi gambar. Jika None, mode asli gambar digunakan.
  • decode (bool, defaultnya True) β€” Apakah akan mendekode data gambar. Jika False, mengembalikan kamus dasar dalam format {"path": image_path, "bytes": image_bytes}.

Image Feature untuk membaca data gambar dari file gambar.

Input: Fitur Image menerima sebagai input:

  • A str: Path absolut ke file gambar (yaitu, akses acak diizinkan).

  • pathlib.Path: jalur ke file gambar (yaitu akses acak diizinkan).

  • dict dengan kunci:

    • path: String berisi path relatif dari file gambar ke file arsip.
    • bytes: Byte dari file gambar.

    Hal ini berguna untuk file parquet atau webdataset yang menyematkan file gambar.

  • np.ndarray: array NumPy yang merepresentasikan sebuah gambar.

  • PIL.Image.Image: objek gambar PIL.

Output: Data output fitur Gambar sebagai objek PIL.Image.Image.

Contoh:

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

Parameter

  • storage (Union[pa.StringArray, pa.StructArray, pa.ListArray]) β€” Array PyArrow untuk di-cast.

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan Image arrow, yaitu pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Cast array Arrow ke tipe penyimpanan arrow Image. Tipe Arrow yang dapat dikonversi ke tipe penyimpanan pyarrow Image adalah:

  • pa.string() - harus berisi data β€œpath”
  • pa.large_string() - harus berisi data β€œpath” (akan di-cast ke string jika memungkinkan)
  • pa.binary() - harus berisi byte gambar
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - urutan tidak penting
  • pa.list(*) - harus berisi data array gambar

decode_example

< >

( value: dicttoken_per_repo_id = None )

Parameter

  • value (str atau dict) β€” String dengan path file gambar absolut, atau dictionary dengan kunci:
    • path: String berisi path file gambar absolut atau relatif.
    • bytes: Byte dari file gambar.
  • token_per_repo_id (dict, opsional) β€” Untuk mengakses dan mendekode file gambar dari repositori privat di Hub, Anda dapat meneruskan kamus repo_id (str) -> token (bool atau str).

Decode file gambar contoh menjadi data gambar.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) β†’ pa.StructArray

Parameter

  • storage (pa.StructArray) β€” Array PyArrow untuk disematkan.
  • token_per_repo_id (dict, opsional) β€” Kamus repo_id -> token untuk mengambil byte file.
  • local_files (bool, defaultnya True) β€” Apakah akan menyematkan data file lokal ke dalam array

    Ditambahkan dalam 4.8.5

  • remote_files (bool, defaultnya True) β€” Apakah data file remote akan disematkan ke dalam array. Misalnya file dengan path yang diawali dengan hf:// atau https://

    Ditambahkan dalam 4.8.5

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan Image arrow, yaitu pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Sisipkan file gambar ke dalam array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, numpy.ndarray, ForwardRef('PIL.Image.Image')] )

Parameter

  • value (str, np.ndarray, PIL.Image.Image atau dict) β€” Data yang diteruskan sebagai input ke fitur Image.

Enkodekan contoh ke dalam format untuk Arrow.

flatten

< >

( )

Jika berada dalam keadaan dapat didekodekan, kembalikan fitur itu sendiri, selain itu ratakan fitur menjadi kamus.

Video

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

Parameter

  • decode (bool, defaultnya True) β€” Apakah akan mendekode data video. Jika False, mengembalikan kamus dasar dalam format {"path": video_path, "bytes": video_bytes}.
  • stream_index (int, opsional) β€” Indeks streaming yang akan digunakan dari file. Jika None, secara default menggunakan indeks β€œterbaik”.
  • dimension_order (str, defaultnya NCHW) β€” Urutan dimensi dari frame yang didekodekan. di mana N adalah ukuran batch, C adalah jumlah channel, H adalah tinggi, dan W adalah lebar dari frame.
  • num_ffmpeg_threads (int, defaultnya 1) β€” Jumlah thread yang digunakan untuk mendekode video. (Disarankan untuk tetap 1)
  • device (str atau torch.device, defaultnya cpu) β€” Perangkat yang akan digunakan untuk mendekode video.
  • seek_mode (str, defaultnya exact) β€” Menentukan apakah akses frame akan bersifat β€œexact” atau β€œapproximate”. Exact menjamin bahwa permintaan frame i akan selalu mengembalikan frame i, tetapi hal ini memerlukan pemindaian awal pada file. Approximate lebih cepat karena menghindari pemindaian file, tetapi kurang akurat karena menggunakan metadata file untuk menghitung di mana i kemungkinan berada. baca selengkapnya di sini

Video Feature untuk membaca data video dari file video.

Input: Fitur Video menerima sebagai input:

  • A str: Path absolut ke file video (yaitu, akses acak diizinkan).

  • pathlib.Path: path ke file video (yaitu akses acak diizinkan).

  • dict dengan kunci:

    • path: String berisi path relatif dari file video dalam repositori dataset.
    • bytes: Byte dari file video.

    Hal ini berguna untuk file parquet atau webdataset yang menyematkan file video.

  • A torchcodec.decoders.VideoDecoder: objek decoder video torchcodec.

Output: Fitur Video menyajikan data sebagai objek torchcodec.decoders.VideoDecoder.

Contoh:

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

Parameter

  • storage (Union[pa.StringArray, pa.StructArray, pa.ListArray]) β€” Array PyArrow untuk di-cast.

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan Video arrow, yaitu pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Cast array Arrow ke tipe penyimpanan arrow Video. Tipe Arrow yang dapat dikonversi ke tipe penyimpanan pyarrow Video adalah:

  • pa.string() - harus berisi data β€œpath”
  • pa.binary() - harus berisi byte video
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - urutan tidak penting
  • pa.list(*) - harus berisi data array video

decode_example

< >

( value: typing.Union[str, datasets.features.video.Example]token_per_repo_id: typing.Optional[dict[str, typing.Union[bool, str]]] = None )

Parameter

  • value (str atau dict) β€” String dengan path file video absolut, atau dictionary dengan kunci:
    • path: String berisi path file video absolut atau relatif.
    • bytes: Byte dari file video.
  • token_per_repo_id (dict, opsional) β€” Untuk mengakses dan mendekode file video dari repositori privat di Hub, Anda dapat meneruskan kamus repo_id (str) -> token (bool atau str).

Decode file video contoh menjadi data video.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) β†’ pa.StructArray

Parameter

  • storage (pa.StructArray) β€” Array PyArrow untuk disematkan.
  • token_per_repo_id (dict, opsional) β€” Kamus repo_id -> token untuk mengambil byte file.
  • local_files (bool, defaultnya True) β€” Apakah akan menyematkan data file lokal ke dalam array

    Ditambahkan dalam 4.8.5

  • remote_files (bool, defaultnya True) β€” Apakah data file remote akan disematkan ke dalam array. Misalnya file dengan path yang diawali dengan hf:// atau https://

    Ditambahkan dalam 4.8.5

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan Video arrow, yaitu pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Sisipkan file gambar ke dalam array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, datasets.features.video.Example, numpy.ndarray, ForwardRef('VideoDecoder')] )

Parameter

  • value (str, np.ndarray, bytes, bytearray, VideoDecoder atau dict) β€” Data yang diteruskan sebagai input ke fitur Video.

Enkodekan contoh ke dalam format untuk Arrow.

flatten

< >

( )

Jika berada dalam keadaan dapat didekodekan, kembalikan fitur itu sendiri, selain itu ratakan fitur menjadi kamus.

Mesh

kelas datasets.Mesh

< >

( decode: bool = Trueid: typing.Optional[str] = None )

Parameter

  • decode (bool, defaultnya True) β€” Apakah akan mendekode data mesh. Jika False, mengembalikan kamus dasar dalam format {"path": mesh_path, "bytes": mesh_bytes}. Dekoding mesh menggunakan trimesh dan mendukung file .glb, .gltf, .ply, dan .stl.

Mesh Feature untuk membaca data mesh 3D dari file.

Input: Fitur Mesh menerima sebagai input:

  • A str: Path absolut ke file mesh (yaitu, akses acak diizinkan).

  • pathlib.Path: jalur ke file mesh (yaitu akses acak diizinkan).

  • dict dengan kunci:

    • path: String berisi path relatif dari file mesh ke file arsip.
    • bytes: Byte dari file mesh.

    Hal ini berguna untuk file parquet atau webdataset yang menyematkan file mesh.

  • A trimesh.Trimesh or trimesh.Scene: 3D mesh or scene object.

Output: Fitur Mesh mengoutputkan data sebagai objek trimesh.Trimesh atau trimesh.Scene.

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) β†’ pa.StructArray

Parameter

  • storage (Union[pa.StringArray, pa.StructArray]) β€” Array PyArrow untuk di-cast.

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan Mesh arrow, yaitu pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Cast array Arrow ke tipe penyimpanan arrow Mesh. Tipe Arrow yang dapat dikonversi ke tipe penyimpanan pyarrow Mesh adalah:

  • pa.string() - harus berisi data β€œpath”
  • pa.large_string() - harus berisi data β€œpath” (akan di-cast ke string jika memungkinkan)
  • pa.binary() - harus berisi byte mesh
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - urutan tidak penting

decode_example

< >

( value: dicttoken_per_repo_id = None )

Parameter

  • value (dict) β€” Kamus dengan kunci:
    • path: String berisi jalur file mesh absolut atau relatif.
    • bytes: Byte dari file mesh.
  • token_per_repo_id (dict, opsional) β€” Untuk mengakses dan mendekode file mesh dari repositori privat di Hub, Anda dapat meneruskan kamus repo_id (str) -> token (bool atau str).

Decode file mesh contoh.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) β†’ pa.StructArray

Parameter

  • storage (pa.StructArray) β€” Array PyArrow untuk disematkan.
  • token_per_repo_id (dict, opsional) β€” Kamus repo_id -> token untuk mengambil byte file.
  • local_files (bool, defaultnya True) β€” Apakah akan menyematkan data file lokal ke dalam array.
  • remote_files (bool, defaultnya True) β€” Apakah akan menyematkan data file jarak jauh ke dalam array.

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan Mesh arrow, yaitu pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Embed file mesh ke dalam array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('trimesh.Trimesh'), ForwardRef('trimesh.Scene')] )

Parameter

  • value (str, bytes, dict, trimesh.Trimesh, atau trimesh.Scene) β€” Data yang diteruskan sebagai input ke fitur Mesh.

Enkodekan contoh ke dalam format untuk Arrow.

flatten

< >

( )

Jika berada dalam keadaan dapat didekodekan, kembalikan fitur itu sendiri, selain itu ratakan fitur menjadi kamus.

Json

kelas datasets.Json

< >

( decode: bool = Trueid: typing.Optional[str] = None )

Jenis fitur untuk objek JSON.

Di balik layar, objek disimpan sebagai string yang dikodekan JSON.

Contoh:

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

Parameter

  • storage (Union[pa.StringArray, pa.IntegerArray]) β€” Array PyArrow untuk di-cast.

Mengembalikan

pa.JsonArray

Array dalam tipe penyimpanan arrow Json.

Cast array Arrow ke tipe penyimpanan arrow Json.

Pdf

kelas datasets.Pdf

< >

( decode: bool = Trueid: typing.Optional[str] = None )

Parameter

  • decode (bool, defaultnya True) β€” Apakah akan mendekode data pdf. Jika False, mengembalikan kamus dasar dalam format {"path": pdf_path, "bytes": pdf_bytes}.

Eksperimental. Fitur Feature untuk membaca dokumen pdf dari file pdf.

Input: Fitur Pdf menerima input berupa:

  • A str: Path absolut ke file pdf (yaitu, akses acak diizinkan).

  • pathlib.Path: path ke file pdf (yaitu akses acak diizinkan).

  • dict dengan kunci:

    • path: String berisi path relatif dari file pdf dalam repositori dataset.
    • bytes: Byte dari file pdf. Ini berguna untuk file arsip dengan akses berurutan.
  • pdfplumber.pdf.PDF: objek pdf dari pdfplumber.

Contoh:

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

Parameter

  • storage (Union[pa.StringArray, pa.StructArray, pa.ListArray]) β€” Array PyArrow untuk di-cast.

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan panah Pdf, yaitu pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Cast array Arrow ke tipe penyimpanan arrow Pdf. Tipe Arrow yang dapat dikonversi ke tipe penyimpanan pyarrow Pdf adalah:

  • pa.string() - harus berisi data β€œpath”
  • pa.binary() - harus berisi byte gambar
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - urutan tidak penting
  • pa.list(*) - harus berisi data array pdf

decode_example

< >

( value: dicttoken_per_repo_id = None )

Parameter

  • value (str atau dict) β€” String dengan path file pdf absolut, atau dictionary dengan kunci:
    • path: String berisi path file pdf absolut atau relatif.
    • bytes: Byte dari file pdf.
  • token_per_repo_id (dict, opsional) β€” Untuk mengakses dan mendekode file pdf dari repositori privat di Hub, Anda dapat meneruskan kamus repo_id (str) -> token (bool atau str).

Decode file contoh pdf menjadi data pdf.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) β†’ pa.StructArray

Parameter

  • storage (pa.StructArray) β€” Array PyArrow untuk disematkan.
  • token_per_repo_id (dict, opsional) β€” Kamus repo_id -> token untuk mengambil byte file.
  • local_files (bool, defaultnya True) β€” Apakah akan menyematkan data file lokal ke dalam array

    Ditambahkan dalam 4.8.5

  • remote_files (bool, defaultnya True) β€” Apakah data file remote akan disematkan ke dalam array. Misalnya file dengan path yang diawali dengan hf:// atau https://

    Ditambahkan dalam 4.8.5

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan PDF arrow, yaitu pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Embed file PDF ke dalam array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('pdfplumber.pdf.PDF')] )

Parameter

  • value (str, bytes, pdfplumber.pdf.PDF atau dict) β€” Data yang diteruskan sebagai input ke fitur Pdf.

Enkodekan contoh ke dalam format untuk Arrow.

flatten

< >

( )

Jika berada dalam keadaan dapat didekodekan, kembalikan fitur itu sendiri, selain itu ratakan fitur menjadi kamus.

Nifti

kelas datasets.Nifti

< >

( decode: bool = Trueid: typing.Optional[str] = None )

Parameter

  • decode (bool, defaultnya True) β€” Apakah akan mendekode data NIfTI. Jika False, sebuah string berisi byte akan dikembalikan. decode=False tidak didukung saat mendekode contoh.

Eksperimental. Feature Nifti untuk membaca file neuroimaging NIfTI.

Input: Fitur Nifti menerima input berupa:

  • str: Path absolut ke file NIfTI (yaitu akses acak diizinkan).

  • pathlib.Path: jalur ke file NIfTI (yaitu akses acak diizinkan).

  • dict dengan kunci:

    • path: String berisi path relatif dari file NIfTI dalam repositori dataset.
    • bytes: Byte dari file NIfTI. Ini berguna untuk file arsip dengan akses berurutan.
  • Objek gambar nibabel (misalnya, nibabel.nifti1.Nifti1Image).

Contoh:

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

Parameter

  • storage (Union[pa.StringArray, pa.StructArray, pa.BinaryArray]) β€” Array PyArrow untuk di-cast.

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan panah Nifti, yaitu pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Cast array Arrow ke tipe penyimpanan arrow Nifti. Tipe Arrow yang dapat dikonversi ke tipe penyimpanan pyarrow Nifti adalah:

  • pa.string() - harus berisi data β€œpath”
  • pa.binary() - harus berisi byte NIfTI
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - urutan tidak penting

decode_example

< >

( value: dicttoken_per_repo_id = None )

Parameter

  • value (str atau dict) β€” String dengan path file NIfTI absolut, atau dictionary dengan kunci:
    • path: String berisi path file NIfTI absolut atau relatif.
    • bytes: Byte dari file NIfTI.
  • token_per_repo_id (dict, opsional) β€” Untuk mengakses dan mendekode file NIfTI dari repositori privat di Hub, Anda dapat meneruskan kamus repo_id (str) -> token (bool atau str).

Decode file NIfTI contoh menjadi objek gambar nibabel.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) β†’ pa.StructArray

Parameter

  • storage (pa.StructArray) β€” Array PyArrow untuk disematkan.
  • token_per_repo_id (dict, opsional) β€” Kamus repo_id -> token untuk mengambil byte file.
  • local_files (bool, defaultnya True) β€” Apakah akan menyematkan data file lokal ke dalam array

    Ditambahkan dalam 4.8.5

  • remote_files (bool, defaultnya True) β€” Apakah data file remote akan disematkan ke dalam array. Misalnya file dengan path yang diawali dengan hf:// atau https://

    Ditambahkan dalam 4.8.5

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan arrow NifTI, yaitu pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Embed file NifTI ke dalam array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('nib.Nifti1Image')] )

Parameter

  • value (str, bytes, nibabel.Nifti1Image atau dict) β€” Data yang diteruskan sebagai input ke fitur Nifti.

Enkodekan contoh ke dalam format untuk Arrow.

flatten

< >

( )

Jika berada dalam keadaan dapat didekodekan, kembalikan fitur itu sendiri, selain itu ratakan fitur menjadi kamus.

BioSequence

kelas datasets.BioSequence

< >

( format: str = 'fasta'decode: bool = Trueid: typing.Optional[str] = None )

Parameter

  • format (str, defaultnya "fasta") β€” Nama format sekuens, sesuai yang dipahami oleh Bio.SeqIO. Nilai yang umum adalah "fasta", "fastq" dan "genbank".
  • decode (bool, defaultnya True) β€” Apakah akan mendekode data urutan. Jika False, mengembalikan kamus dasar dalam format {"path": path, "bytes": bytes}.

Eksperimental. Feature BioSequence untuk membaca rekaman sekuens biologis dari file sekuens.

File sekuens menyimpan satu atau lebih catatan residu beserta pengenal dan anotasi mereka. FASTA, FASTQ, dan GenBank memiliki bentuk yang sama pada level ini, berbeda hanya pada parser yang digunakan, sehingga format memilih parser, bukan tipe.

Input: Fitur BioSequence menerima input berupa:

  • A str: Path absolut ke file sekuens (yaitu akses acak diizinkan).

  • pathlib.Path: jalur ke file urutan (yaitu akses acak diizinkan).

  • dict dengan kunci:

    • path: String berisi path relatif dari file sequence dalam repositori dataset.
    • bytes: Byte dari file sekuens. Ini berguna untuk file arsip dengan akses berurutan.
  • A Bio.SeqRecord.SeqRecord: rekaman sekuens biopython.

Contoh:

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

Parameter

  • storage (Union[pa.StringArray, pa.StructArray]) β€” Array PyArrow untuk di-cast.

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan arrow BioSequence, yaitu pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Cast array Arrow ke tipe penyimpanan arrow BioSequence. Tipe Arrow yang dapat dikonversi ke tipe penyimpanan pyarrow BioSequence adalah:

  • pa.string() - harus berisi data β€œpath”
  • pa.binary() - harus berisi byte file
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - urutan tidak penting

decode_example

< >

( value: dicttoken_per_repo_id = None )

Parameter

  • value (str atau dict) β€” String dengan path file absolut, atau dictionary dengan kunci:
    • path: String berisi path file absolut atau relatif.
    • bytes: Byte dari file.
  • token_per_repo_id (dict, opsional) β€” Untuk mengakses dan mendekode file dari repositori privat di Hub, Anda dapat meneruskan kamus repo_id (str) -> token (bool atau str).

Decode file sekuens contoh menjadi record biopython.

Sebuah file dapat menyimpan banyak rekaman; fungsi ini mengembalikan rekaman pertama, karena satu baris adalah satu rekaman. Gunakan pemuat urutan yang dikemas untuk memperluas file multi-rekaman menjadi satu baris per rekaman.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) β†’ pa.StructArray

Parameter

  • storage (pa.StructArray) β€” Array PyArrow untuk disematkan.
  • token_per_repo_id (dict, opsional) β€” Kamus repo_id -> token untuk mengambil byte file.
  • local_files (bool, defaultnya True) β€” Apakah akan menyematkan data file lokal ke dalam array.
  • remote_files (bool, defaultnya True) β€” Apakah akan menyematkan data file jarak jauh ke dalam array.

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan arrow BioSequence.

Embed file sekuens ke dalam array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('SeqRecord')] )

Parameter

  • value (str, bytes, Bio.SeqRecord.SeqRecord atau dict) β€” Data yang diteruskan sebagai input ke fitur BioSequence.

Enkodekan contoh ke dalam format untuk Arrow.

flatten

< >

( )

Jika berada dalam keadaan dapat didekodekan, kembalikan fitur itu sendiri, selain itu ratakan fitur menjadi kamus.

BioStructure

kelas datasets.BioStructure

< >

( format: str = 'pdb'decode: bool = Trueid: typing.Optional[str] = None )

Parameter

  • format (str, defaultnya "pdb") β€” Format struktur, yaitu "pdb" atau "mmcif".
  • decode (bool, defaultnya True) β€” Apakah akan mendekode data struktur. Jika False, mengembalikan kamus dasar dalam format {"path": path, "bytes": bytes}.

Eksperimental. Fitur BioStructure Feature untuk membaca struktur makromolekul dari file struktur.

File struktur menyimpan koordinat tiga dimensi dari atom-atom molekul, yang dikelompokkan menjadi rantai dan residu. PDB dan mmCIF mendeskripsikan objek yang sama dan hanya berbeda pada parser yang digunakan, sehingga format memilih parser, bukan tipe.

Input: Fitur BioStructure menerima sebagai input:

  • A str: Path absolut ke file struktur (yaitu, akses acak diizinkan).

  • pathlib.Path: jalur ke file struktur (yaitu akses acak diizinkan).

  • dict dengan kunci:

    • path: String berisi path relatif dari file struktur di dalam repositori dataset.
    • bytes: Byte dari file struktur. Ini berguna untuk file arsip dengan akses berurutan.
  • Sebuah Bio.PDB.Structure.Structure: struktur biopython.

Contoh:

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

Parameter

  • storage (Union[pa.StringArray, pa.StructArray]) β€” Array PyArrow untuk di-cast.

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan arrow BioStructure, yaitu pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Cast array Arrow ke tipe penyimpanan arrow BioStructure. Tipe Arrow yang dapat dikonversi ke tipe penyimpanan pyarrow BioStructure adalah:

  • pa.string() - harus berisi data β€œpath”
  • pa.binary() - harus berisi byte file
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - urutan tidak penting

decode_example

< >

( value: dicttoken_per_repo_id = None )

Parameter

  • value (str atau dict) β€” String dengan path file absolut, atau dictionary dengan kunci:
    • path: String berisi path file absolut atau relatif.
    • bytes: Byte dari file.
  • token_per_repo_id (dict, opsional) β€” Untuk mengakses dan mendekode file dari repositori privat di Hub, Anda dapat meneruskan kamus repo_id (str) -> token (bool atau str).

Decode file struktur contoh menjadi struktur biopython.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) β†’ pa.StructArray

Parameter

  • storage (pa.StructArray) β€” Array PyArrow untuk disematkan.
  • token_per_repo_id (dict, opsional) β€” Kamus repo_id -> token untuk mengambil byte file.
  • local_files (bool, defaultnya True) β€” Apakah akan menyematkan data file lokal ke dalam array.
  • remote_files (bool, defaultnya True) β€” Apakah akan menyematkan data file jarak jauh ke dalam array.

Mengembalikan

pa.StructArray

Array dalam tipe penyimpanan arrow BioStructure.

Embed file struktur ke dalam array Arrow.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('Structure')] )

Parameter

  • value (str, bytes, Bio.PDB.Structure.Structure atau dict) β€” Data yang diteruskan sebagai input ke fitur BioStructure.

Enkodekan contoh ke dalam format untuk Arrow.

flatten

< >

( )

Jika berada dalam keadaan dapat didekodekan, kembalikan fitur itu sendiri, selain itu ratakan fitur menjadi kamus.

Sistem Berkas

datasets.filesystems.is_remote_filesystem

< >

( fs: AbstractFileSystem )

Parameter

  • fs (fsspec.spec.AbstractFileSystem) β€” Kelas super abstrak untuk sistem file yang pythonic, misalnya fsspec.filesystem('file') atau s3fs.S3FileSystem.

Memeriksa apakah fs adalah sistem file jarak jauh.

Sidik jari

kelas datasets.fingerprint.Hasher

< >

( )

Hasher yang menerima objek python sebagai input.

Update on GitHub