Complementos do TensorFlow




Os complementos do TensorFlow são um repositório de contribuições que estão em conformidade com padrões de API bem estabelecidos, mas implementam novas funcionalidades não disponíveis no TensorFlow principal. O TensorFlow oferece suporte nativo a um grande número de operadores, camadas, métricas, perdas e otimizadores. No entanto, em um campo em rápida evolução como o ML, há muitos novos desenvolvimentos interessantes que não podem ser integrados ao TensorFlow principal (porque sua ampla aplicabilidade ainda não está clara ou é usado principalmente por um subconjunto menor da comunidade).

Instalação

Construções estáveis

Para instalar a versão mais recente, execute o seguinte:

pip install tensorflow-addons

Para usar complementos:

import tensorflow as tf
import tensorflow_addons as tfa

Construções noturnas

Também há compilações noturnas de complementos do TensorFlow no pacote pip tfa-nightly , que é criado com base na versão estável mais recente do TensorFlow. As compilações noturnas incluem recursos mais recentes, mas podem ser menos estáveis ​​do que as versões versionadas.

pip install tfa-nightly

Instalando da fonte

Você também pode instalar a partir do código-fonte. Isso requer o sistema de compilação Bazel .

git clone https://github.com/tensorflow/addons.git
cd addons

# If building GPU Ops (Requires CUDA 10.0 and CuDNN 7)
export TF_NEED_CUDA=1
export CUDA_TOOLKIT_PATH="/path/to/cuda10" (default: /usr/local/cuda)
export CUDNN_INSTALL_PATH="/path/to/cudnn" (default: /usr/lib/x86_64-linux-gnu)

# This script links project with TensorFlow dependency
python3 ./configure.py

bazel build build_pip_pkg
bazel-bin/build_pip_pkg artifacts

pip install artifacts/tensorflow_addons-*.whl

Conceitos Básicos

API padronizada em subpacotes

A experiência do usuário e a capacidade de manutenção do projeto são conceitos centrais no TF-Addons. Para conseguir isso, exigimos que nossas adições estejam em conformidade com os padrões de API estabelecidos vistos no TensorFlow principal.

Operações personalizadas de GPU/CPU

Um grande benefício dos complementos do TensorFlow é que existem operações pré-compiladas. Caso uma instalação CUDA 10 não seja encontrada, a operação retornará automaticamente para uma implementação de CPU.

Manutenção de proxy

Os complementos foram projetados para compartimentar subpacotes e submódulos para que possam ser mantidos por usuários que tenham experiência e interesse nesse componente.

A manutenção do subpacote só será concedida após uma contribuição substancial ter sido feita para limitar o número de usuários com permissão de gravação. As contribuições podem vir na forma de encerramento de problemas, correções de bugs, documentação, novo código ou otimização de código existente. A manutenção do submódulo pode ser concedida com uma barreira de entrada mais baixa, pois isso não incluirá permissões de gravação no repositório.

Para obter mais informações, consulte a RFC sobre este tópico.

Avaliação Periódica de Subpacotes

Dada a natureza deste repositório, os subpacotes e submódulos podem se tornar cada vez menos úteis para a comunidade com o passar do tempo. Para manter o repositório sustentável, realizaremos revisões semestrais do nosso código para garantir que tudo ainda pertence ao repositório. Os fatores que contribuirão para esta revisão serão:

  1. Número de mantenedores ativos
  2. Quantidade de uso de OSS
  3. Quantidade de problemas ou bugs atribuídos ao código
  4. Se uma solução melhor estiver agora disponível

A funcionalidade dos complementos do TensorFlow pode ser categorizada em três grupos:

  • Sugerido : API bem mantida; o uso é incentivado.
  • Desanimado : uma alternativa melhor está disponível; a API é mantida por motivos históricos; ou a API requer manutenção e está no período de espera para ser descontinuada.
  • Obsoleto : use por sua conta e risco; sujeito a ser excluído.

A mudança de status entre esses três grupos é: Sugerido <-> Desencorajado -> Obsoleto.

O período entre uma API ser marcada como obsoleta e ser excluída será de 90 dias. A justificativa é:

  1. No caso de os complementos do TensorFlow serem lançados mensalmente, haverá de 2 a 3 lançamentos antes que uma API seja excluída. As notas de lançamento podem fornecer avisos suficientes ao usuário.

  2. 90 dias dão aos mantenedores tempo suficiente para corrigir seu código.

Contribuindo

TF-Addons é um projeto de código aberto liderado pela comunidade. Como tal, o projeto depende de contribuições públicas, correções de bugs e documentação. Consulte as diretrizes de contribuição para obter um guia sobre como contribuir. Este projeto segue o código de conduta do TensorFlow . Ao participar, espera-se que você cumpra este código.

Comunidade

Licença

Licença Apache 2.0