Componenti aggiuntivi di TensorFlow




TensorFlow Addons è un repository di contributi conformi a modelli API consolidati, ma che implementano nuove funzionalità non disponibili nel core TensorFlow. TensorFlow supporta nativamente un gran numero di operatori, livelli, metriche, perdite e ottimizzatori. Tuttavia, in un campo in rapida evoluzione come il machine learning, ci sono molti nuovi sviluppi interessanti che non possono essere integrati nel nucleo di TensorFlow (perché la loro ampia applicabilità non è ancora chiara o perché sono utilizzati principalmente da un sottoinsieme più piccolo della comunità).

Installazione

Costruzioni stabili

Per installare la versione più recente, eseguire quanto segue:

pip install tensorflow-addons

Per utilizzare i componenti aggiuntivi:

import tensorflow as tf
import tensorflow_addons as tfa

Costruzioni notturne

Esistono anche build notturne di componenti aggiuntivi di TensorFlow nel pacchetto pip tfa-nightly , che è costruito contro l'ultima versione stabile di TensorFlow. Le build notturne includono funzionalità più recenti, ma potrebbero essere meno stabili rispetto alle versioni con versione.

pip install tfa-nightly

Installazione da sorgente

Puoi anche installare dal sorgente. Ciò richiede il sistema di compilazione 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

Concetti principali

API standardizzata all'interno dei sottopacchetti

L'esperienza dell'utente e la manutenibilità del progetto sono concetti fondamentali in TF-Addons. Per raggiungere questi obiettivi, richiediamo che le nostre aggiunte siano conformi ai modelli API stabiliti visti nel core TensorFlow.

Operazioni personalizzate GPU/CPU

Uno dei principali vantaggi dei componenti aggiuntivi di TensorFlow è che sono presenti operazioni precompilate. Se non viene trovata un'installazione CUDA 10, l'operazione tornerà automaticamente a un'implementazione della CPU.

Manutentore proxy

I componenti aggiuntivi sono stati progettati per compartimentare sottopacchetti e sottomoduli in modo che possano essere mantenuti da utenti che hanno esperienza e un interesse acquisito in quel componente.

La manutenzione del sottopacchetto sarà concessa solo dopo che sarà stato dato un contributo sostanziale al fine di limitare il numero di utenti con permesso di scrittura. I contributi possono arrivare sotto forma di chiusura di problemi, correzione di bug, documentazione, nuovo codice o ottimizzazione del codice esistente. La manutenzione del sottomodulo può essere concessa con una barriera d'ingresso inferiore poiché ciò non includerà le autorizzazioni di scrittura sul repository.

Per ulteriori informazioni consultare la RFC su questo argomento.

Valutazione periodica dei sottopacchetti

Data la natura di questo repository, i sottopacchetti e i sottomoduli potrebbero diventare sempre meno utili alla comunità col passare del tempo. Per mantenere il repository sostenibile, eseguiremo revisioni semestrali del nostro codice per garantire che tutto appartenga ancora al repository. I fattori che contribuiscono a questa revisione saranno:

  1. Numero di manutentori attivi
  2. Quantità di utilizzo dell'OSS
  3. Quantità di problemi o bug attribuiti al codice
  4. Se è ora disponibile una soluzione migliore

Le funzionalità dei componenti aggiuntivi TensorFlow possono essere classificate in tre gruppi:

  • Consigliato : API ben mantenuta; l'uso è incoraggiato.
  • Scoraggiato : è disponibile un'alternativa migliore; l'API viene mantenuta per ragioni storiche; oppure l'API richiede manutenzione ed è il periodo di attesa a essere deprecato.
  • Deprecato : utilizzare a proprio rischio; soggetto a cancellazione.

Il cambio di stato tra questi tre gruppi è: Suggerito <-> Scoraggiato -> Deprecato.

Il periodo tra il momento in cui un'API viene contrassegnata come deprecata e l'eliminazione sarà di 90 giorni. La motivazione è:

  1. Nel caso in cui i componenti aggiuntivi di TensorFlow vengano rilasciati mensilmente, ci saranno 2-3 versioni prima che un'API venga eliminata. Le note di rilascio potrebbero fornire all'utente sufficienti avvertimenti.

  2. 90 giorni danno ai manutentori tutto il tempo necessario per correggere il proprio codice.

Contribuire

TF-Addons è un progetto open source guidato dalla comunità. In quanto tale, il progetto dipende da contributi pubblici, correzioni di bug e documentazione. Consulta le linee guida per i contributi per una guida su come contribuire. Questo progetto aderisce al codice di condotta di TensorFlow . Partecipando, sei tenuto a sostenere questo codice.

Comunità

Licenza

Licenza Apache 2.0