อนาคตของส่วนเสริม 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 Addons

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

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

พื้นหลัง:

ข้อเสนอ RFC ดั้งเดิม สำหรับ TFA ลงวันที่ 14-12-2561 โดยมีเป้าหมายที่ระบุไว้ในการสร้างพื้นที่เก็บข้อมูลที่จัดการโดยชุมชนสำหรับการสนับสนุนที่สอดคล้องกับรูปแบบ 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++ ซึ่งทำให้ TFA เป็นสถานที่ที่ไม่เหมือนใครในชุมชน TensorFlow เพื่อสนับสนุนการดำเนินการแบบกำหนดเองของ C++ เพื่อสร้างและเผยแพร่ อย่างไรก็ตาม เมื่อเร็วๆ นี้เราได้ ย้ายโครงสร้างพื้นฐานส่วนใหญ่ไปยัง Keras-CV เพื่อให้สามารถรวบรวมและแจกจ่าย Ops แบบกำหนดเองได้ตามที่เห็นสมควร

อะไรต่อไป:

  • การเผยแพร่การบำรุงรักษาจะดำเนินต่อไปเป็นเวลา 1 ปี (จนถึงเดือนพฤษภาคม 2024)
  • คำเตือนการนำเข้าในรุ่น 0.20 TFA
  • ข้อมูลนี้ได้รับการเผยแพร่ใน ปัญหาการติดตาม GitHub ด้วย
  • รายการฟังก์ชันการทำงานที่เทียบเท่ามี อยู่ที่นี่