1. Wprowadzenie
Masz już utworzony niestandardowy model uczenia maszynowego za pomocą TensorFlow.js, ale teraz musisz go gdzieś umieścić, aby używać go w wybranej witrynie. Możesz to zrobić na wiele sposobów, ale dziś pokażemy, jak łatwo jest używać Hostingu Firebase, który zapewnia też dodatkowe korzyści, takie jak obsługa wersji, udostępnianie modeli przez bezpieczne połączenie i inne funkcje.
Co utworzysz
W ramach tych ćwiczeń z programowania utworzysz kompleksowy system, który będzie mógł hostować i uruchamiać niestandardowy zapisany model TensorFlow.js wraz z powiązanymi zasobami, takimi jak HTML, CSS i JavaScript. Utworzymy bardzo prosty model o niewielkich wymaganiach, który będzie mógł przewidywać numeryczną wartość wyjściową na podstawie wartości wejściowej (np. jaka jest cena domu o określonej powierzchni) i udostępnimy go w Hosting Firebase, aby można było go używać na dużą skalę.
Czego się nauczysz
- Jak zapisać niestandardowy model TensorFlow.js w odpowiednim formacie
- Jak skonfigurować konto Firebase na potrzeby hostingu
- Wdrażanie komponentów w Hostingu Firebase
- Jak wdrażać nowe wersje modelu.
Uwaga: ten warsztat skupia się na tym, jak wziąć wytrenowany model niestandardowy i udostępnić go do wdrożenia, a nie na tym, jak stworzyć idealną architekturę modelu. Dlatego szybko przejdziemy do tworzenia samego modelu uczenia maszynowego na prostym przykładzie. Zasady będą takie same niezależnie od tego, jaki model ostatecznie utworzysz.
Udostępnianie nam swoich treści
Jeśli udało Ci się stworzyć coś ciekawego za pomocą tego stosu, daj nam znać. Chętnie zobaczymy Twoje dzieła.
Oznacz nas w mediach społecznościowych za pomocą hashtagu #MadeWithTFJS, aby Twoje projekty mogły zostać zaprezentowane na naszym blogu TensorFlow lub podczas przyszłych wydarzeń, takich jak Show & Tells.
2. Czym jest Hosting Firebase?
Hosting Firebase zapewnia szybki i bezpieczny hosting klasy produkcyjnej dla aplikacji internetowej, treści statycznych i dynamicznych oraz mikroserwisów.
Za pomocą jednego polecenia możesz szybko wdrażać aplikacje internetowe i dostarczać treści do globalnej sieci CDN (sieci dostarczania treści), dzięki czemu będą one dostępne z małym opóźnieniem niemal w każdym miejscu. Możesz też połączyć Hosting Firebase z Cloud Functions lub Cloud Run, aby tworzyć i hostować mikroserwisy, ale to wykracza poza zakres tego laboratorium.
Najważniejsze funkcje Hostingu Firebase
- Przesyłanie treści przez bezpieczne połączenie – nowoczesna sieć jest bezpieczna. Aby uzyskać dostęp do czujników po stronie klienta, witryna musi być często dostarczana w bezpiecznym kontekście. W Hosting Firebase wbudowany został niewymagający konfigurowania protokół SSL, co gwarantuje bezpieczną dostawę treści dla wszystkich hostowanych plików.
- Hostuj treści statyczne i dynamiczne oraz mikrousługi z obsługą uwierzytelniania, aby w razie potrzeby tylko zalogowani użytkownicy mogli 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żanie nowych wersji za pomocą jednego polecenia – dzięki interfejsowi wiersza poleceń Firebase możesz uruchomić aplikację w ciągu kilku sekund.
- Przywracanie jednym kliknięciem – szybkie wdrożenia są świetne, a możliwość cofania błędów 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 dostosowane do wdrażania i zarządzania witrynami i aplikacjami.
Domyślnie każdy projekt w Firebase ma bezpłatne subdomeny w domenach web.app i firebaseapp.com. Obie 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.
Instrukcje krok po kroku
- Konfigurowanie projektu
- Instalowanie i konfigurowanie interfejsu wiersza poleceń Firebase
- Wdrażanie witryny
- Link do aplikacji internetowej Firebase na potrzeby monitorowania wydajności (opcjonalnie)
Zanim jednak to zrobimy, musimy wdrożyć model uczenia maszynowego i aplikację internetową. Utwórzmy go.
3. Prosty model uczenia maszynowego do prognozowania cen domów
Na potrzeby tego ćwiczenia utworzymy bardzo prosty model uczenia maszynowego, który będzie prognozować wartości liczbowe. Spróbujemy użyć uczenia maszynowego, aby na potrzeby ilustracyjne przewidzieć wartość fikcyjnego domu na podstawie jego powierzchni w stopach kwadratowych. W tym przykładzie po prostu pomnożymy powierzchnię domu przez 1000, aby uzyskać przewidywaną wartość dla naszych danych treningowych, ale system uczący się będzie musiał nauczyć się tego samodzielnie.
W rzeczywistości użyjesz danych z prawdziwego świata, które mogą mieć bardziej złożone relacje (np. w przypadku mniejszych domów wartość w dolarach może być szacowana jako 500-krotność ich rozmiaru, ale po przekroczeniu określonego progu stopniowo wzrasta do 1000-krotności itp.). Do nauczenia się najlepszego sposobu przewidywania tych wartości może być potrzebny bardziej zaawansowany model.
Model, który dziś utworzymy (regresja liniowa), może być używany do przewidywania wielu innych rzeczy, jeśli tylko będziemy mieć wystarczającą ilość danych z rzeczywistego świata. Jest on też prosty w użyciu w naszym hipotetycznym przypadku. Dziś jednak skupimy się na tym, jak zapisać i wdrożyć model, a nie na tym, jak go zaprojektować i zoptymalizować pod kątem konkretnego zastosowania. Zaczynajmy!
Dane do trenowania i testowania
Wszystkie modele ML zaczynają się od uzyskania przykładowych danych treningowych, których możemy użyć do nauczenia modelu przewidywania wartości w przyszłości. Zazwyczaj takie dane można pobrać z bazy danych, folderu plików, pliku CSV itp., ale w tym przypadku bezpośrednio zakodujemy 20 przykładów jako tablicę w JavaScript, jak pokazano poniżej. Zalecamy skopiowanie tego kodu do środowiska, w którym możesz teraz wygodnie pisać kod, np. na stronie Glitch.com, lub do własnego edytora tekstu lokalnie, jeśli możesz uruchomić serwer na hoście lokalnym.
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ć, do każdego elementu danych mamy przypisaną wartość odpowiedzi, którą będziemy próbować przewidzieć w przyszłości (możesz wyobrazić sobie te wartości jako wartości x i y na prostym wykresie 2D).
Dla wartości 800 chcemy uzyskać szacunkową odpowiedź w wysokości 800 tys. PLN. W przypadku wartości 900 wygenerujemy 900 000 PLN itd. Liczba jest mnożona przez 1000. Model uczenia maszynowego nie zna jednak tej prostej zależności 1000 * N i musi nauczyć się jej samodzielnie na podstawie podanych przez nas przykładów.
Zwróć uwagę, że mamy też dane testowe, które są całkowicie oddzielone od danych treningowych. Dzięki temu możemy ocenić wytrenowany model i sprawdzić, jak radzi sobie z danymi, których nigdy wcześniej nie widział.
Załadujemy ten skrypt 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
Następnie wytrenuj model, dodając poniższy kod do istniejącego kodu JS na końcu pliku.
Komentarze zostały dodane dla osób, które chcą dowiedzieć się więcej, ale jak wspomnieliśmy, to ćwiczenie z programowania dotyczy głównie zapisywania modelu i hostowania go. Na końcu znajdziesz linki do kolejnych ćwiczeń, jeśli chcesz dowiedzieć się więcej o tworzeniu modeli. Na razie możesz skopiować kod i wkleić go do projektu.
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();
}
Korzystając z powyższego kodu, udało nam się wytrenować model, który na podstawie wartości wejściowej potrafi przewidzieć wartość wyjściową. Po uruchomieniu powyższego kodu otrzymasz prognozę 768 073 dla wartości wejściowej 768, która zostanie wyświetlona w konsoli dewelopera w przeglądarce (naciśnij F12, aby ją otworzyć, jeśli nie jest jeszcze otwarta). To całkiem dobre oszacowanie 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ć, co jest normalne.
Jeśli jesteśmy zadowoleni z tych wyników, wystarczy zapisać model na dysku, aby można go było przesłać do Hostingu Firebase.
Zapisywanie modelu
Dodanie poniższego kodu na końcu funkcji oceny (po model.predict) powyżej umożliwia wyeksportowanie wynikowego modelu po zakończeniu trenowania bezpośrednio z przeglądarki i zapisanie go na dysku. Dzięki temu możemy go później hostować w dowolnym miejscu i używać 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 teraz otworzysz plik train.html i uruchomisz stronę, model powinien zostać wytrenowany (co może potrwać kilka sekund), a po zakończeniu tego procesu pojawi się prośba o pobranie wytrenowanego modelu.
4. Konfigurowanie Firebase
Zaloguj się w Firebase i utwórz projekt
Jeśli nie masz jeszcze konta Firebase, możesz łatwo zarejestrować się za pomocą konta Google. Otwórz stronę https://firebase.google.com/ i zaloguj się przy użyciu konta Google, którego chcesz używać. Po przekierowaniu na stronę główną kliknij „Otwórz konsolę” w prawym górnym rogu strony:

Po przekierowaniu do konsoli powinna się wyświetlić strona docelowa podobna do tej:

Aby utworzyć nowy projekt w Firebase, kliknij Dodaj projekt, jak pokazano na ilustracji. Nadaj projektowi unikalną nazwę, zaakceptuj warunki i kliknij Dalej.
Następnie pojawi się pytanie, czy chcesz dodać do projektu statystyki. Jeśli chcesz mieć dostęp do takich statystyk, włącz tę opcję i kliknij Dalej, jak pokazano poniżej:

Jeśli wszystko przebiegło pomyślnie, powinna się wyświetlić strona z informacją o gotowości projektu, jak na ilustracji:

Super! Mamy projekt. Kliknij Dalej, aby przejść do konsoli nowo utworzonego projektu. Pozostaw stronę otwartą, aby użyć jej później, ale na razie musimy zainstalować kilka narzędzi.
Instalowanie interfejsu wiersza poleceń i łączenie się z nim
Firebase jest dostępny jako pakiet Node NPM, który możesz zainstalować i używać za pomocą interfejsu wiersza poleceń. Ułatwia to wdrażanie lokalnych plików i folderów w Hostingu Firebase. W tym samouczku będziemy korzystać ze środowiska Linux, ale jeśli masz system Windows lub Mac, możesz postępować zgodnie z tymi instrukcjami, aby skonfigurować narzędzia CLI na swoim urządzeniu.
W systemie Linux najpierw zainstalujemy NPM i Node.js, jeśli nie są jeszcze zainstalowane (jeśli używasz innych środowisk, postępuj zgodnie z tymi instrukcjami). W tym celu użyj tych 3 poleceń w oknie terminala:
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 to polecenie, aby zainstalować narzędzia wiersza poleceń Firebase:
Terminal wiersza poleceń:
sudo npm install -g firebase-tools
Świetnie. Możemy teraz połączyć projekt Firebase z naszym systemem, aby przesyłać do niego pliki i wykonywać inne działania.
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, jak pokazano poniżej:

Zezwól na to, a powinno się pojawić potwierdzenie połączenia narzędzi wiersza poleceń z kontem Firebase:

Zamknij okno i wróć do wiersza poleceń, w którym wcześniej wpisywałeś(-aś) tekst. Powinien on być teraz gotowy do przyjęcia nowych poleceń (na zrzucie ekranu ukryliśmy wszelkie informacje prywatne):

Gratulacje! Możemy teraz przesłać pliki do utworzonego projektu z lokalnego komputera.
Inicjowanie projektu do wdrożenia w Hostingu Firebase
Aby połączyć folder lokalny z projektem w Firebase, uruchom to polecenie w katalogu głównym projektu lokalnego (folderze, z którego chcesz przesyłać pliki podczas wdrażania).
Terminal wiersza poleceń:
firebase init
Po wykonaniu tego polecenia postępuj zgodnie z instrukcjami w terminalu, aby dokończyć konfigurację, jak pokazano poniżej:

W tym miejscu możesz po prostu wybrać Hosting using (Korzystam z hostingu) za pomocą strzałki w dół na klawiaturze, a następnie nacisnąć spację, aby wybrać, i Enter, aby potwierdzić.
Teraz możemy wybrać utworzony wcześniej projekt, którego chcemy użyć:

Naciśnij Enter przy opcji „Użyj istniejącego projektu”, a następnie wybierz ją za pomocą strzałki w dół, jak pokazano poniżej:

Na koniec naciśnij Enter, aby użyć tego polecenia, a potem zaakceptuj ustawienia domyślne na ostatnim ekranie, który się pojawi, i odpowiedz „No” (Nie), aby skonfigurować aplikację jako aplikację jednostronicową:

Dzięki temu możesz hostować wiele stron HTML.
Po zakończeniu inicjowania w katalogu, z którego wykonaliśmy powyższe polecenia, pojawią się plik firebase.json i folder „public”.

Teraz wystarczy przenieść pliki, które chcesz wdrożyć, do utworzonego folderu publicznego i możesz je wdrożyć. Zróbmy to teraz.
5. Tworzenie strony internetowej TensorFlow.js
Wczytuję zapisany model
Najpierw skopiujmy model uczenia maszynowego, który został wcześniej zapisany w tym laboratorium, do utworzonego właśnie za pomocą Firebase folderu publicznego. Po prostu przeciągnij i upuść zapisane pliki do tego folderu, jak pokazano poniżej:

Zauważysz też, że Firebase utworzył dla nas pliki index.html i 404.html. Otwórz plik index.html w ulubionym edytorze tekstu na komputerze i dodaj do niego niestandardowy kod, jak pokazano poniżej:
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 pliku index.html powyżej określamy arkusz stylów, aby w razie potrzeby móc później dodać do strony style, a także plik script.js, w którym umieścimy kod potrzebny do użycia zapisanego modelu TensorFlow.js.
Utwórzmy teraz te pliki i wypełnijmy 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 wszystko zostało wykonane prawidłowo, w utworzonym folderze publicznym powinny być widoczne te edytowane pliki:

Teraz musimy tylko wdrożyć pliki, aby sprawdzić, czy wszystko działa.
6. Wdrażanie modelu i witryny
Rozpoczynanie transmisji na żywo
Wróć do okna terminala otwartego w folderze projektu Firebase na komputerze lokalnym (jest to folder, który zawiera folder „public” opisany powyżej oraz pliki inicjujące Firebase).
Aby wdrożyć pliki folderu publicznego, wpisz:
Terminal wiersza poleceń:
firebase deploy
Poczekaj, aż polecenie terminala się zakończy. Powinno się to udać, a Ty otrzymasz adres URL, którego możesz użyć:

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 (Twój adres URL będzie jednak nazwą utworzonego projektu).
Otwórz ten adres URL w przeglądarce, aby sprawdzić, czy działa. Jeśli wszystko przebiegnie prawidłowo, w konsoli deweloperskiej otwartej strony (aby ją otworzyć, naciśnij F12) powinien pojawić się komunikat podobny do tego:

Jak widać, strona wczytuje się w wdrożonej domenie i możemy poprawnie zobaczyć prognozę naszego modelu dla 1337 stóp kwadratowych, która wynosi 1 336 999,25 USD.Jest to bardzo dobre oszacowanie, ponieważ spodziewaliśmy się, że będzie to 1000-krotność stóp kwadratowych. Oczywiście możemy tworzyć dowolną liczbę prognoz, jeśli zamiast tego stworzymy ładny interfejs użytkownika do wywoływania modelu. Wszystko to będzie działać w całości w JavaScript, co zapewni prywatność i bezpieczeństwo zapytań.
Teraz, gdy Twój model jest wdrożony i hostowany, możesz udostępnić witrynę dowolnej osobie na świecie, a ona będzie mogła korzystać z Twojej aplikacji na swoim urządzeniu. Oczywiście możesz dodać lepszy interfejs użytkownika i sprawić, że będzie wyglądał świetnie, ale to wykracza poza zakres tego samouczka. Nie ma ograniczeń co do liczby aplikacji internetowych, które możesz hostować w ten sposób. Są one oparte na uczeniu maszynowym i działają po jednym kliknięciu bez konieczności instalacji. Zachęcamy do rozważenia innych sytuacji, w których model uczenia maszynowego w przeglądarce może być przydatny.
Monitorowanie wykorzystania
Oprócz danych analitycznych Google, które możesz dodać do kodu witryny, Firebase oferuje też statystyki wersji i użycia w konsoli projektu. Po wdrożeniu zobaczysz coś takiego, co możesz co jakiś czas sprawdzać w razie potrzeby:


Jak widać, w ramach poziomu bezpłatnego otrzymujesz domyślnie 10 GB przepustowości miesięcznie na hostowane pliki. Jeśli Twoja witryna jest popularniejsza, może być konieczne dodanie konta rozliczeniowego, aby w danym miesiącu wykorzystać więcej niż ten limit. Plany Firebase dla większych projektów możesz sprawdzić tutaj. Większość użytkowników, którzy tworzą prototypy, prawdopodobnie nie przekroczy bezpłatnego poziomu, jeśli model jest mały, a wykorzystanie niskie. To świetny sposób na przetestowanie usługi i sprawdzenie, czy spełnia Twoje potrzeby, zanim zdecydujesz się na płatny plan w miarę rozwoju firmy lub pomysłu.
7. Gratulacje
Gratulacje! Zrobiliście pierwsze kroki w zakresie używania TensorFlow.js z Firebase do tworzenia i wdrażania niestandardowego modelu uczenia maszynowego, aby móc udostępniać go całemu światu. Wyobraź sobie, co jeszcze możesz stworzyć, korzystając z tego zaawansowanego i skalowalnego podejścia, które w razie potrzeby jest gotowe do zastosowań produkcyjnych. Firebase automatycznie dostosowuje się do popytu, więc niezależnie od tego, czy z aplikacji chce korzystać 10 czy 10 tys. użytkowników, będzie ona działać bez zarzutu.
Jeśli zmienisz któryś z plików, ponownie wdróż aplikację za pomocą polecenia firebase deploy, tak jak wcześniej. Pamiętaj też, aby wyczyścić pamięć podręczną przeglądarki, aby przy następnym wczytaniu strony uzyskać nową wersję plików. Jeśli masz otwarte narzędzia dla programistów, możesz wymusić to w karcie sieci podczas testowania, aby ułatwić sobie pracę. W tym celu zaznacz pole wyboru „Wyłącz pamięć podręczną” u góry tej karty:

Podsumowanie
W tym module:
- Zdefiniowano i wytrenowano od podstaw niestandardowy model TensorFlow.js do prognozowania cen domów.
- masz zarejestrowane, skonfigurowane i zainstalowane narzędzia Firebase i wiersz poleceń Firebase na komputerze używanym do programowania;
- Wdrożenie i uruchomienie działającej witryny, która wczytuje wytrenowany model z kroku 1 i używa go w prawdziwej aplikacji internetowej dostępnej dla każdego użytkownika z dowolnego miejsca na świecie.
Co dalej?
Masz już działającą bazę, od której możesz zacząć. Jakie kreatywne pomysły możesz wykorzystać, aby rozszerzyć ten szablon wdrożenia modelu uczenia maszynowego?
Zachęcamy do używania tej funkcji z własnymi danymi. Zastanów się nad branżą lub obszarem, w którym mieszkasz lub pracujesz. Jak możesz wykorzystać te dane do trenowania modelu, aby w przyszłości uzyskiwać przydatne dla Ciebie (lub innych osób) prognozy? Nieruchomości to tylko jeden z przykładów. Zachęcamy do stosowania tej zasady w przypadku własnych wyzwań. Miłego hakowania!
Pamiętaj, aby oznaczać nas w swoich projektach, używając hashtagu #MadeWithTFJS (kliknij ten link, aby zobaczyć, co stworzyli inni). Dzięki temu możesz pojawić się w mediach społecznościowych lub nawet na przyszłych wydarzeniach związanych z TensorFlow. Chętnie zobaczymy, co stworzysz. Jeśli masz jakieś pytania lub uwagi, skontaktuj się z autorem tego codelabu.
Więcej ćwiczeń z TensorFlow.js
- Pisanie sieci neuronowej od podstaw w TensorFlow.js
- Rozpoznawanie dźwięku z wykorzystaniem uczenia transferowego w TensorFlow.js
- Niestandardowa klasyfikacja obrazów z wykorzystaniem uczenia transferowego w TensorFlow.js