Datasets documentation
Kelas utama
Kelas utama
DatasetInfo
kelas datasets.DatasetInfo
< source >( 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 subclassGeneratorBasedBuilderyang 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 (
stratau 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
< source >( dataset_info_dir: strstorage_options: typing.Optional[dict] = None )
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.
write_to_directory
< source >( dataset_info_dirpretty_print = Falsestorage_options: typing.Optional[dict] = None )
Parameter
- dataset_info_dir (
str) β Direktori tujuan. - pretty_print (
bool, defaultnyaFalse) β JikaTrue, 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.
Dataset
Kelas dasar Dataset mengimplementasikan Dataset yang didukung oleh tabel Apache Arrow.
kelas datasets.Dataset
< source >( 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
< source >( 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 )
Tambahkan kolom ke Dataset.
Ditambahkan di 1.7
add_item
< source >( item: dictnew_fingerprint: typing.Optional[str] = None )
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
< source >( 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, defaultnyaFalse) β Apakah menyalin data ke dalam memori.
Instansiasi Dataset yang didukung oleh tabel Arrow di filename.
from_buffer
< source >( buffer: Bufferinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneindices_buffer: typing.Optional[pyarrow.lib.Buffer] = None )
Instansiasi Dataset yang didukung oleh buffer Arrow.
from_pandas
< source >( 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 defaultNoneakan menyimpan indeks sebagai kolom, kecuali untukRangeIndexyang hanya disimpan sebagai metadata. Gunakanpreserve_index=Trueuntuk 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.
from_dict
< source >( 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, defaultnyaNone) β 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}]] # OKContoh 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
< source >( 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, defaultnyaNone) β 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}]] # OKContoh 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
< source >( 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 yangyieldscontoh. - features (Features, opsional) β Fitur dataset.
- cache_dir (
str, opsional, default"~/.cache/huggingface/datasets") β Direktori untuk meng-cache data. - keep_in_memory (
bool, defaultnyaFalse) β Apakah menyalin data ke dalam memori. - gen_kwargs(
dict, opsional) β Argumen kata kunci yang akan diteruskan ke callablegenerator. Anda dapat mendefinisikan dataset yang dipartisi dengan meneruskan daftar shard digen_kwargsdan mengaturnum_proclebih besar dari 1. - num_proc (
int, opsional, defaultnyaNone) β Jumlah proses saat mengunduh dan menghasilkan dataset secara lokal. Ini berguna jika dataset terdiri dari beberapa file. Multiprocessing dinonaktifkan secara default. Jikanum_proclebih besar dari satu, maka semua nilai list digen_kwargsharus memiliki panjang yang sama. Nilai-nilai ini akan dibagi di antara panggilan ke generator. Jumlah shard akan menjadi nilai minimum dari list terpendek digen_kwargsdannum_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 defaultfingerprintdihasilkan 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.
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]]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'}]Jumlah kolom dalam dataset.
Jumlah baris dalam dataset (sama dengan Dataset.len()).
Nama kolom dalam dataset.
Bentuk dataset (jumlah kolom, jumlah baris).
unik
< source >( 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.
flatten
< source >( new_fingerprint: typing.Optional[str] = Nonemax_depth = 16 ) β Dataset
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
< source >( 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, defaultnya1000) β Jumlah contoh per batch yang diberikan ke cast. Jikabatch_size <= 0ataubatch_size == None, maka berikan seluruh dataset sebagai satu batch ke cast. - keep_in_memory (
bool, defaultnyaFalse) β Apakah menyalin data ke dalam memori. - load_from_cache_file (
bool, defaultnyaTruejika caching diaktifkan) β Jika file cache yang menyimpan komputasi saat ini darifunctiondapat diidentifikasi, gunakan file tersebut alih-alih menghitung ulang. - cache_file_name (
str, opsional, defaultnyaNone) β 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, defaultnya1000) β 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, defaultnyaNone) β Jumlah proses untuk multiprocessing. Secara default, multiprocessing tidak digunakan.
Mengembalikan
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
< source >( 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 )
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
< source >( 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. JikaNone, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya dan argumen transformasi.
Mengembalikan
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
< source >( 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. JikaNone, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya dan argumen transformasi.
Mengembalikan
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.
rename_columns
< source >( 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. JikaNone, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya dan argumen transformasi.
Mengembalikan
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.
select_columns
< source >( 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. JikaNone, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya, dan argumen transformasi.
Mengembalikan
Salinan objek dataset yang hanya terdiri dari kolom-kolom yang dipilih.
Pilih satu atau beberapa kolom dalam dataset dan fitur yang terkait dengannya.
class_encode_column
< source >( column: strinclude_nulls: bool = False )
Parameter
- column (
str) β Nama kolom yang akan di-cast (daftar semua nama kolom dengan column_names) - include_nulls (
bool, defaultnyaFalse) β Apakah nilai null akan disertakan dalam label kelas. JikaTrue, 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')}Jumlah baris dalam dataset.
Iterasi melalui contoh-contoh.
Jika format diatur dengan Dataset.set_format(), baris akan dikembalikan dengan format yang dipilih.
iter
< source >( batch_size: intdrop_last_batch: bool = False )
Iterasi melalui batch berukuran batch_size.
Jika format diatur dengan [~datasets.Dataset.set_format], baris akan dikembalikan dengan format yang dipilih.
formatted_as
< source >( 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'].Noneberarti `getitemβ mengembalikan objek python (default). - columns (
List[str], opsional) β Kolom yang akan diformat dalam output.Noneberarti__getitem__mengembalikan semua kolom (default). - output_all_columns (
bool, defaultnyaFalse) β 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.tensoratautensorflow.ragged.constant.
Digunakan dalam pernyataan with. Atur format pengembalian __getitem__ (tipe dan kolom).
set_format
< source >( 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'].Noneberarti__getitem__mengembalikan objek python (default). - columns (
List[str], opsional) β Kolom yang akan diformat dalam output.Noneberarti__getitem__mengembalikan semua kolom (default). - output_all_columns (
bool, defaultnyaFalse) β 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.tensoratautensorflow.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
< source >( 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 (sebagaidict) 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, defaultnyaFalse) β 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 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
< source >( 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'].Noneberarti__getitem__mengembalikan objek python (default). - columns (
List[str], opsional) β Kolom yang akan diformat dalam output.Noneberarti__getitem__mengembalikan semua kolom (default). - output_all_columns (
bool, defaultnyaFalse) β 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.tensoratautensorflow.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
< source >( 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 (sebagaidict) 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, defaultnyaFalse) β Simpan juga kolom yang tidak diformat dalam output (sebagai objek python). Jika diset keTrue, 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])}Dapat digunakan untuk mengindeks kolom (dengan nama string) atau baris (dengan indeks integer atau iterable dari indeks atau bool).
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.
map
< source >( 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]jikabatched=Falsedanwith_indices=Falsedanwith_rank=Falsefunction(example: Dict[str, Any], *extra_args) -> Dict[str, Any]jikabatched=Falsedanwith_indices=Truedan/atauwith_rank=True(satu argumen tambahan untuk masing-masing)function(batch: Dict[str, List]) -> Dict[str, List]jikabatched=Truedanwith_indices=Falsedanwith_rank=Falsefunction(batch: Dict[str, List], *extra_args) -> Dict[str, List]jikabatched=Truedanwith_indices=Truedan/atauwith_rank=True(satu argumen tambahan untuk masing-masing)
Untuk penggunaan lanjutan, fungsi juga dapat mengembalikan
pyarrow.Table. Jika fungsi bersifat asinkron, makamapakan menjalankan fungsi Anda secara paralel. Selain itu, jika fungsi Anda tidak mengembalikan apa pun (None), makamapakan 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, defaultnyaFalse) β Berikan indeks contoh kefunction. Perhatikan bahwa dalam kasus ini, signature darifunctionharus berupadef function(example, idx[, rank]): .... - with_rank (
bool, defaultnyaFalse) β Berikan rank proses kefunction. Perhatikan bahwa dalam kasus ini, signature darifunctionharus berupadef function(example[, idx], rank): .... - input_columns (
Optional[Union[str, List[str]]], defaultnyaNone) β Kolom yang akan diteruskan kefunctionsebagai argumen posisional. JikaNone, sebuahdictyang memetakan ke semua kolom terformat akan diteruskan sebagai satu argumen. - batched (
bool, defaultnyaFalse) β Berikan batch contoh kefunction. - batch_size (
int, opsional, defaultnya1000) β Jumlah contoh per batch yang diberikan kefunctionjikabatched=True. Jikabatch_size <= 0ataubatch_size == None, berikan seluruh dataset sebagai satu batch kefunction. - drop_last_batch (
bool, defaultnyaFalse) β Apakah batch terakhir yang lebih kecil dari batch_size harus dibuang alih-alih diproses oleh fungsi. - remove_columns (
Optional[Union[str, List[str]]], defaultnyaNone) β Hapus pilihan kolom saat melakukan pemetaan. Kolom akan dihapus sebelum memperbarui contoh dengan output darifunction, yaitu jikafunctionmenambahkan kolom dengan nama yang ada diremove_columns, kolom-kolom ini akan tetap dipertahankan. - keep_in_memory (
bool, defaultnyaFalse) β Simpan dataset di memori alih-alih menuliskannya ke file cache. - load_from_cache_file (
Optional[bool], defaultnyaTruejika caching diaktifkan) β Jika file cache yang menyimpan komputasi saat ini darifunctiondapat diidentifikasi, gunakan file tersebut alih-alih menghitung ulang. - cache_file_name (
str, opsional, defaultnyaNone) β 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, defaultnya1000) β 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 menjalankanmap. - features (
Optional[datasets.Features], defaultnyaNone) β Gunakan Features tertentu untuk menyimpan file cache alih-alih yang dihasilkan secara otomatis. - disable_nullable (
bool, defaultnyaFalse) β Larang nilai null dalam tabel. - fn_kwargs (
Dict, opsional, defaultNone) β Argumen kata kunci yang akan diteruskan kefunction. - num_proc (
int, opsional, defaultnyaNone) β 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
Noneatau0, 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 tomap()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): Ifcache_file_nameis 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, ifcache_file_nameis "processed.arrow", then forrank=1andnum_proc=4, the resulting file would be“processed_00001_of_00004.arrow”` for the default suffix.
- Jika
- new_fingerprint (
str, opsional, defaultnyaNone) β Fingerprint baru dari dataset setelah transformasi. JikaNone, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya dan argumen transformasi. - desc (
str, opsional, defaultnyaNone) β Deskripsi bermakna yang akan ditampilkan berdampingan dengan progress bar saat memetakan contoh. - try_original_type (
Optional[bool], defaultnyaTrue) β 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, defaultnyaNone) β 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
Truedanbatch_sizeadalah 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
Truedanbatch_sizeadalahn > 1, maka fungsi tersebut mengambil batch berisincontoh sebagai input dan dapat mengembalikan batch berisincontoh, atau dengan jumlah contoh yang sembarang. Perhatikan bahwa batch terakhir mungkin memiliki kurang darincontoh. Sebuah batch adalah kamus, misalnya batch berisincontoh 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
< source >( 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]) -> booljikabatched=Falsedanwith_indices=Falsedanwith_rank=Falsefunction(example: Dict[str, Any], *extra_args) -> booljikabatched=Falsedanwith_indices=Truedan/atauwith_rank=True(satu argumen tambahan untuk masing-masing)function(batch: Dict[str, List]) -> List[bool]jikabatched=Truedanwith_indices=Falsedanwith_rank=Falsefunction(batch: Dict[str, List], *extra_args) -> List[bool]jikabatched=Truedanwith_indices=Truedan/atauwith_rank=True(satu argumen tambahan untuk masing-masing)
Jika fungsi bersifat asinkron, maka
filterakan menjalankan fungsi Anda secara paralel. Jika tidak ada fungsi yang diberikan, secara default menggunakan fungsi yang selaluTrue:lambda x: True. - with_indices (
bool, defaultnyaFalse) β Berikan indeks contoh kefunction. Perhatikan bahwa dalam kasus ini, signature darifunctionharus berupadef function(example, idx[, rank]): .... - with_rank (
bool, defaultnyaFalse) β Berikan rank proses kefunction. Perhatikan bahwa dalam kasus ini, signature darifunctionharus berupadef function(example[, idx], rank): .... - input_columns (
stratauList[str], opsional) β Kolom yang akan diteruskan kefunctionsebagai argumen posisional. JikaNone, sebuahdictyang memetakan ke semua kolom terformat akan diteruskan sebagai satu argumen. - batched (
bool, defaultnyaFalse) β Berikan batch contoh kefunction. - batch_size (
int, opsional, defaultnya1000) β Jumlah contoh per batch yang diberikan kefunctionjikabatched = True. Jikabatched = False, satu contoh per batch diteruskan kefunction. Jikabatch_size <= 0ataubatch_size == None, berikan seluruh dataset sebagai satu batch kefunction. - keep_in_memory (
bool, defaultnyaFalse) β Simpan dataset di memori alih-alih menuliskannya ke file cache. - load_from_cache_file (
Optional[bool], defaultnyaTruejika caching diaktifkan) β Jika file cache yang menyimpan komputasi saat ini darifunctiondapat 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, defaultnya1000) β 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 menjalankanmap. - fn_kwargs (
dict, opsional) β Argumen kata kunci yang akan diteruskan kefunction. - num_proc (
int, opsional, defaultnyaNone) β 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
Noneatau0, 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 kemap()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).
- Jika
- suffix_template (
str) β Jikacache_file_nameditentukan, maka sufiks ini akan ditambahkan di akhir nama dasar dari masing-masing file. Sebagai contoh, jikacache_file_nameadalah"processed.arrow", maka untukrank = 1dannum_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. JikaNone, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya dan argumen transformasi. - desc (
str, opsional, defaultnyaNone) β 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.
pilih
< source >( 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,ndarrayatauSeries) β 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, defaultnyaFalse) β Simpan pemetaan indeks di memori alih-alih menuliskannya ke file cache. - indices_cache_file_name (
str, opsional, defaultnyaNone) β 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, defaultnya1000) β 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 menjalankanmap. - new_fingerprint (
str, opsional, defaultnyaNone) β Fingerprint baru dari dataset setelah transformasi. JikaNone, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya dan argumen transformasi.
Buat dataset baru dengan baris yang dipilih mengikuti daftar/array indeks.
sort
< source >( 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]], defaultnyaFalse) β JikaTrue, 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, defaultnyaat_end) β LetakkanNonenilaiat_startataufirstatau di akhir jikaat_endataulastDitambahkan dalam 1.14.2
- keep_in_memory (
bool, defaultnyaFalse) β Simpan indeks yang telah diurutkan di memori alih-alih menuliskannya ke file cache. - load_from_cache_file (
Optional[bool], defaultnyaTruejika caching diaktifkan) β Jika file cache yang menyimpan indeks terurut dapat diidentifikasi, gunakan file tersebut alih-alih menghitung ulang. - indices_cache_file_name (
str, opsional, defaultnyaNone) β 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, defaultnya1000) β 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, defaultnyaNone) β Fingerprint baru dari dataset setelah transformasi. JikaNone, 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
< source >( 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 jikagenerator=None. JikaNone, maka entropi baru yang tidak dapat diprediksi akan diambil dari OS. Jikaintatauarray_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. Jikagenerator=None(default), menggunakannp.random.default_rng(BitGenerator default (PCG64) dari NumPy). - keep_in_memory (
bool, defaultFalse) β Simpan indeks yang diacak di memori alih-alih menuliskannya ke file cache. - load_from_cache_file (
Optional[bool], defaultnyaTruejika 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, defaultnya1000) β 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 menjalankanmap. - new_fingerprint (
str, opsional, defaultnyaNone) β Fingerprint baru dari dataset setelah transformasi. JikaNone, 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 againDalam 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
passBuat 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 .'}]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
< source >( 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 Jikafloat, nilainya harus berada di antara0.0dan1.0dan mewakili proporsi dataset yang akan dimasukkan ke dalam bagian uji. Jikaint, mewakili jumlah absolut sampel uji. JikaNone, nilainya diatur menjadi komplemen dari ukuran train. Jikatrain_sizejugaNone, nilainya akan diatur ke0.25. - train_size (
Union[float, int, None], opsional) β Ukuran split train Jikafloat, nilainya harus berada di antara0.0dan1.0dan mewakili proporsi dataset yang akan dimasukkan ke dalam split train. Jikaint, mewakili jumlah absolut sampel train. JikaNone, nilainya diatur secara otomatis menjadi komplemen dari ukuran test. - shuffle (
bool, opsional, defaultTrue) β Apakah data akan diacak sebelum dipecah. - stratify_by_column (
str, opsional, defaultnyaNone) β Nama kolom label yang akan digunakan untuk melakukan pemisahan data secara stratifikasi. - seed (
int, opsional) β Seed untuk menginisialisasi BitGenerator default jikagenerator=None. JikaNone, maka entropi baru yang tidak dapat diprediksi akan diambil dari OS. Jikaintatauarray_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. Jikagenerator=None(default), menggunakannp.random.default_rng(BitGenerator default (PCG64) dari NumPy). - keep_in_memory (
bool, defaultnyaFalse) β Simpan indeks split di memori alih-alih menuliskannya ke file cache. - load_from_cache_file (
Optional[bool], defaultnyaTruejika 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, defaultnya1000) β 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 menjalankanmap. - train_new_fingerprint (
str, opsional, defaultnyaNone) β Fingerprint baru dari set train setelah transform. JikaNone, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya, dan argumen transform - test_new_fingerprint (
str, opsional, defaultNone) β Fingerprint baru dari set pengujian setelah transformasi. JikaNone, 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
< source >( 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, defaultnyaTrue): Apakah akan memilih blok indeks yang berurutan untuk shard. - keep_in_memory (
bool, defaultnyaFalse) β 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, defaultnya1000) β 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 menjalankanmap.
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
})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
< source >( 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 adalahNone, yang berarti dataset tidak akan di-batch, tetapi dataset yang dikembalikan dapat di-batch kemudian dengantf_dataset.batch(batch_size). - columns (
List[str]ataustr, opsional) β Kolom dataset yang akan dimuat ke dalamtf.data.Dataset. Nama kolom yang dibuat olehcollate_fndan tidak ada di dataset asli dapat digunakan. - shuffle(
bool, defaultnyaFalse) β Acak urutan dataset saat dimuat. DisarankanTrueuntuk pelatihan,Falseuntuk validasi/evaluasi. - drop_remainder(
bool, defaultnyaFalse) β 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 (sepertiDataCollator) yang akan menggabungkan daftar sampel menjadi satu batch. - collate_fn_args (
Dict, opsional) βdictopsional berisi argumen kata kunci yang akan diteruskan kecollate_fn. - label_cols (
List[str]ataustr, defaultNone) β 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 dicolumnsinput. - prefetch (
bool, defaultnyaTrue) β 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, defaultnya0) β Jumlah worker yang digunakan untuk memuat dataset. - num_test_batches (
int, defaultnya20) β 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.
push_to_hub
< source >( 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 adalahself.split. - data_dir (
str, opsional) β Nama direktori yang akan berisi file data yang diunggah. Nilainya secara default mengikuticonfig_namejika 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_pradalah True).Ditambahkan dalam 2.16.0
- private (
bool, opsional) β Apakah membuat repo menjadi privat. JikaNone(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 denganhf 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, defaultnyaFalse) β Apakah akan membuat PR dengan file yang diunggah atau langsung melakukan commit.Ditambahkan dalam 2.15.0
- max_shard_size (
intataustr, 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 padamax_shard_size.Ditambahkan di 2.8.0
- embed_external_files (
bool, defaultnyaTrue) β Apakah akan menyematkan byte file ke dalam shard. Secara khusus, ini akan melakukan hal berikut sebelum push untuk field bertipe: - num_proc (
int, opsional, defaultnyaNone) β 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
< source >( 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 (
intataustr, 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 padamax_shard_sizedannum_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β).
load_from_disk
< source >( 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, defaultnyaNone) β Apakah dataset akan disalin ke memori. JikaNone, dataset tidak akan disalin ke memori kecuali secara eksplisit diaktifkan dengan mengaturdatasets.config.IN_MEMORY_MAX_SIZEke 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_pathadalah path dari direktori dataset, dataset yang diminta. - Jika
dataset_pathadalah path dari direktori dataset dict, sebuahdatasets.DatasetDictdengan 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.
flatten_indices
< source >( 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, defaultnyaFalse) β Simpan dataset di memori alih-alih menuliskannya ke file cache. - cache_file_name (
str, opsional, defaultNone) β 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, defaultnya1000) β 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 menjalankanmap. - features (
Optional[datasets.Features], defaultnyaNone) β Gunakan Features tertentu untuk menyimpan file cache alih-alih yang dihasilkan secara otomatis. - disable_nullable (
bool, defaultnyaFalse) β Izinkan nilai null dalam tabel. - num_proc (
int, opsional, defaultNone) β Jumlah maksimum proses saat menghasilkan cache. Shard yang sudah di-cache dimuat secara berurutan - new_fingerprint (
str, opsional, defaultnyaNone) β Fingerprint baru dari dataset setelah transformasi. JikaNone, fingerprint baru dihitung menggunakan hash dari fingerprint sebelumnya, dan argumen transformasi
Buat dan simpan Dataset baru dengan meratakan pemetaan indeks.
to_csv
< source >( 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 (
PathLikeatauFileOrBuffer) β 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 adalahdatasets.config.DEFAULT_MAX_BATCH_SIZE. - num_proc (
int, opsional) β Jumlah proses untuk multiprocessing. Secara default, multiprocessing tidak digunakan.batch_sizedalam hal ini secara default menjadidatasets.config.DEFAULT_MAX_BATCH_SIZEtetapi 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,
indexsecara default menjadiFalsejika tidak ditentukan.Jika Anda ingin menulis indeks, berikan
index=Truedan juga atur nama untuk kolom indeks dengan memberikanindex_label.
Mengembalikan
int
Jumlah karakter atau byte yang ditulis.
Mengekspor dataset ke csv
to_pandas
< source >( batch_size: typing.Optional[int] = Nonebatched: bool = False )
Parameter
- batch_size (
int, opsional) β Ukuran (jumlah baris) dari batch jikabatchedadalahTrue. Nilai defaultnya adalahdatasets.config.DEFAULT_MAX_BATCH_SIZE. - batched (
bool) β Atur keTrueuntuk mengembalikan generator yang menghasilkan dataset dalam bentuk batch berisibatch_sizebaris. DefaultnyaFalse(mengembalikan seluruh dataset sekaligus).
Mengembalikan dataset sebagai pandas.DataFrame. Dapat juga mengembalikan generator untuk dataset besar.
to_dict
< source >( batch_size: typing.Optional[int] = Nonebatched: bool = False )
Parameter
- batch_size (
int, opsional) β Ukuran (jumlah baris) dari batch jikabatchedadalahTrue. Nilai defaultnya adalahdatasets.config.DEFAULT_MAX_BATCH_SIZE. - batched (
bool) β Atur keTrueuntuk mengembalikan generator yang menghasilkan dataset dalam bentuk batch berisibatch_sizebaris. DefaultnyaFalse(mengembalikan seluruh dataset sekaligus).
Mengembalikan dataset sebagai dict Python. Dapat juga mengembalikan generator untuk dataset besar.
to_json
< source >( 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 (
PathLikeatauFileOrBuffer) β 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 adalahdatasets.config.DEFAULT_MAX_BATCH_SIZE. - num_proc (
int, opsional) β Jumlah proses untuk multiprocessing. Secara default, tidak menggunakan multiprocessing.batch_sizedalam hal ini secara default menjadidatasets.config.DEFAULT_MAX_BATCH_SIZEtetapi 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 adalahlines=Truedan `orient=βrecordsβ.Berubah di 2.11.0
Parameter
indexsecara default menjadiFalsejikaorientadalah"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.
to_parquet
< source >( 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 (
PathLikeatauFileOrBuffer) β 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 olehdatasets.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.ParquetWriterdari PyArrow.
Mengembalikan
int
Jumlah karakter atau byte yang ditulis.
Mengekspor dataset ke parquet
to_sql
< source >( 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 (
stratausqlite3.Connectionatausqlalchemy.engine.Connectionatausqlalchemy.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 adalahdatasets.config.DEFAULT_MAX_BATCH_SIZE. - num_proc (
int, opsional) β Jumlah proses untuk multiprocessing. Secara default, tidak menggunakan multiprocessing.batch_sizedalam hal ini secara default menjadidatasets.config.DEFAULT_MAX_BATCH_SIZEtetapi 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,
indexsecara default menjadiFalsejika tidak ditentukan.Jika Anda ingin menulis indeks, berikan
index=Truedan juga atur nama untuk kolom indeks dengan memberikanindex_label.
Mengembalikan
int
Jumlah rekaman yang ditulis.
Mengekspor dataset ke basis data SQL.
to_iterable_dataset
< source >( num_shards: typing.Optional[int] = 1 )
Parameter
- num_shards (
int, default to1) β 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:
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:
... passDengan 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:
... passDengan 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:
... passDengan 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:
... passDalam 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:
... passDengan 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:
... passadd_faiss_index
< source >( 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 adalahindex_nameyang digunakan untuk memanggil get_nearest_examples() atau search(). Secara default, ini sesuai dengancolumn. - 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 adalahIndexFlat. - metric_type (
int, opsional) β Jenis metrik. Contoh:faiss.METRIC_INNER_PRODUCTataufaiss.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 keFaissIndex. Nilai defaultnya adalah1000.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, defaultnyaFalse) β Aktifkan tingkat detail (verbosity) dari indeks Faiss. - dtype (
data-type) β dtype dari array numpy yang diindeks. Default adalahnp.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:
- Untuk string factory
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
< source >( 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 mengaturexternal_arrays. Ini akan menggunakanexternal_arraysuntuk membuat index Faiss alih-alih array dicolumnyang diberikan. - index_name (
str) βindex_name/pengenal dari indeks. Ini adalahindex_nameyang 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 adalahIndexFlat. - metric_type (
int, opsional) β Jenis metrik. Contoh:faiss.faiss.METRIC_INNER_PRODUCTataufaiss.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:
- Untuk string factory
save_faiss_index
< source >( 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_nearestatau.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
< source >( 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_nearestatau.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
< source >( 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 dengancolumn. - host (
str, opsional, defaultlocalhost) β Host tempat ElasticSearch berjalan. - port (
str, opsional, default9200) β Port tempat ElasticSearch berjalan. - es_client (
elasticsearch.Elasticsearch, opsional) β Klien elasticsearch yang digunakan untuk membuat indeks jika host dan port adalahNone. - 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
< source >( 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 memanggilget_nearestatausearch. - es_index_name (
str) β Nama indeks elasticsearch yang akan dimuat. - host (
str, opsional, defaultlocalhost) β Host tempat ElasticSearch berjalan. - port (
str, opsional, default9200) β Port tempat ElasticSearch berjalan. - es_client (
elasticsearch.Elasticsearch, opsional) β Klien elasticsearch yang digunakan untuk membuat indeks jika host dan port adalahNone. - 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.
Daftarkan colindex_nameumns/identitas dari semua indeks yang terlampir.
Daftarkan index_name/identitas dari semua indeks yang terlampir.
drop_index
< source >( index_name: str )
Hapus indeks dengan kolom yang ditentukan.
cari
< source >( 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 jikaindex_nameadalah indeks teks, atau sebagai array numpy jikaindex_nameadalah 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 (IndexFlatL2secara 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
< source >( 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 jikaindex_nameadalah indeks teks, atau sebagai array numpy jikaindex_nameadalah 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 (IndexFlatL2secara 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
< source >( 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 jikaindex_nameadalah indeks teks, atau sebagai array numpy jikaindex_nameadalah 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 (IndexFlatL2secara default) atau ElasticSearch untuk contoh yang diambil - contoh (
dict): contoh yang diambil
Temukan contoh terdekat dalam dataset terhadap query.
get_nearest_examples_batch
< source >( 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 jikaindex_nameadalah indeks teks, atau sebagai array numpy jikaindex_nameadalah 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 (IndexFlatL2secara 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.
objek DatasetInfo yang berisi semua metadata dalam dataset.
objek NamedSplit yang sesuai dengan split dataset bernama.
from_csv
< source >( 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-likeatau daftarpath-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, defaultnyaFalse) β Apakah menyalin data ke dalam memori. - num_proc (
int, opsional, defaultnyaNone) β 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.
from_json
< source >( 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-likeatau daftarpath-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, defaultnyaFalse) β Apakah menyalin data ke dalam memori. - field (
str, opsional) β Nama field dari file JSON tempat dataset berada. - num_proc (
int, opsional defaultnyaNone) β 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.
from_parquet
< source >( 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-likeatau daftarpath-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, defaultnyaFalse) β Apakah menyalin data ke dalam memori. - columns (
List[str], opsional) β Jika bukanNone, 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, defaultnyaNone) β 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.
from_text
< source >( 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-likeatau daftarpath-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, defaultnyaFalse) β Apakah menyalin data ke dalam memori. - num_proc (
int, opsional, defaultnyaNone) β 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.
from_sql
< source >( 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 (
stratausqlalchemy.sql.Selectable) β Kueri SQL yang akan dieksekusi atau nama tabel. - con (
stratausqlite3.Connectionatausqlalchemy.engine.Connectionatausqlalchemy.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, defaultnyaFalse) β 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
conditentukan sebagai string URI.
align_labels_with_mapping
< source >( label2id: dictlabel_column: str )
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
< source >( dsets: listinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneaxis: int = 0 )
Parameter
- dsets (
List[datasets.Dataset]atauList[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 ke0) β Sumbu untuk penggabungan, di mana0berarti pada baris (vertikal) dan1berarti 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_shardsdari dataset yang dihasilkan adalah jumlah darinum_shardsmasing-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.
datasets.interleave_datasets
< source >( 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]atauList[IterableDataset]) β Daftar dataset untuk diinterleaving. - probabilities (
List[float], opsional, defaultNone) β Jika ditentukan, dataset baru dibangun dengan mengambil contoh dari satu sumber pada satu waktu sesuai probabilitas ini. - seed (
int, opsional, defaultnyaNone) β 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, defaultnyafirst_exhausted) β Saat ini, tiga strategi yang diusulkan adalahfirst_exhausted,all_exhausteddanall_exhausted_without_replacement. Secara default,first_exhaustedadalah strategi undersampling, yaitu konstruksi dataset dihentikan begitu satu dataset kehabisan sampel. Jika strateginya adalahall_exhausted, kami menggunakan strategi oversampling, yaitu konstruksi dataset dihentikan begitu setiap sampel dari setiap dataset telah ditambahkan setidaknya sekali. Ketika strateginya adalahall_exhausted_without_replacementkami memastikan bahwa setiap sampel di setiap dataset hanya diambil sekali. Perlu dicatat bahwa jika strateginya adalahall_exhausted, ukuran dataset yang diinterleaved bisa menjadi sangat besar:- tanpa probabilitas, dataset yang dihasilkan akan memiliki
max_length_datasets*nb_datasetsampel. - dengan probabilitas yang diberikan, dataset yang dihasilkan akan memiliki lebih banyak sampel jika beberapa dataset memiliki probabilitas kunjungan yang sangat rendah.
- tanpa probabilitas, dataset yang dihasilkan akan memiliki
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
probabilitiesadalahNone(default), dataset baru dibangun dengan bergantian mengambil contoh dari setiap sumber. - Jika
probabilitiesbukanNone, 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_shardsdari dataset yang dihasilkan adalah nilai minimum darinum_shardsmasing-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
< source >( 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 dariworld_size, melewati contoh lainnya"auto"(default): menggunakan"shards"jika dataset memiliki jumlah shard yang merupakan faktor dariworld_size(yaitu jikadataset.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
seedyang 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.
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_modedi load_dataset().
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_modedi load_dataset().
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_modedi load_dataset().
kelas datasets.Column
< source >( source: typing.Union[ForwardRef('Dataset'), ForwardRef('Column')]column_name: str )
Iterable untuk kolom tertentu dari Dataset.
Contoh:
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.
Kamus (dict of str: datasets.Dataset) dengan metode transformasi dataset (map, filter, dll.)
Tabel Apache Arrow yang mendasari setiap split.
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'}]}Jumlah kolom di setiap split dari dataset.
Jumlah baris di setiap split dari dataset.
Nama kolom di setiap split dari dataset.
Bentuk setiap split dari dataset (jumlah baris, jumlah kolom).
unik
< source >( 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.
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.
map
< source >( 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]jikabatched=Falsedanwith_indices=Falsefunction(example: Dict[str, Any], indices: int) -> Dict[str, Any]jikabatched=Falsedanwith_indices=Truefunction(batch: Dict[str, list]) -> Dict[str, list]jikabatched=Truedanwith_indices=Falsefunction(batch: Dict[str, list], indices: list[int]) -> Dict[str, list]jikabatched=Truedanwith_indices=True
Untuk penggunaan lanjutan, fungsi juga dapat mengembalikan
pyarrow.Table. Jika fungsi bersifat asinkron, makamapakan menjalankan fungsi Anda secara paralel. Selain itu, jika fungsi Anda tidak mengembalikan apa pun (None), makamapakan 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, defaultnyaFalse) β Berikan indeks contoh kefunction. Perhatikan bahwa dalam kasus ini, tanda tanganfunctionharus berupadef function(example, idx): .... - with_rank (
bool, defaultnyaFalse) β Berikan rank proses kefunction. Perhatikan bahwa dalam kasus ini, signature darifunctionharus berupadef function(example[, idx], rank): .... - with_split (
bool, defaultnyaFalse) β Sediakan process split untukfunction. Perhatikan bahwa dalam kasus ini, signature darifunctionharus berupadef function(example[, idx], split): .... - input_columns (
[Union[str, list[str]]], opsional, defaultnyaNone) β Kolom yang akan diteruskan kefunctionsebagai argumen posisional. JikaNone, dict pemetaan ke semua kolom yang diformat akan diteruskan sebagai satu argumen. - batched (
bool, defaultnyaFalse) β Berikan batch contoh kefunction. - batch_size (
int, opsional, defaultnya1000) β Jumlah contoh per batch yang diberikan kefunctionjikabatched=True,batch_size <= 0ataubatch_size == Nonemaka berikan seluruh dataset sebagai satu batch kefunction. - drop_last_batch (
bool, defaultnyaFalse) β Apakah batch terakhir yang lebih kecil dari batch_size harus dibuang alih-alih diproses oleh fungsi. - remove_columns (
[Union[str, list[str]]], opsional, defaultnyaNone) β Hapus pilihan kolom saat melakukan pemetaan. Kolom akan dihapus sebelum memperbarui contoh dengan output darifunction, yaitu jikafunctionmenambahkan kolom dengan nama yang ada diremove_columns, kolom-kolom ini akan tetap dipertahankan. - keep_in_memory (
bool, defaultnyaFalse) β Simpan dataset di memori alih-alih menuliskannya ke file cache. - load_from_cache_file (
Optional[bool], defaultnyaTruejika caching diaktifkan) β Jika file cache yang menyimpan komputasi saat ini darifunctiondapat diidentifikasi, gunakan file tersebut alih-alih menghitung ulang. - cache_file_names (
[Dict[str, str]], opsional, defaultnyaNone) β Berikan nama path untuk file cache. Ini digunakan untuk menyimpan hasil komputasi alih-alih nama file cache yang dihasilkan secara otomatis. Anda harus menyediakan satucache_file_nameper dataset dalam kamus dataset. - writer_batch_size (
int, default1000) β 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 menjalankanmap. - features (
[datasets.Features], opsional, defaultNone) β Gunakan Features tertentu untuk menyimpan file cache alih-alih yang dihasilkan secara otomatis. - disable_nullable (
bool, defaultnyaFalse) β Larang nilai null dalam tabel. - fn_kwargs (
Dict, opsional, defaultnyaNone) β Argumen kata kunci yang akan diteruskan kefunction - num_proc (
int, opsional, defaultnyaNone) β 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
Noneatau0, 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 kemap()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).
- Jika
- desc (
str, opsional, defaultnyaNone) β Deskripsi bermakna yang akan ditampilkan berdampingan dengan progress bar saat memetakan contoh. - try_original_type (
Optional[bool], defaultnyaTrue) β 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, defaultnyaNone) β 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
Truedanbatch_sizeadalah 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
Truedanbatch_sizeadalahn > 1, maka fungsi tersebut mengambil batch berisincontoh sebagai input dan dapat mengembalikan batch berisincontoh, atau dengan jumlah contoh yang sembarang. Perhatikan bahwa batch terakhir mungkin memiliki kurang darincontoh. Sebuah batch adalah kamus, misalnya batch berisincontoh 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
< source >( 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]) -> booljikabatched=Falsedanwith_indices=Falsedanwith_rank=Falsefunction(example: Dict[str, Any], *extra_args) -> booljikabatched=Falsedanwith_indices=Truedan/atauwith_rank=True(satu argumen tambahan untuk masing-masing)function(batch: Dict[str, list]) -> list[bool]jikabatched=Truedanwith_indices=Falsedanwith_rank=Falsefunction(batch: Dict[str, list], *extra_args) -> list[bool]jikabatched=Truedanwith_indices=Truedan/atauwith_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, defaultnyaFalse) β Berikan indeks contoh kefunction. Perhatikan bahwa dalam kasus ini, signature darifunctionharus berupadef function(example, idx[, rank]): .... - with_rank (
bool, defaultnyaFalse) β Berikan rank proses kefunction. Perhatikan bahwa dalam kasus ini, signature darifunctionharus berupadef function(example[, idx], rank): .... - input_columns (
[Union[str, list[str]]], opsional, defaultnyaNone) β Kolom yang akan diteruskan kefunctionsebagai argumen posisional. JikaNone, dict pemetaan ke semua kolom yang diformat akan diteruskan sebagai satu argumen. - batched (
bool, defaultnyaFalse) β Berikan batch contoh kefunction. - batch_size (
int, opsional, defaultnya1000) β Jumlah contoh per batch yang diberikan kefunctionjikabatched=Truebatch_size <= 0ataubatch_size == Nonemaka berikan seluruh dataset sebagai satu batch kefunction. - keep_in_memory (
bool, defaultnyaFalse) β Simpan dataset di memori alih-alih menuliskannya ke file cache. - load_from_cache_file (
Optional[bool], defaultnyaTruejika caching diaktifkan) β Jika file cache yang menyimpan komputasi saat ini darifunctiondapat diidentifikasi, gunakan file tersebut alih-alih menghitung ulang. - cache_file_names (
[Dict[str, str]], opsional, defaultnyaNone) β Berikan nama path untuk file cache. Ini digunakan untuk menyimpan hasil komputasi alih-alih nama file cache yang dihasilkan secara otomatis. Anda harus menyediakan satucache_file_nameper dataset dalam kamus dataset. - writer_batch_size (
int, defaultnya1000) β 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 menjalankanmap. - fn_kwargs (
Dict, opsional, defaultnyaNone) β Argumen kata kunci yang akan diteruskan kefunction - num_proc (
int, opsional, defaultnyaNone) β 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
Noneatau0, 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 kemap()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).
- Jika
- desc (
str, opsional, defaultnyaNone) β 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
< source >( 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]], defaultnyaFalse) β JikaTrue, 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, defaultnyaat_end) β Letakkan nilaiNonedi awal jikaat_startataufirstatau di akhir jikaat_endataulast - keep_in_memory (
bool, defaultnyaFalse) β Simpan indeks yang telah diurutkan di memori alih-alih menuliskannya ke file cache. - load_from_cache_file (
Optional[bool], defaultnyaTruejika 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, defaultnyaNone) β Berikan nama path untuk file cache. Ini digunakan untuk menyimpan pemetaan indeks alih-alih nama file cache yang dihasilkan secara otomatis. Anda harus menyediakan satucache_file_nameper dataset dalam kamus dataset. - writer_batch_size (
int, defaultnya1000) β 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
< source >( 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]atauint, opsional) β Seed untuk menginisialisasi BitGenerator default jikagenerator=None. JikaNone, maka entropi baru yang tidak dapat diprediksi akan diambil dari OS. Jikaintatauarray_like[ints]diberikan, maka nilai tersebut akan diteruskan ke SeedSequence untuk menurunkan state BitGenerator awal. Anda dapat menyediakan satuseedper dataset dalam kamus dataset. - seed (
int, opsional) β Seed untuk menginisialisasi BitGenerator default jikagenerator=None. Alias untuk seeds (sebuahValueErrorakan dilempar jika keduanya disediakan). - generators (
Dict[str, *optional*, np.random.Generator]) β Numpy random Generator yang digunakan untuk menghitung permutasi baris dataset. Jikagenerator=None(default), menggunakannp.random.default_rng(BitGenerator default (PCG64) dari NumPy). Anda harus menyediakan satugeneratoruntuk setiap dataset dalam kamus dataset. - keep_in_memory (
bool, defaultnyaFalse) β Simpan dataset di memori alih-alih menuliskannya ke file cache. - load_from_cache_file (
Optional[bool], defaultnyaTruejika caching diaktifkan) β Jika file cache yang menyimpan komputasi saat ini darifunctiondapat 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 satucache_file_nameper dataset dalam kamus dataset. - writer_batch_size (
int, defaultnya1000) β 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 menjalankanmap.
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).
set_format
< source >( 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'].Noneberarti__getitem__mengembalikan objek python (default). - columns (
list[str], opsional) β Kolom yang akan diformat dalam output.Noneberarti__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.tensoratautensorflow.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 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
< source >( 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'].Noneberarti__getitem__mengembalikan objek python (default). - columns (
list[str], opsional) β Kolom yang akan diformat dalam output.Noneberarti__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.tensoratautensorflow.ragged.constant.
Digunakan dalam pernyataan with. Atur format pengembalian __getitem__ (tipe dan kolom).
Transformasi diterapkan ke semua dataset dalam kamus dataset.
with_format
< source >( 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'].Noneberarti__getitem__mengembalikan objek python (default). - columns (
list[str], opsional) β Kolom yang akan diformat dalam output.Noneberarti__getitem__mengembalikan semua kolom (default). - output_all_columns (
bool, defaultnyaFalse) β 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.tensoratautensorflow.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
< source >( 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 keTrue, 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])}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
< source >( 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
< source >( column: strfeature )
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
< source >( column_names: typing.Union[str, list[str]] ) β DatasetDict
Parameter
Mengembalikan
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
< source >( original_column_name: strnew_column_name: str )
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
< source >( column_mapping: dict ) β DatasetDict
Parameter
Mengembalikan
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
< source >( column_names: typing.Union[str, list[str]] )
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
< source >( column: strinclude_nulls: bool = False )
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
< source >( 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 mengikuticonfig_namejika 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_pradalah True).Ditambahkan dalam 2.16.0
- private (
bool, opsional) β Apakah membuat repo menjadi privat. JikaNone(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 denganhf 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, defaultnyaFalse) β Apakah akan membuat PR dengan file yang diunggah atau langsung melakukan commit.Ditambahkan dalam 2.15.0
- max_shard_size (
intataustr, 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 padamax_shard_size. Gunakan dictionary untuk mendefinisikan num_shards yang berbeda untuk setiap split.Ditambahkan di 2.8.0
- embed_external_files (
bool, defaultnyaTrue) β Apakah akan menyematkan byte file ke dalam shard. Secara khusus, ini akan melakukan hal berikut sebelum push untuk field bertipe: - num_proc (
int, opsional, defaultnyaNone) β 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
< source >( 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 (
intataustr, 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 padamax_shard_sizedannum_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, defaultNone) β 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β).
load_from_disk
< source >( 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, defaultnyaNone) β Apakah dataset akan disalin ke memori. JikaNone, dataset tidak akan disalin ke memori kecuali secara eksplisit diaktifkan dengan mengaturdatasets.config.IN_MEMORY_MAX_SIZEke 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.
from_csv
< source >( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )
Parameter
- path_or_paths (
dictof 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, defaultnyaFalse) β 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.
from_json
< source >( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )
Parameter
- path_or_paths (
path-likeatau daftarpath-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, defaultnyaFalse) β 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.
from_parquet
< source >( 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 (
dictof 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, defaultnyaFalse) β Apakah menyalin data ke dalam memori. - columns (
list[str], opsional) β Jika bukanNone, 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.
from_text
< source >( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )
Parameter
- path_or_paths (
dictof 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, defaultnyaFalse) β Apakah menyalin data ke dalam memori. - **kwargs (argumen kata kunci tambahan) β
Argumen kata kunci yang akan diteruskan ke
TextConfig.
Buat DatasetDict dari file teks.
IterableDataset
Kelas dasar IterableDataset mengimplementasikan Dataset yang dapat diiterasi dan didukung oleh generator python.
kelas datasets.IterableDataset
< source >( 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.
Instansiasi IterableDataset dari tabel Arrow di filename.
from_pandas
< source >( 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 defaultNoneakan menyimpan indeks sebagai kolom, kecuali untukRangeIndexyang hanya disimpan sebagai metadata. Gunakanpreserve_index=Trueuntuk memaksa indeks disimpan sebagai kolom. - num_shards (
int, default1) β 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.
from_dict
< source >( 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, default1) β 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
< source >( 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, default1) β 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
< source >( generator: typing.Callablefeatures: typing.Optional[datasets.features.features.Features] = Nonegen_kwargs: typing.Optional[dict] = Nonesplit: NamedSplit = NamedSplit('train') )
Parameter
- generator (
Callable) β Fungsi generator yangyieldscontoh. - features (
Features, opsional) β Fitur dataset. - gen_kwargs(
dict, opsional) β Argumen kata kunci yang akan diteruskan ke callablegenerator. Anda dapat mendefinisikan dataset iterable yang terbagi (sharded) dengan meneruskan daftar shard digen_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 shardsremove_columns
< source >( column_names: typing.Union[str, list[str]] ) β IterableDataset
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
< source >( column_names: typing.Union[str, list[str]] ) β IterableDataset
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
< source >( 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
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
< source >( 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
< source >( enable: bool = Truenum_threads: typing.Optional[int] = None ) β IterableDataset
Parameter
- enable (
bool, defaultnyaTrue) β Mengaktifkan atau menonaktifkan fitur decoding. - num_threads (
int, opsional, defaultnyaNone) β 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_threadsdiatur 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
< source >( batch_size: intdrop_last_batch: bool = False )
Iterasi melalui batch berukuran batch_size.
map
< source >( 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, defaultnyaNone) β 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]jikabatched=Falsedanwith_indices=Falsefunction(example: Dict[str, Any], idx: int) -> Dict[str, Any]jikabatched=Falsedanwith_indices=Truefunction(batch: Dict[str, List]) -> Dict[str, List]jikabatched=Truedanwith_indices=Falsefunction(batch: Dict[str, List], indices: List[int]) -> Dict[str, List]jikabatched=Truedanwith_indices=True
Untuk penggunaan lanjutan, fungsi juga dapat mengembalikan
pyarrow.Table. Jika fungsi bersifat asinkron, makamapakan menjalankan fungsi Anda secara paralel. Selain itu, jika fungsi Anda tidak mengembalikan apa pun (None), makamapakan 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, defaultnyaFalse) β Berikan indeks contoh kefunction. Perhatikan bahwa dalam kasus ini, tanda tanganfunctionharus berupadef function(example, idx[, rank]): .... - input_columns (
Optional[Union[str, List[str]]], defaultnyaNone) β Kolom yang akan diteruskan kefunctionsebagai argumen posisional. JikaNone, dict pemetaan ke semua kolom yang diformat akan diteruskan sebagai satu argumen. - batched (
bool, defaultnyaFalse) β Berikan batch contoh kefunction. - batch_size (
int, opsional, defaultnya1000) β Jumlah contoh per batch yang diberikan kefunctionjikabatched=True.batch_size <= 0ataubatch_size == Nonemaka seluruh dataset diberikan sebagai satu batch kefunction. - drop_last_batch (
bool, defaultnyaFalse) β Apakah batch terakhir yang lebih kecil dari batch_size harus dibuang alih-alih diproses oleh fungsi. - remove_columns (
[List[str]], opsional, defaultNone) β Hapus pilihan kolom saat melakukan pemetaan. Kolom akan dihapus sebelum memperbarui contoh dengan output darifunction, yaitu jikafunctionmenambahkan kolom dengan nama yang ada diremove_columns, kolom-kolom ini akan tetap dipertahankan. - features (
[Features], opsional, defaultNone) β Tipe fitur dari dataset yang dihasilkan. - fn_kwargs (
Dict, opsional, defaultNone) β Argumen kata kunci yang akan diteruskan kefunction.
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
Truedanbatch_sizeadalah 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
Truedanbatch_sizeadalahn> 1, maka fungsi tersebut mengambil batch berisincontoh sebagai input dan dapat mengembalikan batch berisincontoh, atau dengan jumlah contoh yang sembarang. Perhatikan bahwa batch terakhir mungkin memiliki kurang darincontoh. Sebuah batch adalah kamus, misalnya batch berisincontoh 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
< source >( original_column_name: strnew_column_name: str ) β IterableDataset
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
< source >( 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]) -> booljikawith_indices=False, batched=Falsefunction(example: Dict[str, Any], indices: int) -> booljikawith_indices=True, batched=Falsefunction(example: Dict[str, List]) -> List[bool]jikawith_indices=False, batched=Truefunction(example: Dict[str, List], indices: List[int]) -> List[bool]jikawith_indices=True, batched=True
Jika fungsi bersifat asinkron, maka
filterakan menjalankan fungsi Anda secara paralel. Jika tidak ada fungsi yang diberikan, defaultnya adalah fungsi yang selalu True:lambda x: True. - with_indices (
bool, defaultnyaFalse) β Berikan indeks contoh kefunction. Perhatikan bahwa dalam kasus ini, tanda tanganfunctionharus berupadef function(example, idx): .... - input_columns (
stratauList[str], opsional) β Kolom yang akan diteruskan kefunctionsebagai argumen posisional. JikaNone, dict yang memetakan ke semua kolom terformat akan diteruskan sebagai satu argumen. - batched (
bool, defaultnyaFalse) β Berikan batch contoh kefunction. - batch_size (
int, opsional, default1000) β Jumlah contoh per batch yang diberikan kefunctionjikabatched=True. - fn_kwargs (
Dict, opsional, defaultNone) β Argumen kata kunci yang akan diteruskan kefunction.
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
< source >( seed = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonebuffer_size: int = 1000max_buffer_input_shards: int = 10 )
Parameter
- seed (
int, opsional, defaultNone) β 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. Jikagenerator=None(default), menggunakannp.random.default_rng(BitGenerator default (PCG64) dari NumPy). - buffer_size (
int, defaultnya1000) β Ukuran buffer. - max_buffer_input_shards (
int, defaultnya10) β 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
< source >( 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, defaultnyaFalse) β Apakah akan membuang batch terakhir yang tidak lengkap.
Kelompokkan sampel dari dataset menjadi batch.
Contoh:
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 .'}]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
< source >( num_shards: intindex: intcontiguous: bool = True )
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 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
< source >( num_times: typing.Optional[int] )
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
< source >( 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 (
PathLikeatauFileOrBuffer) β 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 adalahdatasets.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_csvdari pandas. Parameterindexsecara default bernilaiFalsejika tidak ditentukan. Jika Anda ingin menulis indeks, teruskanindex=Truedan juga atur nama untuk kolom indeks dengan meneruskanindex_label.
Mengembalikan
int
Jumlah karakter atau byte yang ditulis.
Mengekspor dataset ke csv.
Ini mengiterasi dataset dan memuatnya sepenuhnya ke memori sebelum menuliskannya.
to_pandas
< source >( batch_size: typing.Optional[int] = Nonebatched: bool = False )
Parameter
- batch_size (
int, opsional) β Ukuran (jumlah baris) dari batch jikabatchedadalahTrue. Nilai defaultnya adalahdatasets.config.DEFAULT_MAX_BATCH_SIZE. - batched (
bool) β Atur keTrueuntuk mengembalikan generator yang menghasilkan dataset dalam bentuk batch berisibatch_sizebaris. DefaultnyaFalse(mengembalikan seluruh dataset sekaligus).
Mengembalikan dataset sebagai pandas.DataFrame. Dapat juga mengembalikan generator untuk dataset besar.
to_dict
< source >( batch_size: typing.Optional[int] = Nonebatched: bool = False )
Mengembalikan dataset sebagai dict Python. Dapat juga mengembalikan generator untuk dataset besar.
to_json
< source >( 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 (
PathLikeatauFileOrBuffer) β 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 adalahdatasets.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_jsondari pandas. Argumen default adalahlines=Truedanorient="records". The parameterindexdefaults toFalseiforientisβsplitβorβtableβ. If you would like to write the index, passindex=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.
to_parquet
< source >( 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 (
PathLikeatauFileOrBuffer) β 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 adalahdatasets.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.ParquetWriterdari PyArrow.
Mengembalikan
int
Jumlah karakter atau byte yang ditulis.
Mengekspor dataset ke parquet
to_sql
< source >( 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 (
stratausqlite3.Connectionatausqlalchemy.engine.Connectionatausqlalchemy.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 adalahdatasets.config.DEFAULT_MAX_BATCH_SIZE. - **sql_writer_kwargs (argumen kata kunci tambahan) β
Parameter untuk diteruskan ke
pandas.DataFrame.to_sqldari pandas. Parameterindexsecara default bernilaiFalsejika tidak ditentukan. Jika Anda ingin menulis indeks, teruskanindex=Truedan juga atur nama untuk kolom indeks dengan meneruskanindex_label.
Mengembalikan
int
Jumlah rekaman yang ditulis.
Mengekspor dataset ke basis data SQL.
push_to_hub
< source >( 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 adalahself.split. - data_dir (
str, opsional) β Nama direktori yang akan berisi file data yang diunggah. Nilainya secara default sama denganconfig_namejika 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_pradalah True). - private (
bool, opsional) β Apakah membuat repo menjadi privat. JikaNone(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 denganhf 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, defaultFalse) β Apakah akan membuat PR dengan file yang diunggah atau langsung melakukan commit. - max_shard_size (
intataustr, 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_shardsdataset ini. - num_shards (
int, opsional) β Jumlah shard yang akan ditulis. Jikamax_shard_sizediberikan dannum_shardstidak, maka jumlah shard diperkirakan darimax_shard_size. Nilai ini bisa lebih besar dari.num_shardsdataset ini: setiap shard input kemudian disebar ke beberapa shard output dengan menulis contoh-contohnya secara bergiliran (round-robin). - embed_external_files (
bool, defaultnyaTrue) β Apakah akan menyematkan byte file ke dalam shard. Secara khusus, ini akan melakukan hal berikut sebelum push untuk field bertipe: - num_proc (
int, opsional, defaultnyaNone) β 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")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:
- contoh dari buffer shuffle hilang saat melanjutkan dan buffer diisi ulang dengan data baru
- 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 hoodDapatkan 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:
- contoh dari buffer shuffle hilang saat melanjutkan dan buffer diisi ulang dengan data baru
- 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 hoodobjek DatasetInfo yang berisi semua metadata dalam dataset.
objek NamedSplit yang sesuai dengan split dataset bernama.
from_csv
< source >( 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-likeatau daftarpath-like) β Path file CSV. - split (NamedSplit, opsional) β Nama pemisahan yang akan ditugaskan ke dataset.
- features (Features, opsional) β Fitur dataset.
- keep_in_memory (
bool, defaultnyaFalse) β 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.
from_json
< source >( 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-likeatau daftarpath-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, defaultnyaFalse) β 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.
from_parquet
< source >( 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-likeatau daftarpath-like) β Path file Parquet. - split (
NamedSplit, opsional) β Nama split yang akan ditugaskan ke dataset. - features (
Features, opsional) β Fitur dataset. - keep_in_memory (
bool, defaultnyaFalse) β Apakah menyalin data ke dalam memori. - columns (
List[str], opsional) β Jika bukanNone, 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.
from_text
< source >( 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-likeatau daftarpath-like) β Path file teks. - split (
NamedSplit, opsional) β Nama split yang akan ditugaskan ke dataset. - features (
Features, opsional) β Fitur dataset. - keep_in_memory (
bool, defaultnyaFalse) β 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.
kelas datasets.IterableColumn
< source >( source: typing.Union[ForwardRef('IterableDataset'), ForwardRef('IterableColumn')]column_name: str )
Iterable untuk kolom tertentu dari IterableDataset.
Contoh:
IterableDatasetDict
Dictionary dengan nama split sebagai kunci (misalnya βtrainβ, βtestβ), dan objek IterableDataset sebagai nilai.
map
< source >( 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, defaultnyaNone) β 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]jikabatched=Falsedanwith_indices=Falsefunction(example: Dict[str, Any], idx: int) -> Dict[str, Any]jikabatched=Falsedanwith_indices=Truefunction(batch: Dict[str, list]) -> Dict[str, list]jikabatched=Truedanwith_indices=Falsefunction(batch: Dict[str, list], indices: list[int]) -> Dict[str, list]jikabatched=Truedanwith_indices=True
Untuk penggunaan lanjutan, fungsi juga dapat mengembalikan
pyarrow.Table. Jika fungsi bersifat asinkron, makamapakan menjalankan fungsi Anda secara paralel. Selain itu, jika fungsi Anda tidak mengembalikan apa pun (None), makamapakan 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, defaultnyaFalse) β Berikan indeks contoh kefunction. Perhatikan bahwa dalam kasus ini, tanda tanganfunctionharus berupadef function(example, idx[, rank]): .... - input_columns (
[Union[str, list[str]]], opsional, defaultnyaNone) β Kolom yang akan diteruskan kefunctionsebagai argumen posisional. JikaNone, dict pemetaan ke semua kolom yang diformat akan diteruskan sebagai satu argumen. - batched (
bool, defaultnyaFalse) β Berikan batch contoh kefunction. - batch_size (
int, opsional, defaultnya1000) β Jumlah contoh per batch yang diberikan kefunctionjikabatched=True. - drop_last_batch (
bool, defaultnyaFalse) β Apakah batch terakhir yang lebih kecil daribatch_sizeharus dibuang alih-alih diproses oleh fungsi. - remove_columns (
[list[str]], opsional, defaultNone) β Hapus pilihan kolom saat melakukan pemetaan. Kolom akan dihapus sebelum memperbarui contoh dengan output darifunction, yaitu jikafunctionmenambahkan kolom dengan nama yang ada diremove_columns, kolom-kolom ini akan tetap dipertahankan. - fn_kwargs (
Dict, opsional, defaultnyaNone) β Argumen kata kunci yang akan diteruskan kefunction
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
Truedanbatch_sizeadalah 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
Truedanbatch_sizeadalahn> 1, maka fungsi tersebut mengambil batch berisincontoh sebagai input dan dapat mengembalikan batch berisincontoh, atau dengan jumlah contoh yang sembarang. Perhatikan bahwa batch terakhir mungkin memiliki kurang darincontoh. Sebuah batch adalah kamus, misalnya batch berisincontoh 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
< source >( 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]) -> booljikawith_indices=False, batched=Falsefunction(example: Dict[str, Any], indices: int) -> booljikawith_indices=True, batched=Falsefunction(example: Dict[str, list]) -> list[bool]jikawith_indices=False, batched=Truefunction(example: Dict[str, list], indices: list[int]) -> list[bool]jikawith_indices=True, batched=True
Jika tidak ada fungsi yang diberikan, secara default menggunakan fungsi yang selalu True:
lambda x: True. - with_indices (
bool, defaultnyaFalse) β Berikan indeks contoh kefunction. Perhatikan bahwa dalam kasus ini, tanda tanganfunctionharus berupadef function(example, idx): .... - input_columns (
strataulist[str], opsional) β Kolom yang akan diteruskan kefunctionsebagai argumen posisional. JikaNone, dict yang memetakan ke semua kolom terformat akan diteruskan sebagai satu argumen. - batched (
bool, defaultnyaFalse) β Berikan batch contoh kefunction - batch_size (
int, opsional, defaultnya1000) β Jumlah contoh per batch yang diberikan kefunctionjikabatched=True. - fn_kwargs (
Dict, opsional, defaultnyaNone) β Argumen kata kunci yang akan diteruskan kefunction
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
< source >( seed = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonebuffer_size: int = 1000max_buffer_input_shards: int = 10 )
Parameter
- seed (
int, opsional, defaultNone) β 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. Jikagenerator=None(default), menggunakannp.random.default_rng(BitGenerator default (PCG64) dari NumPy). - buffer_size (
int, defaultnya1000) β Ukuran buffer. - max_buffer_input_shards (
int, defaultnya10) β 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
< source >( type: typing.Optional[str] = None )
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
< source >( 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, misalnyastring<->ClassLabel, gunakanmapuntuk memperbarui Dataset.
Mengembalikan
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
< source >( 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] )
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
< source >( column_names: typing.Union[str, list[str]] ) β IterableDatasetDict
Parameter
Mengembalikan
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
< source >( original_column_name: strnew_column_name: str ) β IterableDatasetDict
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
< source >( column_mapping: dict ) β IterableDatasetDict
Parameter
Mengembalikan
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
< source >( column_names: typing.Union[str, list[str]] ) β IterableDatasetDict
Parameter
Mengembalikan
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
< source >( 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 mengikuticonfig_namejika 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_pradalah True).Ditambahkan dalam 2.16.0
- private (
bool, opsional) β Apakah membuat repo menjadi privat. JikaNone(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 denganhf 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, defaultFalse) β Apakah akan membuat PR dengan file yang diunggah atau langsung melakukan commit. - max_shard_size (
intataustr, 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 mendefinisikannum_shardsyang berbeda untuk setiap split. Jikamax_shard_sizediberikan dannum_shardsuntuk suatu split tidak diberikan, maka jumlah shard untuk split tersebut diperkirakan darimax_shard_size. - embed_external_files (
bool, defaultnyaTrue) β Apakah akan menyematkan byte file ke dalam shard. Secara khusus, ini akan melakukan hal berikut sebelum push untuk field bertipe: - num_proc (
int, opsional, defaultnyaNone) β 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
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
int64ataustring. - 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
dictmenentukan 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, objekPIL.Image.Imageatau 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.VideoDecoderatau 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.PDFatau 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.Nifti1Imageatau 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
Buat salinan dalam (deep copy) dari Features.
decode_batch
< source >( batch: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )
Decode batch dengan decoding fitur kustom.
decode_column
< source >( column: listcolumn_name: strtoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )
Decode kolom dengan decoding fitur kustom.
decode_example
< source >( example: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )
Contoh decode dengan decoding fitur kustom.
encode_batch
< source >( batch )
Encode batch ke dalam format untuk Arrow.
encode_column
< source >( columncolumn_name: str )
Enkode kolom ke dalam format untuk Arrow.
encode_example
< source >( example )
Enkodekan contoh ke dalam format untuk Arrow.
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
< source >( pa_schema: Schema )
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
< source >( dic ) β Features
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].
reorder_fields_as
< source >( other: Features )
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.typeSkalar
kelas datasets.Value
< source >( dtype: strid: typing.Optional[str] = None )
Nilai fitur skalar dari tipe data tertentu.
dtype yang mungkin untuk Value adalah sebagai berikut:
nullboolint8int16int32int64uint8uint16uint32uint64float16float32(alias float)float64(alias double)time32[(s|ms)]time64[(us|ns)]timestamp[(s|ms|us|ns)]timestamp[(s|ms|us|ns), tz=(tzstring)]date32date64duration[(s|ms|us|ns)]decimal128(precision, scale)decimal256(precision, scale)binarylarge_binarybinary_viewstringlarge_stringstring_view
kelas datasets.ClassLabel
< source >( num_classes: dataclasses.InitVar[typing.Optional[int]] = Nonenames: list = Nonenames_file: dataclasses.InitVar[typing.Optional[str]] = Noneid: typing.Optional[str] = None )
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
< source >( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.IntegerArray] ) β pa.Int64Array
Cast array Arrow ke tipe penyimpanan arrow ClassLabel.
Tipe Arrow yang dapat dikonversi ke tipe penyimpanan pyarrow ClassLabel adalah:
pa.string()pa.int()
Konversi integer => string nama kelas.
Mengenai label yang tidak diketahui/hilang: meneruskan bilangan bulat negatif akan memicu ValueError.
Nama kelas konversi string => integer.
Komposit
kelas datasets.LargeList
< source >( feature: typing.Anyid: typing.Optional[str] = None )
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
< source >( feature: typing.Anylength: int = -1id: typing.Optional[str] = None )
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
< source >( feature = Nonelength = -1**kwargs )
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
< source >( languages: listid: typing.Optional[str] = None )
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'
... }Ratakan fitur Translation menjadi kamus.
kelas datasets.TranslationVariableLanguages
< source >( 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
languageatautranslation(tf.Tensor1Dtf.stringdengan 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'],
... }Ratakan fitur TranslationVariableLanguages menjadi kamus.
Array
kelas datasets.Array2D
< source >( shape: tupledtype: strid: typing.Optional[str] = None )
Buat array dua dimensi.
kelas datasets.Array3D
< source >( shape: tupledtype: strid: typing.Optional[str] = None )
Buat array tiga dimensi.
kelas datasets.Array4D
< source >( shape: tupledtype: strid: typing.Optional[str] = None )
Buat array berdimensi empat.
kelas datasets.Array5D
< source >( shape: tupledtype: strid: typing.Optional[str] = None )
Buat array lima dimensi.
Audio
kelas datasets.Audio
< source >( 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. JikaNone, 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 iniNone(jumlah channel dari sumber, default),1(mono) atau2(stereo) channel yang didukung. Argumennum_channelsditeruskan ketorchcodec.decoders.AudioDecoder.Ditambahkan dalam 4.4.0
- decode (
bool, defaultnyaTrue) β Apakah akan mendekode data audio. JikaFalse, mengembalikan kamus dasar dalam format{"path": audio_path, "bytes": audio_bytes}. - stream_index (
int, opsional) β Indeks streaming yang akan digunakan dari file. JikaNone, 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).dictdengan 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.
dictdengan kunci:array: Array yang berisi sampel audiosampling_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 audiosampling_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: 44100cast_storage
< source >( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) β pa.StructArray
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 audiopa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- urutan tidak penting
decode_example
< source >( value: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )
Decode file audio contoh menjadi data audio.
embed_storage
< source >( 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, defaultnyaTrue) β Apakah akan menyematkan data file lokal ke dalam arrayDitambahkan dalam 4.8.5
- remote_files (
bool, defaultnyaTrue) β 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
< source >( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('AudioDecoder')] ) β dict
Enkodekan contoh ke dalam format untuk Arrow.
Jika berada dalam keadaan dapat didekodekan, lempar error, selain itu ratakan fitur menjadi kamus.
Gambar
kelas datasets.Image
< source >( mode: typing.Optional[str] = Nonedecode: bool = Trueid: typing.Optional[str] = None )
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).dictdengan 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
< source >( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.ListArray] ) β pa.StructArray
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 gambarpa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- urutan tidak pentingpa.list(*)- harus berisi data array gambar
decode_example
< source >( value: dicttoken_per_repo_id = None )
Parameter
- value (
strataudict) β 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 (boolataustr).
Decode file gambar contoh menjadi data gambar.
embed_storage
< source >( 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, defaultnyaTrue) β Apakah akan menyematkan data file lokal ke dalam arrayDitambahkan dalam 4.8.5
- remote_files (
bool, defaultnyaTrue) β 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
< source >( value: typing.Union[str, bytes, bytearray, dict, numpy.ndarray, ForwardRef('PIL.Image.Image')] )
Enkodekan contoh ke dalam format untuk Arrow.
Jika berada dalam keadaan dapat didekodekan, kembalikan fitur itu sendiri, selain itu ratakan fitur menjadi kamus.
Video
kelas datasets.Video
< source >( 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, defaultnyaTrue) β Apakah akan mendekode data video. JikaFalse, mengembalikan kamus dasar dalam format{"path": video_path, "bytes": video_bytes}. - stream_index (
int, opsional) β Indeks streaming yang akan digunakan dari file. JikaNone, secara default menggunakan indeks βterbaikβ. - dimension_order (
str, defaultnyaNCHW) β 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, defaultnya1) β Jumlah thread yang digunakan untuk mendekode video. (Disarankan untuk tetap 1) - device (
stratautorch.device, defaultnyacpu) β Perangkat yang akan digunakan untuk mendekode video. - seek_mode (
str, defaultnyaexact) β 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).dictdengan 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
< source >( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.ListArray] ) β pa.StructArray
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 videopa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- urutan tidak pentingpa.list(*)- harus berisi data array video
decode_example
< source >( value: typing.Union[str, datasets.features.video.Example]token_per_repo_id: typing.Optional[dict[str, typing.Union[bool, str]]] = None )
Parameter
- value (
strataudict) β 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 (boolataustr).
Decode file video contoh menjadi data video.
embed_storage
< source >( 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, defaultnyaTrue) β Apakah akan menyematkan data file lokal ke dalam arrayDitambahkan dalam 4.8.5
- remote_files (
bool, defaultnyaTrue) β 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
< source >( value: typing.Union[str, bytes, bytearray, datasets.features.video.Example, numpy.ndarray, ForwardRef('VideoDecoder')] )
Enkodekan contoh ke dalam format untuk Arrow.
Jika berada dalam keadaan dapat didekodekan, kembalikan fitur itu sendiri, selain itu ratakan fitur menjadi kamus.
Mesh
kelas datasets.Mesh
< source >( decode: bool = Trueid: typing.Optional[str] = None )
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).dictdengan 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.Trimeshortrimesh.Scene: 3D mesh or scene object.
Output: Fitur Mesh mengoutputkan data sebagai objek trimesh.Trimesh atau trimesh.Scene.
cast_storage
< source >( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) β pa.StructArray
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 meshpa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- urutan tidak penting
decode_example
< source >( 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 (boolataustr).
Decode file mesh contoh.
embed_storage
< source >( 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, defaultnyaTrue) β Apakah akan menyematkan data file lokal ke dalam array. - remote_files (
bool, defaultnyaTrue) β 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
< source >( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('trimesh.Trimesh'), ForwardRef('trimesh.Scene')] )
Enkodekan contoh ke dalam format untuk Arrow.
Jika berada dalam keadaan dapat didekodekan, kembalikan fitur itu sendiri, selain itu ratakan fitur menjadi kamus.
Json
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
< source >( storage: Array ) β pa.JsonArray
Cast array Arrow ke tipe penyimpanan arrow Json.
kelas datasets.Pdf
< source >( decode: bool = Trueid: typing.Optional[str] = None )
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).dictdengan 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
< source >( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.ListArray] ) β pa.StructArray
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 gambarpa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- urutan tidak pentingpa.list(*)- harus berisi data array pdf
decode_example
< source >( value: dicttoken_per_repo_id = None )
Parameter
- value (
strataudict) β 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 (boolataustr).
Decode file contoh pdf menjadi data pdf.
embed_storage
< source >( 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, defaultnyaTrue) β Apakah akan menyematkan data file lokal ke dalam arrayDitambahkan dalam 4.8.5
- remote_files (
bool, defaultnyaTrue) β 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
< source >( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('pdfplumber.pdf.PDF')] )
Enkodekan contoh ke dalam format untuk Arrow.
Jika berada dalam keadaan dapat didekodekan, kembalikan fitur itu sendiri, selain itu ratakan fitur menjadi kamus.
Nifti
kelas datasets.Nifti
< source >( decode: bool = Trueid: typing.Optional[str] = None )
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).dictdengan 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
< source >( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.BinaryArray] ) β pa.StructArray
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 NIfTIpa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- urutan tidak penting
decode_example
< source >( value: dicttoken_per_repo_id = None )
Parameter
- value (
strataudict) β 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 (boolataustr).
Decode file NIfTI contoh menjadi objek gambar nibabel.
embed_storage
< source >( 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, defaultnyaTrue) β Apakah akan menyematkan data file lokal ke dalam arrayDitambahkan dalam 4.8.5
- remote_files (
bool, defaultnyaTrue) β 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
< source >( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('nib.Nifti1Image')] )
Enkodekan contoh ke dalam format untuk Arrow.
Jika berada dalam keadaan dapat didekodekan, kembalikan fitur itu sendiri, selain itu ratakan fitur menjadi kamus.
BioSequence
kelas datasets.BioSequence
< source >( format: str = 'fasta'decode: bool = Trueid: typing.Optional[str] = None )
Parameter
- format (
str, defaultnya"fasta") β Nama format sekuens, sesuai yang dipahami olehBio.SeqIO. Nilai yang umum adalah"fasta","fastq"dan"genbank". - decode (
bool, defaultnyaTrue) β Apakah akan mendekode data urutan. JikaFalse, 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).dictdengan 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
< source >( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) β pa.StructArray
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 filepa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- urutan tidak penting
decode_example
< source >( value: dicttoken_per_repo_id = None )
Parameter
- value (
strataudict) β 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 (boolataustr).
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
< source >( 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, defaultnyaTrue) β Apakah akan menyematkan data file lokal ke dalam array. - remote_files (
bool, defaultnyaTrue) β 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
< source >( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('SeqRecord')] )
Enkodekan contoh ke dalam format untuk Arrow.
Jika berada dalam keadaan dapat didekodekan, kembalikan fitur itu sendiri, selain itu ratakan fitur menjadi kamus.
BioStructure
kelas datasets.BioStructure
< source >( format: str = 'pdb'decode: bool = Trueid: typing.Optional[str] = None )
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).dictdengan 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
< source >( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) β pa.StructArray
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 filepa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- urutan tidak penting
decode_example
< source >( value: dicttoken_per_repo_id = None )
Parameter
- value (
strataudict) β 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 (boolataustr).
Decode file struktur contoh menjadi struktur biopython.
embed_storage
< source >( 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, defaultnyaTrue) β Apakah akan menyematkan data file lokal ke dalam array. - remote_files (
bool, defaultnyaTrue) β 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
< source >( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('Structure')] )
Enkodekan contoh ke dalam format untuk Arrow.
Jika berada dalam keadaan dapat didekodekan, kembalikan fitur itu sendiri, selain itu ratakan fitur menjadi kamus.
Sistem Berkas
datasets.filesystems.is_remote_filesystem
< source >( fs: AbstractFileSystem )
Memeriksa apakah fs adalah sistem file jarak jauh.
Sidik jari
Hasher yang menerima objek python sebagai input.