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 udostępnianych przez społeczność rozszerzeń dla TensorFlow, utworzonych po raz pierwszy w 2018 roku i utrzymywanych przez społeczność SIG-Addons . W ciągu 4 lat 200 współtwórców zbudowało repozytorium TFA w sukces zarządzany przez społeczność, który jest wykorzystywany przez 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 współpracownikom lub członkom społeczności za ich wysiłki.
Ostatnio obserwuje się coraz większe nakładanie się wkładu i zakresu między TFA a bibliotekami Keras-CV i Keras-NLP . Aby zapobiec nakładaniu się w przyszłości, uważamy, że nowe i istniejące dodatki do TensorFlow będą najlepiej utrzymywane w repozytoriach projektów Keras, tam gdzie to możliwe.
Decyzja o zamknięciu dodatków TensorFlow
Uważamy, że w najlepszym interesie społeczności TensorFlow leży konsolidacja miejsc, w których rozszerzenia TensorFlow mogą być wykorzystywane, utrzymywane i udostępniane. Z tego powodu ogłaszamy nasze plany przeniesienia TensorFlow Addons do trybu minimalnej konserwacji i wydania.
Dodatki TFA SIG zakończą rozwój i wprowadzanie nowych funkcji do tego projektu. TFA przejdzie na tryb 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 na 2018-12-14 i miała na celu zbudowanie zarządzanego przez społeczność repozytorium dla wkładów, które są zgodne z dobrze ugruntowanymi wzorcami API, ale implementują nową funkcjonalność niedostępną w rdzeniu TensorFlow, zgodnie z definicją naszej Grupy ds. Specjalnych Zainteresowań (SIG) czarter .
Z biegiem lat powstały nowe repozytoria ze zdrowymi społecznościami autorów (Keras-CV, Keras-NLP, itp.) mające podobne cele do naszych, a kryteria akceptacji wkładów znacznie się pokrywają (np. liczba wymaganych cytowań). Ponadto, odkąd Keras odłączył się od rdzenia TensorFlow w 2020 r. , bariera dla wkładu społeczności została znacznie obniżona.
Zrozumiałe jest, że rośnie niejasność co do tego, gdzie składki powinny trafiać i gdzie będą najlepiej utrzymywane. 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 pierwotnego 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ła niestandardowe operacje C++, co sprawiło, że TFA stało się wyjątkowym miejscem w społeczności TensorFlow, w którym można tworzyć i rozpowszechniać niestandardowe operacje C++. Jednak ostatnio 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.
- Te informacje są również publikowane w sprawie problemu ze śledzeniem GitHub
- Spis równoważnych funkcji jest dostępny tutaj .