Datasets documentation
Bir veri seti oluşturun
Bir veri seti oluşturun
Bazen, kendi verilerinizle çalışıyorsanız bir veri seti oluşturmanız gerekebilir. 🤗 Datasets ile bir veri seti oluşturmak, veri setinize kütüphanenin tüm avantajlarını sağlar: hızlı yükleme ve işleme, devasa veri setlerini akışa alma, memory-mapping ve daha fazlası. 🤗 Datasets'in düşük kodlu yaklaşımlarıyla bir veri setini kolayca ve hızla oluşturabilir, bir modeli eğitmeye başlama süresini kısaltabilirsiniz. Birçok durumda, bu işlem veri dosyalarınızı Hub'daki bir veri seti deposuna sürükleyip bırakmak kadar kolaydır.
Bu eğitimde, kendi verilerinizden veri kümeleri oluşturmak için 🤗 Datasets'in düşük kodlu yöntemlerini nasıl kullanacağınızı öğreneceksiniz.
Not
Mevcut veri setlerini nasıl yükleyeceğinizi veya yerel ve uzak dosyaları (CSV, JSON, Parquet vb.) nasıl yükleyeceğinizi öğrenmek istiyorsanız, Yükleme kılavuzuna bakın.
Bu öğretici şunları kapsar:
- Görsel veya ses veri seti oluşturmak için hızlı bir şekilde kullanılabilen klasör tabanlı oluşturucular
- yerel Python nesnelerinden veri setleri oluşturmak için
from_yöntemleri
Dosya tabanlı oluşturucular
🤗 Datasets, csv, json/jsonl, parquet, txt gibi birçok yaygın formatı destekler.
Örneğin, bir veya birden fazla CSV dosyasından oluşan bir veri setini okuyabilir (bu durumda, CSV dosyalarınızı bir liste olarak iletin):
>>> from datasets import load_dataset
>>> dataset = load_dataset("csv", data_files="my_file.csv")Desteklenen formatların listesini ve kod örneklerini almak için bu kılavuza buradan ulaşabilirsiniz.
Klasör tabanlı oluşturucular
İki klasör tabanlı oluşturucu vardır: ImageFolder ve AudioFolder. Bunlar, birkaç bin örnek içeren bir görüntü veya konuşma ve ses veri setini hızlıca oluşturmak için düşük kod yöntemleridir. Daha büyük bir veri setine ölçeklenmeden önce bilgisayarla görme ve konuşma modellerini hızla prototipleme için idealdir. Klasör tabanlı oluşturucular, verilerinizi alır ve veri setinin özelliklerini, bölümlerini ve etiketlerini otomatik olarak oluşturur. Arka planda:
ImageFolder, bir görüntü dosyasını çözmek için Image özelliğini kullanır. jpg ve png gibi birçok görüntü uzantı biçimi desteklenir, ancak diğer biçimler de desteklenmektedir. Desteklenen görüntü uzantılarının tam listesini kontrol edebilirsiniz.AudioFolder, ses dosyalarını çözmek için Audio özelliğini kullanır. wav, mp3 ve hatta mp4 gibi uzantılar desteklenir ve desteklenen ses uzantılarının tam listesini kontrol edebilirsiniz. Çözme işlemi ffmpeg aracılığıyla yapılır.
Veri kümesi bölümleri, depo yapısından üretilir ve etiket adları, dizin adından otomatik olarak çıkarılır.
Örneğin, görüntü veri setiniz (ses veri seti için de aynıdır) şu şekilde saklanıyorsa:
pokemon/train/grass/bulbasaur.png
pokemon/train/fire/charmander.png
pokemon/train/water/squirtle.png
pokemon/test/grass/ivysaur.png
pokemon/test/fire/charmeleon.png
pokemon/test/water/wartortle.pngSonra klasör tabanlı oluşturucu bir örnek oluşturur:

imagefolder belirtmek suretiyle load_dataset() ile görüntü veri setini oluşturun:
>>> from datasets import load_dataset
>>> dataset = load_dataset("imagefolder", data_dir="/path/to/pokemon")Bir ses veri seti aynı şekilde oluşturulur, ancak bunun yerine load_dataset() içinde audiofolder belirtirsiniz:
>>> from datasets import load_dataset
>>> dataset = load_dataset("audiofolder", data_dir="/path/to/folder")Veri setinizle ilgili metin açıklamaları veya transkripsiyonlar gibi ek bilgiler, veri setinizin bulunduğu klasördeki metadata.csv dosyasıyla dahil edilebilir. Meta veri dosyasının, görüntü veya ses dosyasını ilgili meta verisine bağlayan bir file_name sütunu olmalıdır:
file_name, text
bulbasaur.png, There is a plant seed on its back right from the day this Pokémon is born.
charmander.png, It has a preference for hot things.
squirtle.png, When it retracts its long neck into its shell, it squirts out water with vigorous force.Bu klasör tabanlı oluşturucuların her biri hakkında daha fazla bilgi edinmek için ImageFolder, AudioFolder veya MeshFolder kılavuzlarına göz atın.
Python sözlüklerinden
Python sözlüklerindeki verilerden bir veri seti oluşturabilirsiniz. from_ yöntemlerini kullanarak veri seti oluşturmanın iki yolu vardır:
from_generator() yöntemi, bir generator'dan veri seti oluşturmak için en bellek verimli yoldur; bunun nedeni, bir generator'ın iteratif davranış biçimidir. Bu, belleğe sığmayabilecek gerçekten büyük bir veri setiyle çalışırken özellikle faydalıdır, çünkü veri seti disk üzerinde kademeli olarak oluşturulur ve ardından belleğe eşlenir (memory-mapped).
>>> from datasets import Dataset >>> def gen(): ... yield {"pokemon": "bulbasaur", "type": "grass"} ... yield {"pokemon": "squirtle", "type": "water"} >>> ds = Dataset.from_generator(gen) >>> ds[0] {"pokemon": "bulbasaur", "type": "grass"}Üretici tabanlı bir IterableDataset, örneğin bir
fordöngüsüyle üzerinde gezinilmelidir:>>> from datasets import IterableDataset >>> ds = IterableDataset.from_generator(gen) >>> for example in ds: ... print(example) {"pokemon": "bulbasaur", "type": "grass"} {"pokemon": "squirtle", "type": "water"}from_dict() yöntemi, bir sözlükten veri seti oluşturmanın doğrudan bir yoludur:
>>> from datasets import Dataset >>> ds = Dataset.from_dict({"pokemon": ["bulbasaur", "squirtle"], "type": ["grass", "water"]}) >>> ds[0] {"pokemon": "bulbasaur", "type": "grass"}Bir görüntü veya ses veri seti oluşturmak için cast_column() yöntemini from_dict() ile zincirleyin ve sütunu ile özellik türünü belirtin. Örneğin, bir ses veri seti oluşturmak için:
>>> audio_dataset = Dataset.from_dict({"audio": ["path/to/audio_1", ..., "path/to/audio_n"]}).cast_column("audio", Audio())
Bir veri seti oluşturma yöntemini öğrendiğinize göre, topluluğun da çalışmalarınızdan faydalanabilmesi için onu Hub üzerinde paylaşmayı düşünün! Veri setinizi nasıl paylaşacağınızı öğrenmek için bir sonraki bölüme geçin.
Update on GitHub