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 fondamentali
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 gestiti 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:
- Numero di manutentori attivi
- Quantità di utilizzo dell'OSS
- Quantità di problemi o bug attribuiti al codice
- 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 è:
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.
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à
- Lista di distribuzione pubblica
- Appunti della riunione mensile SIG
- Iscriviti alla nostra mailing list e ricevi gli inviti del calendario alla riunione