Complementos de TensorFlow




TensorFlow Addons es un repositorio de contribuciones que se ajustan a patrones de API bien establecidos, pero implementan nuevas funciones que no están disponibles en el núcleo de TensorFlow. TensorFlow admite de forma nativa una gran cantidad de operadores, capas, métricas, pérdidas y optimizadores. Sin embargo, en un campo de rápido movimiento como el aprendizaje automático, hay muchos desarrollos nuevos e interesantes que no se pueden integrar en el núcleo de TensorFlow (porque su amplia aplicabilidad aún no está clara o es utilizado principalmente por un subconjunto más pequeño de la comunidad).

Instalación

Construcciones estables

Para instalar la última versión, ejecute lo siguiente:

pip install tensorflow-addons

Para usar complementos:

import tensorflow as tf
import tensorflow_addons as tfa

Construcciones nocturnas

También hay compilaciones nocturnas de complementos de TensorFlow en el paquete pip tfa-nightly , que se basa en la última versión estable de TensorFlow. Las compilaciones nocturnas incluyen funciones más nuevas, pero pueden ser menos estables que las versiones versionadas.

pip install tfa-nightly

Instalación desde la fuente

También puedes instalar desde la fuente. Esto requiere el sistema de compilación 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

Conceptos básicos

API estandarizada dentro de subpaquetes

La experiencia del usuario y la mantenibilidad del proyecto son conceptos centrales en TF-Addons. Para lograr esto, requerimos que nuestras adiciones se ajusten a los patrones de API establecidos que se ven en el núcleo de TensorFlow.

Operaciones personalizadas de GPU/CPU

Un beneficio importante de los complementos de TensorFlow es que hay operaciones precompiladas. Si no se encuentra una instalación de CUDA 10, la operación recurrirá automáticamente a una implementación de CPU.

Mantenimiento de proxy

Los complementos han sido diseñados para compartimentar subpaquetes y submódulos para que puedan ser mantenidos por usuarios que tienen experiencia y un interés personal en ese componente.

El mantenimiento del subpaquete solo se otorgará después de que se haya realizado una contribución sustancial para limitar la cantidad de usuarios con permiso de escritura. Las contribuciones pueden venir en forma de cierre de problemas, corrección de errores, documentación, código nuevo u optimización de código existente. El mantenimiento del submódulo se puede otorgar con una barrera de entrada más baja, ya que esto no incluirá permisos de escritura en el repositorio.

Para obtener más información, consulte el RFC sobre este tema.

Evaluación periódica de subpaquetes

Dada la naturaleza de este repositorio, los subpaquetes y submódulos pueden volverse cada vez menos útiles para la comunidad a medida que pasa el tiempo. Para mantener el repositorio sostenible, realizaremos revisiones bianuales de nuestro código para garantizar que todo siga perteneciendo al repositorio. Los factores que contribuirán a esta revisión serán:

  1. Número de mantenedores activos
  2. Cantidad de uso de OSS
  3. Cantidad de problemas o errores atribuidos al código
  4. Si ahora hay una mejor solución disponible

La funcionalidad dentro de los complementos de TensorFlow se puede clasificar en tres grupos:

  • Sugerido : API bien mantenida; Se recomienda su uso.
  • Desalentado : hay una alternativa mejor disponible; la API se mantiene por motivos históricos; o la API requiere mantenimiento y el período de espera quedará obsoleto.
  • En desuso : utilícelo bajo su propia responsabilidad; tema a eliminar.

El cambio de estado entre estos tres grupos es: Sugerido <-> Desaconsejado -> Obsoleto.

El período entre que una API se marca como obsoleta y se elimina será de 90 días. El fundamento es:

  1. En el caso de que TensorFlow Addons se lance mensualmente, habrá 2 o 3 lanzamientos antes de que se elimine una API. Las notas de la versión podrían avisar al usuario con suficiente antelación.

  2. 90 días les dan a los mantenedores tiempo suficiente para corregir su código.

Contribuyendo

TF-Addons es un proyecto de código abierto liderado por la comunidad. Como tal, el proyecto depende de contribuciones públicas, correcciones de errores y documentación. Consulte las pautas de contribución para obtener una guía sobre cómo contribuir. Este proyecto se adhiere al código de conducta de TensorFlow . Al participar, se espera que respete este código.

Comunidad

Licencia

Licencia Apache 2.0