Dodatki TensorFlow




TensorFlow Programy powiązane jest repozytorium składek, które są zgodne z ugruntowanych wzorców API, ale wdrażanie nowych funkcjonalności niedostępne w podstawowej TensorFlow. TensorFlow natywnie obsługuje dużą liczbę operatorów, warstw, metryk, strat i optymalizatorów. Jednak 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ą podgrupę społeczności).

Instalacja

Stabilne konstrukcje

Aby zainstalować najnowszą wersję, uruchom następujące polecenie:

pip install tensorflow-addons

Aby korzystać z dodatków:

import tensorflow as tf
import tensorflow_addons as tfa

nocne budowanie

Istnieją również wersje nightly TensorFlow Addons ramach pakietu pip tfa-nightly , która zbudowana jest na najnowszej wersji stabilnej z TensorFlow. Kompilacje Nightly zawierają nowsze funkcje, ale mogą być mniej stabilne niż wersje wersjonowane.

pip install tfa-nightly

Instalowanie ze źródła

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

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 podpakietach

Doświadczenie użytkownika i łatwość utrzymania 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 instalacja CUDA 10 nie zostanie znaleziona, wówczas operacja automatycznie powróci do implementacji procesora.

Utrzymanie proxy

Dodatki zostały zaprojektowane w celu dzielenia podpakietów i podmodułów na przedziały, tak aby mogły być utrzymywane przez użytkowników, którzy mają wiedzę i żywotne zainteresowanie tym komponentem.

Opieka nad podpakietem zostanie przyznana tylko po wniesieniu znacznego wkładu w celu ograniczenia liczby użytkowników z uprawnieniami do zapisu. Wkład może mieć formę zamykania problemów, poprawek błędów, dokumentacji, nowego kodu lub optymalizacji istniejącego kodu. Opiekę nad modułem można przyznać z niższą barierą wejścia, ponieważ nie obejmuje to uprawnień do zapisu w repozytorium.

Aby uzyskać więcej informacji, patrz RFC na ten temat.

Okresowa ocena podpakietów

Biorąc pod uwagę charakter tego repozytorium, podpakiety i podmoduły mogą z biegiem czasu stawać się coraz mniej przydatne dla społeczności. Aby repozytorium było zrównoważone, co dwa lata będziemy przeprowadzać przeglądy naszego kodu, aby upewnić się, że wszystko nadal należy do repozytorium. Czynnikami przyczyniającymi się do tego przeglądu będą:

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

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

  • Sugerowana: dobrze utrzymywane API; zachęca się do korzystania.
  • Zniechęcony: lepszą alternatywą jest dostępna; API jest przechowywane ze względów historycznych; lub interfejs API wymaga konserwacji i jest przestarzałym okresem oczekiwania.
  • Przestarzałe: wykorzystanie na własne ryzyko; przedmiot do usunięcia.

Zmiana statusu między tymi trzema grupami to: Sugerowana <-> Odradzana -> Przestarzała.

Okres między oznaczeniem interfejsu API jako przestarzałe a usunięciem wyniesie 90 dni. Uzasadnieniem jest:

  1. W przypadku, gdy dodatki TensorFlow będą publikowane co miesiąc, przed usunięciem interfejsu API pojawią się 2-3 wydania. Informacje o wersji mogą dać użytkownikowi wystarczające ostrzeżenie.

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

Przyczynianie się

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. Proszę zobaczyć wytyczne składek dla przewodnika na temat tego przyczynić. Projekt ten przylega do kodu TensorFlow za postępowania . Biorąc udział, oczekuje się, że będziesz przestrzegać tego kodu.

Społeczność

Licencja

Licencja Apache 2.0