Przyszłość dodatków TensorFlow

import tensorflow as tf
import tensorflow_addons as tfa
train,test = tf.keras.datasets.mnist.load_data()
x_train, y_train = train
x_train = x_train[..., tf.newaxis] / 255.0

# TFA layers and activations
model = tf.keras.Sequential([
  tf.keras.layers.Conv2D(filters=10, kernel_size=(3,3),
                         activation=tfa.activations.gelu),
  tfa.layers.GroupNormalization(groups=5, axis=3),
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(10, activation='softmax')
])

# TFA optimizers, losses and metrics
model.compile(
    optimizer=tfa.optimizers.RectifiedAdam(0.001),
    loss=tfa.losses.TripletSemiHardLoss(),
    metrics=[tfa.metrics.MultiLabelConfusionMatrix(num_classes=10)])

history = model.fit(x_train, y_train, epochs=10)

TensorFlow Addons (TFA) to repozytorium utrzymywanych i współtworzonych przez społeczność rozszerzeń dla TensorFlow, stworzonych po raz pierwszy w 2018 roku i utrzymywanych przez społeczność SIG-Addons . W ciągu 4 lat 200 współpracowników zbudowało repozytorium TFA do sukcesu należącego do społeczności i zarządzanego przez nią, z którego korzysta ponad 8000 repozytoriów Github, zgodnie z naszym wykresem zależności. Chcielibyśmy poświęcić chwilę, aby szczerze podziękować wszystkim zaangażowanym jako współpracownicy lub członkowie społeczności za ich wysiłki.

Ostatnio obserwuje się coraz większe nakładanie się wkładów i zakresu bibliotek TFA i Keras-CV i Keras-NLP . Aby zapobiec przyszłemu nakładaniu się, uważamy, że nowe i istniejące dodatki do TensorFlow będą najlepiej utrzymywane w repozytoriach projektów Keras, jeśli to możliwe.

Decyzja o zamknięciu dodatków TensorFlow

Wierzymy, że w najlepszym interesie społeczności TensorFlow leży konsolidacja miejsc, w których można wykorzystywać, utrzymywać i wnosić rozszerzenia TensorFlow. Z tego powodu ze słodko-gorzką radością ogłaszamy nasze plany przeniesienia dodatków TensorFlow do trybu minimalnej konserwacji i wydawania.

Dodatki TFA SIG zakończą rozwój i wprowadzanie nowych funkcji do tego projektu. TFA przejdzie do trybu minimalnej konserwacji i wydawania na okres jednego roku (do maja 2024 r.), aby zapewnić odpowiedni czas na dostosowanie wszelkich zależności do nakładających się repozytoriów w naszej społeczności TensorFlow ( Keras , Keras-CV i Keras-NLP ). W przyszłości rozważ udział w projektach Keras-CV i Keras-NLP.

Tło:

Oryginalna propozycja RFC dla TFA została datowana 2018-12-14 , a jej celem było zbudowanie zarządzanego przez społeczność repozytorium dla wkładów zgodnych z ugruntowanymi wzorcami API, ale wdrażających nowe funkcje niedostępne w podstawowym TensorFlow, zgodnie z definicją w naszej grupie specjalnego zainteresowania (SIG) Karta .

Z biegiem lat utworzono nowe repozytoria ze zdrowymi społecznościami autorów (Keras-CV, Keras-NLP itp.), których cele są podobne do naszych, a kryteria akceptacji wkładu w znacznym stopniu się pokrywają (np. liczba wymaganych cytowań). Ponadto odkąd Keras oddzielił się od podstawowego TensorFlow w 2020 r. , bariera dla wkładu społeczności została znacznie obniżona.

Co zrozumiałe, rośnie niejasność co do tego, gdzie składki powinny trafiać i gdzie będą najlepiej przechowywane. Wiele funkcji dostępnych w TFA jest jednocześnie dostępnych w innych repozytoriach społeczności TensorFlow. Jako kilka przykładów:

W ramach pierwotnej umowy RFC nasza grupa Special Interest Group zgodziła się na migrację kodu z repozytoriów tf.contrib i keras.contrib . W ten sposób TFA odziedziczyło niestandardowe operacje C++, co uczyniło TFA wyjątkowym miejscem w społeczności TensorFlow, w którym można tworzyć i rozpowszechniać niestandardowe operacje C++. Jednak niedawno przenieśliśmy znaczną część tej infrastruktury do Keras-CV, aby mogli kompilować i rozpowszechniać niestandardowe operacje według własnego uznania.

Co dalej:

  • Wersje konserwacyjne będą kontynuowane przez 1 rok (do maja 2024 r.).
  • Ostrzeżenia dotyczące importu w wersji 0.20 TFA.
  • Informacje te są również publikowane w związku z problemem śledzenia w serwisie GitHub
  • Spis równoważnych funkcjonalności jest dostępny tutaj .