Modules complémentaires TensorFlow




Tensorflow Addons est un dépôt des contributions qui sont conformes aux modèles API bien établies, mais mettent en œuvre de nouvelles fonctionnalités non disponibles dans tensorflow noyau. TensorFlow prend en charge de manière native 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, il existe de nombreux nouveaux développements intéressants qui ne peuvent pas être intégrés au cœur de TensorFlow (car leur large applicabilité n'est pas encore claire, ou il est principalement utilisé par un plus petit sous-ensemble de la communauté).

Installation

Constructions stables

Pour installer la dernière version, exécutez la commande suivante :

pip install tensorflow-addons

Pour utiliser des modules complémentaires :

import tensorflow as tf
import tensorflow_addons as tfa

Constructions nocturnes

Dans le cadre du paquet pip Il y a aussi nightly builds de tensorflow Addons tfa-nightly , qui est construit contre 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 de la source

Vous pouvez également installer à partir des sources. Cela nécessite le Bazel système de construction.

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-paquets

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

Opérations personnalisées GPU/CPU

L'un des principaux avantages des modules complémentaires TensorFlow 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 du proxy

Addons a été conçu pour compartimenter les sous-packages et les sous-modules afin qu'ils puissent être maintenus par des utilisateurs qui ont une expertise et un intérêt direct pour ce composant.

La maintenance du sous-paquet ne sera accordée qu'après qu'une contribution substantielle aura été apportée afin de limiter le nombre d'utilisateurs disposant d'une autorisation d'écriture. Les contributions peuvent prendre la forme de clôtures 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 inférieure car cela n'inclura pas les autorisations d'écriture sur le référentiel.

Pour plus d' informations , consultez le RFC sur ce sujet.

Évaluation périodique des sous-ensembles

Compte tenu de la nature de ce référentiel, les sous-paquets et les 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 :

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

Les fonctionnalités des modules complémentaires TensorFlow peuvent être classées en trois groupes :

  • Suggestion: API bien entretenu; l'utilisation est encouragée.
  • Découragé: une meilleure alternative est disponible; l'API est conservée pour des raisons historiques ; ou l'API nécessite une maintenance et est la période d'attente pour être obsolète.
  • Obsolète: utiliser à vos propres risques; sujet à supprimer.

Le changement de statut entre ces trois groupes est : Suggéré <-> Déconseillé -> Déconseillé.

La période entre le marquage d'une API comme obsolète et sa suppression sera de 90 jours. La justification étant :

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

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

Contribuant

TF-Addons est un projet open source mené par la communauté. En tant que tel, le projet dépend des contributions publiques, des corrections de bogues et de la documentation. S'il vous plaît voir les lignes directrices de contribution pour un guide sur la façon de contribuer. Ce projet respecte le code de conduite tensorflow . En participant, vous êtes censé respecter ce code.

Communauté

Licence

Licence Apache 2.0