Keras
Keras, sinir ağları oluşturmak ve eğitmek için kullanılan üst düzey bir Python API'sidir; Keras 3'ten bu yana aynı kodu JAX, TensorFlow veya PyTorch üzerinde çalıştırır.
Keras, sinir ağları oluşturmak ve eğitmek için kullanılan, açık kaynaklı, üst düzey bir Python API'sidir. François Chollet, derin öğrenme deneylerinin hızla yazılabilmesi için Keras'ı Mart 2015'te yayımladı: bir model, katmanlardan oluşan bir yığın veya grafiktir; compile, optimize ediciyi, kayıp fonksiyonunu ve ölçütleri ayarlar; fit ise eğitim döngüsünü çalıştırır. Keras, TensorFlow'un resmî üst düzey API'si hâline geldi. Kasım 2023'te yayımlanan Keras 3, içe aktarma sırasında seçilen JAX, TensorFlow veya PyTorch üzerinde aynı model kodunu çalıştırır. Kısa ve okunabilir kodu, Keras'ı öğretim, prototip oluşturma ve Kaggle yarışmalarının yanı sıra görüntü sınıflandırma ve doğal dil işleme alanlarındaki üretim modelleri için de yaygın bir seçenek hâline getirir.
Keras Nasıl Çalışır#
Bir Keras modeli, her biri kendi ağırlıklarını barındıran Dense, Conv2D, LSTM ve MultiHeadAttention gibi katmanlardan oluşturulur. Keras, bu katmanları bir araya getirmek için üç yol sunar: düz bir yığın için Sequential API'si, dalları, paylaşılan katmanları veya birden çok girdisi olan grafikler için işlevsel API ve ileri geçiş üzerinde tam denetim için keras.Model sınıfını alt sınıflara ayırma. Derlenmiş bir model, gruplamayı, geri yayılımı, ölçütleri, doğrulama verilerini ve kontrol noktası kaydetme ya da erken durdurma için geri çağırımları yöneten fit ile eğitilir; ardından yeni verileri evaluate ve predict ile puanlar. Bu kod, Keras ile birlikte gelen MNIST veri kümesinde küçük bir rakam sınıflandırıcısı eğitir:
import os
os.environ["KERAS_BACKEND"] = "torch" # or "jax" or "tensorflow", set before importing Keras
import keras
# MNIST handwritten digits, with pixels scaled to [0, 1]
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
# Define the model as a stack of layers
model = keras.Sequential(
[
keras.Input(shape=(28, 28)),
keras.layers.Flatten(),
keras.layers.Dense(128, activation="relu"),
keras.layers.Dense(10, activation="softmax"),
]
)
# Configure training, then train and evaluate
model.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics=["accuracy"])
model.fit(x_train, y_train, epochs=2, batch_size=64, verbose=0)
loss, accuracy = model.evaluate(x_test, y_test, verbose=0)
print(f"Test accuracy: {accuracy:.3f}")İki epoch sonra yaklaşık 0.96 test doğruluğu yazdırır ve "torch" değerini "jax" veya "tensorflow" olarak değiştirmek, başka hiçbir satırı düzenlemeden aynı modeli başka bir çerçevede çalıştırır.
Keras 3 ve Arka Uçları#
Keras başlangıçta Theano, TensorFlow ve CNTK dâhil olmak üzere çeşitli motorlarda çalışıyordu. Eylül 2019'da yayımlanan Keras 2.3, birden çok arka ucu destekleyen son sürümdü; ardından geliştirme, tf.keras olarak TensorFlow'un içine taşındı. Keras 3, arka uç bağımsızlığını yeniden sağladı: katmanlar ve modeller, her arka ucun uyguladığı NumPy tarzı bir işlem kümesi olan keras.ops temel alınarak yazılır; böylece .keras biçiminde kaydedilen bir model herhangi bir arka uçta yeniden yüklenip eğitilebilir. PyTorch arka ucuyla bir Keras modeli aynı zamanda özel bir PyTorch eğitim döngüsünün kullanabileceği bir torch.nn.Module nesnesidir; Keras 3.8'den itibaren yalnızca çıkarım yapan bir OpenVINO arka ucu da eğitilmiş modelleri Intel donanımında çalıştırır.
TensorFlow 2.16'dan itibaren TensorFlow'u yüklemek Keras 3'ü de yükler; hâlâ Keras 2'ye ihtiyaç duyan kodlar ayrı tf_keras paketini kullanır. Model dönüştürücüler de Keras'ı hedefler: Ultralytics YOLO, YOLO26 modelini TensorFlow SavedModel biçimine dışa aktardığında onnx2tf dönüştürücüsü, ONNX grafiğindeki PyTorch ağını kaydetmeden önce katman katman yeniden Keras modeli olarak oluşturur.
KerasHub'da Önceden Eğitilmiş Modeller#
KerasHub, görüntüler için ResNet, metin için BERT ve Gemma büyük dil modelleri gibi popüler mimarilerin önceden eğitilmiş kontrol noktalarına sahip Keras 3 uygulamalarını sunar. Bir hazır ayar adı, aktarım öğrenmesine hazır bir model yükler: keras_hub.models.ImageClassifier.from_preset("resnet_50_imagenet"), ImageNet üzerinde eğitilmiş bir sınıflandırıcı döndürür; ince ayarlama bu sınıflandırıcıyı, yukarıda kullanılan aynı fit çağrısıyla yeni bir veri kümesine uyarlar. Keras 3'ün geri kalanında olduğu gibi KerasHub modelleri de üç eğitim arka ucundan herhangi birinde çalışır.
Keras, TensorFlow ve PyTorch Karşılaştırması#
- TensorFlow: Kendi çalışma zamanı, derleyicisi ve TensorFlow Serving ile LiteRT gibi dağıtım araçları bulunan eksiksiz bir çerçevedir. Keras, birçok TensorFlow kullanıcısının model yazdığı API'dir; TensorFlow ise Keras kodunu çalıştıran motorlardan biridir.
- PyTorch: Kullanıcıların genellikle eğitim döngüsünü kendilerinin yazdığı veya PyTorch Lightning gibi bir kitaplık kullandığı bir çerçevedir. Keras, döngüyü
fitaracılığıyla sağlar ve arka uç olarak PyTorch'u kullanabilir; dolayısıyla ikisi birbirini dışlamaz. - JAX: Google'ın türev alma, XLA derleme ve vektörleştirme için birleştirilebilir işlev dönüşümleri kitaplığıdır. JAX'te yerleşik bir katman veya eğitim API'si yoktur; Keras, JAX üzerine böyle bir API eklemenin yollarından biridir.










