TensorFlow ve Keras ile Python’da Derin Öğrenmeye Giriş

Derin Öğrenmenin Temelleri

Derin öğrenme, makine öğrenmesi ve yapay zeka alanında önemli bir yere sahiptir. İnsan beyninin çalışma biçiminden esinlenen derin öğrenme, çok katmanlı yapay sinir ağları kullanarak verileri analiz eder ve bu verilerden sonuçlar çıkartır. Son yıllarda, bu teknolojinin gelişimi ve erişilebilirliği, hem akademik alanda hem de endüstride büyük bir hız kazanmış durumda.

Python, derin öğrenme uygulamaları geliştirmek için en çok tercih edilen programlama dillerinden biridir. Bunun başlıca sebebi, Python’un kullanıcı dostu doğal yapısı ve geniş kütüphane desteğidir. TensorFlow ve Keras, bu alanda en popüler iki kütüphanedir. Bu yazıda, Python ile TensorFlow ve Keras kullanarak derin öğrenmeye nasıl başlayabileceğinizi ele alacağız.

TensorFlow Nedir?

TensorFlow, Google tarafından geliştirilen ve açık kaynak kodlu bir derin öğrenme kütüphanesidir. Hızlı hesaplamalar yapabilen bir grafik tabanlı yapıya sahiptir. TensorFlow, verileri tensörler olarak temsil eder ve bu nedenle ‘tensor’ kelimesi adı içinde yer almaktadır. Tensörler, çok boyutlu dizilerdir ve bu diziler üzerinde matematiksel işlemler yapılmasını sağlar.

TensorFlow, hem eğitim hem de test sürecinde büyük veri setleri ile çalışabilir. Ayrıca, model dağıtımı ve yönetimi için birçok araç sunarak, uygulamanızın ölçeklenebilir olmasını sağlar. Bunun yanı sıra, TensorFlow’un sunduğu çeşitli önceden eğitilmiş modeller sayesinde, kendi verilerinizi kullanarak antrenman yapmanıza yardımcı olacak kaynaklar da bulunmaktadır.

Keras Nedir?

Keras, derin öğrenme modeli oluşturmak için yüksek seviyeli bir API sunan açık kaynaklı bir kütüphanedir. TensorFlow üzerinde çalışmakla birlikte, Keras, model oluşturmanın ve eğitmenin daha basit ve daha anlaşılır olmasını sağlar. Kullanıcı dostu bir arayüze sahip olan Keras, karmaşık derin öğrenme süreçlerini daha hızlı ve kolay bir şekilde gerçekleştirmeyi sağlar.

Keras ile, kullanıcılar birkaç satır kodla derin öğrenme modelleri oluşturabilir, eğitebilir ve değerlendirebilir. Bu özellik, Keras’ı hızlı prototipleme için mükemmel bir seçenek haline getirir. Keras, hem düz bir sinir ağı hem de karmaşık konvolüsyonel ve rekürrent sinir ağları gibi farklı model türleri oluşturmak için kullanılabilir.

TensorFlow ve Keras ile Çalışmaya Başlamak

İlk olarak, TensorFlow ve Keras kütüphanelerini Python projenize eklemeniz gerekiyor. Bunu gerçekleştirmek için terminalde aşağıdaki komutu çalıştırabilirsiniz:

pip install tensorflow

Kurulum tamamlandıktan sonra, TensorFlow ve Keras kullanarak basit bir model oluşturabiliriz. Aşağıda, TensorFlow ve Keras ile bir sinir ağı modeli oluşturma adımlarını inceleyeceğiz.

Basit Bir Sinir Ağı Modeli Oluşturma

Öncelikle, bir veri setine ihtiyacımız var. TensorFlow, kullanıcıların kolayca veri setleri elde edebilmesi için birkaç yerleşik veri seti sunmaktadır. Örneğin, Fashion MNIST veri seti, 10 farklı giysi ve ayakkabı sınıfını içeren 70.000 gri tonlamalı görüntüyü içerir. Aşağıdaki kod ile bu veri setini yükleyelim:

from tensorflow.keras.datasets import fashion_mnist
(X_train, y_train), (X_test, y_test) = fashion_mnist.load_data()

Veri setini yükledikten sonra, modelimizi oluşturmaya başlayabiliriz. Sinir ağı modelimizi tanımlamak için Keras’ı kullanacağız. İşte basit bir sinir ağı modeli oluşturan örnek bir kod:

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Flatten, Dense

model = Sequential()
model.add(Flatten(input_shape=(28, 28)))
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax'))

Bu kod parçacığında, öncelikle “Sequential” sınıfı ile boş bir model oluşturuyoruz. Ardından, “Flatten” katmanı ile 28×28 boyutundaki görüntüleri düzleştirerek tek bir boyutlu dizi haline getiriyoruz. Daha sonra “Dense” katmanı ekleyerek, 128 nöronlu bir gizli katman oluşturuyoruz ve “ReLU” aktivasyon fonksiyonunu kullanıyoruz. Son olarak, 10 nöronlu bir çıktı katmanı ekliyoruz, bu da 10 farklı sınıfın olacağını belirtir ve softmax aktivasyon fonksiyonu ile sınıf olasılıklarını hesaplıyoruz.

Modeli Eğitme

Modelimizi oluşturduktan sonra, eğitim sürecine geçebiliriz. Modeli eğitmek için aşağıdaki kodu kullanabiliriz:

model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=10, validation_split=0.2)

“compile” metodu, modeli derlemek için kullanılır ve burada ‘adam’ optimizasyon algoritması ile kayıp fonksiyonu olarak sosyalli kategorisel çapraz entropiyi seçiyoruz. Eğitim süreci için 10 dönem belirleyerek, model, eğitim verileri üzerinde öğrenmeye başlıyor. Ayrıca, validation_split ile eğitim sürecinde verilerin %20’sini doğrulama için ayırıyoruz, bu sayede modelimizin performansını takip edebiliriz.

Modelin Değerlendirilmesi

Eğitim süreci tamamlandıktan sonra, modelimizi test verileri üzerinde değerlendirerek genel performansını görebiliriz:

test_loss, test_accuracy = model.evaluate(X_test, y_test)
print('Test Accuracy:', test_accuracy)

“evaluate” metodu, test verileri üzerindeki kayıp ve doğruluk değerlerini döndürür. Bu değerler, modelimizin genel başarısını ve ne kadar iyi öğrendiğini anlamamıza yardımcı olur. Test doğruluğu oranı %90 ve üzerindeyse, modeliniz iyi çalışıyor demektir.

Keras ile Önceden Eğitilmiş Modeller

Kullanıcılar için, Keras ile önceden eğitilmiş birkaç model bulunmaktadır. Bu modeller, belirli görevlerde daha iyi performans gösterebilir. Örneğin, görüntü sınıflandırmada daha iyi sonuçlar elde etmek için ResNet veya VGG gibi modeller kullanılabilir. Bu modeller çeşitli veri setleri üzerinde eğitilmiş olup, yeni bir projeye uygulamak için kolayca aktarılabilir.

Önceden eğitilmiş bir modeli kullanmak için Keras’da “applications” modülünü kullanabilirsiniz. Aşağıdaki kod, VGG16 modelinin nasıl kullanılacağını gösterir:

from tensorflow.keras.applications import VGG16
vgg_model = VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3))

Yukarıdaki kod parçasında, VGG16 modelini “imagenet” ağırlıkları ile yüklüyoruz. “include_top=False” parametresi ile en üstteki sınıflandırma katmanlarını almadığımızı belirtiyoruz, böylece modeli kendi uygulamamızda özelleştirebiliyoruz. Önceden eğitilmiş modeller, verimliliğinizi artırarak eğitim süresini kısaltmanıza yardımcı olabilir.

Sonuç

Bu yazıda, TensorFlow ve Keras kullanarak Python ile derin öğrenmeye giriş yapmış olduk. İlk olarak, derin öğrenme ve bu alandaki araçlar hakkında bilgi verdik. Daha sonra, basit bir sinir ağı modeli oluşturarak Python’da derin öğrenme uygulamasına nasıl geçebileceğinizi gösterdik. Modeli eğitme, değerlendirme ve hatta önceden eğitilmiş modeller ile çalışma konusunda da bilgi paylaştık.

Geliştirici olarak, bu alanı keşfetmek büyük bir fırsat sunmaktadır. TensorFlow ve Keras gibi kütüphaneler sayesinde, karmaşık algoritmaları bile daha kolay ve anlaşılır bir şekilde uygulayabiliriz. Bu yazıda öğrendiklerinizi kendi projelerinizde deneyerek pratiğe dökmekten çekinmeyin. Yenilikleri takip edin, deneyin ve bu heyecan verici alanda kendinizi geliştirin!

Scroll to Top