Datasets documentation

Görsel verilerini işleyin

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.8.4).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Görsel verilerini işleyin

Bu kılavuz, görüntü veri setlerini işleme için belirli yöntemleri gösterir. Şunları öğrenin:

  • Görsel veri setiyle map() kullanın.
  • Bir veri setine set_transform() ile veri artırma (data augmentation) uygulamaları uygulayın.

Herhangi bir veri seti türünü işleme konusunda bir kılavuz için genel işlem kılavuzuna göz atın.

Harita

map() fonksiyonu, tüm bir veri setine dönüştürme uygulamak için kullanılabilir.

Örneğin, temel bir Resize fonksiyonu oluşturun:

>>> def transforms(examples):
...     examples["pixel_values"] = [image.convert("RGB").resize((100,100)) for image in examples["image"]]
...     return examples

Şimdi tüm veri setini yeniden boyutlandırmak için map() fonksiyonunu kullanın ve örneklerin toplu olarak kabul edilerek sürecin hızlandırılması için batched=True ayarını yapın. Dönüşüm, önbelleğe alınabilir bir PIL.Image nesnesi olarak pixel_values döndürür:

>>> dataset = dataset.map(transforms, remove_columns=["image"], batched=True)
>>> dataset[0]
{'label': 6,
 'pixel_values': <PIL.PngImagePlugin.PngImageFile image mode=RGB size=100x100 at 0x7F058237BB10>}

Önbellek dosyası, aynı dönüştürmeyi iki kez çalıştırmak zorunda kalmadığınız için zaman kazandırır. map() fonksiyonu, eğitim başına yalnızca bir kez çalıştırılan işlemler için -örneğin bir görüntüyü yeniden boyutlandırmak- en uygun olandır; veri artırma gibi her çağda (epoch) çalıştırılan işlemler için kullanılmamalıdır.

map() biraz bellek kullanır, ancak aşağıdaki parametrelerle bellek gereksinimini azaltabilirsiniz:

  • batch_size, dönüştürme fonksiyonuna yapılan tek bir çağrıda işlenen örnek sayısını belirler.
  • writer_batch_size, depolanmadan önce bellekte tutulan işlenmiş örneklerin sayısını belirler.

Her iki parametre değeri de varsayılan olarak 1000'dir; bu, görseller saklıyorsanız maliyetli olabilir. map() kullandığınızda daha az bellek kullanmak için bu değerleri düşürün.

Dönüşümleri uygula

🤗 Datasets, herhangi bir kütüphaneden veya paketten veri artırma işlemlerini veri setinize uygular. Dönüşümler, set_transform() ile veri topluluklarına anlık olarak uygulanabilir; bu, daha az disk alanı tüketir.

Aşağıdaki örnek torchvision kullanır, ancak Albumentations, Kornia ve imgaug gibi diğer veri artırma kütüphanelerini de kullanabilirsiniz.

Örneğin, bir görüntünün renk özelliklerini rastgele değiştirmek istiyorsanız:

>>> from torchvision.transforms import Compose, ColorJitter, ToTensor

>>> jitter = Compose(
...     [
...          ColorJitter(brightness=0.25, contrast=0.25, saturation=0.25, hue=0.7),
...          ToTensor(),
...     ]
... )

ColorJitter dönüşümünü uygulamak için bir fonksiyon oluşturun:

>>> def transforms(examples):
...     examples["pixel_values"] = [jitter(image.convert("RGB")) for image in examples["image"]]
...     return examples

Dönüşümü set_transform() işleviyle uygulayın:

>>> dataset.set_transform(transforms)
Update on GitHub