อนาคตของส่วนเสริม TensorFlow

import tensorflow as tf
import tensorflow_addons as tfa
train,test = tf.keras.datasets.mnist.load_data()
x_train, y_train = train
x_train = x_train[..., tf.newaxis] / 255.0

# TFA layers and activations
model = tf.keras.Sequential([
  tf.keras.layers.Conv2D(filters=10, kernel_size=(3,3),
                         activation=tfa.activations.gelu),
  tfa.layers.GroupNormalization(groups=5, axis=3),
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(10, activation='softmax')
])

# TFA optimizers, losses and metrics
model.compile(
    optimizer=tfa.optimizers.RectifiedAdam(0.001),
    loss=tfa.losses.TripletSemiHardLoss(),
    metrics=[tfa.metrics.MultiLabelConfusionMatrix(num_classes=10)])

history = model.fit(x_train, y_train, epochs=10)

TensorFlow Addons (TFA) เป็นที่เก็บของชุมชนที่ดูแลและสนับสนุนส่วนขยายสำหรับ TensorFlow ซึ่งสร้างขึ้นครั้งแรกในปี 2018 และดูแลโดยชุมชน SIG-Addons ตลอดระยะเวลา 4 ปี ผู้ร่วมให้ข้อมูล 200 รายได้สร้างพื้นที่เก็บข้อมูล TFA ในชุมชนที่เป็นเจ้าของและประสบความสำเร็จในการจัดการ ซึ่งถูกใช้งานโดยพื้นที่เก็บข้อมูล github มากกว่า 8,000 แห่งตามกราฟการพึ่งพาของเรา เราต้องการใช้เวลาสักครู่เพื่อขอบคุณทุกคนที่เกี่ยวข้องอย่างจริงใจในฐานะผู้มีส่วนร่วมหรือสมาชิกชุมชนสำหรับความพยายามของพวกเขา

เมื่อเร็ว ๆ นี้ มีการทับซ้อนกันมากขึ้นในการสนับสนุนและขอบเขตระหว่างไลบรารี TFA และ Keras-CV และ Keras-NLP เพื่อป้องกันการทับซ้อนกันในอนาคต เราเชื่อว่าส่วนเสริมใหม่และที่มีอยู่ของ TensorFlow จะได้รับการบำรุงรักษาอย่างดีที่สุดในที่เก็บโครงการ Keras หากเป็นไปได้

การตัดสินใจที่จะปิดส่วนเสริม TensorFlow

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

TFA SIG Addons จะสิ้นสุดการพัฒนาและแนะนำคุณสมบัติใหม่ให้กับโครงการนี้ TFA จะเปลี่ยนไปใช้โหมดการบำรุงรักษาและการเผยแพร่ขั้นต่ำเป็นเวลาหนึ่งปี (จนถึงเดือนพฤษภาคม 2024) เพื่อให้เวลาที่เหมาะสมแก่คุณในการปรับการพึ่งพาไปยังที่เก็บที่ทับซ้อนกันในชุมชน TensorFlow ของเรา ( Keras , Keras-CV และ Keras-NLP ). นับจากนี้ไป โปรดพิจารณาการมีส่วนร่วมในโครงการ Keras-CV และ Keras-NLP

พื้นหลัง:

ข้อเสนอ RFC ดั้งเดิม สำหรับ TFA ลงวันที่ 2018-12-14 โดยมีเป้าหมายในการสร้างพื้นที่เก็บข้อมูลที่จัดการโดยชุมชนสำหรับการสนับสนุนที่สอดคล้องกับรูปแบบ API ที่ได้รับการพิสูจน์แล้ว แต่ใช้ฟังก์ชันการทำงานใหม่ที่ไม่มีใน TensorFlow หลักตามที่กำหนดไว้ใน กลุ่มความสนใจพิเศษ ของเรา (SIG) กฎบัตร

เมื่อหลายปีผ่านไป แหล่งเก็บข้อมูลใหม่ที่มีชุมชนผู้ให้ข้อมูลที่ดี (Keras-CV, Keras-NLP ฯลฯ) ถูกสร้างขึ้นโดยมีเป้าหมายที่คล้ายคลึงกับของเรา และเกณฑ์สำหรับการตอบรับการบริจาคมีความทับซ้อนกันอย่างมาก (เช่น จำนวนการอ้างอิงที่จำเป็น) นอกจากนี้ เนื่องจาก Keras แยกออกจากคอร์ TensorFlow ในปี 2020 อุปสรรคในการสนับสนุนชุมชนจึงลดลงอย่างมาก

เป็นที่เข้าใจได้ว่ามีความคลุมเครือเพิ่มมากขึ้นว่าเงินบริจาคควรไปอยู่ที่ใดและที่ใดจะได้รับการดูแลอย่างดีที่สุด ฟีเจอร์มากมายที่มีใน TFA พร้อมใช้งานในที่เก็บ TensorFlow Community อื่นๆ พร้อมกัน เป็นเพียงตัวอย่างบางส่วน:

  • คัตเอาท์แบบสุ่ม: TFA & Keras-CV
  • เครื่องมือเพิ่มประสิทธิภาพ AdamW: TFA และ Keras
  • ความสนใจจากหลายฝ่าย: TFA & Keras

ในฐานะส่วนหนึ่งของ RFC ดั้งเดิม กลุ่มผลประโยชน์พิเศษ ของเราตกลงที่จะย้ายรหัสจากที่เก็บ tf.contrib และ keras.contrib ในการทำเช่นนั้น TFA สืบทอด C++ custom-ops ซึ่งทำให้ TFA เป็นสถานที่ที่ไม่เหมือนใครในชุมชน TensorFlow เพื่อร่วมสนับสนุน C++ custom-ops เพื่อสร้างและเผยแพร่ อย่างไรก็ตาม เมื่อเร็ว ๆ นี้เราได้ ย้ายโครงสร้างพื้นฐานส่วนใหญ่ไปยัง Keras-CV เพื่อให้พวกเขาสามารถรวบรวมและแจกจ่าย ops ที่กำหนดเองได้ตามที่เห็นสมควร

อะไรต่อไป: