Samouczek TensorFlow dla początkujących
TensorFlow to jeden z najpopularniejszych frameworków do głębokiego uczenia i uczenia maszynowego. Opracowany przez zespół Google Brain, TensorFlow jest szeroko wykorzystywany w licznych projektach badawczych i aplikacjach przemysłowych. Ten artykuł zawiera samouczek krok po kroku, który pomoże Ci, początkującym, rozpocząć korzystanie z TensorFlow.
1. Zrozumienie podstaw TensorFlow
Zanim zaczniemy instalować i używać TensorFlow, ważne jest zrozumienie, czym jest TensorFlow i jakie są jego podstawowe założenia. TensorFlow to platforma open source do obliczeń numerycznych i uczenia maszynowego. Wykorzystuje ona grafy przepływu danych do wykonywania operacji numerycznych, gdzie węzły na grafie reprezentują operacje matematyczne, a krawędzie reprezentują wielowymiarowe tablice danych (tensory) połączone między nimi.
2. Instalacja TensorFlow
Pierwszym krokiem w korzystaniu z TensorFlow jest jego instalacja. Oto jak zainstalować TensorFlow za pomocą pip, menedżera pakietów Pythona.
1. Instalacja Pythona:
Upewnij się, że Python jest zainstalowany w systemie. W momencie pisania tego tekstu TensorFlow jest kompatybilny z Pythonem w wersji od 3.6 do 3.9. Pythona można pobrać z oficjalnej strony internetowej.
2. Środowisko wirtualne:
Zdecydowanie zaleca się utworzenie wirtualnego środowiska w celu odizolowania projektu TensorFlow:
„`sz
python -m venv myenv
źródło myenv/bin/activate Dla użytkowników komputerów Mac/Linux
myenv\Scripts\activate Dla użytkowników systemu Windows
„„
3. Instalacja TensorFlow:
Teraz zainstaluj TensorFlow używając pip:
„`sz
pip zainstaluj tensorflow
„„
3. Witaj świecie z TensorFlow
Teraz, gdy TensorFlow jest już zainstalowany, utwórzmy prosty skrypt w Pythonie, aby zweryfikować instalację. Utwórz nowy plik w Pythonie i nazwij go `hello_tensorflow.py`.
„pyton”
importuj tensorflow jako tf
Utwórz stałą
witaj = tf.constant('Witaj, TensorFlow!')
Rozpocznij sesję
z tf.Session() jako sess:
wynik = sess.run(cześć)
drukuj(wynik)
„„
Dostosuj kod zgodnie z wersją 2.x TensorFlow:
„pyton”
importuj tensorflow jako tf
Utwórz stałą
witaj = tf.constant('Witaj, TensorFlow!')
Uruchom za pomocą funkcji „equip” (domyślnie włączone)
drukuj(hello.numpy())
„„
Zapisz plik i uruchom:
„`sz
python hello_tensorflow.py
„„
4. Zrozumienie tensorów i podstawowych operacji
Tensory to podstawowa struktura danych w TensorFlow, czyli tablice wielowymiarowe. Oto kilka przykładów, które pomogą Ci zrozumieć tensory:
„pyton”
importuj tensorflow jako tf
Tworzenie tensorów
skalar = tf. stała(7) skalar
wektor = tf. stała([1, 2, 3]) wektor
macierz = tf. stała([[1, 2], [3, 4]]) macierz
tensor3d = tf.constant([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) Tensor 3D
print(f'Skalar: {skalar}')
print(f'Wektor: {wektor}')
print(f'Macierz: {macierz}')
print(f'Tensor 3D: {tensor3d}')
„„
Aby wykonać podstawowe operacje na tensorach:
„pyton”
a = tf.stała([[1, 2], [3, 4]])
b = tf.constant([[5, 6], [7, 8]])
Operacja dodawania
dodaj = tf.add(a, b)
Operacje mnożenia macierzy
mul = tf.matmul(a, b)
print(f'Dodawanie: {add}')
print(f'Mnożenie macierzy: {mul}')
„„
5. Tworzenie prostego modelu sieci neuronowej
Następnym krokiem jest stworzenie prostego modelu sieci neuronowej. Zbudujemy model klasyfikacji obrazów, korzystając ze zbioru danych MNIST, bazy danych obrazów odręcznych cyfr. Zaczynajmy:
„pyton”
importuj tensorflow jako tf
z tensorflow.keras importuj zestawy danych, warstwy, modele
Pobieranie zestawu danych MNIST
(obrazy_pociągu, etykiety_pociągu), (obrazy_testowe, etykiety_testowe) = zestawy_danych.mnist.load_data()
Normalizacja obrazu
obrazy_pociągu, obrazy_testowe = obrazy_pociągu / 255.0, obrazy_testowe / 255.0
Tworzenie modelu
model = modele.Sekwencyjne([
warstwy.Spłaszcz(input_shape=(28, 28)),
warstwy.Dense(128, aktywacja='relu'),
warstwy.Gęsty(10)
])
Kompilacja modelu
model.kompiluj(optymalizator='adam',
strata=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metryka=['dokładność'])
Szkolenie modelu
model.fit(obrazy_pociągu, etykiety_pociągu, epoki=5)
Testowanie modelu
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'Dokładność testu: {test_acc}')
„„
Wyjaśnienie:
– Zestawy danych: Importujemy i ładujemy zestaw danych MNIST.
– Wstępne przetwarzanie: Znormalizuj zbiór danych, dzieląc wartości pikseli przez 255.
– Model: Definiujemy prosty model z dwiema warstwami. Pierwsza warstwa to warstwa „Spłaszcz”, która konwertuje obraz 2D na tablicę 1D. Druga warstwa to warstwa „Gęsta” ze 128 neuronami i funkcją aktywacji „relu”, a ostatnia to warstwa „Gęsta” z 10 neuronami reprezentującymi 10 klas.
– Kompilacja: Kompilujemy model, używając optymalizatora `adam` i funkcji straty `SparseCategoricalCrossentropy`.
– Trenuj: Trenuj model przez 5 epok.
– Ocena: ocena modelu na podstawie danych testowych.
6. Zapisywanie i ładowanie modeli
Po wytrenowaniu modelu możesz chcieć go zapisać do późniejszego wykorzystania bez konieczności ponownego trenowania. Oto jak zapisać i wczytać model:
„pyton”
Zapisywanie modelu
model.save('my_model.h5')
Ładowanie modelu
nowy_model = tf.keras.models.load_model('my_model.h5′)
Weryfikacja załadowanego modelu
strata, acc = new_model.evaluate(test_images, test_labels)
print(f'Dokładność załadowanego modelu: {acc}')
„„
Wniosek
Ten przewodnik stanowi szczegółowe wprowadzenie do nauki TensorFlow dla początkujących. Omówiliśmy instalację, podstawowe operacje na tensorach oraz budowę prostego modelu sieci neuronowej z wykorzystaniem zbioru danych MNIST. TensorFlow oferuje wiele zaawansowanych możliwości, takich jak zaawansowane przetwarzanie danych, bardziej złożone modele oraz korzystanie z TensorFlow na urządzeniach takich jak TPU i GPU. Mamy nadzieję, że ten samouczek pomoże Ci rozpocząć przygodę z uczeniem maszynowym z TensorFlow.