Datasets documentation
Ana sınıflar
Ana sınıflar
DatasetInfo
sınıf 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 )
Parametreler
- description (
str) — Veri setinin açıklaması. - citation (
str) — Veri setinin BibTeX alıntısı. - homepage (
str) — Veri setinin resmi ana sayfasına giden bir URL. - license (
str) — Veri setinin lisansı. Lisansın adı veya lisans koşullarını içeren bir paragraf olabilir. - features (Features, isteğe bağlı) — Veri setinin sütun türlerini belirtmek için kullanılan özellikler.
- post_processed (
PostProcessedInfo, isteğe bağlı) — Kullanımdan kaldırıldı. Bir veri setinin olası son işleme (post-processing) işlemine ilişkin kaynak bilgileri. Örneğin, bir dizine (index) ait bilgileri içerebilir. - supervised_keys (
SupervisedKeysData, isteğe bağlı) — Veri seti için uygunsa, denetimli öğrenme için girdi özelliğini ve etiketi belirtir (TFDS'den gelen eski bir özellik). - builder_name (
str, isteğe bağlı) — Veri setini oluşturmak için kullanılanGeneratorBasedBuilderalt sınıfının adı. Aynı zamanda veri seti oluşturucu sınıf adının snake_case halidir. - config_name (
str, isteğe bağlı) — BuilderConfig'den türetilen yapılandırmanın adı. - version (
strveya Version, isteğe bağlı) — Veri setinin sürümü. - splits (
dict, isteğe bağlı) — Bölüm adı ile meta veriler arasındaki eşleme. - download_checksums (
dict, isteğe bağlı) — Veri setinin checksum'larını indirmek için kullanılan URL ile ilgili metadata arasındaki eşleme. - download_size (
int, isteğe bağlı) — Veri setini oluşturmak için indirilecek dosyaların boyutu, bayt cinsinden. - post_processing_size (
int, isteğe bağlı) — Kullanımdan kaldırıldı. Varsa, işlemden sonra veri setinin bayt cinsinden boyutu. - dataset_size (
int, isteğe bağlı) — Tüm bölümler için Arrow tablolarının bayt cinsinden birleşik boyutu. - size_in_bytes (
int, isteğe bağlı) — Veri setiyle ilişkili tüm dosyaların (indirilen dosyalar + Arrow dosyaları) bayt cinsinden toplam boyutu. - **config_kwargs (ek anahtar kelime argümanları) — BuilderConfig'e geçirilecek ve DatasetBuilder'de kullanılacak anahtar kelime argümanları.
Bir veri seti hakkında bilgi.
DatasetInfo, adını, sürümünü ve özelliklerini içeren veri setlerini belgelemektedir.
Tam liste için yapıcı argümanlarını ve özelliklerine bakın.
Tüm alanlar oluşturulma sırasında bilinmeyebilir ve daha sonra güncellenebilir.
from_directory
< source >( dataset_info_dir: strstorage_options: typing.Optional[dict] = None )
dataset_info_dir içindeki JSON dosyasından DatasetInfo oluşturun.
Bu fonksiyon, DatasetInfo içindeki dinamik olarak oluşturulan tüm alanları (num_examples, hash, oluşturma zamanı,…) günceller.
Bu, tüm önceki meta verilerin üzerine yazar.
write_to_directory
< source >( dataset_info_dirpretty_print = Falsestorage_options: typing.Optional[dict] = None )
DatasetInfo ve lisansı (varsa) JSON dosyaları olarak dataset_info_dir dizinine yazın.
Veri seti
Taban sınıf Dataset, Apache Arrow tablosu tarafından desteklenen bir Dataset uygular.
sınıf 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 )
Arrow tablosu tarafından desteklenen bir Dataset.
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 )
Dataset'e sütun ekleyin.
1.7 sürümünde eklendi
add_item
< source >( item: dictnew_fingerprint: typing.Optional[str] = None )
Dataset'e öğe ekle.
1.7 sürümünde eklendi
Örnek:
>>> 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 )
Parametreler
- filename (
str) — Veri setinin dosya adı. - info (
DatasetInfo, isteğe bağlı) — Tanım, alıntı vb. gibi veri seti bilgileri. - split (
NamedSplit, isteğe bağlı) — Veri seti bölmesinin adı. - indices_filename (
str, isteğe bağlı) — Dizin dosyalarının adları. - in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı.
Bir Arrow tablosu tarafından desteklenen bir Dataset, filename konumunda örneklenir.
from_buffer
< source >( buffer: Bufferinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneindices_buffer: typing.Optional[pyarrow.lib.Buffer] = None )
Arrow tamponu tarafından desteklenen bir Dataset örneği oluşturun.
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 )
Parametreler
- df (
pandas.DataFrame) — Veri setini içeren veri çerçevesi. - features (Features, isteğe bağlı) — Veri seti özellikleri.
- info (
DatasetInfo, isteğe bağlı) — Tanım, alıntı vb. gibi veri seti bilgileri. - split (
NamedSplit, isteğe bağlı) — Veri seti bölmesinin adı. - preserve_index (
bool, isteğe bağlı) — Sonuçtaki Dataset'te indeksi ek bir sütun olarak saklanıp saklanmayacağı. Varsayılan olanNone, indeksi bir sütun olarak saklar; yalnızcaRangeIndexdurumu hariçtir, bu durum yalnızca metadata olarak saklanır. İndisin bir sütun olarak saklanmasını zorlamak içinpreserve_index=Truekullanın.
pandas.DataFrame nesnesini pyarrow.Table nesnesine dönüştürerek bir Dataset oluşturun.
Sonuçtaki Arrow Tablosundaki sütun türleri, DataFrame'deki pandas.Series öğelerinin dtypes değerlerinden çıkarılır. Nesne olmayan Series durumlarında, NumPy dtype değeri Arrow karşılığına dönüştürülür. object durumunda, bu Series içindeki Python nesnelerine bakarak veri türünü tahmin etmemiz gerekir.
object veri türündeki Series'lerin, her zaman anlamlı bir Arrow türüne yol açacak kadar bilgi içermediğini unutmayın. Bir tür çıkarılamadığı durumlarda, örneğin DataFrame'in uzunluğu 0 olduğunda veya Series yalnızca None/nan nesneleri içerdiğinde, tür null olarak ayarlanır. Bu davranış, açık özellikler oluşturarak ve bunları bu işlevine geçirerek önlenabilir.
Önemli: from_pandas() ile oluşturulan bir veri seti bellekte tutulur ve bu nedenle ilişkili bir önbellek dizinine sahip değildir. Bu durum gelecekte değişebilir, ancak bu arada bellek kullanımını azaltmak istiyorsanız, veri setini örneğin save_to_disk / load_from_disk kullanarak diske yazıp yeniden yüklemelisiniz.
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 )
Parametreler
- mapping (
Mapping) — Dizelerden Array'lere veya Python listelerine eşleme. - features (Features, isteğe bağlı) — Veri seti özellikleri.
- info (
DatasetInfo, isteğe bağlı) — Tanım, alıntı vb. gibi veri seti bilgileri. - split (
NamedSplit, isteğe bağlı) — Veri seti bölmesinin adı. - on_mixed_types (
Literal["use_json"], isteğe bağlı, varsayılan olarakNone) — “use_json” değeri verilirse, karışık tipli alanlar için Json() tipi kullanılır; yani önceden tanımlanmış bir şema içermeyen, yapılandırılmamış verileri barındıran alanlar. Bu durumda karışık tipli bir alan Json() olarak ayarlanır.Bu, örneğin, dizeler/tam sayılar/ondalıklı sayılar karışımı listelerin veya keyfi değer türlerine sahip sözlüklerin yüklenmesine olanak tanır.
4.7.0 sürümünde eklendi
dict'i pyarrow.Table'e dönüştürerek bir Dataset oluşturun.
Önemli: from_dict() ile oluşturulan bir veri seti bellekte tutulur ve bu nedenle ilişkili bir önbellek dizinine sahip değildir. Bu durum gelecekte değişebilir, ancak bu arada bellek kullanımını azaltmak istiyorsanız, veri setini örneğin save_to_disk / load_from_disk kullanarak diske yazıp yeniden yüklemelisiniz.
Örnekler:
Her sütun için bir liste içeren bir sözlükten bir veri seti alın:
>>> ds = Dataset.from_dict({"text": ["hello there !", "general kenobi !"]})Sütun türlerini ayarlamak için özellikleri geçin, örneğin bir görüntü veri seti için:
>>> features = Features({"image": Image()})
>>> ds = Dataset.from_dict({"image": ["path/to/image.png"]}, features=features)Veri kümeleri, sütun tabanlı bir biçim olan Arrow üzerine kuruludur ve bu nedenle her örneğin aynı tür ve alt türlere, sözlüklerin ise aynı anahtarlara ve değer türlerine sahip olmasını bekler. Bir veri kümesi yüklenirken alanların türleri eşleşmiyorsa hata oluşur ve sözlüklerdeki eksik alanlar, tüm sözlüklerin aynı anahtarlara ve değer türlerine sahip olması için None ile doldurulur.
Bunu önlemek ve hata olmadan karma tiplere izin vermek için on_mixed_types="use_json" kullanabilir veya Json tipiyle features= belirtebilirsiniz:
>>> 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"}]Bu, eksik alanların None ile doldurulmasını önlemek için, key ve değerleri keyfi olan sözlük listeleri için de kullanışlıdır:
>>> 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}]] # OKAraç çağırma verisiyle başka bir örnek:
>>> 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 )
Parametreler
- mapping (
List[dict]) — Satır değerlerine giden dizelerin bir listesi. - features (
Features, isteğe bağlı) — Veri seti özellikleri. - info (
DatasetInfo, isteğe bağlı) — Açıklama, atıf vb. gibi veri seti bilgileri. - split (
NamedSplit, isteğe bağlı) — Veri seti bölmesinin adı. - on_mixed_types (
Literal["use_json"], isteğe bağlı, varsayılan olarakNone) — “use_json” değeri verilirse, karışık tipli alanlar için Json() tipi kullanılır; yani önceden tanımlanmış bir şema içermeyen, yapılandırılmamış verileri barındıran alanlar. Bu durumda karışık tipli bir alan Json() olarak ayarlanır.Bu, örneğin, dizeler/tam sayılar/ondalıklı sayılar karışımı listelerin veya keyfi değer türlerine sahip sözlüklerin yüklenmesine olanak tanır.
4.7.0 sürümünde eklendi
Bir sözlük listesini pyarrow.Table'a dönüştürerek bir Dataset oluşturun`.
features parametresine ne aktarılırsa aktarılsın, veri seti sütunlarını belirlemek için ilk girdinin anahtarlarının kullanılacağını unutmayın.
Önemli: from_list() ile oluşturulan bir veri seti bellekte tutulur ve bu nedenle ilişkili bir önbellek dizinine sahip değildir. Bu durum gelecekte değişebilir, ancak bu arada bellek kullanımını azaltmak istiyorsanız, veri setini örneğin save_to_disk / load_from_disk kullanarak diske yazıp yeniden yüklemelisiniz.
Örnekler:
Örnekleri içeren bir listeden bir veri seti alın:
>>> ds = Dataset.from_list([{"text": "hello there !"}, {"text": "general kenobi !"}]})Sütun türlerini ayarlamak için özellikleri geçin, örneğin bir görüntü veri seti için:
>>> features = Features({"image": Image()})
>>> ds = Dataset.from_list([{"image": "path/to/image.png"}], features=features)Veri kümeleri, sütun tabanlı bir biçim olan Arrow üzerine kuruludur ve bu nedenle her örneğin aynı tür ve alt türlere, sözlüklerin ise aynı anahtarlara ve değer türlerine sahip olmasını bekler. Bir veri kümesi yüklenirken alanların türleri eşleşmiyorsa hata oluşur ve sözlüklerdeki eksik alanlar, tüm sözlüklerin aynı anahtarlara ve değer türlerine sahip olması için None ile doldurulur.
Bunu önlemek ve hata olmadan karma tiplere izin vermek için on_mixed_types="use_json" kullanabilir veya Json tipiyle features= belirtebilirsiniz:
>>> 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"}]Bu, eksik alanların None ile doldurulmasını önlemek için, key ve değerleri keyfi olan sözlük listeleri için de kullanışlıdır:
>>> 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}]] # OKAraç çağırma verisiyle başka bir örnek:
>>> 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 )
Parametreler
- generator ( —
Callable): Örnekleryieldseden bir üreteç (generator) işlevi. - features (Features, isteğe bağlı) — Veri seti özellikleri.
- cache_dir (
str, isteğe bağlı, varsayılan"~/.cache/huggingface/datasets") — Verilerin önbelleğe alınacağı dizin. - keep_in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı. - gen_kwargs(
dict, isteğe bağlı) —generatorçağrılabilirine iletilecek anahtar kelime argümanları.gen_kwargsiçinde shard listesini geçirerek venum_procdeğerini 1'den büyük ayarlayarak shard'lı bir veri seti tanımlayabilirsiniz. - num_proc (
int, isteğe bağlı, varsayılan olarakNone) — Veri setini indirirken ve yerel olarak oluştururken kullanılacak süreç sayısı. Bu, veri seti birden fazla dosyadan oluşuyorsa işe yarar. Çok işlemcili (multiprocessing) çalışma varsayılan olarak devre dışıdır. Eğernum_procbirden büyükse,gen_kwargsiçindeki tüm liste değerleri aynı uzunlukta olmalıdır. Bu değerler, üreteci (generator) çağrıları arasında bölünür. Parça (shard) sayısı,gen_kwargsiçindeki en kısa liste ilenum_proc.2.7.0 sürümünde eklendi
- split (NamedSplit, varsayılan olarak
Split.TRAIN) — Veri setine atanacak bölme adı.2.21.0 sürümünde eklendi
- fingerprint (
str, isteğe bağlı) — Veri seti kimliğini oluşturmak için kullanılacak parmak izi. Varsayılan olarakfingerprint, jeneratör fonksiyonu ve büyük nesneler (ör. yapay zeka modelleri) kullanıyorsa yavaş olabilecek tüm argümanların özetlenmesiyle oluşturulur.4.3.0 sürümünde eklendi
- **kwargs (ek anahtar kelime argümanları) —
:
GeneratorConfig'ye iletilecek anahtar kelime argümanları.
Bir üreteçten (generator) bir Dataset oluşturun.
Veriyi üreteçten yükleyin, veriyi diskte Arrow biçiminde önbelleğe alın ve diskteki belleğe eşlenmiş Arrow verisinden Dataset'i döndürün.
Veri setinin arkasındaki Apache Arrow tablosu.
Örnek:
>>> 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]]Veri setinin temelini oluşturan Apache Arrow tablosunu içeren önbellek dosyaları.
Örnek:
>>> 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'}]Veri setindeki sütun sayısı.
Veri setindeki satır sayısı (Dataset.len() ile aynı).
Veri setindeki sütun adları.
Veri setinin şekli (sütun sayısı, satır sayısı).
benzersiz
< source >( column: str ) → list
Parametreler
- column (
str) — Sütun adı (tüm sütun adlarını column_names ile listeleyin).
Dönüş değeri
list
Verilen sütundaki benzersiz öğelerin listesi.
Bir sütundaki benzersiz öğelerin listesini döndürür.
Bu, düşük seviyeli arka uçta (backend) uygulanır ve bu nedenle çok hızlıdır.
flatten
< source >( new_fingerprint: typing.Optional[str] = Nonemax_depth = 16 ) → Dataset
Tabloyu düzleştirin. Yapı (struct) türündeki her sütun, yapı alanı başına bir sütun olacak şekilde düzleştirilir. Diğer sütunlar değiştirilmeden bırakılır.
Örnek:
>>> 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
})döküm
< 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
Parametreler
- features (Features) —
Veri setinin dönüştürüleceği yeni özellikler.
Özelliklerdeki alan adları, mevcut sütun adlarıyla eşleşmelidir.
Veri türünün de bir türden diğerine dönüştürülebilir olması gerekir.
Örneğin
str<->ClassLabelgibi basit olmayan dönüşümler için Dataset'i güncellemek üzere map() kullanmalısınız. - batch_size (
int, varsayılan1000) — cast'e her batch'te sağlanan örnek sayısı.batch_size <= 0veyabatch_size == Noneise, tüm veri seti cast'e tek bir batch olarak sağlanır. - keep_in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı. - load_from_cache_file (
bool, önbellekleme etkinse varsayılan olarakTrue) —functionişlevinden gelen mevcut hesaplamayı depolayan bir önbellek dosyası tanımlanabiliyorsa, yeniden hesaplamak yerine onu kullanın. - cache_file_name (
str, isteğe bağlı, varsayılanNone) — Önbellek dosyası için bir yol adı belirtin. Hesaplama sonuçlarını, otomatik olarak oluşturulan önbellek dosyası adı yerine bu yolda saklamak için kullanılır. - writer_batch_size (
int, varsayılan1000) — Önbellek dosyası yazıcısı için yazma işlemi başına satır sayısı. Bu değer, işleme sırasında bellek kullanımı ile işleme hızı arasında iyi bir denge sağlar. Daha yüksek bir değer, işlemenin daha az arama yapmasını sağlar; daha düşük bir değer ise map() çalışırken daha az geçici bellek tüketir. - num_proc (
int, isteğe bağlı, varsayılanNone) — Çok işlemcili (multiprocessing) işlem sayısı. Varsayılan olarak çok işlemcili yapı kullanmaz.
Dönüş değeri
Dönüştürülmüş özelliklere sahip veri setinin bir kopyası.
Veri setini yeni bir özellik kümesine dönüştürün.
Örnek:
>>> 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 )
Çözümleme için sütunu özelliğe dönüştürün.
Örnek:
>>> 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
Parametreler
- column_names (
Union[str, List[str]]) — Kaldırılacak sütun(lar)ın adı. - new_fingerprint (
str, isteğe bağlı) — Dönüşüm sonrası veri setinin yeni parmak izi.Noneise, yeni parmak izi önceki parmak izinin ve dönüşüm argümanlarının bir özeti kullanılarak hesaplanır.
Dönüş değeri
Kaldırılacak sütunlar olmadan veri seti nesnesinin bir kopyası.
Veri setindeki bir veya birden fazla sütunu ve bunlara bağlı özellikleri kaldırın.
map() ile remove_columns kullanarak da bir sütun kaldırabilirsiniz ancak mevcut yöntem, kalan sütunların verilerini kopyalamadığı için daha hızlıdır.
Örnek:
>>> 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
Parametreler
- original_column_name (
str) — Yeniden adlandırılacak sütunun adı. - new_column_name (
str) — Sütun için yeni ad. - new_fingerprint (
str, isteğe bağlı) — Dönüşüm sonrası veri setinin yeni parmak izi.Noneise, yeni parmak izi önceki parmak izinin ve dönüşüm argümanlarının bir özeti kullanılarak hesaplanır.
Dönüş değeri
Yeniden adlandırılmış bir sütuna sahip veri setinin kopyası.
Veri setindeki bir sütunu yeniden adlandırın ve orijinal sütuna ait özellikleri yeni sütun adının altına taşıyın.
rename_columns
< source >( column_mapping: dictnew_fingerprint: typing.Optional[str] = None ) → Dataset
Parametreler
- column_mapping (
Dict[str, str]) — Yeniden adlandırılacak sütunların yeni adlarına eşlemesi - new_fingerprint (
str, isteğe bağlı) — Dönüşüm sonrası veri setinin yeni parmak izi.Noneise, yeni parmak izi önceki parmak izinin ve dönüşüm argümanlarının bir özeti kullanılarak hesaplanır.
Dönüş değeri
Sütun adları değiştirilmiş veri setinin bir kopyası
Veri setindeki birkaç sütunu yeniden adlandırın ve orijinal sütunlarla ilişkili özellikleri yeni sütun adları altına taşıyın.
select_columns
< source >( column_names: typing.Union[str, list[str]]new_fingerprint: typing.Optional[str] = None ) → Dataset
Parametreler
- column_names (
Union[str, List[str]]) — Tutulacak sütun(lar)ın adı. - new_fingerprint (
str, isteğe bağlı) — Dönüşüm sonrası veri setinin yeni parmak izi.Noneise, yeni parmak izi önceki parmak izinin ve dönüşüm argümanlarının bir özeti kullanılarak hesaplanır.
Dönüş değeri
Sadece seçilen sütunlardan oluşan veri seti nesnesinin bir kopyası.
Veri setinde bir veya birden fazla sütun ve bunlara ait özellikleri seçin.
class_encode_column
< source >( column: strinclude_nulls: bool = False )
Parametreler
- column (
str) — Dönüştürülecek sütunun adı (tüm sütun adlarını column_names ile listeleyin) - include_nulls (
bool, varsayılan olarakFalse) — sınıf etiketlerinde null değerlerin dahil edilip edilmeyeceğini belirtir.True, ise null değerler"None"sınıf etiketi olarak kodlanır.1.14.2 sürümünde eklendi
Verilen sütunu ClassLabel olarak dönüştürür ve tabloyu günceller.
Örnek:
>>> 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')}Veri setindeki satır sayısı.
Örneklerin üzerinden dolaşın.
Dataset.set_format() ile bir biçimlendirme ayarlanırsa satırlar seçilen biçimde döndürülür.
iter
< source >( batch_size: intdrop_last_batch: bool = False )
batch_size boyutundaki partileri sırayla işleyin.
Bir biçimlendirme [~datasets.Dataset.set_format] ile ayarlandıysa satırlar, seçilen biçimle döndürülür.
formatted_as
< source >( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )
Parametreler
- type (
str, isteğe bağlı) —[None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']içinde seçilen çıktı türlerinden biri.None, `getitem`'in python nesnelerini döndürdüğü anlamına gelir (varsayılan). - columns (
List[str], isteğe bağlı) — Çıktıda biçimlendirilecek sütunlar.None,__getitem__'in tüm sütunları döndürdüğü anlamına gelir (varsayılan). - output_all_columns (
bool, varsayılanFalse) — Çıktıda biçimlendirilmemiş sütunları da (python nesneleri olarak) koru. - **format_kwargs (ek anahtar kelime argümanları) —
np.array,torch.tensorveyatensorflow.ragged.constantgibi dönüştürme fonksiyonuna geçirilen anahtar kelime argümanları.
Bir with ifadesinde kullanılır. __getitem__ dönüş biçimini (tür ve sütunlar) ayarlar.
set_format
< source >( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )
Parametreler
- type (
str, isteğe bağlı) —[None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']içinde seçilen çıktı türlerinden biri.None,__getitem__'in python nesnelerini döndürdüğü anlamına gelir (varsayılan). - columns (
List[str], isteğe bağlı) — Çıktıda biçimlendirilecek sütunlar.None,__getitem__'in tüm sütunları döndürdüğü anlamına gelir (varsayılan). - output_all_columns (
bool, varsayılanFalse) — Çıktıda biçimlendirilmemiş sütunları da (python nesneleri olarak) koru. - **format_kwargs (ek anahtar kelime argümanları) —
np.array,torch.tensorveyatensorflow.ragged.constantgibi dönüştürme fonksiyonuna geçirilen anahtar kelime argümanları.
__getitem__ dönüş biçimini (tip ve sütunlar) ayarlayın. Veri biçimlendirme anlık olarak uygulanır.
type biçimi (örneğin “numpy”), __getitem__ kullanılırken toplulukları biçimlendirmek için kullanılır.
Biçimlendirme için set_transform() kullanarak özel dönüşümler de kullanılabilir.
set_format çağrıldıktan sonra map() çağrılabilir. map yeni sütunlar ekleyebileceğinden, biçimlendirilmiş sütunların listesi
güncellenir. Bu durumda, bir veri setine yeni bir sütun eklemek için map uygularsanız, bu sütun şu şekilde biçimlendirilir:
new formatted columns = (all columns - previously unformatted columns)Örnek:
>>> 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 )
Parametreler
- transform (
Callable, isteğe bağlı) — Kullanıcı tarafından tanımlanan biçimlendirme dönüşümü, set_format() tarafından tanımlanan biçimi değiştirir. Biçimlendirme işlevi, bir partiyi (birdictolarak) girdi olarak alır ve bir parti döndüren çağrılabilir bir işlevdir. Bu işlev,__getitem__içindeki nesneleri döndürmeden hemen önce uygulanır. - columns (
List[str], isteğe bağlı) — Çıktıda biçimlendirilecek sütunlar. Belirtilirse, dönüştürmenin girdi partisi yalnızca bu sütunları içerir. - output_all_columns (
bool, varsayılanFalse) — Çıktıda biçimlendirilmemiş sütunları da (python nesneleri olarak) koru. True olarak ayarlanırsa, biçimlendirilmemiş diğer sütunlar, dönüştürme çıktısıyla birlikte korunur.
Bu dönüştürücüyle __getitem__ dönüş biçimini ayarlayın. __getitem__ çağrıldığında dönüştürücü, topluluklar üzerinde anlık olarak uygulanır.
set_format() gibi, bu reset_format() kullanılarak sıfırlanabilir.
Örnek:
>>> 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])}__getitem__ dönüş biçimini Python nesnelerine ve tüm sütunlara sıfırlayın.
self.set_format() ile aynı
Örnek:
>>> 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 )
Parametreler
- type (
str, isteğe bağlı) —[None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']içinde seçilen çıktı türlerinden biri.None,__getitem__'in python nesnelerini döndürdüğü anlamına gelir (varsayılan). - columns (
List[str], isteğe bağlı) — Çıktıda biçimlendirilecek sütunlar.None,__getitem__'in tüm sütunları döndürdüğü anlamına gelir (varsayılan). - output_all_columns (
bool, varsayılanFalse) — Çıktıda biçimlendirilmemiş sütunları da (python nesneleri olarak) koru. - **format_kwargs (ek anahtar kelime argümanları) —
np.array,torch.tensorveyatensorflow.ragged.constantgibi dönüştürme fonksiyonuna geçirilen anahtar kelime argümanları.
__getitem__ dönüş biçimini (tip ve sütunlar) ayarlayın. Veri biçimlendirme anlık olarak uygulanır.
type biçimi (örneğin “numpy”), __getitem__ kullanılırken toplulukları biçimlendirmek için kullanılır.
Biçimlendirme için with_transform() kullanarak özel dönüşümleri kullanmak da mümkündür.
set_format()'in aksine, with_format yeni bir Dataset nesnesi döndürür.
Örnek:
>>> 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 )
Parametreler
- transform (
Callable,optional) — Kullanıcı tanımlı biçimlendirme dönüşümü, set_format() tarafından tanımlanan biçimi değiştirir. Biçimlendirme işlevi, bir partiyi (birdictolarak) girdi olarak alır ve bir parti döndüren çağrılabilir bir işlevdir. Bu işlev,__getitem__içindeki nesneleri döndürmeden hemen önce uygulanır. - columns (
List[str],optional) — Çıktıda biçimlendirilecek sütunlar. Belirtilirse, dönüştürmenin girdi partisi yalnızca bu sütunları içerir. - output_all_columns (
bool, varsayılanFalse) — Çıktıda biçimlendirilmemiş sütunları da (python nesneleri olarak) koru.Trueolarak ayarlanırsa, diğer biçimlendirilmemiş sütunlar dönüştürme çıktısıyla birlikte korunur.
Bu dönüştürme ile __getitem__ dönüş biçimini ayarlayın. __getitem__ çağrıldığında dönüştürme, toplularda anlık olarak uygulanır.
set_format() gibi, bu reset_format() kullanılarak sıfırlanabilir.
set_transform()'in aksine, with_transform yeni bir Dataset nesnesi döndürür.
Örnek:
>>> 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])}Sütunları (dize adlarıyla) veya satırları (tamsayı indeksle, indeks veya bool değerlerinden oluşan yinelebilir bir diziyle) indekslemek için kullanılabilir.
Veri seti önbellek dizinindeki, şu anda kullanılan önbellek dosyası varsa bu dosya hariç olmak üzere, tüm önbellek dosyalarını temizler.
Bu komutu çalıştırırken, başka bir sürecin şu anda başka önbellek dosyalarını kullanmadığından emin olun.
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' )
Parametreler
- function (
Callable) — Aşağıdaki imzalardan birine sahip fonksiyon:function(example: Dict[str, Any]) -> Dict[str, Any]ifbatched=Falseandwith_indices=Falseandwith_rank=Falsefunction(example: Dict[str, Any], *extra_args) -> Dict[str, Any]batched=Falsevewith_indices=Trueve/veyawith_rank=Trueise (her biri için bir ek argüman)function(batch: Dict[str, List]) -> Dict[str, List]ifbatched=Trueandwith_indices=Falseandwith_rank=Falsefunction(batch: Dict[str, List], *extra_args) -> Dict[str, List]ifbatched=Truevewith_indices=Trueve/veyawith_rank=True(her biri için bir ek argüman)
Gelişmiş kullanım için, fonksiyon ayrıca
pyarrow.Tabledöndürebilir. Fonksiyon asenkron ise,mapfonksiyonunuzu paralel olarak çalıştırır. Ayrıca fonksiyonunuz hiçbir şey döndürmüyorsa (None),mapfonksiyonunuzu çalıştırır ve veri setini değiştirilmeden döndürür. Hiçbir fonksiyon sağlanmazsa, varsayılan olarak kimlik fonksiyonu kullanılır:lambda x: x. - with_indices (
bool, varsayılanFalse) —functioniçin örnek indeksleri sağlar. Bu durumdafunctionimzasınındef function(example, idx[, rank]): ...olması gerektiğine dikkat edin. - with_rank (
bool, varsayılanFalse) —functionparametresine işlem sırasını (process rank) iletir. Bu durumdafunctionimzasınındef function(example[, idx], rank): ...olması gerekir. - input_columns (
Optional[Union[str, List[str]]], varsayılanNone) —functioniçine konumsal argümanlar olarak geçirilecek sütunlar.Noneise, biçimlendirilmiş tüm sütunlara eşleyen birdicttek bir argüman olarak geçirilir. - batched (
bool, varsayılanFalse) —functionişlevine örnekler birimini sağlar. - batch_size (
int, isteğe bağlı, varsayılan1000) —batched=Trueisefunction'a her parti için sağlanan örnek sayısı.batch_size <= 0veyabatch_size == Noneise, tüm veri setinifunction'a tek bir parti olarak sağlar. - drop_last_batch (
bool, varsayılanFalse) — batch_size'dan küçük olan son bir partinin, işlenmek yerine atılıp atılmayacağını belirtir. - remove_columns (
Optional[Union[str, List[str]]], varsayılanNone) — Eşleme sırasında seçilen sütunları kaldırır. Sütunlar, örneklerinfunctionçıktısıyla güncellenmesinden önce kaldırılır; yanifunction,remove_columnsiçindeki adlara sahip sütunlar ekliyorsa, bu sütunlar korunur. - keep_in_memory (
bool, varsayılanFalse) — Veri setini önbellek dosyasına yazmak yerine bellekte tutar. - load_from_cache_file (
Optional[bool], önbellekleme etkinse varsayılan olarakTrue) —functionişlevinden gelen mevcut hesaplamayı depolayan bir önbellek dosyası belirlenebiliyorsa, yeniden hesaplamak yerine onu kullanın. - cache_file_name (
str, isteğe bağlı, varsayılanNone) — Önbellek dosyası için bir yol adı belirtin. Hesaplama sonuçlarını, otomatik olarak oluşturulan önbellek dosyası adı yerine bu yolda saklamak için kullanılır. - writer_batch_size (
int, varsayılan1000) — Önbellek dosyası yazıcısı için yazma işlemi başına satır sayısı. Bu değer, işleme sırasında bellek kullanımı ile işleme hızı arasında iyi bir denge sağlar. Daha yüksek bir değer, işlemenin daha az arama yapmasını sağlar; daha düşük bir değer isemapçalışırken daha az geçici bellek tüketir. - features (
Optional[datasets.Features], varsayılanNone) — Otomatik olarak oluşturulan yerine, önbellek dosyasını depolamak için belirli bir Features kullanın. - disable_nullable (
bool, varsayılanFalse) — Tabloda null değerlere izin verilmez. - fn_kwargs (
Dict, isteğe bağlı, varsayılanNone) —functionfonksiyonuna iletilecek anahtar kelime argümanları. - num_proc (
int, isteğe bağlı, varsayılan olarakNone) — Çok işlemcili (multiprocessing) işlemlerde kullanılacak süreç sayısı.Noneveya0ise çok işlemci kullanılmaz ve işlem ana süreçte çalışır.- 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.
- new_fingerprint (
str, isteğe bağlı, varsayılanNone) — Dönüşüm sonrası veri setinin yeni parmak izi.Noneise, yeni parmak izi önceki parmak izinin ve dönüşüm argümanlarının bir özeti (hash) kullanılarak hesaplanır. - desc (
str, isteğe bağlı, varsayılanNone) — Örnekler eşleştirilirken ilerleme çubuğuyla birlikte görüntülenecek anlamlı açıklama. - try_original_type (
Optional[bool], varsayılanTrue) — Orijinal sütunların türlerini korumaya çalışır (ör. int32 -> int32). Her zaman yeni türler çıkarılmasını istiyorsanız False olarak ayarlayın. - on_mixed_types (
Literal["use_json"], isteğe bağlı, varsayılan olarakNone) — “use_json” değeri verilirse, karışık tipli alanlar için Json() tipi kullanılır; yani önceden tanımlanmış bir şema içermeyen, yapılandırılmamış verileri barındıran alanlar. Bu durumda karışık tipli bir alan Json() olarak ayarlanır.Bu, örneğin, dizeler/tam sayılar/ondalıklı sayılar karışımı listelerin veya keyfi değer türlerine sahip sözlüklerin yüklenmesine olanak tanır.
4.7.0 sürümünde eklendi
Tablodaki tüm örneklerin (bireysel olarak veya toplu halde) üzerine bir fonksiyon uygulayın ve tabloyu güncelleyin. Fonksiyonunuz zaten var olan bir sütun döndürürse, bu sütun üzerine yazar.
Fonksiyonun toplu (batch) olarak mı yoksa tekil olarak mı çalışacağı, batched parametresi ile belirtilebilir:
- batched
Falseise, fonksiyon 1 örnek alır ve 1 örnek döndürmelidir. Bir örnek, bir sözlüktür, örn.{"text": "Hello there !"}. - batched
Truevebatch_size1 ise, fonksiyon girdi olarak 1 örnekten oluşan bir batch alır ve 1 veya daha fazla örnekten oluşan bir batch döndürebilir. Bir batch bir sözlüktür, örneğin 1 örnekten oluşan bir batch{"text": ["Hello there !"]}şeklindedir. Truevebatch_sizen > 1ise, fonksiyon girdi olaraknörnekten oluşan bir parti alır venörnekten oluşan bir parti ya da herhangi bir sayıda örneğe sahip bir parti döndürebilir. Son partidenörnekten az örnek bulunabileceğini unutmayın. Bir parti bir sözlüktür, örneğinnörnekten oluşan bir parti{"text": ["Hello there !"] * n}şeklindedir.
Eğer fonksiyon asenkron ise, map fonksiyonunuzu paralel olarak çalıştırır ve en fazla bin eşzamanlı çağrı yapar.
Aynı anda çalışabilecek maksimum işlem sayısını belirlemek istiyorsanız, fonksiyonunuzda asyncio.Semaphore kullanmanız önerilir.
Örnek:
>>> 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)filtre
< 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 )
Parametreler
- function (
Callable) — Aşağıdaki imzalardan birine sahip Callable:function(example: Dict[str, Any]) -> boolifbatched=Falseandwith_indices=Falseandwith_rank=Falsefunction(example: Dict[str, Any], *extra_args) -> boolbatched=Falsevewith_indices=Trueve/veyawith_rank=Trueise (her biri için bir ek argüman)function(batch: Dict[str, List]) -> List[bool]ifbatched=Trueandwith_indices=Falseandwith_rank=Falsefunction(batch: Dict[str, List], *extra_args) -> List[bool]ifbatched=Truevewith_indices=Trueve/veyawith_rank=Trueise (her biri için bir ek argüman)
Eğer fonksiyon asenkron ise,
filterfonksiyonunuzu paralel olarak çalıştırır. Hiçbir fonksiyon sağlanmazsa, her zamanTruedöndüren varsayılan fonksiyon kullanılır:lambda x: True. - with_indices (
bool, varsayılanFalse) —functioniçin örnek indeksleri sağlar. Bu durumdafunctionimzasınındef function(example, idx[, rank]): ...olması gerektiğine dikkat edin. - with_rank (
bool, varsayılanFalse) —functionparametresine işlem sırasını (process rank) iletir. Bu durumdafunctionimzasınındef function(example[, idx], rank): ...olması gerekir. - input_columns (
strveyaList[str], isteğe bağlı) —functioniçine konumsal argümanlar olarak geçirilecek sütunlar.Noneise, biçimlendirilmiş tüm sütunlara eşleyen birdicttek bir argüman olarak geçirilir. - batched (
bool, varsayılanFalse) —functionişlevine örnekler birimini sağlar. - batch_size (
int, isteğe bağlı, varsayılan1000) —batched = Trueisefunction'a her batch için sağlanan örnek sayısı.batched = Falseisefunction'a her batch için tek bir örnek geçirilir.batch_size <= 0veyabatch_size == Noneise tüm veri seti,function'a tek bir batch olarak sağlanır. - keep_in_memory (
bool, varsayılanFalse) — Veri setini önbellek dosyasına yazmak yerine bellekte tutar. - load_from_cache_file (
Optional[bool], önbellekleme etkinse varsayılan olarakTrue) —functionişlevinden gelen mevcut hesaplamayı depolayan bir önbellek dosyası belirlenebiliyorsa, yeniden hesaplamak yerine onu kullanın. - cache_file_name (
str, isteğe bağlı) — Önbellek dosyası için bir yol adı belirtin. Hesaplama sonuçlarını, otomatik olarak oluşturulan önbellek dosyası adı yerine bu yolda saklamak için kullanılır. - writer_batch_size (
int, varsayılan1000) — Önbellek dosyası yazıcısı için yazma işlemi başına satır sayısı. Bu değer, işleme sırasında bellek kullanımı ile işleme hızı arasında iyi bir denge sağlar. Daha yüksek bir değer, işlemenin daha az arama yapmasını sağlar; daha düşük bir değer isemapçalışırken daha az geçici bellek tüketir. - fn_kwargs (
dict, isteğe bağlı) —functionparametresine iletilecek anahtar kelime argümanları. - num_proc (
int, isteğe bağlı, varsayılan olarakNone) — Çok işlemcili (multiprocessing) işlemlerde kullanılacak süreç sayısı. None veya 0 ise çok işlemcili işlem kullanılmaz ve işlem ana süreçte çalışır. 1'den büyükse, verilerin paralel olarak işlenmesi için bir veya birden fazla işçi süreci kullanılır. Not: Çok işlemcili işlemin doğru çalışması için map() fonksiyonuna geçirilen fonksiyonun picklable olması gerekir (yani, bir modülün üst seviyesinde tanımlanmış fonksiyonları, başka bir fonksiyonun veya sınıfın içinde tanımlanmış olanlara tercih edin).Noneveya0ise çok işlemci kullanılmaz ve işlem ana süreçte çalışır.1'den büyükse, verileri paralel olarak işlemek için bir veya birden çok işçi süreci kullanılır. Not: Çoklu işleme (multiprocessing) doğru çalışması içinmap()'e geçirilen fonksiyon picklable olmalıdır (yani, bir modülün üst seviyesinde tanımlanmış fonksiyonları tercih edin, başka bir fonksiyonun veya sınıfın içinde tanımlanmış olanları değil).
- suffix_template (
str) —cache_file_namebelirtilirse, bu sonek her birinin taban adının sonuna eklenir. Örneğin,cache_file_name"processed.arrow"ise,rank = 1venum_proc = 4için sonuç dosya, varsayılan sonek için"processed_00001_of_00004.arrow"olur (varsayılan_{rank:05d}_of_{num_proc:05d}). - new_fingerprint (
str, isteğe bağlı) — Dönüşüm sonrası veri setinin yeni parmak izi.Noneise, yeni parmak izi önceki parmak izinin ve dönüşüm argümanlarının bir özeti kullanılarak hesaplanır. - desc (
str, isteğe bağlı, varsayılanNone) — Örnekler filtrelenirken ilerleme çubuğuyla birlikte görüntülenecek anlamlı açıklama.
Tablodaki tüm öğelere partiler halinde bir filtre fonksiyonu uygulayın ve veri setinin yalnızca filtre fonksiyonuna uygun örnekleri içerecek şekilde tabloyu güncelleyin.
Eğer fonksiyon asenkron ise, filter fonksiyonunuzu paralel olarak çalıştırır; bu, eşzamanlı olarak en fazla bin çağrı (yapılandırılabilir) anlamına gelir.
Aynı anda çalışabilecek işlemlerin maksimum sayısını belirlemek istiyorsanız, fonksiyonunuzda asyncio.Semaphore kullanmanız önerilir.
seç
< 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 )
Parametreler
- indices (
range,list,iterable,ndarrayveyaSeries) — Dizinleme için tamsayı dizinlerinden oluşan bir aralık, liste veya 1B dizi. Dizinler ardışık bir aralığa karşılık geliyorsa, Arrow tablosu basitçe dilimlenir. Ancak ardışık olmayan bir dizin listesi geçmek, çok daha az verimli olan bir dizin eşlemesi oluşturur; bu, istenen satırlardan oluşan bir Arrow tablosunu yeniden oluşturmak kadar hızlı olmasa da yine de daha hızlıdır. - keep_in_memory (
bool, varsayılanFalse) — Dizin eşlemesini bir önbellek dosyasına yazmak yerine bellekte tutar. - indices_cache_file_name (
str, isteğe bağlı, varsayılanNone) — Önbellek dosyası için bir yol adı belirtin. Otomatik olarak oluşturulan önbellek dosyası adı yerine indeks eşlemesini saklamak için kullanılır. - writer_batch_size (
int, varsayılan1000) — Önbellek dosyası yazıcısı için yazma işlemi başına satır sayısı. Bu değer, işleme sırasında bellek kullanımı ile işleme hızı arasında iyi bir denge sağlar. Daha yüksek bir değer, işlemenin daha az arama yapmasını sağlar; daha düşük bir değer isemapçalışırken daha az geçici bellek tüketir. - new_fingerprint (
str, isteğe bağlı, varsayılanNone) — Dönüşüm sonrası veri setinin yeni parmak izi.Noneise, yeni parmak izi önceki parmak izinin ve dönüşüm argümanlarının bir özeti (hash) kullanılarak hesaplanır.
Dizinler listesini/dizisini takip ederek seçilen satırlarla yeni bir veri seti oluşturun.
sırala
< 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 )
Parametreler
- column_names (
Union[str, Sequence[str]]) — Sıralama için sütun adı(ları). - reverse (
Union[bool, Sequence[bool]], varsayılanFalse) —Trueise sıralama artan yerine azalan düzende yapılır. Tek bir bool değeri verilirse, bu değer tüm sütun adlarının sıralanmasına uygulanır. Aksi takdirde, column_names ile aynı uzunlukta ve sıralamada bir bool listesi sağlanmalıdır. - null_placement (
str, varsayılan olarakat_end) — yerleştirNonedeğerlerini başaat_startveyafirstveya sonaat_endveyalast1.14.2 sürümünde eklendi
- keep_in_memory (
bool, varsayılanFalse) — Sıralanmış dizinleri bir önbellek dosyasına yazmak yerine bellekte tutar. - load_from_cache_file (
Optional[bool], önbellekleme etkinse varsayılan olarakTrue) — Sıralı dizinleri depolayan bir önbellek dosyası belirlenebiliyorsa, yeniden hesaplamak yerine onu kullanın. - indices_cache_file_name (
str, isteğe bağlı, varsayılanNone) — Önbellek dosyası için bir yol adı belirtin. Otomatik olarak oluşturulan önbellek dosyası adı yerine sıralanmış dizinleri saklamak için kullanılır. - writer_batch_size (
int, varsayılan1000) — Önbellek dosyası yazıcısı için yazma işlemi başına satır sayısı. Daha yüksek değer daha küçük önbellek dosyaları verir, daha düşük değer daha az geçici bellek kullanır. - new_fingerprint (
str, isteğe bağlı, varsayılanNone) — Dönüşüm sonrası veri setinin yeni parmak izi.Noneise, yeni parmak izi önceki parmak izinin ve dönüşüm argümanlarının bir özeti kullanılarak hesaplanır
Tek veya birden fazla sütuna göre sıralanmış yeni bir veri seti oluşturun.
Örnek:
>>> 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]karıştır
< 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 )
Parametreler
- seed (
int, isteğe bağlı) —generator=Noneise varsayılan BitGenerator'ı başlatmak için bir tohum.Noneise, taze ve öngörülemez entropi işletim sisteminden çekilir.intveyaarray_like[ints]geçirilirse, SeedSequence'e başlangıç BitGenerator durumunu türetmek için iletilir. - generator (
numpy.random.Generator, isteğe bağlı) — Veri seti satırlarının permütasyonunu hesaplamak için kullanılacak Numpy rastgele Generator.generator=None(varsayılan) ise,np.random.default_rng(NumPy'nin varsayılan BitGenerator'ı (PCG64)) kullanılır. - keep_in_memory (
bool, varsayılanFalse) — Karıştırılmış dizinleri bir önbellek dosyasına yazmak yerine bellekte tutar. - load_from_cache_file (
Optional[bool], önbellekleme etkinse varsayılan olarakTrue) — Karıştırılmış dizinleri depolayan bir önbellek dosyası belirlenebiliyorsa, yeniden hesaplamak yerine onu kullanın. - indices_cache_file_name (
str, isteğe bağlı) — Önbellek dosyası için bir yol adı belirtin. Otomatik oluşturulan önbellek dosyası adı yerine karıştırılmış dizinlerin saklanması için kullanılır. - writer_batch_size (
int, varsayılan1000) — Önbellek dosyası yazıcısı için yazma işlemi başına satır sayısı. Bu değer, işleme sırasında bellek kullanımı ile işleme hızı arasında iyi bir denge sağlar. Daha yüksek bir değer, işlemenin daha az arama yapmasını sağlar; daha düşük bir değer isemapçalışırken daha az geçici bellek tüketir. - new_fingerprint (
str, isteğe bağlı, varsayılanNone) — Dönüşüm sonrası veri setinin yeni parmak izi.Noneise, yeni parmak izi önceki parmak izinin ve dönüşüm argümanlarının bir özeti (hash) kullanılarak hesaplanır.
Satırları karıştırılmış yeni bir Dataset oluşturun.
Şu anda karıştırma işlemi numpy rastgele üreteçlerini kullanır. Kullanılacak bir NumPy BitGenerator sağlayabilir veya NumPy’nin varsayılan rastgele üretecini (PCG64) başlatmak için bir tohum (seed) verebilirsiniz.
Shuffling, [0:len(my_dataset)] dizin listesini alır ve karıştırarak bir dizin eşlemesi oluşturur.
Ancak Dataset nesnenizde bir dizin eşlemesi olduğu anda hız 10 kat yavaşlayabilir.
Bunun nedeni, dizin eşlemesini kullanarak okunacak satır dizinine erişmek için ek bir adımın olması ve en önemlisi, artık veriye ardışık parçalar halinde erişilmemesidir.
Hızı geri kazanmak için, dizin eşlemesini kaldıran Dataset.flatten_indices() yöntemini kullanarak tüm veri setini diskinize yeniden yazmanız gerekir.
Ancak bu, veri setinizin boyutuna bağlı olarak çok zaman alabilir:
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 againBu durumda, IterableDataset'e geçmenizi ve hızlı yaklaşık karıştırma yöntemi olan IterableDataset.shuffle()'i kullanmanızı öneririz.
Sadece shard sırasını karıştırır ve veri setinize bir shuffle buffer ekler; bu sayede veri setinizin hızı optimal kalır:
my_iterable_dataset = my_dataset.to_iterable_dataset(num_shards=128)
for example in enumerate(my_iterable_dataset): # fast
pass
shuffled_iterable_dataset = my_iterable_dataset.shuffle(seed=42, buffer_size=100)
for example in enumerate(shuffled_iterable_dataset): # as fast as before
passİlk n öğeyi atlayan yeni bir Dataset oluşturun.
Örnek:
>>> 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 .'}]Sadece ilk n öğesini içeren yeni bir Dataset oluşturun.
Örnek:
>>> 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 )
Parametreler
- test_size (
Union[float, int, None], isteğe bağlı) — Test bölmesinin boyutufloatise,0.0ile1.0arasında olmalı ve test bölmesine dahil edilecek veri kümesinin oranını temsil etmelidir.intise, test örneklerinin mutlak sayısını temsil eder.Noneise, değer eğitim boyutunun tamamlayıcısı olarak ayarlanır.train_sizedeNoneise,0.25olarak ayarlanır. - train_size (
Union[float, int, None], isteğe bağlı) — Eğitim bölmesinin boyutufloatise,0.0ile1.0arasında olmalı ve eğitim bölmesine dahil edilecek veri seti oranını temsil etmelidir.intise, eğitim örneklerinin mutlak sayısını temsil eder.Noneise, değer test boyutunun tamamlayıcısı olarak otomatik olarak ayarlanır. - shuffle (
bool, isteğe bağlı, varsayılanTrue) — Veriler bölünmeden önce karıştırılacak mı? - stratify_by_column (
str, isteğe bağlı, varsayılanNone) — Verilerin katmanlı olarak bölünmesi için kullanılacak etiketlerin sütun adı. - seed (
int, isteğe bağlı) —generator=Noneise varsayılan BitGenerator'ı başlatmak için bir tohum.Noneise, taze ve öngörülemez entropi işletim sisteminden çekilir.intveyaarray_like[ints]geçirilirse, SeedSequence'e başlangıç BitGenerator durumunu türetmek için iletilir. - generator (
numpy.random.Generator, isteğe bağlı) — Veri seti satırlarının permütasyonunu hesaplamak için kullanılacak Numpy rastgele Generator.generator=None(varsayılan) ise,np.random.default_rng(NumPy'nin varsayılan BitGenerator'ı (PCG64)) kullanılır. - keep_in_memory (
bool, varsayılanFalse) — Bölüm indekslerini önbellek dosyasına yazmak yerine bellekte tutar. - load_from_cache_file (
Optional[bool], önbellekleme etkinse varsayılan olarakTrue) — Bölünme indekslerini saklayan bir önbellek dosyası tanımlanabiliyorsa, yeniden hesaplamak yerine onu kullanın. - train_cache_file_name (
str, isteğe bağlı) — Önbellek dosyası için bir yol adı belirtin. Otomatik olarak oluşturulan önbellek dosyası adı yerine eğitim bölünmesi indekslerini depolamak için kullanılır. - test_cache_file_name (
str, isteğe bağlı) — Önbellek dosyası için bir yol adı belirtin. Otomatik olarak oluşturulan önbellek dosyası adı yerine test bölünmesi indekslerini depolamak için kullanılır. - writer_batch_size (
int, varsayılan1000) — Önbellek dosyası yazıcısı için yazma işlemi başına satır sayısı. Bu değer, işleme sırasında bellek kullanımı ile işleme hızı arasında iyi bir denge sağlar. Daha yüksek bir değer, işlemenin daha az arama yapmasını sağlar; daha düşük bir değer isemapçalışırken daha az geçici bellek tüketir. - train_new_fingerprint (
str, isteğe bağlı, varsayılanNone) — Dönüşüm sonrası eğitim setinin yeni parmak izi.Noneise, yeni parmak izi önceki parmak izinin ve dönüşüm argümanlarının bir özeti kullanılarak hesaplanır - test_new_fingerprint (
str, isteğe bağlı, varsayılanNone) — Dönüşüm sonrası test setinin yeni parmak izi.Noneise, yeni parmak izi önceki parmak izinin ve dönüşüm argümanlarının bir özeti kullanılarak hesaplanır
İki rastgele eğitim ve test alt kümesini (train ve test Dataset bölümleri) içeren bir sözlük (datasets.DatasetDict) döndürür.
Bölümler, veri setinden test_size, train_size ve shuffle parametrelerine göre oluşturulur.
Bu yöntem, scikit-learn train_test_split ile benzerdir.
Örnek:
>>> 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
})
})parça
< source >( num_shards: intindex: intcontiguous: bool = Truekeep_in_memory: bool = Falseindices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000 )
Parametreler
- num_shards (
int) — Veri setinin kaç parçaya bölüneceği. - index (
int) — Seçilecek ve döndürülecek shard. - contiguous — (
bool, varsayılanTrue): Parçalar için ardışık indeks bloklarının seçilip seçilmeyeceği. - keep_in_memory (
bool, varsayılanFalse) — Veri setini önbellek dosyasına yazmak yerine bellekte tutar. - indices_cache_file_name (
str, isteğe bağlı) — Önbellek dosyası için bir yol adı belirtin. Otomatik olarak oluşturulan önbellek dosyası adı yerine, her parçanın (shard) indekslerini depolamak için kullanılır. - writer_batch_size (
int, varsayılan1000) — Bu yalnızca indeks eşlemesini ilgilendirir. Önbellek dosyası yazıcısı için yazma işlemi başına indeks sayısı. Bu değer, işleme sırasında bellek kullanımı ile işleme hızı arasında iyi bir denge sağlar. Daha yüksek bir değer, işlemenin daha az arama yapmasını sağlar; daha düşük bir değer isemapçalışırken daha az geçici bellek tüketir.
Veri setini num_shards parçaya böldükten sonra index-inci parçayı döndürür.
Bu işlem deterministik olarak parçalar. dataset.shard(n, i) veri setini ardışık parçalara böler, böylece işlemden sonra kolayca birleştirilebilir. len(dataset) % n == l ise, ilk l veri setinin uzunluğu (len(dataset) // n) + 1, kalan veri setlerinin uzunluğu ise (len(dataset) // n) olur. datasets.concatenate_datasets([dset.shard(n, i) for i in range(n)]), orijinal veri setiyle aynı sıraya sahip bir veri seti döndürür.
Not: n, veri setindeki eleman sayısına len(dataset) eşit veya ondan küçük olmalıdır.
Öte yandan, dataset.shard(n, i, contiguous=False), dizinin n = i moduna göre indeksi olan tüm öğelerini içerir.
Rastgeleleştirme operatörlerinden (örneğin shuffle) herhangi birini kullanmadan önce parçalamayı (sharding) yapmayı unutmayın.
Parçalama operatörünün veri seti hattının başında kullanılması en iyisidir.
tekrar
< source >( num_times: int )
Altta yatan veri setini num_times kez tekrar eden yeni bir Dataset oluşturun.
itertools.repeat gibi, bir kez tekrarlama yalnızca tam veri setini döndürür.
Örnek:
>>> 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 )
Parametreler
- batch_size (
int, isteğe bağlı) — Veri setinden yüklenecek partilerin boyutu. Varsayılan olarakNone'dir; bu, veri setinin partilendirilmeyeceği anlamına gelir ancak döndürülen veri seti daha sonratf_dataset.batch(batch_size)ile partilendirilebilir. - columns (
List[str]veyastr, isteğe bağlı) —tf.data.Datasetiçinde yüklenecek veri seti sütun(lar)ı.collate_fntarafından oluşturulan ve orijinal veri setinde bulunmayan sütun adları kullanılabilir. - shuffle(
bool, varsayılanFalse) — Yükleme sırasında veri seti sırasını karıştırır. Eğitim içinTrue, doğrulama/değerlendirme içinFalseönerilir. - drop_remainder(
bool, varsayılanFalse) — Yükleme sırasında son eksik partiyi atar. Veri setinin ürettiği tüm partilerin parti boyutu boyutunda aynı uzunlukta olmasını sağlar. - collate_fn(
Callable, isteğe bağlı) — Örnek listelerini bir partiye (batch) birleştirecek bir fonksiyon veya çağrılabilir nesne (örneğinDataCollator). - collate_fn_args (
Dict, isteğe bağlı) —collate_fn'e iletilecek anahtar kelime argümanlarından oluşan isteğe bağlı birdict. - label_cols (
List[str]veyastr, varsayılanNone) — Etiket olarak yüklenecek veri seti sütun(lar)ı. Birçok modelin kaybı (loss) Keras'a bırakmak yerine dahili olarak hesapladığını ve bu durumda, etiketlerin girdicolumnsiçinde olduğu sürece burada etiketleri geçmenin isteğe bağlı olduğunu unutmayın. - prefetch (
bool, varsayılanTrue) — Dataloader'ın ayrı bir iş parçacığında çalıştırılıp çalıştırılmayacağı ve eğitim için küçük bir parti tamponunun sürdürülüp sürdürülmeyeceği. Modelin eğitim sırasında arka planda veri yüklenmesine olanak tanıyarak performansı artırır. - num_workers (
int, varsayılan0) — Veri setini yüklemek için kullanılacak işçi sayısı. - num_test_batches (
int, varsayılan20) — Veri setinin çıktı imzasını çıkarırken kullanılacak parti sayısı. Bu sayı ne kadar yüksek olursa imza o kadar doğru olur, ancak veri setinin oluşturulması o kadar uzun sürer.
Altta yatan Dataset'ten bir tf.data.Dataset oluşturun. Bu tf.data.Dataset, Dataset'ten toplulukları (batch) yükleyip birleştirir (collate) ve model.fit() veya model.predict() gibi yöntemlere aktarılmasına uygundur. dict yalnızca tek bir anahtar içermediği sürece, hem girdiler hem de etiketler için dicts üretilir; aksi halde bunun yerine ham bir tf.Tensor üretilir.
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 )
Parametreler
- repo_id (
str) — Aşağıdaki biçimde itme (push) yapılacak deposunun kimliği:<user>/<dataset_name>veya<org>/<dataset_name>. Ayrıca<dataset_name>, de kabul eder; bu durumda oturum açılmış kullanıcının ad alanı (namespace) varsayılan olarak kullanılır.Ayrıca bir varlığın içindeki bir konum da olabilir, örneğin
buckets/<user_or_org>/<bucket_name>/... - config_name (
str, varsayılan “default”) — Bir veri setinin yapılandırma adı (veya alt kümesi). Varsayılan olarak “default” değerini alır. - set_default (
bool, isteğe bağlı) — Bu yapılandırmanın varsayılan olarak ayarlanıp ayarlanmayacağı. Aksi takdirde, varsayılan yapılandırma “default” adlı olanıdır. - split (
str, isteğe bağlı) — Bu veri setine verilecek bölünmenin adı. Varsayılan olarakself.splitdeğerini kullanır. - data_dir (
str, isteğe bağlı) — Yüklenen veri dosyalarını içerecek dizin adı. Farklıysaconfig_namedeğilse “data” olarak varsayılan değerdir.2.17.0 sürümünde eklendi
- commit_message (
str, isteğe bağlı) — İterilirken iletilecek mesaj. Varsayılan olarak"Upload dataset"olur. - commit_description (
str, isteğe bağlı) — Oluşturulacak commit'in açıklaması. Ayrıca, bir PR oluşturulursa PR açıklaması da (create_prTrue ise).2.16.0 sürümünde eklendi
- private (
bool, isteğe bağlı) — Deponun özel yapılıp yapılmayacağı.None(varsayılan) ise, organizasyonun varsayılanı özel değilse depo herkese açık olacaktır. Depo zaten mevcutsa bu değer yok sayılır. - token (
str, isteğe bağlı) — Hugging Face Hub için isteğe bağlı bir kimlik doğrulama belirteci. Belirteç geçirilmezse,hf auth loginile oturum açılırken yerel olarak kaydedilen belirteç varsayılan olarak kullanılır. Belirteç geçirilmez ve kullanıcı oturum açmamışsa bir hata oluşturulur. - revision (
str, isteğe bağlı) — Yüklenen dosyaların gönderileceği dal. Varsayılan olarak"main"dalıdır.2.15.0 sürümünde eklendi
- create_pr (
bool, isteğe bağlı, varsayılan olarakFalse) — Yüklenen dosyalarla bir PR oluşturulup oluşturulmayacağına veya doğrudan commit atılıp atılmayacağına karar verir.2.15.0 sürümünde eklendi
- max_shard_size (
intveyastr, isteğe bağlı, varsayılan"500MB") — Hub'a yüklenecek veri seti parçacıklarının (shard) maksimum boyutu. Dize olarak ifade ediliyorsa, birimden (ör."5MB") önce rakamlar gelmelidir. - num_shards (
int, isteğe bağlı) — Yazılacak shard sayısı. Varsayılan olarak shard sayısımax_shard_size.2.8.0 sürümünde eklendi
- embed_external_files (
bool, varsayılan olarakTrue) — Dosya baytlarının shard'lara gömülüp gömülmemesi. Özellikle, push işleminden önce şu alan türleri için şunları yapar: - num_proc (
int, isteğe bağlı, varsayılan olarakNone) — Veri setini hazırlarken ve yüklerken kullanılacak süreç sayısı. Veri seti gömülecek çok sayıda örnek veya medya dosyasından oluşuyorsa bu parametre işe yarar. hf_xet ile çalışmak için “spawn” bağlamını kullanır; hf_xet, HF'ye hızlı yüklemeler için kullanılan rust istemcisidir. Çok işlemcili çalışma (multiprocessing) varsayılan olarak devre dışıdır.4.0.0 sürümünde eklendi
Veri setini Parquet veri seti olarak hub'a gönderir. Veri seti HTTP istekleri kullanılarak gönderilir ve git veya git-lfs kurulu olmasına gerek yoktur.
Oluşturulan Parquet dosyaları varsayılan olarak kendi kendine yeterlidir. Veri setiniz Image, Audio veya Video verisi içeriyorsa, Parquet dosyaları görüntü veya ses dosyalarınızın baytlarını saklar.
Bunu, embed_external_files değerini False olarak ayarlayarak devre dışı bırakabilirsiniz.
Örnek:
>>> 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)Veri setiniz birden fazla bölüme (ör. eğitim/doğrulama/test) sahipse:
>>> 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"]Bir veri setine yeni bir yapılandırma (veya alt küme) eklemek istiyorsanız (ör. veri seti birden fazla görev/sürüm/dil içeriyorsa):
>>> 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 )
Parametreler
- dataset_path (
path-like) — Veri setinin kaydedileceği veri seti dizininin yolu (ör.dataset/train) veya uzak URI'si (ör.s3://my-bucket/dataset/train). - max_shard_size (
intveyastr, isteğe bağlı, varsayılan"500MB") — Dosya sistemine kaydedilecek veri kümesi parçacıklarının (shard) maksimum boyutu. Dize olarak ifade ediliyorsa, birimden önce rakamlar gelmelidir (ör."50MB"). - num_shards (
int, isteğe bağlı) — Yazılacak shard sayısı. Varsayılan olarak shard sayısımax_shard_sizevenum_proc.2.8.0 sürümünde eklendi
- num_proc (
int, isteğe bağlı) — Veri setini indirirken ve yerel olarak oluştururken kullanılacak süreç sayısı. Çok işlemcili (multiprocessing) varsayılan olarak devre dışıdır.2.8.0 sürümünde eklendi
- storage_options (
dict, isteğe bağlı) — Varsa, dosya sistemi arka ucuna iletilecek anahtar/değer çiftleri.2.8.0 sürümünde eklendi
Bir veri setini bir veri seti dizinine veya fsspec.spec.AbstractFileSystem uygulaması olan herhangi bir dosya sisteminde kaydeder.
Image, Audio ve Video verileri için:
Tüm Image(), Audio() ve Video() verileri arrow dosyalarında saklanır. Yollar veya URL'ler saklamak istiyorsanız, lütfen Value(“string”) tipini kullanın.
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
Parametreler
- dataset_path (
path-like) — Veri setinin yükleneceği veri seti dizininin yolu (ör."dataset/train") veya uzak URI'si (ör."s3//my-bucket/dataset/train"). - keep_in_memory (
bool, varsayılanNone) — Veri setinin bellek içine kopyalanıp kopyalanmayacağı.Noneise,datasets.config.IN_MEMORY_MAX_SIZEsıfırdan farklı bir değere ayarlanarak açıkça etkinleştirilmedikçe veri seti bellek içine kopyalanmaz. Daha fazla ayrıntı için performansı iyileştirme bölümüne bakın. - storage_options (
dict, isteğe bağlı) — Varsa, dosya sistemi arka ucuna iletilecek anahtar/değer çiftleri.2.8.0 sürümünde eklendi
Dönüş değeri
Dataset veya DatasetDict
dataset_pathbir veri seti dizini yoluysa, istenen veri seti.dataset_path, bir dataset dict dizini yoluysa, her split için birdatasets.DatasetDictdöndürülür.
Daha önce save_to_disk kullanılarak bir veri seti dizininden veya fsspec.spec.AbstractFileSystem uygulamasının herhangi birinden bir dosya sisteminden kaydedilmiş bir veri setini yükler.
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 )
Parametreler
- keep_in_memory (
bool, varsayılanFalse) — Veri setini önbellek dosyasına yazmak yerine bellekte tutar. - cache_file_name (
str, isteğe bağlı, varsayılanNone) — Önbellek dosyası için bir yol adı belirtin. Hesaplama sonuçlarını, otomatik olarak oluşturulan önbellek dosyası adı yerine bu yolda saklamak için kullanılır. - writer_batch_size (
int, varsayılan1000) — Önbellek dosyası yazıcısı için yazma işlemi başına satır sayısı. Bu değer, işleme sırasında bellek kullanımı ile işleme hızı arasında iyi bir denge sağlar. Daha yüksek bir değer, işlemenin daha az arama yapmasını sağlar; daha düşük bir değer isemapçalışırken daha az geçici bellek tüketir. - features (
Optional[datasets.Features], varsayılanNone) — Otomatik olarak oluşturulan yerine, önbellek dosyasını depolamak için belirli bir Features kullanın. - disable_nullable (
bool, varsayılanFalse) — Tabloda null değerlere izin verir. - num_proc (
int, isteğe bağlı, varsayılanNone) — Önbellek oluşturulurken kullanılacak maksimum süreç sayısı. Zaten önbelleğe alınmış parçalar sıralı olarak yüklenir - new_fingerprint (
str, isteğe bağlı, varsayılanNone) — Dönüşüm sonrası veri setinin yeni parmak izi.Noneise, yeni parmak izi önceki parmak izinin ve dönüşüm argümanlarının bir özeti kullanılarak hesaplanır
Dizin eşlemesini düzleştirerek yeni bir Dataset oluşturun ve önbelleğe alın.
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
Parametreler
- path_or_buf (
PathLikeveyaFileOrBuffer) — Bir dosya yolu (ör.file.csv), uzak bir URI (ör.hf://datasets/username/my_dataset_name/data.csv) veya veri setinin belirtilen formatta kaydedileceği bir BinaryIO. - batch_size (
int, isteğe bağlı) — Belleğe yüklenip tek seferde yazılacak olan batch boyutu. Varsayılan değerdatasets.config.DEFAULT_MAX_BATCH_SIZE'dir. - num_proc (
int, isteğe bağlı) — Çok işlemcili (multiprocessing) işlem için süreç sayısı. Varsayılan olarak çok işlemcili işlem kullanmaz. Bu durumdabatch_sizevarsayılan olarakdatasets.config.DEFAULT_MAX_BATCH_SIZEdeğerine ayarlanır ancak yeterli hesaplama gücüne sahipseniz bu değeri varsayılanın 5 katı veya 10 katı yapabilirsiniz. - storage_options (
dict, isteğe bağlı) — Varsa, dosya sistemi arka ucuna iletilecek anahtar/değer çiftleri.2.19.0 sürümünde eklendi
- **to_csv_kwargs (ek anahtar kelime argümanları) —
pandas'in
pandas.DataFrame.to_csv.2.10.0 sürümünde değiştirildi
Şimdi,
indexbelirtilmediyse varsayılan olarakFalsedeğerini alır.Dizin yazmak istiyorsanız
index=Trueparametresini iletin ve ayrıcaindex_labelparametresini geçirerek dizin sütunu için bir ad belirleyin.
Dönüş değeri
int
Yazılan karakter veya bayt sayısı.
Veri setini csv olarak dışa aktarır
to_pandas
< source >( batch_size: typing.Optional[int] = Nonebatched: bool = False )
Parametreler
- batch_size (
int, isteğe bağlı) —batchedTrueise partilerin boyutu (satır sayısı). Varsayılan değerdatasets.config.DEFAULT_MAX_BATCH_SIZE'dir. - batched (
bool) — Veri setinibatch_sizesatırlık partiler halinde üreten bir üretici döndürmesi içinTrueolarak ayarlayın. Varsayılan değerFalse'tir (tüm veri setlerini bir kez döndürür).
Veri setini pandas.DataFrame olarak döndürür. Büyük veri setleri için bir üreteç de döndürebilir.
to_dict
< source >( batch_size: typing.Optional[int] = Nonebatched: bool = False )
Parametreler
- batch_size (
int, isteğe bağlı) —batchedTrueise partilerin boyutu (satır sayısı). Varsayılan değerdatasets.config.DEFAULT_MAX_BATCH_SIZE'dir. - batched (
bool) — Veri setinibatch_sizesatırlık partiler halinde üreten bir üretici döndürmesi içinTrueolarak ayarlayın. Varsayılan değerFalse'tir (tüm veri setlerini bir kez döndürür).
Veri setini bir Python sözlüğü olarak döndürür. Büyük veri setleri için bir üreteç de döndürebilir.
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
Parametreler
- path_or_buf (
PathLikeveyaFileOrBuffer) — Bir dosya yolu (ör.file.json), uzak bir URI (ör.hf://datasets/username/my_dataset_name/data.json) veya veri setinin belirtilen formatta kaydedileceği bir BinaryIO. - batch_size (
int, isteğe bağlı) — Belleğe yüklenip tek seferde yazılacak olan batch boyutu. Varsayılan değerdatasets.config.DEFAULT_MAX_BATCH_SIZE'dir. - num_proc (
int, isteğe bağlı) — Çok işlemcili (multiprocessing) işlem için süreç sayısı. Varsayılan olarak çok işlemcili işlem kullanmaz. Bu durumdabatch_sizevarsayılan olarakdatasets.config.DEFAULT_MAX_BATCH_SIZEdeğerine ayarlanır ancak yeterli hesaplama gücüne sahipseniz bu değeri varsayılanın 5 katı veya 10 katı yapabilirsiniz. - storage_options (
dict, isteğe bağlı) — Varsa, dosya sistemi arka ucuna iletilecek anahtar/değer çiftleri.2.19.0 sürümünde eklendi
- **to_json_kwargs (ek anahtar kelime argümanları) —
pandas'in
pandas.DataFrame.to_json. varsayılan argümanlarlines=Trueve `orient="records"`.2.11.0 sürümünde değiştirildi
orientdeğeri"split"veya"table"iseindexparametresi varsayılan olarakFalseolur.Dizin yazmak istiyorsanız,
index=Trueparametresini iletin.
Dönüş değeri
int
Yazılan karakter veya bayt sayısı.
Veri setini JSON Lines veya JSON olarak dışa aktarın.
Varsayılan çıktı biçimi JSON Lines'tır.
JSON olarak dışa aktarmak için lines=False argümanını ve istenen orient değerini geçirin.
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
Parametreler
- path_or_buf (
PathLikeveyaFileOrBuffer) — Bir dosya yolu (ör.file.parquet), uzak bir URI (ör.hf://datasets/username/my_dataset_name/data.parquet) veya veri setinin belirtilen formatta kaydedileceği bir BinaryIO. - batch_size (
int, isteğe bağlı) — Belleğe yüklenip tek seferde yazılacak partinin boyutu. Varsayılan olarak,datasets.config.MAX_ROW_GROUP_SIZEtarafından tanımlanan, sıkıştırılmamış bayt boyutu “100MB” olan maksimum satır gruplarını hedefler. - storage_options (
dict, isteğe bağlı) — Varsa, dosya sistemi arka ucuna iletilecek anahtar/değer çiftleri.2.19.0 sürümünde eklendi
- **parquet_writer_kwargs (ek anahtar kelime argümanları) —
PyArrow'ın
pyarrow.parquet.ParquetWritersınıfına iletilecek parametreler.
Dönüş değeri
int
Yazılan karakter veya bayt sayısı.
Veri setini parquet olarak dışa aktarır
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
Parametreler
- name (
str) — SQL tablosunun adı. - con (
strveyasqlite3.Connectionveyasqlalchemy.engine.Connectionveyasqlalchemy.engine.Connection) — Bir veritabanına yazmak için kullanılan URI dizesi veya SQLite3/SQLAlchemy bağlantı nesnesi. - batch_size (
int, isteğe bağlı) — Belleğe yüklenip tek seferde yazılacak olan batch boyutu. Varsayılan değerdatasets.config.DEFAULT_MAX_BATCH_SIZE'dir. - num_proc (
int, isteğe bağlı) — Çok işlemcili (multiprocessing) işlem için süreç sayısı. Varsayılan olarak çok işlemcili işlem kullanmaz. Bu durumdabatch_sizevarsayılan olarakdatasets.config.DEFAULT_MAX_BATCH_SIZEdeğerine ayarlanır ancak yeterli hesaplama gücüne sahipseniz bu değeri varsayılanın 5 katı veya 10 katı yapabilirsiniz. - **sql_writer_kwargs (ek anahtar kelime argümanları) —
pandas'in
pandas.DataFrame.to_sql.2.11.0 sürümünde değiştirildi
Şimdi,
indexbelirtilmediyse varsayılan olarakFalsedeğerini alır.Dizin yazmak istiyorsanız
index=Trueparametresini iletin ve ayrıcaindex_labelparametresini geçirerek dizin sütunu için bir ad belirleyin.
Dönüş değeri
int
Yazılan kayıt sayısı.
Veri setini bir SQL veritabanına dışa aktarır.
to_iterable_dataset
< source >( num_shards: typing.Optional[int] = 1 )
Parametreler
- num_shards (
int, varsayılan1) — İteratif veri seti oluşturulurken tanımlanacak shard sayısı. Bu, büyük veri setlerinin doğru şekilde karıştırılabilmesi ve örneğin PyTorch DataLoader ile hızlı paralel yükleme veya dağıtık kurulumlarda kullanılabilmesi için özellikle faydalıdır. Shard'lar datasets.Dataset.shard() kullanılarak tanımlanır: bu, diske hiçbir şey yazmadan veriyi doğrudan dilimlere ayırır.
Harita tarzı bir datasets.Dataset'ten datasets.IterableDataset alın. Bu, datasets.load_dataset() ile bir veri setini akış modunda yüklemeye eşdeğerdir ancak veri yerel dosyalardan akıtıldığı için çok daha hızlıdır.
Map-stil veri kümelerinin aksine, iterable veri kümeleri tembel (lazy)dir ve yalnızca yineleme yoluyla (ör. bir for döngüsü kullanarak) gezilebilir. Eğitim döngülerinde sıralı olarak okundukları için, iterable veri kümeleri map-stil veri kümelerinden çok daha hızlıdır. Filtreleme veya işleme gibi iterable veri kümelerine uygulanan tüm dönüşümler, veri kümesinin üzerinde yinelemeye başladığınız anda anlık olarak (on-the-fly) gerçekleştirilir.
Yine de, datasets.IterableDataset.shuffle() kullanarak bir iterable veri setini karıştırmak mümkündür. Bu, birden fazla shard'a sahipseniz ve yeterince büyük bir buffer boyutu belirtirseniz en iyi sonucu veren hızlı ve yaklaşık bir karıştırma yöntemidir.
En iyi hız performansını elde etmek için veri setinizin bir indeks eşlemesi içermediğinden emin olun.
Bu durum söz konusuysa, veriler ardışık olarak okunmaz ve bu bazen yavaş olabilir.
Yineleme yapılabilir bir veri setine geçmeden önce, veri setinizi ardışık veri blokları olarak yazmak ve optimum hıza sahip olmak için ds = ds.flatten_indices() kullanabilirsiniz.
Örnek:
Gecikmeli filtreleme ve işleme ile:
>>> 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:
... passVerimli karıştırma (shuffling) için shard'leme ile:
>>> 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:
... passBir PyTorch DataLoader ile:
>>> 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:
... passBir PyTorch DataLoader ve karıştırma (shuffling) ile:
>>> 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:
... passPyTorch DataLoader ve karıştırma (shuffling) içeren PyTorch DDP gibi dağıtık bir kurulumda
>>> 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:
... passKarıştırma ve çoklu epoklarla:
>>> 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'> )
Parametreler
- column (
str) — Dizin eklemek için vektörlerin sütunu. - index_name (
str, isteğe bağlı) — Dizininindex_name/kimliği. Bu, get_nearest_examples() veya search() çağrılırken kullanılanindex_name'dir. Varsayılan olarakcolumn'a karşılık gelir. - device (
Union[int, List[int]], isteğe bağlı) — Pozitif bir tam sayıysa, kullanılacak GPU'nun dizinidir. Negatif bir tam sayıysa, tüm GPU'lar kullanılır. Pozitif tam sayılardan oluşan bir liste geçirilirse, yalnızca bu GPU'larda çalıştırılır. Varsayılan olarak CPU kullanılır. - string_factory (
str, isteğe bağlı) — Bu, Faiss'in index fabrikasına index oluşturmak için iletilir. Varsayılan index sınıfıIndexFlat'tür. - metric_type (
int, isteğe bağlı) — Metrik türü. Ör:faiss.METRIC_INNER_PRODUCTveyafaiss.METRIC_L2. - custom_index (
faiss.Index, isteğe bağlı) — Zaten ihtiyaçlarınıza göre örneklenmiş ve yapılandırılmış özel Faiss indeksi. - batch_size (
int) — vektörlerinFaissIndex. varsayılan değeri1000.2.4.0 sürümünde eklendi
- train_size (
int, isteğe bağlı) — Dizin için bir eğitim adımı gerekiyorsa, dizini eğitmek için kullanılacak vektör sayısını belirtir. - faiss_verbose (
bool, varsayılanFalse) — Faiss dizininin ayrıntı düzeyini etkinleştirir. - dtype (
data-type) — Dizinlenen numpy dizilerinin dtype'ı. Varsayılan değernp.float32'dir.
Faiss kullanarak hızlı geri getirme için yoğun bir indeks ekleyin.
Varsayılan olarak indeks, belirtilen sütunun vektörleri üzerinde yapılır.
GPU üzerinde çalıştırmak istiyorsanız device parametresini belirleyebilirsiniz (device, GPU indeksini belirtmelidir).
Faiss hakkında daha fazla bilgiyi burada bulabilirsiniz:
- dizge fabrikası için
Örnek:
>>> 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'> )
Parametreler
- external_arrays (
np.array) — Dizin için lib dışındaki dizileri kullanmak istiyorsanızexternal_arraysdeğerini ayarlayabilirsiniz. Verilencolumniçindeki diziler yerine, Faiss dizinini oluşturmak içinexternal_arrayskullanılacaktır. - index_name (
str) — Dizininindex_name/kimliği. Bu, get_nearest_examples() veya search() çağrılırken kullanılanindex_name'tür. - device (İsteğe bağlı
Union[int, List[int]], optional) — Pozitif bir tam sayıysa, kullanılacak GPU'nun dizinidir. Negatif bir tam sayıysa, tüm GPU'lar kullanılır. Pozitif tam sayılardan oluşan bir liste geçirilirse, yalnızca bu GPU'larda çalıştırılır. Varsayılan olarak CPU kullanılır. - string_factory (
str, isteğe bağlı) — Bu, Faiss'in index fabrikasına index oluşturmak için iletilir. Varsayılan index sınıfıIndexFlat'tür. - metric_type (
int, isteğe bağlı) — Metrik türü. Ör:faiss.faiss.METRIC_INNER_PRODUCTveyafaiss.METRIC_L2. - custom_index (
faiss.Index, isteğe bağlı) — Zaten ihtiyaçlarınıza göre örneklenmiş ve yapılandırılmış özel Faiss indeksi. - batch_size (
int, isteğe bağlı) — FaissIndex'e vektörler eklenirken kullanılacak parti boyutu. Varsayılan değer 1000'dir.2.4.0 sürümünde eklendi
- train_size (
int, isteğe bağlı) — Dizin için bir eğitim adımı gerekiyorsa, dizini eğitmek için kullanılacak vektör sayısını belirtir. - faiss_verbose (
bool, varsayılan olarak False) — Faiss dizininin ayrıntı düzeyini etkinleştirir. - dtype (
numpy.dtype) — Dizinlenen numpy dizilerinin dtype'ı. Varsayılan değer np.float32'dir.
Hızlı geri getirme için Faiss kullanarak yoğun bir indeks ekleyin.
İndeks, external_arrays vektörleri kullanılarak oluşturulur.
GPU üzerinde çalıştırmak istiyorsanız device parametresini belirleyebilirsiniz (device, GPU indeksinin kendisi olmalıdır).
Faiss hakkında daha fazla bilgiyi burada bulabilirsiniz:
- dizge fabrikası için
save_faiss_index
< source >( index_name: strfile: typing.Union[str, pathlib.PurePath]storage_options: typing.Optional[dict] = None )
Parametreler
- index_name (
str) — İndeksin index_name/belirleyicisi. Bu,.get_nearestveya.searchçağrılarında kullanılan index_name'dir. - file (
str) — Diskteki veya uzak URI'deki (ör."s3://my-bucket/index.faiss") seri hale getirilmiş faiss dizininin yolu. - storage_options (
dict, isteğe bağlı) — Varsa, dosya sistemi arka ucuna iletilecek anahtar/değer çiftleri.2.11.0 sürümünde eklendi
Bir FaissIndex'i diske kaydedin.
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 )
Parametreler
- index_name (
str) — İndeksin index_name/kimliği. Bu,.get_nearestveya.searchçağrılarında kullanılan index_name'dir. - file (
str) — Diskteki veya uzak URI'deki (ör."s3://my-bucket/index.faiss") seri hale getirilmiş faiss dizininin yolu. - device (İsteğe bağlı
Union[int, List[int]]) — Pozitif bir tam sayıysa, kullanılacak GPU'nun dizinidir. Negatif bir tam sayıysa, tüm GPU'lar kullanılır. Pozitif tam sayılardan oluşan bir liste geçirilirse, yalnızca bu GPU'larda çalıştırılır. Varsayılan olarak CPU kullanılır. - storage_options (
dict, isteğe bağlı) — Varsa, dosya sistemi arka ucuna iletilecek anahtar/değer çiftleri.2.11.0 sürümünde eklendi
Bir FaissIndex'i diskten yükleyin.
Ek yapılandırmalar yapmak istiyorsanız, .get_index(index_name).faiss_index ifadesiyle faiss index nesnesine erişebilir ve onu ihtiyaçlarınıza göre şekillendirebilirsiniz.
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 )
Parametreler
- column (
str) — Dizin eklemek için belgelerin sütunu. - index_name (
str, isteğe bağlı) — Dizininindex_name/kimliği. Bu, get_nearest_examples() veya search() çağrılarında kullanılan dizin adını belirtir. Varsayılan olarakcolumnile eşleşir. - host (
str, isteğe bağlı, varsayılanlocalhost) — ElasticSearch'in çalıştığı konak. - port (
str, optional, defaults to9200) — Port of where ElasticSearch is running. - es_client (
elasticsearch.Elasticsearch, isteğe bağlı) — host ve portNoneise indeks oluşturmak için kullanılan elasticsearch istemcisi. - es_index_name (
str, isteğe bağlı) — Dizin oluşturmak için kullanılan elasticsearch dizin adı. - es_index_config (
dict, isteğe bağlı) — elasticsearch dizininin yapılandırması. Varsayılan yapılandırma:
Hızlı geri getirme için ElasticSearch kullanarak bir metin indeksi ekleyin. Bu işlem yerinde (in-place) yapılır.
Örnek:
>>> 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 )
Parametreler
- index_name (
str) — Dizininindex_name/kimliği. Bu,get_nearestveyasearchçağrılırken kullanılan dizin adıdır. - es_index_name (
str) — Yüklenecek elasticsearch dizininin adı. - host (
str, isteğe bağlı, varsayılanlocalhost) — ElasticSearch'in çalıştığı konak. - port (
str, optional, defaults to9200) — Port of where ElasticSearch is running. - es_client (
elasticsearch.Elasticsearch, isteğe bağlı) — host ve portNoneise indeks oluşturmak için kullanılan elasticsearch istemcisi. - es_index_config (
dict, isteğe bağlı) — elasticsearch dizininin yapılandırması. Varsayılan yapılandırma:
Hızlı geri getirme için ElasticSearch kullanarak mevcut bir metin dizini yükleyin.
Tüm bağlı indekslerin colindex_nameumns/kimliklerini listeleyin.
Tüm bağlı indekslerin index_name/kimliklerini listeler.
drop_index
< source >( index_name: str )
Belirtilen sütunla indeksi kaldırın.
ara
< source >( index_name: strquery: typing.Union[str, <built-in function array>]k: int = 10**kwargs ) → (scores, indices)
Parametreler
- index_name (
str) — Dizinin adı/kimlik bilgisi. - query (
Union[str, np.ndarray]) —index_namebir metin indeksi ise sorgu bir dize olarak,index_namebir vektör indeksi ise bir numpy dizisi olarak. - k (
int) — Alınacak örnek sayısı.
Dönüş değeri
(scores, indices)
Şu şekilde bir (scores, indices) demeti:
- scores (
List[List[float]): alınan örneklerin FAISS (varsayılan olarakIndexFlatL2) veya ElasticSearch'ten gelen arama puanları - indices (
List[List[int]]): alınan örneklerin indeksleri
Veri setinde sorguya en yakın örnek indekslerini bulun.
search_batch
< source >( index_name: strqueries: typing.Union[list[str], <built-in function array>]k: int = 10**kwargs ) → (total_scores, total_indices)
Parametreler
- index_name (
str) — Dizininindex_name/kimliği. - queries (
Union[List[str], np.ndarray]) —index_namebir metin indeksi ise sorguların bir dize listesi olarak,index_namebir vektör indeksi ise bir numpy dizisi olarak verilmesi. - k (
int) — Her sorgu için alınacak örnek sayısı.
Dönüş değeri
(total_scores, total_indices)
Şu şekilde bir (total_scores, total_indices) demeti:
- total_scores (
List[List[float]): sorgu başına alınan örneklerin FAISS (varsayılan olarakIndexFlatL2) veya ElasticSearch'ten gelen arama puanları - total_indices (
List[List[int]]): sorgu başına alınan örneklerin indeksleri
Veri setinde sorguya en yakın örnek indekslerini bulun.
get_nearest_examples
< source >( index_name: strquery: typing.Union[str, <built-in function array>]k: int = 10**kwargs ) → (scores, examples)
Parametreler
- index_name (
str) — Dizinin index_name/belirleyicisi. - query (
Union[str, np.ndarray]) —index_namebir metin indeksi ise sorgu bir dize olarak,index_namebir vektör indeksi ise bir numpy dizisi olarak. - k (
int) — Alınacak örnek sayısı.
Dönüş değeri
(scores, examples)
Şu şekilde bir (scores, examples) demeti:
- scores (
List[float]): alınan örneklerin FAISS (varsayılan olarakIndexFlatL2) veya ElasticSearch'ten gelen arama puanları - örnekler (
dict): alınan örnekler
Veri setindeki sorguya en yakın örnekleri bulun.
get_nearest_examples_batch
< source >( index_name: strqueries: typing.Union[list[str], <built-in function array>]k: int = 10**kwargs ) → (total_scores, total_examples)
Parametreler
- index_name (
str) — Dizininindex_name/kimliği. - queries (
Union[List[str], np.ndarray]) —index_namebir metin indeksi ise sorguların bir dize listesi olarak,index_namebir vektör indeksi ise bir numpy dizisi olarak verilmesi. - k (
int) — Her sorgu için alınacak örnek sayısı.
Dönüş değeri
(total_scores, total_examples)
Şu şekilde bir (total_scores, total_examples) demeti:
- total_scores (
List[List[float]): sorgu başına alınan örneklerin FAISS (varsayılan olarakIndexFlatL2) veya ElasticSearch'ten gelen arama puanları - total_examples (
List[dict]): sorgu başına alınan örnekler
Veri setindeki sorguya en yakın örnekleri bulun.
Veri setindeki tüm meta verileri içeren DatasetInfo nesnesi.
Adlandırılmış bir veri seti bölmesine karşılık gelen NamedSplit nesnesi.
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 )
Parametreler
- path_or_paths (
path-likeveyapath-likelistesi) — CSV dosya(lar)ının yolu(ları). - split (NamedSplit, opsiyonel) — Veri setine atanacak bölme adı.
- features (Features, isteğe bağlı) — Veri seti özellikleri.
- cache_dir (
str, isteğe bağlı, varsayılan"~/.cache/huggingface/datasets") — Verilerin önbelleğe alınacağı dizin. - keep_in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı. - num_proc (
int, isteğe bağlı, varsayılan olarakNone) — Veri setini indirirken ve yerel olarak oluştururken kullanılacak süreç sayısı. Bu, veri seti birden fazla dosyadan oluşuyorsa işe yarar. Çoklu işleme (multiprocessing) varsayılan olarak devre dışıdır.2.8.0 sürümünde eklendi
- **kwargs (ek anahtar kelime argümanları) —
pandas.read_csvfonksiyonuna iletilecek anahtar kelime argümanları.
CSV dosyası/dosyalarından Dataset oluşturun.
CSV dosyalarını okuyun, verileri diskte Arrow biçiminde önbelleğe alın ve diskteki belleğe eşlenmiş Arrow verisinden Dataset'i döndürün.
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 )
Parametreler
- path_or_paths (
path-likeveyapath-likelistesi) — JSON veya JSON Lines dosyalarının yolları. - split (NamedSplit, opsiyonel) — Veri setine atanacak bölme adı.
- features (Features, isteğe bağlı) — Veri seti özellikleri.
- cache_dir (
str, isteğe bağlı, varsayılan"~/.cache/huggingface/datasets") — Verilerin önbelleğe alınacağı dizin. - keep_in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı. - field (
str, isteğe bağlı) — Veri setinin bulunduğu JSON dosyasındaki alan adı. - num_proc (
int, isteğe bağlı varsayılan olarakNone) — Veri setini indirirken ve yerel olarak oluştururken kullanılan süreç sayısı. Bu, veri seti birden fazla dosyadan oluşuyorsa işe yarar. Çok işlemcili (multiprocessing) çalışma varsayılan olarak devre dışıdır.2.8.0 sürümünde eklendi
- **kwargs (ek anahtar kelime argümanları) —
JsonConfig'e iletilecek anahtar kelime argümanları.
JSON veya JSON Lines dosyalarından Dataset oluşturun.
JSON dosyalarını okuyun, verileri diskte Arrow biçiminde önbelleğe alın ve diskteki belleğe eşlenmiş Arrow verilerinden Dataset'i döndürün.
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 )
Parametreler
- path_or_paths (
path-likeveyapath-likelistesi) — Parquet dosya(lar)ının yolu(ları). - split (
NamedSplit, isteğe bağlı) — Veri setine atanacak bölme adı. - features (
Features, isteğe bağlı) — Veri seti özellikleri. - cache_dir (
str, isteğe bağlı, varsayılan"~/.cache/huggingface/datasets") — Verilerin önbelleğe alınacağı dizin. - keep_in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı. - columns (
List[str], isteğe bağlı) —Nonedeğilse, dosyadan yalnızca bu sütunlar okunur. Bir sütun adı, iç içe geçmiş bir alanın öneki olabilir; örneğin ‘a’, ‘a.b’, ‘a.c’ ve ‘a.d.e’ alanlarını seçer. - num_proc (
int, isteğe bağlı, varsayılan olarakNone) — Veri setini indirirken ve yerel olarak oluştururken kullanılacak süreç sayısı. Bu, veri seti birden fazla dosyadan oluşuyorsa işe yarar. Çoklu işleme (multiprocessing) varsayılan olarak devre dışıdır.2.8.0 sürümünde eklendi
- filters (
Union[pyarrow.dataset.Expression, list[tuple], list[list[tuple]]], isteğe bağlı) — Yalnızca filtreye uyan satırları döndürür. Mümkünse, veri kaynağında bulunan bölüntü bilgisi veya iç meta verilerden (ör. Parquet istatistikleri) yararlanmak için öngörülen ifade aşağıya itilir (push down). Değilse, yüklenen RecordBatch'ler verilmelerinden önce filtrelenir. - fragment_scan_options (
pyarrow.dataset.ParquetFragmentScanOptions, isteğe bağlı) — Parquet parçacıkları için taramaya özgü seçenekler. Bu, özellikle tamponlama ve önbellekleme yapılandırması için kullanışlıdır.4.2.0 sürümünde eklendi
- on_bad_files (
Literal["error", "warn", "skip"], isteğe bağlı, varsayılan olarak “error”) — Geçersiz bir dosya (okunamayan bir dosya) ile karşılaşıldığında ne yapılacağını belirtir. İzin verilen değerler şunlardır:- ‘error’, hatalı bir dosya karşılaşıldığında bir Exception fırlatır.
- ‘warn’, kötü bir dosya karşılaşıldığında bir uyarı yükseltir ve o dosyayı atlar.
- ‘skip’, karşılaşılan hatalı dosyaları uyarı veya hata yükseltmeden atlar.
4.2.0 sürümünde eklendi
- **kwargs (ek anahtar kelime argümanları) —
ParquetConfig'e iletilecek anahtar kelime argümanları.
Parquet dosyası/dosyalarından Dataset oluşturun.
Parquet dosyalarını okuyun, verileri diskte Arrow biçiminde önbelleğe alın ve diskteki belleğe eşlenmiş Arrow verilerinden Dataset'i döndürün.
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 )
Parametreler
- path_or_paths (
path-likeveyapath-likelistesi) — Metin dosyası/dosyalarının yolu/yolları. - split (
NamedSplit, isteğe bağlı) — Veri setine atanacak bölme adı. - features (
Features, isteğe bağlı) — Veri seti özellikleri. - cache_dir (
str, isteğe bağlı, varsayılan"~/.cache/huggingface/datasets") — Verilerin önbelleğe alınacağı dizin. - keep_in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı. - num_proc (
int, isteğe bağlı, varsayılan olarakNone) — Veri setini indirirken ve yerel olarak oluştururken kullanılacak süreç sayısı. Bu, veri seti birden fazla dosyadan oluşuyorsa işe yarar. Çoklu işleme (multiprocessing) varsayılan olarak devre dışıdır.2.8.0 sürümünde eklendi
- keep_linebreaks — (
bool, varsayılan False): Satır sonlarının korunup korunmayacağı. - sample_by (
Literal["line", "paragraph", "document"], varsayılan “line”) — Verinin satır, paragraf veya belge bazında yüklenip yüklenmeyeceğini belirtir. Varsayılan olarak veri setindeki bir satır = bir satır demektir. - **kwargs (ek anahtar kelime argümanları) —
TextConfig'e iletilecek anahtar kelime argümanları.
Metin dosyası/dosyalarından Dataset oluşturun.
Metin dosyalarını okuyun, verileri diskte Arrow biçiminde önbelleğe alın ve diskteki belleğe eşlenmiş Arrow verisinden Dataset'i döndürün.
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 )
Parametreler
- sql (
strveyasqlalchemy.sql.Selectable) — Çalıştırılacak SQL sorgusu veya bir tablo adı. - con (
strveyasqlite3.Connectionveyasqlalchemy.engine.Connectionveyasqlalchemy.engine.Connection) — Bir veritabanı bağlantısı oluşturmak için kullanılan URI dizesi veya bir SQLite3/SQLAlchemy bağlantı nesnesi. - features (Features, isteğe bağlı) — Veri seti özellikleri.
- cache_dir (
str, isteğe bağlı, varsayılan"~/.cache/huggingface/datasets") — Verilerin önbelleğe alınacağı dizin. - keep_in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı. - **kwargs (ek anahtar kelime argümanları) —
SqlConfig'ye iletilecek anahtar kelime argümanları.
SQL sorgusu veya veritabanı tablosundan Dataset oluşturun.
SQL veritabanını sorgulayın, verileri diskte Arrow biçiminde önbelleğe alın ve diskteki belleğe eşlenmiş Arrow verilerinden Dataset'i döndürün.
Örnek:
>>> # 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")Dönen veri seti, yalnızca
conbir URI dizgesi olarak belirtildiyse önbelleğe alınabilir.
align_labels_with_mapping
< source >( label2id: dictlabel_column: str )
Veri setinin etiket kimliği ve etiket adı eşlemesini, girdi label2id eşlemesiyle eşleşecek şekilde hizalayın.
Bu, bir modelin tahmin edilen etiketlerinin veri setiyle hizalı olduğundan emin olmak istediğinizde kullanışlıdır.
Hizalama, küçük harfli etiket adları kullanılarak yapılır.
Örnek:
>>> # 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 )
Parametreler
- dsets (
List[datasets.Dataset]veyaList[datasets.IterableDataset]) — Birleştirilecek Datasets listesi. - info (
DatasetInfo, isteğe bağlı) — Tanım, alıntı vb. gibi veri seti bilgileri. - split (
NamedSplit, isteğe bağlı) — Veri seti bölmesinin adı. - axis (
{0, 1}, varsayılan olarak0) — birleştirilecek eksen, burada0satırlar boyunca (dikey) ve1sütunlar boyunca (yatay) anlamına gelir.1.6.0 sürümünde eklendi
Birden fazla veri setini (kaynağı) tek bir veri setine birleştirin.
Dikey birleştirmek için (varsayılan) axis=0, yatay birleştirmek için axis=1 kullanın.
İteratif veri kümeleri için not:
- axis=0 ise, sonuç veri setinin
num_shardsdeğeri, her bir veri setininnum_shardsdeğerlerinin toplamıdır. - if axis=1, veri hizasızlığını önlemek için sonuçlanan veri setinin bir (1) parçası (shard) vardır.
- Veri kümeleri datasets.distributed.split_dataset_by_node() ile bölündüyse, hepsinin aynı şekilde bölünmesi gerekir ve sonuçta oluşan veri kümesi bu bölünmeyi korur.
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
Parametreler
- datasets (
List[Dataset]veyaList[IterableDataset]) — Birleştirilecek veri kümelerinin listesi. - probabilities (
List[float], isteğe bağlı, varsayılanNone) — Belirtilirse, yeni veri seti, bu olasılıklara göre örneklerin bir kaynaktan bir kez örneklenmesiyle oluşturulur. - seed (
int, isteğe bağlı, varsayılanNone) — Her örnek için bir kaynak seçmek için kullanılan rastgele tohum. - info (DatasetInfo, isteğe bağlı) —
Açıklama, atıf vb. gibi veri seti bilgileri.
2.4.0 sürümünde eklendi
- split (NamedSplit, isteğe bağlı) —
Veri seti bölmesinin adı.
2.4.0 sürümünde eklendi
- stopping_strategy (
str, varsayılan olarakfirst_exhausted) — şu anda üç strateji önerilmektedir:first_exhausted,all_exhaustedveall_exhausted_without_replacement. Varsayılan olarakfirst_exhaustedalt örneklem alma (undersampling) stratejisidir, yani veri seti inşası, bir veri setindeki örnekler tükendiği anda durdurulur. Stratejiall_exhausted, ise aşırı örneklem alma (oversampling) stratejisi kullanılır, yani veri seti inşası, her veri setindeki her örnek en az bir kez eklendiği anda durdurulur. Stratejiall_exhausted_without_replacementise her veri setindeki her örneğin yalnızca bir kez örneklenmesini sağlarız. Stratejiall_exhausted, olduğunda, iç içe geçmiş (interleaved) veri seti boyutu çok büyük hale gelebilir:- olasılıklar olmadan, sonuçlanan veri seti
max_length_datasets*nb_datasetörnek içerecektir. - belirtilen olasılıklarla, bazı veri kümelerinin ziyaret olasılığı gerçekten düşükse, sonuçlanan veri kümesi daha fazla örnek içerecektir.
- olasılıklar olmadan, sonuçlanan veri seti
Dönüş değeri
Dataset veya IterableDataset
Dönüş tipi, datasets parametresindeki girdiye bağlıdır. Girdi Dataset listesi ise Dataset, IterableDataset listesi ise IterableDataset.
Birden fazla veri setini (kaynağı) tek bir veri setinde iç içe geçirin. Yeni veri seti, örnekleri almak için kaynaklar arasında dönüşümlü olarak ilerleyerek oluşturulur.
Bu fonksiyonu Dataset nesnelerinin bir listesinde veya IterableDataset nesnelerinin bir listesinde kullanabilirsiniz.
probabilitiesNoneise (varsayılan), yeni veri seti örnekleri almak için kaynaklar arasında döngüsel geçiş yapılarak oluşturulur.probabilitiesNonedeğilse, yeni veri seti, verilen olasılıklara göre bir kez bir örnek alacak şekilde rastgele bir kaynaktan örnekler alınarak oluşturulur.
Sonuçlanan veri seti, oversampling True olmadıkça, kaynak veri setlerinden biri örneklerini tükettiğinde sona erer; bu durumda ise sonuçlanan veri seti, tüm veri setleri en az bir kez örneklerini tükettiğinde sona erer.
İteratif veri kümeleri için not:
- Oluşturulan veri setinin
num_shardsdeğeri, iyi bir paralellik sağlamak için her veri setininnum_shardsdeğerinin minimumudur. Veri setlerinizden bazılarının shard sayısı çok düşükse, IterableDataset.reshard() kullanabilirsiniz. - Dağıtık bir kurulumda veya PyTorch DataLoader işçilerinde, durdurma stratejisi işlem başına uygulanır. Bu nedenle, shard edilmiş bir iterable veri kümesinde “first_exhausted” stratejisi, toplamda daha az örnek üretebilir (işçi başına alt veri kümesi başına en fazla 1 eksik örnek).
Örnek:
Düzenli veri kümeleri için (harita tarzı):
>>> 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
Parametreler
- dataset (Dataset veya IterableDataset) — Düğüm bazında bölünecek veri seti.
- rank (
int) — Mevcut düğümün rütbesi. - world_size (
int) — Toplam düğüm sayısı. - strategy (
str, varsayılan"auto") — İterlenebilir bir veri setinin nasıl bölüneceğini belirtir."auto","shards"veya"examples"değerlerinden biri olmalıdır. Harita tarzı veri setleri yalnızca"auto"değerini destekler.
Dönüş değeri
Dataset veya IterableDataset
rank sırasındaki düğümde kullanılacak veri seti.
world_size boyutundaki bir düğüm havuzunda, rank sırasındaki düğüm için bir veri seti bölün.
Harita tarzı veri kümeleri için:
Her düğüme bir veri parçası atanır, örneğin rank 0'a veri setinin ilk parçası verilir. Veri yükleme verimliliğini en üst düzeye çıkarmak için, mümkünse parçalar disk üzerindeki ardışık verilerden oluşur.
Yinelenebilir veri kümeleri için:
Bölme strategy "auto", "shards" veya "examples" olabilir:
"shards": shard'ler düğümler arasında eşit olarak dağıtılır"examples": her düğüm,world_sizeiçindeki örneklerden 1 tanesini saklar, diğer örnekleri atlar"auto"(varsayılan): veri setinin shard sayısıworld_size'in bir çarpanıysa (yanidataset.num_shards % world_size == 0ise)"shards"kullanılır; bu en optimize seçenektir. Aksi halde"examples"kullanılır.
Dağıtık bir yapılandırma içinde iteratif veri setinizi karıştırıyorsanız, her düğümün hangi shard'ları atlaması gerektiğini bilmesi için her düğümde aynı karıştırılmış shard listesinin kullanılmasını sağlamak üzere IterableDataset.shuffle() içinde sabit bir
seeddeğerini ayarladığınızdan emin olun.
Bir veri kümesine dönüştürmeler uygulandığında, veriler önbellek dosyalarında saklanır. Önbellekleme mekanizması, daha önce hesaplanmışsa mevcut bir önbellek dosyasının yeniden yüklenmesine olanak tanır.
Veri kümesinin yeniden yüklenmesi, önbellek dosyalarının her dönüştürme işleminden sonra güncellenen veri kümesi parmak iziyle adlandırılması nedeniyle mümkündür.
Devre dışı bırakılırsa, kütüphane veri kümelerine dönüştürme uygulamaları yaparken önbelleğe alınmış veri kümesi dosyalarını yeniden yüklemeyecektir. Daha kesin bir ifadeyle, önbellekleme devre dışı bırakılırsa:
- cache dosyaları her zaman yeniden oluşturulur
- cache dosyaları, oturum kapatıldığında silinen geçici bir dizine yazılır
- cache dosyaları, veri kümesi parmak izi yerine rastgele bir hash kullanılarak adlandırılır
- Dönüştürülmüş bir veri setini kaydetmek için save_to_disk() kullanın, aksi takdirde oturum kapatıldığında silinir
- caching, load_dataset() işlevini etkilemez. Bir veri setini baştan oluşturmak istiyorsanız load_dataset() içinde
download_modeparametresini kullanmalısınız.
Bir veri kümesine dönüştürmeler uygulandığında, veriler önbellek dosyalarında saklanır. Önbellekleme mekanizması, daha önce hesaplanmışsa mevcut bir önbellek dosyasının yeniden yüklenmesine olanak tanır.
Veri kümesinin yeniden yüklenmesi, önbellek dosyalarının her dönüştürme işleminden sonra güncellenen veri kümesi parmak iziyle adlandırılması nedeniyle mümkündür.
Devre dışı bırakılırsa, kütüphane veri kümelerine dönüştürme uygulamaları yaparken önbelleğe alınmış veri kümesi dosyalarını yeniden yüklemeyecektir. Daha kesin bir ifadeyle, önbellekleme devre dışı bırakılırsa:
- cache dosyaları her zaman yeniden oluşturulur
- cache dosyaları, oturum kapatıldığında silinen geçici bir dizine yazılır
- cache dosyaları, veri kümesi parmak izi yerine rastgele bir hash kullanılarak adlandırılır
- Dönüştürülmüş bir veri setini kaydetmek için save_to_disk() kullanın, aksi takdirde oturum kapatıldığında silinir
- caching, load_dataset() işlevini etkilemez. Bir veri setini baştan oluşturmak istiyorsanız load_dataset() içinde
download_modeparametresini kullanmalısınız.
Bir veri kümesine dönüştürmeler uygulandığında, veriler önbellek dosyalarında saklanır. Önbellekleme mekanizması, daha önce hesaplanmışsa mevcut bir önbellek dosyasının yeniden yüklenmesine olanak tanır.
Veri kümesinin yeniden yüklenmesi, önbellek dosyalarının her dönüştürme işleminden sonra güncellenen veri kümesi parmak iziyle adlandırılması nedeniyle mümkündür.
Devre dışı bırakılırsa, kütüphane veri kümelerine dönüştürme uygulamaları yaparken önbelleğe alınmış veri kümesi dosyalarını yeniden yüklemeyecektir. Daha kesin bir ifadeyle, önbellekleme devre dışı bırakılırsa:
- cache dosyaları her zaman yeniden oluşturulur
- cache dosyaları, oturum kapatıldığında silinen geçici bir dizine yazılır
- cache dosyaları, veri kümesi parmak izi yerine rastgele bir hash kullanılarak adlandırılır
- Dönüştürülmüş bir veri setini kaydetmek için save_to_disk() kullanın, aksi takdirde oturum kapatıldığında silinir
- caching, load_dataset() işlevini etkilemez. Bir veri setini baştan oluşturmak istiyorsanız load_dataset() içinde
download_modeparametresini kullanmalısınız.
sınıf datasets.Column
< source >( source: typing.Union[ForwardRef('Dataset'), ForwardRef('Column')]column_name: str )
Dataset'in belirli bir sütunu için bir iterable.
Örnek:
DatasetDict
Anahtarları bölme adları (örneğin ‘train’, ‘test’), değerleri ise Dataset nesneleri olan bir sözlük.
Tüm bölümleri tek seferde işlemek için map veya filter gibi veri seti dönüştürme yöntemlerine de sahiptir.
Veri seti dönüştürme yöntemlerini (map, filter, vb.) içeren bir sözlük (str: datasets.Dataset türünde dict)
Her bölünmeyi destekleyen Apache Arrow tabloları.
Her bölünmeyi destekleyen Apache Arrow tablosunu içeren önbellek dosyaları.
Örnek:
>>> 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'}]}Veri setinin her bölümündeki sütun sayısı.
Veri setinin her bölünmesindeki satır sayısı.
Veri setinin her bölüntüsündeki sütun adları.
Veri setinin her bölmesinin şekli (satır sayısı, sütun sayısı).
benzersiz
< source >( column: str ) → Dict[str, list]
Parametreler
- column (
str) — sütun adı (tüm sütun adlarını column_names ile listeleyin)
Dönüş değeri
Dict[str, list]
Verilen sütundaki benzersiz öğelerin sözlüğü.
Her bölme için bir sütundaki benzersiz öğelerin listesini döndürür.
Bu, düşük seviyeli arka uçta (backend) uygulanır ve bu nedenle çok hızlıdır.
Veri seti önbellek dizinindeki, şu anda kullanılan önbellek dosyası hariç olmak üzere tüm önbellek dosyalarını temizler. Bu komutu çalıştırırken, başka bir sürecin başka önbellek dosyalarını kullanmadığından emin olun.
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 )
Parametreler
- function (
callable) — aşağıdaki imzalardan biriyle:function(example: Dict[str, Any]) -> Dict[str, Any]ifbatched=Falseandwith_indices=Falsefunction(example: Dict[str, Any], indices: int) -> Dict[str, Any]ifbatched=Falseandwith_indices=Truefunction(batch: Dict[str, list]) -> Dict[str, list]ifbatched=Trueandwith_indices=Falsefunction(batch: Dict[str, list], indices: list[int]) -> Dict[str, list]ifbatched=Trueandwith_indices=True
Gelişmiş kullanım için, fonksiyon ayrıca
pyarrow.Tabledöndürebilir. Fonksiyon asenkron ise,mapfonksiyonunuzu paralel olarak çalıştırır. Ayrıca fonksiyonunuz hiçbir şey döndürmüyorsa (None),mapfonksiyonunuzu çalıştırır ve veri setini değiştirilmeden döndürür. Hiçbir fonksiyon sağlanmazsa, varsayılan olarak kimlik fonksiyonu kullanılır:lambda x: x. - with_indices (
bool, varsayılanFalse) —functioniçin örnek indeksleri sağlar. Bu durumdafunctionimzasınındef function(example, idx): ...olması gerektiğini unutmayın. - with_rank (
bool, varsayılanFalse) —functionparametresine işlem sırasını (process rank) iletir. Bu durumdafunctionimzasınındef function(example[, idx], rank): ...olması gerekir. - with_split (
bool, varsayılanFalse) —functioniçin süreç bölünmesini sağlar. Bu durumdafunctionimzasınındef function(example[, idx], split): ...olması gerekir. - input_columns (
[Union[str, list[str]]], isteğe bağlı, varsayılanNone) —functioniçine konumsal argümanlar olarak geçirilecek sütunlar.Noneise, biçimlendirilmiş tüm sütunlara eşleyen bir sözlük tek argüman olarak geçirilir. - batched (
bool, varsayılanFalse) —functionişlevine örnekler birimini sağlar. - batch_size (
int, isteğe bağlı, varsayılan1000) —batched=Trueisefunction'a her parti için sağlanan örnek sayısı,batch_size <= 0veyabatch_size == Noneise tüm veri setifunction'a tek bir parti olarak sağlanır. - drop_last_batch (
bool, varsayılanFalse) — batch_size'dan küçük olan son bir partinin, işlenmek yerine atılıp atılmayacağını belirtir. - remove_columns (
[Union[str, list[str]]], isteğe bağlı, varsayılanNone) — Eşleme işlemi sırasında seçilen sütunları kaldırır. Sütunlar, örneklerinfunctionçıktısıyla güncellenmesinden önce kaldırılır; yanifunction,remove_columnsiçindeki adlara sahip sütunlar ekliyorsa, bu sütunlar korunur. - keep_in_memory (
bool, varsayılanFalse) — Veri setini önbellek dosyasına yazmak yerine bellekte tutar. - load_from_cache_file (
Optional[bool], önbellekleme etkinse varsayılan olarakTrue) —functionişlevinden gelen mevcut hesaplamayı depolayan bir önbellek dosyası belirlenebiliyorsa, yeniden hesaplamak yerine onu kullanın. - cache_file_names (
[Dict[str, str]], isteğe bağlı, varsayılanNone) — Önbellek dosyası için bir yol adı belirtin. Hesaplama sonuçlarını, otomatik olarak oluşturulan önbellek dosyası adı yerine depolamak için kullanılır. Veri kümesi sözlüğündeki her veri kümesi için bircache_file_namebelirtmeniz gerekir. - writer_batch_size (
int, varsayılan1000) — Önbellek dosyası yazıcısı için yazma işlemi başına satır sayısı. Bu değer, işleme sırasında bellek kullanımı ile işleme hızı arasında iyi bir denge sağlar. Daha yüksek bir değer, işlemenin daha az arama yapmasını sağlar; daha düşük bir değer isemapçalışırken daha az geçici bellek tüketir. - features (
[datasets.Features], isteğe bağlı, varsayılanNone) — Otomatik olarak oluşturulan yerine, önbellek dosyasını depolamak için belirli bir Features kullanın. - disable_nullable (
bool, varsayılanFalse) — Tabloda null değerlere izin verilmez. - fn_kwargs (
Dict, isteğe bağlı, varsayılanNone) —functionfonksiyonuna iletilecek anahtar kelime argümanları - num_proc (
int, isteğe bağlı, varsayılan olarakNone) — Çok işlemcili (multiprocessing) işlemlerde kullanılacak süreç sayısı. None veya 0 ise çok işlemcili işlem kullanılmaz ve işlem ana süreçte çalışır. 1'den büyükse, verilerin paralel olarak işlenmesi için bir veya birden fazla işçi süreci kullanılır. Not: Çok işlemcili işlemin doğru çalışması için map() fonksiyonuna geçirilen fonksiyonun picklable olması gerekir (yani, bir modülün üst seviyesinde tanımlanmış fonksiyonları, başka bir fonksiyonun veya sınıfın içinde tanımlanmış olanlara tercih edin).Noneveya0ise çok işlemci kullanılmaz ve işlem ana süreçte çalışır.1'den büyükse, verileri paralel olarak işlemek için bir veya birden çok işçi süreci kullanılır. Not: Çoklu işleme (multiprocessing) doğru çalışması içinmap()'e geçirilen fonksiyon picklable olmalıdır (yani, bir modülün üst seviyesinde tanımlanmış fonksiyonları tercih edin, başka bir fonksiyonun veya sınıfın içinde tanımlanmış olanları değil).
- desc (
str, isteğe bağlı, varsayılanNone) — Örnekler eşleştirilirken ilerleme çubuğuyla birlikte görüntülenecek anlamlı açıklama. - try_original_type (
Optional[bool], varsayılanTrue) — Orijinal sütunların türlerini korumaya çalışır (ör. int32 -> int32). Her zaman yeni türler çıkarılmasını istiyorsanız False olarak ayarlayın. - on_mixed_types (
Literal["use_json"], isteğe bağlı, varsayılan olarakNone) — “use_json” değeri verilirse, karışık tipli alanlar için Json() tipi kullanılır; yani önceden tanımlanmış bir şema içermeyen, yapılandırılmamış verileri barındıran alanlar. Bu durumda karışık tipli bir alan Json() olarak ayarlanır.Bu, örneğin, dizeler/tam sayılar/ondalıklı sayılar karışımı listelerin veya keyfi değer türlerine sahip sözlüklerin yüklenmesine olanak tanır.
4.7.0 sürümünde eklendi
Tablodaki tüm örneklerin (bireysel olarak veya toplu halde) üzerine bir fonksiyon uygulayın ve tabloyu güncelleyin. Fonksiyonunuz zaten var olan bir sütun döndürürse, bu sütun üzerine yazar. Dönüşüm, veri seti sözlüğündeki tüm veri setlerine uygulanır.
Fonksiyonun toplu (batch) olarak mı yoksa tekil olarak mı çalışacağı, batched parametresi ile belirtilebilir:
- batched
Falseise, fonksiyon 1 örnek alır ve 1 örnek döndürmelidir. Bir örnek, bir sözlüktür, örn.{"text": "Hello there !"}. - batched
Truevebatch_size1 ise, fonksiyon girdi olarak 1 örnekten oluşan bir batch alır ve 1 veya daha fazla örnekten oluşan bir batch döndürebilir. Bir batch bir sözlüktür, örneğin 1 örnekten oluşan bir batch{"text": ["Hello there !"]}şeklindedir. Truevebatch_sizen > 1ise, fonksiyon girdi olaraknörnekten oluşan bir parti alır venörnekten oluşan bir parti ya da herhangi bir sayıda örneğe sahip bir parti döndürebilir. Son partidenörnekten az örnek bulunabileceğini unutmayın. Bir parti bir sözlüktür, örneğinnörnekten oluşan bir parti{"text": ["Hello there !"] * n}şeklindedir.
Eğer fonksiyon asenkron ise, map fonksiyonunuzu paralel olarak çalıştırır ve en fazla bin eşzamanlı çağrı yapar.
Aynı anda çalışabilecek maksimum işlem sayısını belirlemek istiyorsanız, fonksiyonunuzda asyncio.Semaphore kullanmanız önerilir.
Örnek:
>>> 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)filtre
< 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 )
Parametreler
- function (
Callable) — Aşağıdaki imzalardan birine sahip Callable:function(example: Dict[str, Any]) -> boolifbatched=Falseandwith_indices=Falseandwith_rank=Falsefunction(example: Dict[str, Any], *extra_args) -> boolbatched=Falsevewith_indices=Trueve/veyawith_rank=Trueise (her biri için bir ek argüman)function(batch: Dict[str, list]) -> list[bool],batched=Truevewith_indices=Falsevewith_rank=Falseisebatched=Truevewith_indices=Trueve/veyawith_rank=Trueisefunction(batch: Dict[str, list], *extra_args) -> list[bool](her biri için bir ek argüman)
Hiçbir fonksiyon sağlanmazsa, varsayılan olarak her zaman
Truedönen bir fonksiyon kullanılır:lambda x: True. - with_indices (
bool, varsayılanFalse) —functioniçin örnek indeksleri sağlar. Bu durumdafunctionimzasınındef function(example, idx[, rank]): ...olması gerektiğine dikkat edin. - with_rank (
bool, varsayılanFalse) —functionparametresine işlem sırasını (process rank) iletir. Bu durumdafunctionimzasınındef function(example[, idx], rank): ...olması gerekir. - input_columns (
[Union[str, list[str]]], isteğe bağlı, varsayılanNone) —functioniçine konumsal argümanlar olarak geçirilecek sütunlar.Noneise, biçimlendirilmiş tüm sütunlara eşleyen bir sözlük tek argüman olarak geçirilir. - batched (
bool, varsayılanFalse) —functionişlevine örnekler birimini sağlar. - batch_size (
int, isteğe bağlı, varsayılan1000) —batched=Trueisefunction'a her parti için sağlanan örnek sayısıbatch_size <= 0veyabatch_size == Noneise tüm veri seti,function'a tek bir parti olarak sağlanır. - keep_in_memory (
bool, varsayılanFalse) — Veri setini önbellek dosyasına yazmak yerine bellekte tutar. - load_from_cache_file (
Optional[bool], önbellekleme etkinse varsayılan olarakTrue) —functionişlevinden gelen mevcut hesaplamayı depolayan bir önbellek dosyası belirlenebiliyorsa, yeniden hesaplamak yerine onu kullanın. - cache_file_names (
[Dict[str, str]], isteğe bağlı, varsayılanNone) — Önbellek dosyası için bir yol adı belirtin. Hesaplama sonuçlarını, otomatik olarak oluşturulan önbellek dosyası adı yerine depolamak için kullanılır. Veri kümesi sözlüğündeki her veri kümesi için bircache_file_namebelirtmeniz gerekir. - writer_batch_size (
int, varsayılan1000) — Önbellek dosyası yazıcısı için yazma işlemi başına satır sayısı. Bu değer, işleme sırasında bellek kullanımı ile işleme hızı arasında iyi bir denge sağlar. Daha yüksek bir değer, işlemenin daha az arama yapmasını sağlar; daha düşük bir değer isemapçalışırken daha az geçici bellek tüketir. - fn_kwargs (
Dict, isteğe bağlı, varsayılanNone) —functionfonksiyonuna iletilecek anahtar kelime argümanları - num_proc (
int, isteğe bağlı, varsayılan olarakNone) — Çok işlemcili (multiprocessing) işlemlerde kullanılacak süreç sayısı. None veya 0 ise çok işlemcili işlem kullanılmaz ve işlem ana süreçte çalışır. 1'den büyükse, verilerin paralel olarak işlenmesi için bir veya birden fazla işçi süreci kullanılır. Not: Çok işlemcili işlemin doğru çalışması için map() fonksiyonuna geçirilen fonksiyonun picklable olması gerekir (yani, bir modülün üst seviyesinde tanımlanmış fonksiyonları, başka bir fonksiyonun veya sınıfın içinde tanımlanmış olanlara tercih edin).Noneveya0ise çok işlemci kullanılmaz ve işlem ana süreçte çalışır.1'den büyükse, verileri paralel olarak işlemek için bir veya birden çok işçi süreci kullanılır. Not: Çoklu işleme (multiprocessing) doğru çalışması içinmap()'e geçirilen fonksiyon picklable olmalıdır (yani, bir modülün üst seviyesinde tanımlanmış fonksiyonları tercih edin, başka bir fonksiyonun veya sınıfın içinde tanımlanmış olanları değil).
- desc (
str, isteğe bağlı, varsayılanNone) — Örnekler filtrelenirken ilerleme çubuğuyla birlikte görüntülenecek anlamlı açıklama.
Tablodaki tüm öğelere partiler halinde bir filtre fonksiyonu uygulayın ve veri setinin yalnızca filtre fonksiyonuna uygun örnekleri içerecek şekilde tabloyu güncelleyin. Dönüşüm, veri seti sözlüğündeki tüm veri setlerine uygulanır.
Örnek:
>>> 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
})
})sırala
< 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 )
Parametreler
- column_names (
Union[str, Sequence[str]]) — Sıralama için sütun adı(ları). - reverse (
Union[bool, Sequence[bool]], varsayılanFalse) —Trueise sıralama artan yerine azalan düzende yapılır. Tek bir bool değeri verilirse, bu değer tüm sütun adlarının sıralanmasına uygulanır. Aksi takdirde, column_names ile aynı uzunlukta ve sıralamada bir bool listesi sağlanmalıdır. - null_placement (
str, varsayılanat_end) —Nonedeğerleriniat_startveyafirstise başa,at_endveyalastise sona yerleştirir - keep_in_memory (
bool, varsayılanFalse) — Sıralanmış dizinleri bir önbellek dosyasına yazmak yerine bellekte tutar. - load_from_cache_file (
Optional[bool], önbellekleme etkinse varsayılan olarakTrue) — Sıralı dizinleri depolayan bir önbellek dosyası belirlenebiliyorsa, yeniden hesaplamak yerine onu kullanın. - indices_cache_file_names (
[Dict[str, str]], isteğe bağlı, varsayılanNone) — Önbellek dosyası için bir yol adı belirtin. Otomatik oluşturulan önbellek dosyası adı yerine indeks eşlemesini saklamak için kullanılır. Veri kümesi sözlüğündeki her veri kümesi için bircache_file_namebelirtmeniz gerekir. - writer_batch_size (
int, varsayılan1000) — Önbellek dosyası yazıcısı için yazma işlemi başına satır sayısı. Daha yüksek değer daha küçük önbellek dosyaları verir, daha düşük değer daha az geçici bellek kullanır.
Tek veya birden fazla sütuna göre sıralanmış yeni bir veri seti oluşturun.
Örnek:
>>> 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]karıştır
< 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 )
Parametreler
- seeds (
Dict[str, int]veyaint, isteğe bağlı) —generator=Noneise varsayılan BitGenerator'ı başlatmak için bir tohum.Noneise, taze ve öngörülemez entropi işletim sisteminden çekilir.intveyaarray_like[ints]geçirilirse, başlangıç BitGenerator durumunu türetmek için SeedSequence'e iletilir. Veri seti sözlüğünde veri seti başına birseedsağlayabilirsiniz. - seed (
int, isteğe bağlı) —generator=Noneise varsayılan BitGenerator'ı başlatmak için bir tohum. seeds için bir takma ad (her ikisi de sağlanırsa birValueErroryükseltilir). - generators (
Dict[str, *optional*, np.random.Generator]) — Veri seti satırlarının permütasyonunu hesaplamak için kullanılacak Numpy rastgele Generator.generator=None(varsayılan) isenp.random.default_rng(NumPy'nin varsayılan BitGenerator'ı (PCG64)) kullanılır. Veri seti sözlüğündeki her veri seti için birgeneratorsağlamalısınız. - keep_in_memory (
bool, varsayılanFalse) — Veri setini önbellek dosyasına yazmak yerine bellekte tutar. - load_from_cache_file (
Optional[bool], önbellekleme etkinse varsayılan olarakTrue) —functionişlevinden gelen mevcut hesaplamayı depolayan bir önbellek dosyası belirlenebiliyorsa, yeniden hesaplamak yerine onu kullanın. - indices_cache_file_names (
Dict[str, str], isteğe bağlı) — Önbellek dosyası için bir yol adı belirtin. Otomatik oluşturulan önbellek dosyası adı yerine indeks eşlemelerini saklamak için kullanılır. Veri kümesi sözlüğündeki her veri kümesi için bircache_file_namebelirtmeniz gerekir. - writer_batch_size (
int, varsayılan1000) — Önbellek dosyası yazıcısı için yazma işlemi başına satır sayısı. Bu değer, işleme sırasında bellek kullanımı ile işleme hızı arasında iyi bir denge sağlar. Daha yüksek bir değer, işlemenin daha az arama yapmasını sağlar; daha düşük bir değer isemapçalışırken daha az geçici bellek tüketir.
Satırları karıştırılmış yeni bir Dataset oluşturun.
Dönüşüm, veri seti sözlüğündeki tüm veri setlerine uygulanır.
Şu anda karıştırma işlemi numpy rastgele üreteçlerini kullanır. Kullanılacak bir NumPy BitGenerator sağlayabilir veya NumPy’nin varsayılan rastgele üretecini (PCG64) başlatmak için bir tohum (seed) verebilirsiniz.
set_format
< source >( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )
Parametreler
- type (
str, isteğe bağlı) —[None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']içinde seçilen çıktı türlerinden biri.None,__getitem__'in python nesnelerini döndürdüğü anlamına gelir (varsayılan). - columns (
list[str], isteğe bağlı) — Çıktıda biçimlendirilecek sütunlar.None,__getitem__'in tüm sütunları döndürdüğü anlamına gelir (varsayılan). - output_all_columns (
bool, varsayılan olarak False) — Çıktıda biçimlendirilmemiş sütunları da (python nesneleri olarak) koru, - **format_kwargs (ek anahtar kelime argümanları) —
np.array,torch.tensorveyatensorflow.ragged.constantgibi dönüştürme fonksiyonuna geçirilen anahtar kelime argümanları.
__getitem__ dönüş biçimini (tür ve sütunlar) ayarlayın.
Biçim, veri kümesi sözlüğündeki her veri kümesi için ayarlanır.
set_format çağrısından sonra map çağrılabilir. map yeni sütunlar ekleyebileceğinden, biçimlendirilmiş sütunların listesi güncellenir. Bu durumda, bir veri setine yeni bir sütun eklemek için map uygularsanız, bu sütun biçimlendirilir:
new formatted columns = (all columns - previously unformatted columns)
Örnek:
>>> 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'}__getitem__ dönüş biçimini Python nesnelerine ve tüm sütunlara sıfırlar.
Dönüşüm, veri seti sözlüğündeki tüm veri setlerine uygulanır.
self.set_format() ile aynı
Örnek:
>>> 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 )
Parametreler
- type (
str, isteğe bağlı) —[None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']içinde seçilen çıktı türlerinden biri.None,__getitem__'in python nesnelerini döndürdüğü anlamına gelir (varsayılan). - columns (
list[str], isteğe bağlı) — Çıktıda biçimlendirilecek sütunlar.None,__getitem__'in tüm sütunları döndürdüğü anlamına gelir (varsayılan). - output_all_columns (
bool, varsayılan olarak False) — Çıktıda biçimlendirilmemiş sütunları da (python nesneleri olarak) koru. - **format_kwargs (ek anahtar kelime argümanları) —
np.array,torch.tensorveyatensorflow.ragged.constantgibi dönüştürme fonksiyonuna geçirilen anahtar kelime argümanları.
with ifadesinde kullanılacak. __getitem__ dönüş biçimini (tür ve sütunlar) ayarlar.
Dönüşüm, veri seti sözlüğündeki tüm veri setlerine uygulanır.
with_format
< source >( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )
Parametreler
- type (
str, isteğe bağlı) —[None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']içinde seçilen çıktı türlerinden biri.None,__getitem__'in python nesnelerini döndürdüğü anlamına gelir (varsayılan). - columns (
list[str], isteğe bağlı) — Çıktıda biçimlendirilecek sütunlar.None,__getitem__'in tüm sütunları döndürdüğü anlamına gelir (varsayılan). - output_all_columns (
bool, varsayılanFalse) — Çıktıda biçimlendirilmemiş sütunları da (python nesneleri olarak) koru. - **format_kwargs (ek anahtar kelime argümanları) —
np.array,torch.tensorveyatensorflow.ragged.constantgibi dönüştürme fonksiyonuna geçirilen anahtar kelime argümanları.
__getitem__ dönüş biçimini (tip ve sütunlar) ayarlayın. Veri biçimlendirme anlık olarak uygulanır.
type biçimi (örneğin “numpy”), __getitem__ kullanılırken toplulukları biçimlendirmek için kullanılır.
Biçim, veri kümesi sözlüğündeki her veri kümesi için ayarlanır.
Biçimlendirme için with_transform() kullanarak özel dönüşümleri kullanmak da mümkündür.
set_format()'in aksine, with_format yeni Dataset nesneleri içeren yeni bir DatasetDict nesnesi döndürür.
Örnek:
>>> 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 )
Parametreler
- transform (
Callable, isteğe bağlı) — Kullanıcı tanımlı biçimlendirme dönüşümü, set_format() tarafından tanımlanan biçimi değiştirir. Biçimlendirme işlevi, bir partiyi (dict olarak) girdi olarak alır ve bir parti döndüren çağrılabilir bir işlevdir. Bu işlev,__getitem__içindeki nesneleri döndürmeden hemen önce uygulanır. - columns (
list[str], isteğe bağlı) — Çıktıda biçimlendirilecek sütunlar. Belirtilirse, dönüştürmenin girdi partisi yalnızca bu sütunları içerir. - output_all_columns (
bool, varsayılan olarak False) — Çıktıda biçimlendirilmemiş sütunları da (python nesneleri olarak) koru.Trueolarak ayarlanırsa, diğer biçimlendirilmemiş sütunlar dönüştürme çıktısıyla birlikte korunur.
Bu dönüştürme ile __getitem__ dönüş biçimini ayarlayın. __getitem__ çağrıldığında dönüştürme, toplularda anlık olarak uygulanır.
Dönüştürme, veri kümesi sözlüğündeki her veri kümesi için ayarlanır
set_format() gibi, bu reset_format() kullanılarak sıfırlanabilir.
set_transform()'in aksine, with_transform yeni Dataset nesneleri içeren yeni bir DatasetDict nesnesi döndürür.
Örnek:
>>> 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])}Her bölünmenin Apache Arrow Tablosunu düzleştirin (iç içe geçmiş özellikler düzleştirilir). Struct türüne sahip her sütun, struct alanı başına bir sütun olarak düzleştirilir. Diğer sütunlar değiştirilmeden bırakılır.
Örnek:
>>> 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
})
})döküm
< source >( features: Features )
Parametreler
- features (Features) —
Veri setinin dönüştürüleceği yeni özellikler.
Özelliklerdeki alanların adları ve sırası, mevcut sütun adlarıyla eşleşmelidir.
Veri türünün de bir türden diğerine dönüştürülebilir olması gerekir.
Basit olmayan dönüşümler için, örneğin
string<->ClassLabel, veri setini güncellemek için map() kullanmalısınız.
Veri setini yeni bir özellik kümesine dönüştürün. Dönüşüm, veri seti sözlüğündeki tüm veri setlerine uygulanır.
Örnek:
>>> 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 )
Çözümleme için sütunu özelliğe dönüştürün.
Örnek:
>>> 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
Parametreler
Dönüş değeri
Kaldırılacak sütunlar olmadan veri seti nesnesinin bir kopyası.
Veri setindeki her bölümden bir veya birden fazla sütunu ve bu sütun(lar)a bağlı özellikleri kaldırın
Dönüşüm, veri seti sözlüğündeki tüm bölümlere uygulanır.
map() ile remove_columns kullanarak da bir sütun kaldırabilirsiniz ancak mevcut yöntem, kalan sütunların verilerini kopyalamadığı için daha hızlıdır.
Örnek:
>>> 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 )
Veri setindeki bir sütunu yeniden adlandırın ve orijinal sütuna ait özellikleri yeni sütun adının altına taşıyın. Dönüşüm, veri seti sözlüğündeki tüm veri setlerine uygulanır.
Bir sütunu remove_columns ile map() kullanarak yeniden adlandırabilirsiniz ancak mevcut yöntem:
- orijinal özellikleri yeni sütun adı altında taşımaktan sorumludur.
- verileri yeni bir veri setine kopyalamaz ve bu nedenle çok daha hızlıdır.
Örnek:
>>> 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
Parametreler
Dönüş değeri
Sütun adları değiştirilmiş veri setinin bir kopyası.
Veri setindeki birkaç sütunu yeniden adlandırın ve orijinal sütunlarla ilişkili özellikleri yeni sütun adları altına taşıyın. Dönüşüm, veri seti sözlüğündeki tüm veri setlerine uygulanır.
Örnek:
>>> 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]] )
Veri setindeki her bölümden bir veya birkaç sütun ve bu sütun(lar)a ait özellikleri seçin.
Dönüşüm, veri seti sözlüğündeki tüm bölümlere uygulanır.
Örnek:
>>> 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 )
Verilen sütunu ClassLabel olarak dönüştürür ve tabloları günceller.
Örnek:
>>> 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 )
Parametreler
- repo_id (
str) — Aşağıdaki biçimde itme (push) yapılacak deposunun kimliği:<user>/<dataset_name>veya<org>/<dataset_name>. Ayrıca<dataset_name>, de kabul eder; bu durumda oturum açılmış kullanıcının ad alanı (namespace) varsayılan olarak kullanılır.Ayrıca bir varlığın içindeki bir konum da olabilir, örneğin
buckets/<user_or_org>/<bucket_name>/... - config_name (
str) — Bir veri setinin yapılandırma adı. Varsayılan olarak “default” değerini alır. - set_default (
bool, isteğe bağlı) — Bu yapılandırmanın varsayılan olarak ayarlanıp ayarlanmayacağı. Aksi takdirde, varsayılan yapılandırma “default” adlı olanıdır. - data_dir (
str, isteğe bağlı) — Yüklenen veri dosyalarını içerecek dizin adı. Farklıysaconfig_namedeğilse “data” olarak varsayılan değerdir.2.17.0 sürümünde eklendi
- commit_message (
str, isteğe bağlı) — İterilirken iletilecek mesaj. Varsayılan olarak"Upload dataset"olur. - commit_description (
str, isteğe bağlı) — Oluşturulacak commit'in açıklaması. Ayrıca, bir PR oluşturulursa PR açıklaması da (create_prTrue ise).2.16.0 sürümünde eklendi
- private (
bool, isteğe bağlı) — Deponun özel yapılıp yapılmayacağı.None(varsayılan) ise, organizasyonun varsayılanı özel değilse depo herkese açık olacaktır. Depo zaten mevcutsa bu değer yok sayılır. - token (
str, isteğe bağlı) — Hugging Face Hub için isteğe bağlı bir kimlik doğrulama belirteci. Belirteç geçirilmezse,hf auth loginile oturum açılırken yerel olarak kaydedilen belirteç varsayılan olarak kullanılır. Belirteç geçirilmez ve kullanıcı oturum açmamışsa bir hata oluşturulur. - revision (
str, isteğe bağlı) — Yüklenen dosyaların gönderileceği dal. Varsayılan olarak"main"dalıdır.2.15.0 sürümünde eklendi
- create_pr (
bool, isteğe bağlı, varsayılan olarakFalse) — Yüklenen dosyalarla bir PR oluşturulup oluşturulmayacağına veya doğrudan commit atılıp atılmayacağına karar verir.2.15.0 sürümünde eklendi
- max_shard_size (
intveyastr, isteğe bağlı, varsayılan"500MB") — Hub'a yüklenecek veri seti parçacıklarının (shard) maksimum boyutu. Dize olarak ifade ediliyorsa, rakamların ardından birim (ör."500MB"veya"1GB") gelmelidir. - num_shards (
Dict[str, int], isteğe bağlı) — Yazılacak shard sayısı. Varsayılan olarak shard sayısımax_shard_size. her split için farklı bir num_shards tanımlamak için bir sözlük kullanın.2.8.0 sürümünde eklendi
- embed_external_files (
bool, varsayılan olarakTrue) — dosya baytlarının shard'lara gömülüp gömülmemesi. Özellikle, push işleminden önce şu alan türleri için şunlar yapılır: - num_proc (
int, isteğe bağlı, varsayılan olarakNone) — Veri setini hazırlarken ve yüklerken kullanılacak süreç sayısı. Veri seti gömülecek çok sayıda örnek veya medya dosyasından oluşuyorsa bu parametre işe yarar. hf_xet ile çalışmak için “spawn” bağlamını kullanır; hf_xet, HF'ye hızlı yüklemeler için kullanılan rust istemcisidir. Çok işlemcili çalışma (multiprocessing) varsayılan olarak devre dışıdır.4.0.0 sürümünde eklendi
DatasetDict nesnesini Parquet veri seti olarak hub'a gönderir. DatasetDict, HTTP istekleri kullanılarak gönderilir ve git veya git-lfs kurulu olmasına gerek yoktur.
Her veri seti bölümü bağımsız olarak itilecektir. İtilen veri seti, orijinal bölüm adlarını koruyacaktır.
Oluşturulan Parquet dosyaları varsayılan olarak kendi kendine yeterlidir: veri setiniz Image veya Audio verisi içeriyorsa, Parquet dosyaları görüntü veya ses dosyalarınızın baytlarını saklar.
Bunu, embed_external_files değerini False olarak ayarlayarak devre dışı bırakabilirsiniz.
Örnek:
>>> 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})Bir veri setine yeni bir yapılandırma (veya alt küme) eklemek istiyorsanız (ör. veri seti birden fazla görev/sürüm/dil içeriyorsa):
>>> 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 )
Parametreler
- dataset_dict_path (
path-like) — Veri seti sözlüğünün kaydedileceği veri seti sözlüğü dizininin yolu (ör.dataset/train) veya uzak URI'si (ör.s3://my-bucket/dataset/train). - max_shard_size (
intveyastr, isteğe bağlı, varsayılan"500MB") — Dosya sistemine kaydedilecek veri kümesi parçacıklarının (shard) maksimum boyutu. Dize olarak ifade ediliyorsa, birimden önce rakamlar gelmelidir (ör."50MB"). - num_shards (
Dict[str, int], isteğe bağlı) — Yazılacak shard sayısı. Varsayılan olarak shard sayısımax_shard_sizevenum_proc. dataset sözlüğündeki her dataset için shard sayısını belirtmeniz gerekir. Her split için farklı bir num_shards tanımlamak için sözlük kullanın.2.8.0 sürümünde eklendi
- num_proc (
int, isteğe bağlı, varsayılanNone) — Veri setini indirirken ve yerel olarak oluştururken kullanılacak süreç sayısı. Çok işlemcili (multiprocessing) varsayılan olarak devre dışıdır.2.8.0 sürümünde eklendi
- storage_options (
dict, isteğe bağlı) — Varsa, dosya sistemi arka ucuna iletilecek anahtar/değer çiftleri.2.8.0 sürümünde eklendi
Bir veri seti sözlüğünü fsspec.spec.AbstractFileSystem kullanarak dosya sistemine kaydeder.
Image, Audio ve Video verileri için:
Tüm Image(), Audio() ve Video() verileri arrow dosyalarında saklanır. Yollar veya URL'ler saklamak istiyorsanız, lütfen Value(“string”) tipini kullanın.
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 )
Parametreler
- dataset_dict_path (
path-like) — Veri seti sözlüğünün yükleneceği veri seti sözlüğü dizininin yolu (ör."dataset/train") veya uzak URI'si (ör."s3//my-bucket/dataset/train"). - keep_in_memory (
bool, varsayılanNone) — Veri setinin bellek içine kopyalanıp kopyalanmayacağı.Noneise,datasets.config.IN_MEMORY_MAX_SIZEsıfırdan farklı bir değere ayarlanarak açıkça etkinleştirilmedikçe veri seti bellek içine kopyalanmaz. Daha fazla ayrıntı için performansı iyileştirme bölümüne bakın. - storage_options (
dict, isteğe bağlı) — Varsa, dosya sistemi arka ucuna iletilecek anahtar/değer çiftleri.2.8.0 sürümünde eklendi
Daha önce save_to_disk kullanılarak bir dosya sistemine kaydedilen bir veri setini, fsspec.spec.AbstractFileSystem kullanarak yükleyin.
from_csv
< source >( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )
Parametreler
- path_or_paths (
dictof path-like) — CSV dosya(lar)ının yolu(ları). - features (Features, isteğe bağlı) — Veri seti özellikleri.
- cache_dir (str, isteğe bağlı, varsayılan
"~/.cache/huggingface/datasets") — Verilerin önbelleğe alınacağı dizin. - keep_in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı. - **kwargs (ek anahtar kelime argümanları) —
pandas.read_csvfonksiyonuna iletilecek anahtar kelime argümanları.
CSV dosyalarından DatasetDict oluşturun.
from_json
< source >( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )
Parametreler
- path_or_paths (
path-likeveyapath-likelistesi) — JSON Lines dosya(lar)ının yolu(ları). - features (Features, isteğe bağlı) — Veri seti özellikleri.
- cache_dir (str, isteğe bağlı, varsayılan
"~/.cache/huggingface/datasets") — Verilerin önbelleğe alınacağı dizin. - keep_in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı. - **kwargs (ek anahtar kelime argümanları) —
JsonConfig'e iletilecek anahtar kelime argümanları.
JSON Lines dosyalarından DatasetDict oluşturun.
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 )
Parametreler
- path_or_paths (
dictof path-like) — CSV dosya(lar)ının yolu(ları). - features (Features, isteğe bağlı) — Veri seti özellikleri.
- cache_dir (
str, isteğe bağlı, varsayılan"~/.cache/huggingface/datasets") — Verilerin önbelleğe alınacağı dizin. - keep_in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı. - columns (
list[str], isteğe bağlı) —Nonedeğilse, dosyadan yalnızca bu sütunlar okunur. Bir sütun adı, iç içe geçmiş bir alanın öneki olabilir; örneğin ‘a’, ‘a.b’, ‘a.c’ ve ‘a.d.e’ alanlarını seçer. - **kwargs (ek anahtar kelime argümanları) —
ParquetConfig'e iletilecek anahtar kelime argümanları.
Parquet dosyası/dosyalarından DatasetDict oluşturun.
from_text
< source >( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )
Parametreler
- path_or_paths (
dictof path-like) — Metin dosya(lar)ının yolu(ları). - features (Features, isteğe bağlı) — Veri seti özellikleri.
- cache_dir (
str, isteğe bağlı, varsayılan"~/.cache/huggingface/datasets") — Verilerin önbelleğe alınacağı dizin. - keep_in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı. - **kwargs (ek anahtar kelime argümanları) —
TextConfig'e iletilecek anahtar kelime argümanları.
Metin dosyası/dosyalarından DatasetDict oluşturun.
IterableDataset
Alt sınıf IterableDataset, python jeneratörleri tarafından desteklenen, yinelebilir bir Dataset uygular.
sınıf 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 )
İterable tarafından desteklenen bir Dataset.
Bir Arrow tablosundan dosya adında bir IterableDataset örneği oluşturun.
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 )
Parametreler
- df (
pandas.DataFrame) — Veri setini içeren veri çerçevesi. - features (Features, isteğe bağlı) — Veri seti özellikleri.
- info (
DatasetInfo, isteğe bağlı) — Tanım, alıntı vb. gibi veri seti bilgileri. - split (
NamedSplit, isteğe bağlı) — Veri seti bölmesinin adı. - preserve_index (
bool, isteğe bağlı) — Sonuçtaki Dataset'te indeksi ek bir sütun olarak saklanıp saklanmayacağı. Varsayılan olanNone, indeksi bir sütun olarak saklar; yalnızcaRangeIndexdurumu hariçtir, bu durum yalnızca metadata olarak saklanır. İndisin bir sütun olarak saklanmasını zorlamak içinpreserve_index=Truekullanın. - num_shards (
int, varsayılan1) — İteratif veri seti oluşturulurken tanımlanacak shard sayısı. Bu, büyük veri setlerinin doğru şekilde karıştırılabilmesi için özellikle faydalıdır ve ayrıca PyTorch DataLoader ile hızlı paralel yükleme veya dağıtık kurulumlar gibi senaryoları mümkün kılar.
Bir IterableDataset oluşturmak için pandas.DataFrame'ı pyarrow.Table'a dönüştürün.
Sonuçtaki Arrow Tablosundaki sütun türleri, DataFrame'deki pandas.Series öğelerinin dtypes değerlerinden çıkarılır. Nesne olmayan Series durumlarında, NumPy dtype değeri Arrow karşılığına dönüştürülür. object durumunda, bu Series içindeki Python nesnelerine bakarak veri türünü tahmin etmemiz gerekir.
object veri türündeki Series'lerin, her zaman anlamlı bir Arrow türüne yol açacak kadar bilgi içermediğini unutmayın. Bir tür çıkarılamadığı durumlarda, örneğin DataFrame'in uzunluğu 0 olduğunda veya Series yalnızca None/nan nesneleri içerdiğinde, tür null olarak ayarlanır. Bu davranış, açık özellikler oluşturarak ve bunları bu işlevine geçirerek önlenabilir.
Önemli: from_pandas() ile oluşturulan bir veri seti bellekte tutulur. Bu durum gelecekte değişebilir, ancak bu arada bellek kullanımını azaltmak istiyorsanız veri setini diske yazıp örneğin to_parquet / from_parquet kullanarak yeniden yüklemelisiniz.
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 )
Parametreler
- mapping (
Mapping) — Dizelerden Array'lere veya Python listelerine eşleme. - features (Features, isteğe bağlı) — Veri seti özellikleri.
- info (
DatasetInfo, isteğe bağlı) — Tanım, alıntı vb. gibi veri seti bilgileri. - split (
NamedSplit, isteğe bağlı) — Veri seti bölmesinin adı. - num_shards (
int, varsayılan1) — İteratif veri seti oluşturulurken tanımlanacak shard sayısı. Bu, büyük veri setlerinin doğru şekilde karıştırılabilmesi için özellikle faydalıdır ve ayrıca PyTorch DataLoader ile hızlı paralel yükleme veya dağıtık kurulumlar gibi senaryoları mümkün kılar.
Bir IterableDataset oluşturmak için dict'yi pyarrow.Table'ye dönüştürün.
Önemli: from_dict() ile oluşturulan bir veri seti bellekte tutulur. Bu durum gelecekte değişebilir, ancak bu arada bellek kullanımını azaltmak istiyorsanız veri setini diske yazıp örneğin to_parquet / from_parquet kullanarak yeniden yüklemelisiniz.
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 )
Parametreler
- mapping (
List[dict]) — Satır değerlerine giden dizelerin bir listesi. - features (
Features, isteğe bağlı) — Veri seti özellikleri. - info (
DatasetInfo, isteğe bağlı) — Açıklama, atıf vb. gibi veri seti bilgileri. - split (
NamedSplit, isteğe bağlı) — Veri seti bölmesinin adı. - num_shards (
int, varsayılan1) — İteratif veri seti oluşturulurken tanımlanacak shard sayısı. Bu, büyük veri setlerinin doğru şekilde karıştırılabilmesi için özellikle faydalıdır ve ayrıca PyTorch DataLoader ile hızlı paralel yükleme veya dağıtık kurulumlar gibi senaryoları mümkün kılar.
Bir sözlük listesini pyarrow.Table'a dönüştürerek bir IterableDataset oluşturun.
features parametresine ne aktarılırsa aktarılsın, veri seti sütunlarını belirlemek için ilk girdinin anahtarlarının kullanılacağını unutmayın.
Önemli: from_list() ile oluşturulan bir veri seti bellekte tutulur. Bu durum gelecekte değişebilir, ancak bu arada bellek kullanımını azaltmak istiyorsanız veri setini diske yazıp örneğin from_parquet / to_parquet kullanarak yeniden yüklemelisiniz.
from_generator
< source >( generator: typing.Callablefeatures: typing.Optional[datasets.features.features.Features] = Nonegen_kwargs: typing.Optional[dict] = Nonesplit: NamedSplit = NamedSplit('train') )
Parametreler
- generator (
Callable) — Örnekleryieldseden bir üreteç (generator) işlevi. - features (
Features, isteğe bağlı) — Veri seti özellikleri. - gen_kwargs(
dict, isteğe bağlı) —generatorçağrılabilirine iletilecek anahtar kelime argümanları.gen_kwargsiçine shard listesini geçirerek shard'lı bir yinelebilir veri seti tanımlayabilirsiniz. Bu, karıştırma işlemini iyileştirmek ve veri setini birden fazla işçiyle yinelemek için kullanılabilir. - split (NamedSplit, varsayılan olarak
Split.TRAIN) — Veri setine atanacak bölme adı.2.21.0 sürümünde eklendi
Bir üreteçten Iterable Dataset oluşturun.
Örnek:
>>> 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
Veri setindeki bir veya birden fazla sütunu ve bunlara ilişkili özellikleri kaldırın. Kaldırma işlemi, veri seti üzerinde iterasyon yapılırken örnekler üzerinde anlık olarak gerçekleştirilir.
Örnek:
>>> 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
Veri setinde bir veya birden fazla sütun ve bunlara ilişkili özellikleri seçin. Seçim, veri seti üzerinde iterasyon yapılırken örnekler üzerinde anlık olarak yapılır.
Örnek:
>>> 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
Çözümleme için sütunu özelliğe dönüştürün.
Örnek:
>>> 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')}döküm
< source >( features: Features ) → IterableDataset
Parametreler
- features (Features) —
Veri setinin dönüştürüleceği yeni özellikler.
Özelliklerdeki alan adları, mevcut sütun adlarıyla eşleşmelidir.
Veri türü de bir türden diğerine dönüştürülebilir olmalıdır.
Örneğin
string<->ClassLabelgibi basit olmayan dönüşümler için Dataset'i güncellemek üzere map() kullanmalısınız.
Dönüş değeri
IterableDataset
Dönüştürülmüş özelliklere sahip veri setinin bir kopyası.
Veri setini yeni bir özellik kümesine dönüştürün.
Örnek:
>>> 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
Parametreler
- enable (
bool, varsayılanTrue) — Özellik çözümlemesini etkinleştirir veya devre dışı bırakır. - num_threads (
int, isteğe bağlı, varsayılanNone) — Özelliklerin çözümlenmesi için çoklu iş parçacığı kullanımını etkinleştirir. Not: load_dataset(), HF üzerinde çözümlenebilir özelliklere sahip bir veri seti akışlandırıldığında varsayılan olarak zaten birkaç iş parçacığı kullanır. Varsayılan olarak, en az bir özelliğin çözümlenme gerektirmesi durumundanum_threads32 olarak, aksi takdirde 0 olarak ayarlanır.
Dönüş değeri
IterableDataset
Dönüştürülmüş özelliklere sahip veri setinin bir kopyası.
Ses, görüntü ve video için veri seti özelliklerinin çözümlenmesini etkinleştirin veya devre dışı bırakın.
Etkinleştirildiğinde (varsayılan), medya türleri çözümlenir:
- ses -> “array”, “sampling_rate” ve “path” içeren sözlük
- image -> PIL.Image
- video -> torchcodec.decoders.VideoDecoder
Çok iş parçacıklılığı num_threads ile etkinleştirilebilir: bu durumda her medya dosyası bir iş parçacığında okunur ve çözümlenir, böylece ardışık örneklerin ağ gidiş-dönüşleri üst üste gelir. Bu, uzaktaki veri akışını hızlandırmak için özellikle faydalıdır ve load_dataset(), çözümlenebilir özelliklere sahip uzak bir veri seti akışlandırıldığında bunu zaten varsayılan olarak etkinleştirir (bkz. HF_DATASETS_DECODE_NUM_THREADS). Yerel diskten okunan veri setleri, hızlı disklerdeki yerel veriler için çok iş parçacıklılığın ana iş parçacığında çözümlenmeye kıyasla daha yavaş olabileceğinden num_threads=0 ile akışlandırılır. Örnekler önceden çözümlendiğinden, uçuştaki her iş parçacığı bellekte bir örnek tutabilir: daha az bellek kullanmak için num_threads değerini düşürün.
Çözümlemeyi devre dışı bırakmak, medya dosyalarının yollarını veya baytlarını içeriklerini gerçekten çözümlemeden işlemek istediğinizde faydalıdır. Çözümlemeyi devre dışı bırakmak için .decode(False) kullanabilirsiniz; bu, tüm Audio, Image ve Video türleri decode=False olarak ayarlanarak .cast() veya .cast_column() çağrılmasıyla eşdeğerdir.
Örnekler:
Çözümlemeyi devre dışı bırakın:
>>> 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.'
}Çok iş parçacıklılığı ile akışı hızlandırın:
>>> 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 )
batch_size boyutundaki partileri sırayla işleyin.
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 )
Parametreler
- function (
Callable, isteğe bağlı, varsayılan olarakNone) — Veri setinde gezinirken örneklerin üzerine anlık olarak uygulanan işlev. Aşağıdaki imzalardan birine sahip olmalıdır:function(example: Dict[str, Any]) -> Dict[str, Any]ifbatched=Falseandwith_indices=Falsefunction(example: Dict[str, Any], idx: int) -> Dict[str, Any]ifbatched=Falseandwith_indices=Truefunction(batch: Dict[str, List]) -> Dict[str, List]ifbatched=Trueandwith_indices=Falsefunction(batch: Dict[str, List], indices: List[int]) -> Dict[str, List]ifbatched=Trueandwith_indices=True
Gelişmiş kullanım için, fonksiyon ayrıca
pyarrow.Tabledöndürebilir. Fonksiyon asenkron ise,mapfonksiyonunuzu paralel olarak çalıştırır. Ayrıca fonksiyonunuz hiçbir şey döndürmüyorsa (None),mapfonksiyonunuzu çalıştırır ve veri setini değiştirilmeden döndürür. Hiçbir fonksiyon sağlanmazsa, varsayılan olarak kimlik fonksiyonu kullanılır:lambda x: x. - with_indices (
bool, varsayılanFalse) —functioniçin örnek indeksleri sağlar. Bu durumdafunctionimzasınındef function(example, idx[, rank]): ...olması gerektiğine dikkat edin. - input_columns (
Optional[Union[str, List[str]]], varsayılanNone) —functioniçine konumsal argümanlar olarak geçirilecek sütunlar.Noneise, biçimlendirilmiş tüm sütunlara eşleyen bir sözlük tek argüman olarak geçirilir. - batched (
bool, varsayılanFalse) —functionişlevine örnekler birimini sağlar. - batch_size (
int, isteğe bağlı, varsayılan1000) —batched=Trueisefunction'a her parti için sağlanan örnek sayısı.batch_size <= 0veyabatch_size == Noneise tüm veri seti,function'a tek bir parti olarak sağlanır. - drop_last_batch (
bool, varsayılanFalse) — batch_size'dan küçük olan son bir partinin, işlenmek yerine atılıp atılmayacağını belirtir. - remove_columns (
[List[str]], isteğe bağlı, varsayılanNone) — Eşleme yapılırken seçilen sütunları kaldırır. Sütunlar, örneklerfunctionçıktısıyla güncellenmeden önce kaldırılır; yanifunction,remove_columnsiçindeki adlara sahip sütunlar ekliyorsa bu sütunlar korunur. - features (
[Features], isteğe bağlı, varsayılanNone) — Sonuçlanan veri setinin özellik türleri. - fn_kwargs (
Dict, isteğe bağlı, varsayılanNone) —functionfonksiyonuna iletilecek anahtar kelime argümanları.
İteratif veri setindeki tüm örneklerin (bireysel olarak veya toplu halde) üzerine bir fonksiyon uygulayın ve onları güncelleyin. Fonksiyonunuz zaten var olan bir sütun döndürürse, bu sütun üzerine yazar. Fonksiyon, veri seti üzerinde iterasyon yapılırken örneklerin üzerine anlık olarak uygulanır.
Fonksiyonun toplu (batch) olarak mı yoksa tekil olarak mı çalışacağı, batched parametresi ile belirtilebilir:
- batched
Falseise, fonksiyon 1 örnek alır ve 1 örnek döndürmelidir. Bir örnek, bir sözlüktür, örn.{"text": "Hello there !"}. - batched
Truevebatch_size1 ise, fonksiyon girdi olarak 1 örnekten oluşan bir batch alır ve 1 veya daha fazla örnekten oluşan bir batch döndürebilir. Bir batch bir sözlüktür, örneğin 1 örnekten oluşan bir batch {“text”: [“Hello there !”]} şeklindedir. Truevebatch_sizen> 1 ise, fonksiyon girdi olaraknörnekten oluşan bir batch alır venörnekten oluşan bir batch veya herhangi bir sayıda örnek içeren bir batch döndürebilir. Son batch'innörnekten az örnek içerebileceğine dikkat edin. Bir batch bir sözlüktür, örneğinnörnekten oluşan bir batch{"text": ["Hello there !"] * n}şeklindedir.
Eğer fonksiyon asenkron ise, map fonksiyonunuzu en fazla bin eşzamanlı çağrı ile paralel olarak çalıştırır.
Aynı anda çalışabilecek maksimum işlem sayısını belirlemek istiyorsanız, fonksiyonunuzda asyncio.Semaphore kullanmanız önerilir.
Örnek:
>>> 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
Veri setindeki bir sütunu yeniden adlandırın ve orijinal sütuna ait özellikleri yeni sütun adının altına taşıyın.
Örnek:
>>> 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 .'}filtre
< 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 )
Parametreler
- function (
Callable) — Aşağıdaki imzalardan birine sahip Callable:function(example: Dict[str, Any]) -> boolifwith_indices=False, batched=Falsefunction(example: Dict[str, Any], indices: int) -> boolifwith_indices=True, batched=Falsewith_indices=False, batched=Trueisefunction(example: Dict[str, List]) -> List[bool]function(example: Dict[str, List], indices: List[int]) -> List[bool]ifwith_indices=True, batched=True
Eğer fonksiyon asenkron ise,
filterfonksiyonunuzu paralel olarak çalıştırır. Hiçbir fonksiyon sağlanmazsa, her zaman True dönen varsayılan fonksiyon kullanılır:lambda x: True. - with_indices (
bool, varsayılanFalse) —functioniçin örnek indeksleri sağlar. Bu durumdafunctionimzasınındef function(example, idx): ...olması gerektiğini unutmayın. - input_columns (
strveyaList[str], isteğe bağlı) —functioniçine konumsal argümanlar olarak geçirilecek sütunlar.Noneise, biçimlendirilmiş tüm sütunlara eşleyen bir sözlük tek argüman olarak geçirilir. - batched (
bool, varsayılanFalse) —functionişlevine örnekler birimini sağlar. - batch_size (
int, isteğe bağlı, varsayılan1000) —batched=Trueisefunction'a sağlanan parti başına örnek sayısı. - fn_kwargs (
Dict, isteğe bağlı, varsayılanNone) —functionfonksiyonuna iletilecek anahtar kelime argümanları.
Filtreleme işlevini tüm öğelere uygulayın; böylece veri seti yalnızca filtreleme işlevine uygun örnekleri içerir. Filtreleme, veri seti üzerinde gezinirken anlık olarak yapılır.
Eğer fonksiyon asenkron ise, filter fonksiyonunuzu paralel olarak çalıştırır; bu, en fazla bin eşzamanlı çağrı (yapılandırılabilir) ile sınırlıdır.
Aynı anda çalışabilecek maksimum işlem sayısını belirlemek istiyorsanız, fonksiyonunuzda asyncio.Semaphore kullanmanız önerilir.
Örnek:
>>> 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 .'}]karıştır
< source >( seed = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonebuffer_size: int = 1000max_buffer_input_shards: int = 10 )
Parametreler
- seed (
int, isteğe bağlı, varsayılanNone) — Veri setini karıştırmak için kullanılacak rastgele tohum. Karıştırma tamponundan örnek almak ve veri parçalarını karıştırmak için kullanılır. - generator (
numpy.random.Generator, isteğe bağlı) — Veri seti satırlarının permütasyonunu hesaplamak için kullanılacak Numpy rastgele Generator.generator=None(varsayılan) ise,np.random.default_rng(NumPy'nin varsayılan BitGenerator'ı (PCG64)) kullanılır. - buffer_size (
int, varsayılan1000) — Tampon boyutu. - max_buffer_input_shards (
int, varsayılan10) — Bir seferde tamponu beslemek için kullanılacak maksimum shard sayısı.
Bu veri setinin öğelerini rastgele karıştırır.
Bu veri seti, buffer_size öğelik bir tamponu doldurur, ardından bu tampondan rastgele öğeler örnekler ve seçilen öğeleri yeni öğelerle değiştirir. Mükemmel karıştırma için, veri setinin tam boyutuna eşit veya ondan büyük bir tampon boyutu gereklidir.
Örneğin, veri setiniz 10.000 öğe içeriyor ancak buffer_size 1000 olarak ayarlanmışsa, shuffle başlangıçta tampondaki yalnızca ilk 1000 öğeden rastgele bir öğe seçer. Bir öğe seçildiğinde, tampondaki yeri bir sonraki (yani 1.001. öğe) öğeyle değiştirilir ve 1000 öğelik tampon korunur.
Veri seti birkaç parçadan (shard) oluşuyorsa, tamponu (buffer) bir seferde en fazla max_buffer_input_shards parça kullanarak doldurur ve parçaların sırasını da karıştırır. Bu, karıştırma (shuffling) kalitesini büyük ölçüde artırır.
Girdi parçaları, paralel veri yükleme için kullanılabilir parça sayısını koruyarak her düğümde (node) ve işçide (worker) iç içe geçirilir (interleaved).
Ancak sıra skip() veya take() kullanılarak sabitlenmişse, shard'ların sırası değiştirilmez ve tamponu doldurmak için bir seferde yalnızca bir shard kullanılır.
Örnek:
>>> 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 )
Parametreler
- batch_size (
int, isteğe bağlı) — Her parti içindeki örnek sayısı. - by_column (
Union[str, list[str], isteğe bağlı — Örnekleri birlikte gruplamak için kullanılan sütun. Bu sütun için aynı değere sahip ardışık örnekler aynı batch içinde gruplanır. Birden fazla sütuna göre batch oluşturmak istiyorsanız bu, sütunların bir listesi de olabilir. Sütuna göre batch oluşturulduğunda, batch_size yalnızca bir araya getirilecek veya birikim sırasında dilimlenecek batch'lerin boyutunu kontrol etmek için kullanılır.4.9.0 sürümünde eklendi
- drop_last_batch (
bool, varsayılanFalse) — Son eksik partinin atılıp atılmayacağı.
Veri setindeki örnekleri toplu işlere (batch) ayırın.
Örnek:
İlk n öğeyi atlayan yeni bir IterableDataset oluşturun.
Örnek:
>>> 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 .'}]Sadece ilk n öğeye sahip yeni bir IterableDataset oluşturun.
Örnek:
>>> 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 .'}]parça
< source >( num_shards: intindex: intcontiguous: bool = True )
Veri setini num_shards parçaya böldükten sonra index-inci parçayı döndürür.
Bu işlem deterministik olarak parçalar. dataset.shard(n, i) veri setini ardışık parçalara böler, böylece işlemden sonra kolayca birleştirilebilir. dataset.num_shards % n == l ise ilk l veri setinin her biri (dataset.num_shards // n) + 1 parça içerirken, kalan veri setleri (dataset.num_shards // n) parça içerir. datasets.concatenate_datasets([dset.shard(n, i) for i in range(n)]) orijinal veri setiyle aynı sıraya sahip bir veri seti döndürür. Özellikle, dataset.shard(dataset.num_shards, i) 1 parçalı bir veri seti döndürür.
Not: dataset.num_shards veri kümesindeki shard sayısına eşit veya daha küçük olmalıdır.
Öte yandan, dataset.shard(n, i, contiguous=False), dizinin indeksinin n = i moduna eşit olan tüm parçalarını içerir.
Rastgeleleştirme operatörlerinden (örneğin shuffle) herhangi birini kullanmadan önce parçalamayı (sharding) yapmayı unutmayın.
Parçalama operatörünün veri seti hattının başında kullanılması en iyisidir.
Örnek:
>>> 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
})Mümkünse veri setini yeniden parçala, yani mevcut parçaları daha fazla parçaya böl. Bu, parça sayısını artırır ve sonuçlanan veri setinde num_shards >= previous_num_shards olur. Hiçbir parça daha fazla bölünemiyorsa eşitlik durumu oluşabilir.
Resharding mekanizması veri seti dosya biçimine bağlıdır:
- Parquet: dosya başına değil, satır grubu başına shard
- Vortex: dosya başına değil, ardışık parçaların aralığı başına shard (her biri yaklaşık 64MB dosya verisi)
- Diğer: henüz uygulanmadı (katkılar memnuniyetle karşılanır!)
Rastgeleleştirme operatörlerinden (örneğin shuffle) herhangi birini kullanmadan önce yeniden parçalamak/parçalamak (reshard/shard) yapmanızdan emin olun.
Parçalama operatörünün veri seti hattının başında kullanılması en iyisidir.
Örnek:
>>> 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
})tekrar
< source >( num_times: typing.Optional[int] )
Altta yatan veri setini num_times kez tekrar eden yeni bir IterableDataset oluşturun.
Boş bir girdi, num_times None olsa bile işlemi sonlandırır.
N.B. repeat sonrasında shuffle çağrılmasının etkisi, tampon boyutuna büyük ölçüde bağlıdır. buffer_size 1 olduğunda, karıştırma yapılsa bile aynı yinelemede asla yinelenen veri görülmez: ds.repeat(n).shuffle(seed=42, buffer_size=1), ds.shuffle(seed=42, buffer_size=1).repeat(n) ile eşdeğerdir ve yalnızca her yineleme içindeki shard sıralarını karıştırır. Tampon boyutu >= (veri setindeki örnek sayısı * num_times) olduğunda, yinelenen verinin tam olarak karıştırılması sağlanır, yani yinelenen veriler aynı yinelemede gözlemlenebilir.
Örnek:
>>> 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
Parametreler
- path_or_buf (
PathLikeveyaFileOrBuffer) — Bir dosya yolu (ör.file.csv), uzak bir URI (ör.hf://datasets/username/my_dataset_name/data.csv) veya veri setinin belirtilen formatta kaydedileceği bir BinaryIO. - batch_size (
int, isteğe bağlı) — Belleğe yüklenip tek seferde yazılacak olan batch boyutu. Varsayılan değerdatasets.config.DEFAULT_MAX_BATCH_SIZE'dir. - storage_options (
dict, isteğe bağlı) — Varsa, dosya sistemi arka ucuna iletilecek anahtar/değer çiftleri. - **to_csv_kwargs (ek anahtar kelime argümanları) —
pandas'in
pandas.DataFrame.to_csvmetoduna iletilecek parametreler.indexparametresi belirtilmediyse varsayılan olarakFalsedeğerini alır. Dizin bilgisini yazdırmak istiyorsanızindex=Trueparametresini iletin ve ayrıcaindex_labelparametresini geçirerek dizin sütunu için bir ad belirleyin.
Dönüş değeri
int
Yazılan karakter veya bayt sayısı.
Veri setini csv olarak dışa aktarır.
Bu, yazmadan önce veri setini üzerinde iterasyon yaparak tamamen belleğe yükler.
to_pandas
< source >( batch_size: typing.Optional[int] = Nonebatched: bool = False )
Parametreler
- batch_size (
int, isteğe bağlı) —batchedTrueise partilerin boyutu (satır sayısı). Varsayılan değerdatasets.config.DEFAULT_MAX_BATCH_SIZE'dir. - batched (
bool) — Veri setinibatch_sizesatırlık partiler halinde üreten bir üretici döndürmesi içinTrueolarak ayarlayın. Varsayılan değerFalse'tir (tüm veri setlerini bir kez döndürür).
Veri setini pandas.DataFrame olarak döndürür. Büyük veri setleri için bir üreteç de döndürebilir.
to_dict
< source >( batch_size: typing.Optional[int] = Nonebatched: bool = False )
Veri setini bir Python sözlüğü olarak döndürür. Büyük veri setleri için bir üreteç de döndürebilir.
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
Parametreler
- path_or_buf (
PathLikeveyaFileOrBuffer) — Bir dosya yolu (ör.file.json), uzak bir URI (ör.hf://datasets/username/my_dataset_name/data.json) veya veri setinin belirtilen formatta kaydedileceği bir BinaryIO. - batch_size (
int, isteğe bağlı) — Belleğe yüklenip tek seferde yazılacak olan batch boyutu. Varsayılan değerdatasets.config.DEFAULT_MAX_BATCH_SIZE'dir. - storage_options (
dict, isteğe bağlı) — Varsa, dosya sistemi arka ucuna iletilecek anahtar/değer çiftleri. - **to_json_kwargs (ek anahtar kelime argümanları) —
pandas'in
pandas.DataFrame.to_jsonmetoduna iletilecek parametreler. Varsayılan argümanlarlines=Trueveorient="records". The parameterindexdefaults toFalseiforientis“split”or“table”. If you would like to write the index, passindex=True`.
Dönüş değeri
int
Yazılan karakter veya bayt sayısı.
Veri setini JSON Lines veya JSON olarak dışa aktarın.
Bu, yazmadan önce veri setini üzerinde iterasyon yaparak tamamen belleğe yükler.
Varsayılan çıktı biçimi JSON Lines'tır.
JSON olarak dışa aktarmak için lines=False argümanını ve istenen orient değerini geçirin.
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
Parametreler
- path_or_buf (
PathLikeveyaFileOrBuffer) — Bir dosya yolu (ör.file.parquet), uzak bir URI (ör.hf://datasets/username/my_dataset_name/data.parquet) veya veri setinin belirtilen formatta kaydedileceği bir BinaryIO. - batch_size (
int, isteğe bağlı) — Belleğe yüklenip tek seferde yazılacak olan batch boyutu. Varsayılan değerdatasets.config.DEFAULT_MAX_BATCH_SIZE'dir. - storage_options (
dict, isteğe bağlı) — Varsa, dosya sistemi arka ucuna iletilecek anahtar/değer çiftleri.2.19.0 sürümünde eklendi
- **parquet_writer_kwargs (ek anahtar kelime argümanları) —
PyArrow'ın
pyarrow.parquet.ParquetWritersınıfına iletilecek parametreler.
Dönüş değeri
int
Yazılan karakter veya bayt sayısı.
Veri setini parquet olarak dışa aktarır
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
Parametreler
- name (
str) — SQL tablosunun adı. - con (
strveyasqlite3.Connectionveyasqlalchemy.engine.Connectionveyasqlalchemy.engine.Connection) — Bir veritabanına yazmak için kullanılan URI dizesi veya SQLite3/SQLAlchemy bağlantı nesnesi. - batch_size (
int, isteğe bağlı) — Belleğe yüklenip tek seferde yazılacak olan batch boyutu. Varsayılan değerdatasets.config.DEFAULT_MAX_BATCH_SIZE'dir. - **sql_writer_kwargs (ek anahtar kelime argümanları) —
pandas'in
pandas.DataFrame.to_sqlmetoduna iletilecek parametreler.indexparametresi belirtilmediyse varsayılan olarakFalsedeğerini alır. Endeksi yazdırmak istiyorsanızindex=Truedeğerini iletin ve ayrıcaindex_labelparametresini geçirerek endeks sütunu için bir ad belirleyin.
Dönüş değeri
int
Yazılan kayıt sayısı.
Veri setini bir SQL veritabanına dışa aktarır.
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 )
Parametreler
- repo_id (
str) — Aşağıdaki biçimde itme (push) yapılacak deposunun kimliği:<user>/<dataset_name>veya<org>/<dataset_name>. Ayrıca<dataset_name>, de kabul eder; bu durumda oturum açılmış kullanıcının ad alanı (namespace) varsayılan olarak kullanılır.Ayrıca bir varlığın içindeki bir konum da olabilir, örneğin
buckets/<user_or_org>/<bucket_name>/... - config_name (
str, varsayılan “default”) — Bir veri setinin yapılandırma adı (veya alt kümesi). Varsayılan olarak “default” değerini alır. - set_default (
bool, isteğe bağlı) — Bu yapılandırmanın varsayılan olarak ayarlanıp ayarlanmayacağı. Aksi takdirde, varsayılan yapılandırma “default” adlı olanıdır. - split (
str, isteğe bağlı) — Bu veri setine verilecek bölünmenin adı. Varsayılan olarakself.splitdeğerini kullanır. - data_dir (
str, isteğe bağlı) — Yüklenen veri dosyalarını içerecek dizin adı. “default”ten farklıysa varsayılan olarakconfig_name, aksi halde “data” kullanılır. - commit_message (
str, isteğe bağlı) — İterilirken iletilecek mesaj. Varsayılan olarak"Upload dataset"olur. - commit_description (
str, isteğe bağlı) — Oluşturulacak commit'in açıklaması. Ayrıca, bir PR oluşturulursa (create_prTrue ise) PR açıklaması. - private (
bool, isteğe bağlı) — Deponun özel yapılıp yapılmayacağı.None(varsayılan) ise, organizasyonun varsayılanı özel değilse depo herkese açık olacaktır. Depo zaten mevcutsa bu değer yok sayılır. - token (
str, isteğe bağlı) — Hugging Face Hub için isteğe bağlı bir kimlik doğrulama belirteci. Belirteç geçirilmezse,hf auth loginile oturum açılırken yerel olarak kaydedilen belirteç varsayılan olarak kullanılır. Belirteç geçirilmez ve kullanıcı oturum açmamışsa bir hata oluşturulur. - revision (
str, isteğe bağlı) — Yüklenen dosyaların itileceği dal. Varsayılan olarak"main"dalıdır. - create_pr (
bool, isteğe bağlı, varsayılanFalse) — Yüklenen dosyalarla bir PR oluşturulup oluşturulmayacağı veya doğrudan commit atılıp atılmayacağı. - max_shard_size (
intveyastr, isteğe bağlı) — Hub'a yüklenecek veri seti parçacıklarının isteğe bağlı maksimum boyutu. Bir dize olarak ifade ediliyorsa, birimden (ör."5MB") önce rakamlar içermelidir. Verilmezse, parçacık sayısı bu veri setinin.num_shardsdeğerine ayarlanır. - num_shards (
int, isteğe bağlı) — Yazılacak shard sayısı.max_shard_sizesağlanıpnum_shardssağlanmazsa, shard sayısımax_shard_sizedeğerinden tahmin edilir. Bu veri setinin.num_shardsdeğerinden büyük olabilir: bu durumda her giriş shard'ı, örnekleri yuvarlak-robin (round-robin) yöntemiyle birden fazla çıktı shard'ına yazarak dağıtılır. - embed_external_files (
bool, varsayılan olarakTrue) — Dosya baytlarının shard'lara gömülüp gömülmemesi. Özellikle, push işleminden önce şu alan türleri için şunları yapar: - num_proc (
int, isteğe bağlı, varsayılanNone) — Veri setini hazırlarken ve yüklerken kullanılacak süreç sayısı. Veri seti çok sayıda örnek ve dönüşümden oluşuyorsa bu parametre işe yarar. HF'ye hızlı yükleme için rust istemcisi olan hf_xet ile çalışmak için “spawn” bağlamını kullanır. Çok işlemcili çalışma (multiprocessing) varsayılan olarak devre dışıdır.
Veri setini Parquet veri seti olarak hub'a gönderir. Veri seti HTTP istekleri kullanılarak gönderilir ve git veya git-lfs kurulu olmasına gerek yoktur.
Oluşturulan Parquet dosyaları varsayılan olarak kendi kendine yeterlidir. Veri setiniz Image, Audio veya Video verisi içeriyorsa, Parquet dosyaları görüntü veya ses dosyalarınızın baytlarını saklar.
Bunu, embed_external_files değerini False olarak ayarlayarak devre dışı bırakabilirsiniz.
Örnek:
>>> 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)Veri setiniz birden fazla bölüme (ör. eğitim/doğrulama/test) sahipse:
>>> 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"]Bir veri setine yeni bir yapılandırma (veya alt küme) eklemek istiyorsanız (ör. veri seti birden fazla görev/sürüm/dil içeriyorsa):
>>> 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")Veri setinin state_dict'ini yükleyin. Yineleme, durumun kaydedildiği andan sonraki örnekten yeniden başlayacaktır.
Devam etmek, kontrol noktasının kaydedildiği tam noktaya döner; ancak iki durum hariç:
- shuffle tamponlarından gelen örnekler, devam ettirilince kaybolur ve tamponlar yeni verilerle doldurulur
.with_format(arrow)ve toplu.map()kombinasyonları bir partiyi atlayabilir.
Örnek:
>>> 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)şunu döndürür:
{'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 hoodVeri setinin güncel state_dict değerini alır. Bu, ürettiği son örnek durumuna karşılık gelir.
Devam etmek, kontrol noktasının kaydedildiği tam noktaya döner; ancak iki durum hariç:
- shuffle tamponlarından gelen örnekler, devam ettirilince kaybolur ve tamponlar yeni verilerle doldurulur
.with_format(arrow)ve toplu.map()kombinasyonları bir partiyi atlayabilir.
Örnek:
>>> 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)şunu döndürür:
{'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 hoodVeri setindeki tüm meta verileri içeren DatasetInfo nesnesi.
Adlandırılmış bir veri seti bölmesine karşılık gelen NamedSplit nesnesi.
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 )
Parametreler
- path_or_paths (
path-likeveyapath-likelistesi) — CSV dosya(lar)ının yolu(ları). - split (NamedSplit, opsiyonel) — Veri setine atanacak bölme adı.
- features (Features, isteğe bağlı) — Veri seti özellikleri.
- keep_in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı. - **kwargs (ek anahtar kelime argümanları) —
pandas.read_csvfonksiyonuna iletilecek anahtar kelime argümanları.
CSV dosyası/dosyalarından bir IterableDataset oluşturun.
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 )
Parametreler
- path_or_paths (
path-likeveyapath-likelistesi) — JSON veya JSON Lines dosyalarının yolları. - split (NamedSplit, opsiyonel) — Veri setine atanacak bölme adı.
- features (Features, isteğe bağlı) — Veri seti özellikleri.
- keep_in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı. - field (
str, isteğe bağlı) — Veri setinin bulunduğu JSON dosyasındaki alan adı. - **kwargs (ek anahtar kelime argümanları) —
JsonConfig'e iletilecek anahtar kelime argümanları.
JSON veya JSON Lines dosyalarından bir IterableDataset oluşturun.
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 )
Parametreler
- path_or_paths (
path-likeveyapath-likelistesi) — Parquet dosya(lar)ının yolu(ları). - split (
NamedSplit, isteğe bağlı) — Veri setine atanacak bölme adı. - features (
Features, isteğe bağlı) — Veri seti özellikleri. - keep_in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı. - columns (
List[str], isteğe bağlı) —Nonedeğilse, dosyadan yalnızca bu sütunlar okunur. Bir sütun adı, iç içe geçmiş bir alanın öneki olabilir; örneğin ‘a’, ‘a.b’, ‘a.c’ ve ‘a.d.e’ alanlarını seçer. - filters (
Union[pyarrow.dataset.Expression, list[tuple], list[list[tuple]]], isteğe bağlı) — Yalnızca filtreye uyan satırları döndürür. Mümkünse, veri kaynağında bulunan bölüntü bilgisi veya iç meta verilerden (ör. Parquet istatistikleri) yararlanmak için öngörülen ifade aşağıya itilir (push down). Değilse, yüklenen RecordBatch'ler verilmelerinden önce filtrelenir. - fragment_scan_options (
pyarrow.dataset.ParquetFragmentScanOptions, isteğe bağlı) — Parquet parçacıkları için taramaya özgü seçenekler. Bu, özellikle tamponlama ve önbellekleme yapılandırması için kullanışlıdır.4.2.0 sürümünde eklendi
- on_bad_files (
Literal["error", "warn", "skip"], isteğe bağlı, varsayılan olarak “error”) — Geçersiz bir dosya (okunamayan bir dosya) ile karşılaşıldığında ne yapılacağını belirtir. İzin verilen değerler şunlardır:- ‘error’, hatalı bir dosya karşılaşıldığında bir Exception fırlatır.
- ‘warn’, kötü bir dosya karşılaşıldığında bir uyarı yükseltir ve o dosyayı atlar.
- ‘skip’, karşılaşılan hatalı dosyaları uyarı veya hata yükseltmeden atlar.
4.2.0 sürümünde eklendi
- **kwargs (ek anahtar kelime argümanları) —
ParquetConfig'e iletilecek anahtar kelime argümanları.
Parquet dosyası/dosyalarından bir IterableDataset oluşturun.
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 )
Parametreler
- path_or_paths (
path-likeveyapath-likelistesi) — Metin dosyası/dosyalarının yolu/yolları. - split (
NamedSplit, isteğe bağlı) — Veri setine atanacak bölme adı. - features (
Features, isteğe bağlı) — Veri seti özellikleri. - keep_in_memory (
bool, varsayılanFalse) — Verilerin bellek içine kopyalanıp kopyalanmayacağı. - keep_linebreaks — (
bool, varsayılan False): Satır sonlarının korunup korunmayacağı. - sample_by (
Literal["line", "paragraph", "document"], varsayılan “line”) — Verinin satır, paragraf veya belge bazında yüklenip yüklenmeyeceğini belirtir. Varsayılan olarak veri setindeki bir satır = bir satır demektir. - **kwargs (ek anahtar kelime argümanları) —
TextConfig'e iletilecek anahtar kelime argümanları.
Metin dosyası/dosyalarından bir IterableDataset oluşturun.
sınıf datasets.IterableColumn
< source >( source: typing.Union[ForwardRef('IterableDataset'), ForwardRef('IterableColumn')]column_name: str )
Bir IterableDataset'in belirli bir sütunu için bir iterable.
Örnek:
IterableDatasetDict
Anahtar olarak bölme adlarını (örneğin ‘train’, ‘test’), değer olarak IterableDataset nesnelerini içeren sözlük.
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 )
Parametreler
- function (
Callable, isteğe bağlı, varsayılan olarakNone) — Veri setinde gezinirken örneklerin üzerine anlık olarak uygulanan işlev. Aşağıdaki imzalardan birine sahip olmalıdır:function(example: Dict[str, Any]) -> Dict[str, Any]ifbatched=Falseandwith_indices=Falsefunction(example: Dict[str, Any], idx: int) -> Dict[str, Any]ifbatched=Falseandwith_indices=Truefunction(batch: Dict[str, list]) -> Dict[str, list]ifbatched=Trueandwith_indices=Falsefunction(batch: Dict[str, list], indices: list[int]) -> Dict[str, list]ifbatched=Trueandwith_indices=True
Gelişmiş kullanım için, fonksiyon ayrıca
pyarrow.Tabledöndürebilir. Fonksiyon asenkron ise,mapfonksiyonunuzu paralel olarak çalıştırır. Ayrıca fonksiyonunuz hiçbir şey döndürmüyorsa (None),mapfonksiyonunuzu çalıştırır ve veri setini değiştirilmeden döndürür. Hiçbir fonksiyon sağlanmazsa, varsayılan olarak kimlik fonksiyonu kullanılır:lambda x: x. - with_indices (
bool, varsayılanFalse) —functioniçin örnek indeksleri sağlar. Bu durumdafunctionimzasınındef function(example, idx[, rank]): ...olması gerektiğine dikkat edin. - input_columns (
[Union[str, list[str]]], isteğe bağlı, varsayılanNone) —functioniçine konumsal argümanlar olarak geçirilecek sütunlar.Noneise, tüm biçimlendirilmiş sütunlara eşleyen bir sözlük tek argüman olarak geçirilir. - batched (
bool, varsayılanFalse) —functionişlevine örnekler birimini sağlar. - batch_size (
int, isteğe bağlı, varsayılan1000) —batched=Trueisefunction'a sağlanan parti başına örnek sayısı. - drop_last_batch (
bool, varsayılanFalse) —batch_sizedeğerinden küçük olan son bir partinin, işlenmek yerine atılıp atılmayacağını belirtir. - remove_columns (
[list[str]], isteğe bağlı, varsayılanNone) — Eşleme yapılırken seçilen sütunları kaldırır. Sütunlar, örneklerfunctionçıktısıyla güncellenmeden önce kaldırılır; yanifunction,remove_columnsiçindeki adlara sahip sütunlar ekliyorsa bu sütunlar korunur. - fn_kwargs (
Dict, isteğe bağlı, varsayılanNone) —functionfonksiyonuna iletilecek anahtar kelime argümanları
İteratif veri setindeki tüm örneklerin (bireysel olarak veya toplu halde) üzerine bir fonksiyon uygulayın ve bunları güncelleyin. Fonksiyonunuz zaten var olan bir sütun döndürürse, bu sütun üzerine yazar. Fonksiyon, veri seti üzerinde iterasyon yapılırken örneklerin üzerine anlık olarak uygulanır. Dönüşüm, veri seti sözlüğündeki tüm veri setlerine uygulanır.
Fonksiyonun toplu (batch) olarak mı yoksa tekil olarak mı çalışacağı, batched parametresi ile belirtilebilir:
- batched
Falseise, fonksiyon 1 örnek alır ve 1 örnek döndürmelidir. Bir örnek, bir sözlüktür, örn.{"text": "Hello there !"}. - batched
Truevebatch_size1 ise, fonksiyon girdi olarak 1 örnekten oluşan bir batch alır ve 1 veya daha fazla örnekten oluşan bir batch döndürebilir. Bir batch bir sözlüktür, örneğin 1 örnekten oluşan bir batch{"text": ["Hello there !"]}şeklindedir. Truevebatch_sizen> 1 ise, fonksiyon girdi olaraknörnekten oluşan bir batch alır venörnekten oluşan bir batch veya herhangi bir sayıda örnek içeren bir batch döndürebilir. Son batch'innörnekten az örnek içerebileceğine dikkat edin. Bir batch bir sözlüktür, örneğinnörnekten oluşan bir batch{"text": ["Hello there !"] * n}şeklindedir.
Eğer fonksiyon asenkron ise, map fonksiyonunuzu paralel olarak çalıştırır ve en fazla bin eşzamanlı çağrı yapar.
Aynı anda çalışabilecek maksimum işlem sayısını belirlemek istiyorsanız, fonksiyonunuzda asyncio.Semaphore kullanmanız önerilir.
Örnek:
>>> 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 .'}filtre
< 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 )
Parametreler
- function (
Callable) — Aşağıdaki imzalardan birine sahip Callable:function(example: Dict[str, Any]) -> boolifwith_indices=False, batched=Falsefunction(example: Dict[str, Any], indices: int) -> boolifwith_indices=True, batched=Falsewith_indices=False, batched=Trueisefunction(example: Dict[str, list]) -> list[bool]function(example: Dict[str, list], indices: list[int]) -> list[bool]ifwith_indices=True, batched=True
Hiçbir fonksiyon sağlanmazsa, her zaman True dönen bir varsayılan fonksiyon kullanılır:
lambda x: True. - with_indices (
bool, varsayılanFalse) —functioniçin örnek indeksleri sağlar. Bu durumdafunctionimzasınındef function(example, idx): ...olması gerektiğini unutmayın. - input_columns (
strveyalist[str], isteğe bağlı) —functioniçine konumsal argümanlar olarak geçirilecek sütunlar.Noneise, biçimlendirilmiş tüm sütunlara eşleyen bir sözlük tek argüman olarak geçirilir. - batched (
bool, varsayılanFalse) —functionişlevine örnekler bir partisi sağlar - batch_size (
int, isteğe bağlı, varsayılan1000) —batched=Trueisefunction'a sağlanan parti başına örnek sayısı. - fn_kwargs (
Dict, isteğe bağlı, varsayılanNone) —functionfonksiyonuna iletilecek anahtar kelime argümanları
Filtreleme işlevini tüm öğelere uygulayın; böylece veri kümesi yalnızca filtreleme işlevine uygun örnekleri içerir. Filtreleme, veri kümesi üzerinde gezinirken anlık olarak yapılır. Filtreleme, veri kümesi sözlüğündeki tüm veri kümelerine uygulanır.
Örnek:
>>> 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 .'}]karıştır
< source >( seed = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonebuffer_size: int = 1000max_buffer_input_shards: int = 10 )
Parametreler
- seed (
int, isteğe bağlı, varsayılanNone) — Veri setini karıştırmak için kullanılacak rastgele tohum. Karıştırma tamponundan örnek almak ve veri parçalarını karıştırmak için kullanılır. - generator (
numpy.random.Generator, isteğe bağlı) — Veri seti satırlarının permütasyonunu hesaplamak için kullanılacak Numpy rastgele Generator.generator=None(varsayılan) ise,np.random.default_rng(NumPy'nin varsayılan BitGenerator'ı (PCG64)) kullanılır. - buffer_size (
int, varsayılan1000) — Tampon boyutu. - max_buffer_input_shards (
int, varsayılan10) — Bir seferde tamponu beslemek için kullanılacak maksimum shard sayısı.
Bu veri setinin öğelerini rastgele karıştırır. Karıştırma işlemi, veri seti sözlüğündeki tüm veri setlerine uygulanır.
Bu veri seti, bir tamponu buffer_size öğeyle doldurur, ardından bu tampondan rastgele öğe örnekler ve seçilen öğeleri yeni öğelerle değiştirir. Mükemmel karıştırma için, tampon boyutunun veri setinin tam boyutuna eşit veya ondan büyük olması gerekir.
Örneğin, veri setiniz 10.000 öğe içeriyor ancak buffer_size 1000 olarak ayarlanmışsa, shuffle başlangıçta tampondaki yalnızca ilk 1000 öğeden rastgele bir öğe seçer. Bir öğe seçildiğinde, tampondaki yeri bir sonraki (yani 1.001. öğe) öğeyle değiştirilir ve 1000 öğelik tampon korunur.
Veri kümesi birkaç parçadan (shard) oluşuyorsa, parçaların sırasını da shuffle eder.
Ancak sıra skip() veya take() kullanılarak sabitlenmişse, parçaların sırası değiştirilmeden korunur.
Örnek:
>>> 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 )
Belirtilen biçimde bir veri seti döndürür.
Örnek:
>>> 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])}döküm
< source >( features: Features ) → IterableDatasetDict
Parametreler
- features (
Features) — Veri setinin dönüştürüleceği yeni özellikler. Özelliklerdeki alan adları, mevcut sütun adlarıyla eşleşmelidir. Veri türü de bir türden diğerine dönüştürülebilir olmalıdır. Örneğinstring<->ClassLabelgibi basit olmayan dönüşümler için Dataset'i güncellemek üzeremapkullanmalısınız.
Dönüş değeri
Dönüştürülmüş özelliklere sahip veri setinin bir kopyası.
Veri setini yeni bir özellik kümesine dönüştürür. Tip dönüşümü, veri seti sözlüğündeki tüm veri setlerine uygulanır.
Örnek:
>>> 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] )
Çözümlendirme için sütunu özellik olarak dönüştürür. Tip dönüştürme, veri seti sözlüğündeki tüm veri setlerine uygulanır.
Örnek:
>>> 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
Parametreler
Dönüş değeri
Kaldırılacak sütunlar olmadan veri seti nesnesinin bir kopyası.
Veri setindeki bir veya birden fazla sütunu ve bunlara ilişkili özellikleri kaldırır. Kaldırma işlemi, veri seti üzerinde iterasyon yapılırken örnekler üzerinde anlık olarak gerçekleştirilir. Kaldırma işlemi, veri seti sözlüğündeki tüm veri setlerine uygulanır.
Örnek:
>>> 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
Veri setindeki bir sütunu yeniden adlandırın ve orijinal sütuna ait özellikleri yeni sütun adının altına taşıyın. Yeniden adlandırma, veri seti sözlüğündeki tüm veri setlerine uygulanır.
Örnek:
>>> 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
Parametreler
Dönüş değeri
Sütun adları değiştirilmiş veri setinin bir kopyası
Veri setindeki birkaç sütunu yeniden adlandırın ve orijinal sütunlarla ilişkili özellikleri yeni sütun adları altına taşıyın. Yeniden adlandırma, veri seti sözlüğündeki tüm veri setlerine uygulanır.
Örnek:
>>> 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
Parametreler
Dönüş değeri
Sadece seçilen sütunlara sahip veri seti nesnesinin bir kopyası.
Veri setinde bir veya birden fazla sütun ve bunlara ilişkili özellikleri seçin. Seçim, veri seti üzerinde iterasyon yapılırken örnekler üzerinde anlık olarak yapılır. Seçim, veri seti sözlüğündeki tüm veri setlerine uygulanır.
Örnek:
>>> 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 )
Parametreler
- repo_id (
str) — Aşağıdaki biçimde itme (push) yapılacak deposunun kimliği:<user>/<dataset_name>veya<org>/<dataset_name>. Ayrıca<dataset_name>, de kabul eder; bu durumda oturum açılmış kullanıcının ad alanı (namespace) varsayılan olarak kullanılır.Ayrıca bir varlığın içindeki bir konum da olabilir, örneğin
buckets/<user_or_org>/<bucket_name>/... - config_name (
str) — Bir veri setinin yapılandırma adı. Varsayılan olarak “default” değerini alır. - set_default (
bool, isteğe bağlı) — Bu yapılandırmanın varsayılan olarak ayarlanıp ayarlanmayacağı. Aksi takdirde, varsayılan yapılandırma “default” adlı olanıdır. - data_dir (
str, isteğe bağlı) — Yüklenen veri dosyalarını içerecek dizin adı. Farklıysaconfig_namedeğilse “data” olarak varsayılan değerdir.2.17.0 sürümünde eklendi
- commit_message (
str, isteğe bağlı) — İterilirken iletilecek mesaj. Varsayılan olarak"Upload dataset"olur. - commit_description (
str, isteğe bağlı) — Oluşturulacak commit'in açıklaması. Ayrıca, bir PR oluşturulursa PR açıklaması da (create_prTrue ise).2.16.0 sürümünde eklendi
- private (
bool, isteğe bağlı) — Deponun özel yapılıp yapılmayacağı.None(varsayılan) ise, organizasyonun varsayılanı özel değilse depo herkese açık olacaktır. Depo zaten mevcutsa bu değer yok sayılır. - token (
str, isteğe bağlı) — Hugging Face Hub için isteğe bağlı bir kimlik doğrulama belirteci. Belirteç geçirilmezse,hf auth loginile oturum açılırken yerel olarak kaydedilen belirteç varsayılan olarak kullanılır. Belirteç geçirilmez ve kullanıcı oturum açmamışsa bir hata oluşturulur. - revision (
str, isteğe bağlı) — Yüklenen dosyaların itileceği dal. Varsayılan olarak"main"dalıdır. - create_pr (
bool, isteğe bağlı, varsayılanFalse) — Yüklenen dosyalarla bir PR oluşturulup oluşturulmayacağı veya doğrudan commit atılıp atılmayacağı. - max_shard_size (
intveyastr, isteğe bağlı) — Hub'a yüklenecek veri seti parçacıklarının isteğe bağlı maksimum boyutu. Bir dize olarak ifade ediliyorsa, birimden (ör."500MB"veya"1GB") önce rakamlar içermelidir. Belirtilmezse, her bölme kendi veri seti yerel parçacık sayısını korur. - num_shards (
Dict[str, int], isteğe bağlı) — Yazılacak shard sayısı. Her split için farklı birnum_shardstanımlamak için sözlük kullanın.max_shard_sizesağlanırsa ve bir split içinnum_shardsverilmezse, o split için shard sayısımax_shard_sizedeğerinden tahmin edilir. - embed_external_files (
bool, varsayılan olarakTrue) — dosya baytlarının shard'lara gömülüp gömülmemesi. Özellikle, push işleminden önce şu alan türleri için şunlar yapılır: - num_proc (
int, isteğe bağlı, varsayılan olarakNone) — Veri setini hazırlarken ve yüklerken kullanılacak süreç sayısı. Veri seti gömülecek çok sayıda örnek veya medya dosyasından oluşuyorsa bu parametre işe yarar. hf_xet ile çalışmak için “spawn” bağlamını kullanır; hf_xet, HF'ye hızlı yüklemeler için kullanılan rust istemcisidir. Çok işlemcili çalışma (multiprocessing) varsayılan olarak devre dışıdır.4.0.0 sürümünde eklendi
IterableDatasetDict nesnesini Parquet veri seti olarak hub'a gönderir. IterableDatasetDict, HTTP istekleri kullanılarak gönderilir ve git veya git-lfs kurulu olmasına gerek yoktur.
Her veri seti bölümü bağımsız olarak itilecektir. İtilen veri seti, orijinal bölüm adlarını koruyacaktır.
Oluşturulan Parquet dosyaları varsayılan olarak kendi kendine yeterlidir: veri setiniz Image veya Audio verisi içeriyorsa, Parquet dosyaları görüntü veya ses dosyalarınızın baytlarını saklar.
Bunu, embed_external_files değerini False olarak ayarlayarak devre dışı bırakabilirsiniz.
Örnek:
>>> 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})Bir veri setine yeni bir yapılandırma (veya alt küme) eklemek istiyorsanız (ör. veri seti birden fazla görev/sürüm/dil içeriyorsa):
>>> 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")Özellikler
Bir veri setinin iç yapısını tanımlayan özel bir sözlük.
dict[str, FieldType] türünde bir sözlük ile örneklenir; anahtarlar istenen sütun adlarını, değerler ise o sütunun türünü belirtir.
FieldType aşağıdakilerden biri olabilir:
- Value özelliği, örneğin
int64veyastringgibi tek bir veri türü değerini belirtir. - ClassLabel özelliği, etiketlerle ilişkilendirilebilen ve veri setinde tamsayılar olarak saklanacak olan önceden tanımlanmış bir sınıf kümesini belirtir.
- Python
dict, alt alanların alt özelliklere eşlenmesini içeren bileşik bir özellik belirtir. İstendiği gibi iç içe geçmiş alanların iç içe geçmiş alanlara sahip olması mümkündür. - List veya LargeList, hepsi aynı özellik türünde olan alt özelliklerin bir dizisini içeren bileşik bir özelliği belirtir.
- Çok boyutlu diziler için Array2D, Array3D, Array4D veya Array5D özelliği.
- Audio özelliği, bir ses dosyasının mutlak yolunu veya bir ses dosyasının göreli yolunu (“path” anahtarı) ve bayt içeriğini (“bytes” anahtarı) içeren bir sözlüğü depolamak için kullanılır. Bu özellik, sesi bir kod çözücüyle tembel (lazy) olarak yükler.
- Image özelliği, bir görüntü dosyasının mutlak yolunu, bir
np.ndarraynesnesini, birPIL.Image.Imagenesnesini veya bir görüntü dosyasının göreli yolunu (“path” anahtarı) ve bayt içeriğini (“bytes” anahtarı) içeren bir sözlüğü depolamak için kullanılır. Bu özellik, görüntü verilerini çıkarır. - Bir video dosyasının mutlak yolunu, bir
torchcodec.decoders.VideoDecodernesnesini veya bir video dosyasının göreli yolunu (“path” anahtarı) ve bayt içeriğini (“bytes” anahtarı) içeren bir sözlüğü depolamak için Video özelliği. Bu özellik, videoyu bir kodlayıcı ile tembel (lazy) olarak yükler. - Pdf özelliği, bir PDF dosyasının mutlak yolunu, bir
pdfplumber.pdf.PDFnesnesini veya bir PDF dosyasının göreli yolunu (“path” anahtarı) ve bayt içeriğini (“bytes” anahtarı) içeren bir sözlüğü saklamak için kullanılır. Bu özellik, PDF dosyasını bir PDF okuyucu ile tembel (lazy) olarak yükler. - Nifti özelliği, bir NIfTI nörogörüntüleme dosyasının mutlak yolunu, bir
nibabel.Nifti1Imagenesnesini veya bir NIfTI dosyasının göreli yolunu (“path” anahtarı) ve bayt içeriğini (“bytes” anahtarı) içeren bir sözlüğü saklamak için kullanılır. Bu özellik, NIfTI dosyasını nibabel ile tembel (lazy) olarak yükler. - Makine Çevirisi'ne özgü Translation veya TranslationVariableLanguages özelliği.
- Json özelliği, karışık/istisnai tipler içeren yapılandırılmamış verileri depolamak için kullanılır. Arka planda
Features öğesinin derin bir kopyasını oluşturun.
decode_batch
< source >( batch: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )
Özel özellik çözümleme ile çözümlenme partisi.
decode_column
< source >( column: listcolumn_name: strtoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )
Özel özellik çözümleme ile sütunu çözümlen.
decode_example
< source >( example: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )
Özel özellik çözümleme ile çözümleme örneği.
encode_batch
< source >( batch )
Batch'i Arrow için bir formata kodlayın.
encode_column
< source >( columncolumn_name: str )
Encode sütununu Arrow için bir formata dönüştürür.
encode_example
< source >( example )
Örneği Arrow için bir formata kodlayın.
Özellikleri düzleştirin. Her sözlük sütunu kaldırılır ve içerdiği tüm alt alanlarla değiştirilir. Yeni alanlar, orijinal sütun adının ve alt alan adının birleştirilmesiyle şu şekilde adlandırılır: <original>.<subfield>.
Bir sütun iç içe geçmiş sözlükler içeriyorsa, alt düzey alt alan adları da birleştirilerek yeni sütunlar oluşturulur: <original>.<subfield>.<subsubfield> vb.
Örnek:
>>> 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 )
Arrow şemasından Features oluşturur. Ayrıca şema meta verilerini Hugging Face Datasets özellikleri için de kontrol eder. Boş olmayan (non-nullable) alanlar desteklenmez ve boş olabilir (nullable) olarak ayarlanır.
Ayrıca, pa.dictionary desteklenmez ve bunun yerine alttaki türü kullanılır. Bu nedenle veri kümeleri, DictionaryArray nesnelerini gerçek değerlerine dönüştürür.
from_dict
< source >( dic ) → Features
dict'ten [Features] oluştur.
Dizileştirilmemiş bir sözlükten iç içe geçmiş özellik nesnesini yeniden oluşturun. Özellik FieldType'nin dataclass adını çıkarmak için _type anahtarını kullanıyoruz.
Serileştirilmemiş JSON sözlüklerinden özellikleri tanımlamak için kullanışlı bir yapıcı sözdizimi sağlar. Bu işlev, özellikle bir JSON nesnesine boşaltılmış bir [DatasetInfo] serileştirilirken kullanılır. Bu, [Features.from_arrow_schema] işlevinin bir benzeri olarak çalışır ve özyinelemeli alan bazlı örneklemeyi ele alır, ancak [Value] tarafından otomatik olarak gerçekleştirilen pyarrow ilkel veri türleri eşlemesinden yararlanma dışında pyarrow'a herhangi bir eşleme gerektirmez.
reorder_fields_as
< source >( other: Features )
Diğer [Features] alanlarının sırasıyla eşleşecek şekilde Features alanlarını yeniden sıralayın.
Alanların sırası, alttaki arrow verisi için önemli olduğu için önemlidir. Alanların yeniden sıralanması, alttaki arrow veri türünün eşleşmesini sağlar.
Örnek:
>>> 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.typeSkaler
sınıf datasets.Value
< source >( dtype: strid: typing.Optional[str] = None )
Belirli bir veri türünün skaler özellik değeri.
Value'in olası dtypes değerleri aşağıdaki gibidir:
nullboolint8int16int32int64uint8uint16uint32uint64float16float32(takma ad float)float64(double takma adı)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
sınıf datasets.ClassLabel
< source >( num_classes: dataclasses.InitVar[typing.Optional[int]] = Nonenames: list = Nonenames_file: dataclasses.InitVar[typing.Optional[str]] = Noneid: typing.Optional[str] = None )
Parametreler
- num_classes (
int, isteğe bağlı) — Sınıf sayısı. Tüm etiketlernum_classesdeğerinden küçük olmalıdır. - names (
listofstr, isteğe bağlı) — Tam sayı sınıfları için dize adları. Adların verildiği sıra korunur. - names_file (
str, isteğe bağlı) — Tam sayı sınıfları için adlar içeren dosyanın yolu, her satırda bir ad.
Tam sayı sınıf etiketleri için özellik türü.
ClassLabel tanımlamanın 3 yolu vardır ve bunlar 3 argümana karşılık gelir:
num_classes: 0'dan (num_classes-1)'e kadar etiketler oluşturun.names: Etiket dizgilerinin listesi.names_file: Etiket listesini içeren dosya.
Arka planda etiketler tamsayı olarak saklanır. Bilinmeyen/eksik etiketleri temsil etmek için -1 kullanabilirsiniz.
Örnek:
>>> 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
Bir Arrow dizisini ClassLabel arrow depolama türüne dönüştürür.
ClassLabel pyarrow depolama türüne dönüştürülebilen Arrow türleri şunlardır:
pa.string()pa.int()
Dönüşüm integer => sınıf adı string.
Bilinmeyen/eksik etiketler hakkında: Negatif tamsayılar geçirmek ValueError hatası oluşturur.
Dönüşüm sınıfı adı string => integer.
Bileşik
sınıf datasets.LargeList
< source >( feature: typing.Anyid: typing.Optional[str] = None )
Çocuk özellik veri türünden oluşan büyük liste verileri için özellik türü.
pyarrow.LargeListType tarafından desteklenir; bu, pyarrow.ListType'e benzer ancak 32 bit yerine 64 bit ofsetler kullanır.
sınıf datasets.List
< source >( feature: typing.Anylength: int = -1id: typing.Optional[str] = None )
Çocuk özellik veri türünden oluşan büyük liste verileri için özellik türü.
pyarrow.ListType tarafından desteklenir; bu, 32 bitlik ofsetler veya sabit bir uzunluk kullanır.
sınıf datasets.Sequence
< source >( feature = Nonelength = -1**kwargs )
Sequence, iç sözlük özelliklerini otomatik olarak listeler sözlüğüne dönüştüren bir yardımcıdır. Bu davranış, TensorFlow Datasets kütüphanesiyle bir uyumluluk katmanı sağlamak amacıyla uygulanmıştır ancak bazı durumlarda istenmeyebilir. Bu davranışı istemiyorsanız, Sequence yerine List veya LargeList kullanabilirsiniz.
Çeviri
sınıf datasets.Translation
< source >( languages: listid: typing.Optional[str] = None )
Örnek başına sabit dillerle çeviriler için Feature.
Burada tfds ile uyumluluk için.
Örnek:
>>> # At construction time:
>>> datasets.features.Translation(languages=['en', 'fr', 'de'])
>>> # During data generation:
>>> yield {
... 'en': 'the cat',
... 'fr': 'le chat',
... 'de': 'die katze'
... }Translation özelliğini bir sözlüğe (dictionary) düzleştirin.
sınıf 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)
Parametreler
- languages (
dict) — Her örnek için, string dil kodlarını bir veya birden fazla string çeviriye eşleyen bir sözlük. Mevcut diller, örneğe göre değişebilir.
Dönüş değeri
languageveyatranslation(değişken uzunlukta 1 boyutlutf.stringtüründetf.Tensor)
Artan sırada sıralanmış dil kodları veya dil kodlarıyla hizalanacak şekilde sıralanmış düz metin çevirileri.
Örnek başına değişken dillerle çeviriler için Feature.
Burada tfds ile uyumluluk için.
Örnek:
>>> # 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'],
... }TranslationVariableLanguages özelliğini bir sözlüğe düzleştirin.
Diziler
sınıf datasets.Array2D
< source >( shape: tupledtype: strid: typing.Optional[str] = None )
İki boyutlu bir dizi oluşturun.
sınıf datasets.Array3D
< source >( shape: tupledtype: strid: typing.Optional[str] = None )
Üç boyutlu bir dizi oluşturun.
sınıf datasets.Array4D
< source >( shape: tupledtype: strid: typing.Optional[str] = None )
Dört boyutlu bir dizi oluşturun.
sınıf datasets.Array5D
< source >( shape: tupledtype: strid: typing.Optional[str] = None )
Beş boyutlu bir dizi oluşturun.
Ses
sınıf 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 )
Parametreler
- sampling_rate (
int, isteğe bağlı) — Hedef örneklem hızı.Noneise yerel örneklem hızı kullanılır. - num_channels (
int, isteğe bağlı) — Örneklerin istenen kanal sayısı. Varsayılan olarak, kaynağın kanal sayısı kullanılır. Ses kod çözme, (num_channels, num_samples) biçiminde örnekler döndürür. Şu andaNone(kaynağın kanal sayısı, varsayılan),1(mono) veya2(stereo) kanalları desteklenir.num_channelsargümanı,torchcodec.decoders.AudioDecoder.4.4.0 sürümünde eklendi
- decode (
bool, varsayılanTrue) — Ses verisinin çözümlenip çözümlenmeyeceğini belirtir.Falseise, alttaki sözlüğü{"path": audio_path, "bytes": audio_bytes}biçiminde döndürür. - stream_index (
int, isteğe bağlı) — Dosyadan kullanılacak akış indeksi.Noneise “en iyi” indekse varsayılan olarak ayarlanır.
Ses Feature, bir ses dosyasından ses verilerini çıkarmak için kullanılır.
Girdi: Ses özelliği girdi olarak şunları kabul eder:
str: Ses dosyasının mutlak yolu (yani rastgele erişime izin verilir).A
pathlib.Path: ses dosyasının yolu (yani rastgele erişime izin verilir).Şu anahtarlara sahip bir
dict:path: Ses dosyasının arşiv dosyasına göre göreli yolunu içeren String.bytes: Ses dosyasının bayt içeriği.
Bu, ses dosyalarını gömülü olarak içeren parquet veya webdataset dosyaları için kullanışlıdır.
Şu anahtarlara sahip bir
dict:array: Ses örneğini içeren dizisampling_rate: Ses örneğinin örnekleme hızına karşılık gelen tamsay.
A
torchcodec.decoders.AudioDecoder: torchcodec ses kodlayıcı nesnesi.
Çıktı: Ses özellikleri, ek anahtarlarla birlikte torchcodec.decoders.AudioDecoder nesneleri olarak veri çıktısı verir:
array: Ses örneğini içeren dizisampling_rate: Ses örneğinin örnekleme hızına karşılık gelen tamsay.
Örnek:
>>> 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
Bir Arrow dizisini Audio arrow depolama türüne dönüştürür. Audio pyarrow depolama türüne dönüştürülebilen Arrow türleri şunlardır:
pa.string()- “path” verisi içermelidirpa.binary()- ses baytlarını içermelidirpa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- sıra önemli değildir
decode_example
< source >( value: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )
Parametreler
- value (
dict) — Anahtarları şunlar olan bir sözlük:path: Göreli ses dosyası yolunu içeren String.bytes: Ses dosyasının baytları.
- token_per_repo_id (
dict, isteğe bağlı) — Hub'daki özel depolardaki ses dosyalarına erişmek ve çözmek için, repo_id (str) -> token (boolveyastr) biçiminde bir sözlük geçebilirsiniz.
Örnek ses dosyasını ses verisine çözümlen.
embed_storage
< source >( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray
Parametreler
- storage (
pa.StructArray) — Gömülecek PyArrow dizisi. - token_per_repo_id (
dict, isteğe bağlı) — Dosya baytlarını almak için repo_id -> token sözlüğü. - local_files (
bool, varsayılan olarakTrue) — yerel dosya verilerinin diziye gömülüp gömülmemesi4.8.5 sürümünde eklendi
- remote_files (
bool, varsayılan olarakTrue) — Dizide uzaktaki dosya verilerini gömüp gömmeyeceğini belirtir. Örn. hf:// veya https:// ile başlayan yollara sahip dosyalar4.8.5 sürümünde eklendi
Dönüş değeri
pa.StructArray
Ses okuru depolama türündeki dizi, yani
pa.struct({"bytes": pa.binary(), "path": pa.string()}).
Ses dosyalarını Arrow dizisine gömün.
encode_example
< source >( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('AudioDecoder')] ) → dict
Örneği Arrow için bir formata kodlayın.
Eğer durum çözülebilir (decodable) ise bir hata yükseltin, aksi takdirde özelliği bir sözlüğe (dictionary) düzleştirin.
Görsel
sınıf datasets.Image
< source >( mode: typing.Optional[str] = Nonedecode: bool = Trueid: typing.Optional[str] = None )
Bir görüntü dosyasından görüntü verilerini okumak için Feature görüntüsü.
Girdi: Image özelliği girdi olarak şunları kabul eder:
A
str: Görsel dosyasının mutlak yolu (yani rastgele erişime izin verilir).A
pathlib.Path: görüntü dosyasının yolu (yani rastgele erişime izin verilir).Şu anahtarlara sahip bir
dict:path: Arşiv dosyasına göre görüntü dosyasının göreli yolunu içeren String.bytes: Görsel dosyasının baytları.
Bu, görsel dosyaları gömülü olarak içeren parquet veya webdataset dosyaları için kullanışlıdır.
np.ndarray: Bir görüntüyü temsil eden NumPy dizisi.A
PIL.Image.Image: PIL görüntü nesnesi.
Çıktı: Image özellikleri verileri PIL.Image.Image nesneleri olarak çıktılar.
Örnekler:
>>> 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
Bir Arrow dizisini Image arrow depolama türüne dönüştürür. Image pyarrow depolama türüne dönüştürülebilen Arrow türleri şunlardır:
pa.string()- “path” verisi içermelidirpa.large_string()- “path” verisi içermelidir (mümkünse string'e dönüştürülür)pa.binary()- görüntü baytlarını içermelidirpa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- sıra önemli değildirpa.list(*)- görüntü dizi verilerini içermelidir
decode_example
< source >( value: dicttoken_per_repo_id = None )
Parametreler
- value (
strveyadict) — Mutlak görüntü dosya yolunu içeren bir dize, aşağıdaki anahtarlara sahip bir sözlük:path: Mutlak veya göreli görüntü dosya yolunu içeren String.bytes: Görsel dosyasının baytları.
- token_per_repo_id (
dict, isteğe bağlı) — Hub üzerindeki özel depolardaki görüntü dosyalarına erişmek ve çözümlemek için, repo_id (str) -> token (boolveyastr) biçiminde bir sözlük geçebilirsiniz.
Örnek görüntü dosyasını görüntü verisine çözümlen.
embed_storage
< source >( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray
Parametreler
- storage (
pa.StructArray) — Gömülecek PyArrow dizisi. - token_per_repo_id (
dict, isteğe bağlı) — Dosya baytlarını almak için repo_id -> token sözlüğü. - local_files (
bool, varsayılan olarakTrue) — yerel dosya verilerinin diziye gömülüp gömülmemesi4.8.5 sürümünde eklendi
- remote_files (
bool, varsayılan olarakTrue) — Dizide uzaktaki dosya verilerini gömüp gömmeyeceğini belirtir. Örn. hf:// veya https:// ile başlayan yollara sahip dosyalar4.8.5 sürümünde eklendi
Dönüş değeri
pa.StructArray
Image arrow depolama türündeki dizi, yani
pa.struct({"bytes": pa.binary(), "path": pa.string()}).
Görsel dosyalarını Arrow dizisine gömün.
encode_example
< source >( value: typing.Union[str, bytes, bytearray, dict, numpy.ndarray, ForwardRef('PIL.Image.Image')] )
Örneği Arrow için bir formata kodlayın.
Çözülebilir durumda ise özelliğin kendisini, aksi halde özelliği bir sözlüğe düzleştirerek döndürür.
Video
sınıf 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 )
Parametreler
- decode (
bool, varsayılanTrue) — Video verisinin çözümlenip çözümlenmeyeceğini belirtir.Falseise, alttaki sözlük{"path": video_path, "bytes": video_bytes}biçiminde döndürülür. - stream_index (
int, isteğe bağlı) — Dosyadan kullanılacak akış indeksi.Noneise “en iyi” indekse varsayılan olarak ayarlanır. - dimension_order (
str, varsayılanNCHW) — Çözümlenen karelerin boyut sırası. Burada N, parti boyutunu; C, kanal sayısını; H, karelerin yüksekliğini ve W, genişliğini ifade eder. - num_ffmpeg_threads (
int, varsayılan1) — Videoyu çözmek için kullanılacak iş parçacığı sayısı. (Bunun 1 olarak bırakılması önerilir) - device (
strveyatorch.device, varsayılancpu) — Videoyu çözmek için kullanılacak cihaz. - seek_mode (
str, varsayılanexact) — Kare erişiminin “exact” (tam) mi yoksa “approximate” (yaklaşık) mi olacağını belirler. Exact, i numaralı karenin istendiğinde her zaman i numaralı karenin döndürüleceğini garanti eder, ancak bunun için dosyanın başlangıçta taranması gerekir. Approximate, dosyayı taramaktan kaçındığı için daha hızlıdır, ancak i’nin muhtemel konumunu hesaplamak için dosyanın meta verilerini kullandığından daha az hassastır. daha fazla bilgi burada
Video dosyasından video verisi okumak için Feature Video.
Girdi: Video özelliği girdi olarak şunları kabul eder:
str: Video dosyasının mutlak yolu (yani rastgele erişime izin verilir).A
pathlib.Path: video dosyasının yolu (yani rastgele erişime izin verilir).Şu anahtarlara sahip bir
dict:path: Veri seti deposundaki video dosyasının göreli yolunu içeren String.bytes: Video dosyasının baytları.
Bu, video dosyalarını gömülü olarak içeren parquet veya webdataset dosyaları için kullanışlıdır.
A
torchcodec.decoders.VideoDecoder: torchcodec video çözücü nesnesi.
Çıktı: Video özellikleri, çıktı verilerini torchcodec.decoders.VideoDecoder nesneleri olarak sunar.
Örnekler:
>>> 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
Bir Arrow dizisini Video arrow depolama türüne dönüştürür. Video pyarrow depolama türüne dönüştürülebilen Arrow türleri şunlardır:
pa.string()- “path” verisi içermelidirpa.binary()- video baytlarını içermelidirpa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- sıra önemli değildirpa.list(*)- video dizisi verilerini içermelidir
decode_example
< source >( value: typing.Union[str, datasets.features.video.Example]token_per_repo_id: typing.Optional[dict[str, typing.Union[bool, str]]] = None )
Parametreler
- value (
strveyadict) — Mutlak video dosya yolunu içeren bir dize, şu anahtarlara sahip bir sözlük:path: Mutlak veya göreli video dosya yolunu içeren String.bytes: Video dosyasının baytları.
- token_per_repo_id (
dict, isteğe bağlı) — Hub'daki özel depolardaki video dosyalarına erişmek ve çözümlemek için, repo_id (str) -> token (boolveyastr) biçiminde bir sözlük geçebilirsiniz.
Örnek video dosyasını video verisine çözümlen.
embed_storage
< source >( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray
Parametreler
- storage (
pa.StructArray) — Gömülecek PyArrow dizisi. - token_per_repo_id (
dict, isteğe bağlı) — Dosya baytlarını almak için repo_id -> token sözlüğü. - local_files (
bool, varsayılan olarakTrue) — yerel dosya verilerinin diziye gömülüp gömülmemesi4.8.5 sürümünde eklendi
- remote_files (
bool, varsayılan olarakTrue) — Dizide uzaktaki dosya verilerini gömüp gömmeyeceğini belirtir. Örn. hf:// veya https:// ile başlayan yollara sahip dosyalar4.8.5 sürümünde eklendi
Dönüş değeri
pa.StructArray
Video'daki pa.struct({"bytes": pa.binary(), "path": pa.string()}) olan arrow depolama türündeki dizi,
Görsel dosyalarını Arrow dizisine gömün.
encode_example
< source >( value: typing.Union[str, bytes, bytearray, datasets.features.video.Example, numpy.ndarray, ForwardRef('VideoDecoder')] )
Örneği Arrow için bir formata kodlayın.
Çözülebilir durumda ise özelliğin kendisini, aksi halde özelliği bir sözlüğe düzleştirerek döndürür.
Mesh
sınıf datasets.Mesh
< source >( decode: bool = Trueid: typing.Optional[str] = None )
Bir dosyadan 3D mesh verisi okumak için Feature sınıfı.
Girdi: Mesh özelliği girdi olarak şunları kabul eder:
A
str: Mesh dosyasının mutlak yolu (yani rastgele erişime izin verilir).A
pathlib.Path: mesh dosyasına giden yol (yani rastgele erişime izin verilir).Şu anahtarlara sahip bir
dict:path: Arşiv dosyasına göre mesh dosyasının göreli yolunu içeren String.bytes: Mesh dosyasının baytları.
Bu, mesh dosyalarını gömülü olarak içeren parquet veya webdataset dosyaları için kullanışlıdır.
A
trimesh.Trimeshveyatrimesh.Scene: 3B ağ veya sahne nesnesi.
Çıktı: Mesh özelliği verileri trimesh.Trimesh veya trimesh.Scene nesneleri olarak üretir.
cast_storage
< source >( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) → pa.StructArray
Bir Arrow dizisini Mesh arrow depolama türüne dönüştürür. Mesh pyarrow depolama türüne dönüştürülebilen Arrow türleri şunlardır:
pa.string()- “path” verisi içermelidirpa.large_string()- “path” verisi içermelidir (mümkünse string'e dönüştürülür)pa.binary()- mesh baytlarını içermelidirpa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- sıra önemli değildir
decode_example
< source >( value: dicttoken_per_repo_id = None )
Parametreler
- value (
dict) — Aşağıdaki anahtarlara sahip bir sözlük:path: Mutlak veya göreli mesh dosya yolunu içeren String.bytes: Mesh dosyasının baytları.
- token_per_repo_id (
dict, isteğe bağlı) — Hub'daki özel depolardaki mesh dosyalarına erişmek ve çözmek için, repo_id (str) -> token (boolveyastr) biçiminde bir sözlük geçebilirsiniz.
Örnek mesh dosyasını çözümlenir.
embed_storage
< source >( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray
Parametreler
- storage (
pa.StructArray) — Gömülecek PyArrow dizisi. - token_per_repo_id (
dict, isteğe bağlı) — Dosya baytlarını almak için repo_id -> token sözlüğü. - local_files (
bool, varsayılanTrue) — Dizide yerel dosya verilerinin gömülüp gömülmemesi. - remote_files (
bool, varsayılanTrue) — Dizide uzaktaki dosya verilerini gömülecek mi?
Dönüş değeri
pa.StructArray
Mesh arrow depolama türündeki dizi, yani
pa.struct({"bytes": pa.binary(), "path": pa.string()}).
Mesh dosyalarını Arrow dizisine gömün.
encode_example
< source >( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('trimesh.Trimesh'), ForwardRef('trimesh.Scene')] )
Örneği Arrow için bir formata kodlayın.
Çözülebilir durumda ise özelliğin kendisini, aksi halde özelliği bir sözlüğe düzleştirerek döndürür.
Json
JSON nesneleri için özellik türü.
Arka planda nesneler JSON kodlu dizgeler olarak saklanır.
Örnek:
>>> 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
Bir Arrow dizisini Json arrow depolama türüne dönüştürür.
sınıf datasets.Pdf
< source >( decode: bool = Trueid: typing.Optional[str] = None )
Deneysel. Pdf dosyalarından pdf belgelerini okumak için Pdf Feature.
Girdi: Pdf özelliği girdi olarak şunları kabul eder:
str: pdf dosyasının mutlak yolu (yani rastgele erişime izin verilir).A
pathlib.Path: pdf dosyasının yolu (yani rastgele erişime izin verilir).Şu anahtarlara sahip bir
dict:path: Veri seti deposundaki pdf dosyasının göreli yolunu içeren String.bytes: pdf dosyasının baytları. Bu, ardışık erişim gerektiren arşivlenmiş dosyalar için kullanışlıdır.
pdfplumber.pdf.PDF: pdfplumber pdf nesnesi.
Örnekler:
>>> 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
Bir Arrow dizisini Pdf arrow depolama türüne dönüştürür. Pdf pyarrow depolama türüne dönüştürülebilen Arrow türleri şunlardır:
pa.string()- “path” verisi içermelidirpa.binary()- görüntü baytlarını içermelidirpa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- sıra önemli değildirpa.list(*)- pdf dizisi verilerini içermelidir
decode_example
< source >( value: dicttoken_per_repo_id = None )
Parametreler
- value (
strveyadict) — Mutlak pdf dosya yolunu içeren bir dize, şu anahtarlara sahip bir sözlük:path: Mutlak veya göreli pdf dosya yolu içeren String.bytes: pdf dosyasının baytları.
- token_per_repo_id (
dict, isteğe bağlı) — Hub'daki özel depolardaki pdf dosyalarına erişmek ve çözümlemek için, repo_id (str) -> token (boolveyastr) biçiminde bir sözlük geçebilirsiniz.
Örnek pdf dosyasını pdf verisine dönüştürün.
embed_storage
< source >( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray
Parametreler
- storage (
pa.StructArray) — Gömülecek PyArrow dizisi. - token_per_repo_id (
dict, isteğe bağlı) — Dosya baytlarını almak için repo_id -> token sözlüğü. - local_files (
bool, varsayılan olarakTrue) — yerel dosya verilerinin diziye gömülüp gömülmemesi4.8.5 sürümünde eklendi
- remote_files (
bool, varsayılan olarakTrue) — Dizide uzaktaki dosya verilerini gömüp gömmeyeceğini belirtir. Örn. hf:// veya https:// ile başlayan yollara sahip dosyalar4.8.5 sürümünde eklendi
Dönüş değeri
pa.StructArray
PDF okuma depolama türündeki dizi, yani
pa.struct({"bytes": pa.binary(), "path": pa.string()}).
PDF dosyalarını Arrow dizisine gömün.
encode_example
< source >( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('pdfplumber.pdf.PDF')] )
Örneği Arrow için bir formata kodlayın.
Çözülebilir durumda ise özelliğin kendisini, aksi halde özelliği bir sözlüğe düzleştirerek döndürür.
Nifti
sınıf datasets.Nifti
< source >( decode: bool = Trueid: typing.Optional[str] = None )
Deneysel. NIfTI nörogörüntüleme dosyalarını okumak için Nifti Feature.
Girdi: Nifti özelliği girdi olarak şunları kabul eder:
A
str: NIfTI dosyasının mutlak yolu (yani rastgele erişime izin verilir).A
pathlib.Path: NIfTI dosyasına giden yol (yani rastgele erişime izin verilir).Şu anahtarlara sahip bir
dict:path: Veri seti deposundaki NIfTI dosyasının göreli yolunu içeren String.bytes: NIfTI dosyasının baytları. Bu, ardışık erişim gerektiren arşivlenmiş dosyalar için kullanışlıdır.
Bir
nibabelgörüntü nesnesi (ör.nibabel.nifti1.Nifti1Image).
Örnekler:
>>> 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
Bir Arrow dizisini Nifti arrow depolama türüne dönüştürür. Nifti pyarrow depolama türüne dönüştürülebilen Arrow türleri şunlardır:
pa.string()- “path” verisi içermelidirpa.binary()- NIfTI baytlarını içermelidirpa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- sıra önemli değildir
decode_example
< source >( value: dicttoken_per_repo_id = None )
Parametreler
- value (
strveyadict) — Mutlak NIfTI dosya yolunu içeren bir dize, şu anahtarlara sahip bir sözlük:path: Mutlak veya göreli NIfTI dosya yolunu içeren String.bytes: NIfTI dosyasının baytları.
- token_per_repo_id (
dict, isteğe bağlı) — Hub'daki özel depolardaki NIfTI dosyalarına erişmek ve çözmek için, repo_id (str) -> token (boolveyastr) biçiminde bir sözlük geçebilirsiniz.
NIfTI dosyasını nibabel görüntü nesnesine çözümlen.
embed_storage
< source >( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray
Parametreler
- storage (
pa.StructArray) — Gömülecek PyArrow dizisi. - token_per_repo_id (
dict, isteğe bağlı) — Dosya baytlarını almak için repo_id -> token sözlüğü. - local_files (
bool, varsayılan olarakTrue) — yerel dosya verilerinin diziye gömülüp gömülmemesi4.8.5 sürümünde eklendi
- remote_files (
bool, varsayılan olarakTrue) — Dizide uzaktaki dosya verilerini gömüp gömmeyeceğini belirtir. Örn. hf:// veya https:// ile başlayan yollara sahip dosyalar4.8.5 sürümünde eklendi
Dönüş değeri
pa.StructArray
NifTI ok (arrow) depolama türündeki dizi, yani
pa.struct({"bytes": pa.binary(), "path": pa.string()}).
NifTI dosyalarını Arrow dizisine gömün.
encode_example
< source >( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('nib.Nifti1Image')] )
Örneği Arrow için bir formata kodlayın.
Çözülebilir durumda ise özelliğin kendisini, aksi halde özelliği bir sözlüğe düzleştirerek döndürür.
BioSequence
sınıf datasets.BioSequence
< source >( format: str = 'fasta'decode: bool = Trueid: typing.Optional[str] = None )
Parametreler
- format (
str, varsayılan"fasta") —Bio.SeqIOtarafından anlaşılan dizi biçiminin adı. Yaygın değerler"fasta","fastq"ve"genbank"'tır. - decode (
bool, varsayılanTrue) — Dizgi verisinin çözümlenip çözümlenmeyeceğini belirtir.Falseise, alttaki sözlük{"path": path, "bytes": bytes}biçiminde döndürülür.
Deneysel. Biyolojik dizi kayıtlarını bir dizi dosyasından okumak için BioSequence Feature.
Bir dizi dosyası, tanımlayıcıları ve açıklamalarıyla birlikte bir veya daha fazla kalıntı kaydını içerir. FASTA, FASTQ ve GenBank bu düzeyde aynı yapıya sahiptir; yalnızca kullanılan ayrıştırıcı farklıdır. Bu nedenle format türü değil, ayrıştırıcıyı seçer.
Girdi: BioSequence özelliği girdi olarak şunları kabul eder:
str: Sıra dosyasının mutlak yolu (yani rastgele erişime izin verilir).A
pathlib.Path: dizgi dosyasına giden yol (yani rastgele erişime izin verilir).Şu anahtarlara sahip bir
dict:path: Veri seti deposundaki dizgi dosyasının göreli yolunu içeren String.bytes: Sıralı dosyanın baytları. Bu, sıralı erişim gerektiren arşivlenmiş dosyalar için kullanışlıdır.
A
Bio.SeqRecord.SeqRecord: biopython dizisi kaydı.
Örnekler:
>>> 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
Bir Arrow dizisini BioSequence arrow depolama türüne dönüştürür. BioSequence pyarrow depolama türüne dönüştürülebilen Arrow türleri şunlardır:
pa.string()- “path” verisi içermelidirpa.binary()- dosya baytlarını içermelidirpa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- sıra önemli değildir
decode_example
< source >( value: dicttoken_per_repo_id = None )
Parametreler
- value (
strveyadict) — Mutlak dosya yolunu içeren bir dize veya şu anahtarlara sahip bir sözlük:path: Mutlak veya göreli dosya yolu içeren bir String.bytes: Dosyanın baytları.
- token_per_repo_id (
dict, isteğe bağlı) — Hub'daki özel depolardaki dosyalara erişmek ve çözümlemek için, repo_id (str) -> token (boolveyastr) biçiminde bir sözlük geçebilirsiniz.
Örnek dizilim dosyasını bir biopython kaydına çözümlen.
Bir dosya birçok kayıt içerebilir; bu, bir satırın bir kayda karşılık gelmesi nedeniyle ilk kaydı döndürür. Çok kayıtlı bir dosyayı kayıt başına bir satır olacak şekilde genişletmek için paketlenmiş dizi yükleyicilerini kullanın.
embed_storage
< source >( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray
Parametreler
- storage (
pa.StructArray) — Gömülecek PyArrow dizisi. - token_per_repo_id (
dict, isteğe bağlı) — Dosya baytlarını almak için repo_id -> token sözlüğü. - local_files (
bool, varsayılanTrue) — Dizide yerel dosya verilerinin gömülüp gömülmemesi. - remote_files (
bool, varsayılanTrue) — Dizide uzaktaki dosya verilerini gömülecek mi?
Dönüş değeri
pa.StructArray
BioSequence arrow depolama türündeki Array.
Dizi dosyalarını Arrow dizisine gömün.
encode_example
< source >( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('SeqRecord')] )
Örneği Arrow için bir formata kodlayın.
Çözülebilir durumda ise özelliğin kendisini, aksi halde özelliği bir sözlüğe düzleştirerek döndürür.
BioStructure
sınıf datasets.BioStructure
< source >( format: str = 'pdb'decode: bool = Trueid: typing.Optional[str] = None )
Deneysel. Yapı dosyasından makromoleküler yapıları okumak için BioStructure Feature.
Yapı dosyası, bir molekülün atomlarının üç boyutlu koordinatlarını, zincirler ve kalıntılar halinde gruplandırılmış olarak içerir. PDB ve mmCIF aynı nesneleri tanımlar ve yalnızca kullanılan ayrıştırıcıda farklılık gösterir; bu nedenle format türü değil, ayrıştırıcıyı seçer.
Girdi: BioStructure özelliği girdi olarak şunları kabul eder:
A
str: Yapı dosyasına mutlak yol (yani rastgele erişime izin verilir).A
pathlib.Path: yapı dosyasına giden yol (yani rastgele erişime izin verilir).Şu anahtarlara sahip bir
dict:path: Veri seti deposundaki yapı dosyasının göreli yolunu içeren String.bytes: Yapı dosyasının baytları. Bu, ardışık erişimle çalışan arşivlenmiş dosyalar için kullanışlıdır.
A
Bio.PDB.Structure.Structure: biopython yapısı.
Örnekler:
>>> 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
Bir Arrow dizisini BioStructure arrow depolama türüne dönüştürür. BioStructure pyarrow depolama türüne dönüştürülebilen Arrow türleri şunlardır:
pa.string()- “path” verisi içermelidirpa.binary()- dosya baytlarını içermelidirpa.struct({"bytes": pa.binary()})pa.struct({"path": pa.string()})pa.struct({"bytes": pa.binary(), "path": pa.string()})- sıra önemli değildir
decode_example
< source >( value: dicttoken_per_repo_id = None )
Parametreler
- value (
strveyadict) — Mutlak dosya yolunu içeren bir dize veya şu anahtarlara sahip bir sözlük:path: Mutlak veya göreli dosya yolu içeren bir String.bytes: Dosyanın baytları.
- token_per_repo_id (
dict, isteğe bağlı) — Hub'daki özel depolardaki dosyalara erişmek ve çözümlemek için, repo_id (str) -> token (boolveyastr) biçiminde bir sözlük geçebilirsiniz.
Decode örnek yapı dosyasını bir biopython yapısına dönüştürün.
embed_storage
< source >( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray
Parametreler
- storage (
pa.StructArray) — Gömülecek PyArrow dizisi. - token_per_repo_id (
dict, isteğe bağlı) — Dosya baytlarını almak için repo_id -> token sözlüğü. - local_files (
bool, varsayılanTrue) — Dizide yerel dosya verilerinin gömülüp gömülmemesi. - remote_files (
bool, varsayılanTrue) — Dizide uzaktaki dosya verilerini gömülecek mi?
Dönüş değeri
pa.StructArray
BioStructure arrow depolama türündeki dizi.
Yapı dosyalarını Arrow dizisine gömün.
encode_example
< source >( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('Structure')] )
Örneği Arrow için bir formata kodlayın.
Çözülebilir durumda ise özelliğin kendisini, aksi halde özelliği bir sözlüğe düzleştirerek döndürür.
Dosya Sistemleri
datasets.filesystems.is_remote_filesystem
< source >( fs: AbstractFileSystem )
fs'in uzak bir dosya sistemi olup olmadığını kontrol eder.
Parmak izi
Girdi olarak Python nesnelerini kabul eden Hasher.