Głębokie uczenie się z TensorFlow 2.0: wszystko, co musisz wiedzieć

Opublikowany: 2021-01-05

TensorFlow to framework Machine Learning firmy Google. Jest używany głównie do zadań związanych z głębokim uczeniem i bezproblemowo integruje się również z innymi interfejsami API Google. TensorFlow jest obecnie jedną z najczęściej używanych bibliotek do głębokiego uczenia się w branży i jest całkowicie warta poznania!

Pod koniec tego samouczka zdobędziesz wiedzę o następujących kwestiach.

  • Co to jest TensorFlow?
  • Co nowego w TF 2.0?
  • TensorFlow kontra Keras
  • Instalowanie TensorFlow
  • Klasyfikator obrazów w TensorFlow

Spis treści

Co to jest TensorFlow?

TensorFlow zaczynał jako biblioteka Open-Source Deep Learning firmy Google, a teraz jest kompletnym frameworkiem do kompleksowych procesów uczenia maszynowego. Być może zastanawiasz się, dlaczego Google wybrał tę nazwę i co oznacza „Tensor”.

Co to jest tensor?

Tensory to efektywne tablice wielowymiarowe, które umożliwiają wykonywanie złożonych operacji na tablicach wielowymiarowych. Nie są to jednak tylko tablice N-wymiarowe.

Tensor obejmuje również przekształcenia, takie jak iloczyn skalarny, dodawanie, mnożenie macierzy itp.

Ale dlaczego są ważne?

Tensory nie są nowe. Są w użyciu od dawna, ale ich cechy są intensywnie wykorzystywane w obszarze Deep Learning, gdzie dane są zwykle ogromne i wielowymiarowe.

Tensory, podobnie jak tablice Numpy, również mają kształt i typ danych. Wszystkie tensory są niezmienne, podobnie jak liczby i łańcuchy w Pythonie: nigdy nie możesz zaktualizować zawartości tensora, a jedynie utworzyć nowy.

Ale tym, co odróżnia je od zwykłych macierzy Numpy, jest ich zdolność do wykorzystywania pamięci GPU i mocy obliczeniowej, co ma ogromne znaczenie, gdy dane są wielowymiarowe i mają miliony lub więcej.

Tensory są szeroko stosowane w frameworkach Deep Learning, takich jak Facebook's Pytorch i Google's TensorFlow, który jest nawet nazwany ich imieniem!

Google opracował również inny akcelerator AI, zwany Tensor Processing Unit (TPU), specjalnie dla TensorFlow, który przenosi optymalizację na zupełnie wyższy poziom!

Przeczytaj: Regularyzacja w głębokim uczeniu

Co nowego w TF 2.0?

Google wydał pierwszą wersję TensorFlow 1 w 2015 roku przez zespół Google Brain.

Używanie TensorFlow 1.x do tworzenia sieci neuronowych nie było łatwym zadaniem, ponieważ wymagało dużo kodu do napisania.

Ocena leniwa a ocena chętna

W przypadku TensorFlow 1.x istniała potrzeba tworzenia sesji i uruchamiania tych sesji w celu wygenerowania danych wyjściowych dowolnego „wykresu”. Zrozummy to za pomocą poniższego kodu

importuj tensorflow jako tf

a = tf.stała(1)
b = tf.stała(2)
c = tf.dodaj(a, b)
drukuj(c)

Uruchomienie powyższego kodu nie da Ci pożądanego wyniku, tj. 3. Dzieje się tak, ponieważ TensorFlow 1.x działał w sesjach.

Sesja to rodzaj środowiska, który zawiera wszystkie zmienne i przekształcenia, które musi wykonać.

Utworzono wykres przekształceń, który nie był oceniany, dopóki nie został specjalnie wywołany przez uruchomienie tf.session.run().

Dlatego powyższy kod zwróci to, czego oczekujesz, jeśli zrobisz:

tf.Session.run(c)

Nazywa się to oceną Lazy. Ponieważ leniwie czeka, aż każe mu się uruchomić.

Ten długi i skomplikowany proces musiał zostać rozwiązany, dlatego pojawiła się potrzeba TensorFlow 2.x.

TF 2.x jest domyślnie wyposażony w ewaluację Eager, co bardzo ułatwia nam kodowanie i uruchamianie procesów.

Obecnie nie ma sesji, a trening sieci neuronowej, który zajął 100 linii w TF 1.x, zajmuje mniej niż 20 w TF 2.x.

Chętne wykonanie TensorFlow jest imperatywnym środowiskiem programistycznym, które natychmiast ocenia operacje, bez tworzenia grafów: operacje zwracają konkretne wartości zamiast konstruować graf obliczeniowy do późniejszego uruchomienia.

Ułatwia to rozpoczęcie pracy z modelami TensorFlow i debugowania, a także ogranicza schematy.

TensorFlow kontra Keras

Pytanie tak naprawdę nie brzmi: TensorFlow kontra Keras. To TensorFlow z Kerasem. Keras dostarczył wysokopoziomowe API dla TensorFlow 1.x, dzięki czemu praca z nim była bardzo łatwa.

Teraz z TF 2.0, TensorFlow oficjalnie uczynił Keras częścią swojego API do projektowania modeli i szkolenia z tf.keras.

Cały kod, który został wcześniej zrobiony w Keras, jest teraz sugerowany do wykonania za pomocą tf.keras w TF 2.0, ponieważ pozwala on na wykorzystanie wszystkich komponentów i ekosystemu TensorFlow, takich jak:

  • TensorFlow Serving , który służy do bezproblemowego udostępniania/wdrażania modeli TensorFlow.
  • TensorFlow Lite to mobilna wersja TensorFlow, która może działać na Androidzie i IOS.
  • TensorFlow.js to zbiór interfejsów API, który pozwala nam budować i trenować modele przy użyciu niskopoziomowej biblioteki algebry liniowej JavaScript lub wysokopoziomowego interfejsu API warstw. Dlatego modele uczenia głębokiego można trenować i uruchamiać w przeglądarce.
  • TensorBoard to zestaw narzędzi wizualizacyjnych do zrozumienia, debugowania i optymalizacji programów TensorFlow.

Instalowanie TensorFlow

Jeśli dopiero zaczynasz korzystać z uczenia maszynowego, najłatwiejszym sposobem na rozpoczęcie pracy jest otwarcie notesu Colab. Po prostu przejdź do https://colab.research.google.com/ i kliknij „Nowy notatnik w Pythonie 3”.

Upewnij się, że jądro mówi „connected” w prawym górnym rogu. Dobra wiadomość, TensorFlow jest preinstalowany w Google Colab.

Voila! Wszystko gotowe.

Aby sprawdzić, czy używasz odpowiedniej wersji, uruchom poniższy fragment.

importuj tensorflow jako tf
tf.__wersja__

Powinno być napisane dowolna wersja powyżej 2.0.0 i gotowe.

Klasyfikator obrazów w TensorFlow

Przejdźmy teraz do „Witaj świecie” problemów głębokiego uczenia — zestawu danych MNIST.

Zbudujemy krótką sieć neuronową do przewidywania w zestawie danych MNIST. Postępujemy zgodnie z poniższymi krokami.

  1. Zbuduj sieć neuronową, która klasyfikuje obrazy.
  2. Trenuj sieć neuronową.
  3. Oceń dokładność modelu

Importowanie TensorFlow.

importuj tensorflow jako tf

Ładowanie danych MNIST.

mnist = tf.keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255,0, x_test / 255,0

Budowanie modelu tf.keras.Sequential przez układanie warstw.

Musielibyśmy również wybrać optymalizator i funkcję straty, aby model mógł się uczyć.

model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, aktywacja='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.warstwy.gęste(10)
])

Definiowanie funkcji straty rzadkiej kategorycznej entropii krzyżowej.

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)

Kompilacja modelu.

model.compile(optimizer='adam',
strata=strata_fn,
metryki=['dokładność'])

Trening modelki z 5 epokami.

model.fit(x_train, y_train, epoki=5)

Ocena modelu.

model.evaluate(x_test, y_test, verbose=2)

313/313 – 0s – strata: 0,0825 – dokładność: 0,9753

[0.082541823387146, 0.9753000140190125]

Klasyfikator obrazu jest teraz wyszkolony do ~98% dokładności w tym zestawie danych.

Zanim pójdziesz

TensorFlow 2 koncentruje się na prostocie i łatwości użytkowania, z aktualizacjami, takimi jak szybkie wykonywanie, intuicyjne interfejsy API wyższego poziomu i elastyczne budowanie modeli na dowolnej platformie.

TensorFlow to obecnie najważniejsza biblioteka/narzędzie do wszelkich zadań związanych z głębokim uczeniem. Inną najczęściej używaną i popularną biblioteką jest PyTorch firmy Facebook.

Rozbudowany ekosystem TensorFlow sprawia, że ​​jest to doskonałe miejsce do rozpoczęcia przygody z Deep Learning. Jest łatwy do zrozumienia i, co ważniejsze, łatwy do wdrożenia.

Najlepszym miejscem do rozpoczęcia jest przyjazny dla użytkownika interfejs Sequential API. Możesz tworzyć modele, łącząc ze sobą bloki konstrukcyjne. Dowiedz się więcej o technikach głębokiego uczenia.

Wniosek

Teraz, gdy masz już szczegółowe pojęcie o wszystkich głównych strukturach uczenia głębokiego, możesz podjąć świadomą decyzję i wybrać tę, która najlepiej pasuje do Twojego projektu.

Jeśli chcesz dowiedzieć się więcej o głębokim uczeniu i sztucznej inteligencji, sprawdź nasz program PG Diploma in Machine Learning and AI, który jest przeznaczony dla pracujących profesjonalistów i zapewnia ponad 30 studiów przypadków i zadań, ponad 25 sesji mentoringu branżowego, ponad 5 praktycznych rąk -w projektach zwieńczenia, ponad 450 godzin rygorystycznych szkoleń i pomocy w pośrednictwie pracy w najlepszych firmach.

Przygotuj się na karierę przyszłości

DYPLOM PG Z UCZENIA MASZYNOWEGO I SZTUCZNEJ INTELIGENCJI
UCZ SIĘ WIĘCEJ