ส่วนเสริม TensorFlow




TensorFlow Addons คือพื้นที่เก็บข้อมูลการมีส่วนร่วมที่สอดคล้องกับรูปแบบ API ที่มีชื่อเสียง แต่ใช้ฟังก์ชันใหม่ที่ไม่มีใน TensorFlow หลัก TensorFlow รองรับตัวดำเนินการ เลเยอร์ เมตริก การสูญเสีย และเครื่องมือเพิ่มประสิทธิภาพจำนวนมากโดยกำเนิด อย่างไรก็ตาม ในสาขาที่มีการเปลี่ยนแปลงอย่างรวดเร็วอย่าง ML มีการพัฒนาใหม่ๆ ที่น่าสนใจมากมายที่ไม่สามารถรวมเข้ากับ TensorFlow หลักได้ (เนื่องจากความสามารถในการนำไปใช้ในวงกว้างยังไม่ชัดเจน หรือส่วนใหญ่จะถูกใช้โดยกลุ่มย่อยเล็กๆ ของชุมชน)

การติดตั้ง

โครงสร้างที่มั่นคง

หากต้องการติดตั้งเวอร์ชันล่าสุด ให้รันสิ่งต่อไปนี้:

pip install tensorflow-addons

หากต้องการใช้ส่วนเสริม:

import tensorflow as tf
import tensorflow_addons as tfa

งานสร้างยามค่ำคืน

นอกจากนี้ยังมีการสร้าง TensorFlow Addons ทุกคืนภายใต้แพ็คเกจ pip tfa-nightly ซึ่งสร้างขึ้นจาก TensorFlow เวอร์ชันเสถียรล่าสุด รุ่นต่อคืนมีคุณสมบัติใหม่กว่า แต่อาจมีความเสถียรน้อยกว่ารุ่นที่วางจำหน่าย

pip install tfa-nightly

การติดตั้งจากแหล่งที่มา

คุณยังสามารถติดตั้งจากแหล่งที่มาได้ สิ่งนี้ต้องการระบบการสร้าง 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

แนวคิดหลัก

API มาตรฐานภายในแพ็คเกจย่อย

ประสบการณ์ผู้ใช้และการบำรุงรักษาโครงการเป็นแนวคิดหลักใน TF-Addons เพื่อให้บรรลุเป้าหมายเหล่านี้ เราต้องการให้ส่วนเพิ่มเติมของเราสอดคล้องกับรูปแบบ API ที่สร้างขึ้นซึ่งเห็นได้ใน TensorFlow หลัก

การปรับแต่ง GPU/CPU

ประโยชน์หลักของ TensorFlow Addons คือมีการดำเนินการที่คอมไพล์แล้ว หากไม่พบการติดตั้ง CUDA 10 op จะถอยกลับไปใช้งาน CPU โดยอัตโนมัติ

การดูแลพร็อกซี

Addons ได้รับการออกแบบมาเพื่อแบ่งแพ็คเกจย่อยและโมดูลย่อยเพื่อให้สามารถดูแลรักษาได้โดยผู้ใช้ที่มีความเชี่ยวชาญและมีความสนใจในส่วนประกอบนั้น

การดูแลแพ็คเกจย่อยจะได้รับหลังจากการสนับสนุนจำนวนมากแล้วเท่านั้น เพื่อจำกัดจำนวนผู้ใช้ที่ได้รับอนุญาตในการเขียน การสนับสนุนอาจอยู่ในรูปแบบของการปิดปัญหา การแก้ไขข้อบกพร่อง เอกสารประกอบ รหัสใหม่ หรือการเพิ่มประสิทธิภาพรหัสที่มีอยู่ สามารถให้สิทธิ์การดูแลโมดูลย่อยได้โดยมีสิ่งกีดขวางที่ต่ำกว่าสำหรับการเข้า เนื่องจากจะไม่รวมสิทธิ์ในการเขียนไปยัง repo

สำหรับข้อมูลเพิ่มเติม โปรดดู RFC ในหัวข้อนี้

การประเมินแพ็คเกจย่อยเป็นระยะ

เมื่อพิจารณาถึงลักษณะของพื้นที่เก็บข้อมูลนี้ แพ็คเกจย่อยและโมดูลย่อยอาจมีประโยชน์ต่อชุมชนน้อยลงเรื่อยๆ เมื่อเวลาผ่านไป เพื่อรักษาพื้นที่เก็บข้อมูลให้ยั่งยืน เราจะดำเนินการตรวจสอบโค้ดของเราทุก ๆ สองปีเพื่อให้แน่ใจว่าทุกอย่างยังคงอยู่ใน repo ปัจจัยที่เอื้อต่อการทบทวนนี้จะเป็น:

  1. จำนวนผู้ดูแลที่ใช้งานอยู่
  2. ปริมาณการใช้ OSS
  3. จำนวนปัญหาหรือข้อบกพร่องที่เกิดจากโค้ด
  4. หากตอนนี้มีทางออกที่ดีกว่า

ฟังก์ชันการทำงานภายใน TensorFlow Addons สามารถแบ่งได้เป็น 3 กลุ่ม:

  • แนะนำ : API ที่ได้รับการดูแลอย่างดี; แนะนำให้ใช้
  • ท้อแท้ : มีทางเลือกที่ดีกว่าให้เลือก; API ถูกเก็บไว้ด้วยเหตุผลทางประวัติศาสตร์ หรือ API ต้องมีการบำรุงรักษาและเป็นช่วงรอที่จะเลิกใช้งาน
  • เลิกใช้แล้ว : ใช้โดยรับความเสี่ยงเอง เรื่องที่จะถูกลบ

การเปลี่ยนแปลงสถานะระหว่างทั้งสามกลุ่มนี้คือ: แนะนำ <-> ท้อแท้ -> เลิกใช้แล้ว

ระยะเวลาระหว่าง API ที่ทำเครื่องหมายว่าเลิกใช้งานแล้วและถูกลบคือ 90 วัน เหตุผลคือ:

  1. ในกรณีที่ TensorFlow Addons เปิดตัวทุกเดือน จะมีการเผยแพร่ 2-3 ครั้งก่อนที่ API จะถูกลบ บันทึกประจำรุ่นอาจให้คำเตือนแก่ผู้ใช้อย่างเพียงพอ

  2. 90 วันทำให้ผู้ดูแลมีเวลาเพียงพอในการแก้ไขโค้ดของตน

มีส่วนร่วม

TF-Addons เป็นโครงการโอเพ่นซอร์สที่นำโดยชุมชน ด้วยเหตุนี้ โปรเจ็กต์จึงขึ้นอยู่กับการมีส่วนร่วมสาธารณะ การแก้ไขข้อบกพร่อง และเอกสารประกอบ โปรดดู แนวทางการบริจาค สำหรับคำแนะนำเกี่ยวกับวิธีการมีส่วนร่วม โปรเจ็กต์นี้ ปฏิบัติตามจรรยาบรรณของ TensorFlow ในการเข้าร่วม คุณจะต้องรักษารหัสนี้

ชุมชน

ใบอนุญาต

ใบอนุญาต Apache 2.0