Addon TensorFlow




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

Instalasi

Bangunan Stabil

Untuk menginstal versi terbaru, jalankan yang berikut ini:

pip install tensorflow-addons

Untuk menggunakan addon:

import tensorflow as tf
import tensorflow_addons as tfa

Bangunan Malam

Ada juga malam membangun dari TensorFlow Addons di bawah paket pip tfa-nightly , yang dibangun terhadap versi stabil terbaru dari TensorFlow. Build nightly menyertakan fitur yang lebih baru, tetapi mungkin kurang stabil dibandingkan rilis berversi.

pip install tfa-nightly

Menginstal dari Sumber

Anda juga dapat menginstal dari sumber. Hal ini memerlukan Bazel membangun sistem.

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 di TF-Addons. Untuk mencapainya, kami mengharuskan penambahan kami sesuai dengan pola API yang ditetapkan yang terlihat di inti TensorFlow.

Operasi Kustom GPU/CPU

Manfaat utama dari 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 sub-paket dan submodul sehingga dapat dikelola oleh pengguna yang memiliki keahlian dan kepentingan dalam komponen tersebut.

Pemeliharaan sub-paket hanya akan diberikan setelah kontribusi substansial telah dibuat untuk membatasi jumlah pengguna dengan izin menulis. Kontribusi dapat datang dalam bentuk penutupan masalah, perbaikan bug, dokumentasi, kode baru, atau mengoptimalkan kode yang ada. Pemeliharaan submodul dapat diberikan dengan penghalang yang lebih rendah untuk masuk karena ini tidak akan menyertakan izin menulis ke repo.

Untuk informasi lebih lanjut lihat RFC tentang topik ini.

Evaluasi Berkala dari Subpaket

Mengingat sifat dari repositori ini, subpaket dan submodul mungkin menjadi semakin tidak berguna bagi komunitas seiring berjalannya waktu. Untuk menjaga agar repositori tetap berkelanjutan, kami akan melakukan tinjauan dua tahunan terhadap kode kami untuk memastikan semuanya masih termasuk dalam repo. Faktor-faktor yang berkontribusi pada 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 Addons TensorFlow dapat dikategorikan ke dalam tiga kelompok:

  • Disarankan: terawat API; penggunaan didorong.
  • Berkecil: alternatif yang lebih baik tersedia; API disimpan karena alasan historis; atau API memerlukan pemeliharaan dan merupakan masa tunggu untuk dihentikan.
  • Usang: digunakan pada risiko Anda sendiri; subjek untuk dihapus.

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

Jangka waktu antara API yang 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 cukup waktu untuk memperbaiki kode mereka.

Berkontribusi

TF-Addons adalah proyek open source yang dipimpin komunitas. Dengan demikian, proyek bergantung pada kontribusi publik, perbaikan bug, dan dokumentasi. Silakan lihat pedoman kontribusi untuk panduan tentang cara untuk berkontribusi. Proyek ini menganut kode TensorFlow of conduct . Dengan berpartisipasi, Anda diharapkan untuk menjunjung tinggi kode ini.

Masyarakat

Lisensi

Lisensi Apache 2.0