Przejdź do treści

TensorFlow

logo TensorFlow

Wprowadzenie

Tensorflow to rozbudowana biblioteka do rozwiązań uczenia głębokiego (deep learning), stworzona przez Google. Podobnie jak Pytorch, pozwala zarówno na wysokopoziomowe, modułowe tworzenie sieci, jak i na niskopoziomowe konfigurowanie sieci krok po kroku. W porównaniu do Pytorcha, niskopoziomowa praca w Tensorflow może być mniej przystępna dla początkującego użytkownika.

Dostępność

Tensorflow oferuje przystępne narzędzia do tworzenia modeli uczenia głębokiego i obliczeń tensorowych ze wsparciem akceleracji obliczeń zarówno dla CPU, jak i GPU. Biblioteka jest dostępna dla języków Python, C++, Java, JavaScript. Dodatkowe rozwiązania są dostępne dla innych języków.

Szczegóły

Głównym mechanizmem wykorzystywanym przez Tensorflow jest optymalizacja obliczeń za pomocą statycznych grafów obliczeniowych. Podobnie jak w Pytorch, Tensorflow również oferuje mechanizm automatycznego różniczkowania (Automatic Differentiation, odpowiednik autograd w Pytorch).

Tensorflow, dzięki modułowi tensorflow.distribute pozwala na obliczenia przy użyciu wielu akceleratorów (GPU, TPU) i węzłów obliczeniowych (podobnie jak Pytorch). Konfiguracja treningu rozproszonego w obrębie jednej maszyny (węzła) jest stosunkowo prosta. W przypadku treningu na wielu węzłach, konfiguracja jest bardziej skomplikowana, dlatego dobrym rozwiązaniem może być skorzystanie z biblioteki Horovod.

Tensorflow został zintegrowany z biblioteką Keras – wysokopoziomowym narzędziem stworzonym w języku Python. Jego głównym celem jest dostarczenie gotowych modułów do tworzenia frameworków uczenia głębokiego (deep learning) – warstwy, modele, funkcje itd. Praca wysokopoziomowa, dzięki bibliotece Keras, jest prosta w użyciu i stosunkowo przystępna dla nowego użytkownika.

Tensorflow posiada także dodatkowe, instalowane osobno biblioteki, przeznaczone do specjalnych rozwiązań:

  • TensorFlow Extended (TFX) – umożliwia sprawne i wygodne zastosowanie modeli w produkcji (MLOps),
  • TensorFlow Lite – umożliwia tworzenie modeli pracujących na ograniczonych zasobach, nadających się na przykład do wykorzystania w urządzeniach mobilnych oraz wszelkiego rodzaju systemach wbudowanych (embedded),
  • TensorFlow Federated – ułatwia tworzenie modeli uczonych federacyjnie (federated training).

Informacje o wydaniu

Obecna wersja to 2.12.0, wydana w marcu 2023. Określa ona interfejs dla Python, C++ oraz Java. Ten ostatni jest w trakcie zastępowania przez osobne rozwiązanie TensorFlow Java. Interfejs dla JavaScript jest dostępny w formie biblioteki TensorFlow.js. Kod biblioteki jest dostępny publicznie, kolejne wersje pojawiają się zwykle dwa razy w roku, a rozszerzenia obecnej częściej. Wersja dla języka Python jest najbardziej rozwijana oraz stabilna (pozostałe języki nie posiadają gwarancji stabilnego API od twórców). Zwykle kilka kolejnych wersji utrzymuje kompatybilność z funkcjonalnościami przeznaczonymi do usunięcia.

Oprócz oficjalnej biblioteki, istnieją wersje Tensorflow dla innych języków. Za ich utrzymanie oraz wsparcie odpowiadają społeczności i osoby niezwiązane z Google (a co za tym idzie nie mają gwarancji stabilności). Do tych języków należą: C#, Julia, Haskell, Ruby, R, Matlab, Scala oraz Rust. Wersje tych bibliotek i ich kody źródłowe dostępne są w formie osobnych repozytoriów. Linki do nich znajdują się w oficjalnej dokumentacji Tensorflow.

Linki


Ostatnia aktualizacja: 29 lipca 2024