Tambahan TensorFlow




TensorFlow Addons adalah gudang kontribusi yang sesuai dengan pola API yang sudah ada, tetapi mengimplementasikan fungsi baru yang tidak tersedia di TensorFlow inti. TensorFlow secara asli mendukung sejumlah besar operator, lapisan, metrik, kerugian, dan pengoptimal. Namun, dalam bidang yang bergerak cepat seperti ML, ada banyak pengembangan baru yang menarik yang tidak dapat diintegrasikan ke dalam TensorFlow inti (karena penerapannya secara luas belum jelas, atau sebagian besar digunakan oleh sebagian kecil komunitas).

Instalasi

Bangunan Stabil

Untuk menginstal versi terbaru, jalankan perintah berikut:

pip install tensorflow-addons

Untuk menggunakan tambahan:

import tensorflow as tf
import tensorflow_addons as tfa

Pembangunan Malam Hari

Ada juga TensorFlow Addons yang dibuat setiap malam di bawah paket pip tfa-nightly , yang dibuat dengan TensorFlow versi stabil terbaru. Versi Nightly menyertakan fitur-fitur yang lebih baru, tetapi mungkin kurang stabil dibandingkan rilis berversi.

pip install tfa-nightly

Menginstal dari Sumber

Anda juga dapat menginstal dari sumber. Ini memerlukan sistem build 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

Konsep inti

API standar dalam Subpaket

Pengalaman pengguna dan pemeliharaan proyek adalah konsep inti dalam TF-Addons. Untuk mencapai hal ini, kami mengharuskan penambahan kami sesuai dengan pola API yang sudah ada yang terlihat di TensorFlow inti.

Operasi Kustom GPU/CPU

Manfaat utama TensorFlow Addons adalah adanya operasi yang telah dikompilasi sebelumnya. Jika instalasi CUDA 10 tidak ditemukan maka operasi akan secara otomatis kembali ke implementasi CPU.

Pemeliharaan Proksi

Addons telah dirancang untuk mengelompokkan subpaket dan submodul sehingga dapat dikelola oleh pengguna yang memiliki keahlian dan kepentingan dalam komponen tersebut.

Pemeliharaan subpaket hanya akan diberikan setelah kontribusi besar telah diberikan untuk membatasi jumlah pengguna dengan izin menulis. Kontribusi dapat berupa penyelesaian masalah, perbaikan bug, dokumentasi, kode baru, atau pengoptimalan kode yang sudah ada. Pemeliharaan submodul dapat diberikan dengan hambatan masuk yang lebih rendah karena ini tidak termasuk izin menulis ke repo.

Untuk informasi lebih lanjut lihat RFC tentang topik ini.

Evaluasi Berkala Subpaket

Mengingat sifat repositori ini, subpaket dan submodul mungkin menjadi semakin tidak berguna bagi komunitas seiring berjalannya waktu. Untuk menjaga keberlanjutan repositori, kami akan melakukan peninjauan dua kali setahun terhadap kode kami untuk memastikan semuanya masih berada dalam repo. Faktor-faktor yang berkontribusi terhadap tinjauan ini adalah:

  1. Jumlah pengelola aktif
  2. Jumlah penggunaan OSS
  3. Jumlah masalah atau bug yang dikaitkan dengan kode
  4. Jika solusi yang lebih baik sekarang tersedia

Fungsionalitas dalam TensorFlow Addons dapat dikategorikan menjadi tiga kelompok:

  • Disarankan : API yang terpelihara dengan baik; penggunaan dianjurkan.
  • Tidak dianjurkan : tersedia alternatif yang lebih baik; API disimpan karena alasan historis; atau API memerlukan pemeliharaan dan merupakan masa tunggu agar tidak digunakan lagi.
  • Tidak digunakan lagi : gunakan dengan risiko Anda sendiri; dapat dihapus.

Perubahan status antara ketiga grup ini adalah: Disarankan <-> Tidak Diinginkan -> Tidak berlaku lagi.

Jangka waktu antara API ditandai sebagai tidak digunakan lagi dan dihapus adalah 90 hari. Alasannya adalah:

  1. Jika TensorFlow Addons dirilis setiap bulan, akan ada 2-3 rilis sebelum API dihapus. Catatan rilis dapat memberikan peringatan yang cukup kepada pengguna.

  2. 90 hari memberi pengelola waktu yang cukup untuk memperbaiki kode mereka.

Berkontribusi

TF-Addons adalah proyek sumber terbuka yang dipimpin komunitas. Oleh karena itu, proyek ini bergantung pada kontribusi publik, perbaikan bug, dan dokumentasi. Silakan lihat pedoman kontribusi untuk panduan tentang cara berkontribusi. Proyek ini mematuhi kode etik TensorFlow . Dengan berpartisipasi, Anda diharapkan menjunjung tinggi kode ini.

Masyarakat

Lisensi

Lisensi Apache 2.0