znacząca wersja platformy uczenia maszynowego , oferująca gotowe implementacje różnych algorytmów głębokiego uczenia maszynowego, prosty interfejs programistyczny do budowania modeli w języku Python oraz niski poziom interfejsu w języku C++, umożliwiający zarządzanie budową i wykonywaniem grafów obliczeniowych. Kod systemu napisany jest w językach C++ i Python i na licencji Apache.
Platforma została pierwotnie opracowana przez zespół Google Brain i jest wykorzystywana w usługach Google do rozpoznawania mowy, wykrywania twarzy na zdjęciach, określania podobieństwa obrazów, filtrowania spamu w Gmailu, wiadomości w Google News i organizowania tłumaczeń z uwzględnieniem kontekstu. Rozproszone systemy uczenia maszynowego można tworzyć na standardowym sprzęcie, dzięki wbudowanemu wsparciu w TensorFlow dla rozdzielania obliczeń na wiele CPU lub GPU.
TensorFlow zapewnia bibliotekę gotowych algorytmów obliczeń numerycznych, zrealizowanych za pomocą grafów przepływu danych (data flow graphs). Węzły w takich grafach realizują operacje matematyczne lub punkty wejścia/wyjścia, podczas gdy krawędzie grafu reprezentują wielowymiarowe tablice danych (tenzory), które płyną między węzłami.
Węzły mogą być przypisane do urządzeń obliczeniowych i wykonywane asynchronicznie, równolegle przetwarzając wszystkie odpowiednie tenzory, co pozwala na równoczesne działanie węzłów w sieci neuronowej, podobnie jak równoczesna aktywacja neuronów w mózgu.
Główna uwaga podczas przygotowywania nowej wersji została poświęcona uproszczeniu i łatwości użycia. :
- Do budowy i treningu modeli zaproponowano nowy, wysokopoziomowy API , oferujący kilka opcji interfejsów do budowy modeli (Sequential, Functional, Subclassing) z możliwością ich (bez wcześniejszej kompilacji) i z prostym mechanizmem debugowania;
- Dodano API do organizacji modeli z minimalną zmianą istniejącego kodu. Oprócz możliwości rozdzielania obliczeń na , dostępne jest eksperymentalne wsparcie dla podziału procesu uczenia na wiele niezależnych procesorów i możliwość wykorzystania chmurowych (jednostka przetwarzania tenzorów);
- Zamiast deklaratywnego modelu budowy grafu z wykonaniem za pomocą tf.Session wprowadzono możliwość pisania zwykłych funkcji w języku Python, które dzięki wywołaniu tf.function mogą być przekształcane w grafy, a następnie wykonywane zdalnie, serializowane lub optymalizowane w celu zwiększenia wydajności;
- Dodano tłumacz , przekształcający strumień poleceń Pythona w wyrażenia TensorFlow, co pozwala na użycie kodu w języku Python wewnątrz funkcji ozdobionych tf.function, tf.data, tf.distribute i tf.keras;
- W SavedModel ujednolicono format wymiany modeli oraz dodano wsparcie dla zapisywania i przywracania stanu modeli. Zbudowane dla TensorFlow modele mogą teraz być używane w (na urządzeniach mobilnych), (w przeglądarce lub Node.js), i ;
- Ujednolicono API tf.train.Optimizers i tf.keras.Optimizers, zamiast compute_gradients do obliczania gradientów zaproponowano nową klasę ;
- Znacząco zwiększona wydajność przy użyciu GPU.
Szybkość uczenia się modeli na systemach z GPU NVIDIA Volta i Turing wzrosła do trzech razy; - duże porządki w API, wiele wywołań zostało przemianowanych lub usuniętych, zaprzestano wsparcia dla zmiennych globalnych w metodach pomocniczych. Zamiast tf.app, tf.flags, tf.logging wprowadzono nowe API absl-py. Aby kontynuować korzystanie ze starego API, przygotowano moduł compat.v1.
Źródło: opennet.ru
