TensorFlow Nedir ve Neden Kullanmalıyız?
TensorFlow, Google tarafından geliştirilen açık kaynak kodlu bir makine öğrenimi kütüphanesidir. Derin öğrenme ve yapay zeka uygulamalarını geliştirmek için yaygın olarak kullanılan bu kütüphane, veri akış grafiği şekliyle veri işlemlerini yönetir. TensorFlow, karmaşık matematiksel hesaplamaları kolaylaştırarak, özellikle büyük veri kümeleri üzerinde etkili bir şekilde çalışmamızı sağlar. Python ile uyumlu olması, onu Python geliştiricileri arasında oldukça popüler kılmaktadır.
Python 3.7, TensorFlow ile çalışmak için büyük avantajlar sunar. Öncelikle, Python’un okunabilirliği ve basitliği, makine öğrenimi alanında yeni başlayanların ve deneyimli geliştiricilerin algoritmalarını hızlıca prototiplemelerine olanak tanır. Ayrıca, TensorFlow’un Python API’si, kullanıcılara daha sezgisel bir deneyim sunarak makine öğrenimi modellerinin training (eğitim) sürecini daha erişilebilir hale getirir.
Kısaca, TensorFlow, derin öğrenme modelleri geliştirmek, eğitmek ve değerlendirmek isteyen herkes için güçlü bir araçtır. Python 3.7 ile entegrasyonu, kullanıcılara geniş bir ekosisteme erişim imkanı sağlar. Bu yazıda, Python 3.7 ile TensorFlow kurulumundan basit bir model oluşturma sürecine kadar her adımı inceleyeceğiz.
Python 3.7 ile TensorFlow Kurulumu
TensorFlow kullanmaya başlamanın ilk adımı, uygun bir kurulum yapmaktır. Python 3.7 sürümünü kullanarak TensorFlow’u kurmak oldukça basittir. Öncelikle, Python 3.7’nin sisteminizde kurulu olup olmadığını kontrol edin. Python sürümünü terminal veya komut istemcisine python --version
yazarak kontrol edebilirsiniz. Eğer 3.7 versiyonunu görüyorsanız, bir sonraki adıma geçebilirsiniz.
Kurulum için pip kullanacağız. Bu, Python’un paket yönetim aracıdır. Terminalde aşağıdaki komutu çalıştırarak TensorFlow’u kurabilirsiniz:
pip install tensorflow
Bunun yanı sıra, sisteminizin yapılandırmasına göre belirli sürümleri kurmak için pip install tensorflow==2.x.x
gibi bir komut kullanabilirsiniz. TensorFlow’un en son sürümünü yüklemek istiyorsanız, yalnızca pip install tensorflow
komutunu yeterli olacaktır. Kurulum tamamlandığında, TensorFlow’un düzgün çalışıp çalışmadığını kontrol etmek için Python etkileşimli kabuğunu başlatın ve aşağıdaki kodu yazın:
import tensorflow as tf
print(tf.__version__)
Bu, kurulu olan TensorFlow sürümünü ekrana yazdıracaktır.
TensorFlow ile Basit Bir Model Oluşturma Süreci
TensorFlow kurulumunu tamamladıktan sonra, artık temel bir model oluşturmaya geçebiliriz. Bu bölümde, basit bir sınıflandırma modeli oluşturacağız. Kullanacağımız veri seti, el yazısı rakamlarının tanınması için kullanılan MNIST veri setidir. Bu veri seti, 0’dan 9’a kadar olan rakamları içeren 70,000 el yazısı örneği barındırmaktadır.
Öncelikle, TensorFlow ve gerekli kütüphaneleri import edelim. Ardından veri setini yükleyip ön işleme tabi tutacağız:
import tensorflow as tf
from tensorflow.keras import layers, models
# MNIST veri setini yükleme
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# Veriyi normalize etme
x_train, x_test = x_train / 255.0, x_test / 255.0
Yukarıdaki kod parçacığı, MNIST veri setini yüklüyor ve her bir pikselin değerini 0 ile 1 arasında normalize ediyor. Bu işlem, modelin daha iyi performans göstermesine yardımcı olur.
Şimdi modelimizi oluşturalım. Basit bir yapay sinir ağı oluşturacağız. Modelimiz iki yoğun katmandan oluşacak!
model = models.Sequential([
layers.Flatten(input_shape=(28, 28)),
layers.Dense(128, activation='relu'),
layers.Dense(10, activation='softmax')
])
Bu modelde, ilk katman olan Flatten
, iki boyutlu girişleri düzleştirerek bir boyutlu hale getirir. Bu, ardından gelecek olan yoğun katmanların işleyebilmesi için gereklidir. İkinci katman 128 nörondan oluşur ve relu
aktivasyon fonksiyonunu kullanır. Son katmanımız ise 10 nörona sahiptir ve her bir rakam için olasılığı döndüren softmax
aktivasyon fonksiyonunu kullanır.
Modelimizi Eğitme
Modelimizi oluşturduktan sonra, sırada modelimizi eğitmek var. Bunu yaparken modelin optimizasyonu için bir kayıp fonksiyonu ve bir optimizatör belirlememiz gerekiyor.
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
Yukarıdaki kodda, adam
optimizatörünü seçiyoruz; bu, genelde derin öğrenme projelerinde en iyi sonuçları veren bir optimizatördür. Kayıp fonksiyonu olarak ise sparse_categorical_crossentropy
kullanıyoruz, çünkü sınıflarımızın sayısı 10 ve etiketlerimiz tam sayılar. Modelimizi eğitmek için fit
metodunu çağırıyoruz:
model.fit(x_train, y_train, epochs=5)
Burası, modelimizi 5 epoch boyunca (dönüş) eğiteceğimiz kısım. Eğitim süreci tamamlandığında, modelimizin başarımını test veri seti üzerinde değerlendireceğiz.
Modelin Performansını Değerlendirme
Modelimizi eğittikten sonra, doğruluğunu değerlendirmek önemlidir. Aşağıdaki kod ile modelimizin test veri seti üzerindeki başarılı tahmin oranını kontrol edebiliriz:
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print('\nTest accuracy:', test_acc)
Burası, modelin test seti üzerinde ne kadar doğru tahmin yaptığını gösterir. Eğer modeliniz %97 veya daha fazla bir doğruluk oranına ulaşırsa, bu oldukça başarılı bir sonuç olarak değerlendirilir.
Elde ettiğimiz başarılı sonuçları gözlemledikten sonra, modelin üzerinde iyileştirmeler yapmak da gereklidir. Öğrenim oranı, epoch sayısı, katman sayısı ve nöron sayısı gibi parametreleri değiştirerek modelinizin doğruluğunu geliştirebilir ve overfitting (aşırı uyum) gibi olası sorunların önüne geçebilirsiniz.
Sonuç ve Gelecek Perspektifi
Bu yazıda Python 3.7 kullanarak TensorFlow ile basit bir makine öğrenimi modelinin nasıl oluşturulacağını ve değerlendirileceğini inceledik. TensorFlow, kullanıcı dostu API’leri ile derin öğrenme alanında hızlı bir başlangıç yapma imkanı sunarken, Python’un sadeliği, yazılım geliştirme sürecini daha da hızlandırmaktadır.
Gelecek perspektifinde, TensorFlow’un sunduğu daha ileri düzey özellikleri keşfetmek ve uygulamak, makine öğrenimi algoritmalarının daha etkili bir şekilde geliştirilmesine olanak tanıyacaktır. İlerleyen dönemlerde TensorFlow’un Keras API’si ile daha karmaşık modeller oluşturabilirsiniz. Örneğin, konvolüsyonel sinir ağları (CNN) ve tekrarlayan sinir ağları (RNN) gibi yapılar üzerinde çalışarak görsel ve zaman serisi verileri üzerinde daha derin analizler yapabilirsiniz.
Son olarak, Python ve TensorFlow gibi güçlü araçlar sayesinde, makine öğrenimi projelerinizi hayata geçirme yolunda yeni fikirler ve projeler yaratabilirsiniz. Şimdi sırası geldiğinde kendi örnek projelerinizi denemek ve müşteri taleplerine yönelik yenilikçi çözümler geliştirmek için harekete geçin!