• Yapay zeka soru ve sorunlarınızı uygun olan kategorilere açıp yanıt alabilirsiniz...

TensorFlow.js nedir ve tarayıcıda model çalıştırmada ne işe yarar?

Garfield

Yönetici
YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
488
Mesajlar
501
AI Seviyesi
Yeni
TensorFlow.js, TensorFlow ve Keras modellerini JavaScript ile tarayıcıda çalıştırmanızı sağlayan bir makine öğrenmesi kütüphanesidir. Girdiyi çıkarım için sunucuya göndermek yerine modeli kullanıcının tarayıcısında yükleyip görüntü, ses veya başka girdiler üzerinde tahmin üretebilirsiniz. Böylece bir web sayfası; kamera görüntüsünde nesne algılama, fotoğrafta sınıflandırma ya da basit bir kişiselleştirme işlemini, uygun model ve cihaz bulunduğu sürece doğrudan istemci tarafında yapabilir.

Tarayıcıda nasıl çalışır?​


Tarayıcı önce TensorFlow.js kitaplığını ve model dosyalarını indirir. Model daha sonra JavaScript kodu tarafından belleğe alınır; uygulama girdiyi modelin beklediği biçime dönüştürür ve modelden tahmin sonucu ister. Çıktı genellikle sınıf olasılıkları, sayısal tahminler veya algılanan nesnelerin konumlarıdır.

Çalışma hızı, modelin boyutuna, girdinin çözünürlüğüne ve cihazın işlem gücüne bağlıdır. TensorFlow.js uygun olduğunda tarayıcının hızlandırma olanaklarından yararlanabilir; WebAssembly daha taşınabilir bir CPU seçeneği sunarken WebGL gibi arka uçlar bazı işlemleri GPU üzerinde hızlandırabilir. Bu nedenle güçlü bir bilgisayarda hızlı çalışan model, eski bir telefonda yavaşlayabilir.

Ne işe yarar, neyi çözmez?​


TensorFlow.js özellikle tarayıcıda gerçek zamanlı veya düşük gecikmeli tahmin gereken uygulamalarda kullanışlıdır. Kamera ve mikrofon gibi tarayıcı kaynaklarından alınan veri, uygulamanın tasarımına bağlı olarak sunucuya gönderilmeden işlenebilir. Bu, veri aktarımını azaltabilir; ancak verinin gizli kalmasını otomatik olarak garanti etmez. Uygulamanız girdiyi ayrıca bir API'ye gönderiyorsa veri yine sunucuya ulaşır.

Tarayıcıda büyük ve ağır modelleri çalıştırmak ise her zaman uygun değildir. Kullanıcı model dosyalarını indirmek zorunda kalır, tarayıcı belleği sınırlıdır ve düşük güçlü cihazlarda işlem süresi uzayabilir. Büyük modeller, merkezi veri işleme veya sürekli yüksek performans gerekiyorsa sunucu tarafı çıkarımı daha uygun olabilir.

Aşağıdaki ayrım, mimari kararı verirken kullanılabilir:
Yaklaşımİşlem nerede yapılır?Öne çıkan sonuçDikkat edilmesi gereken
TensorFlow.js ile tarayıcıKullanıcının cihazındaDüşük ağ gecikmesi, istemci tarafında çalışmaModel indirme süresi, cihaz performansı ve tarayıcı belleği
Sunucu tarafı modelUygulamanın sunucusundaMerkezi donanım ve model yönetimiAğ gecikmesi, sunucu maliyeti ve gönderilen verinin korunması
TensorFlow.js modelin doğru tahmin yapacağını da garanti etmez. Sonuç, eğitim verisinin kalitesine, modelin beklediği ön işleme adımlarına ve sınıfların nasıl tanımlandığına bağlıdır. Modelin çıktısı yüksek olasılık verse bile bu, tahminin kesin veya gerçek olduğu anlamına gelmez.

En küçük model çalıştırma örneği​


Örnekteki model.json adresinin, tf.loadLayersModel() ile yüklenebilen LayersModel biçiminde gerçek bir model dosyasına işaret ettiğini varsayalım. TensorFlow SavedModel’dan GraphModel biçimine dönüştürülmüş modeller için tf.loadGraphModel() gerekir; aynı model.json dosya adı bu iki biçimin uyumlu olduğunu göstermez. Modelin tek bir sayı beklediği ve tek bir sayı ürettiği basit bir senaryoda işlem şu şekildedir:

HTML:
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>
<script>
async function calistir() {
  const model = await tf.loadLayersModel('/model/model.json');

  const girdi = tf.tensor2d([[5]], [1, 1]);
  const tahmin = model.predict(girdi);

  const sonuc = await tahmin.data();
  console.log('Model çıktısı:', sonuc[0]);

  girdi.dispose();
  tahmin.dispose();
  model.dispose();
}

calistir();
</script>

Bu kodda tf.loadLayersModel() model dosyasını yükler, tf.tensor2d() modelin beklediği tensör girdisini oluşturur ve predict() tahmin üretir. Konsolda görülen sayı yalnızca modelin kendi çıktısıdır; anlamını, modelin eğitiminde kullanılan hedef ve veri biçimi belirler. Örneğin model sıcaklık tahmini için eğitildiyse sayı sıcaklıkla ilgili olabilir; görüntü sınıflandırması için eğitildiyse aynı kod ve aynı çıktı yorumu geçerli olmaz.

Çalıştırmadan önce kontrol edilmesi gerekenler​


Modelin giriş şekli, veri türü, normalizasyon yöntemi ve çıktı biçimi modelle birlikte bilinmelidir. Görüntüyü 0-255 aralığından 0-1 aralığına çevirmek gerekiyorsa bu işlem yapılmadan verilen görüntü yanlış tahmin üretebilir. Ayrıca model.json ve ona bağlı ağırlık dosyaları aynı erişilebilir model dizininde bulunmalı; sayfa modeli yükledikten sonra tarayıcı geliştirici araçlarındaki konsolda ağ veya şekil uyuşmazlığı hatası olmamalıdır.

Başlangıç için küçük, iyi tanımlanmış bir sınıflandırma veya görüntü modeli seçin. Model tarayıcıda kabul edilebilir sürede yükleniyor, beklenen giriş şekliyle çalışıyor ve doğrulama verisinde anlamlı sonuç veriyorsa TensorFlow.js bu modeli web uygulamasına taşımak için uygun bir katman sağlar. Uygulamanın gerçek başarısını ise kitaplık değil, modelin kalitesi ve onu kullanan kodun doğru ön işleme yapması belirler.
 
Son düzenleme:

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Geri
Üst