Dodatki TensorFlow




Dodatki TensorFlow to repozytorium wkładów zgodnych z ugruntowanymi wzorcami API, ale wdrażających nowe funkcje niedostępne w podstawowym TensorFlow. TensorFlow natywnie obsługuje dużą liczbę operatorów, warstw, metryk, strat i optymalizatorów. Jednakże w szybko zmieniającej się dziedzinie, takiej jak ML, istnieje wiele interesujących nowych rozwiązań, których nie można zintegrować z podstawowym TensorFlow (ponieważ ich szerokie zastosowanie nie jest jeszcze jasne lub jest używane głównie przez mniejszą część społeczności).

Instalacja

Stabilne kompilacje

Aby zainstalować najnowszą wersję, wykonaj następujące czynności:

pip install tensorflow-addons

Aby użyć dodatków:

import tensorflow as tf
import tensorflow_addons as tfa

nocne budowanie

Istnieją również nocne kompilacje dodatków TensorFlow w ramach pakietu pip tfa-nightly , który jest zbudowany w oparciu o najnowszą stabilną wersję TensorFlow. Kompilacje Nightly zawierają nowsze funkcje, ale mogą być mniej stabilne niż wersje wersjonowane.

pip install tfa-nightly

Instalacja ze źródła

Można także zainstalować ze źródła. Wymaga to systemu kompilacji Bazel .

git clone https://github.com/tensorflow/addons.git
cd addons

# If building GPU Ops (Requires CUDA 10.0 and CuDNN 7)
export TF_NEED_CUDA=1
export CUDA_TOOLKIT_PATH="/path/to/cuda10" (default: /usr/local/cuda)
export CUDNN_INSTALL_PATH="/path/to/cudnn" (default: /usr/lib/x86_64-linux-gnu)

# This script links project with TensorFlow dependency
python3 ./configure.py

bazel build build_pip_pkg
bazel-bin/build_pip_pkg artifacts

pip install artifacts/tensorflow_addons-*.whl

Podstawowe pojęcia

Standaryzowane API w ramach podpakietów

Doświadczenie użytkownika i łatwość konserwacji projektu to podstawowe pojęcia w TF-Addons. Aby to osiągnąć, wymagamy, aby nasze dodatki były zgodne z ustalonymi wzorcami API widocznymi w rdzeniu TensorFlow.

Niestandardowe operacje GPU/CPU

Główną zaletą dodatków TensorFlow jest to, że istnieją prekompilowane operacje. Jeśli nie zostanie znaleziona instalacja CUDA 10, operacja automatycznie powróci do implementacji procesora.

Opieka zastępcza

Dodatki zostały zaprojektowane w celu podziału podpakietów i submodułów, tak aby mogły być obsługiwane przez użytkowników posiadających wiedzę i żywotny interes w tym komponencie.

Opieka podpakietu zostanie przyznana dopiero po wniesieniu istotnego wkładu w celu ograniczenia liczby użytkowników z uprawnieniami do zapisu. Wkład może mieć formę zamykania problemów, poprawiania błędów, dokumentacji, nowego kodu lub optymalizacji istniejącego kodu. Opieka podmodułu może zostać przyznana z niższą barierą wejścia, ponieważ nie będzie ona obejmować uprawnień do zapisu w repozytorium.

Więcej informacji można znaleźć w dokumencie RFC na ten temat.

Okresowa ocena podpakietów

Biorąc pod uwagę naturę tego repozytorium, podpakiety i podmoduły mogą z biegiem czasu stawać się coraz mniej przydatne dla społeczności. Aby zapewnić trwałość repozytorium, co dwa lata będziemy przeprowadzać przeglądy naszego kodu, aby upewnić się, że wszystko nadal należy do repozytorium. Czynnikami wpływającymi na tę recenzję będą:

  1. Liczba aktywnych opiekunów
  2. Ilość wykorzystania OSS
  3. Liczba problemów lub błędów przypisanych do kodu
  4. Jeśli lepsze rozwiązanie jest teraz dostępne

Funkcjonalność dodatków TensorFlow można podzielić na trzy grupy:

  • Sugerowane : dobrze utrzymany interfejs API; zachęcamy do korzystania.
  • Zniechęcony : dostępna jest lepsza alternatywa; API jest przechowywane ze względów historycznych; lub interfejs API wymaga konserwacji i jest to okres oczekiwania, który ma zostać wycofany.
  • Przestarzałe : używaj na własne ryzyko; temat do usunięcia.

Zmiana statusu pomiędzy tymi trzema grupami to: Sugerowane <-> Odradzane -> Przestarzałe.

Okres pomiędzy oznaczeniem interfejsu API jako przestarzałego a jego usunięciem wyniesie 90 dni. Uzasadnieniem jest:

  1. W przypadku, gdy dodatki TensorFlow są wydawane co miesiąc, wyjdą 2-3 wydania, zanim interfejs API zostanie usunięty. Informacje o wydaniu mogą dać użytkownikowi wystarczające ostrzeżenie.

  2. 90 dni daje opiekunom wystarczająco dużo czasu na naprawienie kodu.

Wkład

TF-Addons to projekt open source prowadzony przez społeczność. Jako taki, projekt zależy od wkładu publicznego, poprawek błędów i dokumentacji. Zapoznaj się z wytycznymi dotyczącymi wpłat , aby zapoznać się z przewodnikiem dotyczącym wnoszenia wkładu. Ten projekt jest zgodny z kodeksem postępowania TensorFlow . Biorąc udział w programie, oczekuje się, że będziesz przestrzegać tego kodeksu.

Wspólnota

Licencja

Licencja Apache 2.0