El futuro de los complementos de 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) es un repositorio de extensiones mantenidas y aportadas por la comunidad para TensorFlow, creado por primera vez en 2018 y mantenido por la comunidad SIG-Addons . En el transcurso de 4 años, 200 contribuyentes han convertido el repositorio de TFA en un éxito administrado y de propiedad comunitaria que está siendo utilizado por más de 8000 repositorios de github según nuestro gráfico de dependencia. Nos gustaría tomarnos un momento para agradecer sinceramente a todos los involucrados como contribuyentes o miembros de la comunidad por sus esfuerzos.

Recientemente, ha habido una superposición cada vez mayor en las contribuciones y el alcance entre TFA y las bibliotecas Keras-CV y Keras-NLP . Para evitar superposiciones futuras, creemos que los complementos nuevos y existentes de TensorFlow se mantendrán mejor en los repositorios del proyecto Keras, siempre que sea posible.

Decisión de cerrar los complementos de TensorFlow

Creemos que lo mejor para la comunidad de TensorFlow es consolidar dónde se pueden utilizar, mantener y contribuir las extensiones de TensorFlow. Debido a esto, es agridulce que anunciemos nuestros planes para mover los complementos de TensorFlow a un modo de lanzamiento y mantenimiento mínimo.

TFA SIG Addons finalizará el desarrollo y la introducción de nuevas funciones en este proyecto. TFA pasará a un modo de lanzamiento y mantenimiento mínimo durante un año (hasta mayo de 2024) para brindarle el tiempo adecuado para ajustar cualquier dependencia a los repositorios superpuestos en nuestra comunidad TensorFlow ( Keras , Keras-CV y Keras-NLP). ). En el futuro, considere contribuir a los proyectos Keras-CV y Keras-NLP.

Fondo:

La propuesta RFC original para TFA tenía fecha del 14 de diciembre de 2018 y tenía el objetivo declarado de crear un repositorio administrado por la comunidad para contribuciones que se ajusten a patrones de API bien establecidos, pero que implementen nuevas funciones que no están disponibles en el núcleo de TensorFlow como se define en nuestro Grupo de Interés Especial. (SIG) carta .

A medida que pasaron los años, se crearon nuevos repositorios con comunidades de contribuyentes saludables (Keras-CV, Keras-NLP, etc.) con objetivos similares a los nuestros y los criterios para la aceptación de contribuciones se superponen significativamente (por ejemplo, número de citas requeridas). Además, desde que Keras se separó del núcleo TensorFlow en 2020 , la barrera para la contribución de la comunidad se ha reducido sustancialmente.

Es comprensible que haya habido una ambigüedad cada vez mayor respecto de dónde deberían aterrizar las contribuciones y dónde se mantendrán mejor. Muchas funciones que están disponibles en TFA están disponibles simultáneamente en otros repositorios de la comunidad TensorFlow. Como sólo algunos ejemplos:

Como parte del RFC original, nuestro Grupo de Interés Especial acordó migrar el código de los repositorios tf.contrib y keras.contrib . Al hacerlo, TFA heredó las operaciones personalizadas de C++, lo que convirtió a TFA en un lugar único en la comunidad de TensorFlow para contribuir con operaciones personalizadas de C++ para su creación y distribución. Sin embargo, recientemente hemos migrado gran parte de esa infraestructura a Keras-CV para que puedan compilar y distribuir operaciones personalizadas como mejor les parezca.

¿Qué sigue?

  • Las versiones de mantenimiento continuarán durante 1 año (hasta mayo de 2024).
  • Advertencias de importación en la versión 0.20 TFA.
  • Esta información también se publica en el problema de seguimiento de GitHub.
  • Un inventario de funcionalidad equivalente está disponible aquí .