Keras to API wysokiego poziomu platformy TensorFlow. Zapewnia przystępny, wysoce produktywny interfejs do rozwiązywania problemów związanych z uczeniem maszynowym (ML), ze szczególnym uwzględnieniem nowoczesnego głębokiego uczenia się. Keras obejmuje każdy etap przepływu pracy uczenia maszynowego, od przetwarzania danych, przez dostrajanie hiperparametrów, po wdrożenie. Został opracowany z naciskiem na umożliwienie szybkiego eksperymentowania.
Dzięki Keras masz pełny dostęp do skalowalności i możliwości wieloplatformowych TensorFlow. Możesz uruchomić Keras na TPU Pod lub dużych klastrach procesorów graficznych, a także możesz eksportować modele Keras, aby uruchamiać je w przeglądarce lub na urządzeniach mobilnych. Możesz także udostępniać modele Keras za pośrednictwem internetowego interfejsu API.
Keras ma na celu zmniejszenie obciążenia poznawczego poprzez osiągnięcie następujących celów:
- Oferuj proste, spójne interfejsy.
- Zminimalizuj liczbę działań wymaganych w typowych przypadkach użycia.
- Dostarczaj jasne i przydatne komunikaty o błędach.
- Postępuj zgodnie z zasadą stopniowego ujawniania złożoności: rozpoczęcie pracy jest łatwe, a zaawansowane przepływy pracy można ukończyć, ucząc się w miarę upływu czasu.
- Pomóż napisać zwięzły i czytelny kod.
Kto powinien używać Keras
Krótka odpowiedź jest taka, że każdy użytkownik TensorFlow powinien domyślnie korzystać z API Keras. Niezależnie od tego, czy jesteś inżynierem, badaczem czy praktykiem ML, powinieneś zacząć od Keras.
Istnieje kilka przypadków użycia (na przykład tworzenie narzędzi w oparciu o TensorFlow lub opracowywanie własnej platformy o wysokiej wydajności), które wymagają niskopoziomowych interfejsów API TensorFlow Core . Jeśli jednak Twój przypadek użycia nie mieści się w żadnej z aplikacji Core API , powinieneś preferować Keras.
Komponenty API Keras
Podstawowymi strukturami danych Keras są warstwy i modele . Warstwa to prosta transformacja wejścia/wyjścia, a model to skierowany graf acykliczny (DAG) warstw.
Warstwy
Klasa tf.keras.layers.Layer
jest podstawową abstrakcją w Keras. Layer
zawiera stan (wagi) i niektóre obliczenia (zdefiniowane w metodzie tf.keras.layers.Layer.call
).
Ciężary tworzone przez warstwy mogą być trenowane lub nie. Warstwy można komponować rekurencyjnie: jeśli przypiszesz instancję warstwy jako atrybut innej warstwy, warstwa zewnętrzna zacznie śledzić wagi utworzone przez warstwę wewnętrzną.
Warstwy można również używać do obsługi zadań wstępnego przetwarzania danych, takich jak normalizacja i wektoryzacja tekstu. Warstwy przetwarzania wstępnego można włączyć bezpośrednio do modelu podczas szkolenia lub po jego zakończeniu, dzięki czemu model jest przenośny.
Modele
Model to obiekt, który grupuje warstwy i którego można uczyć na danych.
Najprostszym typem modelu jest model Sequential
, który jest liniowym stosem warstw. W przypadku bardziej złożonych architektur można albo użyć funkcjonalnego interfejsu API Keras , który umożliwia budowanie dowolnych wykresów warstw, albo użyć podklas do napisania modeli od zera .
Klasa tf.keras.Model
posiada wbudowane metody uczenia i ewaluacji:
-
tf.keras.Model.fit
: Uczy model dla ustalonej liczby epok. -
tf.keras.Model.predict
: Generuje prognozy wyjściowe dla próbek wejściowych. -
tf.keras.Model.evaluate
: Zwraca wartości strat i metryk dla modelu; skonfigurowany za pomocą metodytf.keras.Model.compile
.
Metody te zapewniają dostęp do następujących wbudowanych funkcji szkoleniowych:
- Oddzwonienia . Możesz wykorzystać wbudowane wywołania zwrotne do wczesnego zatrzymywania, wyznaczania punktów kontrolnych modelu i monitorowania TensorBoard . Możesz także zaimplementować niestandardowe wywołania zwrotne .
- Szkolenia rozproszone . Możesz łatwo skalować swój trening do wielu procesorów graficznych, TPU lub urządzeń.
- Stopniowe łączenie. Za pomocą argumentu
steps_per_execution
wtf.keras.Model.compile
można przetwarzać wiele partii w jednym wywołaniutf.function
, co znacznie poprawia wykorzystanie urządzenia na TPU.
Szczegółowy przegląd sposobu korzystania fit
znajduje się w przewodniku dotyczącym szkoleń i ocen . Aby dowiedzieć się, jak dostosować wbudowane pętle szkoleniowe i ewaluacyjne, zobacz Dostosowywanie działania funkcji fit()
.
Inne interfejsy API i narzędzia
Keras udostępnia wiele innych interfejsów API i narzędzi do głębokiego uczenia się, w tym:
Pełną listę dostępnych interfejsów API można znaleźć w dokumencie Keras API . Aby dowiedzieć się więcej o innych projektach i inicjatywach Keras, zobacz Ekosystem Keras .
Następne kroki
Aby rozpocząć korzystanie z Keras z TensorFlow, zapoznaj się z następującymi tematami:
- Model sekwencyjny
- Funkcjonalne API
- Szkolenie i ocena za pomocą wbudowanych metod
- Tworzenie nowych warstw i modeli poprzez podklasy
- Serializacja i zapisywanie
- Praca z warstwami przetwarzania wstępnego
- Dostosowywanie tego, co dzieje się w fit()
- Napisanie pętli treningowej od podstaw
- Współpraca z RNN
- Zrozumienie maskowania i dopełniania
- Pisanie własnych wywołań zwrotnych
- Przenieś naukę i dostrajanie
- Szkolenia z wieloma procesorami graficznymi i rozproszone
Aby dowiedzieć się więcej o Keras, zapoznaj się z następującymi tematami na stronie keras.io :