Önceden Eğitilmiş Bir Modeli Yükleme
Önceden eğitilmiş bir modelle çalışmanın ilk adımı, modelin kendisini elde etmektir. Genellikle görüntü sınıflandırma ve nesne algılama gibi görevler için kullanılan VGG, ResNet ve Inception gibi birkaç popüler önceden eğitilmiş model mevcuttur. Bu örnekte, ImageNet veri setinde önceden eğitilmiş olan VGG16 modelini kullanacağız.
Önceden eğitilmiş VGG16 modelini yüklemek için TensorFlow kitaplığını ve onun Keras modülünü kullanmamız gerekiyor. TensorFlow kurulu değilse, bunu aşağıdaki komutla yapabilirsiniz:
"
pip kurulum tensorflow
"
TensorFlow kurulduktan sonra, VGG16 modelini yüklemeye devam edebiliriz. İşte kodun adım adım açıklaması:
from tensorflow.keras.applications import VGG16 # Load the pretrained VGG16 model with the 'imagenet' weights model = VGG16(weights="imagenet")
Yukarıdaki kodda ilk olarak tensorflow.keras.applications modülünden VGG16 sınıfını import ediyoruz. Ardından, modele ImageNet veri kümesinde önceden eğitilmiş ağırlıkları yükleme talimatı veren `weights=”imagenet”' argümanını ileterek VGG16 modelinin bir örneğini oluşturuyoruz.
Önceden Eğitilmiş Modeli Kullanma
Artık önceden eğitilmiş VGG16 modelini yüklediğimize göre, onu görüntü sınıflandırma gibi çeşitli görevler için kullanabiliriz. Görüntü sınıflandırması yapmak için, girdi görüntüsünü VGG16 modeliyle uyumlu hale getirmek için önceden işlememiz gerekir. Bu, görüntüyü yeniden boyutlandırmayı, piksel değerlerini normalleştirmeyi ve boyutlarını genişletmeyi içerir.
import numpy as np from tensorflow.keras.preprocessing import image from tensorflow.keras.applications.vgg16 import preprocess_input # Load an example image and preprocess it img_path = "path/to/your/image.jpg" img = image.load_img(img_path, target_size=(224, 224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x)
Yukarıdaki kodda, girdi görüntüsünü yüklemek ve ön işlemek için "tensorflow.keras.preprocessing"deki "image" modülünü kullanıyoruz. Görüntü, VGG224 modelinin gereksinimlerine göre `(224, 16)` olarak yeniden boyutlandırılır. Daha sonra görüntüyü bir NumPy dizisine dönüştürüyoruz ve boyutlarını beklenen giriş şekline uyacak şekilde genişletiyoruz. Son olarak, piksel değerlerini normalleştirmek için "tensorflow.keras.applications.vgg16" modülünden "preprocess_input" işlevini kullanıyoruz.
Giriş görüntüsü önceden işlenmiş ve hazır durumdayken, artık bir tahmin yapmak için önceden eğitilmiş VGG16 modelini kullanabiliriz:
from tensorflow.keras.applications.vgg16 import decode_predictions # Make a prediction using the pretrained model predictions = model.predict(x) # Decode the prediction and print the top 3 results predicted_classes = decode_predictions(predictions, top=3) print(predicted_classes)
Yukarıdaki örnekte, giriş görüntüsü için bir tahmin oluşturmak üzere "model.predict" yöntemini kullanıyoruz. Elde edilen tahminlerin kodu daha sonra ImageNet veri kümesinden tahmin edilen ilk 16 sınıfı ortaya çıkarmak için "tensorflow.keras.applications.vgg3" modülündeki "decode_predictions" işlevi kullanılarak çözülür.
Sonuç olarak, Python'da önceden eğitilmiş modellerin yüklenmesi ve kullanılması TensorFlow kitaplığı ile kolaylaştırılmıştır. Bu yaklaşım, doğru sonuçlara ulaşmak için gereken zamanı ve kaynakları önemli ölçüde azaltabilir ve bu da onu hem acemi hem de deneyimli makine öğrenimi uygulayıcıları için inanılmaz derecede değerli kılar.