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. Şimdi bu modeli, istediğiniz bir web sitesinde kullanmak için 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 yayınlama ve daha fazlası gibi bazı ekstra avantajlar da sunan Firebase Hosting'in ne kadar kolay kullanıldığını göreceğiz.

Oluşturacağınız uygulama

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 eksiksiz bir uçtan uca sistem oluşturacaksınız. Belirli bir giriş değeri (ör. bir evin metrekare alanı verildiğinde fiyatı) verildiğinde sayısal bir çıkış değerini tahmin edebilecek çok basit ve hafif bir model oluşturacağız ve bu modeli geniş ölçekte kullanılabilmesi için Firebase Hosting üzerinden barındıracağız.

Neler öğreneceksiniz?

  • Özel 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ının odak noktası, mükemmel bir model mimarisi oluşturma kursu yerine, özel olarak eğitilmiş bir modeli alıp dağıtım için barındırmaktır. Bu nedenle, makine öğrenimi modelinin oluşturulmasıyla ilgili basit bir örnekle hızlıca ilerleyeceğiz. Hangi modeli kendiniz oluşturursanız oluşturun, temel ilkeler aynıdır.

Oluşturduklarınızı bizimle paylaşma

Bu paketi kullanarak harika bir şey yaptıysanız bize bildirin. Hazırladığınız içerikleri görmek isteriz.

Projenizin TensorFlow blogumuzda veya Show & Tells gibi gelecekteki etkinliklerimizde yer alma şansı için #MadeWithTFJS hashtag'ini kullanarak bizi sosyal medyada 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 üretim sınıfı barındırma sağlar.

Tek bir komutla web uygulamalarını hızlı bir şekilde dağıtabilir ve içeriğinizin neredeyse her yerden düşük gecikmeli olarak kullanılabilmesini sağlayarak içeriği küresel bir CDN'ye (içerik yayınlama ağı) yayınlayabilirsiniz. Mikro hizmetler oluşturmak ve barındırmak için Firebase Hosting'i Firebase Cloud Functions veya Cloud Run ile de kullanabilirsiniz ancak bu, bu kod laboratuvarının kapsamı dışındadır.

Firebase Hosting'in temel özellikleri

  • İçeriği güvenli bir bağlantı üzerinden yayınlayın. Modern web güvenlidir. İstemci tarafındaki sensörlere erişmek için sitenin genellikle güvenli bir bağlamda yayınlanması gerekir. Yapılandırma gerektirmeyen SSL, Firebase Hosting'e yerleştirilmiştir. Bu sayede, 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ğine sahip mikro hizmetler barındırın. Böylece, yalnızca giriş yapmış kullanıcılar bu dosyaları istedikleri zaman 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.
  • Yeni sürümleri tek bir komutla 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.

Basit bir uygulama açılış sayfası veya karmaşık bir Progresif Web Uygulaması (PWA) dağıtıyor olsanız da barındırma, web sitelerini ve uygulamaları dağıtmaya ve yönetmeye özel 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 tarafından barındırılan bir siteye de bağlayabilirsiniz.

Uygulama adımları

Ancak bunların hiçbirini yapmadan önce dağıtılacak bir makine öğrenimi modeline ve web uygulamasına ihtiyacımız var. O halde bir tane oluşturalım.

3. Ev fiyatlarını tahmin etmek için basit bir makine öğrenimi modeli

Bu alıştırma için sayısal değerleri tahmin eden çok basit bir ML modeli oluşturacağız. Yalnızca açıklama amacıyla, makine öğrenimini kullanarak hayali bir evin değerini tahmin etmeye çalışacağız. Aslında bu demoda, eğitim verilerimiz için tahmini değerini almak üzere evin metrekare değerini 1.000'e çarpacağız. Ancak makine öğreniminin bunu kendi başına öğrenmesi gerekir.

Gerçekte, daha karmaşık ilişkilere sahip olabilecek gerçek dünya verilerini kullanmayı tercih edersiniz (ör. daha küçük evler için dolar değerini tahmin etmek yalnızca evin büyüklüğünün 500 katı olabilir, ancak belirli bir eşiğin üzerinde kademeli olarak 1.000 katına çıkar). 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, belirli bir kullanım alanı için model tasarlama ve optimize etme yerine modelleri nasıl kaydedip dağıtacağınızı öğrenmeye odaklanacağız. O zaman 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 verileri elde ederek başlar. Bu tür verileri genellikle bir veritabanından, dosya klasöründen, CSV dosyasından veya başka bir kaynaktan alabilirsiniz. Ancak burada, aşağıda gösterildiği gibi 20 örneği doğrudan JavaScript'te dizi olarak kodlayacağız. Bu kodu, şimdilik kodlamaktan memnun olduğunuz bir ortamda (ör. Glitch.com) veya localhost'te sunucu çalıştırabiliyorsanız yerel olarak kendi metin düzenleyicinizde kopyalamanız önerilir.

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 değer olan karşılık gelen bir yanıt değerimiz vardır (bunları basit bir 2D grafikteki x ve y değerleri olarak düşünebilirsiniz).

Dolayısıyla 800 değeri için 800.000 ABD doları tutarında bir çıkış yanıtı tahmini oluşturmak istiyoruz. 900 değeri için 900.000 TL değerini döndürürüz. Temel olarak sayı 1000 ile çarpılır. Ancak makine öğrenimi modeli, 1000 * N basit ilişkisini bilmez ve bu ilişkiyi sağladığımız örneklerden kendi başına öğrenmelidir.

Eğitim verilerinden tamamen ayrı bazı test verilerine de sahip olduğumuzu unutmayın. Bu sayede, eğitilen modeli daha önce hiç görmediği verilerde ne kadar iyi performans gösterdiğini görebiliriz.

Aşağıdaki HTML'yi kullanarak bu komut dosyasını 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 yukarıdaki mevcut JS kodumuza, dosyanın sonuna ekleyerek modeli eğitme zamanı gelmiştir.

Merak edenler için yorumlar eklendi ancak belirtildiği gibi bu codelab daha çok kayıtlı bir modeli alıp barındırmayla ilgilidir. Model oluşturma hakkında daha ayrıntılı bilgi edinmek istiyorsanız makalenin sonundaki diğer codelab'lere göz atabilirsiniz. Ş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ğeri verildiğinde çıkış değerini tahmin edebilecek bir model eğitebildik. Yukarıdaki kodu çalıştırdığımda, 768 giriş değeri için 768.073 tahmini alıyorum. Bu tahmin, tarayıcınızın geliştirici konsoluna yazdırılır (henüz açık değilse F12 tuşuna basarak açın). Girdiğiniz değerden 1.000 kat daha yüksek örnekler verdiğimiz göz önüne alındığında, bu ev fiyatının oldukça iyi bir tahminidir. Not: Tahmin edilen değeriniz biraz farklı olabilir. Bu normaldir.

Bu performanstan memnun kaldıysak Firebase Hosting'e yükleyebilmek için bu modeli diske kaydetmemiz yeterlidir.

Modeli kaydetme

Yukarıdaki evaluate işlevinin sonuna (model.predict'ten sonra) aşağıdaki kodu eklemek, eğitim tamamlandıktan sonra elde edilen modeli doğrudan web tarayıcısından dışa aktarıp diske kaydetmemize olanak tanır. Böylece, sayfayı her yüklediğimizde yeniden eğitmek zorunda kalmadan modeli bir yerde barındırabilir ve gelecekte kullanabiliriz.

model.js

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

Ardından train.html dosyasını ziyaret edip sayfayı çalıştırdığınızda model eğitilir (bu işlem birkaç saniye sürebilir) ve eğitilen model tamamlandığında indirmeniz istenir.

4. Firebase'i ayarlama

Firebase'de oturum açın ve proje oluşturun

Firebase'de yeniyseniz 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:

ea7ff3f08e4019b0.png

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

166d9408ad46599b.png

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 et'i tıklayabilirsiniz:

a34c2be47b26e6b5.png

Her şey yolunda giderse aşağıdaki gibi bir proje hazır sayfası görürsünüz:

1306dc803ad22338.png

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

CLI'yi 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) üzerinden yükleyip kullanabileceğiniz bir Node NPM paketi olarak sunulur. Bugünkü eğitimimizde Linux ortamını kullanacağız. Windows veya Mac kullanıyorsanız cihazınızda CLI araçlarını ayarlamak için buradaki talimatları uygulayabilirsiniz.

Ancak Linux'da, terminal penceresinde aşağıdaki 3 komutu kullanarak önce NPM'yi ve Node.js'yi ( diğer ortamları kullanıyorsanız bu talimatları uygulayın) yükleriz:

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ğıdakileri ç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, projeye dosya gönderebilir ve daha fazlasını 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

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

4dc28589bef2ff5d.png

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

df397ec7a555e8de.png

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

67a3ff39d3c0f3e4.png

Tebrikler! Artık yerel makinemizden oluşturduğumuz projeye dosya göndermeye hazırız.

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

Yerel klasörünüzü Firebase projenize bağlamak için yerel proje dizininizin kökünden (dağıtırken dosya 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 çalıştırdıktan sonra, kurulumu tamamlamak için terminaldeki talimatları uygulayın.

61e0f6d92ef3e1c4.png

Burada, klavyenizdeki aşağı oku kullanarak Barındırma'yı seçebilir, ardından seçmek için boşluk tuşuna, onaylamak için de Enter tuşuna basabiliriz.

Artık daha önce oluşturduğumuz mevcut projeyi seçebiliriz:

4f2a1696d5cfd72f.png

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

4dfcf2dff745f2c.png

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

7668a2175b624af2.png

Bu sayede, isterseniz birden fazla HTML sayfası barındırabilirsiniz.

İlklendirme tamamlandığında, yukarıdaki komutları çalıştırdığımız dizinde bir firebase.json dosyası ve "public" klasörü oluşturulduğunu görürsünüz.

cd7724b92f3d507.png

Şimdi tek yapmamız gereken, dağıtmak istediğimiz dosyaları oluşturduğumuz herkese açık klasöre taşımak. Ardından dağıtıma hazır oluruz. Şimdi bunu yapalım.

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

Kayıtlı modelinizi yükleme

Öncelikle, kod laboratuvarının başlarında kaydettiğimiz makine öğrenimi modelini Firebase ile yeni oluşturduğumuz herkese açık klasöre 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:

cd6f565189e23705.png

Ayrıca Firebase'in bizim için index.html ve 404.html dosyaları oluşturduğunu göreceksiniz. Artık bilgisayarınızdaki 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'de kayıtlı modelimizi kullanmak üzere yazmamız gereken kodu barındırmak için script.js belirtiyoruz.

Şimdi bu dosyaları oluşturup faydalı bir işlev görecek şekilde şu şekilde 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şturduğumuz herkese açık klasörde aşağıdaki düzenlenmiş dosyaları görmelisiniz:

253498c703c04ee.png

Artık dosyalarımızı dağıtarak bu yöntemin işe yarayıp yaramadığını kontrol etmemiz gerekiyor.

6. Modelinizi ve web sitenizi dağıtma

Canlı yayına başlama

Yerel makinenizdeki Firebase proje klasöründe açtığınız terminal penceresine geri dönün (bu, Firebase init dosyalarının yanı sıra 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ına izin verin. Ardından, başarılı bir sürümün yanı sıra bu sürümü kullanmak için kullanabileceğiniz URL'yi göreceksiniz:

c5795cae85ed82a5.png

Yukarıdaki örneğimizde, dağıtımımızı görüntülemek için kullanacağımız nihai URL'nin şu olduğunu görebilirsiniz:

https://tensorflow-js-demo.web.app (ancak URL'niz, oluşturduğunuz projenin adıdır).

Bu URL'yi bir web tarayıcısında açarak çalıştığını kontrol edin. Başarılı olursa açtığınız sayfanın geliştirici konsoluna aşağıdaki gibi bir mesaj yazdırır (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üklenir ve modelimizin 1.337 metrekare için yaptığı tahmini doğru bir şekilde görebiliriz. Bu tahmin 1.336.999,25 ABD doları olarak ortaya çıkar. Bu, metrekarenin 1.000 katı olmasını beklediğimiz için gerçekten çok iyi bir tahmindir. Bunun yerine modeli çağıracak güzel bir kullanıcı arayüzü oluşturabilirsek elbette istediğimiz kadar tahmin yapabiliriz. Bu işlemler tamamen JavaScript'te gerçekleşir ve sorgularınız gizli ve güvenli kalır.

Modeliniz dağıtılıp barındırıldığına göre web sitesini dünyanın her yerindeki herkesle paylaşabilirsiniz. Bu kişiler uygulamanızı kendi makinelerinde kullanabilir. Daha iyi bir kullanıcı arayüzü eklemek ve bunu harika görünecek şekilde tasarlamak isteyebilirsiniz ancak bu konu bu eğitim kapsamında değildir. Makine öğrenimi destekli ve sıfır yükleme gerektirmeden tek tıklamayla çalışabilen bu tür web uygulamalarını barındırabileceğiniz sınır yoktur. Tarayıcı içi makine öğrenimi modelinden yararlanabilecek diğer durumları düşünmenizi öneririz.

Kullanımı izleme

Firebase, web sitenizin koduna ekleyebileceğiniz Google Analytics'in yanı sıra projenizin konsolunu kullanarak sürüm ve kullanım istatistikleri de sunar. Yayınladıktan sonra, gerektiğinde zaman zaman kontrol edebileceğiniz aşağıdaki gibi bir ekran görürsünüz:

42b1cb8f7c10016.png

fbdd6504bec7c3d.png

Gördüğünüz gibi, ücretsiz katmanda barındırılan dosyalarınız için varsayılan olarak aylık 10 GB bant genişliği elde edersiniz. Siteniz daha popülerse belirli bir ay içinde bundan daha fazlasını kullanmak için faturalandırma hesabı eklemeniz gerekebilir. Daha büyük projeler için FireBase planlarına buradan göz atabilirsiniz. Ancak prototiplerin çoğu kullanıcısı, modeliniz küçük ve kullanımınız düşükse muhtemelen ücretsiz katmanı aşmaz. Bu nedenle, işletmenizi veya fikrinizi büyütürken ücretli bir plana bağlılık taahhüt etmeden önce bu planı test edip ihtiyaçlarınızı karşılayıp karşılamadığını kontrol etmek için bu yöntemi kullanabilirsiniz.

7. Tebrikler

Tebrikler. Firebase ile TensorFlow.js'i kullanarak özel bir makine öğrenimi modeli oluşturma ve dağıtma konusunda ilk adımlarınızı atarak bu modeli dünyayla paylaşabilirsiniz. İsterseniz üretim kullanım alanlarına hazır olan bu güçlü ve ölçeklenebilir yaklaşımı kullanarak neler yapabileceğinizi bir düşünün. Firebase, taleple otomatik olarak ölçeklendiğinden 10 veya 10.000 kullanıcının bunu kullanmak istemesi fark etmez, her durumda çalışır.

Dosyalarınızdan herhangi birini değiştirirseniz uygulamanızı daha önce olduğu gibi firebase deploy kullanarak yeniden dağıtmanız yeterlidir. Ardından, sayfayı tekrar yüklediğinizde dosyaların yeni sürümünü alabilmeniz için tarayıcı önbelleğinizi temizlediğinizden emin olun. Geliştirici araçları açıksa ağ sekmesinin üst kısmındaki "Önbelleği devre dışı bırak" onay kutusunu seçerek testlerinizi kolaylaştırmak için bu işlemi ağ sekmesinde zorlayabilirsiniz:

b1e4c1bf304a4869.png

Özet

Bu kod laboratuvarında:

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

Sırada ne var?

Başlangıç için kullanabileceğiniz bir çalışma tabanınız olduğuna göre, bu makine öğrenimi modeli dağıtım şablonunu genişletmek için hangi yaratıcı fikirleri kullanabilirsiniz?

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) yararlı olabilecek tahminler yapmak için bu tür verileri nasıl eğitebilirsiniz? Bu, emlak sektörüne özgü bir örnek değildir. Bu yöntemi kendi zorluklarınıza da uygulamanızı öneririz. İyi çalışmalar.

Sosyal medyada öne çıkma veya gelecekteki TensorFlow etkinliklerinde gösterilme şansı için #MadeWithTFJS hashtag'ini kullanarak oluşturduğunuz her şeyde bizi etiketlemeyi unutmayın (Diğer kullanıcıların çalışmalarından ilham almak için bu bağlantıyı tıklayın). Oluşturduğunuz çalışmaları görmekten memnuniyet duyarız. Geri bildirim veya sorularınız varsa bu kod laboratuvarının yazarı ile iletişime geçebilirsiniz.

Daha ayrıntılı bilgi edinmek için daha fazla TensorFlow.js codelab

İnceleyebileceğiniz web siteleri