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 per TensorFlow mantenute e fornite dalla community, 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 posseduto 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 stati coinvolti come contributori o membri della comunità per i loro sforzi.

Recentemente, si è verificata 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 verranno 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 i luoghi in cui 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 in una modalità di manutenzione e rilascio minima.

I componenti aggiuntivi TFA SIG termineranno lo sviluppo e l'introduzione di nuove funzionalità in questo progetto. TFA passerà a una modalità di manutenzione e rilascio minima 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 ). In futuro, ti invitiamo a considerare 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 che implementano 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 e i 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 dovrebbero arrivare i contributi e dove saranno meglio mantenuti. Molte funzionalità disponibili in TFA sono contemporaneamente disponibili in altri repository della community TensorFlow. Per fare 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++, rendendo TFA un luogo unico nella community di TensorFlow per contribuire alla creazione e alla distribuzione di operazioni personalizzate C++. Tuttavia, abbiamo recentemente migrato gran parte di quell'infrastruttura su Keras-CV in modo che possano compilare e distribuire operazioni personalizzate come ritengono opportuno.

Cosa c'è dopo:

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