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