1. Giriş
TensorFlow.js ile özel bir makine öğrenimi modeli oluşturdunuz ancak şimdi istediğiniz web sitesinde kullanmak için modeli bir yerde barındırmanız gerekiyor. Bunu yapmanın birçok yolu vardır ancak bugün, sürüm oluşturma, modelleri güvenli bir bağlantı üzerinden sunma gibi bazı ek avantajlar da sunabilen Firebase Hosting'i kullanmanın ne kadar kolay olduğunu göreceğiz.
Ne oluşturacaksınız?
Bu kod laboratuvarında, özel olarak kaydedilmiş bir TensorFlow.js modelini ve HTML, CSS ve JavaScript gibi ilgili öğelerini barındırıp çalıştırabilen uçtan uca tam bir sistem oluşturacaksınız. Giriş değeri verildiğinde sayısal bir çıkış değeri tahmin edebilen (ör.metrekareye göre evin fiyatı) çok basit ve hafif bir model oluşturup Firebase Hosting üzerinden barındıracağız. Böylece bu model, ölçekli olarak kullanılabilecek.
Neler öğreneceksiniz?
- Özel bir TensorFlow.js modelini doğru biçimde kaydetme
- Hosting için Firebase hesabı oluşturma
- Öğelerinizi Firebase Hosting'e dağıtma
- Modelin yeni sürümleri nasıl dağıtılır?
Lütfen unutmayın: Bu kod laboratuvarının odak noktası, özel olarak eğitilmiş bir modeli alıp dağıtım için barındırma yöntemidir. Mükemmel model mimarisi oluşturma kursu değildir. Bu nedenle, makine öğrenimi modelinin kendisini basit bir örnekle hızlı bir şekilde oluşturacağız. Hangi modeli oluşturursanız oluşturun, ilkeler aynı olacaktır.
Ürettiklerinizi bizimle paylaşma
Bu yığını kullanarak harika bir şey yaptıysanız bize bildirin. Yapımlarınızı görmek isteriz.
Projenizin TensorFlow blogumuzda veya Show & Tell gibi gelecekteki etkinliklerimizde yer alması için sosyal medyada #MadeWithTFJS hashtag'ini kullanarak bizi etiketleyin.
2. Firebase Hosting nedir?
Firebase Hosting, web uygulamanız, statik / dinamik içeriğiniz ve mikro hizmetleriniz için hızlı ve güvenli, üretime hazır barındırma hizmeti sunar.
Tek bir komutla web uygulamalarını hızlıca dağıtabilir ve içeriği küresel bir CDN'ye (içerik yayınlama ağı) sunabilirsiniz. Böylece içeriğiniz neredeyse her yerde düşük gecikmeyle kullanılabilir. Mikro hizmetler oluşturup barındırmak için Firebase Hosting'i Firebase Cloud Functions veya Cloud Run ile de eşleştirebilirsiniz ancak bu, bu kod laboratuvarının kapsamı dışındadır.
Firebase Hosting'in temel özellikleri
- İçeriği güvenli bağlantı üzerinden yayınlayın. Modern web güvenlidir. Çoğu zaman, istemci tarafındaki sensörlere erişmek için sitenin güvenli bir bağlam üzerinden sunulması gerekir. Firebase Hosting'de yapılandırma gerektirmeyen SSL yer alır. Bu nedenle, barındırılan tüm dosyalar için içerik her zaman güvenli bir şekilde yayınlanır.
- Statik ve dinamik içeriklerin yanı sıra kimlik doğrulama desteğiyle mikro hizmetleri barındırın. Böylece, istenirse yalnızca oturum açmış kullanıcılar bu dosyaları yükleyebilir / görüntüleyebilir.
- İçeriği hızlı bir şekilde yayınlama: Yüklediğiniz her dosya, dünyanın dört bir yanındaki CDN ağındaki SSD'lerde önbelleğe alınır. Kullanıcılarınız nerede olursa olsun içeriğiniz hızlı bir şekilde yayınlanır.
- Tek bir komutla yeni sürümleri dağıtma: Firebase komut satırı arayüzünü kullanarak uygulamanızı saniyeler içinde çalışır hale getirebilirsiniz.
- Tek tıklamayla geri alma: Hızlı dağıtımlar harika bir seçenektir. Ancak hataları geri alabilmek daha da iyidir. Firebase Hosting, eksiksiz sürüm oluşturma ve tek tıklamayla geri alma gibi sürüm yönetimi özellikleri sunar.
İster basit bir uygulama açılış sayfası ister karmaşık bir Progresif Web Uygulaması (PWA) dağıtıyor olun, Hosting size web siteleri ve uygulamaları dağıtıp yönetmeye yönelik olarak uyarlanmış altyapı, özellikler ve araçlar sunar.
Varsayılan olarak her Firebase projesinin web.app ve firebaseapp.com alanlarında ücretsiz alt alan adları vardır. Bu iki site, aynı dağıtılmış içeriği ve yapılandırmayı sunar. İsterseniz kendi alan adınızı Firebase'de barındırılan bir siteye de bağlayabilirsiniz.
Uygulama adımları
- Proje kurma
- Firebase komut satırı arayüzünü yükleme ve yapılandırma
- Sitenizi dağıtma
- Performans izleme için Firebase web uygulamasına bağlantı (isteğe bağlı)
Ancak bunları yapabilmemiz için dağıtılacak bir makine öğrenimi modeli ve web uygulaması gerekir. O zaman haydi bir tane oluşturalım.
3. Ev fiyatlarını tahmin etmek için basit bir makine öğrenimi modeli
Bu alıştırmada, sayısal değerleri tahmin eden çok basit bir makine öğrenimi modeli oluşturacağız. Yalnızca örnekleme amacıyla, makine öğrenimini kullanarak kurgusal bir evin değerini, metrekare cinsinden boyutuna göre tahmin etmeye çalışacağız. Aslında bu demoda, eğitim verilerimiz için evin tahmini değerini elde etmek üzere evin metrekare cinsinden alanını 1.000 katına çıkaracağız ancak makine öğreniminin bunu kendi başına öğrenmesi gerekecek.
Gerçekte, daha karmaşık ilişkilere sahip olabilecek gerçek dünya verilerini kullanmayı tercih edersiniz (ör. daha küçük evlerde dolar değerini tahmin etmek için yalnızca 500 katı olabilir ancak belirli bir eşikten sonra kademeli olarak 1.000 katı olur vb.) ve bu değerleri tahmin etmenin en iyi yolunu öğrenmek için daha gelişmiş bir modele ihtiyacınız olabilir.
Bugün oluşturacağımız model (doğrusal regresyon), yeterli gerçek dünya verisi sağlandığında başka birçok şeyi tahmin etmek için kullanılabilir ve yukarıdaki varsayımsal kullanım alanımızda kullanmaya başlamak kolaydır. Ancak bugün odak noktamız, belirli bir kullanım alanı için model tasarlayıp optimize etmek yerine modeli kaydetmeyi ve dağıtmayı öğrenmektir. O zaman başlayalım.
Eğitim ve test verileri
Tüm makine öğrenimi modelleri, modeli gelecekteki değerleri tahmin edebilecek şekilde eğitmek için kullanabileceğimiz bazı örnek eğitim verilerini elde ederek başlar. Genellikle bu tür verileri bir veritabanından, dosya klasöründen, CSV'den veya daha fazlasından alabilirsiniz. Ancak burada, 20 örneği doğrudan JavaScript'te bir dizi olarak aşağıdaki şekilde sabit kodlayacağız. Bu kodu, şimdilik kod yazmaktan memnun olduğunuz bir ortamda (ör. Glitch.com) veya localhost'ta bir sunucu çalıştırabiliyorsanız yerel olarak kendi metin düzenleyicinizde kopyalamanızı öneririz.
model.js
// House square footage.
const data = [800, 850, 900, 950, 980, 1000, 1050, 1075, 1100, 1150, 1200, 1250, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000];
// Estimated dollar cost of house for each piece of data above (1000x square footage).
const answers = [800000, 850000, 900000, 950000, 980000, 1000000, 1050000, 1075000, 1100000, 1150000, 1200000, 1250000 , 1300000, 1400000, 1500000, 1600000, 1700000, 1800000, 1900000, 2000000];
// Testing data separate from training data.
const dataTest = [886, 1225, 500];
const answersTest = [886000, 1225000, 500000];
Gördüğünüz gibi, her veri parçası için gelecekte tahmin etmeye çalışacağımız bir yanıt değeri vardır (bunları basit bir 2 boyutlu grafikteki x ve y değerleri olarak düşünebilirsiniz).
Bu nedenle, 800 değeri için 800.000 TL'lik bir tahmini yanıt oluşturmak istiyoruz. 900 değeri için 900.000 TL çıkışı elde ederiz. Temel olarak sayı 1.000 ile çarpılır. Ancak makine öğrenimi modeli, 1.000 * N şeklindeki bu basit ilişkiyi bilmez ve bunu sağladığımız örneklerden kendi başına öğrenmesi gerekir.
Eğitim verilerinden tamamen ayrı bazı test verilerimiz olduğunu da unutmayın. Bu sayede, eğitilmiş modeli daha önce hiç görmediği veriler üzerindeki performansını değerlendirmek için kullanabiliriz.
Bu komut dosyasını, aşağıdaki HTML'yi kullanarak TensorFlow.js kitaplığıyla birlikte yükleyeceğiz:
train.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Training Model</title>
<meta charset="utf-8">
</head>
<body>
<!-- Import TensorFlow.js library -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs/dist/tf.min.js" type="text/javascript"></script>
<!-- Import our JS code to train the model -->
<script src="/model.js" defer></script>
</body>
</html>
Modeli eğitme
Ardından, aşağıdaki kodu dosyanın sonundaki mevcut JS kodumuza ekleyerek modeli eğitme zamanı gelir.
Meraklılar için yorumlar eklendi ancak belirtildiği gibi bu codelab, kaydedilmiş bir modeli alıp barındırmakla ilgili. Model oluşturma hakkında daha ayrıntılı bilgi edinmek isterseniz son bölümde bağlantıları verilen diğer codelab'lere göz atabilirsiniz. Şu an için kodu projenize kopyalayıp yapıştırabilirsiniz.
model.js
// Create Tensor representations of our vanilla JS arrays above
// so can be used to train our model.
const trainTensors = {
data: tf.tensor2d(data, [data.length, 1]),
answer: tf.tensor2d(answers, [answers.length, 1])
};
const testTensors = {
data: tf.tensor2d(dataTest, [dataTest.length, 1]),
answer: tf.tensor2d(answersTest, [answersTest.length, 1])
};
// Now actually create and define model architecture.
const model = tf.sequential();
// We will use one dense layer with 1 neuron and an input of
// a single value.
model.add(tf.layers.dense({inputShape: [1], units: 1}));
// Choose a learning rate that is suitable for the data we are using.
const LEARNING_RATE = 0.0001;
train();
async function train() {
// Compile the model with the defined learning rate and specify
// our loss function to use.
model.compile({
optimizer: tf.train.sgd(LEARNING_RATE),
loss: 'meanAbsoluteError'
});
// Finally do the training itself over 500 iterations of the data.
// As we have so little training data we use batch size of 1.
// We also set for the data to be shuffled each time we try
// and learn from it.
let results = await model.fit(trainTensors.data, trainTensors.answer, {epochs: 500, batchSize: 1, shuffle: true});
// Once trained we can evaluate the model.
evaluate();
}
async function evaluate(stuff) {
// Predict answer for a single piece of data.
model.predict(tf.tensor2d([[768]])).print();
}
Yukarıdaki kodu kullanarak, giriş değeri verildiğinde çıkış değerini tahmin edebilen bir model eğitebildik. Yukarıdaki kodu çalıştırdığımda, 768 giriş değeri için 768.073 tahmini elde ediyorum. Bu değer, tarayıcınızın geliştirici konsoluna yazdırılıyor (henüz açık değilse F12 tuşuna basarak açabilirsiniz). Girişten 1.000 kat daha yüksek örnekler verdiğimiz göz önüne alındığında, bu, ev fiyatı için oldukça iyi bir tahmindir. Not: Tahmin edilen değeriniz biraz farklı olabilir. Bu durum normaldir.
Bu performanstan memnunsak artık tek yapmamız gereken bu modeli diske kaydetmek. Böylece modeli Firebase Hosting'e yükleyebiliriz.
Modeli kaydetme
Yukarıdaki evaluate işlevinin sonuna (model.predict'ten sonra) aşağıdaki kodu eklemek, eğitim tamamlandıktan sonra ortaya çıkan modeli doğrudan web tarayıcısından dışa aktarmamıza ve diske kaydetmemize olanak tanır. Böylece, sayfayı her yüklediğimizde yeniden eğitmemize gerek kalmadan modeli bir yerde barındırabilir ve gelecekte kullanabiliriz.
model.js
await model.save('downloads://my-model');
Şimdi train.html dosyasını ziyaret edip sayfayı çalıştırırsanız model eğitilir (birkaç saniye sürebilir) ve tamamlandığında ortaya çıkan eğitilmiş modeli indirmeniz istenir.
4. Firebase'i ayarlama
Firebase'de oturum açın ve proje oluşturun
Firebase'i ilk kez kullanıyorsanız Google Hesabınızı kullanarak kolayca kaydolabilirsiniz. https://firebase.google.com/ adresine gidip kullanmak istediğiniz normal Google Hesabınızla oturum açmanız yeterlidir. Ana sayfaya yönlendirildikten sonra sayfanın sağ üst kısmındaki "Konsola git"i tıklayın:

Konsola yönlendirildikten sonra aşağıdaki gibi bir açılış sayfası görürsünüz:

Yeni bir Firebase projesi oluşturmak için gösterildiği gibi Proje Ekle'yi tıklayın, projenize benzersiz bir ad verin, şartları kabul edin ve Devam'ı tıklayın.
Ardından, projenize analiz eklemek isteyip istemediğiniz sorulur. Bu tür analizlere erişmek istiyorsanız bu seçeneği etkinleştirip gösterildiği gibi Devam'ı tıklayabilirsiniz:

Her şey yolunda gittiyse aşağıdaki gibi bir proje hazır sayfasıyla karşılaşırsınız:

Harika! Bir projemiz var. Yeni oluşturulan projenin konsoluna gitmek için Devam'ı tıklayın. Sayfayı daha sonra kullanmak üzere açık tutun ancak şu an bazı araçları yüklememiz gerekiyor.
CLI'yı yükleme ve bağlama
Firebase, komut satırı arayüzü (KSA) üzerinden yükleyip kullanabileceğiniz bir Node NPM paketi olarak sunulur. Bu sayede yerel dosyalarınızı ve klasörlerinizi Firebase Hosting'e kolayca dağıtabilirsiniz. Bugünkü eğitimde Linux ortamı kullanacağız ancak Windows veya Mac kullanıyorsanız cihazınızda CLI araçlarını ayarlamak için buradaki talimatları uygulayabilirsiniz.
Ancak Linux'ta, henüz yüklenmemişse önce NPM ve Node.js'yi yükleriz ( diğer ortamları kullanıyorsanız bu talimatları uygulayın). Bunu yapmak için terminal penceresinde aşağıdaki 3 komutu kullanırız:
Komut Satırı Terminali:
sudo apt update
Komut Satırı Terminali:
sudo apt install nodejs
Komut Satırı Terminali:
sudo apt install npm
Node.js ve NPM'yi yükledikten sonra Firebase komut satırı araçlarını yüklemek için terminal penceresinde aşağıdaki komutu çalıştırmanız yeterlidir:
Komut Satırı Terminali:
sudo npm install -g firebase-tools
Mükemmel! Artık Firebase projemizi sistemimize bağlamaya hazırız. Böylece, projemize dosya gönderebilir ve daha birçok işlem yapabiliriz.
Firebase'e giriş yapma
Aşağıdaki komutu çalıştırarak Google Hesabınızı kullanarak Firebase'e giriş yapın:
Komut Satırı Terminali:
firebase login
Google Firebase Hesabınıza erişim izni vermeniz istenir.

Buna izin verdiğinizde komut satırı araçlarınızın Firebase hesabınıza başarıyla bağlandığını görürsünüz:

Pencereyi kapatın ve daha önce yazdığınız komut satırı terminaline geri dönün. Bu terminal artık gösterildiği gibi yeni komutları kabul etmeye hazır olmalıdır (Ekran görüntümüzdeki özel bilgileri gizledik):

Tebrikler! Artık yerel makinemizden oluşturduğumuz projeye dosya göndermeye hazırız.
Projenizi Firebase Hosting'e dağıtmak üzere başlatma
Yerel klasörünüzü Firebase projenize bağlamak için yerel proje dizininizin kökünden (dosyaları dağıtırken yüklemek için kullanmak istediğiniz klasör) aşağıdaki komutu çalıştırın.
Komut Satırı Terminali:
firebase init
Bu komutu yürüttükten sonra, kurulumu tamamlamak için terminaldeki talimatları uygulamanız yeterlidir.

Burada klavyenizdeki aşağı ok tuşunu kullanarak Barındırma hizmeti kullanılarak seçeneğini belirleyip boşluk çubuğuna basarak seçebilir ve Enter tuşuna basarak onaylayabilirsiniz.
Şimdi, daha önce oluşturduğumuz mevcut projeyi kullanmak için seçebiliriz:

"Mevcut bir projeyi kullan" seçeneğinde Enter tuşuna basın ve ardından aşağı ok tuşunu kullanarak aşağıdaki resimde gösterildiği gibi seçin:

Son olarak, kullanmak için Enter tuşuna basın. Ardından, açılan son ekranda varsayılanları kabul edin ve tek sayfalık uygulama olarak yapılandırmak için "Hayır" deyin:

Bu sayede, isterseniz birden fazla HTML sayfası barındırabilirsiniz.
Başlatma işlemi tamamlandığında, yukarıdaki komutları çalıştırdığımız dizinde bir firebase.json dosyası ve bir "public" klasörü oluşturulduğunu görürsünüz.

Şimdi yapmamız gereken tek şey, dağıtmak istediğimiz dosyaları oluşturduğumuz ortak klasöre taşımak. Böylece dağıtım yapabiliriz. Şimdi bu işlemi yapalım.
5. TensorFlow.js web sayfanızı oluşturma
Kayıtlı modelinizi yükleme
Öncelikle, kod laboratuvarının başında kaydettiğimiz makine öğrenimi modelini Firebase ile yeni oluşturduğumuz herkese açık klasörümüze kopyaladığımızdan emin olalım. Kayıtlı dosyalarınızı gösterildiği gibi bu klasöre sürükleyip bırakmanız yeterlidir:

Firebase'in bizim için index.html ve 404.html dosyaları oluşturduğunu da fark edeceksiniz. Şimdi, makinenizdeki favori metin düzenleyicinizi kullanarak index.html dosyasını düzenleyelim. Böylece, gösterildiği gibi kendi özel kodumuzu ekleyebiliriz:
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Hello World - TensorFlow.js</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Import the webpage's stylesheet -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>TensorFlow.js Hello World</h1>
<p>Check the console (Press F12) to see predictions!</p>
<!-- Import TensorFlow.js library -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs/dist/tf.min.js" type="text/javascript"></script>
<!-- Import the page's JavaScript to do some stuff -->
<script src="script.js" defer></script>
</body>
</html>
Yukarıdaki index.html için yeni kodumuzda, istersek daha sonra sayfamıza stil ekleyebilmemiz için bir stil sayfası ve TensorFlow.js kaydedilmiş modelimizi kullanmak üzere yazmamız gereken kodu barındırmak için script.js belirtiyoruz.
Şimdi bu dosyaları oluşturalım ve aşağıdaki gibi dolduralım. Böylece dosyalar faydalı bir işe yarayacak:
style.css
/** Leave blank for now **/
script.js
// Load our saved model from current directory (which will be
// hosted via Firebase Hosting)
async function predict() {
// Relative URL provided for my-model.json.
const model = await tf.loadLayersModel('my-model.json');
// Once model is loaded, let's try using it to make a prediction!
// Print to developer console for now.
model.predict(tf.tensor2d([[1337]])).print();
}
predict();
Adımları doğru şekilde uyguladıysanız oluşturduğumuz herkese açık klasörde aşağıdaki düzenlenmiş dosyaları görmeniz gerekir:

Şimdi yapmamız gereken tek şey, dosyalarımızı dağıtmak. Böylece çalışıp çalışmadığını kontrol edebiliriz.
6. Modelinizi ve web sitenizi dağıtma
Yayın başlıyor
Yerel makinenizin Firebase proje klasöründe açtığınız terminal penceresine geri dönün (bu klasör, yukarıdaki "public" klasörümüzü ve Firebase başlatma dosyalarını içerir).
Ortak klasör dosyalarınızı dağıtmak için aşağıdaki komutu yazmanız yeterlidir:
Komut Satırı Terminali:
firebase deploy
Terminal komutunun tamamlanmasını bekleyin. Bu işlem tamamlandığında, kullanabileceğiniz URL ile birlikte başarılı bir yayın oluşturulmuş olur:

Yukarıdaki örneğimizde, dağıtımımızı görüntülemek için nihai URL'nin şu olduğunu görebilirsiniz:
https://tensorflow-js-demo.web.app (ancak URL'niz, oluşturduğunuz projenin adı olacaktır).
Bu URL'yi bir web tarayıcısında açarak çalışıp çalışmadığını kontrol edin. Başarılı olursa açtığınız sayfanın geliştirici konsoluna aşağıdaki gibi bir şey yazdırılır (geliştirici konsolunu açmak için F12'ye basın).

Sayfanın dağıtılan alanda yüklendiğini görebilirsiniz. Ayrıca, modelimizin 1337 metrekare için tahminini doğru bir şekilde görebiliyoruz. Bu tahmin, metrekarenin 1.000 katı olmasını beklediğimiz için gerçekten çok iyi bir tahmin olan 1.336.999,25 ABD doları olarak belirlenmiş. Elbette, modeli çağırmak için güzel bir kullanıcı arayüzü oluşturursak istediğimiz kadar tahmin yapabiliriz. Bu durumda her şey tamamen JavaScript'te çalışır ve sorgularınız gizli ve güvenli kalır.
Modeliniz dağıtılıp barındırıldıktan sonra web sitesini dünyanın herhangi bir yerindeki kullanıcılarla paylaşabilirsiniz. Bu kullanıcılar, uygulamanızı kendi makinelerinde kullanabilir. Elbette daha iyi bir kullanıcı arayüzü eklemek ve arayüzü harika göstermek isteyebilirsiniz ancak bu, bu eğitimin kapsamı dışındadır. Bu şekilde barındırabileceğiniz, makine öğrenimi destekli web uygulamalarının sınırı yoktur. Bu uygulamalar, tek bir tıklamayla çalışabilir ve yükleme gerektirmez. Tarayıcı içi makine öğrenimi modelinden yararlanabilecek başka durumlar da düşünebilirsiniz.
Kullanımı izleme
Web sitenizin koduna ekleyebileceğiniz Google Analytics'e ek olarak Firebase, projeniz için konsol üzerinden sürüm oluşturma ve kullanım istatistikleri de sunar. Dağıtım işleminden sonra aşağıdaki gibi bir ekran görürsünüz. Bu ekranı gerektiğinde zaman zaman kontrol edebilirsiniz:


Gördüğünüz gibi, ücretsiz katmanda barındırılan dosyalarınız için varsayılan olarak ayda 10 GB bant genişliği elde edersiniz. Siteniz daha popülerse belirli bir ayda bu miktardan daha fazla kullanmak için faturalandırma hesabı eklemeniz gerekebilir. Daha büyük projeler için Firebase planlarını buradan inceleyebilirsiniz. Ancak prototipler için Firebase'i kullanan çoğu kullanıcı, modeliniz küçükse ve kullanım düşükse ücretsiz katmanı aşmayacaktır. Bu nedenle, işinizi veya fikrinizi büyütürken ücretli bir plana geçmeden önce Firebase'i test etmek ve ihtiyaçlarınızı karşılayıp karşılamadığını kontrol etmek için harika bir yoldur.
7. Tebrikler
Tebrikler. TensorFlow.js'i Firebase ile kullanarak özel bir makine öğrenimi modeli oluşturup dağıtma ve bu modeli dünyayla paylaşma konusunda ilk adımlarınızı attınız. Firebase, talebe göre otomatik olarak ölçeklendiği için bu güçlü ve ölçeklenebilir yaklaşımı kullanarak yapabileceğiniz diğer her şeyi hayal edin. İsterseniz üretim kullanım alanları için de hazır olan bu yaklaşımı 10 veya 10.000 kullanıcı kullanmak istese de sorunsuz bir şekilde çalışır.
Dosyalarınızda herhangi bir değişiklik yaparsanız uygulamanızı daha önce olduğu gibi firebase deploy komutunu kullanarak yeniden dağıtmanız ve sayfayı bir sonraki yüklemenizde dosyaların yeni sürümünü aldığınızdan emin olmak için tarayıcı önbelleğinizi temizlemeniz yeterlidir. Geliştirici araçları açıksa bu sekmenin üst kısmındaki "Önbelleği devre dışı bırak" onay kutusunu işaretleyerek test sırasında işinizi kolaylaştırmak için bu durumu ağ sekmesinde zorlayabilirsiniz:

Özet
Bu kod laboratuvarında:
- Ev fiyatlarını tahmin etmek için özel bir TensorFlow.js modeli tanımlayıp tamamen sıfırdan eğitti.
- Geliştirme makinenizde Firebase'e kaydolmuş, Firebase'i ve Firebase CLI araçlarını yapılandırmış ve yüklemiş olmanız gerekir.
- 1. adımda eğitilen modelimizi yükleyen ve dünyanın her yerinden herkesin erişebileceği, ölçeklenebilir bir web uygulamasında kullanan çalışan bir web sitesi dağıtıp kullanıma sunduk.
Yapabilecekleriniz
Artık çalışır durumda bir temeliniz olduğuna göre, bu makine öğrenimi modeli dağıtımı için standart metni genişletmek üzere hangi yaratıcı fikirleri üretebilirsiniz?
Bu özelliği kendi verilerinizle kullanmanızı isteriz. Yaşadığınız veya çalıştığınız sektörü ya da alanı düşünün. Gelecekte size (veya başkalarına) fayda sağlayabilecek tahminler yapmak için bu tür verilerle nasıl eğitim yapabilirsiniz? Burada tek örnek emlak değildir. Bu yaklaşımı kendi zorluklarınıza da uygulamanızı öneririz. İyi hack'ler!
Sosyal medyada öne çıkmak veya gelecekteki TensorFlow etkinliklerinde yer almak için #MadeWithTFJS hashtag'ini kullanarak oluşturduğunuz içeriklerde bizi etiketlemeyi unutmayın (Diğer kullanıcıların neler oluşturduğuyla ilgili ilham almak için bu bağlantıyı tıklayın). Yaptıklarınızı görmek bizi çok mutlu eder. Geri bildirim veya sorularınız olursa bu codelab'in yazarıyla iletişime geçebilirsiniz.
Daha ayrıntılı bilgi için diğer TensorFlow.js Codelab uygulamaları
- TensorFlow.js'de sıfırdan nöral ağ yazma
- TensorFlow.js'de transfer öğrenimini kullanarak ses tanıma
- TensorFlow.js'de aktarımla öğrenmeyi kullanarak özel görüntü sınıflandırması