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:
- Número de mantenedores ativos
- Quantidade de uso de OSS
- Quantidade de problemas ou bugs atribuídos ao código
- 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 é:
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.
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
- Lista de discussão pública
- Notas da reunião mensal da SIG
- Junte-se à nossa lista de e-mails e receba convites de calendário para a reunião