W tym dniu poznasz podstawy TensorFlow i Keras – dwóch kluczowych narzędzi w głębokim uczeniu. Nauczysz się budować swój pierwszy model sieci neuronowej, zrozumiesz jak działa proces uczenia i zobaczysz, jak przewidywać wyniki na podstawie danych.
TensorFlow i Keras to biblioteki programistyczne wykorzystywane do budowy modeli głębokiego uczenia. TensorFlow jest potężnym narzędziem, które pozwala na definiowanie, trenowanie i wdrażanie modeli. Keras to interfejs API wysokiego poziomu, który ułatwia budowę modeli w TensorFlow, czyniąc kod bardziej czytelnym i prostym. Pomyśl o Keras jako o przyjaznym przewodniku po TensorFlow, który upraszcza skomplikowane operacje.
Przede wszystkim musimy zainstalować te biblioteki. W konsoli (terminalu) wpiszemy następujące komendy (używając Pythona): pip install tensorflow keras
. Ważne: Upewnij się, że masz poprawnie zainstalowany Python i pip. Po instalacji możemy przejść do importowania bibliotek w naszym skrypcie Python: import tensorflow as tf
oraz from tensorflow import keras
. Zazwyczaj importuje się również numpy
do pracy z danymi: import numpy as np
. Pamiętaj, że w IDE takich jak VS Code czy PyCharm, musisz wybrać odpowiedni interpreter Pythona, w którym zainstalowałeś te biblioteki.
TensorFlow operuje na tensorach, które są wielowymiarowymi tablicami danych. Możemy myśleć o tensorach jako uogólnieniu skalarów, wektorów i macierzy. W TensorFlow, zmienne (tensory) są definiowane jako tf.Variable()
. Przykład: x = tf.Variable([1, 2, 3], dtype=tf.float32)
. Możemy wykonywać operacje na tensorach, takie jak dodawanie, mnożenie, etc. Na przykład: y = x + 2
(dodanie skalaru) lub z = x * y
(mnożenie tensorów). Pamiętaj, że TensorFlow oblicza gradienty automatycznie, co jest kluczowe w procesie uczenia sieci neuronowych. Wykorzystuje się do tego mechanizm 'computational graph'.
W Keras model budujemy warstwa po warstwie. Najpopularniejszy sposób to użycie modelu sekwencyjnego (keras.Sequential()
). Przykład: model = keras.Sequential([keras.layers.Dense(128, activation='relu', input_shape=(784,)), keras.layers.Dense(10, activation='softmax')])
. W tym przykładzie: keras.layers.Dense
definiuje warstwę gęstą (fully connected). activation
określa funkcję aktywacji (np. relu
, sigmoid
, softmax
). input_shape
określa kształt danych wejściowych (w tym przypadku 784, co odpowiada np. obrazkowi 28x28 pikseli). Na końcu należy skompilować model: model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
. optimizer
(np. 'adam') odpowiada za algorytm optymalizacji. loss
to funkcja straty, która mierzy błąd. metrics
to metryki ewaluacyjne, które chcemy śledzić (np. dokładność).
Aby wytrenować model, używamy metody model.fit()
. Przykład: model.fit(x_train, y_train, epochs=5)
. x_train
i y_train
to dane treningowe. epochs
to liczba iteracji po całym zestawie danych. Po treningu model możemy ocenić na danych walidacyjnych: model.evaluate(x_val, y_val)
. Ważne jest, aby podzielić dane na treningowe, walidacyjne i testowe. Dane walidacyjne służą do monitorowania procesu uczenia i dostrajania modelu, a dane testowe do ostatecznej oceny.
Explore advanced insights, examples, and bonus exercises to deepen understanding.
Witaj! To już trzeci dzień Twojej przygody z głębokim uczeniem. Dziś zanurzymy się jeszcze głębiej w świat TensorFlow i Keras, budując na tym, czego już się nauczyłeś. Pamiętaj, praktyka czyni mistrza, więc im więcej będziesz kodować, tym lepiej zrozumiesz te koncepcje.
Zanim przejdziemy dalej, wróćmy na chwilę do tensorów. Pomyśl o tensorach jako o 'tętnieniach' informacji przepływających przez Twoją sieć neuronową. Każdy tensor to wielowymiarowa tablica danych (np. liczby, obrazy, dźwięki). Operacje na tensorach, takie jak mnożenie macierzy czy dodawanie, to 'skurcze' i 'rozkurcze' tych tętnień, przekształcające informacje w sposób, który pozwala sieci uczyć się. Zrozumienie tego procesu jest kluczowe.
Wyobraź sobie sieć neuronową jako sieć dróg w dużym mieście. Neurony to skrzyżowania, połączenia to drogi, a wagi to ograniczenia prędkości na tych drogach. Proces uczenia to dostosowywanie tych ograniczeń (wag) tak, aby samochody (dane) docierały do celu (przewidywania) jak najszybciej i najsprawniej. Funkcje aktywacji, takie jak ReLU, to 'światła' na skrzyżowaniach, które decydują, czy samochód może jechać dalej.
Dodatkowo, zastanów się nad różnymi rodzajami optymalizatorów (np. Adam, SGD). Optymalizator to 'inżynier ruchu', który pomaga w dostosowywaniu wag (ograniczeń prędkości) w sposób, który minimalizuje błędy (opóźnienia). Każdy optymalizator ma swoje własne strategie i algorytmy, które wpływają na to, jak szybko i skutecznie sieć się uczy.
Wykorzystaj TensorFlow, aby stworzyć dwa tensory: jeden o kształcie (2, 3) i wypełniony losowymi liczbami, a drugi o kształcie (3, 2) również z losowymi liczbami. Następnie pomnóż te tensory i wyświetl wynik. Pamiętaj o użyciu odpowiednich operacji TensorFlow!
Zbuduj prosty model sekwencyjny Keras z dwoma warstwami gęstymi. Użyj funkcji aktywacji ReLU dla pierwszej warstwy i sigmoid dla drugiej (wyjściowej). Następnie wytrenuj model na danych syntetycznych (np. problem klasyfikacji binarnej). Zmień funkcję aktywacji dla pierwszej warstwy na 'tanh' i zobacz, jak to wpływa na wyniki. Porównaj wyniki i spróbuj zrozumieć dlaczego zachodzą różnice.
Głębokie uczenie, a w szczególności TensorFlow i Keras, znajdują zastosowanie w wielu dziedzinach. Przykłady:
Spróbuj zbudować model sieci neuronowej do klasyfikacji zbioru danych Iris (dostępny w Keras). Eksperymentuj z różnymi architekturami sieci (liczba warstw, liczba neuronów w warstwach) i optymalizatorami. Postaraj się osiągnąć jak najwyższą dokładność (accuracy) na zbiorze testowym. Porównaj wyniki dla różnych konfiguracji i wyciągnij wnioski.
Świat głębokiego uczenia jest ogromny! Oto kilka tematów, które możesz eksplorować dalej:
Zainstaluj TensorFlow i Keras. Napisz prosty skrypt w Python, który importuje obie biblioteki i wypisuje wersje TensorFlow i Keras. Upewnij się, że wszystko działa poprawnie.
Utwórz kilka tensorów w TensorFlow. Wykonaj na nich podstawowe operacje arytmetyczne (dodawanie, mnożenie). Wyświetl wyniki.
Stwórz prosty model sekwencyjny z dwiema warstwami gęstymi. Użyj funkcji aktywacji ReLU i softmax. Skompiluj model z optymalizatorem 'adam' i funkcją straty 'sparse_categorical_crossentropy'.
Poeksperymentuj z różnymi parametrami w zbudowanym modelu (np. liczba neuronów, funkcje aktywacji, optymalizatory). Obserwuj, jak zmiany te wpływają na działanie modelu. Zastanów się, dlaczego niektóre zmiany mogą dawać lepsze wyniki niż inne.
Stwórz prosty model klasyfikujący zdjęcia z użyciem Keras. Możesz użyć popularnego zestawu danych MNIST (klasyfikacja cyfr od 0 do 9). Zastosuj opisane w lekcji kroki, aby zbudować, wytrenować i przetestować model.
Przygotuj się na kolejne zajęcia, gdzie zagłębimy się w różne typy warstw i bardziej zaawansowane techniki modelowania. Przejrzyj dokumentację TensorFlow i Keras, aby zapoznać się z dostępnymi opcjami. Spróbuj rozwiązać zadanie klasyfikacji MNIST.
We're automatically tracking your progress. Sign up for free to keep your learning paths forever and unlock advanced features like detailed analytics and personalized recommendations.