Complementos de TensorFlow




Complementos TensorFlow es un repositorio de contribuciones que se ajustan a los patrones de API bien establecidos, pero implementan una nueva funcionalidad no está disponible en TensorFlow núcleo. 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 ML, hay muchos desarrollos nuevos 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 versiones compiladas de TensorFlow Complementos bajo el paquete PIP tfa-nightly , que se construye sobre la última versión estable de TensorFlow. Las compilaciones nocturnas incluyen características más nuevas, pero pueden ser menos estables que las versiones versionadas.

pip install tfa-nightly

Instalación desde la fuente

También puede instalar desde la fuente. Esto requiere que el Basel sistema de construcción.

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 capacidad de mantenimiento del proyecto son conceptos básicos en TF-Addons. Para lograr esto, necesitamos 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

Una de las principales ventajas de los complementos de TensorFlow es que existen 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 apoderado

Los complementos se han diseñado para compartimentar subpaquetes y submódulos para que puedan ser mantenidos por usuarios con 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 el número 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 del 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, véase 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 semestrales de nuestro código para asegurarnos de que todo sigue perteneciendo al repositorio. Los factores que contribuyen 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:

  • Sugerida: API bien mantenida; se recomienda su uso.
  • Desalentado: una mejor alternativa está disponible; la API se mantiene por razones históricas; o la API requiere mantenimiento y es el período de espera que se desaprobará.
  • Obsoleta: su uso bajo su propio riesgo; sujeto a ser eliminado.

El cambio de estado entre estos tres grupos es: sugerido <-> desalentado -> desaprobado.

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

  1. En el caso de que los complementos de TensorFlow se publiquen mensualmente, habrá 2-3 lanzamientos antes de que se elimine una API. Las notas de la versión podrían dar suficiente advertencia al usuario.

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

Contribuyendo

TF-Addons es un proyecto de código abierto dirigido por la comunidad. Como tal, el proyecto depende de contribuciones públicas, corrección de errores y documentación. Por favor, vea las pautas de contribución para 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