Tarayıcıda Akıllı Uygulamalar Oluşturmak ve Geliştiricileri Desteklemek için Bir Araç: Tensorflow.js

Oğuzhan Kalkar
Huawei Developers - Türkiye
3 min readJun 20, 2023
Tensorflow.js

Giriş

Son yıllarda makine öğrenimi alanı önemli ilerlemeler kaydetti ve geliştiricilere akıllı uygulamalar oluşturma imkanı sağladı. Tensorflow.js’in ortaya çıkmasıyla makine öğreniminin gücü doğrudan tarayıcıda kullanılabiliyor. Bu makalede, Tensorflow.js’in özelliklerini keşfedecek ve web geliştiricilerin harici sunuculara bağımlı olmadan akıllı uygulamalar oluşturmak için nasıl kullanabileceklerini öğreneceğiz.

Genel Bakış:

Tensorflow.js, Google tarafından geliştirilen ve geliştiricilere JavaScript kullanarak makine öğrenimi modellerini çalıştırma imkanı sunan açık kaynaklı bir kütüphane. Bu kütüphane, tamamen tarayıcı ortamında makine öğrenimi görevlerini gerçekleştirmek için güçlü ve esnek bir platform sağlıyor. Tensorflow.js, istemci cihazlarının hesaplama gücünden faydalanarak sunucu tarafı hesaplama ihtiyacını ortadan kaldırıyor ve gerçek zamanlı ve gizlilik koruyan makine öğrenimi uygulamalarını mümkün kılıyor.

Entegrasyon Süreci:

Tensorflow.js’e başlamak oldukça kolaydır. Geliştirme ortamınızı kurmaya ve gerekli kütüphaneleri eklemeye başlayın. ‘@tensorflow/tfjs’ paketi, Tensorflow.js’in ana kütüphanesidir ve makine öğrenimi modelleri oluşturmak ve çalıştırmak için geniş bir işlev yelpazesi sunar. Bu paketi npm veya yarn gibi paket yöneticilerini kullanarak indirebiliriz.

Ardından, önceden eğitilmiş bir modeli uygulamanıza yükleyebilirsiniz. Tensorflow.js, TensorFlow SavedModel, TensorFlow.js Katmanlar formatı ve TensorFlow Hub modelleri gibi çeşitli model formatlarını destekler. Bu modelleri ‘tf.loadGraphModel’ veya ‘tf.loadLayersModel’ yöntemlerini kullanarak yükleyebilirsiniz.

Makine Öğrenimi Uygulamaları Oluşturma:

Tensorflow.js ile tarayıcıda makine öğrenimi uygulamaları oluşturma konusunda sınırlar yoktur. Özelliklerini görmek için bazı örnekleri inceleyelim.

Örnek 1: Görüntü Sınıflandırma

Görüntü sınıflandırma, içeriğine göre görüntülere etiket atayan yaygın bir makine öğrenimi görevidir. Tensorflow.js ile tarayıcıda çalışan görüntü sınıflandırma uygulamaları oluşturabilirsiniz. İlk olarak, önceden işlem yapmak için görüntüyü yeniden boyutlandırma veya normalize etme gibi adımları uygulayarak görüntüyü önişleyin. Ardından, ‘model.predict’ yöntemini kullanarak tahminleri elde edin ve ‘tf.argMax’ ve ‘dataSync’ kullanarak en yüksek tahmin edilen sınıfı ve olasılığını çıkarın.

// Görüntüyü ön işle
const işlenmişGörüntü = görüntüyüÖnişle(görüntü);

// Önceden eğitilmiş modele göre tahmin yap
const tahminler = await model.predict(işlenmişGörüntü);

// En yüksek tahmin edilen sınıfı ve olasılığını al
const enYüksekTahmin = tf.argMax(tahminler, 1).dataSync()[0];
const olasılık = tahminler.dataSync()[enYüksekTahmin];

console.log(`Tahmin edilen sınıf: ${enYüksekTahmin}`);
console.log(`Olasılık: ${olasılık}`);

Çıktı:

Tahmin edilen sınıf: kedi
Olasılık: 0.95

Örnek 2: Doğal Dil İşleme (Metin Sınıflandırma)

Metin sınıflandırma, metinsel verilere etiket veya kategori atama işlemidir. Tensorflow.js ile gerçek zamanlı olarak metin analizi ve kategorizasyonu yapan metin sınıflandırma uygulamaları oluşturabilirsiniz. İlk olarak, girdi metniyi tokenleme ve ön işleme adımlarını içeren işlemlerle önişleyin, örneğin tokenleme, dolgu veya metni sayısal temsillere dönüştürme. Ardından, önceden eğitilmiş modele tahmin yapmak, tahmin edilen sınıfı ve olasılığını çıkarmak ve sonuçları kullanıcıya sunmak için kullanın.

// Metni tokenize et ve ön işle
const tokenizeEdilmişMetin = metniTokenizeEt(girdiMetni);
const önİşlemeMetni = metniÖnişle(tokenizeEdilmişMetin);

// Önceden eğitilmiş modele göre tahmin yap
const tahminler = await model.predict(önİşlemeMetni);

// Tahmin edilen sınıfı ve olasılığını al
const tahminEdilenSınıf = tf.argMax(tahminler, 1).dataSync()[0];
const olasılık = tahminler.dataSync()[tahminEdilenSınıf];

console.log(`Tahmin edilen sınıf: ${tahminEdilenSınıf}`);
console.log(`Olasılık: ${olasılık}`);

Çıktı:

Tahmin edilen sınıf: pozitif
Olasılık: 0.85

Performans Optimizasyon:

Tarayıcı ortamının kaynağının kısıtlı olduğu dikkate alındığında, makine öğrenimi modellerinin verimli bir şekilde çalıştırılması önemlidir. Tensorflow.js, model performansını optimize etmek için çeşitli teknikler sunar. Bu tekniklerden biri model quantization’dır, bu sayede modelin bellek kullanımı ve tahmin süresi azaltılabilir. ‘tf.quantize’ kullanarak modeli quantize ederek daha hızlı tahmin yapabilir ve doğruluktan ödün vermeden performansı artırabilirsiniz.

// Önceden eğitilmiş modeli yükle
const model = await tf.loadLayersModel('https://ornek.com/model/model.json');

// Modeli quantize edilmiş bir sürüme dönüştür
const quantizedModel = await tf.quantize(model);

// Quantize edilmiş modelle tahmin yap
const çıktı = quantizedModel.predict(girdiVerisi);

Web Teknolojileriyle Entegrasyon:

Tensorflow.js, diğer web teknolojileriyle sorunsuz bir şekilde entegre olarak daha zengin ve etkileşimli uygulamalar oluşturmanıza olanak tanır. Tensorflow.js’i HTML, CSS ve JavaScript ile birleştirerek görsel olarak etkileyici ve kullanıcı dostu arayüzler oluşturabilirsiniz. React veya Vue.js gibi çerçeveler, ölçeklenebilir ve modüler makine öğrenimi uygulamaları oluşturmak için kullanılabilir. Ayrıca, Tensorflow.js, GPU’nun hızlı hesaplamalar için kullanılmasını sağlayan WebGL hızlandırmasını destekler.

Sonuç

Tensorflow.js, web tarayıcısına makine öğreniminin gücünü getirerek, web geliştiricilerin harici sunuculara bağımlı olmadan akıllı uygulamalar oluşturmasını sağlar. Bu makalede, Tensorflow.js’in yeteneklerini tanıttım ve entegrasyon sürecini tamamladık. Görüntü sınıflandırma ve metin sınıflandırma gibi çeşitli kullanım örneklerini keşfettik ve model performansını optimize etmek için tekniklere değindim. Ayrıca, Tensorflow.js’in web teknolojileriyle sorunsuz entegrasyonunu tartıştık. Tensorflow.js ile tarayıcıda doğrudan çalışan makine öğrenimi uygulamaları oluşturarak, web geliştirme alanında geleceğin kapılarını aralayabileceğiniz birçok yeni imkan açığa çıkarıyor.

Unutmayın, Tensorflow.js’in gerçek potansiyeli, hayal gücünüz ve onun özelliklerini nasıl kullanacağınızla belli olur. Teşekkürler :)

Referanslar

Tensorflow.js Youtube Guide

--

--