Keras: API wysokiego poziomu dla TensorFlow

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ą metody tf.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 w tf.keras.Model.compile można przetwarzać wiele partii w jednym wywołaniu tf.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:

Aby dowiedzieć się więcej o Keras, zapoznaj się z następującymi tematami na stronie keras.io :