Modules complémentaires TensorFlow




TensorFlow Addons est un référentiel de contributions conformes aux modèles d'API bien établis, mais implémentant de nouvelles fonctionnalités non disponibles dans le noyau TensorFlow. TensorFlow prend en charge nativement un grand nombre d'opérateurs, de couches, de métriques, de pertes et d'optimiseurs. Cependant, dans un domaine en évolution rapide comme le ML, de nombreux nouveaux développements intéressants ne peuvent pas être intégrés au cœur de TensorFlow (car leur large applicabilité n'est pas encore claire, ou parce qu'ils sont principalement utilisés par un sous-ensemble plus restreint de la communauté).

Installation

Constructions stables

Pour installer la dernière version, exécutez ce qui suit :

pip install tensorflow-addons

Pour utiliser les modules complémentaires :

import tensorflow as tf
import tensorflow_addons as tfa

Constructions nocturnes

Il existe également des versions nocturnes de TensorFlow Addons sous le package pip tfa-nightly , qui est construit sur la dernière version stable de TensorFlow. Les versions nocturnes incluent des fonctionnalités plus récentes, mais peuvent être moins stables que les versions versionnées.

pip install tfa-nightly

Installation à partir des sources

Vous pouvez également installer à partir des sources. Cela nécessite le système de construction 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

Concepts de base

API standardisée dans les sous-packages

L'expérience utilisateur et la maintenabilité du projet sont des concepts fondamentaux dans TF-Addons. Afin d'y parvenir, nous exigeons que nos ajouts soient conformes aux modèles d'API établis vus dans le noyau TensorFlow.

Opérations personnalisées GPU/CPU

L'un des principaux avantages de TensorFlow Addons est qu'il existe des opérations précompilées. Si une installation CUDA 10 n'est pas trouvée, l'opération reviendra automatiquement à une implémentation CPU.

Maintenance proxy

Les modules complémentaires ont été conçus pour compartimenter les sous-packages et les sous-modules afin qu'ils puissent être maintenus par des utilisateurs possédant une expertise et un intérêt direct pour ce composant.

La maintenance du sous-paquet ne sera accordée qu'après une contribution substantielle afin de limiter le nombre d'utilisateurs disposant d'une autorisation en écriture. Les contributions peuvent prendre la forme de résolutions de problèmes, de corrections de bogues, de documentation, de nouveau code ou d'optimisation de code existant. La maintenance du sous-module peut être accordée avec une barrière d'entrée plus faible, car cela n'inclura pas les autorisations d'écriture sur le dépôt.

Pour plus d’informations, consultez la RFC sur ce sujet.

Évaluation périodique des sous-packages

Compte tenu de la nature de ce référentiel, les sous-packages et sous-modules peuvent devenir de moins en moins utiles à la communauté au fil du temps. Afin de maintenir la pérennité du référentiel, nous effectuerons des révisions semestrielles de notre code pour nous assurer que tout appartient toujours au référentiel. Les facteurs contribuant à cet examen seront les suivants :

  1. Nombre de responsables actifs
  2. Quantité d'utilisation des logiciels libres
  3. Nombre de problèmes ou de bugs attribués au code
  4. Si une meilleure solution est maintenant disponible

Les fonctionnalités de TensorFlow Addons peuvent être classées en trois groupes :

  • Suggéré : API bien entretenue ; l'utilisation est encouragée.
  • Découragé : une meilleure alternative existe ; l'API est conservée pour des raisons historiques ; ou l'API nécessite une maintenance et la période d'attente est obsolète.
  • Obsolète : utilisation à vos propres risques ; sous réserve d'être supprimé.

Le changement de statut entre ces trois groupes est : Suggéré <-> Découragé -> Obsolète.

Le délai entre le marquage d’une API comme obsolète et sa suppression sera de 90 jours. La justification étant :

  1. Dans le cas où TensorFlow Addons est publié mensuellement, il y aura 2 à 3 versions avant qu'une API ne soit supprimée. Les notes de version pourraient donner à l’utilisateur suffisamment d’avertissements.

  2. 90 jours donnent aux responsables suffisamment de temps pour corriger leur code.

Contribuer

TF-Addons est un projet open source dirigé par la communauté. En tant que tel, le projet dépend des contributions publiques, des corrections de bugs et de la documentation. Veuillez consulter les directives de contribution pour un guide sur la façon de contribuer. Ce projet adhère au code de conduite de TensorFlow . En participant, vous êtes censé respecter ce code.

Communauté

Licence

Licence Apache 2.0