TensorFlow.js: wykorzystanie Hostingu Firebase do wdrożenia i hostowania modelu systemów uczących się na dużą skalę

1. Wprowadzenie

Utworzyłeś niestandardowy model systemu uczącego się za pomocą TensorFlow.js, ale teraz musisz go gdzieś hostować, aby móc go używać w wybranej witrynie. Istnieje wiele opcji, ale dziś zobaczymy, jak łatwo jest korzystać z Hostingu Firebase, który może też przynieść dodatkowe korzyści, takie jak wersjonowanie, udostępnianie modeli za pomocą bezpiecznego połączenia i inne funkcje dostępne „out of the box”.

Co utworzysz

W tym laboratorium programistycznym utworzysz kompleksowy system, który będzie obsługiwać i uruchamiać niestandardowy zapisany model TensorFlow.js wraz z powiązanymi zasobami, takimi jak HTML, CSS i JavaScript. Utworzymy bardzo prosty, lekki model, który będzie w stanie przewidywać liczbową wartość wyjściową na podstawie określonej wartości wejściowej (np. jaka jest cena domu na podstawie jego powierzchni) i umieścimy go w Firebase Hosting, aby można go było używać na dużą skalę.

Czego się nauczysz

  • Jak zapisać niestandardowy model TensorFlow.js w odpowiednim formacie
  • Konfigurowanie konta Firebase na potrzeby hostingu
  • Wdrażanie komponentów do Hostingu Firebase
  • Jak wdrożyć nowe wersje modelu.

Uwaga: w tym laboratorium kodu omawiamy, jak pobrać niestandardowo wytrenowany model i go hostować na potrzeby wdrożenia, a nie tworzenia idealnej architektury modelu. Dlatego pominiemy tworzenie modelu uczenia maszynowego i skoncentrujemy się na przykładzie. Zasady są takie same bez względu na to, jaki model ostatecznie stworzysz.

Udostępniaj nam swoje prace

Jeśli udało Ci się zrobić coś fajnego, korzystając z tego pakietu, daj nam znać. Chętnie zobaczymy Twoje kreacje.

Oznacz nas w mediach społecznościowych za pomocą hashtaga #MadeWithTFJS, aby zwiększyć szansę na to, że Twój projekt zostanie zaprezentowany na naszym blogu TensorFlow lub nawet na przyszłych wydarzeniach, takich jak Show & Tells.

2. Czym jest Hosting Firebase?

Hosting Firebase zapewnia szybki i bezpieczny hosting produkcyjny dla Twojej aplikacji internetowej, treści statycznych / dynamicznych i mikroserwisów

Za pomocą jednego polecenia możesz szybko wdrożyć aplikacje internetowe i dostarczać treści do globalnej sieci CDN (sieci dystrybucji treści), co zapewni, że Twoje treści będą dostępne z małym opóźnieniem w niemal każdym miejscu. Możesz też połączyć Hosting Firebase z Cloud Functions lub Cloud Run, aby tworzyć i hostować mikroserwisy, ale nie jest to tematem tego Codelab.

Możliwości kluczy Hostingu Firebase

  • Przesyłaj treści przez bezpieczne połączenie – współczesna sieć jest bezpieczna. Często dostęp do czujników po stronie klienta wymaga wyświetlenia witryny w bezpiecznym kontekście. Wbudowany w Hosting Firebase protokół SSL bez konfiguracji zapewnia bezpieczną dostawę wszystkich hostowanych plików.
  • hostować treści statyczne i dynamiczne oraz mikroserwisy z obsługą uwierzytelniania, dzięki czemu tylko zalogowani użytkownicy mogą wczytywać i wyświetlać te pliki;
  • Szybkie dostarczanie treści – każdy przesyłany plik jest zapisywany w pamięci podręcznej na dyskach SSD serwerów brzegowych sieci CDN, które znajdują się na całym świecie. Użytkownicy mają szybki dostęp do treści niezależnie od lokalizacji.
  • Wdrażaj nowe wersje za pomocą jednego polecenia – korzystając z interfejsu wiersza poleceń Firebase, możesz w ciągu kilku sekund uruchomić aplikację.
  • Przywracanie jednym kliknięciem – szybkie wdrożenia są świetne, ale możliwość cofania błędów jest jeszcze lepsza. Hosting Firebase zapewnia pełną obsługę wersji i zarządzanie wydaniami za pomocą przywracania jednym kliknięciem.

Niezależnie od tego, czy wdrażasz prostą stronę docelową aplikacji czy złożoną progresywną aplikację internetową (PWA), Hosting zapewnia infrastrukturę, funkcje i narzędzia do wdrażania oraz zarządzania witrynami i aplikacjami.

Domyślnie każdy projekt Firebase ma bezpłatne subdomeny w domenach web.app i firebaseapp.com. Te 2 witryny wyświetlają te same wdrożone treści i mają tę samą konfigurację. W razie potrzeby możesz też połączyć własną nazwę domeny z witryną hostowaną w Firebase.

Etapy wdrażania

Zanim jednak to zrobimy, musimy wdrożyć model uczenia się maszynowego i aplikację internetową. Więc zróbmy to.

3. Prosty model uczenia maszynowego do przewidywania cen domów

Na potrzeby tego ćwiczenia utworzymy bardzo prosty model ML, który prognozuje wartości liczbowe. Tylko w celu poglądowym spróbujemy wykorzystać uczenie maszynowe do przewidywania wartości fikcyjnego domu na podstawie jego wielkości wyrażonej w stopach kwadratowych. W tym przypadku po prostu pomnożymy powierzchnię domu przez 1000, aby uzyskać przewidywaną wartość dla naszych danych treningowych, ale system uczący się będzie musiał się tego nauczyć samodzielnie.

W rzeczywistości użyjesz danych ze świata rzeczywistego, które mogą mieć bardziej złożone relacje (np. w przypadku mniejszych domów wartość szacowana na podstawie wielkości może wynosić tylko 500 razy, ale po przekroczeniu pewnego progu rośnie ona stopniowo do 1000 razy itd.), a aby poznać najlepszy sposób przewidywania tych wartości, możesz potrzebować bardziej zaawansowanego modelu.

Model, który dziś utworzymy (regresja liniowa), może służyć do prognozowania wielu innych rzeczy, jeśli tylko dysponujemy wystarczającą ilością danych rzeczywistych. Jest on też prosty w użyciu w przypadku hipotetycznego zastosowania opisanego powyżej. Dziś skupimy się na zapisywaniu i wdrażaniu modelu, a nie na jego projektowaniu i optymalizowaniu pod kątem danego zastosowania. Zaczynajmy.

Dane do trenowania i testowania

Wszystkie modele systemów uczących się zaczynają od uzyskania przykładowych danych szkoleniowych, których można użyć do nauczenia modelu przewidywania wartości w przyszłości. Zwykle takie dane można pobrać z bazy danych, folderu plików, pliku CSV itp., ale tutaj bezpośrednio zakodujemy 20 przykładów jako tablicę w JavaScriptzie, jak pokazano poniżej. Zalecamy powielanie tego kodu w środowisku, w którym czujesz się komfortowo, np. Glitch.com lub w lokalnym edytorze tekstu, jeśli możesz uruchomić serwer na localhost.

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];

Jak widać, dla każdego elementu danych mamy odpowiadającą wartość odpowiedzi, która jest wartością, którą będziemy próbować przewidzieć w przyszłości (możesz ją sobie wyobrazić jako wartości x i y na prostym wykresie 2D).

W przypadku wartości 800 chcemy uzyskać wynikową wartość 800 000. W przypadku wartości 900 otrzymamy wynik 900 000 zł itd. W podstawie liczba jest mnożona przez 1000. Model ML nie zna jednak tego prostego związku 1000 * N i musi nauczyć się go samodzielnie na podstawie podanych przez nas przykładów.

Pamiętaj, że mamy też dane testowe, które są całkowicie oddzielone od danych treningowych. Dzięki temu możemy ocenić wytrenowany model, aby sprawdzić, jak dobrze działa na danych, których wcześniej nie widział.

Skrypt ten zostanie wczytany wraz z biblioteką TensorFlow.js za pomocą tego kodu HTML:

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>

Trenowanie modelu

Teraz czas na wytrenowanie modelu. Aby to zrobić, dodaj podany niżej kod do naszego dotychczasowego kodu JS na końcu pliku.

Dodaliśmy komentarze dla ciekawskich, ale jak już wspomnieliśmy, to ćwiczenie z programowania dotyczy głównie pobrania i hostowania zapisanego modelu. Jeśli chcesz dowiedzieć się więcej o tworzeniu modeli, na końcu znajdziesz linki do kolejnych ćwiczeń. Na razie możesz skopiować kod i wkleić go w projekcie.

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();
}

Za pomocą kodu powyżej udało nam się wytrenować model, który może przewidywać wartość wyjściową na podstawie wartości wejściowej. Po uruchomieniu kodu powyżej otrzymuję prognozę 768 073 dla wartości wejściowej 768, która jest drukowana w konsoli dewelopera w Twojej przeglądarce (aby ją otworzyć, naciśnij F12, jeśli nie jest jeszcze otwarta). Jest to dość dobry szacunek ceny domu, biorąc pod uwagę, że podaliśmy przykłady 1000 razy wyższe niż dane wejściowe. Uwaga: przewidywana wartość może się nieznacznie różnić i jest to normalne.

Jeśli jesteśmy zadowoleni z wyników, wystarczy zapisać model na dysku, aby można było go przesłać do Hostingu Firebase.

Zapisywanie modelu

Dodanie kodu poniżej na końcu funkcji evaluate (po funkcji model.predict) pozwala nam wyeksportować powstały model bezpośrednio z przeglądarki internetowej i zapisać na dysku. Dzięki temu możemy go później gdzieś hostować i wykorzystywać w przyszłości bez konieczności ponownego trenowania za każdym razem, gdy wczytujemy stronę.

model.js

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

Jeśli otworzysz teraz plik train.html i uruchomisz go, model zostanie wytrenowany (co może potrwać kilka sekund), a potem pojawi się prośba o pobranie wytrenowanego modelu.

4. Konfigurowanie Firebase

Zaloguj się w Firebase i utwórz projekt

Jeśli dopiero zaczynasz korzystać z Firebase, możesz łatwo zarejestrować się za pomocą swojego konta Google. Otwórz stronę https://firebase.google.com/ i zaloguj się na zwykłe konto Google, którego chcesz użyć. Gdy zostaniesz przekierowany na stronę główną, w jej prawym górnym rogu kliknij „Otwórz konsolę”:

ea7ff3f08e4019b0.png

Gdy nastąpi przekierowanie do konsoli, powinna wyświetlić się strona docelowa o takim wyglądzie:

166d9408ad46599b.png

Wystarczy kliknąć Dodaj projekt, aby utworzyć nowy projekt Firebase, nadać mu niepowtarzalną nazwę, zaakceptować warunki i kliknąć Kontynuuj.

Następnie pojawi się pytanie, czy chcesz dodać do projektu usługę Analytics. Jeśli chcesz mieć dostęp do takich statystyk, włącz tę opcję i kliknij Kontynuuj:

a34c2be47b26e6b5.png

Jeśli wszystko przebiegło prawidłowo, powinna wyświetlić się strona z informacją o gotowości projektu:

1306dc803ad22338.png

Super! Mamy projekt. Kliknij Dalej, aby przejść do konsoli nowo utworzonego projektu. Nie zamykaj tej strony, bo będzie Ci ona potrzebna później. Na razie musimy zainstalować kilka narzędzi.

Instalowanie i łączenie interfejsu wiersza poleceń

Firebase jest dostępny jako pakiet Node NPM, który możesz zainstalować i użyć za pomocą interfejsu wiersza poleceń (CLI). Ułatwia to wdrażanie plików i folderów lokalnych do Hostingu Firebase. W tym samouczku użyjemy środowiska Linux, ale jeśli masz system Windows lub Mac, możesz postępować zgodnie z instrukcjami tutaj, aby skonfigurować narzędzia wiersza poleceń na swoim urządzeniu.

W systemie Linux najpierw zainstalujemy NPM i Node.js (jeśli nie są już zainstalowane – w takim przypadku postępuj zgodnie z tymi instrukcjami, jeśli używasz innych środowisk). W oknie terminala wpisz te 3 polecenia:

Terminal wiersza poleceń:

sudo apt update

Terminal wiersza poleceń:

sudo apt install nodejs

Terminal wiersza poleceń:

sudo apt install npm

Po zainstalowaniu Node.js i NPM wystarczy uruchomić w oknie terminala te polecenia, aby zainstalować narzędzia wiersza poleceń Firebase:

Terminal wiersza poleceń:

sudo npm install -g firebase-tools

Świetnie. Teraz możemy połączyć nasz projekt Firebase z naszym systemem, aby móc przesyłać do niego pliki i wykonywać inne czynności.

Logowanie się w Firebase

Zaloguj się w Firebase za pomocą konta Google, uruchamiając to polecenie:

Terminal wiersza poleceń:

firebase login

Poprosimy Cię o przyznanie dostępu do konta Google Firebase:

4dc28589bef2ff5d.png

Po zezwoleniu na to narzędzia wiersza poleceń powinny zostać połączone z kontem Firebase:

df397ec7a555e8de.png

Zamknij okno i wróć do terminala wiersza poleceń, w którym wcześniej wpisywałeś/wpisywałaś komendy. Terminal powinien być teraz gotowy do przyjmowania nowych poleceń, jak pokazano na zrzucie ekranu (na naszym zrzucie ekranu wszystkie prywatne informacje zostały ukryte):

67a3ff39d3c0f3e4.png

Gratulacje! Możemy teraz przesłać pliki do utworzonego projektu z naszego komputera lokalnego.

Inicjowanie projektu do wdrożenia w Hostingu Firebase

Aby połączyć folder lokalny z projektem Firebase, uruchom to polecenie w katalogu głównym katalogu projektu lokalnego (folderu, którego chcesz używać do przesyłania plików podczas wdrażania).

Terminal wiersza poleceń:

firebase init

Po wykonaniu tego polecenia postępuj zgodnie z instrukcjami wyświetlanymi w terminalu, aby dokończyć konfigurację:

61e0f6d92ef3e1c4.png

Tutaj możemy po prostu wybrać Hosting, używając strzałki w dół na klawiaturze, a następnie nacisnąć spację, aby wybrać, i Enter, aby potwierdzić.

Teraz możesz wybrać istniejący projekt, który został utworzony wcześniej:

4f2a1696d5cfd72f.png

Naciśnij klawisz Enter przy opcji „Użyj istniejącego projektu”, a potem wybierz ją, używając strzałki w dół, jak pokazano poniżej:

4dfcf2dff745f2c.png

Na koniec naciśnij klawisz Enter, aby użyć aplikacji, a potem zaakceptuj domyślne ustawienia na ostatnim ekranie, który się pojawi. Aby skonfigurować aplikację jako aplikację jednostronicową, wybierz „Nie”.

7668a2175b624af2.png

Dzięki temu możesz hostować wiele stron HTML.

Po zakończeniu inicjalizacji w katalogu, w którym wykonaliśmy powyższe polecenia, pojawi się plik firebase.json oraz folder „publiczny”.

cd7724b92f3d507.png

Teraz wystarczy przenieść pliki, które chcemy wdrożyć, do utworzonego folderu publicznego. Zróbmy to teraz.

5. Tworzenie strony internetowej TensorFlow.js

Wczytuję zapisany model

Najpierw sprawdźmy, czy model systemów uczących się zapisany wcześniej w codelab został skopiowany do publicznego folderu utworzonego przez nas w Firebase. Wystarczy przeciągnąć i upuścić zapisane pliki w tym folderze:

cd6f565189e23705.png

Zauważysz też, że Firebase utworzył dla nas pliki index.html i 404.html. Zmień plik index.html za pomocą ulubionego edytora tekstu na komputerze, aby dodać własny kod niestandardowy:

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>

W nowym kodzie index.html podajemy arkusz stylów, aby móc później dodać styl do strony, jeśli zechcemy, oraz plik script.js, w którym przechowujemy kod, który musimy napisać, aby korzystać z zapisanego modelu TensorFlow.js.

Utwórz te pliki i uzupełnij je w ten sposób, aby były przydatne:

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();

Jeśli wykonasz te czynności prawidłowo, w utworzonym przez nas folderze publicznym powinny się pojawić te edytowane pliki:

253498c703c04ee.png

Teraz wystarczy wdrożyć pliki, abyśmy mogli sprawdzić, czy wszystko działa.

6. Wdrażanie modelu i witryny

Rozpoczynanie transmisji

Wróć do okna terminala otwartego w folderze projektu Firebase na komputerze lokalnym (to folder zawierający folder „publiczny” i pliki init Firebase).

Aby wdrożyć pliki folderu publicznego, wpisz:

Terminal wiersza poleceń:

firebase deploy

Poczekaj, aż polecenie w terminalu się wykona. Powinieneś mieć wtedy gotową wersję z adresem URL, którego możesz użyć:

c5795cae85ed82a5.png

W naszym przykładzie powyżej końcowy adres URL, pod którym można wyświetlić wdrożenie, to:

https://tensorflow-js-demo.web.app (ale Twój adres URL będzie zawierać nazwę utworzonego projektu).

Otwórz ten adres URL w przeglądarce, aby sprawdzić, czy działa. Jeśli wszystko się powiedzie, w konsoli dewelopera na stronie, którą otworzysz, powinna pojawić się podobna informacja (aby otworzyć konsolę dewelopera, naciśnij F12).

182aee0acfa7c41e.png

Jak widać, strona wczytuje się w wdrożonej domenie. Nasz model poprawnie przewiduje, że powierzchnia wynosi 1337 ft², co odpowiada 1 336 999,25 USD. Jest to bardzo dobry szacunek, ponieważ spodziewaliśmy się, że będzie to 1000 razów większa powierzchnia. Oczywiście możemy tworzyć dowolną liczbę prognoz, jeśli zamiast wywoływać model, stworzymy przyjazny interfejs użytkownika. Wszystko to będzie działać całkowicie w JavaScript, co zapewni prywatność i bezpieczeństwo zapytań.

Teraz, gdy model jest wdrożony i hostowany, możesz udostępnić stronę internetowej każdemu na świecie, a użytkownicy będą mogli korzystać z Twojej aplikacji na swoich komputerach. Oczywiście możesz dodać lepszy interfejs użytkownika i zadbać o jego atrakcyjny wygląd, ale nie jest to tematem tego samouczka. Nie ma ograniczeń co do liczby aplikacji internetowych, które możesz hostować. Mogą to być aplikacje oparte na uczeniu maszynowym, które działają po jednym kliknięciu bez konieczności instalacji. Zachęcamy do rozważenia innych sytuacji, w których można wykorzystać model uczenia maszynowego w przeglądarce.

Monitorowanie wykorzystania

Oprócz usług Google Analytics, które możesz dodać do kodu swojej witryny, Firebase oferuje też statystyki dotyczące wersji i używania w konsoli projektu. Po wdrożeniu zobaczysz coś takiego. Możesz to sprawdzać od czasu do czasu w razie potrzeby:

42b1cb8f7c10016.png

fbdd6504bec7c3d.png

Jak widać, w ramach bezpłatnego poziomu otrzymujesz 10 GB przepustowości na miesiąc dla hostowanych plików. Jeśli Twoja witryna jest bardziej popularna, konieczne może być dodanie konta rozliczeniowego, aby móc wykorzystać więcej niż 1 GB w danym miesiącu. Tutaj możesz sprawdzić plany Firebase przeznaczone do większych projektów, ale większość użytkowników prototypów prawdopodobnie nie przekroczy bezpłatnego poziomu, jeśli model jest mały, a wykorzystanie jest niskie. Jest to świetny sposób na przetestowanie i sprawdzenie, czy spełnia on Twoje potrzeby, zanim zdecydujesz się na płatny plan, gdy rozwijasz swoją firmę lub pomysł.

7. Gratulacje

Gratulacje! Wykonaliśmy z Tobą pierwsze kroki w korzystaniu z TensorFlow.js w Firebase do tworzenia i wdrażania niestandardowego modelu systemów uczących się, aby można było go udostępnić innym. Wyobraź sobie, co jeszcze możesz stworzyć, korzystając z tego wydajnego i skalowalnego podejścia, które jest gotowe do wdrożenia w produkcji. Firebase automatycznie dostosowuje się do potrzeb, więc nie ma znaczenia, czy z usługi chce korzystać 10 czy 10 tys. użytkowników – zawsze będzie działać.

Jeśli zmienisz którykolwiek z plików, po prostu ponownie wprowadź aplikację, używając polecenia firebase deploy, tak jak poprzednio. Pamiętaj, aby wyczyścić pamięć podręczną przeglądarki, aby mieć pewność, że podczas następnego wczytywania strony otrzymasz nową wersję plików. Jeśli masz otwarte narzędzia dla deweloperów, możesz wymusić to na karcie sieci podczas testowania, aby ułatwić sobie pracę. Wystarczy, że zaznaczysz pole wyboru „Disable cache” (Wyłącz pamięć podręczną) u góry tej karty:

b1e4c1bf304a4869.png

Podsumowanie

W tym laboratorium kodu:

  1. Zdefiniowaliśmy i wytrenowaliśmy od podstaw niestandardowy model TensorFlow.js do prognozowania cen domów.
  2. Zarejestruj się, skonfiguruj i zainstaluj narzędzia Firebase i Firebase CLI na komputerze programistycznym.
  3. Wdrożenie i uruchomienie działającej witryny, która wczytuje nasz wytrenowany model z etapu 1 i korzysta z niego w rzeczywistej aplikacji internetowej, do której każdy z dowolnego miejsca na świecie może uzyskać dostęp na dużą skalę.

Co dalej?

Teraz, gdy masz już podstawę, od której możesz zacząć, jakie kreatywne pomysły możesz wykorzystać, aby rozszerzyć szablon wdrażania modelu systemów uczących się?

Chętnie zobaczymy, jak używasz tego narzędzia do własnych danych. Zastanów się, w jakiej branży lub w jakiej okolicy mieszkasz lub pracujesz. Jak można wykorzystać takie dane do trenowania modelu, aby tworzyć prognozy, które mogą być przydatne Tobie (lub innym osobom) w przyszłości? Nieruchomości to nie jedyny przykład, dlatego zachęcamy do zastosowania tej metody w przypadku własnych wyzwań. Udanego hakowania!

Pamiętaj, aby oznaczać nas w tym, co tworzysz za pomocą #MadeWithTFJS (kliknij ten link, aby zainspirować się rozwiązaniami innych osób), aby mieć szansę na pojawienie się w mediach społecznościowych lub nawet na przyszłych wydarzeniach dotyczących TensorFlow. Chętnie zobaczymy Twoje rozwiązania. Jeśli masz pytania lub uwagi, skontaktuj się z autorem tego ćwiczenia.

Więcej laboratoriów kodu TensorFlow.js, które pomogą Ci poznać szczegóły

Warto odwiedzić te strony