TensorFlow.js: Makine öğrenimi modelini geniş ölçekte dağıtmak ve barındırmak için Firebase Hosting'i kullanın

1. Giriş

TensorFlow.js ile özel bir makine öğrenimi modeli oluşturdunuz. Ancak şimdi bu modeli, istediğiniz bir web sitesinde kullanmak üzere bir yerde barındırmanız gerekiyor. Bunu yapmak için pek çok seçenek var. Ancak bugün, Firebase Hosting'i kullanmanın ne kadar kolay olduğunu göreceğiz. Bu özellik size sürüm oluşturma, modelleri güvenli bağlantı üzerinden sunma ve kullanıma hazır daha pek çok ek avantaj sağlayabilir.

Oluşturacaklarınız

Bu kod laboratuvarında, özel kayıtlı TensorFlow.js modelini HTML, CSS ve JavaScript gibi ilişkili öğelerle barındırıp çalıştırabilen tam uçtan uca bir sistem oluşturacaksınız. Belirli bir giriş değerine (ör. bir evin alan büyüklüğüne göre fiyatı nedir) verildiğinde sayısal çıkış değerini tahmin edebilecek ve geniş ölçekte kullanılabilmesi için Firebase Hosting'de barındıracak çok basit bir model geliştireceğiz.

Neler öğreneceksiniz?

  • Özel bir TensorFlow.js modelini doğru biçimde kaydetme
  • Barındırma için Firebase hesabı oluşturma
  • Öğelerinizi Firebase Hosting'e dağıtma
  • Bir modelin yeni sürümlerini dağıtma.

Lütfen unutmayın: Bu kod laboratuvarı, mükemmel model mimarisini geliştirmeye yönelik bir kurs yerine özel olarak eğitilmiş bir modelin alıp dağıtım için barındırılmasıyla ilgilidir. Bu nedenle, basit bir örnekle makine öğrenimi modelini oluşturma sürecini hızlandıracağız. Kendi kendinize oluşturduğunuz model ne olursa olsun ilkeler aynıdır.

Yaptıklarınızı bizimle paylaşın

Bu yığını kullanarak güzel bir şey yaptıysanız bize bildirin! Yapımlarınızı görmekten memnuniyet duyarız.

Projenizin TensorFlow blogumuzda, hatta Show &#MadeWithTFJS Anlar.

2. Firebase Hosting nedir?

Firebase Hosting, web uygulamanız, statik / dinamik içeriğiniz ve mikro hizmetleriniz için hızlı ve güvenli üretim düzeyinde barındırma sağlar

Tek bir komutla web uygulamalarını hızlı bir şekilde dağıtıp küresel CDN'ye (içerik yayınlama ağı) içerik sunarak içeriğinizin neredeyse her yerde düşük gecikmeyle kullanıma sunulmasını sağlayabilirsiniz. Firebase Hosting'i Firebase Cloud Functions veya Cloud Run ile de eşleyerek mikro hizmetler geliştirip barındırabilirsiniz ancak bu kod laboratuvarının kapsamı dışındadır.

Firebase Hosting'in temel özellikleri

  • İçeriklerinizi güvenli bir bağlantı üzerinden yayınlayın - Modern web güvenlidir. İstemci tarafındaki sensörlere erişmek için genellikle sitenin güvenli bir bağlam üzerinden sunulması gerekir. Firebase Hosting'de sıfır yapılandırmalı SSL bulunur. Bu sayede, barındırılan tüm dosyalar için içerik her zaman güvenli bir şekilde sunulur.
  • Statik ve dinamik içeriklerin yanı sıra kimlik doğrulama desteğiyle mikro hizmetleri barındırın. Böylece, gerektiğinde yalnızca giriş yapmış kullanıcılar dosyaları yükleyebilir / görüntüleyebilir.
  • İçeriği hızlı bir şekilde yayınlayın. Yüklediğiniz her dosya, dünyanın dört bir yanındaki CDN kenarlarında SSD'lerde önbelleğe alınır. Kullanıcılarınız nerede olursa olsun içerik hızlı bir şekilde teslim edilir.
  • Tek bir komutla yeni sürümleri dağıtın: Firebase komut satırı arayüzünü kullanarak uygulamanızı saniyeler içinde çalışır duruma getirebilirsiniz.
  • Tek tıklamayla geri alma: Hızlı dağıtımlar muhteşemdir ancak hataları geri alabilmek daha da iyidir. Firebase Hosting, tek tıkla geri alma özelliğiyle tam sürüm oluşturma ve sürüm yönetimi sağlar.

İ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ğıtmak ve yönetmek için 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ılan içeriği ve yapılandırmayı sunar. İsterseniz kendi alan adınızı Firebase tarafından barındırılan bir siteye de bağlayabilirsiniz.

Uygulama adımları

Ancak bunlardan herhangi birini yapabilmemiz için makine öğrenimi modeline ve web uygulamasına ihtiyacımız var. Haydi bir resim oluşturalım!

3. Ev fiyatlarını tahmin eden basit bir makine öğrenimi modeli

Bu alıştırmada, sayısal değerleri tahmin eden çok basit bir ML Modeli geliştireceğiz. Yalnızca örnek olarak sağlamak amacıyla, hayali bir evin fitkare cinsinden değerini tahmin etmek için makine öğrenimini kullanmaya çalışacağız. Aslında bu demoda eğitim verilerimiz için tahmini değerini elde etmek amacıyla evin 1000 metrekaresini oluşturacağız, ancak makine öğreniminin bunu kendi başına öğrenmesi gerekecek.

Gerçekte, daha karmaşık ilişkilere sahip olabilen gerçek dünya verilerini kullanmayı tercih edersiniz (örneğin, küçük evlerin dolar değerini tahmin etmek için boyutunun sadece 500 katı olabilir, ancak belirli bir eşikten sonra kademeli olarak 1000 kata dönüşür) 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 miktarda gerçek dünya verisi verildiğinde diğer birçok şeyi tahmin etmek için kullanılabilir. Yukarıdaki varsayımsal kullanım örneğimizde bu modeli kullanmaya kolayca başlayabiliriz. Ancak bugün belirli bir kullanım alanı için model tasarlayıp optimize etmeyi değil de modelin nasıl kaydedilip dağıtılacağını öğrenmeye odaklanıyoruz. Öyleyse başlayalım.

Eğitim ve Test verileri

Tüm makine öğrenimi modelleri, modele gelecekteki değerleri tahmin etmeyi öğretmek için kullanabileceğimiz bazı örnek eğitim verilerinin alınmasıyla başlar. Bu tür verileri genellikle bir veritabanından, bir dosya klasöründen, CSV'den veya başka bir kaynaktan alabilirsiniz, ancak burada 20 örneği aşağıda gösterildiği gibi JavaScript'e doğrudan bir dizi olarak kodlayacağız. Bu kodu, şu an için Glitch.com gibi uygun bir ortamda veya localhost'ta sunucu çalıştırabiliyorsanız kendi metin düzenleyicinizde yerel olarak çoğaltmanı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örebileceğiniz gibi, her veri parçası için elimizde buna karşılık gelen bir yanıt değeri vardır. Bu yanıt, gelecekte deneyip tahmin edeceğimiz değeri ifade eder (bunları basit bir 2 boyutlu grafikte x ve y değerleri olarak düşünebilirsiniz).

Böylece 800 değeri için 800.000 dolarlık bir çıktı yanıtı tahmini üretmek istiyoruz. 900 değeri için 900.000 TL çıktı alınır ve bu şekilde devam eder. Aslında bu sayı 1000 ile çarpılır. Ancak makine öğrenimi modeli, 1000 * N arasındaki bu basit ilişkiyi bilmez ve sağladığımız bu örneklerden kendi başına öğrenmesi gerekir.

Elimizde, eğitim verilerinden tamamen ayrı olan bazı test verilerinin de bulunduğunu unutmayın. Bu, eğitilen modeli değerlendirerek daha önce hiç görülmemiş veriler üzerinde ne kadar iyi performans gösterdiğini görmemizi sağlar.

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

Şimdi sıra, aşağıdaki kodu dosyanın sonundaki mevcut JS kodumuza ekleyerek modeli eğitmeye geldi.

Meraklı kullanıcılar için yorumlar eklendi ancak daha önce de belirtildiği gibi, bu codelab'de kayıtlı bir model alıp bu modeli barındırmayla ilgilidir. Model oluşturma hakkında daha fazla bilgi edinmek isterseniz son kısımda bağlantısı verilen başka codelab'leri inceleyebilirsiniz. Şimdilik kodu kopyalayıp projenize 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ğerine göre bir çıkış değerini tahmin edebilen bir model eğitebildik. Yukarıdaki kodu çalıştırdığımda, 768 giriş değeri için 768.073'lük bir tahmin alıyorum. Bu tahmin, tarayıcınızın geliştirici konsoluna yazdırılır (önceden açılmamışsa F12'ye basarak). Girdiden 1.000 kat daha yüksek örnekler verdiğimizi göz önünde bulundurarak bu, ev fiyatına ilişkin oldukça iyi bir tahmindir. Not: Tahmini değeriniz biraz farklı olabilir ve bu normaldir.

Bu performanstan memnun kaldıysak şu an tek yapmamız gereken bu modeli diske kaydetmektir. Böylece Firebase Hosting'e yükleyebiliriz.

Modeli kaydetme

Yukarıdaki değerlendirme işlevinin sonuna (model.predict sonrası) aşağıdaki kodun eklenmesi, eğitim tamamlandıktan sonra elde edilen 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ğitmek zorunda kalmadan bu modeli bir yerde barındırabilir ve gelecekte kullanabiliriz.

model.js

await model.save('downloads://my-model');

Şimdi Train.html adresini ziyaret edip sayfayı çalıştırırsanız model, modeli eğitir (bu işlem birkaç saniye sürebilir) ve tamamlandığında sonuçta elde edilen eğitilmiş modeli indirmenizi ister.

4. Firebase'i ayarlama

Firebase'de oturum açma ve proje oluşturma

Firebase'i kullanmaya yeni başladıysanı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 "konsola git"i tıklayın tıklayın:

ea7ff3f08e4019b0.png

Konsola yönlendirildiğinizde şuna benzer bir açılış sayfası görürsünüz:

166d9408ad46599b.png

Add Project (Proje Ekle) seçeneğini tıklayarak yeni bir Firebase projesi oluşturun, 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 isterseniz bu seçeneği etkinleştirebilir ve gösterildiği gibi devam et'i tıklayabilirsiniz:

a34c2be47b26e6b5.png

Her şey yolunda gittiyse aşağıda gösterildiği gibi bir proje hazır sayfasıyla karşılanmalısınız:

1306dc803ad22338.png

Harika! Bir projemiz var. Yeni oluşturulan projenin konsoluna gitmek için Devam'ı tıklayın. Daha sonra kullanmak için sayfayı açık tutun ancak şimdilik bazı araçlar yüklememiz gerekiyor.

CLI'yı yükleme ve bağlama

Firebase, yerel dosya ve klasörlerinizi Firebase Hosting'e dağıtmayı kolaylaştıran komut satırı arayüzü (KSA) aracılığıyla yükleyip kullanabileceğiniz bir Node NPM paketi olarak sunulur. Bugünkü eğitimde Linux ortamı kullanacağız ancak Windows veya Mac kullanıyorsanız cihazınızda CLI araçlarını kurmak için buradaki talimatları uygulayabilirsiniz.

Ancak Linux'ta, yüklü değilse önce NPM ve Node.js'yi yükleyeceğiz ( başka ortamlar kullanıyorsanız bu talimatları uygulayın). Bunun için terminal penceresinde aşağıdaki 3 komutu kullanmanız gerekir:

Komut Satırı Terminali:

sudo apt update

Komut Satırı Terminali:

sudo apt install nodejs

Komut Satırı Terminali:

sudo apt install npm

Şimdi Node.js ve NPM'yi yüklediyseniz, Firebase komut satırı araçlarını yüklemek için bir terminal penceresinde aşağıdaki komutu çalıştırmanız yeterlidir:

Komut Satırı Terminali:

sudo npm install -g firebase-tools

Çok güzel! Artık firebase projemizi sistemimize bağlamaya hazırız. Böylece ona dosya aktarabilir ve çok daha fazlasını yapabilirsiniz.

Firebase'e giriş yapma

Aşağıdaki komutu çalıştırarak Google Hesabınızla Firebase'e giriş yapın:

Komut Satırı Terminali:

firebase login

Aşağıda gösterildiği şekilde, Google Firebase hesabınıza erişim izni vermeniz istenir:

4dc28589bef2ff5d.png

Bunu yaptığınızda komut satırı araçlarınızın Firebase hesabınıza başarılı bir şekilde bağlandığını görmeniz gerekir:

df397ec7a555e8de.png

Pencereyi kapatın ve daha önce yazdığınız komut satırı terminaline dönün. Bu terminal, gösterildiği gibi yeni komutları kabul etmeye hazır olmalıdır (ekran görüntümüzde gizli bilgiler gizlendi):

67a3ff39d3c0f3e4.png

Tebrikler! Artık dosyaları yerel makinemizden oluşturduğumuz projeye aktarmaya hazırız.

Projenizi Firebase Hosting'e dağıtım için başlatma

Yerel klasörünüzü Firebase projenize bağlamak için yerel proje dizininizin (dağıttığınızda dosya yüklemek için kullanmak istediğiniz klasör) kök dizininden aşağıdaki komutu çalıştırın.

Komut Satırı Terminali:

firebase init

Bu komutu çalıştırdıktan sonra aşağıda gösterildiği gibi kurulumu tamamlamak için terminaldeki talimatları uygulamanız yeterlidir:

61e0f6d92ef3e1c4.png

Burada klavyenizdeki aşağı oku kullanarak Barındırma'yı seçmeniz ve seçmek için boşluk çubuğuna basmanız, ardından işlemi onaylamak için Enter tuşuna basmamız yeterlidir.

Şimdi daha önce oluşturduğumuz mevcut projeyi seçip kullanabiliriz:

4f2a1696d5cfd72f.png

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

4dfcf2dff745f2c.png

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

7668a2175b624af2.png

Bu, isterseniz birden fazla html sayfası barındırmanıza olanak tanır.

Başlatma tamamlandığında, bir firebase.json dosyası ve bir "public" (herkese açık) klasörü, yukarıdaki komutları çalıştırdığımız dizinde oluşturuldu.

cd7724b92f3d507.png

Şu an tek yapmamız gereken dağıtmak istediğimiz dosyaları oluşturduğumuz ortak klasöre taşımak. Dosyalar dağıtılmaya uygun olacak. Şimdi bunu yapalım.

5. TensorFlow.js web sayfanızı oluşturma

Kayıtlı modeliniz yükleniyor

Öncelikle codelab'de daha önce kaydettiğimiz Makine Öğrenimi modelini, Firebase ile yeni oluşturduğumuz ortak klasörümize kopyaladığımızdan emin olalım. Kayıtlı dosyalarınızı aşağıdaki gösterildiği gibi sürükleyip bu klasöre bırakmanız yeterlidir:

cd6f565189e23705.png

Ayrıca, Firebase'in bizim için index.html ve 404.html dosyaları oluşturduğunu da göreceksiniz. Devam edelim ve index.html'yi makinenizde favori metin düzenleyicinizi kullanarak 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>

.

Şimdi devam edelim ve bu dosyaları oluşturalım ve yararlı bir şey yapmaları için dosyaları aşağıdaki gibi dolduralım:

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 bir şekilde uyguladıysanız, oluşturulan ortak klasörde aşağıdaki düzenlenen dosyaları görmeniz gerekir:

253498c703c04ee.png

Şu an tek yapmamız gereken dosyalarımızı dağıtmak. Böylece çalışıp çalışmadığını kontrol edebiliriz.

6. Modelinizi ve web sitenizi dağıtma

Canlı yayın yapma

Yerel makinenizin Firebase proje klasöründe açtığınız terminal penceresine geri dönün (bu, firebase init dosyalarıyla birlikte yukarıdaki "public" klasörümüzü içeren klasördür).

Ortak klasör dosyalarınızı dağıtmak için aşağıdakileri yazmanız yeterlidir:

Komut Satırı Terminali:

firebase deploy

Terminal komutunun tamamlanmasını bekleyin ve ardından, kullanmak için kullanabileceğiniz URL ile birlikte başarılı bir sürümünüz olması gerekir:

c5795cae85ed82a5.png

Yukarıdaki örnekte, dağıtımımızı görüntüleyeceğiniz nihai URL'yi 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ı olması durumunda, açtığınız sayfanın geliştirici konsoluna bunun gibi bir şey yazdırılması gerekir (geliştirici konsolunu açmak için F12 tuşuna basın).

182aee0acfa7c41e.png

Gördüğünüz gibi sayfa, dağıtılan alanda yüklendiğinde ve modelimizin 1.337 fitkarelik tahminini doğru bir şekilde görebiliyoruz. Bu tahmin, 1.336.999,25 ABD doları olarak ortaya çıkıyor. Bu değer,bunun 1.000 fitkareye ulaşacağını tahmin ettiğimiz için oldukça iyi bir tahmindir. Elbette bunun yerine modeli çağırmak için güzel bir kullanıcı arayüzü oluştursaydık istediğimiz kadar tahminde bulunabiliriz. Bu durumda, tüm bunlar tamamen JavaScript'te çalışarak sorgularınızın gizli ve güvende kalmasını sağlar.

Modeliniz dağıtıldığına ve barındırıldığına göre artık web sitesini dünyadaki herkesle paylaşabilirsiniz. Böylece kullanıcılar, uygulamanızı makinelerinde kullanabilir. Açıkçası daha iyi bir kullanıcı arayüzü eklemek ve arayüzün harika görünmesini sağlamak isteyebilirsiniz ancak bu, bu eğiticinin kapsamı dışındadır. Hiçbir yükleme yapmadan tek tıklamayla çalışabilen, bunun gibi makine öğrenimi destekli olası web uygulamalarını barındırabileceğiniz olası web uygulamalarına dair bir sınır yoktur. Tarayıcı içi makine öğrenimi modelinden yararlanabilecek diğer durumları da göz önünde bulundurmanızı öneririz.

Kullanımı izleme

Web sitenizin koduna ekleyebileceğiniz Google Analytics'in yanı sıra Firebase, projenizin konsolu üzerinden sürüm oluşturma ve kullanım istatistikleri de sunar. Dağıtımdan sonra aşağıdakine benzer bir bölüm görürsünüz. Bu bölümü zaman zaman kontrol edebilirsiniz:

42b1cb8f7c10016.png

fbdd6504bec7c3d.png

Gördüğünüz gibi, varsayılan olarak, ücretsiz katmanda, barındırılan dosyalarınız için aylık 10 GB bant genişliği sağlanır. Siteniz daha popülerse belirli bir ayda bundan daha fazlasını kullanmak için bir faturalandırma hesabı eklemeniz gerekebilir. Daha büyük projelere yönelik Firebase planlarına buradan göz atabilirsiniz. Bununla birlikte, prototiplerin sıradan kullanıcıların çoğu, modeliniz küçükse ve kullanım oranı düşükse muhtemelen ücretsiz katmanı aşmayacaktır. Bu nedenle, işinizi veya fikrinizi büyütürken ücretli bir plana başlamadan önce bu planı test edip ihtiyaçlarınızı karşılayıp karşılamadığını kontrol edebilirsiniz.

7. Tebrikler

Tebrikler! TensorFlow.js'yi Firebase ile birlikte kullanarak özel bir yerleşik makine öğrenimi modeli oluşturup dağıtmak için ilk adımlarınızı attınız. Böylece, modeli tüm dünyayla paylaşabilirsiniz. Firebase talebe göre otomatik olarak ölçeklendirildiğinden, üretimde kullanım alanları için hazır olan bu güçlü ve ölçeklenebilir yaklaşımı kullanarak yapabileceğiniz diğer tüm şeyleri bir düşünün. Firebase 10 ya da 10.000 kullanıcı tarafından tercih edilsin, işe yarıyor.

Dosyalarınızdan birini değiştirmeniz durumunda, önceki gibi firebase dağıtımı kullanarak uygulamanızı yeniden dağıtmanız yeterlidir. Daha sonra sayfayı yüklediğinizde dosyaların yeni sürümünü almak için tarayıcınızın önbelleğini temizleyin. Geliştirici araçlarınız açıksa, işlemleri test ederken "Önbelleği devre dışı bırak"ı seçerek bunu ağ sekmesinin altından zorlayabilirsiniz onay kutusunu işaretleyin:

b1e4c1bf304a4869.png

Özet

Bu kod laboratuvarında şunları yaptık:

  1. Ev fiyatlarını tahmin etmek için tamamen sıfırdan özel bir TensorFlow.js modeli tanımlayıp eğitti.
  2. Firebase ve Firebase CLI araçlarının kaydolup yapılandırılıp geliştirme makinenize yüklenmesini sağlayın.
  3. 1. adımdan itibaren eğitilen modelimizi yükleyen ve dünyanın her yerinden, geniş ölçekte herkes tarafından erişilebilen gerçek dünyadaki bir web uygulamasında bu modeli kullanan, çalışan bir web sitesini dağıtıp kullanıma sunduk.

Sırada ne var?

Artık başlangıç yapabileceğiniz bir çalışma tabanınız olduğuna göre, bu makine öğrenimi modeli dağıtım için ortak metinlerini geliştirmek için hangi yaratıcı fikirleri üretebilirsiniz?

Bu özelliği kendi verilerinizle kullanmanızı çok isteriz. Yaşadığınız ya da çalıştığınız sektörü veya bölgeyi düşünün. Bu tür verilerden yararlanarak gelecekte sizin (veya başkalarının) işine yarayabilecek tahminlerde bulunmak için ne yapabilirsiniz? Buradaki tek örnek gayrimenkul değildir ve bunu kendi karşılaştığınız zorluklarda da uygulamanızı öneririz. Başarılı bilgisayar korsanlığı!

Sosyal medyada öne çıkarılma, hatta gelecekteki TensorFlow etkinliklerinde öne çıkma fırsatı için #MadeWithTFJS ile oluşturduğunuz her şeyde bizi etiketlemeyi unutmayın (diğerlerinin yaptıklarından ilham almak için bu bağlantıyı tıklayın). Neler yaptığınızı öğrenmekten memnuniyet duyarız. Herhangi bir geri bildiriminiz ya da sorunuz olursa bu codelab'in yazarıyla iletişime geçebilirsiniz.

Ayrıntılı bilgi için diğer TensorFlow.js codelab'leri

Göz atılabilecek web siteleri