TensorFlow Eklentileri




TensorFlow Eklentileri, köklü API kalıplarına uyan ancak temel TensorFlow'da bulunmayan yeni işlevleri uygulayan bir katkı deposudur. TensorFlow, çok sayıda operatörü, katmanı, ölçümü, kayıpları ve optimize ediciyi yerel olarak destekler. Bununla birlikte, ML gibi hızlı ilerleyen bir alanda, temel TensorFlow'a entegre edilemeyen birçok ilginç yeni gelişme var (çünkü bunların geniş uygulanabilirliği henüz net değil veya çoğunlukla topluluğun daha küçük bir alt kümesi tarafından kullanılıyor).

Kurulum

Kararlı Yapılar

En son sürümü yüklemek için aşağıdakileri çalıştırın:

pip install tensorflow-addons

Eklentileri kullanmak için:

import tensorflow as tf
import tensorflow_addons as tfa

gece kondular

TensorFlow'un en son kararlı sürümüne göre oluşturulmuş tfa-nightly pip paketi altında TensorFlow Eklentilerinin gecelik yapıları da bulunmaktadır. Gecelik sürümler daha yeni özellikler içerir ancak sürümlendirilmiş sürümlere göre daha az kararlı olabilir.

pip install tfa-nightly

Kaynaktan Yükleme

Ayrıca kaynaktan da yükleyebilirsiniz. Bu, Bazel yapı sistemini gerektirir.

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

Temel Kavramlar

Alt Paketlerde Standartlaştırılmış API

Kullanıcı deneyimi ve proje sürdürülebilirliği, TF-Addons'taki temel kavramlardır. Bunları başarmak için eklemelerimizin temel TensorFlow'da görülen yerleşik API kalıplarına uymasını istiyoruz.

GPU/CPU Özel İşlemleri

TensorFlow Eklentilerinin en büyük avantajı önceden derlenmiş operasyonların olmasıdır. CUDA 10 kurulumu bulunamazsa operasyon otomatik olarak CPU uygulamasına geri dönecektir.

Vekil Bakımı

Eklentiler, alt paketleri ve alt modülleri bölümlere ayıracak şekilde tasarlanmıştır; böylece bu bileşende uzmanlığa ve hak sahibi olan kullanıcılar tarafından muhafaza edilebilirler.

Alt paketin bakımı, yazma iznine sahip kullanıcı sayısını sınırlamak amacıyla yalnızca önemli miktarda katkı yapıldıktan sonra verilecektir. Katkılar; sorunların kapatılması, hata düzeltmeleri, dokümantasyon, yeni kod veya mevcut kodun optimize edilmesi şeklinde gelebilir. Alt modülün bakımı, depoya yazma izinlerini içermeyeceğinden giriş için daha düşük bir bariyerle verilebilir.

Daha fazla bilgi için bu konuyla ilgili RFC'ye bakın.

Alt Paketlerin Periyodik Değerlendirilmesi

Bu havuzun doğası göz önüne alındığında, alt paketler ve alt modüller zaman geçtikçe topluluk için giderek daha az yararlı hale gelebilir. Depoyu sürdürülebilir tutmak amacıyla, her şeyin hala depoya ait olduğundan emin olmak için kodumuzun yılda iki kez gözden geçirilmesini gerçekleştireceğiz. Bu incelemeye katkıda bulunan faktörler şunlar olacaktır:

  1. Aktif bakımcı sayısı
  2. OSS kullanım miktarı
  3. Kodla ilişkilendirilen sorunların veya hataların miktarı
  4. Şimdi daha iyi bir çözüm mevcutsa

TensorFlow Eklentileri içindeki işlevsellik üç gruba ayrılabilir:

  • Önerilen : bakımlı API; kullanımı teşvik edilmektedir.
  • Cesareti kırıldı : Daha iyi bir alternatif mevcut; API tarihi nedenlerden dolayı tutulur; veya API'nin bakım gerektirmesi ve kullanımdan kaldırılması için bekleme süresidir.
  • Kullanımdan kaldırıldı : kullanım riski size aittir; silinecek konu.

Bu üç grup arasındaki durum değişikliği şu şekildedir: Önerilen <-> Tavsiye Edilmeyen -> Kullanımdan Kaldırılan.

Bir API'nin kullanımdan kaldırılmış olarak işaretlenmesi ile silinmesi arasındaki süre 90 gün olacaktır. Gerekçe şu:

  1. TensorFlow Eklentilerinin aylık olarak yayınlanması durumunda, API silinmeden önce 2-3 sürüm olacaktır. Sürüm notları kullanıcıya yeterince uyarı verebilir.

  2. 90 gün, bakımcılara kodlarını düzeltmeleri için yeterli zaman tanır.

Katkı

TF-Addons, topluluk liderliğindeki bir açık kaynak projesidir. Bu nedenle proje kamunun katkılarına, hata düzeltmelerine ve belgelere bağlıdır. Nasıl katkıda bulunacağınıza ilişkin bir kılavuz için lütfen katkı yönergelerine bakın. Bu proje TensorFlow'un davranış kurallarına uygundur. Katılarak bu kurallara uymanız bekleniyor.

Toplum

Lisans

Apache Lisansı 2.0