VGG16 ve ResNet50'yi Temel Modeller Olarak Kullanma
keras.applications.VGG16(weights='imagenet', include_top=False), özel bir başlık ekleme.
VGG16 ve ResNet50'yi Temel Modeller Olarak Kullanma, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.
Keras Uygulamaları Modülü
tf.keras.applications, tek satırla indirip kullanabileceğiniz düzinelerce önceden eğitilmiş mimari sunar. İki klasik seçenek VGG16 (3x3 evrişimlerden oluşan basit ve derin bir yığın) ve ResNet50'dir (artık bağlantılar kullanan, daha derin ve daha doğru).
VGG16'yı Temel Model Olarak Yükleme
VGG16'yı ImageNet ağırlıklarıyla, ancak sınıflandırma başlığı olmadan yükleyin; böylece kendi başlığınızı ekleyebilirsiniz.
from tensorflow.keras.applications import VGG16
base = VGG16(
weights="imagenet", # download pretrained weights
include_top=False, # drop the 1000-class classifier
input_shape=(224, 224, 3) # standard ImageNet input size
)Bağımsız Değişkenleri Anlama
weights="imagenet": rastgele ağırlıklar yerine önceden eğitilmiş ağırlıkları yükler.include_top=False: kendi başlığınızı ekleyebilmeniz için özgün Dense sınıflandırıcıyı kaldırır.input_shape=(224,224,3): yükseklik, genişlik ve 3 RGB kanalı.
include_top=False ayarı, modeli yeni bir görev için yeniden kullanılabilir hale getirir.
Temel Modeli Dondurma
İlk eğitim aşamasında önceden eğitilmiş evrişim ağırlıklarının sabit kalması için base.trainable = False ayarını yapın. Yalnızca yeni başlığınız öğrenir.
base.trainable = False
print(len(base.trainable_weights)) # -> 0 when frozenGlobalAveragePooling2D
Temel model, (7, 7, 512) gibi 3B bir özellik haritası üretir. GlobalAveragePooling2D, her kanalı uzamsal ızgarası boyunca ortalar ve kanal başına tek bir vektöre dönüştürür; bu örnekte vektörün uzunluğu 512'dir.
Büyük bir Flatten + Dense katmanının yerini alarak parametre sayısını büyük ölçüde azaltır ve aşırı uyumu düşürür.
from tensorflow.keras.layers import GlobalAveragePooling2D
# (batch, 7, 7, 512) -> (batch, 512)
pooled = GlobalAveragePooling2D()(base.output)Dense Çıktı Başlığını Ekleme
Sınıf sayınıza uygun boyutta bir Dense katmanı ekleyin. Çok sınıflı durumlarda softmax, ikili durumlarda sigmoid kullanın.
from tensorflow.keras import layers, Model
x = base.output
x = layers.GlobalAveragePooling2D()(x)
x = layers.Dropout(0.3)(x)
outputs = layers.Dense(10, activation="softmax")(x)
model = Model(inputs=base.input, outputs=outputs)ResNet50'ye Geçiş
ResNet50 aynı arayüzü kullanır. Artık (atlama) bağlantıları, kaybolan gradyanlar olmadan çok daha derin bir modelin eğitilmesini sağlar; bu nedenle benzer hızda genellikle VGG16'dan daha yüksek ImageNet doğruluğu sunar.
from tensorflow.keras.applications import ResNet50
base = ResNet50(
weights="imagenet",
include_top=False,
input_shape=(224, 224, 3)
)
base.trainable = FalseVGG16 ve ResNet50 Karşılaştırması
- VGG16: yaklaşık 138 milyon parametre, basit ve tekdüze 3x3 yığını, yüksek bellek kullanımı, anlaşılması kolay.
- ResNet50: yaklaşık 25 milyon parametre, artık bloklar, daha derin, genellikle daha yüksek doğruluk ve daha düşük kaynak kullanımı.
Çoğu modern aktarım öğrenimi görevi için ResNet50 daha güçlü bir varsayılandır.
Ön İşlemeyi Eşleştirme
Her model ailesinin kendine ait bir preprocess_input işlevi vardır. VGG16 ortalama RGB değerlerini çıkarırken ResNet50 benzer bir caffe tarzı ölçeklendirme kullanır. Her zaman temel modelinizle eşleşen işlevi içe aktarın.
from tensorflow.keras.applications.resnet50 import preprocess_input
x = preprocess_input(image_batch) # required for correct resultsModeli Derleme
Temel model dondurulmuşken normal bir optimizasyon yöntemiyle başlığı derleyip eğitin.
model.compile(
optimizer="adam",
loss="categorical_crossentropy",
metrics=["accuracy"]
)
model.fit(train_ds, validation_data=val_ds, epochs=10)Mimariyi İnceleme
Temel modelin dondurulduğunu (eğitilemeyen parametrelerin sayısının yüksek olduğunu) ve yalnızca başlığın eğitilebilir olduğunu doğrulamak için model.summary() çağrısını yapın. Bu sağlama kontrolü, kurulum hatalarını erkenden yakalar.
model.summary()
# Look at "Trainable params" vs "Non-trainable params"Kısa Kontrol
Keras'ta bir aktarım öğrenimi modeli oluşturma konusundaki kavrayışınızı kontrol edin.
Özet
VGG16 ve ResNet50 modellerini weights="imagenet", include_top=False ve input_shape=(224,224,3) ile yüklediniz; base.trainable=False ile temel modeli dondurdunuz, özellikleri GlobalAveragePooling2D ile havuzladınız ve bir Dense çıktı başlığı eklediniz.
ResNet50 daha güçlü bir varsayılandır. Sırada: ince ayar yapmak için katmanların kilidini açmak var.
Sıkça Sorulan Sorular
“VGG16 ve ResNet50'yi Temel Modeller Olarak Kullanma” dersi ücretsiz mi?
Evet — “VGG16 ve ResNet50'yi Temel Modeller Olarak Kullanma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.
“VGG16 ve ResNet50'yi Temel Modeller Olarak Kullanma” dersinde ne öğreneceğim?
keras.applications.VGG16(weights='imagenet', include_top=False), özel bir başlık ekleme. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“VGG16 ve ResNet50'yi Temel Modeller Olarak Kullanma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Aktarım Öğrenmesi Kavramları ve Stratejileri
- VGG16 ve ResNet50'yi Temel Modeller Olarak Kullanma
- İnce Ayar: Dondurmayı Kaldırma ve Yeniden Eğitme
- Uçta Dağıtım için MobileNet ve EfficientNet