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 ปัจจัยที่เอื้อต่อการทบทวนนี้จะเป็น:
- จำนวนผู้ดูแลที่ใช้งานอยู่
- ปริมาณการใช้ OSS
- จำนวนปัญหาหรือข้อบกพร่องที่เกิดจากโค้ด
- หากตอนนี้มีทางออกที่ดีกว่า
ฟังก์ชันการทำงานภายใน TensorFlow Addons สามารถแบ่งได้เป็น 3 กลุ่ม:
- แนะนำ : API ที่ได้รับการดูแลอย่างดี; แนะนำให้ใช้
- ท้อแท้ : มีทางเลือกที่ดีกว่าให้เลือก; API ถูกเก็บไว้ด้วยเหตุผลทางประวัติศาสตร์ หรือ API ต้องมีการบำรุงรักษาและเป็นช่วงรอที่จะเลิกใช้งาน
- เลิกใช้แล้ว : ใช้โดยรับความเสี่ยงเอง เรื่องที่จะถูกลบ
การเปลี่ยนแปลงสถานะระหว่างทั้งสามกลุ่มนี้คือ: แนะนำ <-> ท้อแท้ -> เลิกใช้แล้ว
ระยะเวลาระหว่าง API ที่ทำเครื่องหมายว่าเลิกใช้งานแล้วและถูกลบคือ 90 วัน เหตุผลคือ:
ในกรณีที่ TensorFlow Addons เปิดตัวทุกเดือน จะมีการเผยแพร่ 2-3 ครั้งก่อนที่ API จะถูกลบ บันทึกประจำรุ่นอาจให้คำเตือนแก่ผู้ใช้อย่างเพียงพอ
90 วันทำให้ผู้ดูแลมีเวลาเพียงพอในการแก้ไขโค้ดของตน
มีส่วนร่วม
TF-Addons เป็นโครงการโอเพ่นซอร์สที่นำโดยชุมชน ด้วยเหตุนี้ โปรเจ็กต์จึงขึ้นอยู่กับการมีส่วนร่วมสาธารณะ การแก้ไขข้อบกพร่อง และเอกสารประกอบ โปรดดู แนวทางการบริจาค สำหรับคำแนะนำเกี่ยวกับวิธีการมีส่วนร่วม โปรเจ็กต์นี้ปฏิบัติตาม จรรยาบรรณของ TensorFlow ในการเข้าร่วม คุณจะต้องรักษารหัสนี้
ชุมชน
- รายชื่อผู้รับจดหมายสาธารณะ
- SIG บันทึกการประชุมรายเดือน
- เข้าร่วมรายชื่ออีเมลของเราและรับคำเชิญเข้าร่วมการประชุมตามปฏิทิน