Il futuro dei componenti aggiuntivi di 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) è un repository di estensioni gestite e fornite dalla community per TensorFlow, creato per la prima volta nel 2018 e gestito dalla community SIG-Addons . Nel corso di 4 anni, 200 contributori hanno trasformato il repository TFA in un successo di proprietà e gestito dalla comunità che viene utilizzato da oltre 8.000 repository github secondo il nostro grafico delle dipendenze. Vorremmo prenderci un momento per ringraziare sinceramente tutti coloro che sono coinvolti come contributori o membri della comunità per i loro sforzi.

Recentemente, c'è stata una crescente sovrapposizione nei contributi e nell'ambito tra TFA e le librerie Keras-CV e Keras-NLP . Per evitare future sovrapposizioni, riteniamo che i componenti aggiuntivi nuovi ed esistenti di TensorFlow saranno mantenuti al meglio nei repository del progetto Keras, ove possibile.

Decisione di ridurre i componenti aggiuntivi di TensorFlow

Riteniamo che sia nel migliore interesse della comunità TensorFlow consolidare dove le estensioni TensorFlow possono essere utilizzate, mantenute e fornite. Per questo motivo, è agrodolce che stiamo annunciando i nostri piani per spostare i componenti aggiuntivi di TensorFlow a una modalità di manutenzione e rilascio minima.

TFA SIG Addons terminerà lo sviluppo e l'introduzione di nuove funzionalità per questo progetto. TFA passerà a una modalità minima di manutenzione e rilascio per un anno (fino a maggio 2024) per darti il ​​tempo necessario per adattare eventuali dipendenze ai repository sovrapposti nella nostra community TensorFlow ( Keras , Keras-CV e Keras-NLP ). Andando avanti, considera la possibilità di contribuire ai progetti Keras-CV e Keras-NLP.

Sfondo:

La proposta RFC originale per TFA era datata 14-12-2018 con l'obiettivo dichiarato di creare un repository gestito dalla comunità per i contributi conformi a modelli API consolidati, ma implementare nuove funzionalità non disponibili nel core TensorFlow come definito nel nostro gruppo di interesse speciale (SIG) carta .

Con il passare degli anni, sono stati creati nuovi archivi con comunità di contributori sane (Keras-CV, Keras-NLP, ecc.) con obiettivi simili ai nostri ei criteri per l'accettazione dei contributi si sovrappongono in modo significativo (ad esempio, numero di citazioni richieste). Inoltre, da quando Keras si è separato dal core TensorFlow nel 2020 , la barriera per il contributo della comunità è stata sostanzialmente abbassata.

Comprensibilmente, c'è stata una crescente ambiguità riguardo a dove i contributi dovrebbero atterrare e dove saranno meglio mantenuti. Molte funzionalità disponibili in TFA sono disponibili contemporaneamente in altri repository della community TensorFlow. Come solo alcuni esempi:

Come parte della RFC originale, il nostro gruppo di interesse speciale ha accettato di migrare il codice dai repository tf.contrib e keras.contrib . In tal modo, TFA ha ereditato le operazioni personalizzate C++, il che ha reso TFA un posto unico nella comunità TensorFlow per contribuire alla creazione e alla distribuzione delle operazioni personalizzate C++. Tuttavia, di recente abbiamo migrato gran parte di tale infrastruttura a Keras-CV in modo che possano compilare e distribuire operazioni personalizzate come meglio credono.

Qual è il prossimo:

  • I rilasci di manutenzione continueranno per 1 anno (fino a maggio 2024).
  • Avvisi di importazione nella versione 0.20 TFA.
  • Queste informazioni sono pubblicate anche sul problema di tracciamento di GitHub
  • Un inventario delle funzionalità equivalenti è disponibile qui .