Datasets documentation
Buat dataset
Buat dataset
Kadang-kadang, Anda mungkin perlu membuat dataset jika Anda bekerja dengan data Anda sendiri. Membuat dataset dengan 🤗 Datasets memberikan semua keuntungan pustaka tersebut ke dataset Anda: pemuatan dan pemrosesan yang cepat, streaming dataset yang sangat besar, memory-mapping, dan lainnya. Anda dapat dengan mudah dan cepat membuat dataset dengan pendekatan low-code 🤗 Datasets, sehingga mengurangi waktu yang dibutuhkan untuk mulai melatih model. Dalam banyak kasus, prosesnya semudah drag and drop file data Anda ke repositori dataset di Hub.
Dalam tutorial ini, Anda akan belajar cara menggunakan metode low-code 🤗 Datasets untuk membuat dataset dari data Anda sendiri.
Catatan
Jika Anda ingin mempelajari cara memuat dataset yang sudah ada, atau cara memuat file lokal dan jarak jauh (CSV, JSON, Parquet, dll.), lihat Panduan pemuatan.
Tutorial ini membahas:
- Pembangun berbasis folder untuk membuat dataset gambar atau audio dengan cepat
- metode
from_untuk membuat dataset dari objek Python lokal
Pembangun berbasis file
🤗 Datasets mendukung banyak format umum seperti csv, json/jsonl, parquet, txt.
Sebagai contoh, dapat membaca dataset yang terdiri dari satu atau beberapa file CSV (dalam hal ini, berikan file CSV Anda sebagai daftar):
>>> from datasets import load_dataset
>>> dataset = load_dataset("csv", data_files="my_file.csv")Untuk mendapatkan daftar format yang didukung dan contoh kode, ikuti panduan ini di sini.
Pembangun berbasis folder
Ada dua builder berbasis folder, ImageFolder dan AudioFolder. Ini adalah metode low-code untuk dengan cepat membuat dataset gambar atau ucapan dan audio dengan beberapa ribu contoh. Metode ini sangat baik untuk memodelkan prototipe computer vision dan speech dengan cepat sebelum diskalakan ke dataset yang lebih besar. Builder berbasis folder mengambil data Anda dan secara otomatis menghasilkan fitur, split, dan label dataset. Di balik layar:
ImageFoldermenggunakan fitur Image untuk mendekode file gambar. Banyak format ekstensi gambar didukung, seperti jpg dan png, tetapi format lain juga didukung. Anda dapat memeriksa daftar lengkap ekstensi gambar yang didukung.AudioFoldermenggunakan fitur Audio untuk mendekode file audio. Ekstensi seperti wav, mp3, dan bahkan mp4 didukung, dan Anda dapat memeriksa daftar lengkap ekstensi audio yang didukung. Dekoding dilakukan melalui ffmpeg.
Pembagian dataset dihasilkan dari struktur repositori, dan nama label disimpulkan secara otomatis dari nama direktori.
Sebagai contoh, jika dataset gambar Anda (hal yang sama berlaku untuk dataset audio) disimpan seperti ini:
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.pngLalu, berikut adalah cara builder berbasis folder menghasilkan contoh:

Buat dataset gambar dengan menentukan imagefolder di load_dataset():
>>> from datasets import load_dataset
>>> dataset = load_dataset("imagefolder", data_dir="/path/to/pokemon")Dataset audio dibuat dengan cara yang sama, kecuali Anda menentukan audiofolder di load_dataset() sebagai gantinya:
>>> from datasets import load_dataset
>>> dataset = load_dataset("audiofolder", data_dir="/path/to/folder")Informasi tambahan apa pun tentang dataset Anda, seperti teks caption atau transkripsi, dapat disertakan dengan file metadata.csv di folder yang berisi dataset Anda. File metadata harus memiliki kolom file_name yang menghubungkan file gambar atau audio dengan metadata yang sesuai:
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.Untuk mempelajari lebih lanjut tentang masing-masing builder berbasis folder ini, lihat panduan ImageFolder, AudioFolder, atau MeshFolder.
Dari kamus Python
Anda juga dapat membuat dataset dari data dalam kamus Python. Ada dua cara Anda dapat membuat dataset menggunakan metode from_:
Metode from_generator() adalah cara paling hemat memori untuk membuat dataset dari generator karena perilaku iteratif generator. Hal ini sangat berguna ketika Anda bekerja dengan dataset yang sangat besar yang mungkin tidak muat di memori, karena dataset dihasilkan secara bertahap di disk dan kemudian dipetakan ke memori (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"}IterableDataset berbasis generator harus diiterasi dengan, misalnya, loop
for:>>> from datasets import IterableDataset >>> ds = IterableDataset.from_generator(gen) >>> for example in ds: ... print(example) {"pokemon": "bulbasaur", "type": "grass"} {"pokemon": "squirtle", "type": "water"}Metode from_dict() adalah cara yang sederhana untuk membuat dataset dari kamus:
>>> from datasets import Dataset >>> ds = Dataset.from_dict({"pokemon": ["bulbasaur", "squirtle"], "type": ["grass", "water"]}) >>> ds[0] {"pokemon": "bulbasaur", "type": "grass"}Untuk membuat dataset gambar atau audio, rangkai metode cast_column() dengan from_dict() dan tentukan kolom serta tipe fitur. Sebagai contoh, untuk membuat dataset audio:
>>> audio_dataset = Dataset.from_dict({"audio": ["path/to/audio_1", ..., "path/to/audio_n"]}).cast_column("audio", Audio())
Sekarang setelah Anda tahu cara membuat dataset, pertimbangkan untuk membagikannya di Hub agar komunitas juga dapat memanfaatkan pekerjaan Anda! Lanjutkan ke bagian berikutnya untuk mempelajari cara membagikan dataset Anda.
Update on GitHub