ช่วยปกป้อง Great Barrier Reef กับ TensorFlow บน Kaggle เข้าร่วมท้าทาย

ส่วนเสริม 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 Custom-Ops

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

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

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

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

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

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

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

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

การทำงานภายใน TensorFlow Addons สามารถแบ่งออกเป็นสามกลุ่ม:

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

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

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

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

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

การบริจาค

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

ชุมชน

ใบอนุญาต

Apache License 2.0