Bilgisayarlı görü modellerini ince ayarlama

Hugging Face ile Multi-Modal Modeller

James Chapman

Curriculum Manager, DataCamp

Görü modellerini ince ayarlamanın amacı

 

  • Yeni sınıflar; ör. gerçek veya YZ üretimi görsellerin ikili sınıflandırması
  • Yeni görüntü alanları; ör. röntgenler

Ön eğitimde kullanılan bir fok görseli

Bir YZ üretimi görsel örneği

1 https://image-net.org/index.php
Hugging Face ile Multi-Modal Modeller

Görü modellerini ince ayarlama

Bir YZ üretimi görsel örneği

 

  1. Model çıkışını yeni tahminlere uyarla
  2. Veri kümesini eğitime hazırla
  3. Eğitim seçeneklerini yapılandır
  4. Eğit!
Hugging Face ile Multi-Modal Modeller

Model güncellemeleri

from datasets import load_dataset
dataset = load_dataset("ideepankarsharma2003/Midjourney_v6_Classification_small_shuf
fled")['train']

data_splits = dataset.train_test_split(test_size=0.2, seed=42)
labels = data_splits["train"].features["label"].names
label2id, id2label = dict(), dict() for i, label in enumerate(labels): label2id[label] = str(i) id2label[str(i)] = label
Hugging Face ile Multi-Modal Modeller

Model güncellemeleri

from transformers import AutoModelForImageClassification
checkpoint = "google/mobilenet_v2_1.0_224"
model = AutoModelForImageClassification.from_pretrained(
    checkpoint,
    num_labels=len(labels),

id2label=id2label, label2id=label2id,
ignore_mismatched_sizes=True
)
Hugging Face ile Multi-Modal Modeller

Veri kümesi hazırlığı

from transformers import AutoImageProcessor
image_processor = AutoImageProcessor.from_pretrained(checkpoint)


from torchvision.transforms import Compose, Normalize, ToTensor
normalize = Normalize(mean=image_processor.image_mean, std=image_processor.image_std)
transform = Compose([ToTensor(), normalize])
def transforms(examples): examples["pixel_values"] = [transform(img.convert("RGB")) for img in examples["image"]] del examples["image"] return examples
dataset = dataset.with_transform(transforms)
Hugging Face ile Multi-Modal Modeller

Dönüştürülen veriyi çizdirme

import matplotlib.pyplot as plt
plt.imshow(dataset["train"][0]["pixel_values"].permute(1, 2, 0))
plt.show()

Yeni veri kümesinden dönüştürülmüş görsel

Hugging Face ile Multi-Modal Modeller

Eğitim

from transformers import TrainingArguments

training_args = TrainingArguments(
    output_dir="dataset_finetune",

learning_rate=6e-5,
gradient_accumulation_steps=4,
num_train_epochs=3,
push_to_hub=False )
from transformers import Trainer,
    DefaultDataCollator

data_collator = DefaultDataCollator()

trainer = Trainer(

model=model,
args=training_args,
train_dataset=dataset["train"], eval_dataset=dataset["test"],
processing_class=image_processor,
data_collator=data_collator
)
Hugging Face ile Multi-Modal Modeller

Değerlendirme

predictions = trainer.predict(dataset["test"])
predictions.metrics["test_accuracy"]
0.455
trainer.train()
{..., 'eval_accuracy': 0.93, ...}
Hugging Face ile Multi-Modal Modeller

Haydi pratik yapalım!

Hugging Face ile Multi-Modal Modeller

Preparing Video For Download...