O futuro dos complementos do 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) é um repositório de extensões mantidas e contribuídas pela comunidade para o TensorFlow, criado pela primeira vez em 2018 e mantido pela comunidade SIG-Addons . Ao longo de 4 anos, 200 contribuidores transformaram o repositório TFA em um sucesso gerenciado e de propriedade da comunidade que está sendo utilizado por mais de 8.000 repositórios github de acordo com nosso gráfico de dependência. Gostaríamos de aproveitar um momento para agradecer sinceramente a todos os envolvidos como contribuidores ou membros da comunidade por seus esforços.

Recentemente, tem havido uma sobreposição crescente nas contribuições e no escopo entre o TFA e as bibliotecas Keras-CV e Keras-NLP . Para evitar sobreposições futuras, acreditamos que os complementos novos e existentes do TensorFlow serão melhor mantidos nos repositórios do projeto Keras, sempre que possível.

Decisão de encerrar complementos do TensorFlow

Acreditamos que é do interesse da comunidade do TensorFlow consolidar onde as extensões do TensorFlow podem ser utilizadas, mantidas e contribuídas. Por causa disso, é agridoce anunciar nossos planos de mover os complementos do TensorFlow para um modo mínimo de manutenção e lançamento.

Os complementos TFA SIG encerrarão o desenvolvimento e a introdução de novos recursos neste projeto. O TFA fará a transição para um modo mínimo de manutenção e lançamento por um ano (até maio de 2024) para dar o tempo apropriado para você ajustar quaisquer dependências aos repositórios sobrepostos em nossa comunidade TensorFlow ( Keras , Keras-CV e Keras-NLP ). No futuro, considere contribuir para os projetos Keras-CV e Keras-NLP.

Fundo:

A proposta RFC original para TFA foi datada de 14/12/2018 com o objetivo declarado de construir um repositório gerenciado pela comunidade para contribuições que estejam em conformidade com padrões de API bem estabelecidos, mas implementem novas funcionalidades não disponíveis no TensorFlow principal, conforme definido em nosso Grupo de Interesse Especial (SIG) carta .

Com o passar dos anos, novos repositórios com comunidades de contribuidores saudáveis ​​(Keras-CV, Keras-NLP, etc.) foram criados com objetivos semelhantes aos nossos e os critérios para aceitação de contribuições se sobrepõem significativamente (por exemplo, número de citações necessárias). Além disso, desde que Keras se separou do TensorFlow principal em 2020 , a barreira para a contribuição da comunidade foi substancialmente reduzida.

Compreensivelmente, tem havido uma ambiguidade crescente relativamente ao destino das contribuições e onde serão melhor mantidas. Muitos recursos disponíveis no TFA estão disponíveis simultaneamente em outros repositórios da comunidade TensorFlow. Apenas como alguns exemplos:

Como parte da RFC original, nosso Grupo de Interesse Especial concordou em migrar o código dos repositórios tf.contrib e keras.contrib . Ao fazer isso, o TFA herdou operações personalizadas em C++, o que tornou o TFA um lugar único na comunidade TensorFlow para contribuir com operações personalizadas em C++ para criação e distribuição. No entanto, migramos recentemente grande parte dessa infraestrutura para Keras-CV para que eles possam compilar e distribuir operações personalizadas conforme acharem adequado.

O que vem a seguir:

  • As versões de manutenção continuarão por 1 ano (até maio de 2024).
  • Avisos de importação na versão 0.20 TFA.
  • Esta informação também é publicada no problema de rastreamento do GitHub
  • Um inventário de funcionalidades equivalentes está disponível aqui .